MATLAB中SOR迭代法如何球迭代次数及迭代后的值?

如题所述

第1个回答  2019-04-06
function
[x
n]=sor(A,b,x0,w,eps,M)
%x值
%n迭代次数
%
A系数矩阵
%
b
方程组右端项
%
w
松弛因子
%
eps
精度要求,默认1e-5
%
M
最大迭代次数,默认100
第2个回答  2019-01-20
function
[n,x]=sor22(a,b,x,nm,w,ww)
%用超松弛迭代法求解方程组ax=b
%输入:a为方程组的系数矩阵,b为方程组右端的列向量,x为迭代初值构成的列向量,nm为最大迭代次数,w为误差精度,ww为松弛因子
%输出: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-ww*l)*((1-ww)*d+ww*u);
%计算迭代矩阵
g=ww*inv(d-ww*l)*b;
%计算迭代格式中的常数项
%下面是迭代过程
while
n<=nm
x=m*x+g;
%用迭代格式进行迭代
if
norm(x-x,'inf')
评论
0
0
加载更多
相似回答
大家正在搜