第7章matlab解方程与函数极值71线性方程组求解72非线内容摘要:

D=diag(diag(A))。 %求 A的对角矩阵 L=tril(A,1)。 %求 A的下三角阵 U=triu(A,1)。 %求 A的上三角阵 B=D\(L+U)。 f=D\b。 y=B*x0+f。 n=1。 %迭代次数 while norm(yx0)=eps x0=y。 y=B*x0+f。 n=n+1。 end 例 75 用 Jacobi迭代法求解下列线性方程组。 设迭代初值为 0,迭代精度为 106。 在命令中调用函数文件 ,命令如下: A=[10,1,0。 1,10,2。 0,2,10]。 b=[9,7,6]39。 [x,n]=jacobi(A,b,[0,0,0]39。 ,) 2. GaussSerdel迭代法 在 Jacobi迭代过程中,计算时,已经得到,不必再用,即原来的迭代公式 Dx(k+1)=(L+U)x(k)+b可以改进为Dx(k+1)=Lx(k+1)+Ux(k)+b,于是得到: x(k+1)=(DL)1Ux(k)+(DL)1b 该式即为 GaussSerdel迭代公式。 和 Jacobi迭代相比,GaussSerdel迭代用新分量代替旧分量,精度会高些。 GaussSerdel迭代法的 MATLAB函数文件 : function [y,n]=gauseidel(A,b,x0,eps) if nargin==3 eps=。 elseif nargin3 error return end D=diag(diag(A))。 %求 A的对角矩阵 L=tril(A,1)。 %求 A的下三角阵 U=triu(A,1)。 %求 A的上三角阵 G=(DL)\U。 f=(DL)\b。 y=G*x0+f。 n=1。 %迭代次数 while norm(yx0)=eps x0=y。 y=G*x0+f。 n=n+1。 end 例 76 用 GaussSerdel迭代法求解下列线性方程组。 设迭代初值为 0,迭代精度为 106。 在命令中调用函数文件 ,命令如下: A=[10,1,0。 1,10,2。 0,2,10]。 b=[9,7,6]39。 [x,n]=gauseidel(A,b,[0,0,0]39。 ,) 例 77 分别用 Jacobi迭代和 GaussSerdel迭代法求解下列线性方程组,看是否收敛。 命令如下: a=[1,2,2。 1,1,1。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。