| 查看: 690 | 回复: 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) 问题:为什么两种方法迭代得到的解有出入?而且迭代的次数相差较大? 谢谢! |
» 猜你喜欢
085700资源与环境308求调剂
已经有7人回复
265求调剂
已经有5人回复
279分求调剂 一志愿211
已经有3人回复
求调剂
已经有3人回复
一志愿吉林大学材料学硕321求调剂
已经有12人回复
286分人工智能专业请求调剂愿意跨考!
已经有3人回复
329求调剂
已经有5人回复
申请回稿延期一个月,编辑同意了。但系统上的时间没变,给编辑又写邮件了,没回复
已经有4人回复
材料学硕318求调剂
已经有5人回复
一志愿中国海洋大学,生物学,301分,求调剂
已经有6人回复













回复此楼
10