| 查看: 722 | 回复: 0 | ||
1312758691新虫 (小有名气)
|
[求助]
SOR迭代
|
|
方法一:建立了SOR.m的脚本文件,实现的是SOR迭代,程序语言如下: %SOR迭代 clear; clc; format long; i=1; n=6; H=hilb(n); X=ones(n,1); b=H*X; x0=zeros(n,1); w=1; D=diag(diag(H)); U=-triu(H,1); L=-tril(H,-1); B=(D-w*L)\((1-w)*D+w*U); f=(D-w*L)\b; x=B*x0+f Epsilon=norm(x-x0,inf); while(Epsilon>0.0001) i=i+1 x=B*x0+f Epsilon=norm(x-x0,inf); x0=x; end 方法二: 建立函数文件f_sor.m,程序如下: function [x,i]=f_sor(A,b,x0,e,w) %SOR迭代求解线性方程组H_n x=b,其中系数矩阵H_n为希尔伯特矩阵 %A系数矩阵 %b常数列向量 %x0初值列向量 %e收敛精度 %w松弛因子 format long; i=1; D=diag(diag(A)); U=-triu(A,1); L=-tril(A,-1); B=(D-w*L)\((1-w)*D+w*U); f=(D-w*L)\b; x=B*x0+f; Epsilon=norm(x-x0,inf); while(Epsilon>e) i=i+1; x=B*x0+f; Epsilon=norm(x-x0,inf); x0=x; end 然后建立脚本文件study1.m调用函数f_sor迭代求解,脚本文件程序如下: clear; clc; n=6; a=hilb(n); t=0.5*ones(n,1); e=0.0001; X=ones(n,1); b=a*X; w=1; [x,i]=f_sor(a,b,t,e,w) 问题:为什么两种方法迭代得到的解有出入?而且迭代的次数相差较大? 谢谢! |
» 猜你喜欢
应该是93bebmhtak前后十一个字符比较关键
已经有35人回复
长年满屏的广告,版主太不责任了。基金也等的急
已经有3人回复
filecode
已经有12人回复
不应该看fileCode
已经有4人回复
FileCode能看出啥?
已经有19人回复
2019年青年基金涵评意见,大家看看几个A,几个B?
已经有5人回复
职称评审,求友友推荐见刊最快的期刊
已经有4人回复
奇怪,两个人的filecode固定段从头到尾一模一样
已经有10人回复
综述论文作为代表作会不会影响评审专家的印象分?
已经有13人回复
是这周出结果还是下周出结果?
已经有3人回复










回复此楼