第2章 非线性方程与方程组的数值解法
第2章 非线性方程与方程组的数值解法
本章重点介绍求解非线性方程f(x)=0的几种常见和有 效的数值方法,同时也对非线性方程组 (x1,x2,…,xn)=0(i=12…,n) 求解简单介绍一些最基本的解法无论在理论上还是在 实际应用中,这些数值解法都是对经典的解析方法的突 破性开拓和补充许多问题的求解,在解析方法无能为力 时,数值方法则可以借助于计算机出色完成
本章重点介绍求解非线性方程 的几种常见和有 效的数值方法,同时也对非线性方程组 求解,简单介绍一些最基本的解法.无论在理论上,还是在 实际应用中,这些数值解法都是对经典的解析方法的突 破性开拓和补充,许多问题的求解,在解析方法无能为力 时,数值方法则可以借助于计算机出色完成. f (x) = 0 ( , , , ) 0 ( 1,2, , ) 1 2 f x x x i n i n = =
21二分法 求非线性方程(2=0的根的方法 分为两步 确定方程的有根区间 计算根的近似值
2.1二分法 求非线性方程 f (x) = 0 确定方程的有根区间 计算根的近似值 的根的方法 分为两步:
■首先确定有限区间:依据零点定理。 设f(x)∈C[a,b,且f(a)f(b)<0, 则方程f(x)=0在区间(a,b)上至少有一个根 如果在(x)上正或恒负,则此根唯
◼ 首先确定有限区间:依据零点定理。 设 ,且 , 则方程 在区间 上至少有一个根。 如果 在 上恒正或恒负,则此根唯 一。 f (x)C[a,b] f (a) f (b) 0 f (x) = 0 (a,b) ( ) ' f x (a,b)
等步长扫描法求有根区间 ■用计算机求有根区间:等步长扫描法。 设竹>O是给定的步长,取x0=a,x1=a+h, 若f(x)·f(x)b则扫描失败。再将力缩小, 继续以上步骤
等步长扫描法求有根区间 ◼ 用计算机求有根区间:等步长扫描法。 设h>0是给定的步长,取 , 若 则扫描成功;否则令 ,继续上述方法,直到成 功。如果 则扫描失败。再将h 缩小, 继续以上步骤。 x0 = a, x1 = a + h f (x0 ) f (x1 ) 0 x0 = x1 , x1 = x0 + h x1 b
等步长扫描算法 ■算法:(求方程f(x)=0的有根区间) (1)输入a,bh; (2)J6=f(aq); (3)x=a+h2=f(x),若x>b输出失败信息, 停机。 (4)若f=0。输出x,已算出方程的一个根,停 机
等步长扫描算法 ◼ 算法:(求方程 的有根区间) (1) 输入 ; (2) ; (3) ,若 输出失败信息, 停机。 (4)若 。输出 ,已算出方程的一个根,停 机。 f (x) = 0 a,b,h ( ) f 0 = f a , ( ) 1 x = a + h f = f x x b f 1 = 0 x
等步长扫描算法 (5)若M<0。输出a,xx为有根区间, 停机 (6)a=x,转3) 注:如果对足够小的步长付描失败 说明 在[a,b]内无根 在[a,b内有偶重根
等步长扫描算法 (5) 若 。输出 为有根区间, 停机 (6) ,转 3) ◼ 注:如果对足够小的步长h扫描失败。 说明: ➢ 在 内无根 ➢ 在 内有偶重根 f 0 f 1 0 a, x,[a, x] a = x [a,b] [a,b]
二分法 用二分法(将区间对平分)求解。 令a1=a,b1=b,C=(a1+b1) 若f(a1)f(c)<0,则[a1c1有根区间,否 则[c1,b为有根区间 记新的有根区间为[a2b2],则 a1b1]→[a2b2] 且 (b1-a1)
二分法 ◼ 用二分法(将区间对平分)求解。 令 若 ,则 为有根区间,否 则 为有根区间 记新的有根区间为 , 则 且 , , ( ) 2 1 1 1 a1 = a b1 = b c1 = a + b f (a1 ) f (c1 ) 0 [ , ] 1 1 a c [ , ] 1 b1 c [ , ] a2 b2 [ , ] [ , ] a1 b1 a2 b2 ( ) 2 1 1 1 b2 − a2 = b − a
二分法 ■对[a2,b2]重复上述做法得 n2 n 且 (b-a) 2
二分法 ◼ 对 重复上述做法得 ◼ 且 [ , ] a2 b2 [ , ] [ , ] ...... [ , ] ...... a1 b1 a2 b2 an bn ( ) 2 1 1 b a b a n n n − = − −
二分法 设所求的根为x 贝 x∈a lim (b, -an)=lim n(b-a)=0 n→0 lman-n→ -lim b=xs 取x=Cn=(an+bn)为x的近似解
二分法 设 所求的根为 , 则 即 取 为 的近似解 x [ , ] = 1,2...... x an bn n = 1,2...... an x bn n ( ) 0 2 1 lim ( ) lim n 1 − = − = − → → b a b a n n n n = = → → a b x n n n n lim lim( ) 2 1 n an bn x = c = + x