西南交通大学数值分析上机实习Word文件下载.docx

上传人:b****3 文档编号:8323798 上传时间:2023-05-11 格式:DOCX 页数:13 大小:34.03KB
下载 相关 举报
西南交通大学数值分析上机实习Word文件下载.docx_第1页
第1页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第2页
第2页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第3页
第3页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第4页
第4页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第5页
第5页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第6页
第6页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第7页
第7页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第8页
第8页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第9页
第9页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第10页
第10页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第11页
第11页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第12页
第12页 / 共13页
西南交通大学数值分析上机实习Word文件下载.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

西南交通大学数值分析上机实习Word文件下载.docx

《西南交通大学数值分析上机实习Word文件下载.docx》由会员分享,可在线阅读,更多相关《西南交通大学数值分析上机实习Word文件下载.docx(13页珍藏版)》请在冰点文库上搜索。

西南交通大学数值分析上机实习Word文件下载.docx

(2)求sinx=0的根。

初值x0分别取1,1.4,1.6,1.8,3进行计算。

分析其中遇到的现象与问题。

1.1计算结果

(1)方程可变形为x+

注:

x0为初始值,x为收敛解,N为迭代次数

牛顿法

x0

0.1

1

1.5

2

4

x

0.510973

N

5

6

40

牛顿—Steffensen加速法

无收敛解

3

8

(2)

1.4

1.6

1.8

3.14159

31.4159

6.28319

7

-3.14159

25.1327

1.2结果分析

从结果对比我们可发现牛顿—Steffensen加速法比牛顿法要收敛的快,牛顿法对于初值的选取特别重要,比如第

(1)问中的初值为4的情况,迭代次数算了40次,远大于其余初值的情况;

在第

(2)问中的初值为1.6的情况,收敛解得31.4159,分析其原因应该是

,x0=1.6

在牛顿—Steffensen加速法第

(1)问中x=1.5、第二问x=0和3的情况,无收敛解。

第二章Jacobi和Causs-Seidel迭代法比较

用雅格比法与高斯-赛德尔迭代法解下列方程组Ax=b,研究其收敛性,上机验证理论分析是否正确,比较它们的收敛速度,观察右端项对迭代收敛有无影响。

(1)A行分别为A1=[6,2,-1],A2=[1,4,-2],A3=[-3,1,4];

b1=[-3,2,4]T,b2=[100,-200,345]T,

(2)A行分别为A1=[1,0,8,0.8],A2=[0.8,1,0.8],A3=[0.8,0.8,1];

b1=[3,2,1]T,b2=[5,0,-10]T,

(3)A行分别为A1=[1,3],A2=[-7,1];

b=[4,6]T,

2.1计算结果

(1)x0=[0,0,0]T为初始值,N为迭代次数,0.00001为误差精度,X为收敛解

Jacobi迭代

Causs-Seidel迭代

Ax=b1

X

[-0.727271,0.808083,0.252524]

[-0.727275,0.808082,0.252523]

20

12

Ax=b2

[36.3636,-2.0707,114.04]

[36.3636,-2.07071,114.04]

26

17

(2)

[5.76922,0.76922,-4.23075]

37

[36.6923,7.69229,-42.3077]

44

(3)

Ax=b

2.2结果分析

(1)第一小题的雅可比迭代矩阵为

0-0.33330.1667

-0.250000.5000

0.7500-0.25000

其特征值分别为-0.5427,0.2713+0.3708i,0.2713-0.3708i,经计算谱半径为

小于1,故方程组雅可比迭代收敛。

而高斯-赛德尔迭代矩阵为

00.08330.4583

0-0.27080.0104

其特征值为0,0.0469+0.3504i,0.0469-0.3504i经计算谱半径为

0.3535小于1,故原方程组高斯-赛德尔迭代矩阵收敛。

第二小题的雅可比迭代矩阵为

0-0.8000-0.8000

-0.80000-0.8000

-0.8000-0.80000

征值分别为-1.6,0.8,0.8,经计算谱半径为

1.6大于1,故方程组雅可比迭代发散。

00.6400-0.1600

00.12800.7680

其特征值为0,0.7040+0.1280i,0.704280i经计算谱半径为

0.7155小于1,故原方程组高斯-赛德尔迭代矩阵收敛。

第三小题的雅可比迭代矩阵为

0-3

70

其特征值分别为4.5826i,-4.5826i,谱半径为

4.5826大于1,故方程组雅可比迭代发散。

0-3

0-21

其特征值为0,-21,谱半径为

21大于1,故原方程组高斯-赛德尔迭代矩阵发散。

(2)从2.1中的结果列表中可以看到,Causs-Seidel迭代法比Jacobi迭代法收敛速度要快,并且方程组右端项对迭代收敛是无影响的。

第三章观察Runge-Kutta4阶算法稳定区间的作用

用Runge-Kutta4阶算法对初值问题y/=-20*y,y(0)=1按不同步长求解,用于观察稳定区间的作用,推荐两种步长h=0.1,0.2。

此方程的精确解为:

3.1计算结果

=1.0

h=0.1

h=0.2

1.69351

3125

1.6933

3.2结果分析

h=0.2时,

h=-4,而Runge-Kutta4阶算法的绝对稳定区间是[-2.78,0],故h=0.2时计算不稳定;

而h=0.1时,

h=-2,在绝对稳定区间内,计算稳定,结果可靠。

总结

通过这次上机练习,让我对数值分析所介绍的迭代求解方法及其理论有了更深层次的理解,了解了各种方法之间的优缺点,并且认识到了自己在以前的学习中所存在的问题,及时的修补了自己知识上的漏洞。

同时也提高了我在编写程序上的熟练程度,所以,我认为这次上机实习是非常有收获的,给予我学习数值分析的帮助也是非常大的。

附录

1.1第

(1)问牛顿法

#include<

iostream>

cmath>

usingnamespacestd;

intmain()

{

doublex,x0;

inti=0;

cout<

<

"

请输入初值:

;

cin>

>

x0;

do

{

x=x0;

x0=x0-(x0+sin(x0)-1)/(1+cos(x0));

i++;

}while(fabs(x-x0)>

=0.000001);

x="

x0<

endl;

N="

i<

return0;

}

1.2第

(1)问牛顿—Steffensen加速法

doublex,x0,x1,x2;

x1=x0-(sin(x0)+x0-1)/(cos(x0)+1);

x2=x1-(sin(x1)+x1-1)/(cos(x1)+1);

x0=x0-(x1-x0)*(x1-x0)/(x2-2*x1+x0);

1.3第

(2)问牛顿法

x0=x0-sin(x0)/cos(x0);

1.4第

(2)问牛顿—Steffensen加速法

x1=x0-sin(x0)/cos(x0);

x2=x1-sin(x1)/cos(x1);

2.1雅格比法

doublea[10][10],b[10],sum=0.0,x[10],y[10],c,s=0.0;

inti,k=0,n,j;

请输入维数:

n;

请输入数组A:

for(i=0;

i++)

for(j=0;

j<

j++)

cin>

a[i][j];

请输入数组B:

cin>

b[i];

请输入初始X:

x[i];

{for(i=0;

{for(j=0;

i;

sum=sum+a[i][j]*x[j];

for(j=i+1;

y[i]=(b[i]-sum)/a[i][i];

sum=0;

}

c=0;

if(c<

fabs(x[i]-y[i]))

c=fabs(x[i]-y[i]);

if(c>

0.00001)

c=0;

elses=1;

x[i]=y[i];

k++;

}while(s!

=1);

cout<

解为:

x[i]<

k<

2.2高斯-赛德尔迭代法

doublea[10][10],b[10],sum=0.0,x[10],y[10],c,s=0.0,z[10];

{for(i=1;

z[i]=x[i];

for(i=0;

x[i]=y[i];

fabs(z[i]-y[i]))

c=fabs(z[i]-y[i]);

z[i]=y[i];

doublex,y0=1,k1,k2,k3,k4,y,h,y1;

inti;

请输入x值:

x;

请输入步长:

h;

y1=exp((-20)*x);

(x/h);

y=y0;

k1=h*(-1)*20*y;

k2=h*(-1)*20*(y+k1/2);

k3=h*(-1)*20*(y+k2/2);

k4=h*(-1)*20*(y+k3);

y0=y0+(k1+2*k2+2*k3+k4)/6;

}

y="

y0<

y(x)="

y1<

误差="

fabs(y0-y1)<

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

当前位置:首页 > PPT模板 > 动态背景

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2