用Matlab 或C语言 都可以 最好能再加点分析过程
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/05 12:33:17
用Matlab 或C语言 都可以 最好能再加点分析过程
给出线性方程组HnX=b,其中系数矩阵Hn为希尔伯特矩阵:
Hn=(hij),hij=1/(i+j-1),i,j=1,2,……n.
假设X*=(1,1,…,1)T,b=HnX*.若取n=6,8,10,分别用雅可比迭代法及SOR迭代(w=1,1.25,1.比较计算结果
给出线性方程组HnX=b,其中系数矩阵Hn为希尔伯特矩阵:
Hn=(hij),hij=1/(i+j-1),i,j=1,2,……n.
假设X*=(1,1,…,1)T,b=HnX*.若取n=6,8,10,分别用雅可比迭代法及SOR迭代(w=1,1.25,1.比较计算结果
![用Matlab 或C语言 都可以 最好能再加点分析过程](/uploads/image/z/17790952-40-2.jpg?t=%E7%94%A8Matlab+%E6%88%96C%E8%AF%AD%E8%A8%80+%E9%83%BD%E5%8F%AF%E4%BB%A5+%E6%9C%80%E5%A5%BD%E8%83%BD%E5%86%8D%E5%8A%A0%E7%82%B9%E5%88%86%E6%9E%90%E8%BF%87%E7%A8%8B)
雅克比迭代法
function [x,n]=jacobi(A,b,x0,eps,varargin)
if nargin==3
eps= 1.0e-6;
M = 200;
elseif nargin=eps
x0=x;
x=B*x0+f;
n=n+1;
if(n>=M)
disp('Warning:迭代次数太多,可能不收敛!');
return;
end
end
sor
function [x,n]=SOR(A,b,x0,w,eps,M)
if nargin==4
eps= 1.0e-6;
M = 200;
elseif nargin=eps
x0=x;
x =B*x0+f;
n=n+1;
if(n>=M)
disp('Warning:迭代次数太多,可能不收敛!');
return;
end
end
function [x,n]=jacobi(A,b,x0,eps,varargin)
if nargin==3
eps= 1.0e-6;
M = 200;
elseif nargin=eps
x0=x;
x=B*x0+f;
n=n+1;
if(n>=M)
disp('Warning:迭代次数太多,可能不收敛!');
return;
end
end
sor
function [x,n]=SOR(A,b,x0,w,eps,M)
if nargin==4
eps= 1.0e-6;
M = 200;
elseif nargin=eps
x0=x;
x =B*x0+f;
n=n+1;
if(n>=M)
disp('Warning:迭代次数太多,可能不收敛!');
return;
end
end