数值分析例题 下载本文

0.2[8?3yn?8?3yn?1] , ?2

716yn?1?yn?1313yn?1?yn?由y(1)?y0?2计算得

y(1.2)?y1?2.30769y(1.4)?y2?2.47337y(1.6)?y3?2.56258 y(1.8)?y4?2.61062y(2.0)?y5?2.63649

思考题

对初值问题

?y??y?0 ? y(0)?1?试证明用梯形格式所求得的近似解为:yn?(证明:梯形格式为

2?hn) (其中h为步长) 2?hhyn?1?yn?[f(xn,yn)?f(xn?1,yn?1)],于是

2hyn?1?yn?(?yn ?yn?1 ) ?

2h1?2?y?2?h?y?(2?h)n?1?y yn?1?0hn2?hn2?h1?2而

y0?y(0)?1,故得

yn?(2?hn) 2?h?y??y?y2sinx?0例 用欧拉预-校格式求初值问题?,要求取步长h=0.2

y(1)?1?试计算y(1.2)及y(1.4)的近似值(小数点后至少保留五位)

?yn?1?yn?hf(xn,yn)?解:? hy?y?[f(x,y)?f(x,y)]?n?1nnnn?1n?1?2于是有

2?y?y?0.2(y?ysinxn)n?1nnn? ?22??yn?1?yn?0.1(yn?ynsinxn?yn?1?yn?1sinxn?1)由y(1)?y0?1计算得

?y1?0.63171 ??y(1.2)?y1?0.715488?y2?0.47696 ??y(1.4)?y2?0.526112ty??y?1?, 0?t?2?2练习 用欧拉预-校格式求初值问题?,要求取步长h=0.5,计算1?t??y(0)?0结果保留6位小数。

?yn?1?yn?hf(tn,yn)2ty?解:将h=0.5,代入,f(t,y)?1? 2?h1?t?yn?1?yn?[f(tn,yn)?f(tn?1,yn?1)] n?0 , 1 , 2 ,??2于是有

tn?y?y?(0.5?yn)n?1n2?1?t?n? tt?yn?1?yn?0.5?(1?n2yn?n?1yn?1)2?1?t1?t nn?1?

练习 试写出欧拉预报-校正格式。

由y0?0计算得

y1?0.500 000 , y(0.5)?y1?0.400 000y2?0.740 000 , y(1.0)?y2?0.635 000y3?0.817 500 , y(1.5)?y3?0.787 596y4?0.924 090 , y(2.0)?y4?0.921 025?预报??校正??yn?1?yn?hf(xn,yn)h

yn?1?yn?[f(xn,yn)?f(xn?1,yn?1)]2练习 试写出欧拉预报-校正格式。

?预报??校正??yn?1?yn?hf(xn,yn)hyn?1?yn?[f(xn,yn)?f(xn?1,yn?1)]2第四章 例 用方程的迭代解法求方程xe?1?0 的一正根,要求根的

近似值

xx*稳定至小数点后5位。

f(x)?xex?1 ∵f(0)??1 , f(1)?e?1?0

解:设

xx?f(x)?e?xe?0 x?[0, ??] ∴f(x)?0在区间[0,1]上有根

∴取

f(x)?0在区间[0,1]上有唯一实根

x0?0.5,将xex?1?0 改写成 x?e?x,建立迭代公式

xk?1?e?xk (k?0, 1, 2,? ) 进行迭代:

x0?0.5 , x1?0.6065 ,3 ? , x15?0.5671 ,5 x17?x16?0.5671 4 ∴根的近似值为

x*≈0.56714

练习 用方程的迭代解法求方程近的一根

f(x)?x?x?1?0 在x0?1.5附

3x*。

如建立

xk?1?3xk?1的迭代公式,其迭代过程是收敛的。

x7?x8?1.32472

3x?x如建立k?1k?1 (x0?1.5)的迭代公式,则有

x1?2.375 x2?12.39… xk会越来越大,不可能趋于某个极限。这种不

收敛的迭代过程称作是发散的,纵使进行了千百次迭代,其结果也是毫无价值。

x?3?0 的正根(x*?3)

2解 设f(x)?x?3,可以将f(x)?0改写成不同的等价式x??(x),由此可构

例. 用不同的迭代公式求方程成不同的迭代式。

22x?x?(x)?x?x?3(1) , k?1k?xk?3

2∵ ??(x*)???(3)?23?1?1

3x(2)?(x)?,k?1x(3)?(x)?33*?,??(x)??2,??(x)???(3)??1 xkx121?3), x?(x2?3),xk?1?xk?(xk44??(x)?1?x,??(x*)???(3)?1?123?0.134?1 2133x?1(x?3)(2x?x?),k?1k(4)?(x)?(x?) 2xk, 2xx13??(x)?(1?2),??(x*)???(3)?0

2x很明显,迭代法(1)、(2)不满足|??(x)|?q?1的条件,其迭代法发散;迭代法(3)、(4)满足|??(x)|?

练习 设?(x)q?1的条件,均局部收敛,且(4)比(3)收敛得快。

2?x??(x?5),要使迭代过程

xn+1

*x?5,=?(x)局部收敛到

n

求?取值范围。

??(x)?1?2?*x

|??(x*)|?|1?2?5|?1 ? ?5???05

*x由在根?5邻域具有局部收敛时,收敛条件

例 用牛顿迭代法求方程x x=10的一个实根,精度要求

?=10

-6

解:原方程同解变形为xlgx-1=0,令f (x)=xlgx-1

∵f (2)=2lg2-1<0,f (3)=3lg3-1>0,∴f (2)﹡f (3)<0 ∴f (x)=xlgx-1=0的根区间为(2,3)。

f?(x)?lg(x)?lge>0 x∈(2,3)

注意( loga x )’=1 / (xlna)

f??(x)?lge?0,并且f (3)与xf??(x)同号

∴牛顿迭代法收敛.

f(xk)x?xk?∴取x=3,计算k?1f?(xk),得

0

x1=2.526710,x2=2.506228,x3=x4=2.506184 最后取实根x*=2.506184

练习 讨论用牛顿迭代法求解 用牛顿迭代法求其解。要求

x3?x?1?0 在x?1.5附近的收敛性,若收敛,

xk?1?xk?10?5

*x?1.324 717 957。 答案 ∴取

例. 用单点弦截法解方程

f(x)?xex?1?0,要求xk?1?xk?0.5?10?5。

解:f(0.5)?0,f(0.6)?0易知根区间为[0.5,0.6]

f?(x)?ex(1?x)?0,f??(x)?ex(2?x)?0

f(0.5)f??(0.5)?0 f(0.6)f??(0.6)?0

所以取(0.6,

f(0.6))为不动点,即取x0=0.6,x1=0.5,代入下式

xk?1?x0f(xk)?xkf(x0) 得x=0.565 32,x=0.56709

f(xk)?f(x0)2

3

经5次迭代后得到x4=x5=0.56714,满足条件∴取x

xk?1?xk?0.5?10?5

?0.56714。

例. 用双点弦截法求方程x3-x2-1=0,在x=1.5附近的根.计算中保留5位小数点. 解 f(x)= x3-x2-1,f(1)=-1,f(2)=3,有根区间取[1,2]. 取x0=1, x1=2 ,

f?(x)?3x2?2x?0 (x?[1,2])

f(xn)(xn?xn??) (n=1,2,…)

f(xn)?f(xn??)迭代公式为

xn???xn?x???x????? x??x???(x?x)???????.?? ??????x??x??x??x?