牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代

上传人:工**** 文档编号:547861441 上传时间:2023-12-19 格式:DOCX 页数:22 大小:173.30KB
返回 下载 相关 举报
牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代_第1页
第1页 / 共22页
牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代_第2页
第2页 / 共22页
牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代_第3页
第3页 / 共22页
牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代_第4页
第4页 / 共22页
牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代》由会员分享,可在线阅读,更多相关《牛顿迭代法和雅克比迭代法和高斯赛德尔迭代逐次超松弛迭代(22页珍藏版)》请在金锄头文库上搜索。

1、实验三非线性方程的牛顿法和线性方程组的迭代数值求解信息与计算科学金融崔振威201002034031一、实验目的:设计牛顿迭代算法和线性方程组的常用迭代算法二、实验内容:p69.3、p129.1三、实验要求:1、根据题目要求构造迭代格式2、对线性方程组的迭代求解要求构造三种迭代格式3、试比较牛顿迭代法和不动点迭代法的优劣(p69.3)4、试比较线性方程组三种迭代的优劣(收敛和收敛速度) 主程序:a、牛顿迭代法程序:function x,k=newton(f,pO,e)%求f(x)=0在给定p0的根。%f为所求的函数f(x),p0为迭代初始值,e为迭代精度。k为迭代次数 %diff(f)为对函数求

2、导,subs是赋值函数,用数值替代符号变量替换函数例 xa=pO;xb=xa-subs(f,xa)/subs(diff(f),xa);k=1;while abs(xa-xb)e,k=k+1;xa=xb; xb=xa-subs(f,xa)/subs(diff(f),xa);endx=xb;b、雅克比迭代法程序function x,n=Jacobi_Solve(A,b,xO,eps,varargin)%求解线性方程组的迭代法%A为方程组的细数矩阵%b方程组的右端项数字的向量组%eps为精度要求,默认值为1e-5%varargin为最大迭代次数,值为100%x为方程组的解%n为迭代次数if narg

3、in=3eps=1.0e-6;M =200;elseif nargin=epsx0=x;x=B*x0+f;n=n+1;if(n=M)disp(迭代次数太多,可能不收敛。); return;endendc、高斯_赛德尔迭代程序function x,n=gaussseide(A,b,xO,eps,M)%求解线性方程组的迭代法%A为方程组的细数矩阵%b为方程组的右端项数字的向量组 %eps为精度要求,默认值为1e-5 %M为最大迭代次数,值为100 %x为方程组的解%n为迭代次数if nargin=3eps=1.0e-6;M =200;elseif nargin=4M=200;elseif narg

4、in=epsx0=x;x=G*x0+f;n=n+1;if(n=M)disp(迭代次数太多,可能不收敛。);return;endendd、逐次超松弛迭代程序function x,n=SOR_Solve(A,b,xO,w,eps,M)%求解线性方程组的迭代法%A为方程组的细数矩阵%b为方程组的右端项数字的向量组%x0为迭代初始化向量%w为松弛因子%eps为精度要求,默认值为le-5%M为最大迭代次数,值为100%x为方程组的解%n为迭代次数if nargin=4eps=1.0e-6;M =200;elseif nargin=2)errorreturn;endD=diag(diag(A);%求A的对

5、角矩阵L=-tril(A,-1);%求A的下三角矩阵U=-triu(A,1);%求A的上三角矩阵B=inv(D-L*w)*(1-w)*D+w*U);%inv 为矩阵求逆f=w*inv(D-L*w)*b;x=B*x0+f;n=1;%迭代次数while norm(x-xO)=epsxO=x;x=B*xO+f;n=n+1;if(n=M)disp(迭代次数太多,可能不收敛。);return;endend p693(a)、p0=3,求 8的近似值解:令f(x)=xA2-8,在matlab的命令窗口中输入命令: fplot(xA2-8,-3,3);grid可得下图:利用牛顿迭代法,在matlab窗口输入下

6、面命令,得出结果: format long syms x f=(xA2-8)f =xA2-8 x,k=newton(f,3,10A-10)2.82842712474619 k =4由输出结果可以看出:该方程迭代次数为4,值趋近2.82842712474619(b)p0=10,求I的近似值解:令f(x)=xA2-91,在matlab的命令窗口中输入命令: fplot(xA2-91,-15,15);grid可得下图:利用牛顿迭代法,在matlab窗口输入下面命令,得出结果: format long syms x f=(xA2-91)f =xA2-91 x,k=newton(f,10,10A-10)

7、x =9.53939201416946k =4由输出结果可以看出:该方程迭代次数为4,值趋近9.53939201416946(c)、p0=-3,求八8的近似值 解:令f(x)=xA2-8,在matlab的命令窗口中输入命令: fplot(xA2-8,-3,3);grid可得下图:利用牛顿迭代法,在matlab窗口输入下面命令,得出结果: format long syms x f=(xA2-8)f =xA2-8 x,k=newton(f,-3,10A-10)x =-2.82842712474619k =4由输出结果可以看出:该方程迭代次数为4,值趋近-2.82842712474619P129.1

8、1、4x-y=15x+5y=9解:(1)、利用雅克比迭代法,在matlab窗口输入下面命令,得出结果: format long A=4 -1;1 5A=-1 b=15 9b =159 x0=ones(2,1)x0 =11 x,n=Jacobi_Solve(A,b,xO)x =4.000000000000000.99999981250000n =11由输出结果可以看出:该方程迭代次数为11,值x1、x2趋近4.00000000000000、0.99999981250000(2)、利用高斯赛德尔迭代法,在matlab窗口输入下面命令,得出结果: format long A=4 -1;1 5A=4-

9、115 b=15 9b =159 x0=zeros(2,1)x0 =00 x,n=gaussseide(A,b,x0)x =3.999999996093751.00000000078125n =7由输出结果可以看出:该方程迭代次数为7,值x1、x2趋近3.99999999609375、1.00000000078125(3)、利用逐次超松弛迭代法,在matlab窗口输入下面命令,得出结果: format long A=4 -1;1 5A=4-115 b=15 9b =159 x0=0 0x0 =00 x,n=SOR_Solve(A,b,xO,1.25)x =3.999999884327151.0

10、0000006817230n =18由输出结果可以看出:该方程迭代次数为18,值x1、x2趋近3.99999988432715、1.000000068172302、8x-3y=10-1x+4y=6解:(1)、利用雅克比迭代法,在matlab窗口输入下面命令,得出结果: A=8 -3;-1 4A=8-3-14 b=10 6b =106 x0=ones(2,1)x0 =11 x,n=Jacobi_Solve(A,b,x0)x =1.999999745399691.99999983026646n =13由输出结果可以看出:该方程迭代次数为13 ,值xl、x2趋近1.99999974539969、1.

11、99999983026646(2)、利用高斯赛德尔迭代法,在matlab窗口输入下面命令,得出结果: A=8 -3;-1 4A=8-3-14 b=10 6b =106 x0=zeros(2,1)x0 =00 x,n=gaussseide(A,b,x0)x =1.999999952262441.99999998806561n =8由输出结果可以看出:该方程迭代次数为8,值x1、x2趋近1.99999995226244、1.99999998806561(3)、利用逐次超松弛迭代法,在matlab窗口输入下面命令,得出结果: A=8 -3;-1 4A=8-3-14 b=10 6b =106 x0=0

12、 0x0 =00 x,n=SOR_Solve(A,b,x0,1.25)2.000000026164441.99999997837304n =13由输出结果可以看出:该方程迭代次数为8,值xl、x2趋近2.00000002616444、1.999999978373043、-x+3y=16x-2y=2解:(1)、利用雅克比迭代法,在matlab窗口输入下面命令,得出结果: format long A=-1 3;6 -2A=-136-2 b=1 2b =12x0=ones(2,1)x0 =11 x,n=Jacobi_Solve(A,b,x0)迭代次数太多,可能不收敛。x =1.0e+095 *1.328069944379371.32806994437937n =200由输出结果可以看出:该方程迭代次数超过200,值x1、x2可能无解,但输出结果为:x =1.0e+095 *1.328069944379371.32806994437937-16 -2 b=1 2b

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号