东南大学数值分析上机作业汇总-1-2023修改整理_第1页
东南大学数值分析上机作业汇总-1-2023修改整理_第2页
东南大学数值分析上机作业汇总-1-2023修改整理_第3页
东南大学数值分析上机作业汇总-1-2023修改整理_第4页
东南大学数值分析上机作业汇总-1-2023修改整理_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

千里之行,始于足下让知识带有温度。第第2页/共2页精品文档推荐东南大学数值分析上机作业汇总数值分析上机报告

院系:

学号:

姓名:

名目

作业1、舍入误差与有效数(1)

1、函数文件(1)

2、函数文件(1)

3、两种办法有效位数对照(1)

4、心得(2)

作业2、Newton迭代法(2)

1、通用程序函数文件(2)

2、局部收敛性(3)

(1)最大δ值文件(3)

(2)验证局部收敛性(4)

3、心得(5)

作业3、列主元素Gauss消去法(6)

1、列主元Gauss消去法的通用程序(6)

2、解题中线性方程组(7)

3、心得(8)

作业4、三次样条插值函数(8)

1、第一型三次样条插值函数通用程序:(8)

2、数据输入及计算结果(10)

作业1、舍入误差与有效数

设∑

=-=N

jNjS2

2

11

,其精确值为??

???1112321NN.(1)编制按从小到大的挨次11

131121222-?

??+-+-=NSN,计算NS的通用程序;(2)编制按从大到小的挨次()1

21

11111222-???+--+-=NNSN,计算NS的通用程序;

(3)按两种挨次分离计算642101010,,SSS,并指出有效位数;(4)通过本上机你明了了什么

程序:

1、函数文件

functionS=cxdd(N)S=0;i=;

while(i>):

S=cxdd(80)S=

2、函数文件

functionS=cddx(N)S=0;fori=N:-1:2S=S+1/(i*i-1);end

script运行结果(省略>>):S=cddx(80)S=

3、两种办法有效位数对照

精确值函数:

functionS=jqz(N)S=*运行结果(省略>>)

4、心得

本题重点体现了数值计算中“大数吃小数”的问题,因为计算机计算的截断特点,从大到小的计算会导致小数的有效数被忽视掉。

从题中可以看出,看出按不同的挨次计算的结果是不相同的,按从小到大的挨次计算的值与精确值吻合,而按从大到小的挨次计算的值与精确值有较大的误差。计算机在举行数值计算时会浮现“大数吃小数”的现象,导致计算结果的精度有所降低。

作业2、Newton迭代法

(1)给定初值x

及容许误差ε,编制Newton法解方程f(x)=0根的通用程序。

(2)给定方程f(x)=x3/3-x=0,易知其有三个根x

1※=3

-,x

2

※=0,x

3

※=3。

①由Newton办法的局部收敛性可知存在δ>0,当x0∈(δ

-,δ),Newton迭

代序列收敛于根x

2

※,试确定尽可能大的δ;

②试取若干个初始值,观看当x

0∈(-∞,-1),(-1,δ

-),(δ

-,δ),(δ,

1),(1,+∞)时,Newton序列是否收敛以及收敛于哪一个根。(3)通过本上机题,你明了了什么

1、通用程序函数文件

定义f(x)函数

functionf=fun(x)

f=x^3/3-x;

end

定义f(x)导函数

functionf=dfun(x)

f=x*x-1;

end

定义求近似解函数

function[f,n]=newton(x0,ep)

flag=1;

n=0;

while(flag==1)

x1=x0-fun(x0)/dfun(x0);

n=n+1;

if(abs(x1-x0)100000)

flag=0;

end

x0=x1;

end

f=x1;

end

script运行结果

clear;

x0=input('请输入初始值x0:');

ep=input('请输入容许误差:');

[f,n]=newton(x0,ep);

fprintf('方程的一个近似解为:%f\n',x1);

2、局部收敛性

(1)最大δ值文件

flag=1;

k=1;

x0=0;

whileflag==1

sigma=k*10^-6;

x0=sigma;

k=k+1;

m=0;

flag1=1;

whileflag1==1

ifabs(x1-x0)=10^-6)

flag=0;

end

end

fprintf('最大值为:%f\n',sigma);

运行结果为:

最大值为:

即得最大的δ为,Newton迭代序列收敛于根*

x=0的最大区间为(,)。

2

(2)验证局部收敛性

在x0∈(-∞,-1)区间,取以下初值,分离调用函数文件,得到结果如下:

X0X1迭代次数

-10015

-2022

-58

5

结果显示,以上初值迭代序列均收敛于,即根*

x。

1

明显,迭代格式初值的挑选对于迭代的收敛速度是至关重要的,当时值临近真切值的时候,迭代次数削减。

在x0∈(-1,δ

-)区间,取以下初值,分离调用函数文件,得到结果如下:

X0X1迭代次数

9

6

10

15

计算结果显示,迭代序列局部收敛于,即根*

x。

3

在x0∈(δ

-,δ)区间,取以下初值,分离调用函数文件,得到结果如下:

X0X1迭代次数

5

3

3

3

3

5

由的运行过程表明,在囫囵区间上均收敛于0,即根*

x。

2

在x0∈(,1)区间,取以下初值,分离调用函数文件,得到结果如下:

X0X1迭代次数

10

7

9

12

计算结果显示,迭代序列局部收敛于,即根*

x。

1

在x0∈(1

X0X1迭代次数

5

58

2022

10015

结果显示,以上初值迭代序列均收敛于,即根*

x。

3

综上所述:(-∞,-1)区间收敛于,(-1,δ)区间局部收敛于,局部收敛于,(-δ,δ)区间收敛于0,(δ,1)区间类似于(-1,δ)区间,(1,∞)收敛于。3、心得

牛顿迭代法对于初值的挑选要求较高,因此,在牛顿迭代时可现通过容易迭代法寻觅相对精确     一些的值来举行牛顿迭代。

对于方程有多解的问题,Newton法求方程根时,牛顿迭代要考虑局部收敛的问题,迭代序列收敛于某一个根有一定的区间限制,在一个区间上,可能会局部收敛于不同的根。

作业3、列主元素Gauss消去法

对于某电路的分析,归结为求解线性方程组RI=V。

32-13000-10000

-1335-90-110000

0-931-1000000

R=000-3057-70-50

0000-747-3000

00000-304100

0000-50027-2

000-9000-229

VT=[-15,27,-23,0,-20,12,-7,7,10]T

(1)编制解n阶线性方程组Ax=b的列主元Gauss消去法的通用程序;

(2)用所编程序解线性方程组RI=V,并打印出解向量,保留5位有效数字;(3)在本编程之中,你提高了那些编程能力。

1、列主元Gauss消去法的通用程序

函数:

找每列的主元的函数

functionB=zhuyuan(B,t,N,M)

fori=0:N-1-t

ifB(N-i,t)>B(N-i-1,t)

c=zeros(1,M);

forj=1:M

c(j)=B(N-i,j);

B(N-i,j)=B(N-i-1,j);

B(N-i-1,j)=c(j);

end

end

end

举行列消去的函数

functionB=xiaoqu(B,t,N,M)

fori=t+1:N

l=B(i,t)/B(t,t);

forj=t:M

B(i,j)=B(i,j)-l*B(t,j);

end

end

举行三角矩阵下的解函数

functionX=jie(X,B,N,M)

fori=1:N-1

s=B(N-i,M);

forj=N-i+1:N

s=s-B(N-i,j)*X(j);

end

X(N-i)=s/B(N-i,N-i);

end

执行主程序:

N=input('请输入线性方程组的阶数:N=');

M=input('请输入增广矩阵阶数:M=');

b=zeros(1,N);

A=zeros(N,N);

A=input('请输入系数矩阵:');

b(1,:)=input('请输入方程组的右端向量:');

b=b';

B=[A,b];

fort=1:N-1

B=zhuyuan(B,t,N,M);

B=xiaoqu(B,t,N,M);

end

X=zeros(N,1);

X(N)=B(N,M)/B(N,N);

X=jie(X,B,N,M);

X

2、解题中线性方程组

执行程序,输入矩阵A(即题中的矩阵R)和列向量b(即题中的V),如下:请输入线性方程组的阶数:n=9

请输入增广矩阵阶数:m=10

请输入系数矩阵A:

A=[31,-13,0,0,0,-10,0,0,0,-15;-13,35,-9,0,-11,0,0,0,0,27;0,-9,31,-10,0,0,0,0,0,-23;0,0,-10,79,-30,0,0,0,-9,0;0,0,0,-30,57,-7,0,-5,0,-20;0,0,0,0,-7,47,-30,0,0,12;0,0,0,0,0,-30,41,0,0,-7;0,0,0,0,-5,0,0,27,-2,7;0,0,0,-9,0,0,0,-2,29,10];

请输入方程组的右端向量b:[-1527-230-2012-7710]

得到如下结果:

A=

31-13000-10000-15

-1335-90-11000027

0-931-1000000-23

00-1079-30000-90

000-3057-70-50-20

0000-747-300012

00000-304100-7

0000-50027-27

000-9000-22910

x=

3、心得

列主元Gauss最重要的就是如何通过找到最大主元,并交换行,如何举行消去,这需要很精心的循环,和很复杂的嵌套,通过本题的编程,感觉个人对于这种多层嵌套循环的处理能力提高了无数。

通过对软件的编程,也越发理解了Gauss消去法的实质。

作业4、三次样条插值函数

(1)编制求第一型3次样条插值函数的通用程序;

(2)已知汽车门曲线型值点的数据如下:

端点条件为

'

y=,'

10

y=,用所编程序求车门的3次样条差值函数S(x),并

打印出S(i+),i=0,1······9。

1、第一型三次样条插值函数通用程序:

n=input('请输入节点数n:');

n=n+1;

xn=zeros(1,n);

yn=zeros(1,n);

xn(1,:)=input('请输入X的值:');

yn(1,:)=input('请输入Y的值:');

dy0=input('请输入边界条件y(0):');

dyn=input('请输入边界条件y(n):');

d=zeros(n,1);

h=zeros(1,n-1);

f2=zeros(1,n-2);

fori=1:n-1

h(i)=xn(i+1)-xn(i);%求一阶差商

f1(i)=(yn(i+1)-yn(i))/h(i);

end

fori=2:n-1

f2(i)=(f1(i)-f1(i-1))/(xn(i+1)-xn(i-1));%求二阶差商

d(i)=6*f2(i);

end

d(1)=6*(f1(1)-dy0)/h(1);

d(n)=6*(dyn-f1(n-1))/h(n-1);

A=zeros(n);%求M值

u=zeros(1,n-2);

r=zeros(1,n-2);

fori=1:n-2

u(i)=h(i)/(h(i)+h(i+1));

r(i)=1-u(i);

end

A(1,2)=1;

A(n,n-1)=1;

fori=1:n

A(i,i)=2;

end

fori=2:n-1

A(i,i-1)=u(i-1);

A(i,i+1)=r(i-1);

end

M=A\d;

symsx

fori=1:n-1%求节点插值

Sx(i)=collect(yn(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i))*(x-xn(i))+M(i)/2*(x-xn(i))^2+(M(i+1)-M(i))/(6*h(i))*(x-xn(i))^3);

Sx(i)=vpa(Sx(i),4);

end

fori=1:n-1

x=xn(i)+;

S(i)=yn(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i))*(x-xn(i))

+M(i)/2*(x-xn(i))^2+(M(i+1)-M(i))/(6*h(i))*(x-xn(i))^3;

end

disp('S(x)=');%结果输出

fori=1:n-1

fprintf('%s(%d,%d)\n',char(Sx(i)),xn(i),xn(i+1));

disp('··············································');

end

disp('S(i+');

disp('ix(i+S(i+')

fori=1:n-1

fprintf('%d%.4f%.4f\n',i,xn(i)+,S(i))

end

2、数据输入及计算结果

请输入节点数n:10

请输入X的值:[012345678910]

请输入Y的值:[]

请输入边界条件y(0):

请输入边界条件y(n):

S(x)=

-*x^3-*x^2+*x+(0,1)

·············································

-*x^3-*x^2+*x+(1,2)

····

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论