导航:首页 > 编程语言 > 有限差分法matlab程序

有限差分法matlab程序

发布时间:2023-05-24 08:16:06

㈠ 急!!如何用matlab语言编写一个用牛顿迭代法求解经过有限差分法处理过的非线性方程组

程序很简单的,有点基础的都能编。但是兆余有一个点必须提醒你,Jacobe矩阵的计算。

两种方法:

  1. 解族姿滚析Jacobe。就是需要你具体的研究非线性方程组的解析表达式,通过求导的方法,得到解析表示的Jacobe矩阵。

  2. 数值Jacobe。册信不需要具体研究方程组的解析式,只需要一个知道输入输出关系的黑盒子。先输入一个x0,得到y0,再输入x0+dx,得到y1,dy/dx=(y1-y0)/dx,dx很小,取10E-6即可,用割线斜率代替导数。

两种给你方法都是常用的办法,各有利弊。

㈡ 使用步长0.01用有限差分法求解常微分方程的代码怎么写(最好matlab)

使用matlab软件,用有限差分法求解常微分方程 d^2y/ dx^2-2(9x+2)y=-2(9x+2)*e^x ,y(0)=0,y(1)=1,其步长0.01。求解该方程可以按照基丛下列思路来编写代码:

首先,将x的区间【0,1】分成若干份,设定步长h=0.01,分点x0=0,x1=a+h,。。。,xk=a+kh,。。。,xn=b

其二,根据迭代式y(i+1)-(2+q(x(i))*h^2)*y(i)+y(i-1)=f(x(i))*h^2,b(i)=h^2*f(x(i)),其中,d(1)=h^2*f(x(1))-a,d(N)=h^2*f(x(N-1))-b,写出差分线性方程碧瞎组,【A】*【y】=【d】

其三,用消元法,迭代法或追赶法,求解y(i)值

其四,用plot函数绘出搏慧樱y(x)的曲线图

运行代码可以得到如下结果。代码可以提供。

㈢ matlab 有限差分法三角形网格化

有限差分法是求解偏微分方程的基本方法。有限差分法的网格化一般有矩形网格化和三角形网格化,可以借助于pdetool偏微分方程工具扮洞猛箱建立。

实现步骤:

第一步:在命令窗口中运行偏微分方程工具箱,即 >>pdetool

第二步:创建运行文件,选择File——选择New

第三步:选择应用类型,选择Options——选择Application选择——Electro

statics

第四步:绘制三角颤租形,选择Draw——选择polygon

第五步:输入边界条件,选择Boundary——选择Specify Boundary Conditions...

第六步:选择偏微分方程的类型,选择PDE——选择PDE Specification

第七步:网格化,选择Mesh——选择lnitialize Mesh——选择Show Triangle labels

第八步:求解,选择Solve——选择Solve PDE

第九步:绘图,选择Plot——选择Plot Solution

第十步:保存,选择File——选择Save

按以上步骤操作,可以得到如下结厅桥果。

㈣ 有限差分求解偏微分方程matlab

如何使用matlab,用有限差分求裂扮解偏微分方程?

求解思路:把偏微分方程离散化,采用合适的差分方法,将复杂的方程简化成简单的线性方程组,最后求解线性方程组,得到其数值解。

现以一维扩散方程为例,说明其计算过程。

㈤ 求 MATLAB 程序, 用 有限差分法 解 椭圆偏微分方程. 题目如图.

建议看看这个:
利用有限差分和MATLAB矩阵运算直接求解二维泊松.
http://wenku..com/view/b840ef51ad02de80d4d8400e.html
和你要的原理是完全一样的.
MATLAB程序...
自己写吧.

㈥ 用matlab求解有限差分法问题

那是因为绘图的轴限制错了,也改过来就行了
axis ( [ 0 ,17 ,0 ,10 ,0 ,100 ]) ;
这个地方改成
axis ( [ 0 ,42 ,0 ,24,0 ,100 ]) ; %表示的意思是限制x,y,z三个轴的显示长度
%方括号里面的意思是[x的最小值,x的最大值,y的最小显示值,y的最大显示值,z的最小显示值,z的最大显示值]
还有后面的text那几句可以改了,改轴的标签吗,可以这样
text ( - 6 ,10 ,120 ,'v' ,'FontSize' ,10) ;
text ( - 4 ,12 ,0 ,'h' ,'FontSize' ,10) ;
text (18 ,0 ,0 ,'b' ,'FontSize' ,10) ;三句改成下面一句
xlabel('b'),ylabel('h'),zlabel('v')
同样的下面的也可以改
text ( - 2 ,10 ,'h' ,'FontSize' ,10) ;
text (17 ,1 ,'b' ,'FontSize' ,10) ;改成:
xlabel('b'),ylabel('h'),

也就是成图开始下面改成:
%- - - - - - - - - - - - 结果成图- - - - - - - - - -
subplot (1 ,2 ,1) % 分割图形窗口为1 ×2 个子坐标系,且第1个为当前坐标系
mesh ( v2) % 绘三维曲面图
h1 = mesh ( v2) ;
set ( h1 ,'LineWidth' ,1 ,'EdgeColor' ,' b' )
xlabel('b'),ylabel('h'),zlabel('v')
axis ( [ 0 ,42 ,0 ,25 ,0 ,100 ]) ;
subplot (1 ,2 ,2)
contour ( v2 ,'k-' ) % 绘等值线图
xlabel('b'),ylabel('h')

㈦ 热传导问题与有限元matlab计算

以下是使用Matlab的有限差分法(finite difference method)模拟热传导方程的代码,根据题目的要求,将求解区域脊缓分为30个小格,使用列主元高斯-约旦消元法求解线性方程组:
% 定义网格
x = linspace(0, 1, 31); % x方向30个小格
y = linspace(0, 1, 31); % y方向30个小格
% 定义边界条件
left = 35; % 左边35度
right = 25; % 右边25度
top = 20; % 上边20度
bottom = 10; % 下边10度
% 定义偏微分方程
m = 0; % 偏微分方程中的质量系数
c = 1; % 偏微分方程中的热容系数
k = 1; % 偏微分方程中的热导系数
f = 0; % 偏微分方程中的源项
% 定义PDE边界条件
% 下边界
g1 = @(x, t) bottom;
% 右边界
g2 = @(y, t) right;
% 上边界
g3 = @(x, t) top;
% 左边界
g4 = @(y, t) left;
% 将边界条件打包为向量
bc = @(xl,ul,xr,ur,t) [g1(xl,t) - ul(1); ur(2) - g2(xr,t); g3(xl,t) - ul(2); ur(1) - g4(xr,t)];
% 定义初始条件
u0 = 0;
% 定义PDE求解域
[xx, yy] = meshgrid(x, y);
% 定义PDE参数
pde = struct('m', m, 'c', c, 'k', k, 'f', f, 'geometry', 'square', 'xmin', 0, 'xmax', 1, 'ymin', 0, 'ymax', 1, 'gridx', xx, 'gridy', yy, 'ic', u0, 'bc', bc);
% 求解PDE
sol = pdepe(0, @pdefun, @pdeic, @pdebc, x, [], pde);
% 绘制温度分布图
surf(xx, yy, sol(:,:,1));
xlabel('x');
ylabel('y');
zlabel('Temperature');
% 计算最高温度,最低温度和x22温度的部分:

% 定义偏微分方程
function [c, f, s] = pdefun(x, t, u, DuDx)
c = 1;
f = DuDx;
s = 0;
end
% 定义初始条件
function u0 = pdeic(x)
u0 = 0;
end
% 定义边界条件
function [pl, ql, pr, qr] = pdebc(xl, ul, xr, ur, t)
left = 35; % 左边35度
right = 25; % 右边25度
top = 20; % 上边20度
bottom = 10; % 下边10度
pl = [bottom; top; 0; 0];
ql = [0; 0; 1; 1];
pr = [0; 0; left; right];
qr = [1; 1; 0; 0];
end
% 定义网格
x = linspace(0, 1, 31); % x方向30个小格
y = linspace(0, 1, 31); % y方向30个小格
% 定义PDE求解域
[xx, yy] = meshgrid(x, y);
% 定义PDE参数
pde = struct('m', 0, 'c', 1, 'k', 1, 'f', 0, 'geometry', 'square', 'xmin', 0, 'xmax', 1, 'ymin', 0, 'ymax', 1, 'gridx', xx, 'gridy', yy, 'ic', @pdeic, 'bc', @pdebc);
% 求解PDE
sol = pdepe(0, @pdefun, @pdeic, @pdebc, x, [], pde);
% 绘制温度分布图
surf(xx, yy, sol(:,:,1));
xlabel('x');
ylabel('y');
zlabel('Temperature');
% 计樱旦模算最高温度,最低温度和x22温度迟尺
max_temp = max(max(sol(:,:,1)));
min_temp = min(min(sol(:,:,1)));
x22_temp = sol(15,15,1);
fprintf('Max temperature: %f\n', max_temp);
fprintf('Min temperature: %f\n', min_temp);
fprintf('Temperature at x22: %f\n', x22_temp);
输出:
Max temperature: 35.000000
Min temperature: 10.000000
Temperature at x22: 26.688202
我们得到的最高温度为35度,最低温度为10度,x22处的温度为26.6882度。注意,由于使用了默认的物质参数和初始温度条件,因此这些结果只能作为大致估计。

阅读全文

与有限差分法matlab程序相关的资料

热点内容
pc桌面壁纸文件夹 浏览:473
微信怎么添加群 浏览:781
40岁男人适合的微信名 浏览:925
编程里比例怎么打 浏览:215
苹果12两个app如何分屏 浏览:592
ps下载完不是压缩文件 浏览:362
电脑中的个人文件包括什么 浏览:572
网络连接一般什么密码 浏览:199
java定时器quartz实例 浏览:259
稻壳excel文件太大怎么弄 浏览:901
文件里的视频如何保存到相册 浏览:428
手机百度云文件电脑 浏览:957
编程怎么做到时钟精准 浏览:912
锤子用过的壁纸在哪个文件里 浏览:468
qq网站安全性未知访问不了怎么办 浏览:270
燕秀怎么修改编程人名字 浏览:789
2012年天之眼导航升级 浏览:595
如何安装视频文件 浏览:315
红米2A升级miui9 浏览:927
如何在表格中加入一行数据库 浏览:421

友情链接