高等数值分析上机作业
- 格式:doc
- 大小:778.00 KB
- 文档页数:32
数值分析上机作业(一)一、算法的设计方案1、幂法求解λ1、λ501幂法主要用于计算矩阵的按模最大的特征值和相应的特征向量,即对于|λ1|≥|λ2|≥.....≥|λn|可以采用幂法直接求出λ1,但在本题中λ1≤λ2≤……≤λ501,我们无法判断按模最大的特征值。
但是由矩阵A的特征值条件可知|λ1|和|λ501|之间必然有一个是最大的,通过对矩阵A使用幂法迭代一定次数后得到满足精度ε=10−12的特征值λ0,然后在对矩阵A做如下的平移:B=A-λ0I由线性代数(A-PI)x=(λ-p)x可得矩阵B的特征值为:λ1-λ0、λ2-λ0…….λ501-λ0。
对B矩阵采用幂法求出B矩阵按模最大的特征值为λ∗=λ501-λ0,所以λ501=λ∗+λ0,比较λ0与λ501的大小,若λ0>λ501则λ1=λ501,λ501=λ0;若λ0<λ501,则令t=λ501,λ1=λ0,λ501=t。
求矩阵M按模最大的特征值λ的具体算法如下:任取非零向量u0∈R nηk−1=u T(k−1)∗u k−1y k−1=u k−1ηk−1u k=Ay k−1βk=y Tk−1u k(k=1,2,3……)当|βk−βk−1||βk|≤ε=10−12时,迭终终止,并且令λ1=βk2、反幂法计算λs和λik由已知条件可知λs是矩阵A 按模最小的特征值,可以应用反幂法直接求解出λs。
使用带偏移量的反幂法求解λik,其中偏移量为μk=λ1+kλ501−λ140(k=1,2,3…39),构造矩阵C=A-μk I,矩阵C的特征值为λik−μk,对矩阵C使用反幂法求得按模最小特征值λ0,则有λik=1λ0+μk。
求解矩阵M按模最小特征值的具体算法如下:任取非零向量u 0∈R n ηk−1= u T (k−1)∗u k−1y k−1=u k−1ηk−1 Au k =y k−1βk =y T k−1u k (k=1,2,3……)在反幂法中每一次迭代都要求解线性方程组Au k =y k−1,当K 足够大时,取λn =1βk 。
东南⼤学数值分析上机题答案数值分析上机题第⼀章17.(上机题)舍⼊误差与有效数设∑=-=Nj N j S 2211,其精确值为)111-23(21+-N N 。
(1)编制按从⼤到⼩的顺序1-1···1-311-21222N S N +++=,计算N S 的通⽤程序;(2)编制按从⼩到⼤的顺序121···1)1(111222-++--+-=N N S N ,计算NS 的通⽤程序;(3)按两种顺序分别计算210S ,410S ,610S ,并指出有效位数(编制程序时⽤单精度);(4)通过本上机题,你明⽩了什么?解:程序:(1)从⼤到⼩的顺序计算1-1···1-311-21222N S N +++=:function sn1=fromlarge(n) %从⼤到⼩计算sn1format long ; sn1=single(0); for m=2:1:nsn1=sn1+1/(m^2-1); end end(2)从⼩到⼤计算121···1)1(111222-++--+-=N N S N function sn2=fromsmall(n) %从⼩到⼤计算sn2format long ; sn2=single(0); for m=n:-1:2sn2=sn2+1/(m^2-1); end end(3)总的编程程序为: function p203()clear allformat long;n=input('please enter a number as the n:') sn=1/2*(3/2-1/n-1/(n+1));%精确值为sn fprintf('精确值为%f\n',sn);sn1=fromlarge(n);fprintf('从⼤到⼩计算的值为%f\n',sn1);sn2=fromsmall(n);fprintf('从⼩到⼤计算的值为%f\n',sn2);function sn1=fromlarge(n) %从⼤到⼩计算sn1 format long;sn1=single(0);for m=2:1:nsn1=sn1+1/(m^2-1);endendfunction sn2=fromsmall(n) %从⼩到⼤计算sn2 format long;sn2=single(0);for m=n:-1:2sn2=sn2+1/(m^2-1);endendend运⾏结果:从⽽可以得到N值真值顺序值有效位数2 100.740050 从⼤到⼩0.740049 5从⼩到⼤0.740050 64 100.749900 从⼤到⼩0.749852 3从⼩到⼤0.749900 66 100.749999 从⼤到⼩0.749852 3从⼩到⼤0.749999 6(4)感想:通过本上机题,我明⽩了,从⼩到⼤计算数值的精确位数⽐较⾼⽽且与真值较为接近,⽽从⼤到⼩计算数值的精确位数⽐较低。
第一章第二题(1) 截断误差为104-时:k=1;n=0;m=0;x=0;e=1e-4;while k==1x1=x+(-1)^n/(2*n+1);if abs(x-x1)<ey=4*x1;m=n+1;break;endx=x1;k=1;n=n+1;endformat longy,my =3.141792613595791m =5001(2)截断误差为108-时:k=1;n=0;m=0;x=0;e=1e-8;while k==1x1=x+(-1)^n/(2*n+1);if abs(x-x1)<ey=4*x1;m=n+1;break;endx=x1;k=1;n=n+1;endformat longy,my =3.141592673590250m =50000001由以上计算可知,截断误差小于104-时,应取5001项求和,π=3.141792613595791;截断误差小于108-时,应取50000001项求和,π=3.141592673590250。
第二章第二题a=[0 -2 -2 -2 -2 -2 -2 -2];b=[2 5 5 5 5 5 5 5];c=[-2 -2 -2 -2 -2 -2 -2 0];v=220;r=27;d=[v/r 0 0 0 0 0 0 0];n=8;for i=2:na(i)=a(i)/b(i-1);b(i)=b(i)-c(n-1)*a(i);d(i)=d(i)-a(i)*d(i-1);end;d(n)=d(n)/b(n);for i=n-1:-1:1d(i)=(d(i)-c(i)*d(i+1));end;I=d'I =1.0e+002 *1.490717294184090.704617906351300.311568212434910.128623612390290.049496991380330.017168822994210.004772412363470.00047741598598第三章第一题(1)Jacobi迭代法:b=[12;-27;14;-17;12]x = [0;0;0;0;0;]k = 0;r = 1;e=0.000001A=[10,1,2,3,4;1,9,-1,2,-3;2,-1,7,3,-5;3,2,3,12,-1;4,-3,-5,-1,15;] D = diag(diag(A));B = inv(D)*(D-A);f = inv(D)*b;p = max(abs(eig(B)));if p >= 1'迭代法不收敛'returnendwhile r >ex0 = x;x = B*x0 + f;k = k + 1;r = norm (x-x0,inf);endxk计算结果:x =1.0000-2.00003.0000-2.00001.0000k =65(2) 高斯赛德尔迭代:A=[10,1,2,3,4;1,9,-1,2,-3;2,-1,7,3,-5;3,2,3,12,-1;4,-3,-5,-1,15;]x=[0;0;0;0;0];b=[12;-27;14;-17;12]c=0.000001L=-tril(A,-1)U=-triu(A,1)D=(diag(diag(A)))X=inv(D-L)*U*x+inv(D-L)*b;k=1;while norm(X-x,inf)>= cx=X;X=inv(D-L)*U*x+inv(D-L)*b;k=k+1;endXk计算结果:X =1.0000-2.00003.0000-2.00001.0000k =37(3) SOR:A=[10,1,2,3,4;1,9,-1,2,-3;2,-1,7,3,-5;3,2,3,12,-1;4,-3,-5,-1,15] x=[0;0;0;0;0];b=[12;-27;14;-17;12]e=0.000001w=1.44;L=-tril(A,-1)U=-triu(A,1)D=(diag(diag(A)))X=inv(D-w*L)*((1-w)*D+w*U)*x+w*inv(D-w*L)*bn=1;while norm(X-x,inf)>=ex=X;X=inv(D-w*L)*((1-w)*D+w*U)*x+w*inv(D-w*L)*b;n=n+1;endXn计算结果:X =1.0000-2.00003.0000-2.00001.0000n =22由以上可知,共轭梯度法收敛速度明显快于Jacobi法和G-S法。
数值分析上机作业(二)曲线逼近一、题目要求设()ln ,[1,3]f x x x x =∈,试求出权函数()1x ρ=的最佳平方逼近二次多项式。
另外请用Chebyshev 截断级数的办法和插值余项极小化方法分别给出近似最佳一致逼近二次多项式。
并画出所有曲线图。
二、方案设计2.1勒让德最佳平方逼近二次多项式2.1.1生成勒让德多项式序列此处利用递推公式12()(21)()(1)()n n n np x n xp x n p x −−=−−−12()1,()p x p x x==递推得到(),1,2,,1n p x n n =⋅⋅⋅+。
此段程序存储为legendre_poly.m 。
2.1.2求特定函数的勒让德多项式勒让德多项式逼近可以表述为0011()()()()n n P x c P x c P x c P x =++⋅⋅⋅+其中系数,0,1,,i c i n =⋅⋅⋅可以通过下式求得11((),())21()()((),())2i i i i i f x P x i c f x P x dx P x P x −+==∫这里需要注意的是,勒让德多项式均定义在(1,1)−上。
当给定函数区间为任意区间(,)a b 时,需要进行区间变换,令(2)()x a b t b a −−=−则(1,1)t ∈−。
由于给定函数区间不为(1,1)−,这里需要进行区间变换。
利用(2)/()t x a b b a =−−−,代入所得的勒让德多项式序列中,对其进行变换。
这样在积分时,即可在区间(,)a b 上进行。
此段程序存储为legendre.m 。
2.1.3给定函数2.1.4主程序将此段程序保存为main.m 。
运行主程序,可以得到勒让德多项式,并在区间(,)a b 上作图。
2.1.5实验数据及结果运行主程序,可得到勒让德多项式为同时可以得到逼近图像图像中散点为原函数对应的数据点。
2.2切比雪夫多项式逼近2.2.1给定函数2.2.2求出切比雪夫多项式序列这里利用递推关系12()2()()n n n T x xT x T x −−=−12()1,()T x T x x==递推得到(),1,2,,1n T x n n =⋅⋅⋅+。
数值分析上机作业第 1 章1.1计算积分,n=9。
(要求计算结果具有6位有效数字)程序:n=1:19;I=zeros(1,19);I(19)=1/2*((exp(-1)/20)+(1/20));I(18)=1/2*((exp(-1)/19)+(1/19));for i=2:10I(19-i)=1/(20-i)*(1-I(20-i));endformat longdisp(I(1:19))结果截图及分析:在MATLAB中运行以上代码,得到结果如下图所示:当计算到数列的第10项时,所得的结果即为n=9时的准确积分值。
取6位有效数字可得.1.2分别将区间[-10.10]分为100,200,400等份,利用mesh或surf命令画出二元函数z=的三维图形。
程序:>> x = -10:0.1:10;y = -10:0.1:10;[X,Y] = meshgrid(x,y);Z = exp(-abs(X))+cos(X+Y)+1./(X.^2+Y.^2+1);subplot(2,2,1);mesh(X,Y,Z);title('步长0.1')>> x = -10:0.2:10;y = -10:0.2:10;[X,Y] = meshgrid(x,y);Z = exp(-abs(X))+cos(X+Y)+1./(X.^2+Y.^2+1);subplot(2,2,1);mesh(X,Y,Z);title('步长 0.2')>>x = -10:0.05:10;y = -10:0.05:10;[X,Y] = meshgrid(x,y);Z = exp(-abs(X))+cos(X+Y)+1./(X.^2+Y.^2+1);subplot(2,2,1);mesh(X,Y,Z);title('步长0.05')结果截图及分析:由图可知,步长越小时,绘得的图形越精确。
数值分析上机实验报告选题:曲线拟合的最小二乘法指导老师:专业:学号:姓名:课题八 曲线拟合的最小二乘法一、问题提出从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。
在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量y 与时间t 的拟合曲线。
二、要求1、用最小二乘法进行曲线拟合;2、近似解析表达式为()33221t a t a t a t ++=ϕ;3、打印出拟合函数()t ϕ,并打印出()j t ϕ与()j t y 的误差,12,,2,1Λ=j ;4、另外选取一个近似表达式,尝试拟合效果的比较;5、*绘制出曲线拟合图*。
三、目的和意义1、掌握曲线拟合的最小二乘法;2、最小二乘法亦可用于解超定线代数方程组;3、探索拟合函数的选择与拟合精度间的关系。
四、计算公式对于给定的测量数据(x i ,f i )(i=1,2,…,n ),设函数分布为 特别的,取)(x j ϕ为多项式j j x x =)(ϕ (j=0, 1,…,m )则根据最小二乘法原理,可以构造泛函令0=∂∂ka H (k=0, 1,…,m ) 则可以得到法方程求该解方程组,则可以得到解m a a a ,,,10Λ,因此可得到数据的最小二乘解曲线拟合:实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。
曲线拟合是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。
五、结构程序设计在程序结构方面主要是按照顺序结构进行设计,在进行曲线的拟合时,为了进行比较,在程序设计中,直接调用了最小二乘法的拟合函数polyfit ,并且依次调用了plot 、figure 、hold on 函数进行图象的绘制,最后调用了一个绝对值函数abs 用于计算拟合函数与原有数据的误差,进行拟合效果的比较。