计算方法上机答案
计算方法-刘师少版第一章课后习题完整答案

9000 m=1
9000.00
解 (1)∵ 2.0004=0.20004×10 ,
x − x ∗ = x − 0.20004 ≤ 0.000049 ≤ 0.5 × 10 −4
m-n=-4,m=1 则 n=5,故 x=2.0004 有 5 位有效数字
x1 =2,相对误差限 ε r =
1 1 × 10 −( n −1) = × 101−5 = 0.000025 2 × x1 2× 2
-2
(2)∵ -0.00200= -0.2×10 ,
m=-2
x − x ∗ = x − (−0.00200) ≤ 0.0000049 ≤ 0.5 × 10 −5
m-n=-5, m=-2 则 n=3,故 x=-0.00200 有 3 位有效数字
x1 =2,相对误差限 ε r =
4
1 × 101−3 =0.0025 2× 2
4 3 4 πR − π ( R * ) 3 3 ε r* (V ) = 3 4 3 πR 3 R 3 − (R* )3 ( R − R * )( R 2 + RR * + R * ) = = R3 R3 R − R * R 2 + RR * + R * R − R * R 2 + RR * + RR * = ⋅ ≈ ⋅ R R R2 R2
可以得到计算积分的递推公式:
I n = 1 − nI n −1
1 0
n = 1,2, L
1 0
I 0 = ∫ e x −1 dx = e x −1
则准确的理论递推式 实际运算的递推式 两式相减有
* *
= 1 − e −1
I n = 1 − nI n −1
* * In = 1 − nI n −1 * * * In − In = −n( I n −1 − I n −1 ) = − ne( I n −1 ) *
计算方法各习题及参考答案

计算⽅法各习题及参考答案第⼆章数值分析2.1 已知多项式432()1p x x x x x =-+-+通过下列点:试构造⼀多项式()q x 通过下列点:答案:54313()()()3122q x p x r x x x x x =-=-++-+. 2.2 观测得到⼆次多项式2()p x 的值:表中2()p x 的某⼀个函数值有错误,试找出并校正它.答案:函数值表中2(1)p -错误,应有2(1)0p -=.2.3 利⽤差分的性质证明22212(1)(21)/6n n n n +++=++ .2.4 当⽤等距节点的分段⼆次插值多项式在区间[1,1]-近似函数xe 时,使⽤多少个节点能够保证误差不超过61102-?.答案:需要143个插值节点.2.5 设被插值函数4()[,]f x C a b ∈,()3()h H x 是()f x 关于等距节点01n a x x x b =<<<= 的分段三次艾尔⽶特插值多项式,步长b a h n-=.试估计()3||()()||h f x H x ∞-.答案:()443||()()||384h M f x H x h ∞-≤.第三章函数逼近3.1 求()sin ,[0,0.1]f x x x =∈在空间2{1,,}span x x Φ=上最佳平⽅逼近多项式,并给出平⽅误差.答案:()sin f x x =的⼆次最佳平⽅逼近多项式为-522sin ()0.832 440 710 1.000 999 10.024 985 1x p x x x ≈=-?+-,⼆次最佳平⽅逼近的平⽅误差为0.122-1220(sin )())0.989 310 710x p x dx δ=-=??.3.2 确定参数,a b c 和,使得积分2121(,,)[I a b c ax bx c -=++-?取最⼩值.答案:810, 0, 33a b c ππ=-== 3.3 求多项式432()251f x x x x =+++在[1,1]-上的3次最佳⼀致逼近多项式()p x .答案:()f x 的最佳⼀致逼近多项式为323()74p x x x =++. 3.4 ⽤幂级数缩合⽅法,求() (11)x f x e x =-≤≤上的3次近似多项式6,3()p x ,并估计6,3||()()||f x p x ∞-.答案:236,3()0.994 574 650.997 395 830.542 968 750.177 083 33p x x x x =+++, 6,3||()()||0.006 572 327 7f x p x ∞-≤3.5 求() (11)xf x e x =-≤≤上的关于权函数()x ρ=的三次最佳平⽅逼近多项式3()S x ,并估计误差32||()()||f x S x -和3||()()||f x S x ∞-.答案:233()0.994 5710.997 3080.542 9910.177 347S x x x x =+++,32||()()||0.006 894 83f x S x -=,3||()()||0.006 442 575f x S x ∞-≤.第四章数值积分与数值微分4.1 ⽤梯形公式、⾟浦⽣公式和柯特斯公式分别计算积分1(1,2,3,4)n x dx n =?,并与精确值⽐较.答案:计算结果如下表所⽰4.2 确定下列求积公式中的待定参数,使得求积公式的代数精度尽量⾼,并指明所确定的求积公式具有的代数精度.(1)101()()(0)()hh f x dx A f h A f A f h --≈-++?(2)11211()[(1)2()3()]3f x dx f f x f x -≈-++? (3)20()[(0)()][(0)()]2h h f x dx f f h h f f h α''≈++-?答案:(1)具有三次代数精确度(2)具有⼆次代数精确度(3)具有三次代数精确度.4.3 设10h x x =-,确定求积公式12300101()()[()()][()()][]x x x x f x dx h Af x Bf x h Cf x Df x R f ''-=++++?中的待定参数,,,A B C D ,使得该求积公式的代数精确度尽量⾼,并给出余项表达式.答案:3711,,,20203020A B C D ====-,(4)6()[]1440f R f h η=,其中01(,)x x η∈.4.4 设2()P x 是以0,,2h h 为插值点的()f x 的⼆次插值多项式,⽤2()P x 导出计算积分30()hI f x dx =?的数值积分公式h I ,并⽤台劳展开法证明:453(0)()8h I I h f O h '''-=+.答案:3203()[(0)3(2)]4h h I p x dx h f f h ==+?.4.5 给定积分10sin xI dx x =(1)运⽤复化梯形公式计算上述积分值,使其截断误差不超过31102-?.(2)取同样的求积节点,改⽤复化⾟浦⽣公式计算时,截断误差是多少?(3)要求的截断误差不超过610-,若⽤复化⾟浦⽣公式,应取多少个节点处的函数值?答案:(1)只需7.5n ≥,取9个节点,0.946I ≈(2)4(4)46111|[]||()|()0.271102880288045n b a R f h f η--=-≤=? (3)取7个节点处的函数值.4.6 ⽤变步长的复化梯形公式和变步长的复化⾟浦⽣公式计算积分10sin xI dx x =?.要求⽤事后误差估计法时,截断误不超过31102-?和61102-?.答案:使⽤复化梯形公式时,80.946I T ≈=满⾜精度要求;使⽤复化⾟浦⽣公式时,40.946 083I s ≈=满⾜精度要求.4.7(1)利⽤埃尔⽶特插值公式推导带有导数值的求积公式2()()[()()][()()][]212ba b a b a f x dx f a f b f b f a R f --''=+--+?,其中余项为 5(4)()[](), (,)4!30b a R f f a b ηη-=∈.(2)利⽤上述公式推导带修正项的复化梯形求积公式020()[()()]12Nx N N x h f x dx T f x f x ''≈--?,其中 0121[()2()2()2()()]2N N N hT f x f x f x f x f x -=+++++ ,⽽ 00, (0,1,2,,), i N x x ih i N Nh x x =+==- .4.8 ⽤龙贝格⽅法计算椭圆2214x y +=的周长,使结果具有五位有效数字.答案:49.6884l I =≈.4.9确定⾼斯型求积公式0011()()()x dx A f x A f x ≈+?的节点0x ,1x 及系数0A ,1A .答案:00.289 949x =,10.821 162x =,00.277 556A =,10.389 111A =.4.10 验证⾼斯型求积公式00110()()()x e f x dx A f x A f x +∞-≈+?的系数及节点分别为0001 2 2A A x x ===-=+第五章解线性⽅程组的直接法5.1 ⽤按列选主元的⾼斯-若当消去法求矩阵A 的逆矩阵,其中11121 0110A -?? ?= ? ?-??.答案: 1110331203321133A -?? ? ?=---5.2 ⽤矩阵的直接三⾓分解法解⽅程组1234102050101312431701037x x x x= ? ? ? ? ? ? ? ? ??答案: 42x =,32x =,21x =,11x =.5.3 ⽤平⽅根法(Cholesky 分解法)求解⽅程组12341161 4.25 2.750.51 2.75 3.5 1.25x x x -?????? ??? ?-=- ??? ? ??? ???????答案: 12x =,21x =,31x =-.5.4 ⽤追赶法求解三对⾓⽅程组123421113121112210x x x x ?????? ? ? ? ? ? ?= ? ? ? ? ? ? ? ? ?????答案:42x =,31x =-,21x =,10x =.第六章解线性代数⽅程组的迭代法6.1对⽅程1212123879897x x x x x x x -+=??-+=??--=?作简单调整,使得⽤⾼斯-赛得尔迭代法求解时对任意初始向量都收敛,并取初始向量(0)[0 0 0]T x =,⽤该⽅法求近似解(1)k x+,使(1)()3||||10k k x x +-∞-≤.答案:近似解为(4)[1.0000 1.0000 1.0000]Tx =.6.2讨论松弛因⼦ 1.25ω=时,⽤SOR ⽅法求解⽅程组121232343163420412x x x x x x x +=??+-=??-+=-? 的收敛性.若收敛,则取(0)[0 0 0]T x=迭代求解,使(1)()41||||102k k x x +-∞-<.答案:⽅程组的近似解为*1 1.50001x =,*2 3.33333x =,*3 2.16667x =-.6.3给定线性⽅程组Ax b =,其中111221112211122A ?? ? ?=,证明⽤雅可⽐迭代法解此⽅程组发散,⽽⾼斯-赛得尔迭代法收敛.6.4设有⽅程组112233302021212x b x b x b -?????? ??? ?= ??? ? ??? ?-??????,讨论⽤雅可⽐⽅法和⾼斯-赛得尔⽅法解此⽅程组的收敛性.如果收敛,⽐较哪种⽅法收敛较快.答案:雅可⽐⽅法收敛,⾼斯-赛得尔⽅法收敛,且较快.6.5设矩阵A ⾮奇异.求证:⽅程组Ax b =的解总能通过⾼斯-赛得尔⽅法得到.6.6设()ij n nA a ?=为对称正定矩阵,对⾓阵1122(,,,)nn D diag a a a = .求证:⾼斯-赛得尔⽅法求解⽅程组1122D AD x b --=时对任意初始向量都收敛.第七章⾮线性⽅程求根例7.4对⽅程230xx e -=确定迭代函数()x ?及区间[,]a b ,使对0[,]x a b ?∈,迭代过程1(), 0,1,2,k x x k ?+== 均收敛,并求解.要求51||10k k x x -+-<.答案:若取2()x x ?=,则在[1,0]-中满⾜收敛性条件,因此迭代法121, 0,1,2,k x k x k +== 在(1,0)-中有惟⼀解.取00.5x =-,*70.458960903x x ≈=-.取2()x x ?=,在[0,1上满⾜收敛性条件,迭代序列121, 0,1,2,k x k x k +== 在[0,1]中有惟⼀解.取00.5x =,*140.910001967x x ≈=- 在[3,4]上,将原⽅程改写为23xe x =,取对数得2ln(3)()x x x ?==.满⾜收敛性条件,则迭代序列21ln(3), 0,1,2,k k x x k +== 在[3,4]中有惟⼀解.取0 3.5x =, *16 3.733067511x x ≈=.例7.6对于迭代函数2()(3)x x c x ?=+-,试讨论:(1)当c 为何值时,1()k k x x ?+=产⽣的序列{}k x(2)c 取何值时收敛最快?(3)取1,2c =-()x ?51||10k k x x -+-<.答案:(1)(c ∈时迭代收敛.(2)c =时收敛最快.(3)分别取1, 2c =--,并取0 1.5x =,计算结果如下表7.7所⽰表7.7例7.13 设不动点迭代1()k x x ?+=的迭代函数()x ?具有⼆阶连续导数,*x 是()x ?的不动点,且*()1x ?'≠,证明Steffensen 迭代式21(), (), 0,1,2,()2k k k k k k k k k k k y x z x k y x x x z y x+===-?=-?-+?⼆阶收敛于*x .例7.15 设2()()()()()x x p x f x q x f x ?=--,试确定函数()p x 和()q x ,使求解()0f x =且以()x ?为迭代函数的迭代法⾄少三阶收敛.答案:1()()p x f x =',31()()2[()]f x q x f x ''=' 例7.19 设()f x 在[,]a b 上有⾼阶导数,*(,)x a b ∈是()0f x =的(2)m m ≥重根,且⽜顿法收敛,证明⽜顿迭代序列{}k x 有下列极限关系:111lim2k kk k k k x x m x x x -→∞-+-=-+.第⼋章矩阵特征值8.1 ⽤乘幂法求矩阵A 的按模最⼤的特征值与对应的特征向量,已知5500 5.51031A -?? ?=- ? ?-??,要求(1)()611||10k k λλ+--<,这⾥()1k λ表⽰1λ的第k 次近似值.答案:15λ≈,对应的特征向量为[5,0,0]T-;25λ≈-,对应的特征向量为[5,10,5]T --. 8.2 ⽤反幂法求矩阵110242012A -??=-- -的按模最⼩的特征值.知A 的按模较⼤的特征值的近似值为15λ=,⽤5p =的原点平移法计算1λ及其对应的特征向量.答案:(1) A 的按模最⼩的特征值为30.2384428λ≈(2) 1 5.1248854λ≈,对应的特征向量为(8)[0.242 4310, 1 ,0.320 011 7]T U =--.8.3 设⽅阵A 的特征值都是实数,且满⾜121, ||||n n λλλλλ>≥≥> ,为求1λ⽽作原点平移,试证:当平移量21()2n p λλ=+时,幂法收敛最快. 8.4 ⽤⼆分法求三对⾓对称⽅阵1221221221A ?? ? ?= ? ? ???的最⼩特征值,使它⾄少具有2位有效数字.答案:取5 2.234375λ≈-即有2位有效数字.8.5 ⽤平⾯旋转变换和反射变换将向量[2 3 0 5]T x =变为与1[1 0 0 0]Te =平⾏的向量.答案:203/2/00001010/0T ??- ?=--?0.324 442 8400.486 664 26200.811 107 1040.486 664 2620.812 176 04800.298 039 92200100.811 107 1040.298 039 92200.530 266 798H --??--= ? ?--8.6 若532644445A -??=- -,试把A 化为相似的上Hessenberg 阵,然后⽤QR ⽅法求A 的全部特征值.第九章微分⽅程初值问题的数值解法9.1 ⽤反复迭代(反复校正)的欧拉预估-校正法求解初值问题0, 0<0.2(0)1y y x y '+=≤??=?,要求取步长0.1h =,每步迭代误差不超过510-.答案: [4]11(0.1)0.904 762y y y ≈==,[4]22(0.2)0.818 594y y y ≈==9.2 ⽤⼆阶中点格式和⼆阶休恩格式求初值问题2, 0<0.4(0)1dy x y x dx y ?=+≤=?的数值解(取步长0.2h =,运算过程中保留五位⼩数).答案:⽤⼆阶中点格式,取初值01y =计算得0n =时,1211.000 00, 1.200 00, (0.2)=1.240 00K K y y ==≈ 1n =时,1221.737 60, 2.298 72, (0.4)=1.699 74K K y y ==≈⽤⼆阶休恩格式,取初值01y =计算得0n =时,1211.000 00, 1.266 67, (0.2)=1.240 00K K y y ==≈ 1n =时,1221.737 60, 2.499 18, (0.4)=1.701 76K K y y ==≈9.3 ⽤如下四步四阶阿达姆斯显格式1123(5559379)/24n n n n n n y y h f f f f +---=+-+-求初值问题, (0)1y x y y '=+=在[0,0.5]上的数值解.取步长0.1h =,⼩数点后保留8位.答案:4(0.4)0.583 640 216y y ≈=,5(0.5) 1.797 421 984y y ≈=. 9.4 为使⼆阶中点公式1(,(,))22n n n n n n h hy y hf x y f x y +=+++,求解初值问题 , (0)y y y aλλ'=-??=?为实常数绝对稳定,试求步长h 的⼤⼩应受到的限制条件.答案:2h λ≤.9.5 ⽤如下反复迭代的欧拉预估-校正格式(0)1(1)()111(,)[(,)(,)]2 0,1,2,; 0,1,2,nn n n k k n n n n n n y y hf x y h y y f x y f x y k n +++++?=+??=++??==,求解初值问题sin(), 01(0)1x y e xy x y '?=<≤?=?时,如何选择步长h ,使上述格式关于k 的迭代收敛.答案:2h e<时上述格式关于k 的迭代是收敛的.9.6 求系数,,,a b c d ,使求解初值问题0(,), ()y f x y y x a '==的如下隐式⼆步法221()n n n n n y ay h bf cf df +++=+++的误差阶尽可能⾼,并指出其阶数.答案:系数为142,,33a b d c ====,此时⽅法的局部截断误差阶最⾼,为五阶5()O h .9.7 试⽤欧拉预估-校正法求解初值问题, (0)=1, 0<0.2()/, (0)2dyxy z y dxx dz x y z z dx=-≤=+=,取步长0.1h =,⼩数点后⾄少保留六位.答案:由初值00(0)1, (0)2y y z z ====可计算得110.800 000z 2.050 000y =??=? , 11(0.1)0.801 500(0.1) 2.046 951y y z z ≈=??≈=? 220.604 820z 2.090 992y =??=? , 22 (0.2)0.604 659(0.2) 2.088 216y y z z ≈=??≈=?。
(完整版)数值计算方法上机实习题答案

(完整版)数值计算⽅法上机实习题答案1.设?+=105dx xx I nn ,(1)由递推公式nI I n n 151+-=-,从0I 的⼏个近似值出发,计算20I ;解:易得:0I =ln6-ln5=0.1823, 程序为:I=0.182; for n=1:20I=(-5)*I+1/n; end I输出结果为:20I = -3.0666e+010 (2)粗糙估计20I ,⽤nI I n n 515111+-=--,计算0I ;因为 0095.056 0079.01020201020≈<<≈??dx x I dx x 所以取0087.0)0095.00079.0(2120=+=I 程序为:I=0.0087; for n=1:20I=(-1/5)*I+1/(5*n); end I0I = 0.0083(3)分析结果的可靠性及产⽣此现象的原因(重点分析原因)。
⾸先分析两种递推式的误差;设第⼀递推式中开始时的误差为000I I E '-=,递推过程的舍⼊误差不计。
并记nn n I I E '-=,则有01)5(5E E E n n n -==-=-Λ。
因为=20E 20020)5(I E >>-,所此递推式不可靠。
⽽在第⼆种递推式中n n E E E )51(5110-==-=Λ,误差在缩⼩,所以此递推式是可靠的。
出现以上运⾏结果的主要原因是在构造递推式过程中,考虑误差是否得到控制,即算法是否数值稳定。
2.求⽅程0210=-+x e x的近似根,要求41105-+?<-k k x x ,并⽐较计算量。
(1)在[0,1]上⽤⼆分法;程序:a=0;b=1.0;while abs(b-a)>5*1e-4 c=(b+a)/2;if exp(c)+10*c-2>0 b=c; else a=c; end end c结果:c =0.0903(2)取初值00=x ,并⽤迭代1021x k e x -=+;程序:x=0; a=1;while abs(x-a)>5*1e-4 a=x;x=(2-exp(x))/10; end x结果:x =0.0905(3)加速迭代的结果;程序:x=0; a=0;b=1;while abs(b-a)>5*1e-4 a=x;y=exp(x)+10*x-2; z=exp(y)+10*y-2;x=x-(y-x)^2/(z-2*y+x); b=x; end x结果:x =0.0995(4)取初值00=x ,并⽤⽜顿迭代法;程序:x=0; a=0;b=1;while abs(b-a)>5*1e-4 a=x;x=x-(exp(x)+10*x-2)/(exp(x)+10); b=x; end x结果: x =0.0905(5)分析绝对误差。
计算方法与实习答案1-2

绪论
习题1——10:设 f ( x) = 8 x 5 − 0.4 x 4 + 4 x 3 − 9 x + 1 用秦九韶法求f(3)。 解:
8 − 0.4
24 8 23.6
0
−9
1
x=3
70.8 74.8
224.4 224.4
673.2 664.2
1992.6 1993.6
∴ f(3)=1993.6
第一章 绪论 练习
1.《计算方法》课程主要研究以计算 机为工具的 数值 分析方法 ,并评价 该算法的计算误差。 2.近似值作四则运算后的绝对误差限 公式为 ε ( x1 − x2 ) ≤ ε ( x1 ) + ε ( x2 ) ,近似值 1.0341的相对误差限不大于 1 ×10−2 , 则它至少有三位有效数字。 4
ln(103 ) ∴k ≥ ln(2) ≥ 9.965
2 2 2
∴需二分10次 需二分 次
方程求根——二分法
习题2——2:用二分法求方程2e-x-sinx=0在区 间[0,1]内的1个实根,要求3位有效数字。
解:1)判断是否在该区间有且仅有一个根 f(0)=2>0,f(1)=2/e-sin1≈-0.1<0, f’(x)=-2e-x-cosx,f’=-3,-2/e-cos1<0 2)判断二分次数 由(b-a)/2k+1=1/2k+1≤1/2*10-3,解得k≥3ln10/ln2≥9.965, 所以需要二分10次,才能满足精度要求。
∴ x≈2.981
方程求根
f (xk )(xk − xk −1) xk +1 = xk − f (xk ) − f (xk −1)
习题2——11:用割线法求方程x3-2x-5=0的根,要 求精确到4位有效数字,取x0=2, x1=2.2。
计算方法上机题答案

2.用下列方法求方程e^x+10x-2=0的近似根,要求误差不超过5*10的负4次方,并比较计算量(1)二分法(局部,大图不太看得清,故后面两小题都用局部截图)(2)迭代法(3)牛顿法顺序消元法#include<stdio.h>#include<stdlib.h>#include<math.h>int main(){ int N=4,i,j,p,q,k; double m;double a[4][5]; double x1,x2,x3,x4; for (i=0;i<N ;i++ )for (j=0;j<N+1; j++ )scanf("%lf",&a[i][j]);for(p=0;p<N-1;p++) {for(k=p+1;k<N;k++){m=a[k][p]/a[p][p];for(q=p;q<N+1;q++)a[k][q]=a[k][q]-m*a[p][q];}}x4=a[3][4]/a[3][3];x3=(a[2][4]-x4*a[2][3])/a[2][2];x2=(a[1][4]-x4*a[1][3]-x3*a[1][2])/a[1][1];x1=(a[0][4]-x4*a[0][3]-x3*a[0][2]-x2*a[0][1])/a[0][0];printf("%f,%f,%f,%f",x1,x2,x3,x4);scanf("%lf",&a[i][j]); (这一步只是为了看到运行的结果)}运行结果列主元消元法function[x,det,flag]=Gauss(A,b)[n,m]=size(A);nb=length(b);flag='OK';det=1;x=zeros(n,1);for k=1:n-1 max1=0;for i=k:nif abs(A(i,k))>max1max1=abs(A(i,k));r=i;endendif max1<1e-10flag='failure';return;endif r>kfor j=k:nz=A(k,j);A(k,j)=A(r,j);A(r,j)=z;endz=b(k);b(k)=b(r);b(r)=z;det=-det; endfor i=k+1:nm=A(i,k)/A(k,k);for j=k+1:nA(i,j)=A(i,j)-m*A(k,j);endb(i)=b(i)-m*b(k);enddet=det*A(k,k);enddet=det*A(n,n)if abs(A(n,n))<1e-10flag='failure';return;endx(n)=b(n)/A(n,n);for k=n-1:-1:1for j=k+1:nb(k)=b(k)-A(k,j)*x(j);endx(k)=b(k)/A(k,k);end运行结果:雅可比迭代法function y=jacobi(a,b,x0) D=diag(diag(a));U=-triu(a,1);L=-tril(a,-1);B=D\(L+U);f=D\b;y=B*x0+f;n=1;while norm(y-x0)>1e-4 x0=y;y=B*x0+f;n=n+1;endyn高斯赛德尔迭代法function y=seidel(a,b,x0) D=diag(diag(a));U=-triu(a,1);L=-tril(a,-1);G=(D-L)\U;f=(D-L)\b;y=G*x0+f;n=1;while norm(y-x0)>10^(-4) x0=y;y=G*x0+f;n=n+1;endynSOR迭代法function y=sor(a,b,w,x0)D=diag(diag(a));U=-triu(a,1);L=-tril(a,-1);lw=(D-w*L)\((1-w)*D+w*U); f=(D-w*L)\b*w;y=lw*x0+f;n=1;while norm(y-x0)>10^(-4) x0=y;y=lw*x0+f;n=n+1;endyn1.分段线性插值:function y=fdxx(x0,y0,x)p=length(y0);n=length(x0);m=length(x);for i=1:mz=x(i);for j=1:n-1if z<x0(j+1)break;endendy(i)= y0(j)*(z-x0(j+1))/(x0(j)-x0(j+1))+y0(j+1)*(z-x0(j))/(x0(j+1)-x0(j));fprintf('y(%d)=%f\nx1=%.3fy1=%.3f\nx2=%.3fy2=%.3f\n\n',i,y(i),x0(j),y0(j),x0(j+1),y0(j+1));endend结果0.39404 0.38007 0.356932.分段二次插值:function y=fdec(x0,y0,x)p=length(y0);n=length(x0);m=length(x);for i=1:mz=x(i);for j=1:n-1if z<x0(j+1)break;endendif j<2j=j+1;elseif (j<n-1)if (abs(x0(j)-z)>abs(x0(j+1)-z))j=j+1;elseif ((abs(x0(j)-z)==abs(x0(j+1)-z))&&(abs(x0(j-1)-z)>abs(x0(j+2)-z)))j=j+1;endendans=0.0;for t=j-1:j+1a=1.0;for k=j-1:j+1if t~=ka=a*(z-x0(k))/(x0(t)-x0(k));endendans=ans+a*y0(t);endy(i)=ans;fprintf('y(%d)=%f\n x1=%.3f y1=%.3f\n x2=%.3f y2=%.3f\n x3=%.3f y3=%.3f\n\n',i,y(i),x0(j-1),y0(j-1),x0(j),y0(j),x0(j+1),y0(j+1));endend结果为0.39447 0.38022 0.357253.拉格朗日全区间插值function y=lglr(x0,y0,x)p=length(y0);n=length(x0);m=length(x);for t=1:mans=0.0;z=x(t);for k=1:np=1.0;for q=1:nif q~=kp=p*(z-x0(q))/(x0(k)-x0(q));endendans=ans+p*y0(k);endy(t)=ans;fprintf('y(%d)=%f\n',t,y(t));endend结果为0.39447 0.38022 0.35722function [p,S,mu] = polyfit(x,y,n)if ~isequal(size(x),size(y))errorendx = x(:);y = y(:);if nargout > 2mu = [mean(x); std(x)];x = (x - mu(1))/mu(2);endV(:,n+1) = ones(length(x),1,class(x));for j = n:-1:1V(:,j) = x.*V(:,j+1);end[Q,R] = qr(V,0);ws = warning;p = R\(Q'*y); warning(ws);if size(R,2) > size(R,1)warning;elseif warnIfLargeConditionNumber(R)if nargout > 2warning;elsewarning;endendif nargout > 1r = y - V*p;S.R = R;S.df = max(0,length(y) - (n+1));S.normr = norm(r);endp = p.';function flag = warnIfLargeConditionNumber(R) if isa(R, 'double')flag = (condest(R) > 1e+10);elseflag = (condest(R) > 1e+05);endx=[1,3,4,5,6,7,8,9,10];y=[10,5,4,2,1,1,2,3,4];p=polyfit(x,y,2);y=poly2sym(p);a=-p(1)/p(2)*0.5;xa=-p(2)/(2*p(1));min=(4*p(1)*p(3)-p(2)^2)/(4*p(1)); yxamin运行截图运行结果function [I] = CombineTraprl(f,a,b,eps)if(nargin ==3)eps=1.0e-4;endn=1;h=(b-a)/2;I1=0;I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)>epsn=n+1;h=(b-a)/n;I1=I2;I2=0;for i=0:n-1x=a+h*i;x1=x+h;I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym( f),findsym(sym(f)),x1));endendI=I2;程序:>> [q]=CombineTraprl('(1-exp(-x))^0.5/x'10^-12,1)结果:q =1.8521欧拉方法function [x,y]=euler(fun,x0,xfinal,y0,n);if nargin<5,n=50;endh=(xfinal-x0)/n;x(1)=x0;y(1)=y0;for i=1:nx(i+1)=x(i)+h;y(i+1)=y(i)+h*feval(fun,x(i),y(i));end程序:[x,y]=euler('doty',0,1,1,10)结果:改进欧拉方法function [x,y]=eulerpro(fun,x0,xfinal,y0,n); if nargin<5,n=50;endh=(xfinal-x0)/n;x(1)=x0;y(1)=y0;x(i+1)=x(i)+h;y1=y(i)+h*feval(fun,x(i),y(i));y2=y(i)+h*feval(fun,x(i+1),y1);y(i+1)=(y1+y2)/2;end程序:>> [x,y]=eulerpro('doty',0,1,1,10)结果:经典RK法function [x,y]=RungKutta4(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2);y(1)=y0;for n=1:length(x)-1k1=feval(dyfun,x(n),y(n));k2=feval(dyfun,x(n)+h/2,y(n)+h/2*k1);k3=feval(dyfun,x(n)+h/2,y(n)+h/2*k2);k4=feval(dyfun,x(n+1),y(n)+h*k3);y(n+1)=y(n)+h*(k1+2*k2+2*k3+k4)/6; end程序:dyfun=inline('(2*x*y^-2)/3');[x,y]=RungKutta4(dyfun,[0,1],1,0.1)标准函数x(1)=0;h=0.1;for i=1:10y(i)=(1+x(i)^2)^(1/3); endxY结果:。
计算方法 课后习题答案

Lagrange 插值多项式。
3
注意到:若 n 1个节点 xi i 0,1,..., n 互异,则对任意次数 n 的多项式 f x ,它
(4.5)(0.01172)
0.00879
(2)采用 Newton 插值多项式 y x N2(x) 根据题意作差商表:
i
xi
0
4
1
6.25
f (xi ) 2 2.5
一阶差商 2 9
2
9
3
2 11
二阶差商 4 495
N2 (7) 2 29 (7 4) ( 4 495) (7 4) (7 6.25) 2.6484848
Lagrange
型二次插值函数,并估
计差。
解1)由题意知:
x0
0,
x1
1,
x2
1 2
;
y0
1,
y1
e1,
y2
1
e2
则根据二次Lagrange插值公式得:
L2 (x)
(x ( x0
x1)(x x2 ) x1)(x0 x2 )
y0
(x ( x1
x0 )(x x2 ) x0 )(x1 x2 )
x2 02
x4= 04
x3
7x2 14x 8 8
l1 ( x)
x x0 x1 x0
x x2 x1 x2
x x3 x1 x3
东南大学数值分析上机题答案

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

习 题 一3.已知函数y =4, 6.25,9x x x ===处的函数值,试通过一个二次插值函解:0120124, 6.25,9;2, 2.5,3y x x x y y y =======由题意 (1) 采用Lagrange插值多项式220()()j j j y L x l x y ==≈=∑27020112012010*********()|()()()()()()()()()()()()(7 6.25)(79)(74)(79)(74)(7 6.25)2 2.532.255 2.25 2.75 2.7552.6484848x y L x x x x x x x x x x x x x y y y x x x x x x x x x x x x ==≈------=++------------=⨯+⨯+⨯⨯-⨯⨯= 其误差为(3)25(3)25(3)2[4,9]2()(7)(74)(7 6.25)(79)3!3()83max |()|40.0117281|(7)|(4.5)(0.01172)0.008796f R f x x f x R ξ--=---==<∴<=又则(2)采用Newton插值多项式2()y N x =≈ 根据题意作差商表:224(7)2(74)()(74)(7 6.25) 2.64848489495N =+⨯-+-⨯-⨯-≈4. 设()()0,1,...,k f x x k n ==,试列出()f x 关于互异节点()0,1,...,i x i n =的Lagrange 插值多项式。
注意到:若1n +个节点()0,1,...,i x i n =互异,则对任意次数n ≤的多项式()f x ,它关于节点()0,1,...,i x i n =满足条件(),0,1,...,i i P x y i n ==的插值多项式()P x 就是它本身。
可见,当k n ≤时幂函数()(0,1,...,)kf x x k n ==关于1n +个节点()0,1,...,i x i n =的插值多项式就是它本身,故依Lagrange 公式有()00(),0,1,...,nn n k kk i j j j j j i j ii jx x x l x x x k n x x ===≠-=≡=-∑∑∏特别地,当0k =时,有()0001nn n ij j j i j ii jx x l x x x ===≠-=≡-∑∑∏而当1k =时有()000nnn ij j j j j i j ii jx x x l x x x x x ===≠⎛⎫- ⎪=≡ ⎪- ⎪⎝⎭∑∑∏ 5.依据下列函数表分别建立次数不超过3的Lagrange 插值多项式和Newton 插值多项式,并验证插值多项式的唯一性。
计算方法第二版课后练习题含答案

计算方法第二版课后练习题含答案前言本文将为大家提供计算方法第二版课后练习题的答案,旨在帮助读者更好地学习和掌握计算方法的知识。
本文全部内容均为作者整理,尽可能保证每一题的答案正确性。
读者可以借助本文的答案,检验自己的练习成果,加强对计算方法知识的理解和掌握程度。
同时,读者也应该注意切勿直接复制答案,本文的答案仅供参考,希望读者能够通过自己的思考和探索,获得更深层次的学习感悟。
第一章引论1.1 计算方法的基本概念和思想练习题 1写出计算方法的三要素,并分别简要解释。
答案计算方法的三要素为:模型、算法、误差分析。
•模型:计算方法所涉及的实际问题所对应的数学模型,是解决问题的基础;•算法:根据模型,构造相应的计算程序,即算法;•误差分析:计算结果与实际应用中所需的精度之间的差异,称为误差。
误差分析是对计算结果质量的保障。
1.2 算法的误差练习题 2写出二分法算法,并解释其误差。
答案算法:function binarySearch(a, target) {let low = 0;let high = a.length - 1;while (low <= high) {let midIndex = Math.floor((low + high) / 2);let midValue = a[midIndex];if (midValue === target) {return midIndex;} else if (midValue < target) {low = midIndex + 1;} else {high = midIndex - 1;}}return -1;}误差:二分法算法的误差上界为O(2−k),其中k为迭代次数。
在二分法被成功应用时,k取决于与目标值x的距离,即 $k=\\log _{2}(\\frac{b-a}{\\epsilon})$,其中[a,b]是区间,$\\epsilon$ 是目标值的精度。
计算方法 课后习题答案

,
正规方程组化为:
得 =2.43689 =0.291211
=2.43689所以 =11.45 = =0.291211
=2.43689所以 =11.45 1= =0.291211
12.求函数 在给定区间上对于 的最佳平方逼近多项式:
解:设
(1)
(2)
。
。
13. 上求关于 的最佳平方逼近多项式。
解:Legendre是[-1,1]上的正交多项式
解:1)用梯形公式有:
事实上,
2)Simpson公式
事实上,
3)由Cotes公式有:
事实上,
2.证明Simpson公式 具有三次代数精度。
证明:
而当 时
左侧:
右侧:
左侧不等于右侧。所以Simpson具有三次代数精度.
3.分别用复化梯形公式和复化公式Simpson计算下列积分.
(1) ,(3) ,(4)
注意到这里 是三重零点, 是单零点,故插值余项为
20.求作次数 的多项式 ,使满足条件
并列出插值余项。
解法1:由于在 处有直到一阶导数值的插值条件,所以它是“二重节点”;而在 处有直到二阶导数值的插值条件所以 是“三重节点”。因此利用重节点的差商公式:
可以作出差商表
一阶
二阶
三阶
四阶
0
0
1
1
1
-1
-1
利用 的第1式,可将第2式化为
同样,利用第2式化简第3式,利用第3式化简第4式,分别得
由 式消去 得
进一步整理
由此解出
解得:
因此所求的两点Gauss求积公式:
或依下面的思想:
解(2):令原式对于 准确成立,于是有
计算方法答案王能超

计算方法答案王能超【篇一:计算方法习题集及实验指导书】s=txt>计算机科学与技术系檀明2008-02-10课程性质及目的要求(一)课程性质自计算机问世以来,科学计算一直是计算机应用的一个重要领域,数值计算方法是解决各种复杂的科学计算问题的理论与技术的基础。
《计算方法》课程讨论用于科学计算中的一些最基本、最常用的算法,不但具有数学的抽象性与严密的科学性的特点,而且具有应用的高度技术性的特点。
它对于培养从事计算机应用的科技人才有着重要的作用,是计算机应用专业(本科段)的一门重要的技术基础课程。
(二)目的要求通过本课程的学习和上机实验,了解用计算机解决科学计算问题的方法特点,掌握计算方法中的一些基本概念、基本公式和相应的算法流程,提高根据算法描述设计高级语言程序并进行验证的技能。
在学习过程中,应注重理解和应用,在搞清基本原理和基本概念的基础上,通过习题、编程和上机等环节,巩固和加深已学的内容,掌握重要的算法及其应用。
注重理论与算法的学习和应用相结合,强调编程及上机计算的技能培养,是本课程不同于一般数学课程的重要特点。
(三)学习方法指导1.循序渐进逐章学习本课程从第二章开始,每章都讨论一个大类的算法。
虽然各算法是相对独立的,但是也存在相互联系与前后继承的关系。
前面的概念和算法学好了,后面的内容也就容易学,越学越感到容易。
前面的内容没有学好,后面就会感到难学,甚至会出现越来越感到困难、失去学习信心的情况。
2.稳扎稳打融会贯通学习要扎实、要讲求实效。
每一个重要的概念和公式,都会搞清楚,做到融会贯通。
只有这样,才能取得学习的学习效果。
3.多学练勤做习题教材及本习题集中的每一章都附有适量的习题,可以帮助考生巩固和加深理解所学的知识,提高解题能力。
因此,在学习过程中,应当适合习题进行思考,应当尽可能多做习题,遇到某些不会做的题,应三思之后再请老师给予提示。
4.抓住特点前后联系本课程只讲了五大类算法。
每类算法都是针对一类特定的计算问题,都有其自身的特点。
计算方法教程(第2版)习题答案

《计算方法教程(第二版)》习题答案第一章 习题答案1、浮点数系),,,(U L t F β共有 1)1()1(21++---L U t ββ 个数。
3、a .4097b .62211101110.0,211101000.0⨯⨯c .6211111101.0⨯4、设实数R x ∈,则按β进制可表达为:,1,,,3,2,011)11221(+=<≤<≤⨯++++++±=t t j jd d lt t d t t d dd x βββββββ按四舍五入的原则,当它进入浮点数系),,,(U L t F β时,若β211<+t d ,则 l tt d dd x fl ββββ⨯++±=)221()(若 β211≥+t d ,则 l tt d d d x fl ββββ⨯+++±=)1221()(对第一种情况:t l lt l t t d x fl x -++=⨯≤⨯+=-βββββ21)21(1)()(11对第二种情况:t l ltl t t d x fl x -++=⨯≤⨯--=-ββββββ21)21(1)(11 就是说总有: tl x fl x -≤-β21)( 另一方面,浮点数要求 β<≤11d , 故有l x ββ1≥,将此两者相除,便得t x x fl x -≤-121)(β 5、a . 5960.1 b . 5962.1 后一种准确6、最后一个计算式:00025509.0原因:避免相近数相减,避免大数相乘,减少运算次数7、a .]!3)2(!2)2(2[2132 +++=x x x yb .)21)(1(22x x x y ++=c .)11(222-++=x x x yd . +-+-=!2)2(!6)2(!4)2(!2)2(2642x x x x ye .222qp p q y ++=8、01786.098.5521==x x9、 m )10(m f - 1 233406.0- 3 20757.0- 5 8.07 710计算宜采用:])!42151()!32141()!22131[()(2432+⨯-+⨯-+⨯--=x x x f第二章 习题答案1、a .T x )2,1,3(= b .T x )1,2,1,2(--= c .无法解2、a .与 b .同上, c .T T x )2188.1,3125.0,2188.1,5312.0()39,10,39,17(321---≈---=7、a .⎪⎪⎪⎪⎭⎫ ⎝⎛--⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎭⎫ ⎝⎛--⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛---14112111473123247212122123211231321213122 b . ⎪⎪⎪⎪⎪⎭⎫⎝⎛--⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎪⎪⎪⎭⎫⎝⎛----333211212110211221213231532223522121⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--⎪⎪⎪⎪⎪⎭⎫⎝⎛-=111211212130213221219、T x )3415.46,3659.85,1220.95,1220.95,3659.85,3415.46(1= T x )8293.26,3171.7,4390.2,4390.2,3171.7,8293.26(2= 10、T LDL 分解:)015.0,579.3,9.1,10(diag D =⎪⎪⎪⎪⎪⎭⎫⎝⎛=16030.07895.05.018947.07.019.01L Cholesky 分解⎪⎪⎪⎪⎪⎭⎫⎝⎛=1225.01408.10833.15811.18918.12333.12136.23784.18460.21623.3G 解:)1,1,2,2(--=x 12、16,12,1612111===∞A A A611,4083.1,61122212===∞A A A2)(940)()(12111===∞A Cond A Cond A Cond524)(748)()(22221===∞A C o n d A C o n d A C o n d⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛=--180.0000180.0000- 30.0000 180.0000- 192.0000 36.0000- 30.0000 36.0000- 9.0000,0.0139 0.1111- 0.0694- 0.1111- 0.0556 0.1111- 0.0694- 0.1111- 0.0139 1211A A1151.372,1666.0212211==--A A15、 1A :对应 Seidel Gauss - 迭代收敛,Jacobi 迭代不收敛; 2A :对应 Seidel Gauss - 迭代收敛,Jacobi 迭代不收敛; 3A :对应 Seidel Gauss - 迭代收敛,Jacobi 迭代收敛;第三章 习题答案1、Lagrange 插值多项式:)80.466.5)(20.366.5)(70.266.5)(00.166.5()80.4)(20.3)(70.2)(00.1(7.51)66.580.4)(20.380.4)(70.280.4)(00.180.4()66.5)(20.3)(70.2)(00.1(3.38)66.520.3)(80.420.3)(70.220.3)(00.120.3()66.5)(80.4)(70.2)(00.1(0.22)66.570.2)(80.470.2)(20.370.2)(00.170.2()66.5)(80.4)(20.3)(00.1(8.17)66.500.1)(80.400.1)(20.300.1)(70.200.1()66.5)(80.4)(20.3)(70.2(2.14)(4--------⨯+--------⨯+--------⨯+--------⨯+--------⨯=x x x x x x x x x x x x x x x x x x x x x L Newton 插值多项式:)80.4)(20.3)(70.2)(00.1(21444779.0)20.3)(70.2)(00.1(527480131.0)70.2)(00.1(855614973.2)00.1(117647059.22.14)(4----+------+-+=x x x x x x x x x x x N2、设)(x y y =,其反函数是以y 为自变量的函数)(y x x =,对)(y x 作插值多项式:)1744.0)(1081.0)(4016.0)(7001.0(01253.0)1081.0)(4016.0)(7001.0(01531.0)4016.0)(7001.0(009640.0)7001.0(3350.01000.0)(----+---+--+--=y y y y y y y y y y y N 3376.0)0(=N 是0)(=x y 在]4.0,3.0[中的近似根。
数值计算方法上机实习题答案.doc

1.设I n 1 x ndx ,0 5 x( 1)由递推公式 I n 5I n 11,从 I 0的几个近似值出发,计算I 20;n解:易得: I 0 ln6-ln5=0.1823, 程序为:I=0.182;for n=1:20I=(-5)*I+1/n;endI输出结果为: I 20= -3.0666e+010( 2)粗糙估计 I 20,用 I n 1 1I n 1 1 ,计算 I 0;5 5n0.0079 1 x 20 1 x 200.0095因为dx I 20dx 6 5所以取 I 20 1(0.0079 0.0095) 0.0087 2程序为: I=0.0087;for n=1:20I=(-1/5)*I+1/(5*n);endII 0= 0.0083( 3)分析结果的可靠性及产生此现象的原因(重点分析原因 )。
首先分析两种递推式的误差;设第一递推式中开始时的误差为E0 I 0 I 0,递推过程的舍入误差不计。
并记 E n I n I n,则有 E n 5E n 1 ( 5) n E0。
因为 E20( 5) 20 E0 I 20,所此递推式不可靠。
而在第二种递推式中E0 1E1 (1)n E n,误差在缩小,5 5所以此递推式是可靠的。
出现以上运行结果的主要原因是在构造递推式过程中,考虑误差是否得到控制,即算法是否数值稳定。
2.求方程e x10x 2 0 的近似根,要求x k 1x k 5 10 4,并比较计算量。
(1)在 [0, 1]上用二分法;程序: a=0;b=1.0;while abs(b-a)>5*1e-4c=(b+a)/2;if exp(c)+10*c-2>0b=c;else a=c;endendc结果: c =0.0903( 2)取初值x0 0,并用迭代 x k 1 2 e x ;10程序: x=0;a=1;while abs(x-a)>5*1e-4a=x;x=(2-exp(x))/10;endx结果: x =0.0905(3)加速迭代的结果;程序: x=0;a=0;b=1;while abs(b-a)>5*1e-4a=x;y=exp(x)+10*x-2;z=exp(y)+10*y-2;x=x-(y-x)^2/(z-2*y+x);b=x;endx结果: x =0.0995( 4)取初值x00 ,并用牛顿迭代法;程序: x=0;a=0;b=1;while abs(b-a)>5*1e-4a=x;x=x-(exp(x)+10*x-2)/(exp(x)+10); b=x;end x 结果: x =0.0905( 5) 分析绝对误差。
计算方法 课后习题答案

计算方法课后习题答案计算方法课后习题答案计算方法是一门重要的学科,它涉及到数值计算、算法设计和数据处理等方面的内容。
在学习计算方法的过程中,课后习题是不可或缺的一部分。
通过解答习题,我们可以巩固所学的知识,提高自己的计算能力。
下面是一些计算方法课后习题的答案,希望对大家的学习有所帮助。
1. 矩阵的转置矩阵的转置是将矩阵的行和列互换得到的新矩阵。
对于一个m×n的矩阵A,它的转置记作A^T。
转置后的矩阵A^T的行数和列数分别为原矩阵A的列数和行数。
例如,对于一个3×2的矩阵A,它的转置A^T是一个2×3的矩阵。
2. 矩阵的加法和减法矩阵的加法和减法是对应位置上的元素进行相加或相减得到的新矩阵。
对于两个相同大小的矩阵A和B,它们的和记作A+B,差记作A-B。
加法和减法的运算规则是相同位置上的元素进行相应的运算。
3. 矩阵的乘法矩阵的乘法是指将两个矩阵相乘得到一个新矩阵的运算。
对于两个矩阵A和B,它们的乘积记作AB。
矩阵乘法的运算规则是矩阵A的行与矩阵B的列进行相乘,并将结果相加得到新矩阵的对应位置上的元素。
4. 矩阵的逆矩阵的逆是指对于一个可逆矩阵A,存在一个矩阵B,使得AB=BA=I,其中I是单位矩阵。
如果一个矩阵A存在逆矩阵,则称其为可逆矩阵或非奇异矩阵。
求解矩阵的逆可以使用伴随矩阵和行列式的方法。
5. 线性方程组的求解线性方程组是指由一组线性方程组成的方程组。
求解线性方程组的方法有很多,包括高斯消元法、LU分解法、迭代法等。
其中,高斯消元法是一种常用的求解线性方程组的方法,它通过消元和回代的过程,将线性方程组转化为上三角形矩阵或对角矩阵,从而求解出方程组的解。
6. 数值积分的方法数值积分是指通过数值计算的方法来求解定积分的近似值。
常用的数值积分方法包括梯形法则、辛普森法则和龙贝格法则等。
这些方法都是基于将定积分转化为离散求和的形式,通过计算离散点上的函数值来估计定积分的近似值。
计算方法_习题第一、二章答案

第一章 误差1 问3.142,3.141,722分别作为π的近似值各具有几位有效数字?分析 利用有效数字的概念可直接得出。
解 π=3.141 592 65…记x 1=3.142,x 2=3.141,x 3=722.由π- x 1=3.141 59…-3.142=-0.000 40…知3411110||1022x π--⨯<-≤⨯ 因而x 1具有4位有效数字。
由π- x 2=3.141 59…-3.141=-0.000 59…知2231021||1021--⨯≤-<⨯x π因而x 2具有3位有效数字。
由π-722=3.141 59 …-3.142 85…=-0.001 26…知231021|722|1021--⨯≤-<⨯π因而x 3具有3位有效数字。
2 已知近似数x*有两位有效数字,试求其相对误差限。
分析 本题显然应利用有效数字与相对误差的关系。
解 利用有效数字与相对误差的关系。
这里n=2,a 1是1到9之间的数字。
%5101211021|*||*||)(|1211*=⨯⨯≤⨯≤-=+-+-n ra x x x x ε3 已知近似数的相对误差限为0.3%,问x*至少有几位有效数字?分析 本题利用有效数字与相对误差的关系。
解 a 1是1到9间的数字。
1112*10)1(2110)19(21102110003%3.0)(--⨯+≤⨯+⨯=⨯<=a x r ε 设x*具有n 位有效数字,令-n+1=-1,则n=2,从而x*至少具有2位有效数字。
4 计算sin1.2,问要取几位有效数字才能保证相对误差限不大于0.01%。
分析 本题应利用有效数字与相对误差的关系。
解 设取n 位有效数字,由sin1.2=0.93…,故a 1=9。
411*10%01.01021|*||*||)(-+-=≤⨯≤-=n r a x x x x ε解不等式411101021-+-≤⨯n a 知取n=4即可满足要求。
计算方法课后习题答案

计算方法课后习题答案在计算方法课程中,学生通常会接触到各种数学问题的求解方法,包括但不限于数值分析、线性代数、微分方程等。
以下是一些课后习题的解答示例:习题一:求解线性方程组设线性方程组为:\[ \begin{align*}a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n &= b_1, \\a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n &= b_2, \\\vdots \quad \quad & \ \vdots \\a_{m1}x_1 + a_{m2}x_2 + \cdots + a_{mn}x_n &= b_m,\end{align*} \]解答:使用高斯消元法或矩阵分解法求解上述方程组。
首先将系数矩阵转换为行简化阶梯形式,然后回代求解未知数 \( x_1, x_2,\ldots, x_n \)。
习题二:数值积分给定函数 \( f(x) \),需要在区间 \( [a, b] \) 上进行数值积分。
解答:可以使用梯形法、辛普森法等数值积分方法。
例如,使用梯形法的公式为:\[ \int_a^b f(x)dx \approx \frac{h}{2} \left( f(a) + 2f(a+h) + 2f(a+2h) + \cdots + 2f(b-h) + f(b) \right), \]其中 \( h = \frac{b-a}{n} \) 是区间的等分宽度,\( n \) 是等分数。
习题三:常微分方程的数值解给定一个常微分方程 \( y' = f(x, y) \),初始条件为 \( y(x_0) = y_0 \)。
解答:使用欧拉法或龙格-库塔法求解。
以欧拉法为例,其迭代公式为:\[ y_{n+1} = y_n + h f(x_n, y_n), \]其中 \( h \) 是步长,\( x_{n+1} = x_n + h \)。
最优化计算方法课后习题集答案解析

解:取 , 时,DFP法的第一步与最速下降法相同
, ,
,
以下作第二次迭代
,
其中,
,
所以
令 , 利用 ,求得
所以 ,
以下作第三次迭代
,
,
所以
令 , 利用 ,求得
所以 , 因为 ,于是停止
即为最优解。
习题四
包括题目: P95页 3;4;8;9(1);12选做;13选做
3题解如下
3.考虑问题 ,其中
X1,x2,x3≥0 (3)
求出点(1,1,0)处的一个下降可行方向.
解:首先检查在点(1,1,0)处哪些约束为有效约束。检查易知(1),X3≥0为有效约束。设所求可行方向d=(d1,d2,d3)T。根据可行方向d的定义,应存在a>0,使对∀t∈(0,a)能有
X+td=(1+td1,1+td2,0+td3)T
(1)
s.t.
(2)
s.t.
(1)解:非线性规划的K-T条件如下:
(1)
(2)
(3)
再加上约束条件 (4)
为求出满足(1)~(4)式的解,分情况考虑:
①若(4)式等号不成立,即 ,那么由(2)式得 ,将 代入(1)式解得 , ,所得值不满足 的条件,故舍去。
②若(4)式等号成立,由(1)式可以解得 , ,代入(4)式有:
JBi
1
2
3
4
5
6
7
8
9
di0
1
1
0
-5/6
-1/6
1
10/6
4
0
0
38/6
2
0
1
-9/6
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海电力学院数值分析上机实验报告题目:数值分析上机实验报告学生姓名:11111111111学号:111111*********专业:11112013年12月30日数值计算方法上机实习题1. 设⎰+=105dx xx I nn , (1) 由递推公式n I I n n 151+-=-,从0I 的几个近似值出发,计算20I ; (2) 粗糙估计20I ,用nI I n n 51511+-=-,计算0I ;(3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。
(1) 解答:n=0,0.1823)05ln()15ln()5(51515101010=+-+=++=+=+=⎰⎰⎰x d xdx x dx x x I nn这里可以用for 循环,while 循环,根据个人喜好与习惯:for 循环程序: While 循环程序: I=0.1823; I=0.1823; for n=1:20 i=1;I=(-5)*I+1/n; while i<21 End I=(-5)*I+1/i; I i=i+1; fprintf('I20=%f',I) end I = -2.0558e+009 >> II20=-2055816073.851284>> I = -2.0558e+009 (2) 粗略估计I 20: Mathcad 计算结果: for 循环程序: While 循环程序: >> I=0.007998; I=0.007998; >> for n=1:20 n=1;I=(-0.2)*I+1/(5*n); while n<21End I=(-0.2)*I+1/(5*n); >> I n=n+1; I =0.0083 end >> II =0.0083(3) 算法误差分析:计算在递推过程中传递截断误差和舍入误差 第一种算法:(从1——>20)*000e I I=-***21111120115(5)5()555n n n n n n n n n n e I I I I I I e e e n n------=-=-+--+=-===1x x 205x +⎛⎜⎜⎜⎠d 7.998103-⨯=误差放大了5n 倍,算法稳定性很不好; 第二种算法:(从20——>1)*n n ne I I =-***111111111()()555555n n n n n n nn e I I I I I I e n n ---=-=-+--+=-=0111...()55nne e e ===误差在逐步缩小,算法趋近稳定,收敛。
2. 求方程0210=-+x e x 的近似根,要求41105-+⨯<-k k x x ,并比较计算量。
(1) 在[0,1]上用二分法;function [t i]=erfenfa(a,b) f=@(x)( exp(x)+10*x-2) t=(a+b)./2; i=0;while abs(f(t))>0.001 if f(a)*f(t)<0 b=t;t=(a+b)/2; elseif f(b)*f(t)<0 a=t;t=(b+a)/2; end i=i+1; end 结果: t = 0.0906 i = 11(2) 取初值00=x ,并用迭代1021x k e x -=+;function x=diedai(x0) %x0初值 x=x0;for i=1:10000y=(2-exp(x))./10;x=y;y=(2-exp(x))./10; if abs(x-y)<5*10^(-4) disp('迭代次数'); 2*i break; end end结果:ans =6 x =0.090639135859584(3) 加速迭代的结果(艾特肯Aitken 加速方法);function [y m]=aitken(a) func=@(x)(( 2-exp(x))./10) x(1)=a; wucha=1;m=1;while wucha> 5*10^(-4) p(m+1)=func(x(m));q(m+1)=func(p(m+1));x(m+1)=q(m+1)-((q(m+1)-p(m+1))^2)./(q(m+1)-2*p(m+1)+x(m));wucha=abs(x(m+1)-x(m)); m=m+1; if m>1000 break; end endformat long y=x(m-1); m=m-1;运行结果y =0.090483741803596m =2(4) 取初值00 x ,并用牛顿迭代法;function x=newtondiedai(x0) x=x0; for i=1:100y=x-(exp(x)+10*x-2)./(exp(x)+10);x=y; y=x-(exp(x)+10*x-2)./(exp(x)+10); if abs(x-y)<0.0001 disp('迭代次数'); i break; end end 运行结果 迭代次数i = 2 x =0.0905(5) 分析绝对误差。
通过指令求得方程精确解的近似解:>> solve('exp(x)+10*x-2=0') ans =-lambertw(1/10*exp(1/5))+1/5 >> format long>> -lambertw(1/10*exp(1/5))+1/5 ans =0.09052510130725 小结:所以我们可以看到,在要求同一运算精度的情况下,采用二分法运算了11次,采用题设的迭代方法运算了6次,采用加速迭代法只运算了2次,采用牛顿迭代法需运算2次。
也就是说加速迭代速度都是超线性收敛的,而简单迭代法是线性收敛的。
而二分法收敛速度较慢,所以在工程上不经常使用。
3.钢水包使用次数多以后,钢包的容积增大,数据如下: x 2345678910111213141516y6.42 8.2 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.8 10.6 10.9 10.76试从中找出使用次数和容积之间的关系,计算均方差。
(注:增速减少,用何种模型) 解答:因为不知道其函数形式,可先plot 而后确定使用哪种模型比较合适。
函数图形程序:x=[2 3 4 5 6 7 8 9 10 11 12 13 14 15 16];y=[6.42 8.2 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.6 10.8 10.6 10.9 10.76]; plot(x,y ,‘b*’)与指数函数趋势类似(但是趋势不同,一个趋于递减,一个趋于递增,使用倒数),故拟合模型为: bxy ae=两边同时取对数:ln ln by ax=+用此模型进行数据拟合:1,ln n n y x ⎛⎫ ⎪⎝⎭x=[2 3 4 5 6 7 8 9 10 11 12 13 14 15 16];y=[6.42 8.2 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.6 10.8 10.6 10.9 10.76]; t=1./x;s=polyfit(t,log(y),1) s =-1.1107 2.4578即是: 2.457811.679a e == 1.1107b =- 最终拟合曲线为:1.110711.679xy e-=将此拟合曲线和源数据进行对比: 主程序:x=[2 3 4 5 6 7 8 9 10 11 12 13 14 15 16];y=[6.42 8.2 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.6 10.8 10.6 10.9 10.76]; plot(x,y,'ro') hold onlims1=[2,16];fplot('11.679*exp(-1.1107/x)',lims1) hold off均方差的求解x=[2:16];y=[6.42 8.2 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.8 10.6 10.9 10.76]; f(x)=11.679*exp(-1.1107./x); c=0;for i=1:15 a=y(i); b=x(i);c=c+(a-f(b))^2;endaverge=c/15averge = sqrt(averge) 0.24384.设⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛----------------=410100141010014101101410010141001014A ,⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--=625250b ,b x =A 分析下列迭代法的收敛性,并求42110-+≤-kk x x 的近似解及相应的迭代次数。
1) JACOBI 迭代;2) GAUSS-SEIDEL 迭代; 3) SOR 迭代(95.0,95.1,334.1=ω)。
解答:(1) JACOBI 迭代; 定义函数。
function tx=jacobi(A,b,imax,x0,tol) %jacobi 迭代 %初始值x0,次数imax,精度tol del=10^-10;tx=[x0];n=length(x0); for i=1:ndg=A(i,i); if abs(dg)<deldisp('对角元太小'); return end endfor k=1:imax %jacobi 循环 for i=1:n sm=b(i); for j=1:n if j~=ism=sm-A(i,j)*x0(j); end endx(i)=sm/A(i,i); endtx=[tx;x];if norm(x-x0)<tol return elsex0=x;endend保存m文件。
主窗口输入以下程序段:>>A=[4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4]; b=[0 5 -2 5 -2 6];x0=[0 0 0 0 0 0];imax=100;tol=10^-4;tx=jacobi(A,b,imax,x0,tol);for j=1:size(tx,1)fprintf('%d %f %f %f %f %f %f\n',j,tx(j,1),tx(j,2),tx(j,3),tx(j,4),tx(j,5),tx(j,6));end运行结果:1 0.000000 0.000000 0.000000 0.000000 0.000000 0.0000002 0.000000 1.250000 -0.500000 1.250000 -0.500000 1.5000003 0.625000 1.000000 0.500000 1.000000 0.500000 1.2500004 0.500000 1.656250 0.312500 1.656250 0.312500 1.7500005 0.828125 1.531250 0.765625 1.531250 0.765625 1.6562506 0.765625 1.839844 0.679688 1.839844 0.679688 1.8828137 0.919922 1.781250 0.890625 1.781250 0.890625 1.8398448 0.890625 1.925293 0.850586 1.925293 0.850586 1.9453139 0.962646 1.897949 0.948975 1.897949 0.948975 1.92529310 0.948975 1.965149 0.930298 1.965149 0.930298 1.97448711 0.982574 1.952393 0.976196 1.952393 0.976196 1.96514912 0.976196 1.983742 0.967484 1.983742 0.967484 1.98809813 0.991871 1.977791 0.988895 1.977791 0.988895 1.98374214 0.988895 1.992415 0.984831 1.992415 0.984831 1.99444815 0.996208 1.989639 0.994820 1.989639 0.994820 1.99241516 0.994820 1.996462 0.992923 1.996462 0.992923 1.99741017 0.998231 1.995167 0.997583 1.995167 0.997583 1.99646218 0.997583 1.998349 0.996699 1.998349 0.996699 1.99879219 0.999175 1.997745 0.998873 1.997745 0.998873 1.99834920 0.998873 1.999230 0.998460 1.999230 0.998460 1.99943621 0.999615 1.998948 0.999474 1.998948 0.999474 1.99923022 0.999474 1.999641 0.999282 1.999641 0.999282 1.99973723 0.999820 1.999509 0.999755 1.999509 0.999755 1.99964124 0.999755 1.999832 0.999665 1.999832 0.999665 1.99987725 0.999916 1.999771 0.999886 1.999771 0.999886 1.99983226 0.999886 1.999922 0.999844 1.999922 0.999844 1.99994327 0.999961 1.999893 0.999947 1.999893 0.999947 1.99992228 0.999947 1.999964 0.999927 1.999964 0.999927 1.99997329 0.999982 1.999950 0.999975 1.999950 0.999975 1.999964(2)GAUSS-SEIDEL迭代;function tx=gseidel(A,b,imax,x0,tol) %gseidel迭代 %初始值x0,次数imax,精度toldel=10^-10;tx=[x0];n=length(x0);for i=1:ndg=A(i,i);if abs(dg)<deldisp('对角元太小');returnendendfor k=1:imax %G-S循环x=x0;for i=1:nsm=b(i);for j=1:nif j~=ism=sm-A(i,j)*x(j);endendx(i)=sm/A(i,i);endtx=[tx;x];if norm(x-x0)<tolreturnelsex0=x;endend主程序:A=[4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4];b=[0 5 -2 5 -2 6];x0=[0 0 0 0 0 0];imax=100;tol=10^-4;tx=gseidel(A,b,imax,x0,tol);for j=1:size(tx,1)fprintf('%d %f %f %f %f %f %f\n',j,tx(j,1),tx(j,2),tx(j,3),tx(j,4),tx(j,5 ),tx(j,6))endω)。