数值分析上机题(matlab版)(东南大学)
时间:2025-07-06
时间:2025-07-06
数值分析上机报告
第一章
一、题目
精确值为
1311( )。 22NN 1
1) 编制按从大到小的顺序SN 2) 编制按从小到大的顺序SN
111
,计算SN的通用程序。
22 132 1N2 1
111
,计算SN的通用程
N2 1(N 1)2 122 1
序。
3) 按两种顺序分别计算S102,S104,S106,并指出有效位数。(编制程序时用单精度) 4) 通过本次上机题,你明白了什么?
二、通用程序
三、求解结果
四、结果分析
可以得出,算法对误差的传播又一定的影响,在计算时选一种好的算法可以使结果更为精确。从以上的结果可以看到从大到小的顺序导致大数吃小数的现象,容易产生较大的误差,求和运算从小数到大数算所得到的结果才比较准确。
第二章
一、题目
(1)给定初值x0及容许误差 ,编制牛顿法解方程f(x)=0的通用程序。
3
(2)给定方程f(x) x x 0,易知其有三个根x1
,x2 0,x3
a) 由牛顿方法的局部收敛性可知存在 0,当x0 ( , )时,Newton迭代序列收敛于根x2*。试确定尽可能大的 。
b)试取若干初始值,观察当x0 ( , 1),( 1, ),( , ),( ,1),(1, )时Newton序列的收敛性以及收敛于哪一个根。 (3)通过本上机题,你明白了什么?
二、通用程序
1.运行search.m文件
结果为:
The maximum delta is 0.774597
*
即得最大的δ为0.774597,Newton迭代序列收敛于根x2=0的最大区间为(-0.774597,
0.774597)。
2.运行Newton.m文件
在区间( , 1),( 1, ),( , ),( ,1),(1, )上各输入若干个数,计算结果如下:
区间( , 1)上取-1000,-100,-50,-30,-10,-8,-7,-5,-3,-1.5
*
结果显示,以上初值迭代序列均收敛于-1.732051,即根x1。
在区间( 1, )即区间(-1,-0.774597)上取-0.774598,-0.8,-0.85,-0.9,-0.99,计算结果如下:
**
计算结果显示,迭代序列局部收敛于-1.732051,即根x1,局部收敛于1.730251,即根x3。
在区间( , )即区间(-0.774597,0.774597)上,由search.m的运行过程表明,在整
*
个区间上均收敛于0,即根x2。
在区间( ,1)即区间(0.774597,1)上取0.774598,0.8,0.85,0.9,0.99,计算结果如下:
计算结果显示,迭代序列局部收敛于-1.732051,即根x1,局部收敛于1.730251,即根x3。
区间(1, )上取100,60,20,10,7,6,4,3,1.5,计算结果如下:
*
结果显示,以上初值迭代序列均收敛于1.732051,即根x3。
综上所述:(-∞,-1)区间收敛于-1.73205,(-1,δ)区间局部收敛于1.73205,局部收敛于-1.73205,(-δ,δ)区间收敛于0,(δ,1)区间类似于(-1,δ)区间,(1,∞)收敛于1.73205。
通过本上机题,明白了对于多根方程,Newton法求方程根时,迭代序列收敛于某一个根有一定的区间限制,在一个区间上,可能会局部收敛于不同的根。
第三章
一、题目
列主元Gauss消去法对于某电路的分析,归结为求解线性方程组RI V。其中
000 10 31 13
0 110 1335 9
0 931 1000
0 1079 300 0
R 000 3057 7
000 747 0
00000 30
000 50 0
000 900
VT 15,27, 23,0, 20,12, 7,7,10
T
0 0
0 000 0
00 90 5 0
300 0410 0
027 2
90 22
(1) 编制解n阶线性方程组Ax b的列主元高斯消去法的通用程序; (2) 用所编程序线性方程组RI V,并打印出解向量,保留5位有效数;
二、通用程序
%% 列主元Gauss消去法求解线性方程组%% %%参数输入
n=input('Please input the order of matrix A: n='); %输入线性方程组阶数n b=zeros(1,n);
A=input('Input matrix A (such as a 2 order matrix:[1 2;3,4]) :'); b(1,:)=input('Input the column vector b:'); %输入行向量b b=b';
C=[A,b]; %得到增广矩阵 %%列主元消去得上三角矩阵
for i=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;
for k=i+1:n %%列主元消去 if C(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); for i=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('The upper teianguular matrix is:') for k=1:n
fprintf('%f ',A(k,:)); fprintf('\n'); end
disp('Solution of the equations:'); fprintf('%.5g\n',x); %以5位有效数字输出结果
以教材第123页习题16验证通用程序的正确性。执行程序,输入系数矩阵A和列向量b,结果如下:
结果与精确解完全一致。
三、求解结果
执行程序,输入矩阵A(即题中的矩阵R)和列向量b(即题中的V),得如下结果:
由上述结果得:
第四章
一、题目
二、通用程序
三、求解结果
1、数据输入 Input n: n=10
Input x:[0 1 2 3 4 5 6 7 8 9 10]
Input y:[2.51 3.30 4.04 4.70 5.22 5.54 5.78 5.40 5.57 5.70 5.80] Input the derivative of y(0):0.5 Input the derivative of y(n):0.2 2、计算结果
…… 此处隐藏:776字,全部文档内容请下载后查看。喜欢就下载吧 ……