matlab程序设计实践Word下载.docx
- 文档编号:16404608
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:14
- 大小:385.92KB
matlab程序设计实践Word下载.docx
《matlab程序设计实践Word下载.docx》由会员分享,可在线阅读,更多相关《matlab程序设计实践Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
功能:
用里查森迭代法求线性方程组
调用格式:
[x,n]=richason(A,b,x0,eps,M)
其中,A为线性方程组的系数矩阵;
b为线性方程组的常数向量;
x0为迭代初始向量;
eps为解的精度控制(此参数可选);
M为迭代步数控制(此参数可选);
x为线性方程组的解;
n为求出所需精度的解实际的迭代步数。
里查森迭代法的MATLAB程序代码如下:
function[x,n]=richason(A,b,x0,eps,M)
%采用里查森迭代法求线性方程组Ax=b的解
%线性方程组的系数矩阵:
A
%线性方程组的常数向量:
b
%迭代初始向量:
x0
%解的精度控制:
eps
%迭代步数控制:
M
%线性方程组的解:
x
%求出所需精度的解实际的迭代步数:
n
if(nargin==3)
eps=1.0e-6;
%eps表示迭代精度
M=200;
%M表示迭代步数的限制值
elseif(nargin==4)
end
I=eye(size(A));
x1=x0;
x=(I-A)*x0+b;
n=1;
%迭代过程
while(norm(x-x1)>
eps)
x1=x;
x=(I-A)*x1+b;
n=n+1;
%n为最终求出解时的迭代步数
if(n>
=M)
disp('
Warning:
迭代次数太多,可能不收敛!
'
);
return;
end
实例:
用里查森迭代法求以下线性方程组,其中初始值取为[000]
输入:
>
A=[1.0170-0.00920.0095;
-0.00920.99030.0136;
0.00950.01360.9898];
b=[101]'
;
x0=[000]'
[x,n]=richason(A,b,x0)
输出的计算结果为:
x=
0.9739
-0.0047
1.0010
输出的迭代次数为:
n=
5
经过5步迭代,理查森迭代法求出了方程的解为:
[x1,x2,x3]=[0.9738,-0.0047,1.0010]
对上述迭代计算结果进行验证,在MATLAB命令窗口中输入如下程序:
A*x
输出结果为:
ans=
1.0000
0.0000
1.0000
经检验,计算结果正确。
程序运算截图如下:
流程图:
、源程序
例题流程图
(1)算法说明
分析已给方程可知,
为拉普拉斯方程,在MATLAB工具箱PDETOOL中可看成椭圆型方程,转化为标准形式如下:
因此,对应的c=-1,a=0,f=0,然后根据给出的边界约束条件,在微分方程工具箱中选择所需要的条件,
1Dirichlet条件
2Neumann条件
其中n是
上的单位外法矢量,g,q,h和r是定义在
上的函数。
(题目中Γ1与Γ2分别代表x+y=2与x-y=2这两条边界线)
(2)操作流程
设置坐标限
选择Options栏中AxesLimits选项,输入坐标范围
绘制区域图
点击绘制多边形键画出要求的区域图
设置边界条件
选择Boundary中的BoundaryMode,设置为边界模式;
双击各条边界线,由方程组中已知边界条件设定
设置方程参数
点击,将已知方程对照标准偏微分方程形式,知c=-1,a=0,f=0。
剖分网格
按顺序点击两按钮,细分网格。
绘制温度分布图
点击绘制三维示意图:
(3)简易流程图
实验1用GUI方式解下列PDE
同上题,由已给方程可知,
为拉普拉斯方程,在PDETOOL中可看成椭圆型方程。
u|x=0=y(3-y)
u|y=0=sin(π/4*x)
划分网格
绘制特征值对应的函数图形
二维图形:
三维图形:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 程序设计 实践