数值分析上机题matlab版东南大学.docx

上传人:b****1 文档编号:337190 上传时间:2023-04-29 格式:DOCX 页数:31 大小:837.74KB
下载 相关 举报
数值分析上机题matlab版东南大学.docx_第1页
第1页 / 共31页
数值分析上机题matlab版东南大学.docx_第2页
第2页 / 共31页
数值分析上机题matlab版东南大学.docx_第3页
第3页 / 共31页
数值分析上机题matlab版东南大学.docx_第4页
第4页 / 共31页
数值分析上机题matlab版东南大学.docx_第5页
第5页 / 共31页
数值分析上机题matlab版东南大学.docx_第6页
第6页 / 共31页
数值分析上机题matlab版东南大学.docx_第7页
第7页 / 共31页
数值分析上机题matlab版东南大学.docx_第8页
第8页 / 共31页
数值分析上机题matlab版东南大学.docx_第9页
第9页 / 共31页
数值分析上机题matlab版东南大学.docx_第10页
第10页 / 共31页
数值分析上机题matlab版东南大学.docx_第11页
第11页 / 共31页
数值分析上机题matlab版东南大学.docx_第12页
第12页 / 共31页
数值分析上机题matlab版东南大学.docx_第13页
第13页 / 共31页
数值分析上机题matlab版东南大学.docx_第14页
第14页 / 共31页
数值分析上机题matlab版东南大学.docx_第15页
第15页 / 共31页
数值分析上机题matlab版东南大学.docx_第16页
第16页 / 共31页
数值分析上机题matlab版东南大学.docx_第17页
第17页 / 共31页
数值分析上机题matlab版东南大学.docx_第18页
第18页 / 共31页
数值分析上机题matlab版东南大学.docx_第19页
第19页 / 共31页
数值分析上机题matlab版东南大学.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数值分析上机题matlab版东南大学.docx

《数值分析上机题matlab版东南大学.docx》由会员分享,可在线阅读,更多相关《数值分析上机题matlab版东南大学.docx(31页珍藏版)》请在冰点文库上搜索。

数值分析上机题matlab版东南大学.docx

数值分析上机题matlab版东南大学

 

数值分析上机报告

 

第一章

一、题目

精确值为

1)编制按从大到小的顺序

,计算SN的通用程序。

2)编制按从小到大的顺序

,计算SN的通用程序。

3)按两种顺序分别计算

并指出有效位数。

(编制程序时用单精度)

4)通过本次上机题,你明白了什么?

二、通用程序

clear

N=input('PleaseInputanN(N>1):

');

AccurateValue=single((0-1/(N+1)-1/N+3/2)/2);

Sn1=single(0);

fora=2:

N;

Sn1=Sn1+1/(a^2-1);

end

Sn2=single(0);

fora=2:

N;

Sn2=Sn2+1/((N-a+2)^2-1);

end

fprintf('ThevalueofSnusingdifferentalgorithms(N=%d)\n',N);

disp('____________________________________________________')

fprintf('AccurateCalculation%f\n',AccurateValue);

fprintf('Caculatefromlargetosmall%f\n',Sn1);

fprintf('Caculatefromsmalltolarge%f\n',Sn2);

disp('____________________________________________________')

 

三、求解结果

PleaseInputanN(N>1):

10^2

ThevalueofSnusingdifferentalgorithms(N=100)

____________________________________________________

AccurateCalculation

Caculatefromlargetosmall

Caculatefromsmalltolarge

____________________________________________________

PleaseInputanN(N>1):

10^4

ThevalueofSnusingdifferentalgorithms(N=10000)

____________________________________________________

AccurateCalculation

Caculatefromlargetosmall

Caculatefromsmalltolarge

____________________________________________________

PleaseInputanN(N>1):

10^6

ThevalueofSnusingdifferentalgorithms(N=1000000)

____________________________________________________

AccurateCalculation

Caculatefromlargetosmall

Caculatefromsmalltolarge

____________________________________________________

 

四、结果分析

有效位数

n

顺序

100

10000

1000000

从大到小

6

3

3

从小到大

5

6

6

可以得出,算法对误差的传播又一定的影响,在计算时选一种好的算法可以使结果更为精确。

从以上的结果可以看到从大到小的顺序导致大数吃小数的现象,容易产生较大的误差,求和运算从小数到大数算所得到的结果才比较准确。

 

第二章

一、题目

(1)给定初值

及容许误差

,编制牛顿法解方程f(x)=0的通用程序。

(2)给定方程

易知其有三个根

a)由牛顿方法的局部收敛性可知存在

时,Newton迭代序列收敛于根x2*。

试确定尽可能大的

b)试取若干初始值,观察当

时Newton序列的收敛性以及收敛于哪一个根。

(3)通过本上机题,你明白了什么?

文件

%%定义函数f(x)

functionFx=fx(x)

Fx=x^3/3-x;

文件

%%定义导函数df(x)

functionFx=dfx(x)

Fx=x^2-1;

文件

%%Newton法求方程的根%%

clear

%%

ef=10^-6;%给定容许误差10^-6

k=0;

x0=input('PleaseinputinitialvalueXo:

');

disp('kXk');

fprintf('0%f\n',x0);

flag=1;

whileflag==1&&k<=10^3

x1=x0-fx(x0)/dfx(x0);

ifabs(x1-x0)

flag=0;

end

k=k+1;

x0=x1;

fprintf('%d%f\n',k,x0);

end

 

文件

%%寻找最大的delta值%%

clear

%%

flag=1;

k=1;

x0=0;

whileflag==1

delta=k*10^-6;

x0=delta;

k=k+1;

m=0;

flag1=1;

whileflag1==1&&m<=10^3

x1=x0-fx(x0)/dfx(x0);

ifabs(x1-x0)<10^-6flag1=0;

end

m=m+1;

x0=x1;

end

ifflag1==1||abs(x0)>=10^-6flag=0;

end

end

fprintf('Themaximundeltais%f\n',delta);

二、通用程序

三、求解结果

1.运行文件

结果为:

Themaximumdeltais

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

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

2.运行文件

在区间

上各输入若干个数,计算结果如下:

区间

上取-1000,-100,-50,-30,-10,-8,-7,-5,-3,

PleaseinputinitialvalueXo:

-10000

kXk

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

PleaseinputinitialvalueXo:

-100

kXk

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

PleaseinputinitialvalueXo:

-50

kXk

0

1

2

3

4

5

6

7

8

9

10

11

12

13

PleaseinputinitialvalueXo:

-30

kXk

0

1

2

3

4

5

6

7

8

9

10

11

12

PleaseinputinitialvalueXo:

-10

kXk

0

1

2

3

4

5

6

7

8

9

PleaseinputinitialvalueXo:

-8

kXk

0

1

2

3

4

5

6

7

8

9

PleaseinputinitialvalueXo:

-7

kXk

0

1

2

3

4

5

6

7

8

PleaseinputinitialvalueXo:

-5

kXk

0

1

2

3

4

5

6

7

8

PleaseinputinitialvalueXo:

-3

kXk

0

1

2

3

4

5

6

PleaseinputinitialvalueXo:

kXk

0

1

2

3

4

5

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

在区间

即区间(-1,)上取,,,,,计算结果如下:

PleaseinputinitialvalueXo:

kXk

0

1

2

3

4

5

6

7

8

9

10

11

12

13

PleaseinputinitialvalueXo:

kXk

0

1

2

3

4

5

6

7

8

9

10

PleaseinputinitialvalueXo:

kXk

0

1

2

3

4

5

6

PleaseinputinitialvalueXo:

kXk

0

1

2

3

4

5

6

7

PleaseinputinitialvalueXo:

kXk

0

1

2

3

4

5

6

7

8

9

10

11

12

13

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

,局部收敛于,即根

在区间

即区间(,)上,由的运行过程表明,在整个区间上均收敛于0,即根

在区间

即区间(,1)上取,,,,,计算结果如下:

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

,局部收敛于,即根

 

区间

上取100,60,20,10,7,6,4,3,,计算结果如下:

]

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

综上所述:

(-∞,-1)区间收敛于,(-1,δ)区间局部收敛于,局部收敛于,(-δ,δ)区间收敛于0,(δ,1)区间类似于(-1,δ)区间,(1,∞)收敛于。

通过本上机题,明白了对于多根方程,Newton法求方程根时,迭代序列收敛于某一个根有一定的区间限制,在一个区间上,可能会局部收敛于不同的根。

 

第三章

一、题目

列主元Gauss消去法对于某电路的分析,归结为求解线性方程组

其中

(1)编制解n阶线性方程组

的列主元高斯消去法的通用程序;

(2)用所编程序线性方程组

,并打印出解向量,保留5位有效数;

二、通用程序

%%列主元Gauss消去法求解线性方程组%%

%%参数输入

n=input('PleaseinputtheorderofmatrixA:

n=');%输入线性方程组阶数n

b=zeros(1,n);

A=input('InputmatrixA(suchasa2ordermatrix:

[12;3,4]):

');

b(1,:

)=input('Inputthecolumnvectorb:

');%输入行向量b

b=b';C=[A,b];%得到增广矩阵

%%列主元消去得上三角矩阵

fori=1:

n-1[maximum,index]=max(abs(C(i:

n,i)));

index=index+i-1;

T=C(index,:

);

C(index,:

)=C(i,:

);

C(i,:

)=T;

fork=i+1:

n%%列主元消去

ifC(k,i)~=0

C(k,:

)=C(k,:

)-C(k,i)/C(i,i)*C(i,:

);

end

end

end

%%回代求解%%

x=zeros(n,1);

x(n)=C(n,n+1)/C(n,n);

fori=n-1:

-1:

1

x(i)=(C(i,n+1)-C(i,i+1:

n)*x(i+1:

n,1))/C(i,i);

end

A=C(1:

n,1:

n);%消元后得到的上三角矩阵

disp('Theupperteianguularmatrixis:

')

fork=1:

n

fprintf('%f',A(k,:

));

fprintf('\n');

end

disp('Solutionoftheequations:

');

fprintf('%.5g\n',x);%以5位有效数字输出结果

PleaseinputtheorderofmatrixA:

n=4

InputmatrixA(suchasa2ordermatrix:

[12;3,4])[121-2

253-2

-2-235

1323]

Inputthecolumnvectorb:

[47-10]

Solutionoftheequations:

2

-1

2

-1

以教材第123页习题16验证通用程序的正确性。

执行程序,输入系数矩阵A和列向量b,结果如下:

 

结果与精确解完全一致。

三、求解结果

执行程序,输入矩阵A(即题中的矩阵R)和列向量b(即题中的V),得如下结果:

 

PleaseinputtheorderofmatrixA:

n=9

InputmatrixA(suchasa2ordermatrix:

[12;3,4]):

[31-13000-10000

-1335-90-110000

0-931-1000000

00-1079-30000-9

000-3057-70-50

0000-747-3000

00000-304100

0000-50027-2

000-9000-229]

Inputthecolumnvectorb:

[-1527-230-2012-7710]

Solutionoftheequations:

 

由上述结果得:

 

第四章

一、题目

二、通用程序

 

三、求解结果

1、数据输入

Inputn:

n=10

Inputx:

[012345678910]

Inputy:

[]

Inputthederivativeofy(0):

Inputthederivativeofy(n):

2、计算结果

第五章

一、题目

二、通用程序

三、运行结果

第六章

一、题目

二、通用程序

1、RK4方法的通用程序

2、AB4方法的通用程序

3、AB4-AB4预测校正方法的通用程序

4、带改进的AB4-AB4预测校正方法的通用程序

三、结果比较

四、结论

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

当前位置:首页 > 初中教育 > 语文

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

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