《数值计算方法》(第二版) 数值计算实验 matlab 有截图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值计算方法

(第二版)

数值实验

学院信息学院专业计算机应用技术姓名张书涵学号12077503005

任课老师孙云平使用软件MATLAB 7.0

2012 年12 月15日

一、实验目的和意义

1、通过上机学会matlab数学软件的使用,根据算法2.2的思想和步骤,实现解三对角方程组的追赶法。

2、运用所学的三种迭代法即Jacobi迭代法、Gauss-Seidel迭代法、共轭梯度法算法的思想和步骤,解各类线性方程组,编出算法程序。

3、根据插值法的思想,掌握样条插值的步骤和思想,并根据样本值用matlab软件绘制图形,熟悉了matlab的绘图函数。

4、只有通过动手编程,才能意识到自己对课本上知识的欠缺。通过本次实验,复习本学期所学知识,查漏补缺。

二、实验环境

matlab7.0

三、实验结果

第一章误差

1.利用循环语句,计算数列√5,√√5,√√√5,……的极限,要求误差小于10^-8。程序设计如下:

x =sqrt(5);

m=0;

while abs(x-m)>1e-8

m=result;

x=sqrt(x);

end

x

运行结果:

第二章 解线性方程组的直接解法

14. 考虑梯形电阻电路的设计,电路如下:

电路中的各个电流{1i ,2i ,…,8i }须满足下列线性方程组:

R V i i =- 22 21

0 252321=-+-i i i 0 252 432=-+-i i i 0 252 543=-+-i i i 0 252 654=-+-i i i 0 252 765=-+-i i i 0 252 876=-+-i i i 052 87=+-i i

这是一个三对角方程组。设V 220=V ,Ω=27R ,运用追赶法,求各段电路的电流量。 程序设计如下:

a=[0 -2 -2 -2 -2 -2 -2 -2]; b=[2 5 5 5 5 5 5 5]; c=[-2 -2 -2 -2 -2 -2 -2]; d=[8.1481 0 0 0 0 0 0 0]; for i=2:8 a(i)=a(i)/b(i-1); b(i)=b(i)-c(i-1)*a(i); d(i)=d(i)-a(i)*d(i-1); end;

d(8)=d(8)/b(8); for i=7:-1:1

d(i)=(d(i)-c(i)*d(i+1))/b(i); end;

x=d; x

运行结果:

第三章 解线性方程组的迭代法

14. 试分别用(1)Jacobi 迭代法;(2)Gauss-Seidel 迭代法;(3)共轭梯度法解线性方程组

⎥⎥⎥⎥⎥⎥⎦⎤⎢

⎢⎢⎢⎢⎢⎣⎡--=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡--------1217142712151

5

3

4

11232353712321914321

10

54321x x x x x

迭代初始向量取)

0(x =(0,0,0,0,0T

)。

解:(1)Jacobi 迭代法程序设计如下

clear clc i=1;

a=[10 1 2 3 4;1 9 -1 2 -3;2 -1 7 3 -5;3 2 3 12 -1;4 -3 -5 -1 15]; d=diag(diag(a)); l=d-tril(a); u=d-triu(a); d0=inv(d);

b=[12;-27;14;-17;12]; x0=zeros(5,1); B=d0*(l+u); f=d0*b; x=B*x0+f;

while norm(x-x0,inf)>=1e-8 x0=x; x=B*x0+f; i=i+1; end x i

运行结果:

(2)gauss-seidel迭代法程序设计如下:

clear

clc

i=1;

a=[10 1 2 3 4;1 9 -1 2 -3;2 -1 7 3 -5;3 2 3 12 -1;4 -3 -5 -1 15]; d=diag(diag(a));

l=d-tril(a);

u=d-triu(a);

b=[12;-27;14;-17;12];

x0=zeros(5,1);

B=inv(d-l)*u;

f=inv(d-l)*b;

x=B*x0+f;

while norm(x-x0,inf)>=1e-8

x0=x;

x=B*x0+f;

i=i+1;

end

x

i

运行结果:

(3)共轭梯度法程序设计如下:

A=[10 1 2 3 4;1 9 -1 2 -3;2 -1 7 3 -5;3 2 3 12 -1;4 -3 -5 -1 15];

b=[12;-27;14;-17;12];

x0=[0;0;0;0;0];

d0=b-A*x0;

r0=d0;

lamdr0=(r0*d0)/(d0*(A*d0));

x1=x0+lamdr0*d0;

k=0;Nmax=1000;

while abs(norm(x1-x0,inf))>1e-8 & k

r0=b-A*x1;

beta=-(r0*(A*d0))/(d0*(A*d0));

d0=r0+beta*d0;

lamdr0= r0*d0/(d0*(A*d0));

x0=x1;

x1=x1+lamdr0*d0;

k=k+1;

end;

x1

k

运行结果:

第五章插值法

已知直升机旋转机翼外形轮廓线上某些型值点的数据: K X k Y k K X k Y k

1 520 0

2 280 -30

3 156.6 -36

4 78 -35

5 39.62 -28.44

6 3.1 -9.4

7 0 0 8 3.1 9.4

9 39.62 28.44

10 78 35

11 156.6 36

12 280 30

13 520 0

相关文档
最新文档