数值分析课程设计比较各种迭代收敛速度模板Word格式.docx

上传人:b****5 文档编号:15964793 上传时间:2022-11-17 格式:DOCX 页数:9 大小:42.60KB
下载 相关 举报
数值分析课程设计比较各种迭代收敛速度模板Word格式.docx_第1页
第1页 / 共9页
数值分析课程设计比较各种迭代收敛速度模板Word格式.docx_第2页
第2页 / 共9页
数值分析课程设计比较各种迭代收敛速度模板Word格式.docx_第3页
第3页 / 共9页
数值分析课程设计比较各种迭代收敛速度模板Word格式.docx_第4页
第4页 / 共9页
数值分析课程设计比较各种迭代收敛速度模板Word格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

数值分析课程设计比较各种迭代收敛速度模板Word格式.docx

《数值分析课程设计比较各种迭代收敛速度模板Word格式.docx》由会员分享,可在线阅读,更多相关《数值分析课程设计比较各种迭代收敛速度模板Word格式.docx(9页珍藏版)》请在冰豆网上搜索。

数值分析课程设计比较各种迭代收敛速度模板Word格式.docx

X=gsdddy(A,b,X0,inf,0.00001,100)

雅可比迭代误差计算:

x0=[3.42863.71433.4286];

%此为方程组的真实值

x1=[2.50003.00003.31253.37503.41413.42193.42683.42773.42833.42853.42853.4286];

x2=[2.00003.25003.50003.65633.68753.70703.71093.71343.71393.71423.71423.7143];

x3=[2.50003.00003.31253.37503.41413.42193.42683.42773.42833.42853.42853.4286];

formatlong

%循环求二范数的平方

fori=1:

12

t(i)=(x1(i)-3.4286)^2+(x2(i)-3.7143)^2+(x3(i)-3.4286)^2;

sqrt(t(i))

end

高斯—塞德尔迭代误差计算:

x1=[2.50003.15633.39453.42433.42803.42853.4286];

x2=[2.62503.57813.69733.71223.71403.71433.7143];

x3=[3.15633.39453.42433.42803.42853.42863.4286];

6

s(i)=(x1(i)-3.4286)^2+(x2(i)-3.7143)^2+(x3(i)-3.4286)^2;

sqrt(s(i))

表一

雅可比迭代

高斯—塞德尔迭代

次数

X1

X2

X3

误差

1

2.5000

2.0000

2.1594954

2.6250

3.1563

1.4570586

2

3.0000

3.2500

0.7635250

3.5781

3.3945

0.3063667

3

3.3125

3.5000

0.2699683

3.6973

3.4243

0.0383445

4

3.3750

3.6563

0.0954459

3.7122

3.4280

0.0048229

5

3.4141

3.6875

0.0337452

3.7140

3.4285

0.0006782

3.4219

3.7070

0.0119612

3.7143

3.4286

0.0000999

7

3.4268

3.7109

0.0042474

8

3.4277

3.7134

0.0015588

9

3.4283

3.7139

0.0005831

10

3.7142

0.0001732

11

注:

MATLAB计算的误差为16位有效数字,由于表的位置有限,这里只取8位有效数字

画图比较:

画图函数:

k=1:

12;

x=[2.15949540.76352500.26996830.09544590.03374520.01196120.00424740.00155880.00058310.00017320.00017320];

%J的迭代误差

plot(k,x,'

b'

holdon

y=[1.45705860.30636670.03834450.00482290.00067820.0];

%G-S的迭代误差

plot(k,y,'

-.'

legend('

J迭代'

'

G-S迭代'

)%画出图形,标明各曲线的含义

title('

误差图'

);

%加上标题

text(k

(1),x

(1),'

start'

)%注明起始和终止点

text(k(11),x(11),'

end'

xlabel('

K迭代次数'

%标注横,纵坐标

ylabel('

误差'

gridon%画出网格

结论:

从数据图表可观察到:

雅可比的迭代次数明显比高斯塞德尔的迭代次数要多,因此高斯塞德尔比雅可比迭代的收敛速度快.

G-S迭代与J迭代在本质上没有必然的联系,求解方程组时,J迭代的速度与G-S迭代收敛的速度没有确定的关系,但在此题中,J迭代比G-S迭代的收敛速度慢。

超松弛迭代法最佳松弛因子选取

编写文件名为sor.m的M文件(见附录三)

得到结果如下表(全部结果的部分,包含最少迭代次数的松弛因子):

D=

2.905

4.000

5.4096

max=

x0=

3.42857.77143.428

松弛因子

迭代次数

0.1000

45

0.2500

13

0.3000

24

0.1500

28

0.2550

0.3200

37

0.

19

0.2600

0.3400

66

x2=

3.7273.76313.727

ans=

0.00013.000

最佳松弛因子

=0.2550,使得迭代次数最少且结果最接近真实值。

附录一:

functionX=jacdd(A,b,X0,P,wucha,max1)

[nm]=size(A);

forj=1:

m

a(j)=sum(abs(A(:

j)))-2*(abs(A(j,j)));

n

ifa(i)>

=0

disp('

系数矩阵A不是严格对角占优,此雅可比迭代不一定收敛'

return

ifa(i)<

系数矩阵A不是严格对角占优,方程有唯一解,且雅可比迭代收敛'

fork=1:

max1

k

X(j)=(b(j)-A(j,[1:

j-1,j+1:

m])*X0([1:

m]))/A(j,j);

X,djwcX=norm(X'

-X0,P);

xdwcX=djwcX/(norm(X'

P)+eps);

X0=X'

X1=A\b;

if(djwcX<

wucha)&

(xdwcX<

wucha)

雅可比迭代收敛,方程组的精确解jX和近似解如下'

if(djwcX>

(xdwcX>

雅可比迭代次数已经超过最大迭代次数max1'

a,X=X;

jX=X1'

附录二

functionX=gsdddy(A,b,X0,P,wucha,max1)

D=diag(diag(A));

U=-triu(A,1);

L=-tril(A,-1);

dD=det(D);

ifdD==0

因为对角矩阵D奇异,此方程组无解'

else

因为对角矩阵D非奇异,此方程组有解'

iD=inv(D-L);

B2=iD*U;

f2=iD*b;

jX=A\b;

X=X0;

X1=B2*X+f2;

djwcX=norm(X1-X,P);

xdwcX=djwcX/(norm(X,P)+eps);

wucha)|(xdwcX<

k,X1'

k=k+1;

X=X1;

G-S迭代收敛,此A的分解矩阵D,U,L和方程组的精确解jX和近似解X如下'

G-S迭代的结果没有达到给定的精度,而且迭代次数已经超过最大迭代次数max1,方程组的精确解jX和近似解X如下'

X=X'

jX=jX'

D,U,L,jX=jX'

附录三

D=eig(A)%求矩阵的特征值

max=D(1,1);

%经过循环求出最大特征值

fori=2:

ifD(i,1)>

=max

max=D(i,1);

max%矩阵A的最大特征值

x0=inv(A)*b%求方程组的精确解

%经过松弛因子的不同选取及Richardson迭代求解

%并依据迭代次数的不同选出最佳松弛因子

forw=0.1:

0.005:

(2/max)%松弛因子取值范围最大到矩阵A的最大特征值分之2

x1=[0;

0;

0];

B=eye(3)-w*A;

f=w*b;

k=0;

whilenorm(x1-x0)>

=1e-5%迭代结果与精确解二范数之差小于10e-5迭代结束

x2=B*x1+f;

x1=x2;

k=k+1;

formatlong;

x2=[x2

(1)x2

(2)x2(3)]%迭代结果

[wk]%选取的松弛因子及迭代次数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1