数值分析上机实习题及答案.docx
- 格式:docx
- 大小:138.03 KB
- 文档页数:11
2018-2019 第1学期上机实习题总目标:会算,要有优化意识。
(以下程序要求以附件1例题代码格式给出)1. 给出牛顿法求函数零点的程序。
调用条件:输入函数表达式()f x ,隔根区间[,]a b输出结果:零点的值x 和精度e试取函数4322() 1.40.418.4080.51f x x x x x =---+,用牛顿法计算01x =附近的根,判断相应的收敛速度,并给出数学解释。
2. 利用牛顿插值法计算牛顿插值多项式,并计算该多项式在某一点处的取值。
调用条件:输入n 个插值节点i x ,与对应的函数值i y ;待计算的点0x输出结果:插值多项式的系数向量,以及多项式在0x 处的取值(注意用适当的算法) 给出调用说明和例子。
3. 给定线性方程组Ax b =,利用列主元高斯消元法进行求解。
调用条件:输入系数矩阵A 和右端项b输出结果:方程组的解 试取系数矩阵为111111111n n A ⨯⎛⎫ ⎪- ⎪= ⎪ ⎪--⎝⎭,观察列主元消元过程中绝对值最大的列主元取值,并给出数学解释。
4. 给定函数)()(a x x b f ≤≤,将区间[,]a b 取n 等分,每个子区间分别用一次多项式、二次多项式进行插值,生成的多项式分别记为()1n P ,()2n P ,计算()12||()||n f x P -,()22||()||n f x P -。
(这里涉及到的积分运算需采用适当的数值求积算法)调用条件:输入函数表达式()f x ,隔根区间[,]a b ,等分区间数n输出结果:误差值()12||()||n f x P -,()22||()||n f x P -(可以分别写程序计算) 试取不同的函数和隔根区间(比如()sin f x x =,[,][0,1]a b =),n 为2,4,8,16,…,观察误差变化,并给出数学解释。
5. 给出一个通用多项式拟合程序输入部分:离散数据对(,)i i x y , 多项式次数输出部分:系数向量、拟合的实际误差。
数值分析计算实习题-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN《数值分析》计算实习题姓名:学号:班级:第二章1、程序代码Clear;clc;x1=[ ];y1=[ ];n=length(y1);c=y1(:);for j=2:n %求差商for i=n:-1:jc(i)=(c(i)-c(i-1))/(x1(i)-x1(i-j+1));endendsyms x df d;df(1)=1;d(1)=y1(1);for i=2:n %求牛顿差值多项式df(i)=df(i-1)*(x-x1(i-1));d(i)=c(i-1)*df(i);endP4=vpa(sum(d),5) %P4即为4次牛顿插值多项式,并保留小数点后5位数pp=csape(x1,y1, 'variational');%调用三次样条函数q=;q1=q(1,:)*[^3;^2;;1];q1=vpa(collect(q1),5)q2=q(1,:)*[^3;^2;;1];q2=vpa(collect(q2),5)q3=q(1,:)*[^3;^2;;1];q3=vpa(collect(q3),5)q4=q(1,:)*[^3;^2;;1];q4=vpa(collect(q4),5)%求解并化简多项式2、运行结果P4 =*x - *(x - *(x - - *(x - *(x - *(x - - *(x - *(x - *(x - *(x - + q1 =- *x^3 + *x^2 - *x +q2 =- *x^3 + *x^2 - *x + q3 =- *x^3 + *x^2 - *x + q4 =- *x^3 + *x^2 - *x +3、问题结果4次牛顿差值多项式4()P x = *x - *(x - *(x - - *(x - *(x - *(x - - *(x - *(x - *(x - *(x - +三次样条差值多项式()Q x0.10.20.30.40.50.60.70.80.910.40.50.60.70.80.911.1323232321.33930.803570.40714 1.04,[0.2,0.4]1.3393 1.60710.88929 1.1643,[0.4,0.6]1.3393 2.4107 1.6929 1.4171,[0.6,0.8]1.3393 3.21432.8179 1.8629,[0.8,1.0]x x x x x x x x x x x x x x x x ⎧-+-+∈⎪-+-+∈⎪⎨-+-+∈⎪⎪-+-+∈⎩第三章1、程序代码Clear;clc; x=[0 1]; y=[1 ];p1=polyfit(x,y,3)%三次多项式拟合 p2=polyfit(x,y,4)%四次多项式拟合 y1=polyval(p1,x);y2=polyval(p2,x);%多项式求值plot(x,y,'c--',x,y1,'r:',x,y2,'y-.')p3=polyfit(x,y,2)%观察图像,类似抛物线,故用二次多项式拟合。
数值分析第五章实习题答案数值分析第五章实习题答案数值分析是一门研究如何使用计算机来解决数学问题的学科。
在数值分析的学习过程中,实习题是非常重要的一部分,通过实习题的练习,可以帮助我们巩固所学的知识,并且提高我们的解题能力。
本文将为大家提供数值分析第五章实习题的答案,希望对大家的学习有所帮助。
第一题:求下列方程的一个正根,并用二分法和牛顿法分别计算根的近似值。
方程:x^3 - 3x + 1 = 0解答:首先,我们可以通过绘制函数图像来初步估计方程的根的范围。
根据图像,我们可以大致确定根在区间[0, 2]之间。
接下来,我们使用二分法来计算根的近似值。
根据二分法的原理,我们将区间[0, 2]等分为两部分,然后判断根在哪一部分。
不断重复这个过程,直到找到根的近似值。
具体计算过程如下:- 将区间[0, 2]等分为两部分,得到中点x = 1。
- 计算方程在x = 1处的函数值f(1) = -1。
- 根据函数值的正负性,我们可以确定根在区间[1, 2]之间。
- 将区间[1, 2]等分为两部分,得到中点x = 1.5。
- 计算方程在x = 1.5处的函数值f(1.5) = 1.375。
- 根据函数值的正负性,我们可以确定根在区间[1, 1.5]之间。
- 重复以上步骤,直到找到根的近似值。
最终得到根的近似值为x ≈ 1.365。
接下来,我们使用牛顿法来计算根的近似值。
牛顿法是一种迭代法,通过不断逼近根的位置来计算根的近似值。
具体计算过程如下:- 选择初始近似值x0 = 1。
- 计算方程在x = 1处的函数值f(1) = -1。
- 计算方程在x = 1处的导数值f'(1) = 4。
- 利用牛顿法的迭代公式x1 = x0 - f(x0)/f'(x0),我们可以得到x1 ≈ 1.333。
- 重复以上步骤,直到找到根的近似值。
最终得到根的近似值为x ≈ 1.365。
通过二分法和牛顿法,我们分别得到了方程x^3 - 3x + 1 = 0的一个正根的近似值为x ≈ 1.365。
东南⼤学数值分析上机题答案数值分析上机题第⼀章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)感想:通过本上机题,我明⽩了,从⼩到⼤计算数值的精确位数⽐较⾼⽽且与真值较为接近,⽽从⼤到⼩计算数值的精确位数⽐较低。
方詡文金兴:爭[数值分析]2017-2018第二学期上机实习题1:编程计算亍丄,其中C= 4. 4942x10307,给出并观察计算结心C"果,若有问题,分析之。
解:mat lab 编程如下:E) funct ion diy i ti formatlong g;n 二input C 输入ii 值= c= 4.4942E307; sum 二0; s 二 0;E3 for i = l:n s = l/ (c*i);>> diyiti 输入n 值:10 104.6356e-308 >> diyiti输入ri 值:1001004.6356e-308 >> diyiti 输入n 值:1000 10004.6356e-308 >> diyiti揄入n 值* 1000001000004・ 6356e-308 >> diyiti输入n 值;1000000001000000004.6356e-308图二:运行结果Mat lab 中,forma t long g 对双精度,显示15位定点或浮点格式,由上图 可知,当输入较小的n 值5分别取10, 100, 1000, 100000, 100000000)的时候, 结果后面的指数中总是含有e-308,这和题目中的C 值很相似,我认为是由于分 母中的C 值相对于n 值过大,出现了 “大数吃小数”的现彖,这是不符合算法原 则的。
2:利用牛顿法求方程-1^ = 2于区间241的根,考虑不同初值下牛顿法的收敛情况。
解:牛顿法公式为:利用mat lab 编程function di2ti21 3i=l ;2 2.85208156699784 xO 二input ('输入初值x0:‘ );A 二[i x0];3 2.55030468822809 t=x0+ (x0-log (xO) -2) /(1-1/xO) ; %迭代函数4 1.91547247100476 三 while (abs (t _x0)>0.01)i=i+l; 5 0.37867158538991 xO 二 t; 6 0.774964959780275 A = [A;i xO];t =x0+(x0-log(xO)-2)/(1-1/xO): 7 4.11574081641933 cnd| 8 5.04162436446126 disp (A);96.81782826645596当输入初值二3的时候并不能收敛。
数值分析计算实习题答案数值分析计算实习题答案数值分析是一门研究如何利用计算机对数学问题进行近似求解的学科。
在数值分析的学习过程中,实习题是一种重要的学习方式,通过实践来巩固理论知识,并培养解决实际问题的能力。
本文将为大家提供一些数值分析计算实习题的答案,希望能够帮助大家更好地理解和掌握数值分析的相关知识。
一、插值与拟合1. 已知一组数据点,要求通过这些数据点构造一个一次插值多项式,并求出在某一特定点的函数值。
答案:首先,我们可以根据给定的数据点构造一个一次插值多项式。
假设给定的数据点为(x0, y0), (x1, y1),我们可以构造一个一次多项式p(x) = a0 + a1x,其中a0和a1为待定系数。
根据插值条件,我们有p(x0) = y0,p(x1) = y1。
将这两个条件代入多项式中,可以得到一个方程组,通过求解这个方程组,我们就可以确定a0和a1的值。
最后,将求得的多项式代入到某一特定点,就可以得到该点的函数值。
2. 已知一组数据点,要求通过这些数据点进行最小二乘拟合,并求出拟合曲线的表达式。
答案:最小二乘拟合是一种通过最小化误差平方和来找到最佳拟合曲线的方法。
假设给定的数据点为(x0, y0), (x1, y1),我们可以构造一个拟合曲线的表达式y =a0 + a1x + a2x^2 + ... + anx^n,其中a0, a1, ..., an为待定系数。
根据最小二乘拟合原理,我们需要最小化误差平方和E = Σ(yi - f(xi))^2,其中yi为实际数据点的y值,f(xi)为拟合曲线在xi处的函数值。
通过求解这个最小化问题,我们就可以确定拟合曲线的表达式。
二、数值积分1. 已知一个函数的表达式,要求通过数值积分的方法计算函数在某一区间上的定积分值。
答案:数值积分是一种通过将定积分转化为数值求和来近似计算的方法。
假设给定的函数表达式为f(x),我们可以将定积分∫[a, b]f(x)dx近似为Σwi * f(xi),其中wi为权重系数,xi为待定节点。
数值分析论文数值积分 一、问题提出选用复合梯形公式,复合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次代数精度。
三、复合求积公式为了提高精度,通常可以把积分区间分成若干子区间(通常是等分),再在每个子区间用低阶求积公式,即复化求积法,比如复化梯形公式与复化辛普森公式。
目录解题: (1)题目一: (1)1.1计算结果 (1)1.2结果分析 (1)题目二: (2)2.1计算结果 (2)2.2结果分析 (3)题目三: (4)3.1计算结果 (4)3.2结果分析 (5)总结 (5)附录 (6)Matlab程序: (6)题目一: (6)第一问Newton法: (6)第二问Newton法: (6)第一问Steffensen加速法: (7)第二问Steffensen加速法: (7)题目二 (8)1、Jacobi迭代法 (8)2、Causs-Seidel迭代法 (8)题目三: (9)题目一:分别用牛顿法,及基于牛顿算法下的Steffensen 加速法(1)求ln(x +sin x )=0的根。
初值x0分别取0.1, 1,1.5, 2, 4进行计算。
(2)求sin x =0的根。
初值x0分别取1,1.4,1.6, 1.8,3进行计算。
分析其中遇到的现象与问题。
1.1计算结果求ln(x +sin x )=0的根,可变行为求解x-sinx-1=0的根。
1.2结果分析从结果对比我们可发现牛顿—Steffensen 加速法比牛顿法要收敛的快,牛顿法对于初值的选取特别重要,比如第(1)问中的初值为4的情况,100次内没有迭代出来收敛解,而用Steffensen 加速法,7次迭代可得;在第(2)问中的初值为1.6的情况,收敛解得31.4159,分析其原因应该是x x f cos )('=,x0=1.62π≈,0)('≈x f ;迭代式在迭代过程中会出现分母趋近于0,程序自动停止迭代的情况,此时得到的x 往往非常大,而在第一问中我们如果转化为用x+sinx=1,则可以收敛到结果。
用雅格比法与高斯-赛德尔迭代法解下列方程组Ax=b,研究其收敛性,上机验证理论分析是否正确,比较它们的收敛速度,观察右端项对迭代收敛有无影响。
(1)A行分别为A1=[6,2,-1],A2=[1,4,-2],A3=[-3,1,4];b1=[-3,2,4]T,b2=[100,-200,345]T,(2) A行分别为A1=[1,0,8,0.8],A2=[0.8,1,0.8],A3=[0.8,0.8,1];b1=[3,2,1]T,b2=[5,0,-10]T,(3)A行分别为A1=[1,3],A2=[-7,1];b=[4,6]T2.1计算结果初值均为0矩阵带入(1)A行分别为A1=[6,2,-1],A2=[1,4,-2],A3=[-3,1,4];b1=[-3,2,4]T,b2=[100,-200,345]T2) A行分别为A1=[1,0,8,0.8],A2=[0.8,1,0.8],A3=[0.8,0.8,1];b1=[3,2,1]T,b2=[5,0,-10]TT2.2结果分析ρ小于1,故方程组雅可比迭代收第一小题的经计算谱半径为5427B(=).0敛。
线封密三峡大学试卷班级姓名学号2011年春季学期《数值分析》课程考试试卷( A 卷)答案及评分标准注意:1、本试卷共3页;2、考试时间:120 分钟;3、姓名、学号必须写在指定地方;一、(16分)填空题1. 已知1125A ⎡⎤=⎢⎥⎣⎦,则1A 6= (1分),∞A 7= . (1分)2.迭代过程),1,0)((1 ==+n x x n n ϕ收敛的一个充分条件是迭代函数)(x ϕ满足1|)(|<'x ϕ. (2分)3. 设),,2,1,0(,,53)(2==+=k kh x x x f k 则差商0],,,[321=+++n n n n x x x x f .(2分)4. 设)(x f 可微,求方程)(x f x =根的牛顿迭代格式是.2,1,0,)(1)(1='---=+k x f x f x x x k k k k k (2分)5. 用二分法求方程01)(3=-+=x x x f 在区间]1,0[内的根,迭代进行二步后根所在区间为]75.0,5.0[.(2分)6.为尽量避免有效数字的严重损失,当1>>x 时,应将表达式x x -+1改写为xx ++11以保证计算结果比较精确.(2分)7. 将2111A ⎛⎫= ⎪⎝⎭作Doolittle 分解(即LU 分解),则100.51L ⎛⎫= ⎪⎝⎭(2分),2100.5U ⎛⎫= ⎪⎝⎭(2分)二、(10分)用最小二乘法解下列超定线性方程组:⎪⎩⎪⎨⎧=-=+=+2724212121x x x x x x 解:23222121,e e e x x ++=)(ϕ221221221)2()72()4(--+-++-+=x x x x x x由 ⎪⎪⎩⎪⎪⎨⎧=-+=∂∂=-+=∂∂0)1662(20)1323(2212211x x x x x x ϕϕ(8分)得法方程组 ⎩⎨⎧=+=+166213232121x x x x 7231=⇒x , 7112=x所以最小二乘解为: 7231=x 7112=x . (10分)三、(10分)已知)(x f 的函数值如下表25.15.001)(15.005.01---x f x用复合梯形公式和复合Simpson 公式求dx x f ⎰-11)(的近似值.解 用复合梯形公式,小区间数4=n ,步长5.0)]1(1[41=--⨯=h )]1())5.0()0()5.0((2)1([24f f f f f hT +++-+-=.线封密三峡大学试卷班级姓名学号25.1]2)5.15.00(21[25.0=++++-=(5分) 用复合Simpson. 小区间数2=n ,步长1)]1(1[21=--⨯=h)]1())5.0()5.0((4)0(2)1([62f f f f f hS ++-+⨯+-=33.168]2)5.10(45.021[61≈=+++⨯+-= (10分)四、(12分)初值问题 ⎩⎨⎧=>+='0)0(0,y x b ax y有精确解 bx ax x y +=221)(, 试证明: 用Euler 法以h 为步长所得近似解n y 的整体截断误差为n n n n ahx y x y 21)(=-=ε证: Euler 公式为:),(111---+=n n n n y x hf y y代入b ax y x f +=),(得:)(11b ax h y y n n n ++=-- 由0)0(0==y y 得:bh b ax h y y =++=)(001; 11122)(ahx bh b ax h y y +=++= )(3)(21223x x ah bh b ax h y y ++=++=……)()(12111---++++=++=n n n n x x x ah nbh b ax h y y (10分)因nh x n =,于是 )]1(21[2-++++=n ah bx y n n 2)1(2nn ah bx n -+==n n n bx x x a+-12∴n n n y x y -=)(ε)2(2112n n n n n bx x x abx ax +-+=-=n n n x x x a )(21--=n hx a 2 =221anh (12分)五、(10分) 取节点1,010==x x ,写出x e x y -=)(的一次插值多项式),(1x L 并估计插值误差.解: 建立Lagrange 公式为()=x L 110100101y x x x x y x x x x --+--=10101101-⨯--+⨯--=e x x x e x 11-+-=.(8分)())1)(0(!2)()()(11--''=-=x x y x L x y x R ξ )10(<<ξ ()811)0(max 2110≤--≤≤≤x x x(10分)六、(10分) 在区间]3,2[上利用压缩映像原理验证迭代格式,1,0,4ln 1==+k x x k k 的敛散性.解 : 在]3,2[上, 由迭代格式 ,1,0,4ln 1==+k x x k k , 知=)(x ϕx 4ln .因∈x ]3,2[时,]3,2[]12ln ,8[ln )]3(),2([)(⊂=∈ϕϕϕx (5分) 又1|1||)(|<='xx ϕ,故由压缩映像原理知对任意]3,2[0∈x 有收敛的迭代公式),1,0(,4ln 1 ==+k x x k k (10分)线封密三峡大学试卷班级姓名学号七、(10分)试构造方程组⎩⎨⎧=+=+423322121x x x x 收敛的Jacobi 迭代格式和Seidel Gauss -迭代格式,并说明其收敛的理由. 解:将原方程组调整次序如下:⎩⎨⎧=+=+324232121x x x x 调整次序后的方程组为主对角线严格占优方程组,故可保证建立的J 迭代格式和GS 迭代格式一定收敛.收敛的J 迭代格式为:⎪⎪⎩⎪⎪⎨⎧-=-=++)3(21)24(31)(1)1(2)(2)1(1k k k k x x x x .,1,0 =k (5分)收敛的GS 迭代格式为:⎪⎪⎩⎪⎪⎨⎧-=-=+++)3(21)24(31)1(1)1(2)(2)1(1k k k k x x x x .,1,0 =k (10分)八、(12分)已知43,21,41210===x x x 1)推导以这3个点作为求积节点在[0,1]上的插值型求积公式;2)指明求积公式所具有的代数精度.解:1)过这3个点的插值多项式)())(())(()())(())(()(121012002010212x f x x x x x x x x x f x x x x x x x x x p ----+----=+)())(())((2021201x f x x x x x x x x ----⎰⎰=∑=≈∴)()()(221010k k k x f A dx x p dx x f ,其中: ⎰⎰=----=----=32)4341)(2141()43)(21())(())((10201021100dx x x dx x x x x x x x x A ⎰⎰-=----=----=31)4321)(4121()43)(41())(())((10210120101dx x x dx x x x x x x x x A ⎰⎰=----=----=322143)(4143()21)(41())(())((10120210102dx x x dx x x x x x x x x A ∴所求的插值型求积公式为:⎰+-≈)]43(2)21()41(2[31)(10f f f dx x f (10分) 2)上述求积公式是由二次插值函数积分而来的,故至少具有2次代数精度,再将43,)(x x x f =代入上述求积公式,有:⎰+-==]43(2)21()41(2[3141333310dx x ⎰+-≠=])43(2)21(41(2[3151444410dx x 故上述求积公式具有3次代数精度. (12分)九、(10分)学完《数值分析》这门课程后,请你简述一下“插值、逼近、拟合”三者的区别和联系.。
如有帮助欢迎下载支持数值分析上机题姓名:陈作添学号: 040816习题 120.(上机题)舍入误差与有效数N11 3 1 1设S N,其精确值为 。
22 2 NN 1j 2j1(1)编制按从大到小的顺序111 ,计算 S 的通用程序。
S N1 321N 21 N22(2)编制按从小到大的顺序111,计算 S 的通用程序。
S N1(N 1)2 122 1NN 2(3)按两种顺序分别计算S 102 , S 104 , S 106 ,并指出有效位数。
(编制程序时用单精度)(4)通过本上机题,你明白了什么?按从大到小的顺序计算 S N 的通用程序为: 按从小到大的顺序计算 S N 的通用程序为:#include<iostream.h> #include<iostream.h> float sum(float N) float sum(float N) {{float j,s,sum=0; float j,s,sum=0; for(j=2;j<=N;j++) for(j=N;j>=2;j--) {{s=1/(j*j-1); s=1/(j*j-1); sum+=s;sum+=s;}}return sum;return sum;}}从大到小的顺序的值从小到大的顺序的值精确值有效位数从大到小从小到大0.7400490.740050.74004965 S 1020.7498520.74990.74994 4S 1040.7498520.7499990.74999936S 106通过本上机题, 看出按两种不同的顺序计算的结果是不相同的,按从大到小的顺序计算的值与精确值有较大的误差, 而按从小到大的顺序计算的值与精确值吻合。
从大到小的顺序计算得到的结果的有效位数少。
计算机在进行数值计算时会出现“大数吃小数”的现象,导致计算结果的精度有所降低,我们在计算机中进行同号数的加法时,采用绝对值较小者先加的算法,其结果的相对误差较小。
方詡文金兴:爭[数值分析]2017-2018第二学期上机实习题1:编程计算亍丄,其中C= 4. 4942x10307,给出并观察计算结心C"果,若有问题,分析之。
解:mat lab 编程如下:E) funct ion diy i ti formatlong g;n 二input C 输入ii 值= c= 4.4942E307; sum 二0; s 二 0;E3 for i = l:n s = l/ (c*i);>> diyiti 输入n 值:10 104.6356e-308 >> diyiti输入ri 值:1001004.6356e-308 >> diyiti 输入n 值:1000 10004.6356e-308 >> diyiti揄入n 值* 1000001000004・ 6356e-308 >> diyiti输入n 值;1000000001000000004.6356e-308图二:运行结果Mat lab 中,forma t long g 对双精度,显示15位定点或浮点格式,由上图 可知,当输入较小的n 值5分别取10, 100, 1000, 100000, 100000000)的时候, 结果后面的指数中总是含有e-308,这和题目中的C 值很相似,我认为是由于分 母中的C 值相对于n 值过大,出现了 “大数吃小数”的现彖,这是不符合算法原 则的。
2:利用牛顿法求方程-1^ = 2于区间241的根,考虑不同初值下牛顿法的收敛情况。
解:牛顿法公式为:利用mat lab 编程function di2ti21 3i=l ;2 2.85208156699784 xO 二input ('输入初值x0:‘ );A 二[i x0];3 2.55030468822809 t=x0+ (x0-log (xO) -2) /(1-1/xO) ; %迭代函数4 1.91547247100476 三 while (abs (t _x0)>0.01)i=i+l; 5 0.37867158538991 xO 二 t; 6 0.774964959780275 A = [A;i xO];t =x0+(x0-log(xO)-2)/(1-1/xO): 7 4.11574081641933 cnd| 8 5.04162436446126 disp (A);96.81782826645596当输入初值二3的时候并不能收敛。
sum 二sum+s; ends=strcat(num2str(n), num2str(sum)); disp (s);图一:编程x k — lnx k — 21 + 0i 2. 8 +0i 2 + Oi 2.44281423994042 + 0i 3 + 0i 1.68035403318456 + 0i 4 + 0i -0.390964184148451 + 0i5 +0i -0.799034735861542 -0.8830207296023481 6 +Oi-2.75363784092456 -0.7510887832048091输入2. 8依旧不能收敛。
考虑利用plot 函数绘制函数f 二x-l 门x-2的图像,发现其在区间[2, 4]内并无根。
3:给出"25/ +1 在 xk=O+O. 25k 处的值 yk, k=0,1,2, 3, 4・请给出由节点xk 确定的三次样条插值函数S (x ),使其满足条件:S/(0)=0, S/(1)=-0. 074,分析逼近效果如何?解:根据李庆扬《数值分析》第五版Page43的公式可以计算得到三次样条插值。
饗;积分两次并利用S (£)p 及S (g )Pn ,可定出积分常数,于是得三次样条 表达只S3 =M,也:厂):+ 件 AQ .+ (%'_6 )~h~' j = °,l,…* 一 1.r f—■「 • • • • • •9这里M2=0,l,・・・,Q 是未知的.为了确定M,(j = o,],•••』),对SQ )求导得3 =7笔宀附詈+笫严一叫也 S'g + 0)=:一第M 一单M 冲+纫一力. $ 6 h j类似地可求岀SCr )在区间[巧7 ,勺]上的表达式,进而得57^-0)=佟S%+埠岡 + 比二^, b3 h rl利用s‘a+o )=s‘(巧一 0)可得KjM + 2M, + 入,Mj*】=dj 、 j — 1,2 f ••• in — 1 >£•= 6 /[刃—:』三£[匀土工』=6/[工尸】,对,刃+J j = 1,2,・・・曲一1,心7十叫 • • • ■ • • ■ ■- • • • • •• • ■ ■ ■■ ■ ■根据6・11和6・12式解得系数。
dO58.5366R^acG^Sofile.mx0=inpul (z Gi/ A=[5 «0].t=10+(M0-log while (abs (t-:xO = I ・ A = (A.\ xO] t =x0* (xO~lo| if(i>30) break; vnd endans0. 999999;» “2:6 1:4.» z-x-loc<x)-2: plot (*, z)” plot (x ? x> Y »由此可求得(6.8)(6.9)(6.10)(6.11)d1 17.15728d2 8.67705d3 2.0934d4 0.905136列方程A*M二B;A 二2.00000. 5000000 0. 5000 2.00000. 50000000. 5000 2.00000. 50000000. 5000 2.00000. 50000000. 5000 2.0000B 二-58.536617.15738.67702.09340.9051解得M为M=mO-33.519ml X 17.0014m2-0.1722m3 1.04173m4£ 0.19214由此和6. 8式可得其三次样条函数如下:S矽严2、初恥"卩m妙认瑚他、沐)十验恥,上&弘0必〕}小另◎ "AX几刈躲讽必)*励側"2力几别妆・2),饥血站0』卜0、〃4饥00力珥%册仏0$”协於0儉妙山2»2&)72(认口$叭幻 |烏妙u-力*。
闻山°廿)%°'/付"3处)‘ *KuD'E,u得到最终的插值结果如下:总的來说,利用三次样条插值的精度还是比较高的。
4:给出一个通用多项式拟合程序,输入部分:数据组个数为n,拟合的误差限£输出部分:多项式次数、系数向量、拟合的实际误差。
解:程序代码:例:已知一组实验数据如下,求其多项式拟合x 1 2 3 4567 8910y 1.3 3.5 4.2 5.07.08.810.1 12.513.015.6» [A/c,eff]=zxec请输入^fix: [1 2 3 4 5 6 7 8 9 10]请输入变量y: [1.3 3.5 4.2 5.0 7.0 8.8 10.1 12.5 13.0 15.6] 请输入拟合限差:2.50 11.5382 -0.36002.3447A =1.5382 -0.36001eff =2.3447»实例拟合结果如下图所示:File Edit View Insert Tools Desktop Window Help DQ□马除題Q底[口目丁目回由以上拟合结果可知,在给定的限差的情况下,拟合结果为一次,得到的实际谋差达到2.3447,可见拟合效果并不是很理想。
如果继续缩小误差限差值,那么拟合次数将会增加,拟合的结果也将会更加趋近于真实结果。
=f1 4d5:已知"一hk \利用复化梯形公式、复化Simpson公式和Romberg算法求龙的近似值;并观察实际计算结果,比较它们的收敛速度。
解:①复化梯形公式计算结果» fhtx请输入要等分X区间的个数:203. 1412■ Figure 1file Edit View Insert Tools Desktop Window Help D 3 0 昌 4題丨口目 | ■3.532521.510.5分析:从结果中不断改进等分点的个数,可以看出复化梯形公式的结果需要等分至少20点才能开始收敛,若想收敛到精确值,则需要增加区间等分点数。
程序代码:②复化Simpson公式计算结果>> fhsimpson请输入将x区间等分的个数:2ans =3. 1416Q Figure- □XKle Edit View Insert Tools Desktop Window H elpD Q IB 色fe □ 0B Eg3.2*3-2.8-2 6-2.4-+2.2-2-1.8474 A i 1 1 1ill!.00.250.30.35 0.4 0450.50.55 0.6 0.65 07 0.75分析:从结果图中可以看出对于复化Simpson公式,只需要对区间等分两次(即n=2)就可以得到非常理想的结果,说明复化Simpson公式的收敛速度非常快。
程序代码:function [Y]二fhsimpson() n=inputC请输入将x区间等分的个数: h=l/n;sl=0;s2=0;for k=l:2*n-lx二k*h/2;y二4/(l+x⑵;if mod (k, 2)==0sl=sl+2*y;elses2二s2+4*y;endY二h/6*(6+sl+s2);hold on;plot (x, Y,'T*');end③Rombe昭算法>> romberg (0, 1, 0. 0001)ans =3. 1416分析:Rombe尽算法根据给定的卩購可以S接得出收敛值,收敛速度快。
mW:6:用Runge-Kutta 4阶算法对初值问题y/=-20*y, y (0) =1按不同步长求解,用于观察稳定区间的作用。
注:此方程的精确解为:y=e-20x解:结果分析:便于比较的直观性,将龙格库塔值求出并与精确值一同绘制出来,在步长h 分别取0.1,0.025,0.01时,显示如下:|H Figure 1 —口XFile Edit View Insert Tools Desktop Window Help *□Q岛曇畋0輕?⑥□目| ■ 口1■K1V 11 1 1 •0 9•••-0 8■■ ■••-0.7••—■%-0.6• t•■ •■■-0.50••-0.4-■••-0.3-•、■■-0.2-■■-0 1'%■■ 、J■一n9~<T>-u()0.10.2 0.30.40:5 0:6 0.70.8 0.9h二0. 1Figure 1- □XFile Edit View Insert Tools Desktop Window Help■□q a <s1硬□ E B D■--------------h二0. 025H Figure 1 —□File Edit View Insert Tools Desktop Window Help $□ ra e 食住鋼⑥画□ 固丨■h=0. 01结果图中,虚线为龙格库塔值所成,小圆圈为真实值。