- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析实验报告(第一题)
实验名
称
求解线性方程组的迭代法
交报告时 间
2012年1月5日
姓名
班级
学号
成绩
一.实验目的,内容 二、代码
三.数值结果 四.计算结果的分析及心得体会
一实验目的,内容
第一题用Jacobi, G-S,SOR迭代法求线性方程组的解及精度比较
二代码
clear
%输入afn
function [x,loop]=Guess(A,b,eps)
e=input ( e=);
[mfn]=size (A);
a=input (1a=1 );
if n?=m
n=input ( f=■);
disp (1 error 1);
esp=10A(-10);
return;
omega=l;
end
A=zeros(n,n);
x=zeros(n,1);
b=zeros(n,1);
xt = zeros (n,1);
h=l/n;
error=l;
for i=l:n-1
loop=0;
b(i,1)=a*h*h;
while (erroreps)
end
for i=l:n
for i=2:n-1
xt(i)=b (i);
A(i,i)=-(2*e+h);
for j=l:i-1
A(iz i-1)=e;
A(i,i+1)=e+h;
xt (i) =xt (i) -A (i, j) *xt (j);
end
end
A(l, 1)=-(2*e+h);
for j=i+l:n
A(n『n)=-(2*e+h);
A(nA n-1)=e;
Xt(i)=xt(i)-A(i,j)*x (j);
胡店OR求解及迭代次数
end
fprintf ( * JIJSOR求解迭代次数1);
xt (i) =xt (i) /A (i, i);
[xAloop]=SOR(Aa bz omega,eps);
end
fprin(1%d\n1rloop);
error=norm(x-xtf inf);
for i=l:n
x=x t;
fprintf(* %10.7f\nA x (i));
loop=loop+l;
end
end
#川Jacobi求解及迭代次数
fprintf (*用Jacobi求解及迭代次数* );
[xAloop]=Jacobi(Aa bA eps);
fprintf(%d\n,loop);
for i=l:n
fprintf(*%10.7f\n*Ax(i));
end
$用6-$求解及迭代次数
fprintf ( *用G-S求解及迭代次数);
[x, loop]=Guess(A,b,eps);
fprintf(1%d\n1r loop);
for i=l:n
fprin(%10.7d\n,x(i));
end
function [x,loop]=Jacobi (A/b’eps)
[mz n]=size (A);
if n~=m
disp (1 error);
function
return;
[xfloop]=SOR(A,omega,eps)
end
[mrn]=size (A);
x=zeros (nA1);
if n~=m
xt=zeros(nA1);
disp ( 1 error 1);
error=l;
:return;
loop=0;
end
while (erroreps)
x=zeros (n,1);
for i=l:n
xt = zeros (nz1);
xt (i) =b (i);
error=l;
for j=l:i-1
loop=0;
while (erroreps)
xt (i)=xt (i)-A(i, j) *x( j);
for i=l:n
end
xt(i)=b(i);
for j=i+l:n
for j=l:i-1
xt (i)=xt(i)-A(iA j)*x(j);
xt (i)=xt(i)-A(i,j)*xt(j);
end
end
Xt (i)=xt (i) /A(izi);
for j=i+l:n
end
error=norm(x-xtf inf);
Xt(i)=xt(i)-A(i,j)*x (j);
x=x t;
end
loop=loop+l;
xt(i)=omega*xt(i)/A(if i);
end
xt(i)=xt(i) + (1-omega)*x (i);
end
error=norm(x-xt? inf);
x=xt;
loop=loop+l;
end
三数值结果
e=l
baogaoyi
用Jacobi求解及迭代次数
用G-S求解及迭代次数26084
e=l
51063
-2.005
a=l/2
-0.0000249
-2.8780355e-003
n=l 00
-0.0028780
-5.6534413e-003
文档评论(0)