数值分析资料报告上机题matlab版东南大学.docx
《数值分析资料报告上机题matlab版东南大学.docx》由会员分享,可在线阅读,更多相关《数值分析资料报告上机题matlab版东南大学.docx(24页珍藏版)》请在冰豆网上搜索。
数值分析资料报告上机题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)
____________________________________________________
AccurateCalculation0.740049
Caculatefromlargetosmall0.740049
Caculatefromsmalltolarge0.740050
____________________________________________________
PleaseInputanN(N>1):
10^4
ThevalueofSnusingdifferentalgorithms(N=10000)
____________________________________________________
AccurateCalculation0.749900
Caculatefromlargetosmall0.749852
Caculatefromsmalltolarge0.749900
____________________________________________________
PleaseInputanN(N>1):
10^6
ThevalueofSnusingdifferentalgorithms(N=1000000)
____________________________________________________
AccurateCalculation0.749999
Caculatefromlargetosmall0.749852
Caculatefromsmalltolarge0.749999
____________________________________________________
四、结果分析
有效位数
n
顺序
100
10000
1000000
从大到小
6
3
3
从小到大
5
6
6
可以得出,算法对误差的传播又一定的影响,在计算时选一种好的算法可以使结果更为准确。
从以上的结果可以看到从大到小的顺序导致大数吃小数的现象,容易产生较大的误差,求和运算从小数到大数算所得到的结果才比拟准确。
第二章
一、题目
〔1〕给定初值
与容许误差
,编制牛顿法解方程f(x)=0的通用程序。
〔2〕给定方程
易知其有三个根
a)由牛顿方法的局部收敛性可知存在
当
时,Newton迭代序列收敛于根x2*。
试确定尽可能大的
。
b)试取假如干初始值,观察当
时Newton序列的收敛性以与收敛于哪一个根。
〔3〕通过本上机题,你明白了什么?
二、通用程序
三、求解结果
1.运行search.m文件
结果为:
Themaximumdeltais0.774597
即得最大的δ为0.774597,Newton迭代序列收敛于根
=0的最大区间为〔-0.774597,0.774597〕。
2.运行Newton.m文件
在区间
上各输入假如干个数,计算结果如下:
区间
上取-1000,-100,-50,-30,-10,-8,-7,-5,-3,-1.5
结果显示,以上初值迭代序列均收敛于-1.732051,即根
。
在区间
即区间〔-1,-0.774597〕上取-0.774598,-0.8,-0.85,-0.9,-0.99,计算结果如下:
计算结果显示,迭代序列局部收敛于-1.732051,即根
,局部收敛于1.730251,即根
。
在区间
即区间〔-0.774597,0.774597〕上,由search.m的运行过程明确,在整个区间上均收敛于0,即根
。
在区间
即区间〔0.774597,1〕上取0.774598,0.8,0.85,0.9,0.99,计算结果如下:
计算结果显示,迭代序列局部收敛于-1.732051,即根
,局部收敛于1.730251,即根
。
区间
上取100,60,20,10,7,6,4,3,1.5,计算结果如下:
]
结果显示,以上初值迭代序列均收敛于1.732051,即根
。
综上所述:
(-∞,-1)区间收敛于-1.73205,(-1,δ)区间局部收敛于1.73205,局部收敛于-1.73205,(-δ,δ)区间收敛于0,(δ,1)区间类似于(-1,δ)区间,(1,∞)收敛于1.73205。
通过本上机题,明白了对于多根方程,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]
2.0000005.0000003.000000-2.000000
0.0000003.0000006.0000003.000000
0.0000000.0000000.500000-0.500000
0.0000000.0000000.0000003.000000
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]
31.000000-13.0000000.0000000.0000000.000000-10.0000000.0000000.0000000.000000
0.00000029.548387-9.0000000.000000-11.000000-4.1935480.0000000.0000000.000000
0.0000000.00000028.258734-10.000000-3.350437-1.2772930.0000000.0000000.000000
0.0000000.0000000.00000075.461271-31.185629-0.4519990.0000000.000000-9.000000
0.0000000.0000000.0000000.00000044.602000-7.1796950.000000-5.000000-3.577994
0.0000000.0000000.0000000.000000-0.00000045.873193-30.000000-0.784718-0.561543
0.0000000.0000000.0000000.000000-0.000000-0.00000021.380698-0.513187-0.367236
0.0000000.0000000.0000000.000000-0.000000-0.0000000.00000026.413085-2.419996
0.0000000.0000000.0000000.000000-0.000000-0.0000000.0000000.00000027.389504
Solutionoftheequations:
-0.28923
0.34544
-0.71281
-0.22061
-0.4304
0.15431
-0.057823
0.20105
0.29023
由上述结果得:
第四章
一、题目
二、通用程序
三、求解结果
1、数据输入
Inputn:
n=10
Inputx:
[012345678910]
Inputy:
[2.513.304.044.705.225.545.785.405.575.705.80]
Inputthederivativeofy(0):
0.5
Inputthederivativeofy(n):
0.2
2、计算结果
第五章
一、题目
二、通用程序
三、运行结果
第六章
一、题目
二、通用程序
1、RK4方法的通用程序
2、AB4方法的通用程序
3、AB4-AB4预测校正方法的通用程序
4、带改良的AB4-AB4预测校正方法的通用程序
三、结果比拟
四、结论