手算高斯赛德尔迭代法求解方程

祇想變乖 3个月前 已收到1个回答 举报

有你才快乐 1星

共回答了117个问题采纳率:91.7% 评论

1. 用雅克比迭代法和高斯--赛德尔迭代法求解下列方程组,取迭代初值[0;0;0]。 (1) 编程求解,并与用数学软件求解的结果对比。 (2) 考察迭代法的收敛性,若均收敛,对比两种方法的收敛速度。 解:源程序: ①雅克比迭代法:建立函数文件jacobi.m function [n,x]=jacobi(A,b,X,nm,w) %用雅克比迭代法求解方程组Ax=b %输入:A为方程组的系数矩阵,b为方程组右端的列向量,X为迭代初值构成的列向量,nm为最大迭代次数,w为误差精度 %输出:x为求得的方程组的解构成的列向量,n为迭代次数 n=1; m=length(A); D=diag(diag(A)); %令A=D-L-U,计算矩阵D L=tril(-A)+D; %令A=D-L-U,计算矩阵L U=triu(-A)+D; %令A=D-L-U,计算矩阵U M=inv(D)*(L+U); %计算迭代矩阵 g=inv(D)*b; %计算迭代格式中的常数项 %下面是迭代过程 while n<=nm x=M*X+g; %用迭代格式进行迭代 if norm(x-X,2)

5小时前

42
可能相似的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 service@wdace.com