数值分析报告上机题matlab版东南大学.docx
- 文档编号:17926257
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:29
- 大小:969.01KB
数值分析报告上机题matlab版东南大学.docx
《数值分析报告上机题matlab版东南大学.docx》由会员分享,可在线阅读,更多相关《数值分析报告上机题matlab版东南大学.docx(29页珍藏版)》请在冰点文库上搜索。
数值分析报告上机题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)通过本上机题,你明白了什么?
文件fx.m
%%定义函数f(x)
functionFx=fx(x)
Fx=x^3/3-x;
文件dfx.m
%%定义导函数df(x)
functionFx=dfx(x)
Fx=x^2-1;
文件Newton.m
%%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 文件search.m %%寻找最大的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.运行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,计算结果如下: PleaseinputinitialvalueXo: 100 kXk 0100.000000 166.673334 244.458891 329.654263 419.792016 513.228447 68.869651 75.989231 84.107324 92.910755 102.200189 111.848687 121.742235 131.732139 141.732051 151.732051 PleaseinputinitialvalueXo: 60 kXk 060.000000 140.011114 226.690749 317.818845 411.916762 58.000848 65.418546 73.739736 82.685151 92.078360 101.802967 111.736027 121.732064 131.732051 141.732051 PleaseinputinitialvalueXo: 20 kXk 020.000000 113.366750 28.961323 36.049547 44.146328 62.213605 71.854126 81.743136 91.732156 101.732051 111.732051 PleaseinputinitialvalueXo: 10 kXk 010.000000 16.734007 24.590570 33.212840 42.371653 51.922981 61.757175 71.732580 81.732051 91.732051 PleaseinputinitialvalueXo: 7 kXk 07.000000 14.763889 23.322318 32.435533 41.952915 51.764630 61.732931 71.732051 81.732051 PleaseinputinitialvalueXo: 6 kXk 06.000000 14.114286 22.915068 32.202578 41.849650 51.742392 61.732142 71.732051 81.732051 PleaseinputinitialvalueXo: 4 kXk 04.000000 12.844444 22.163724 31.834281 41.740007 51.732105 61.732051 71.732051 PleaseinputinitialvalueXo: 3 kXk 03.000000 12.250000 21.869231 31.745810 41.732212 51.732051 61.732051 PleaseinputinitialvalueXo: 1.5 kXk 01.500000 11.800000 21.735714 31.732062 41.732051 51.732051 ] 结果显示,以上初值迭代序列均收敛于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预测校正方法的通用程序 三、结果比较 四、结论
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 报告 上机 matlab 东南大学
![提示](https://static.bingdoc.com/images/bang_tan.gif)