数值分析算法编程

数值分析算法编程

ID:18334500

大小:108.50 KB

页数:8页

时间:2018-09-16

数值分析算法编程_第1页
数值分析算法编程_第2页
数值分析算法编程_第3页
数值分析算法编程_第4页
数值分析算法编程_第5页
资源描述:

《数值分析算法编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2013年工程数值分析作业Matlab编程一编程求解试分别选用Jacobi迭代法,Gauss-Seidol迭代法计算其解。Jacobi迭代法function[x,n]=jacobi(A,b,x0,eps,varargin)%采用Jacobi迭代法求线性方程组Ax=b的解%线性方程组的系数矩阵:A%线性方程组的常数向量:b%迭代初始向量:x0%解的精度控制:eps%迭代步数控制:varargin%线性方程组的解:x%求出所需精度的解实际的迭代步数:nifnargin==3eps=1.0e-6;M=200;elseifnargin<3return

2、elseifnargin==5M=varargin{1};endD=diag(diag(A));%求A的对角矩阵L=-tril(A,-1);%求A的下三角阵U=-triu(A,1);%求A的上三角阵B=D(L+U);f=Db;x=B*x0+f;n=1;%迭代次数%迭代过程whilenorm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)disp(‘warning:迭代次数太多,可能不收敛!’);return;endend在MATLAB命令窗口中输入求解程序:A=[721-2;9153-2;-2-2115;13

3、213];b=[47-10]';x0=ones(4,1);[x,n]=jacobi(A,b,x0)得x=0.49810.14430.0629-0.0812n=8Gauss-Seidol迭代法clear;clc;A=[721-2;9153-2;-2-2115;13213];b=[47-10]';N=length(b);%解向量的维数fprintf('库函数计算结果:');x=inv(A)*b;%库函数计算结果x=zeros(N,1);%迭代初始值%-----(A=D-E-F)------D=diag(diag(A));E=-tril(A,-1)

4、;%下三角F=-triu(A,1);%上三角B=inv(D-E)*F;g=inv(D-E)*b;eps=0.0001;%相邻解的距离小于该数时,结束迭代%--------开始迭代-------fork=1:100%最大迭代次数为100fprintf('第%d次迭代:',k);y=B*x+g;fprintf('与上次计算结果的距离(2范数):%f',norm(x-y)^2);ifnorm(x-y)

5、0.1238095238095240.035497835497836-0.077988677988678第2次迭代:与上次计算结果的距离(2范数):0.005125x=0.5087008229865370.1439481153766870.063203751515440-0.082073282472883第3次迭代:与上次计算结果的距离(2范数):0.000119x=0.4978219218264890.1443896589379680.063162688535757-0.081332021208608第4次迭代:与上次计算结果的距离(2范数

6、):0.000000x=0.4979134215958700.1444418065075120.062851869295437-0.081303275362252第5次迭代:与上次计算结果的距离(2范数):0.000000x=0.4979134215958700.1444418065075120.062851869295437-0.081303275362252对于精度,从程序计算结果来看,收敛最快,最慢。二欧拉法MATLAB取步长,用Euler方法、改进Euler方法和4阶Runge-Kutta方法求解初值问题并将结果与解析解相比较。欧拉法

7、function[x,y]=euler(fun,x0,xfinal,y0,n);ifnargin<5,n=50;endh=(xfinal-x0)/n;x(1)=x0;y(1)=y0;fori=1:nx(i+1)=x(i)+h;y(i+1)=y(i)+h*feval(fun,x(i),y(i));endfunctionf=doty(x,y);f=y-2*x/y;输入[x,y]=euler('doty',0,1,1,10),得x=Columns1through900.10000.20000.30000.40000.50000.60000.7000

8、0.8000Columns10through110.90001.0000y=Columns1through91.00001.10001.19181.27741.35

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。