数值方法(第2版)答案
《数值计算办法》试题集及参考答案

精心整理《数值计算方法》复习试题一、填空题:1、⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=410141014A ,则A 的LU 分解为A ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦。
答案:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=15561415014115401411A 3、1)3(,2)2(,1)1(==-=f f f ,式为。
答案:-1,)3)(1(2)3)(2(21)(2-----=x x x x x L 4、近似值5、设)(x f ();答案1n x =+6、对)(x f =]4,3,2,1(0);78n 次后的误差限为(12+-n ab ); 10、已知f (1)=2,f (2)=3,f (4)=5.9,则二次Newton 插值多项式中x 2系数为(0.15); 11、 解线性方程组A x =b 的高斯顺序消元法满足的充要条件为(A 的各阶顺序主子式均不为零)。
12、 为了使计算32)1(6)1(41310---+-+=x x x y 的乘除法次数尽量地少,应将该表达式改写为11,))64(3(10-=-++=x t t t t y ,为了减少舍入误差,应将表达式19992001-改写为199920012+。
13、 用二分法求方程01)(3=-+=x x x f 在区间[0,1]内的根,进行一步后根的所在区间为0.5,1,进行两步后根的所在区间为0.5,0.75。
14、 求解方程组⎩⎨⎧=+=+042.01532121x x x x 代矩阵的谱半径)(M ρ=121。
15、 设46)2(,16)1(,0)0(===f f f ,则=)(1x l (1l )1(716)(2-+=x x x x N 。
16、(高斯型)求积公式为最高,具有(12+n )次代21]内的根精确到三位小数,需对分(10)次。
22、已知≤≤≤≤3110(x x S 是三次样条函数,则a =(3 ),b 23、(),(10l x l Lagrange 插值基函数,则∑==nk kx l)((1),=k 0(j),当时=++=)()3(204x l x xk k k k (324++x x )。
《数值计算方法》试题集及答案 (2)

《数值计算方法》复习试题一、填空题:1、⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=410141014A ,则A 的LU 分解为A ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦。
答案:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=15561415014115401411A 3、1)3(,2)2(,1)1(==-=f f f ,则过这三点的二次插值多项式中2x 的系数为 ,拉格朗日插值多项式为 。
答案:-1,)2)(1(21)3)(1(2)3)(2(21)(2--------=x x x x x x x L4、近似值*0.231x =关于真值229.0=x 有( 2 )位有效数字;5、设)(x f 可微,求方程)(x f x =的牛顿迭代格式是( );答案)(1)(1n n n n n x f x f x x x '---=+6、对1)(3++=x x x f ,差商=]3,2,1,0[f ( 1 ),=]4,3,2,1,0[f ( 0 );7、计算方法主要研究( 截断 )误差和( 舍入 )误差;8、用二分法求非线性方程 f (x )=0在区间(a ,b )内的根时,二分n 次后的误差限为( 12+-n a b );10、已知f (1)=2,f (2)=3,f (4)=5.9,则二次Newton 插值多项式中x 2系数为( 0.15 ); 11、 解线性方程组A x =b 的高斯顺序消元法满足的充要条件为(A 的各阶顺序主子式均不为零)。
12、 为了使计算32)1(6)1(41310---+-+=x x x y 的乘除法次数尽量地少,应将该表达式改写为11,))64(3(10-=-++=x t t t t y ,为了减少舍入误差,应将表达式19992001-改写为199920012+ 。
13、 用二分法求方程01)(3=-+=x x x f 在区间[0,1]内的根,进行一步后根的所在区间为 0.5,1 ,进行两步后根的所在区间为 0.5,0.75 。
数值分析第二版课后答案

数值分析第二版课后答案【篇一:《数值分析简明教程》第二版(王能超编著)课后习题答案高等教育出版社】p.11,题1)用二分法求方程x?x?1?0在[1,2]内的近似根,要求误差不3超过10-3.【解】由二分法的误差估计式|x*?xk|?2k?1?1000.两端取自然对数得k?b?a1????10?3,得到k?1k?1223ln10?1?8.96,因此取k?9,即至少需ln2x2、(p.11,题2)证明方程f(x)?e?10x?2在区间[0,1]内有唯一个实根;使用1二分法求这一实根,要求误差不超过?10?2。
2【解】由于f(x)?ex?10x?2,则f(x)在区间[0,1]上连续,且f(0)?e0?10?0?2??1?0,f(1)?e1?10?1?2?e?8?0,即f(0)?f(1)?0,由连续函数的介值定理知,f(x)在区间[0,1]上至少有一个零点.又f(x)?ex?10?0,即f(x)在区间[0,1]上是单调的,故f(x)在区间[0,1]内有唯一实根.b?a11由二分法的误差估计式|x*?xk|?k?1?k?1????10?2,得到2k?100. 2222ln10?2?3.3219?6.6438,因此取k?7,即至少需二分两端取自然对数得k?ln20.2误差1.(p.12,题8)已知e=2.71828…,试问其近似值x1?2.7,x2?2.71,x2=2.71,x3?2.718各有几位有效数字?并给出它们的相对误差限。
【解】有效数字:1?10?1,所以x1?2.7有两位有效数字; 21?1因为|e?x2|?0.00828??0.05??10,所以x2?2.71亦有两位有效数字; 21?3因为|e?x3|?0.00028??0.0005??10,所以x3?2.718有四位有效数字;2因为|e?x1|?0.01828??0.05??r1??r2?|e?x1|0.05??1.85%; x12.7|e?x2|0.05??1.85%; x22.71|e?x3|0.0005??0.0184%。
《数值计算方法》习题答案

《数值计算方法》课后题答案详解吉 林 大 学第一章 习 题 答 案1. 已知(1)2,(1)1,(2)1f f f −===,求()f x 的Lagrange 插值多项式。
解:由题意知:()01201212001020211012012202121,1,2;2,1,1()()(1)(2)()()6()()(1)(2)()()2()()(1)(1)()()3(1)(2)(1)(2)()2162nj j j x x x y y y x x x x x x l x x x x x x x x x x l x x x x x x x x x x l x x x x x x x x L x y l x ==−=====−−−−==−−−−+−==−−−−−+−==−−−−+−==×+×−∴∑()2(1)(1)131386x x x x +−+×=−+2. 取节点01210,1,,2x x x ===对x y e −=建立Lagrange 型二次插值函数,并估计差。
解11201201210,1,;1,,2x x x y y e y e −−======1)由题意知:则根据二次Lagrange插值公式得:02011201201021012202110.510.520.51()()()()()()()()()()()()()2(1)(0.5)2(0.5)4(1)(224)(43)1x x x x x x x x x x x x L x y y y x x x x x x x x x x x x x x x x e x x e e e x e e x −−−−−−−−−−−−=++−−−−−−=−−+−−−=+−+−−+22)Lagrange 根据余项定理,其误差为(3)2210122()1|()||()||(1)(0.5)|3!61max |(1)(0.5)|,(0,1)6()(1)(0.5),()330.5030.2113()61()0.2113(0.21131)(0.21130.5)0.008026x f R x x e x x x x x x t x x x x t x x x x t x R x ξξωξ−+≤≤==−−≤−−∈′=−−=−+=−==≤××−×−=∴取 并令 可知当时,有极大值3. 已知函数y =在4, 6.25,9x x x ===处的函数值,试通过一个二次插值函数求的近似值,并估计其误差。
数值分析简明教程第二版课后习题答案(供参考)

0.1算法1、 (p.11,题1)用二分法求方程013=--x x 在[1,2]内的近似根,要求误差不超过10-3.【解】 由二分法的误差估计式311*10212||-++=≤=-≤-εk k k a b x x ,得到100021≥+k .两端取自然对数得96.812ln 10ln 3≈-≥k ,因此取9=k ,即至少需2、(p.11,题2) 证明方程210)(-+=x e x f x在区间[0,1]内有唯一个实根;使用二分法求这一实根,要求误差不超过21021-⨯。
【解】 由于210)(-+=x e x f x,则)(x f 在区间[0,1]上连续,且012010)0(0<-=-⨯+=e f ,082110)1(1>+=-⨯+=e e f ,即0)1()0(<⋅f f ,由连续函数的介值定理知,)(x f 在区间[0,1]上至少有一个零点.又010)('>+=x e x f ,即)(x f 在区间[0,1]上是单调的,故)(x f 在区间[0,1]内有唯一实根.由二分法的误差估计式211*1021212||-++⨯=≤=-≤-εk k k a b x x ,得到1002≥k .两端取自然对数得6438.63219.322ln 10ln 2=⨯≈≥k ,因此取7=k ,即至少需二分0.2误差1.(p.12,题8)已知e=2.71828…,试问其近似值7.21=x ,71.22=x ,x 2=2.71,718.23=x 各有几位有效数字?并给出它们的相对误差限。
【解】有效数字:因为11102105.001828.0||-⨯=<=- x e ,所以7.21=x 有两位有效数字; 因为12102105.000828.0||-⨯=<=- x e ,所以71.22=x 亦有两位有效数字;因为3310210005.000028.0||-⨯=<=- x e ,所以718.23=x 有四位有效数字;%85.17.205.0||111=<-=x x e r ε; %85.171.205.0||222=<-=x x e r ε; %0184.0718.20005.0||333=<-=x x e r ε。
(完整word版)数值计算方法期末复习答案终结版

一、 名词解释1.误差:设*x 为准确值x 的一个近似值,称**()e x x x =-为近似值*x 的绝对误差,简称误差。
2.有效数字:有效数字是近似值的一种表示方法,它既能表示近似值的大小,又能表示其精确程度。
如果近似值*x 的误差限是1102n -⨯,则称*x 准确到小数点后n 位,并从第一个不是零的数字到这一位的所有数字均称为有效数字。
3. 算法:是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
计算一个数学问题,需要预先设计好由已知数据计算问题结果的运算顺序,这就是算法。
4。
向量范数:设对任意向量n x R ∈,按一定的规则有一实数与之对应,记为||||x ,若||||x 满足 (1)||||0x ≥,且||||0x =当且仅当0x =; (2)对任意实数α,都有||||||x αα=||||x ; (3)对任意,n x y R ∈,都有||||||||||||x y x y +≤+ 则称||||x 为向量x 的范数。
5. 插值法:给出函数()f x 的一些样点值,选定一个便于计算的函数形式,如多项式、分段线性函数及三角多项式等,要求它通过已知样点,由此确定函数()x ϕ作为()f x 的近似的方法。
6相对误差:设*x 为准确值x 的一个近似值,称绝对误差与准确值之比为近似值*x 的相对误差,记为*()r e x ,即**()()r e x e x x=7。
矩阵范数:对任意n 阶方阵A ,按一定的规则有一实数与之对应,记为||||A .若||||A 满足 (1)||||0A ≥,且||||0A =当且仅当0A =; (2)对任意实数α,都有||||||A αα=||||A ;(3)对任意两个n 阶方阵A ,B,都有||||||||||||A B A B +≤+; (4)||||||||AB A =||||B称||||A 为矩阵A 的范数.8. 算子范数:设A 为n 阶方阵,||||•是n R 中的向量范数,则0||||||||||||maxx Ax A x ≠=是一种矩阵范数,称其为由向量范数||||•诱导出的矩阵范数,也称算子范数.9。
数值计算方法课后习题答案

第一章 绪论(12)1、设0>x ,x 的相对误差为δ,求x ln 的误差。
[解]设0*>x 为x 的近似值,则有相对误差为δε=)(*x r ,绝对误差为**)(x x δε=,从而x ln 的误差为δδεε=='=*****1)()(ln )(ln x x x x x , 相对误差为****ln ln )(ln )(ln x x x x rδεε==。
2、设x 的相对误差为2%,求n x 的相对误差。
[解]设*x 为x 的近似值,则有相对误差为%2)(*=x r ε,绝对误差为**%2)(x x =ε,从而nx 的误差为nn x x nxn x x n x x x **1***%2%2)()()()(ln *⋅=='=-=εε,相对误差为%2)()(ln )(ln ***n x x x nr==εε。
3、下列各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出它们是几位有效数字:1021.1*1=x ,031.0*2=x ,6.385*3=x ,430.56*4=x ,0.17*5⨯=x 。
[解]1021.1*1=x 有5位有效数字;0031.0*2=x 有2位有效数字;6.385*3=x 有4位有效数字;430.56*4=x 有5位有效数字;0.17*5⨯=x 有2位有效数字。
4、利用公式(3.3)求下列各近似值的误差限,其中*4*3*2*1,,,x x x x 均为第3题所给的数。
(1)*4*2*1x x x ++; [解]3334*4*2*11***4*2*1*1005.1102110211021)()()()()(----=⨯=⨯+⨯+⨯=++=⎪⎪⎭⎫ ⎝⎛∂∂=++∑x x x x x f x x x e nk k k εεεε;(2)*3*2*1x x x ;[解]52130996425.010********.2131001708255.01048488.2121059768.01021)031.01021.1(1021)6.3851021.1(1021)6.385031.0()()()()()()()()(3333334*3*2*1*2*3*1*1*3*21***3*2*1*=⨯=⨯+⨯+⨯=⨯⨯+⨯⨯+⨯⨯=++=⎪⎪⎭⎫⎝⎛∂∂=-------=∑x x x x x x x x x x x f x x x e n k k kεεεε;(3)*4*2/x x 。
数值计算方法答案

1数值计算方法习题一(2)习题二(6)习题三(15)习题四(29)习题五(37)习题六(62)习题七(70)2009.9,92习题一1.设x>0相对误差为2%,4x的相对误差。
解:由自变量的误差对函数值引起误差的公式:(())(())'()()()()f x xf x f x xf x f xδδ∆=≈得(1)()f x=11()()*2%1%22x xδδδ≈===;(2)4()f x x=时444()()'()4()4*2%8%xx x x xxδδδ≈===2.设下面各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出他们各有几位有效数字。
(1)12.1x =;(2)12.10x =;(3)12.100x =。
解:由教材9P关于1212.m nx a a a bb b=±型数的有效数字的结论,易得上面三个数的有效数字位数分别为:3,4,53.用十进制四位浮点数计算(1)31.97+2.456+0.1352;(2)31.97+(2.456+0.1352)哪个较精确?解:(1)31.97+2.456+0.1352≈21((0.3197100.245610)0.1352)fl fl⨯+⨯+=2(0.3443100.1352)fl⨯+=0.3457210⨯(2)31.97+(2.456+0.1352)21(0.319710(0.245610))fl fl≈⨯+⨯= 21(0.3197100.259110)fl⨯+⨯=0.3456210⨯易见31.97+2.456+0.1352=0.345612210⨯,故(2)的计算结果较精确。
4.计算正方形面积时,若要求面积的允许相对误差为1%,测量边长所允许的相对误差限为多少?3解:设该正方形的边长为x,面积为2()f x x=,由(())(())'()()()()f x xf x f x xf x f xδδ∆=≈解得(())()()'()f x f xxxf xδδ≈=2(())(())22f x x f xx xδδ==0.5%5.下面计算y的公式哪个算得准确些?为什么?(1)已知1x<<,(A)11121xyx x-=-++,(B)22(12)(1)xyx x=++;(2)已知1x>>,(A)y=,(B)y=;(3)已知1x<<,(A)22sin xyx=,(B)1cos2xyx-=;(4)(A)9y=(B)y=解:当两个同(异)号相近数相减(加)时,相对误差可能很大,会严重丧失有效数字;当两个数相乘(除)时,大因子(小除数)可能使积(商)的绝对值误差增大许多。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言编程习题第二章习题2-25.用二分法编程求6x4 -40x2+9=0 的所有实根。
#include <stdio.h>#include <math.h>#define N 10000double A,B,C;double f(double x){return (A*x*x*x*x+B*x*x+C);}void BM(double a,double b,double eps1,double eps2){int k;double x,xe;double valuea = f(a);double valueb = f(b);if (valuea > 0 && valueb > 0 || valuea <0 && valueb < 0) return;printf("Finding root in the range: [%.3lf, %.3lf]\n", a, b);for(k=1;k<=N;k++) {x=(a+b)/2;xe=(b-a)/2;if(fabs(xe)<eps2 || fabs(f(x))<eps1) {printf("The x value is:%g\n",x);printf("f(x)=%g\n\n",f(x));return;}if(f(a)*f(x)<0) b=x;else a=x;}printf("No convergence!\n");}int main(){double a,b,eps1,eps2,step,start;printf("Please input A,B,C:\n");scanf("%lf %lf %lf",&A,&B,&C);printf("Please input a,b, step, eps1,eps2:\n");scanf("%lf %lf %lf %lf %lf",&a,&b,&step,&eps1,&eps2);for (start=a; (start+step) <= b; start += step) { double left = start;double right = start + step;BM(left, right, eps1, eps2);}return 0;}运行:Please input A,B,C:6 -40 9Please input a,b, step, eps1,eps2:-10 10 1 1e-5 1e-5Finding root in the range: [-3.000, -2.000]The x value is:-2.53643f(x)=-0.00124902Finding root in the range: [-1.000, 0.000]The x value is:-0.482857f(x)=0.00012967Finding root in the range: [0.000, 1.000]The x value is:0.482857f(x)=0.00012967Finding root in the range: [2.000, 3.000]The x value is:2.53643f(x)=-0.00124902有时若把判别语句if(fabs(xe)<eps2 || fabs(f(x))<eps1)改为if(fabs(xe)<eps2 && fabs(f(x))<eps1)会提高精度,对同一题运行结果:Finding root in the range: [-3.000, -2.000]The x value is:-2.53644f(x)=-4.26496e-007Finding root in the range: [-1.000, 0.000]The x value is:-0.482861f(x)=-7.3797e-006Finding root in the range: [0.000, 1.000]The x value is:0.482861f(x)=-7.3797e-006Finding root in the range: [2.000, 3.000]The x value is:2.53644f(x)=-4.26496e-007习题2-35. 请用埃特金方法编程求出x=tgx在4.5(弧度)附近的根。
#include <stdio.h>#include <math.h>#define N 100#define PI 3.1415926void SM(double x0,double eps){int k;double x;double x1,x2;for(k=1;k<=N;k++) {x1=sin(x0)/cos(x0);x2=sin(x1)/cos(x1);x=x0-(x1-x0)*(x1-x0)/(x2-2*x1+x0);if(fabs(x-x0)<eps) {printf("The x value is:%g\n",x);return;}x0=x;}printf("No convegence!\n");}int main(){double eps,x0;printf("Please input eps,x0:\n");scanf("%lf %lf",&eps,&x0);SM(x0,eps);return 0;}运行:Please input eps,x0:1e-5 4.5The x value is:4.49341习题2-411.请编出用牛顿法求复根的程序,并求出P(z)=z4-3z3+20z2+44z+54=0接近于z0=2.5+4.5i 的零点。
#include <cstdio>#include <cmath>#define MAX_TIMES 1000typedef struct {double real, image;} COMPLEX;COMPLEX Aa[5]={{54,0},{44,0},{20,0},{-3,0},{1,0}}; COMPLEX Bb[4]={{44,0},{40,0},{-9,0},{4,0}}; COMPLEX zero = {0, 0};double eps1=1e-6;double eps2=1e-6;COMPLEX multi(COMPLEX a,COMPLEX b){COMPLEX result;result.real = a.real * b.real - a.image * b.image;result.image = a.image * b.real + a.real * b.image;return result;}COMPLEX Div(COMPLEX a,COMPLEX b){ COMPLEX z3;double s;s=(b.real*b.real)+(b.image*b.image);z3.real=b.real;z3.image=-b.image;z3=multi(a,z3);z3.real=z3.real/s;z3.image=z3.image/s;return z3;}COMPLEX add(COMPLEX a,COMPLEX b){COMPLEX result;result.real = a.real + b.real;result.image = a.image + b.image;return result;}COMPLEX subtract(COMPLEX a, COMPLEX b) {COMPLEX result;result.real = a.real - b.real;result.image = a.image - b.image;return result;}COMPLEX times(COMPLEX z,int n){int i;COMPLEX result={1, 0};for (i=0;i<n;i++) result=multi(result,z);return result;}double distance(COMPLEX a, COMPLEX b) {return sqrt((a.real - b.real) * (a.real - b.real) + (a.image - b.image) * (a.image - b.image));}double complex_abs(COMPLEX a) {return sqrt(a.real * a.real + a.image * a.image);}COMPLEX f(COMPLEX x){int i;COMPLEX result=zero;for (i=0;i<5;i++){result=add(result,multi(Aa[i],times(x,i)));}return result;}COMPLEX ff(COMPLEX x) {int i;COMPLEX result=zero;for (i=0;i<4;i++){result=add(result,multi(Bb[i],times(x,i)));}return result;}int main(){COMPLEX z0,z1,result;double x,y;int k;printf("please input x,y\n");scanf("%lf %lf",&x,&y);z0.real=x; z0.image=y;for(k=0; k<MAX_TIMES; k++) {z1 = subtract(z0, Div(f(z0), ff(z0)));result = f(z1);if (distance(z0,z1)<eps1 || complex_abs(result)<eps2){printf("The root is: z=(%.3f + %.3fi), f(z)=(%e + %ei)\n", z1.real,z1.image, result.real, result.image);return 0;}z0 = z1;}printf("No convergence!\n");return 0;}运行:please input x,y2.5 4.5The root is:z=(2.471 + 4.641i), f(z)=(-1.122705e-007 + -1.910245e-007i)习题2-62. 请编程用劈因子法求高次方程x4+ x 3+5 x 2+4 x +4=0的所有复根。