东南大学数值分析上机题作业matlab版Word下载.docx
《东南大学数值分析上机题作业matlab版Word下载.docx》由会员分享,可在线阅读,更多相关《东南大学数值分析上机题作业matlab版Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
%f\n'
Ac);
从大到小的顺序累加得SN=%f\n'
Snl2s);
从小到大的顺序累加得SN=%f\n'
Sns2l);
disp('
========================================================'
1.2程序
>
P20T17
10^2
0.740049
从大到小的顺序累加得SN=0.740049
从小到大的顺序累加得SN=0.740050
============================================================
10^4
0.749900
从大到小的顺序累加得SN=0.749852
1.3运行结果
从小到大的顺序累加得SN=0.749900
10^6
0.749999
从小到大的顺序累加得SN=0.749999
1.4结果分析
按从大到小的顺序,有效位数分别为:
6,4,3。
按从小到大的顺序,有效位数分别为:
5,6,6。
可以看出,不同的算法造成的误差限是不同的,好的算法可以让结果更加精确。
当采用从大到小的顺序累加的算法时,误差限随着N的增大而增大,可见在累加的过程中,误差在放大,造成结果的误差较大。
因此,采取从小到大的顺序累加得到的结果更加精确。
2.Chapter2
2.1题目
(1)给定初值及容许误差,编制牛顿法解方程f(x)=0的通用程序。
(2)给定方程,易知其有三个根
由牛顿方法的局部收敛性可知存在当时,Newton迭代序列收敛于根x2*。
试确定尽可能大的δ。
试取若干初始值,观察当时Newton序列的收敛性以及收敛于哪一个根。
(3)通过本上机题,你明白了什么?
2.2程序
f(x)函数m文件:
fu.m
functionFu=fu(x)
Fu=x^3/3-x;
f'
(x)函数m文件:
dfu.m
functionFu=dfu(x)
Fu=x^2-1;
用Newton法求根的通用程序Newton.m
x0=input('
请输入初值x0:
ep=input('
请输入容许误差:
flag=1;
whileflag==1
x1=x0-fu(x0)/dfu(x0);
ifabs(x1-x0)<
ep
flag=0;
end
x0=x1;
方程的一个近似解为:
%f\n'
x0);
寻找最大δ值的程序:
Find.m
clear
eps=input('
请输入搜索精度:
请输入容许误差:
k=0;
x0=0;
sigma=k*eps;
x0=sigma;
k=k+1;
m=0;
flag1=1;
whileflag1==1&
&
m<
=10^3
ep
flag1=0;
m=m+1;
x0=x1;
end
ifflag1==1||abs(x0)>
=ep
flag=0;
end
最大的sigma值为:
sigma);
2.3运行结果
(1)寻找最大的δ值。
算法为:
将初值x0在从0开始不断累加搜索精度eps,带入Newton迭代公式,直到求得的根不再收敛于0为止,此时的x0值即为最大的sigma值。
运行Find.m,得到在不同的搜索精度下的最大sigma值。
Find
10^-6
0.774597
10^-4
0.774600
10^-2
0.780000
(2)运行Newton.m
在(-∞,-1)内取初值,运行结果如下:
X0
Xk
-1000
-1.732051
-500
-100
-10
-5
-2.5
-1.5
可见,在(-∞,-1)区间内取初值,Newton序列收敛,且收敛于根-3。
在(-1,-δ)内取初值,运行结果如下:
-0.95
1.732051
-0.85
-0.8
-0.774598
可见,在(-1,-δ)内取初值,Newton序列收敛,且收敛于根3。
在(-δ,δ)内内取初值,运行结果如下:
-0.774596
0.000000
-0.55
-0.35
-0.15
0.05
0.25
0.45
0.65
0.774596
可见,在(-δ,δ)内取初值,Newton序列收敛,且收敛于根0。
在(δ,1)内取初值,运行结果如下:
0.774598
0.8
0.85
0.95
可见,在(δ,1)内取初值,Newton序列收敛,且收敛于根-3
在(1,+∞)内取初值,运行结果如下:
1.5
2.5
5
10
100
500
1000
可见,在(1,+∞)内取初值,Newton序列收敛,且收敛于根3
3.Chapter3
3.1题目
对于某电路的分析,归结为求解线性方程组RI=V,其中
(1)编制解n阶线性方程组Ax=b的列主元高斯消去法的通用程序;
(2)用所编程序线性方程组RI=V,并打印出解向量,保留5位有效数字;
(3)本题编程之中,你提高了哪些编程能力?
3.2程序
n=input('
请输入线性方程组阶数:
n='
b=zeros(1,n);
A=input('
请输入系数矩阵:
A=\n'
b(1,:
)=input('
请输入线性方程组右端向量:
b=\n'
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
%%回代求解
x=zeros(n,1);
x(n)=C(n,n+1)/C(n,n);
fori=n-1:
1
x(i)=(C(i,n+1)-C(i,i+1:
n)*x(i+1:
n,1))/C(i,i);
方程组的解为:
%.5g\n'
x);
3.3运行结果
运行程序,输入系数矩阵和方程组右端列向量。
运行过程与结果如下图所示:
P126T39
n=4
A=
[136.0190.8600;
90.8698.81-67.590;
0-67.59132.0146.26;
0046.26177.17]
b=
[-33.25449.7928.067-7.324]
-2957.4
4426.6
2495
-651.49
n=9
[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]
[-1527-230-2012-7710]
-0.28923
0.34544
-0.71281
-0.22061
-0.4304
0.15431
-0.057823
0.20105
0.29023
可看出,算得的该线性方程组的解向量为:
[-0.289230.34544-0.71281-0.22061-0.43040.15431-0.0578230.201050.29023]
4.Chapter4
4.1题目
(1)编制求第一型3次样条插值函数的通用程序;
(2)已知汽车门曲线型值点的数据如下:
i
3
4
6
7
8
9
Xi
Yi
2.51
3.30
4.04
4.70
5.22
5.54
5.78
5.40
5.57
5.70
5.80
端点条件为y0'
=0.8,y10'
=0.2,用所编程序求车门的3次