数值分析上机题(1)

合集下载

数值分析上机题目

数值分析上机题目

数值分析上机题目1、 分别用不动点迭代与Newton 法求解方程250x x e -+=的正根与负根。

2、 Use each of the following methods to find a solution in [0.1,1] accurate to within 10^-4 for4326005502002010x x x x -+--=a. Bisection methodb. Newton’s methodc. Secant methodd. Method of False Positione. Muller’s method3、 应用Newton 法求f (x )的零点,e=10^-6,这里f (x )=x-sin (x )。

再用求重根的两种方法求f (x )的零点。

4、 应用Newton 法求f (x )的零点,e=10^-6,f(x)=x-sin(x) 再用Steffensen’s method 加速其收敛。

5、 用Neville’s 迭代差值算法,对于函数21(),11125f x x x =-≤≤+进行lagrange插值。

取不同的等分数n=5,10,将区间[-1,1]n 等分,取等距节点。

把f(x)和插值多项式的曲线画在同一张图上进行比较。

6、 画狗的轮廓图7、 Use Romberg integration to compute the following approximations to⎰a 、Determine R1,1,R2,1,R3,1,R4,1and R5,1,and use these approximations to predict the value of the integral.b 、 Determine R2,2 ,R3,3 ,R4,4 ,and R5,5,and modify your prediction.c 、Determine R6,1 ,R6,2 ,R6,3 ,R6,4 ,R6,5 and R6,6,and modify your prediction.d 、 Determine R7,7 ,R8,8 ,R9,9 ,and R10,10,and make a final prediction.e 、Explain why this integral causes difficulty with Romberg integration and how it can be reformulated to more easily determine an accurate approximation.8、 分别用1)Euler method 2)Modified Euler Method 3)Runge-Kutta Order Four求解P264 :7a 并计算其误差; Given the initial-value problem :=-1y y t '++05t ≤≤(0)1y =With exact solution-t()y t e t =+; A: Approximate y(5) with h=0.2 , h=0.1, h=0.05.9、 课本P279 Example 4:For the problem y’=y -t^2+1 , 0<=t<=2 , y(0)=0.5, Euler’s Method with h=0.025, theModified Euler Method with h=0.05,and the Runge-Kutta fourth-order method with h=0.1 are compared at the common mesh points of these methods 0.1, 0.2, 0.3, 0.4 and 0.5 .Each of these techniques requires 20 functional evaluations to determine the values listed in Table 5.8 to approximate y(0.5). In this example , the fourth-order method is clearly superior. 10、 P 322 Exercise 5.91 Use the Runge-Kutta method for systems to approximate the solutions of the following systems of first-order differential equations, and compare the results to the actual solutions. A :221122221232(21)4(24)t t u u u t e u u u t t e '=+-+'=+++- 01t ≤≤1(0)1u =2(0)1u =0.2h =actual solutions521()(1/3)(1/3)t t t u t e e e -=-+ 5222()(1/3)(2/3)t t t u t e e t e -=++11、 P 322 Exercise 5.91 Use the Runge-Kutta method for Systems Algorithm to approximate the solutions of the following higher-order differential equations, and compare the results to the actual solutions. A:2t y y y te t ''-+=-01t ≤≤(0)(0)0y y '==0.1h =actual solutions 3()(1/6)22t t ty t t e te e t =-+--end12、 P 368Exercise 6.2第一问:Use Gaussian elimination and three-digit chopping arithmetic to solve the following linear systems, and compare the approximations to the actual solution.E:1234123423412341.19 2.11100 1.1214.20.12212.2 3.4410099.9 2.1515.30.1113.1 4.16x x x x x x x x x x x x x x x +-+=-+-=-+=+--=Actual solution x1=0.17682530 x2=0.01269269 x3=-0.02065405 x4=-1.18260870第二问:Repeat Exercise 6 using Gaussian elimination with partial pivoting. 第三问:Repeat Exericise 5 using Gaussian elimination with scaled partial pivoting.13、 P411 7:Let A be the 10*10 tridiagonal matrix given by a(1,1)=2, a(i,i+1)=a(i,i-1)=-1,for each i=2,……9,anda(1,1)=a(10,10)=2,a(1,2)=a(10,9)=-1,let b be the ten-dimensional column vector given byb1=b10=1,and bi=0,for each i=2,3,……,9 Solve Ax=b,using the Crout factorization for tridiagonal systems.14、P 453 Exericse 7.3 15Use all the applicable methods in this section to solve the linear system Ax=b to within 10^(-5) in thel ∞ norm ,where the entries of A are2i, when j=i and i=1,2,……,80j=i+2 and i=1,2,……,780.5i, when j=i-2 and i=1,2,……, 80a (i,j) = 0.25i when j=i+4 and i=1,2,……,76j=1-4 and i=1,2,……,800, otherwiseAnd those of bi=π ,for each i=1,2, (80)。

数值分析大作业

数值分析大作业

数值分析上机作业(一)一、算法的设计方案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 。

数值分析报告上机题课后作业全部-东南大学

数值分析报告上机题课后作业全部-东南大学

实用标准文案文档大全上机作业题报告2015.1.9 USER1.Chapter 11.1题目设S N =∑1j 2−1N j=2,其精确值为)11123(21+--N N 。

(1)编制按从大到小的顺序11131121222-+⋯⋯+-+-=N S N ,计算S N 的通用程序。

(2)编制按从小到大的顺序1211)1(111222-+⋯⋯+--+-=N N S N ,计算S N 的通用程序。

(3)按两种顺序分别计算64210,10,10S S S ,并指出有效位数。

(编制程序时用单精度) (4)通过本次上机题,你明白了什么?1.2程序1.3运行结果1.4结果分析按从大到小的顺序,有效位数分别为:6,4,3。

按从小到大的顺序,有效位数分别为:5,6,6。

可以看出,不同的算法造成的误差限是不同的,好的算法可以让结果更加精确。

当采用从大到小的顺序累加的算法时,误差限随着N 的增大而增大,可见在累加的过程中,误差在放大,造成结果的误差较大。

因此,采取从小到大的顺序累加得到的结果更加精确。

2.Chapter 22.1题目(1)给定初值0x 及容许误差ε,编制牛顿法解方程f(x)=0的通用程序。

(2)给定方程03)(3=-=x xx f ,易知其有三个根3,0,3321=*=*-=*x x x○1由牛顿方法的局部收敛性可知存在,0>δ当),(0δδ+-∈x 时,Newton 迭代序列收敛于根x2*。

试确定尽可能大的δ。

○2试取若干初始值,观察当),1(),1,(),,(),,1(),1,(0+∞+-----∞∈δδδδx 时Newton 序列的收敛性以及收敛于哪一个根。

(3)通过本上机题,你明白了什么?2.2程序2.3运行结果(1)寻找最大的δ值。

算法为:将初值x0在从0开始不断累加搜索精度eps,带入Newton迭代公式,直到求得的根不再收敛于0为止,此时的x0值即为最大的sigma值。

运行Find.m,得到在不同的搜索精度下的最大sigma值。

东南大学数值分析上机题答案

东南大学数值分析上机题答案

东南⼤学数值分析上机题答案数值分析上机题第⼀章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)感想:通过本上机题,我明⽩了,从⼩到⼤计算数值的精确位数⽐较⾼⽽且与真值较为接近,⽽从⼤到⼩计算数值的精确位数⽐较低。

东南大学出版社第二版《数值分析》上机作业答案(前三章)

东南大学出版社第二版《数值分析》上机作业答案(前三章)

for (i=k+1;i<N;i++) // { lik=a[i][k]/a[k][k]; //实施消去过程,得到上三角系数增广矩阵 for (j=k;j<M;j++) // { a[i][j]=a[i][j]‐lik*a[k][j]; // } } } cout<<"经列主元高斯消去法得到的数组为:"<<endl; // for (b=0;b<N;b++) // { cout<<endl; //输出经过列主元消去法处理过的系数增广矩阵 for (c=0;c<M;c++) { cout<<setw(7)<<a[b][c]; // } } cout<<endl; double x[N]; // double s; int f,g; x[N‐1]=a[N‐1][M‐1]/a[N‐1][N‐1]; // for (f=N‐2;f>=0;f‐‐) // { s=0; for (g=f+1;g<N;g++) //由上三角形的系数增广矩阵求出方程组的解 { s=s+a[f][g]*x[g]; // } x[f]=(a[f][N]‐s)/a[f][f]; // } cout<<"方程组的解为:"<<endl; for (b=0;b<N;b++) //输出方程组的解 {
1
当 n=10000 时,s3=0.7499 Press any key to continue (分析 S1 的 6 位数字中,有效位数为 4 位; S2 的所有数字都是有效数字。 ) 当 n=1000000 时,s1=‐14.2546 当 n=1000000 时,s2=‐14.2551 当 n=1000000 时,s3=0.749999 Press any key to continue (分析: S1 的 6 位数字中,没有有效数字; S2 的 6 位数字中,没有有效数字。 ) 由运行结果可知,当精度比较低时,按从大数开始累加到小数的计算结果的精度低于按从小数 累加到大数的计算结果的精度。 至于当 n=1000000 时,S1 和 S2 得出了负数结果,可能是由于循环次数过多,导致数据溢出, 从而得出错误结果。 习题 2 20.程序如下: //给定误差限为:0.5e‐6 //经过试算得当 delta 最大取道 0.7745966 时,迭代得到的根都收敛于 0 #include <iostream.h> #include <math.h> void main () { double x,u; int count=0; u=10.0; cout<<"请输入 x 的初值"<<endl; cin>>x; for (count=0;abs(u)>5;count++) { x=x‐(x*x*x‐3*x)/(3*(x*x‐1)); u=10000000*x; if(count>5000) { cout<<"迭代结果不收敛于 0!"<<endl; break; } } cout<<"x="<<x<<endl<<endl;

贾忠孝高等数值分析第一次上机作业

贾忠孝高等数值分析第一次上机作业

【运行结果】 当 m=300 时,下图表示实验结果,其中 k 为停机循环次数
当 m=995 时,停机循环次果表明当 m 越小时,收敛速度越快,在有限精度下,停机循环次数越小。这 与 Lanczos 方法最多 m 步找到准确解这一结论相吻合。
4. 取初始近似解为零向量, 右端项 b 仅由 A 的 m 个不同个特征向量的线性组 合表示时, Lanczos 方法的收敛性如何? 数值计算中方法的收敛性和m 的大小关 系如何? 【程序】 clc clear clf n=1000; rs=10^(-10); %停机准则 m=10; disp('Lanczos 算法') %定义对称正定阵与 b
1 1000, 2 59.8858, 999 10.0961, 1000 0.01,
经过 k=100,基本收敛达到精度要求。
【结论】 后者的收敛速度要大于前者。说明当 A 的最大特征值远大于第二个最大特征 值, 最小特征值远小于第二个最小特征值时,收敛速度只与 2. 对于同样的例子, 比较 CG 和 Lanczos 的计算结果. 【程序】
高等数值分析实验作业一
机械系 光辉 2014310205
1. 构造例子说明 CG 的数值性态 . 当步数 = 阶数时 CG 的解如何 ? 当 A 的最 大特征值远大于第二个最大特征值, 最小特征值远小于第二个最小特征值时 方 法的收敛性如何? 问题 1 【程序】 clc clear n=1000; %定义对称正定阵与 b lans=sort(rand(n,1),'descend'); D=diag(lans); Q=orth(rand(1000,1000)); A=Q*D*Q'; b=rand(n,1); %初始情况 x0=eye(n,1); r0=b-A*x0; p(:,1)=r0; %执行第一步 af(1)=dot(r0,r0)/dot(p(:,1),A*p(:,1)); x(:,1)=x0+af(1)*p(:,1); r(:,1)=b-A*x(:,1); bat(2)=dot(r(:,1),r(:,1))/dot(r0,r0); p(:,2)=r(:,1)+bat(2)*p(:,1); %执行 k 步 K=n; for k=2:1:K k af(k)=dot(r(:,k-1),r(:,k-1))/dot(A*p(:,k),p(:,k)); x(:,k)=x(:,k-1)+af(k)*p(:,k); r(:,k)=b-A*x(:,k);

数值分析上机实验题参考

数值分析上机实验题参考

数值分析论文数值积分 一、问题提出选用复合梯形公式,复合Simpson 公式,Romberg 算法,计算I = dx x ⎰-4102sin 4 ()5343916.1≈II =dx x x ⎰1sin ()9460831.0,1)0(≈=I fI = dx xe x⎰+1024 I =()dx x x ⎰++1211ln 二、要求编制数值积分算法的程序;分别用两种算法计算同一个积分,并比较其结果;分别取不同步长()/ a b h -=n ,试比较计算结果(如n = 10, 20等); ﹡给定精度要求ε,试用变步长算法,确定最佳步长﹡。

三、目的和意义深刻认识数值积分法的意义; 明确数值积分精度与步长的关系;根据定积分的计算方法,可以考虑二重积分的计算问题引言一、数值求积的基本思想实际问题当中常常需要计算积分,有些数值方法。

如微分方程和积分方程的求解,也都和积分计算相联系。

依据人们熟悉的微积分基本原理,对于积分I=⎰a b f(x)dx,只要找到被积函数f(x)和原函数F(x),便有下列牛顿-莱布尼茨公式:I=⎰a b f(x)dx=F(b)-F(a).但实际使用这种求积方法往往有困难,因为大量的被积函数,诸如x xsin,2xe-等,其原函数不能用初等函数表达,故不能用上述公式计算。

另外,当f(x)是由测量或数值计算给出的一张数据表时,牛顿-莱布尼茨公式也不能直接运用,因此有必要研究积分的数值计算问题。

二、数值积分代数精度数值求积方法是近似方法,为要保证精度,我们自然希望求积公式能对“尽可能多”的函数准确成立,就提出了所谓代数精度的概念。

如果某个求积公式对次数不超过m的多项式均能准确成立,但对m+1次多项式就不能准确成立,则称该求积公式具有m次代数精度。

三、复合求积公式为了提高精度,通常可以把积分区间分成若干子区间(通常是等分),再在每个子区间用低阶求积公式,即复化求积法,比如复化梯形公式与复化辛普森公式。

东南大学数值分析上机

东南大学数值分析上机

第一章一、题目设∑=-=Nj N j S 2211,其精确值为)11123(21+--N N 。

(1)编制按从大到小的顺序11131121222-+⋯⋯+-+-=N S N ,计算SN 的通用程序。

(2)编制按从小到大的顺序1211)1(111222-+⋯⋯+--+-=N N S N ,计算SN 的通用程序。

(3)按两种顺序分别计算64210,10,10S S S ,并指出有效位数。

(编制程序时用单精度) (4)通过本次上机题,你明白了什么? 二、MATLAB 程序N=input('请输入N(N>1):');AccurateValue=single((0-1/(N+1)-1/N+3/2)/2); %single 使其为单精度 Sn1=single(0); %从小到大的顺序 for a=2:N; Sn1=Sn1+1/(a^2-1); endSn2=single(0); %从大到小的顺序 for a=2:N; Sn2=Sn2+1/((N-a+2)^2-1); endfprintf('Sn 的值 (N=%d)\n',N);disp('____________________________________________________') fprintf('精确值 %f\n',AccurateValue); fprintf('从大到小计算的结果 %f\n',Sn1); fprintf('从小到大计算的结果 %f\n',Sn2);disp('____________________________________________________')三、结果请输入N(N>1):100Sn的值(N=100)____________________________________________________精确值0.740049从大到小计算的结果0.740049从小到大计算的结果0.740050____________________________________________________请输入N(N>1):10000Sn的值(N=10000)____________________________________________________精确值0.749900从大到小计算的结果0.749852从小到大计算的结果0.749900____________________________________________________请输入N(N>1):1000000Sn的值(N=1000000)____________________________________________________精确值0.749999从大到小计算的结果0.749852从小到大计算的结果0.749999____________________________________________________四、结果分析可以得出,算法对误差的传播又一定的影响,在计算时选一种好的算法可以使结果更为精确。

数值分析上机实习题

数值分析上机实习题

数值分析上机实习题第2章插值法1. 已知函数在下列各点的值为试⽤四次⽜顿插值多项式)(x p 4及三次样条韩式)(S x (⾃然边界条件)对数据进⾏插值。

⽤图给出(){}10,11,1,0,08.02.0,,x i =+=i x y i i ,)(x p 4及)(x S Python 代码import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontPropertiesfont_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=12) #求⽜顿n 次均差 def qiujuncha(x,f,n): for i in range(1,n): for j in range(4,i-1,-1):f[j]= (f[j] - f[j-1])/(x[j]-x[j-i]) #根据⽜顿多项式求值 def niudun(x,f,x1): sum = f[0]; tmp = 1;for i in range(1,5): tmp *= (x1-x[i-1]) sum = sum + f[i]*tmp return sum#⽜顿插值画图 def drawPic(x,f):x1 = np.linspace(0.2, 1, 100) plt.plot(x1, niudun(x,f,x1))plt.title(u"⽜顿四次插值",fontproperties=font_set) plt.xlabel(u"x 轴",fontproperties=font_set) plt.ylabel(u"y 轴", fontproperties=font_set) plt.show() def qiu_h(x,h): n = len(x) -1 for i in range(n): print(i)h[i] = x[i+1]-x[i]#⾃然边界条件下的三次样条插值求Mdef qiu_m(h,f,o,u,d):n = len(h)o[0] = 0u[n] = 0d[n] = d[0] = 0a = []for i in range(1,n):u[i] = h[i-1]/(h[i-1]+h[i])for i in range(1,n):o[i] = h[i]/(h[i-1]+h[i])for i in range(1,n-1):d[i] = 6*(f[i+1]-f[i])/(h[i-1]+h[i])t = [0 for i in range(5)]t[0] =2t[1] = o[0]a.append(t)for i in range(1,n):t = [0 for i in range(5)]t[i - 1] = u [i + 1]t[i] = 2t[i + 1] = o [i + 1]a.append(t)t = [0 for i in range(5)]t[n - 1] = u[n]t[n] = 2a.append(t)tmp = np.linalg.solve(np.array(a),np.array(d))m = []for i in range(5):m.append(tmp[i])return m#根据三次条插值函数求值def yangtiao(x1,m,x,y,h,j):returnm[j]*(x[j+1]-x1)**3/(6*h[j])+m[j+1]*(x1-x[j])**3/(6*h[j])+(y[j]-m[j]*h[j]**2/6)*(x[j+1]-x1)/h[j] +(y[j+1]-m[j+1]*h[j]**2/6)*(x1-x[j])/h[j] def main():x = [0.2, 0.4, 0.6, 0.8, 1.0]y = [0.98, 0.92, 0.81, 0.64, 0.38]f = y[:]f1 = y[:]h = [0.2,0.2,0.2,0.2]u = [0 for n in range(5)]d = [0 for n in range(5)]o = [0 for n in range(5)] qiujuncha(x,f,4) qiujuncha(x,f1,2)m = qiu_m(h,f1,o,u,d) x1 = np.linspace(0.2, 0.4, 10)p1= plt.plot(x1, yangtiao(x1,m,x,y,h,0),color='red') x1 = np.linspace(0.4, 0.6, 10)plt.plot(x1, yangtiao(x1, m, x, y, h, 1),color='red') x1 = np.linspace(0.6, 0.8, 10)plt.plot(x1, yangtiao(x1, m, x, y, h, 2),color='red') x1 = np.linspace(0.8, 1.0, 10)plt.plot(x1, yangtiao(x1, m, x, y, h, 3),color='red') x1 = np.linspace(0.2, 1.0, 40)p2 = plt.plot(x1,niudun(x,f,x1),color='green') plt.xlabel(u"x 轴", fontproperties=font_set) plt.ylabel(u"y 轴",fontproperties=font_set) plt.title("三次样条插值和⽜顿插值")plt.legend(labels=[u'三次样条插值',u'⽜顿插值'],prop=font_set,loc="best") plt.show() main()实验结果运⾏结果可得插值函数图(如图1-1),4次⽜顿插值函数)(x p 4和三次样条插值函数)(x S 如下:)6.0(*)4.0(*)2.0(625.0)4.0(*)2.0(*3.098.0)(4-------=x x x x x x x P 98.0)8.0(*)6.0(*)4.0(*)2.0(*20833.0+-----x x x x]4.0,2.0[),2.0(467.4)4.0(9.4)2.0(167.1)(S 3∈-+-+-=x x x x x]6.0,4.0[),4.0(113.4)6.0(6467.4)4.0(575.1)6.0(167.1)(S 33∈-+-+----=x x x x x x ]8.0,6.0[),6.0(2.3)8.0(113.4)6.0(575.1)(S 3∈-+-+--=x x x x x]0.1,8.0[),8.0(9.1)0.1(2.3)(S ∈-+-=x x x x图1-1三次样条插值和⽜顿插值图2.在区间[-1,1]上分别取n = 10,20⽤两组等距节点对龙格函数做多项式插值三次样条插值,对每个n值画出插值函数及图形。

数值分析上机作业1-1解析

数值分析上机作业1-1解析

数值计算方法上机题目11、实验1. 病态问题实验目的:算法有“优”与“劣”之分,问题也有“好”和“坏”之别。

所谓坏问题就是问题本身的解对数据变化的比较敏感,反之属于好问题。

希望读者通过本实验对此有一个初步的体会。

数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。

病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。

问题提出:考虑一个高次的代数多项式∏=-=---=201)()20)...(2)(1()(k k x x x x x p (E1-1)显然该多项式的全部根为l ,2,…,20,共计20个,且每个根都是单重的(也称为简单的)。

现考虑该多项式方程的一个扰动0)(19=+xx p ε (E1-2)其中ε是一个非常小的数。

这相当于是对(E1-1)中19x 的系数作一个小的扰动。

我们希望比较(E1-1)和(E1-2)根的差别,从而分析方程(E1-1)的解对扰动的敏感性。

实验内容:为了实现方便,我们先介绍两个 Matlab 函数:“roots ”和“poly ”,输入函数u =roots (a )其中若变量a 存储1+n 维的向量,则该函数的输出u 为一个n 维的向量。

设a 的元素依次为121,...,,+n a a a ,则输出u 的各分量是多项式方程0...1121=++++-n n n n a x a x a x a的全部根,而函数b=poly(v)的输出b 是一个n +1维变量,它是以n 维变量v 的各分量为根的多项式的系数。

可见“roots ”和“Poly ”是两个互逆的运算函数.ve=zeros(1,21); ve(2)=ess;roots(poly(1:20))+ve)上述简单的Matlab 程序便得到(E1-2)的全部根,程序中的“ess ”即是(E1-2)中的ε。

实验要求:(1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。

数值分析上机题答案

数值分析上机题答案

数值分析上机题答案【篇一:数值分析上机试题对应参考答案】么是近似值x* 有效数字?若近似值x*的误差限是某一位的半个单位,该位到x*的第一位非零数字共有n位,就说x*有n位有效数字。

它可表示为2、数值计算应该避免采用不稳定的算法,防止有效数字的损失. 因此,在进行数值运算算法设计过程中主要注意什么?(1)简化计算过程,减少运算次数;(2)避免两个相近的数相减;(3)避免除数的绝对值远小于被除数的绝对值;(4)防止大数“吃掉”小数的现象;(5)使用数值稳定的算法,设法控制误差的传播。

3、写出“n 阶阵a 具有n 个不相等的特征值”的等价条件(至少写3 个)(1)|a|不为零(2)n阶矩阵a的列或行向量组线性无关(3)矩阵a为满秩矩阵(4)n阶矩阵a与n阶可逆矩阵b等价4、迭代法的基本思想是什么?就是用某种极限过程去逐步逼近线性方程组精确解得方法。

其基本思想为:先任取一组近似解初值x0,然后按照某种迭代原则,由x0计算新的近似解x1,以此类推,可计算出x2,x3,…xk,。

,如果{x}收敛,则取为原方程组的解。

5、病态线性方程组的主要判断方法有哪些?(1)系数矩阵的某两行(列)几乎近似相关(2)系数矩阵的行列式的值很小(3)用主元消去法解线性方程组时出现小主元(4)近似解x*已使残差向量r=b-ax*的范数很小,但该近似解仍不符合问题要求。

6、lagrange 插值的前提条件是什么?并写出二次lagrange 插值的基函数。

1,j?i?(x)? 前提条件是:l i ,j?0,1,2?,n.?ij0,j?i?二次lagrange 插值的基函数: (x?x)(x?x)12??lx0(xx)(xx) 0?10?2 (x?x)(x?x)02?? lx1(xx)(xx)1?01?2(x?x)(x?x)01?? lx2(x?x)(x?x)20217、什么是数值积分的代数精度?如果某一个求积公式对于次数不超过m的多项式均能准确地成立,但对于m+1次多项式就不准确成立,则称该求积公式具有m次代数精度(或代数精确度)。

数值分析上机

数值分析上机

7 数值分析上机作业
m=0; else if(fabs(t1)<=1) m=0.5*fabs(t1)*fabs(t1)*fabs(t1)-t1*t1+2.0/3.0; else m=-1.0/6.0*fabs(t1)*fabs(t1)*fabs(t1)+t1*t1-2*fabs(t1)+4.0/3.0; return(m); } float func2(float t2) {double n; if(fabs(t2)>=2.0/3.0) n=0; else if(-0.5<=fabs(t2)&&fabs(t2)<=0.5) n=-t2*t2+3.0/4.0; else n=0.5*t2*t2-(3.0/2.0)*fabs(t2)+9.0/8.0; return(n); }
6 数值分析上机作业
int i,j,k; int a[12][12]={{-1,0,1,0,0,0,0,0,0,0,0,0}, {1,4,1,0,0,0,0,0,0,0,0,0}, {0,1,4,1,0,0,0,0,0,0,0,0}, {0,0,1,4,1,0,0,0,0,0,0,0}, {0,0,0,1,4,1,0,0,0,0,0,0}, {0,0,0,0,1,4,1,0,0,0,0,0}, {0,0,0,0,0,1,4,1,0,0,0,0}, {0,0,0,0,0,0,1,4,1,0,0,0}, {0,0,0,0,0,0,0,1,4,1,0,0}, {0,0,0,0,0,0,0,0,1,4,1,0}, {0,0,0,0,0,0,0,0,0,1,4,1}, {0,0,0,0,0,0,0,0,0,-1,0,1}}; float b1,b2; float s1=0,s2=0; for (k=0;k<=500;k++) for (i=0;i<=11;i++) {b1=0; b2=0;

数值分析上机题

数值分析上机题

上机题1舍入误差与有效数: 设2211N N j S j ==-∑,其精确值为1311()221N N --+。

(1) 编制按从大到小的顺序222111+2131N 1N S =++---…,计算N S 的通用程序; (2) 编制按从小到大的顺序222111+N 1N-1121N S =++---…(),计算N S 的通用程序; (3) 按两种顺序分别计算246101010S ,S ,S ,并指出有效位数(编制程序时用单精度);(4) 通过本上机题你明白了什么?Matlab 代码:Sb=single(0); %定义数据类型为单精度Ss=single(0);y=single(0);Y=single(0);N=single(2);a=1000000;while(1) %从大到小相加Y=1/(N^2-1);Sb=Sb+Y;if(N>=a)break;endN=N+1;endfprintf('Sb[%d]=%10.9f\n',N,Sb)n=single(a);while(1) %从小到大相加y=1/(n^2-1);Ss=Ss+y;if(n<=2)break;endn=n-1;endfprintf('Ss[%d]=%10.9f\n',a,Ss)St=(3/2-1/a-1/(1+a))/2; %准确值fprintf('St[%d]=%10.9f\a',a,St)分别计算246101010S ,S ,S 值为:Sb[100]=0.740049481Ss[100]=0.740049541St[100]=0.740049505从大到小S 计算有效位数为6位,从小到大为7位;Sb[10000]=0.749852121Ss[10000]=0.749899983St[10000]=0.749900005从大到小S 计算有效位数为3位,从小到大为3位;Sb[1000000]=0.749852121Ss[1000000]=0.749999046St[1000000]=0.749999000从大到小S 计算有效位数为3位,从小到大为7位;心得:按从小到大计算的有效数字要多与按从大到小计算所得。

数值分析上机答案

数值分析上机答案

第六章 2、证明:对于矩阵A 进行分解有:000300002000020001210002000A L D U=++-⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪=++ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭⎝⎭那么:对于Jacobi 迭代其迭代矩阵为:11()20033000021020001020022101102J B D L U --=+⎛⎫- ⎪-⎛⎫⎛⎫ ⎪ ⎪ ⎪⎪=+= ⎪ ⎪⎪ ⎪ ⎪- ⎪⎝⎭⎝⎭⎪- ⎪⎝⎭对于Gauss-Seidel 迭代其迭代矩阵为:11()20033000021020001002212000110012g s J B B D L U---==-⎛⎫- ⎪-⎛⎫⎛⎫ ⎪ ⎪ ⎪ ⎪=+= ⎪ ⎪ ⎪ ⎪ ⎪- ⎪⎝⎭⎝⎭ ⎪ ⎪⎝⎭(1)对于B J 我们求()J B ρ有:223111det(I )0()212112J B λλλλλλ-=-=--所以12,30,λλ==则有:()1J B ρ=< ,所以Jacobi 迭代收敛。

对于Gauss-Seidel 迭代,求其()g s B ρ-有:11()112g s g sB B ρ--∞<=< 所以Gauss-seidel 迭代收敛。

(2)并且有11()()12g s J B B ρρ-=<= 所以Gauss-Seidel 迭代收敛速度更快。

3、解:求取系数矩阵并进行分解有:4101143,50143A b -⎛⎫⎛⎫ ⎪ ⎪=--= ⎪ ⎪ ⎪ ⎪--⎝⎭⎝⎭那么SOR 迭代公式为:取初始值为(0,0,0)有:(0)1(1)()(1)()1(0,0,0)()/1,2,3T i n k k k k ii i ij i ij i ii j j i x x x b a x a x a i ω-++==⎧=⎪⎪=+--⎨⎪⎪=⎩∑∑ 那么有:对于ω=1.03有:3(1)(0)(0)111113(1)(0)(1)(0)22221122222(1)(0)(1)(0)33333333311.03()/40.25751.03()/ 1.353806251.03()/0.423894890625j j j j j j j j j x x b a x x x b a x a x a x x b a x a x a ===⎧=+-=⎪⎪⎪⎪=+--=⎨⎪⎪=+--=-⎪⎪⎩∑∑∑ 那么*(1)0.35380625x x ∞-=,条件不满足,继续迭代有:6次。

数值分析上机样题

数值分析上机样题

2003---2004 学年 第二学期 (共1页)踏实学习,弘扬正气;诚信做人,诚实考试;作弊可耻,后果自负。

课程名称 数值分析(上机部分) 使用专业研一A 卷2004年6月 时间:60分钟 每题20分班级 学号 机号 姓名考试规则:邻座试卷不同,开卷,解答全部写在考卷上;开考后不允许用软盘,也不允许上网.注:数据结果均精确到小数点后第四位;要求写出M 函数(如果需要)、MATLAB 命令和计算结果.1、在一天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为 12,9,9,10,18 ,24,28,27,25,20,18,15,13, 用三次样条插值推测中午13点时的温度.(采用系统默认的边界条件) 命令:>> x=0:2:24;y=[12 9 9 10 18 24 28 27 25 20 18 15 13];>> interp1(x,y,13,'spline')答案:13点时的温度为 27.8725或>> pp=spline(x,y);>> ppval(pp,13)13点时的温度为 27.87252、利用教材程序nagauss2.m (P. 20)求解线性方程组⎪⎩⎪⎨⎧=++=++=++11163185221482321321321x x x x x x x x x .命令:>> a=[2 8 14;2 5 8 ;3 6 11];b=[2 1 1]';>> nagauss2(a,b)答案:0.33330.33330x -⎛⎫ ⎪= ⎪ ⎪⎝⎭3.求积分dx x e ⎰5)log(log 的近似值.命令:>> x=linspace(exp(1),5,100);>> y=log(log(x));>> trapz(x,y)答案:积分值为 0.63994、曲线x x y 32-=与2-=x e y 在点(0.2,-0.6)附近有交点,求其交点横坐标的近似值.命令:>> fzero('x^2-3*x-exp(x)+2',[0 2])答案: 横坐标为 0.25755、设30,,1,0,51 0 =+=⎰n dx x x y n n 利用关系式n y y n n 151=+-,可得如下算法:⎪⎩⎪⎨⎧=-=-=-30,,2,1,515ln 6ln 10 n y n y y n n ,试依此算法编程计算3010,,,y y y (写出302928,,y y y 即可),并说明一下此算法是否稳定. 程序:testa.mclear;format long;a=zeros(1,31);a(1)=log(6)-log(5);for n=2:31a(n)=1/(n-1)-5*a(n-1); enda命令:testa答案:28y =1841.9759 29y =-9209.8450 30y =46049.2582 算法不稳定。

最新(完美版)数值分析上机作业

最新(完美版)数值分析上机作业

一. 上机作业任务一: 用五点差分格式求解Poisson 方程边值问题,P124-------3、4(任选一题)。

二. 上机作业任务二:用Simpson 求积法计算定积分()baf x dx ⎰。

下面两种方法任选一。

(1)变步长复化Simpson 求积法。

(2)自适应Simpson 求积法三. 上机作业任务三:用MATLAB 语言编写连续函数最佳平方逼近的算法程序(函数式M 文件)。

要求算法程序可以适应不同的具体函数,具有一定的通用性。

并用此程序进行数值试验,写出计算实习报告。

所编程序具有以下功能:1. 用Lengendre 多项式做基,并适合于构造任意次数的最佳平方逼近多项式。

可利用递推关系 0112()1,()()(21)()(1)()/2,3,.....n n n P x P x xP x n xP x n P x n n --===---⎡⎤⎣⎦=2. 被逼近函数f(x)用M 文件建立数学函数。

这样,此程序可通过修改建立数学函数的M 文件以适用不同的被逼近函数(要学会用函数句柄)。

3. 要考虑一般的情况]1,1[],[)(+-≠∈b a x f 。

因此,程序中要有变量代换的功能。

4. 计算组合系数时,计算函数的积分采用数值积分的方法。

5. 程序中应包括帮助文本和必要的注释语句。

另外,程序中也要有必要的反馈信息。

6. 程序输入:(1)待求的被逼近函数值的数据点0x (可以是一个数值或向量)(2)区间端点:a,b 。

7. 程序输出:(1)拟合系数:012,,,...,n c c c c(2)待求的被逼近函数值00001102200()()()()()n n s x c P x c P x c P x c P x =++++ 8. 试验函数:()cos ,[0,4]f x x x x =∈+;也可自选其它的试验函数。

9. 用所编程序直接进行计算,检测程序的正确性,并理解算法。

10. 分别求二次、三次、。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值分析上机题
一、 城市水管应埋于地下多深
1、 问题背景
在冬季寒冷的大城市,必须保证埋于地下的水管不冻结。

在寒冷季节,地面土壤的温度很低,而越深入地下温度越高。

因此,水管应该埋得越深越好。

但相应的施工难度及成本也越大。

问:在保证水管不冻结,埋水管的深度如何确定。

2、 建模
由于土壤的热传导作用,冬季寒流到来后,地下土壤的温度会逐渐降低,因此,它既是深度x ,也是时间t 的函数。

经仔细分析,有如下方程:
)( 2)
,(t x s T i T t x T erf α=-
说明:T(x,t) : 土壤温度函数,x 为深度,t 为时间。

T i :寒流到来前的正常土壤温度
T s :寒流季节的地面温度
寒流持续时间
土壤深度
土壤热传导系数
:t :x : )(022απdt e x erf x t ⎰=
- 易知,方程左端为0到1之间,t=0时值为1,x=0时值为0 要确定最合适的深度,可假设寒冷最长时间为t m 由于C 0
0为结冰温
度,则T(x,t)=0对度的x 为所求。

于是有:
0)()(),()( 2=-+=≡m t x
s i s m pipe erf T T T t x T x T α
3、 求解条件
60
t ,15 ,20 ,/10
138.0m 0026=-==∙=-C T C T s m s i α 二、 Google 的PageRank 算法
1、 问题背景
互联网(internet)的使用已经深入到人们的日常生活中,其巨大的信息量和强大的功能给生产、生活带来了很大的便利。

随着网络信息量越来越宠大,如何有效地搜索出用户真正需要的信息变得十分重要。

自1998年搜索引擎网站Google 创立以来,网络搜索引擎成为解决上述问题的主要手段。

1998年,美国斯坦福大学的博士生Larry Page 和Sergey Brin 创立了Google 公司,他们的核心技术就是通过PageRank 技术对海量的网页进行重要性分析。

该技术利用网页相互链接的关系对网页进行组织,确定出每个网页的重要级别(PageRank )。

当用户进行搜索时,Google 找出符合搜索要求的网页,并按他们的PageRank 大小依次列出。

这样,用户一般在显示结果的第一页或者前几页就能找到真正有用的结果。

PageRank 技术的基本原理是:如果网页A 链接到网页B ,则认为“网页A 投了网页B 一票”,而且如果网页A 是级别高的网页,则网页B 的级别也相应地高。

2、 数学建模
假设n是Internet中所有可访问网页的数目,此数值非常大,在2010年已接近100亿。

定义n×n的网页连接矩阵G=(g ij),若从网页j 有一个链接到网页i,则g ij=1,否则g ij=0。

矩阵G有如下特点:(1)G矩阵是大规模稀疏矩阵;
(2)第j列非零元素,表示了从网页j链接出去的所有网页;(3)第i行非零元素,表示了链接到网页i的所有网页;
(4)G中非零元素的数目为整个Internet中存在的超链接的数量;
(5)记G矩阵行元素之和∑
=
j ij
i g
r,它表示第i个网页的“入度”;
(6)记G矩阵列元素之和∑
=
i ij
j g
c,它表示第j个网页的“出度”。

要计算PageRank,可假设一个随机上网“冲浪”的过程,即每次看完当前网页后,有两种选择:
(1)在当前网页中随机选一个超链接进入下一个网页;
(2)随机地新开一个网页。

这在数学上称为马尔可夫过程,若这样的随机“冲浪”一直进行下去,某个网页被访问到的极限概率就是它的PageRank。

设p为选择当前网页上链接的概率(比如,p=0.85),则1-p为不选当前网页的链接而随机打开一个网页的概率。

若当前网页是网页j,则如何计算下一步浏览到达网页i的概率(网页j到i的转移概率)?它有两种可能性:
(1)若网页i在网页j的链接上,其概率为p×1/c j+(1-p) ×1/n;
(2)若网页i不在网页j的链接上,其概率为(1-p) ×1/n
由于网页i 是否在网页j 的链接上由g ij 决定,网页j 到i 的转移概率为:
[][]n p j c ij pg n ij n j c ij ij p g p p g a -+=∙--+∙-+∙
=1111)1()1()1( 应注意到的是,若c j =0意味着g ij =0,上式改为a ij =1/n 。

任意两个网页之间的转移概率形成了一个转移矩阵A=(a ij ),设矩阵D 为各个网页出度的倒数(若没有出度,设为1)构成的n 阶对角阵,e 为全是1的n 维向量,则:
T n p e pGD A e 1-+
= 设n i x k i ,,2,1,)( =表示某时刻k 浏览网页i 的概率)1()(=∑k i x ,向量x (k)表示当前时刻浏览各网页的概率分布。

那么下一时刻浏览到网页i 的概率为∑=n j k j ij x a 1)(,此时浏览各网页的概率分布为x (k+1)=A x (k)
当这个过程无限进行下去,达到极限情况,即网页访问概率x (k)收敛到一个极限值,这个极限向量x 为各网页的PageRank ,它满足A x =x ,且∑==n
i i x 11
3、 计算PageRank
设定n ×n 的网页连接矩阵G ,以及选择当前网页链接的概率p ,要计算特征值1对应的特征向量x
⎪⎩⎪⎨⎧∑===n i i x x Ax 1
1
易知||A||1=1,所以ρ(A)≤1. 又考虑L=I-A,容易验证它各列元素和均为0,则为奇异矩阵,所以|I-A|=0,1是A的特征值。

更进一步,用圆盘定理考察矩阵A T的特征值分布。

显然第j个圆盘D j,其圆心a jj>0,半径r j满足a jj+r j=1,因此,除了1这个点外,圆盘上任何一点到圆心的距离(即复数的模)都小于1,这就说明,1是矩阵A T和A的唯一主特征值。

对于实际的大规模稀疏矩阵A,幂法是求其主特征向量的可靠的、唯一的选择。

网页的PageRank完全由所有网页的超链接结构所决定,隔一段时间重新计算一次PageRank以反映互联网的发展变化。

此时将上一次计算的结果作为幂法的迭代初值可提高收敛速度。

由于迭代向量以及矩阵A的物理意义,在使用幂法时并不需要对向量进行规格化,而且不需要形成矩阵A,通过遍历整个网页的数据库,根据网页间超链接关系即可得到A x(k)的结果。

4、实险
请针对下图的小型网络,计算各网页的PageRank.
网页超链接关系图。

相关文档
最新文档