1.37k likes | 1.79k Views
第四章 非线性方程和非性方程组的解法. 4.1 非线性方程的解法 4.2 非线性方程组的 线性化解法 4.3 非线性方程组的 极值求解法 4.4 最速下降法 4.5 共轭梯度法 4.6 牛顿过程及变度量法 4.7 直接法 4.8 方法的选择与总结. 1 . 非线性方程的解法 2 . 非线性方程组的 线性化解法 --牛顿迭代法 3 . 非线性方程组的 极值求解法 --最速下降法 | 单纯形法 --共轭梯度法 | Powell 方法 --变尺度法 | (可变矩阵方法) | 直接法
E N D
第四章 非线性方程和非性方程组的解法 4.1非线性方程的解法 4.2 非线性方程组的线性化解法 4.3 非线性方程组的极值求解法 4.4 最速下降法 4.5 共轭梯度法 4.6 牛顿过程及变度量法 4.7 直接法 4.8 方法的选择与总结 《实用数值计算方法》
1.非线性方程的解法 2.非线性方程组的线性化解法 --牛顿迭代法 3.非线性方程组的极值求解法 --最速下降法 |单纯形法 --共轭梯度法 |Powell 方法 --变尺度法 | (可变矩阵方法)| 直接法 DFP 方法 | 《实用数值计算方法》
4.1引言 在科学研究中,常常会遇到非线性方程 或非线性方程组的问题。例如解方程 或 一般的,我们记非线性方程为 《实用数值计算方法》
4.1 非线性方程组的一般形式是: 其中fi(i=1,2,…,n)是n维实空间Rn上的 实值函数。用向量形式表示: 这里 均是n维向量。为了方便 计,还是用分别表示上述向量。 简记为: 《实用数值计算方法》
4.1 d c a d b c a 图 4.1 非线性方程求根示意图 《实用数值计算方法》
4.1 方程的解亦称方程的根或函数的零点。 根可能是实数或复数。 若 则 称为单根; 若 而 ,则 称为 k 重根。 常见的求解问题有两种: (1) 要求定出在给定范围内的某个解。 (2) 要求定出在给定范围内的全部解。 非线性问题,除少数情况外,一般不能 不利用公式求解。而要采用某种迭代解法。 即构造出一近似值序列 逼近真解 。 《实用数值计算方法》
4.1 迭代过程的收敛性一般与初值的选取和方 程的性态有关,某些解法仅与初值有关。 收敛速度一般由迭代方法所决定,方程的 性态也会起一些作用。 本章主要介绍非线性方程组的解法, 而方程的解法用较少的篇幅在4.2中扼要介绍。 解非线性方程和方程组有很大区别。后者 要困难得多。主要的区别在于一维情形可 以找到一个根的范围,然后缩小,最终找 到根。而多维情况则很难确定根的存在。 直到你求得它的解。 《实用数值计算方法》
4.2 非线性方程的解法 4.2.1 二分法 对于连续函数 ,如果在 和 处异号: 则 在 内至少有一个根。 《实用数值计算方法》
4.2.1 用图来表示这个过程: y a a b b 0 a b x 图 4.2 二分法方程求根 确定根所在的范围[a,b]对有的函数 也是一件困难的事。所幸的是,在实际应 用中,根据其物理或工程的背景,在绝大 部分场合是不困难的。对给定的函数也有 确定范围的方法。 《实用数值计算方法》
4.2.1 a x1 b c f c x1 d a x2 x3 b 图 4.3 寻找隔根区间示意1 《实用数值计算方法》
4.2.1 图 4.4 寻找隔根区间示意2 a c b 图 4.5 寻找隔根区间示意3 《实用数值计算方法》
例如,在[a,b]之间寻找 f(x) 可能有 的根可以用等分试探法: 4.2.1 a b 图 4.6 等分试探法寻找隔根区间示意 《实用数值计算方法》
4.2.1 用二分法求函数FUNC位于(x1,x2)之间的根,准确性为XACC。 FUNCTION RTBIS (FUNC,X1,X2,XACC) PARAMETER (JMAX=40) FMID=FUNC(X2) F=FUNC(X1) IF (F*FMID.GE.0.) PAUSE '函数FUNC在x1,x2处不异号' IF (F.LT.0.) THEN RTIBIS=X1 DX=X2-X1 ELSE RTBIS=X2 DX=X1-X2 ENDIF DO 11 J=1, JMAX DX=DX*0.5 XMID=RTBIS+DX FMID=FUNC(XMID) IF (FMID.LE.0.) RTBIS=XMID IF (ABS(DX) .LT. XACC .OR. FMID .EQ. 0.) RETURN 11 CONTINUE PAUSE '迭代次数越界' END 《实用数值计算方法》
4.2.1 FUNCTION FF(X) FF = X*X + 2.5*X + 0.5+SIN(X) END PROGRAM ROOTFIND EXTERNAL FF X1=-1.0 X2=0.0 ROOT=RTBIS(FF, X1, X2, 1.0E-5) PRINT *, '方程在(-1,0)区间内有一个根,X=', ROOT STOP END 《实用数值计算方法》
4.2.2 线性插值法(又称弦位法) f(x) x 图 4.7 Secant Method 《实用数值计算方法》
4.2.2 《实用数值计算方法》
4.2.2 《实用数值计算方法》
4.2.2 f(x) 2 3 4 x 1 图 4.8 线性插值法求根示意 《实用数值计算方法》
4.2.2 f(x) x 1 3 4 5 图 4.9 线性插值法发散示例 《实用数值计算方法》
4.2.3 Newton 法 F(x) x 图 4.10 Newton 法示意 《实用数值计算方法》
4.2.3 F(x) x 图 4.11 导数变化对算法的影响 《实用数值计算方法》
每次函数求值相当的收敛阶为: b. 求 fk' 有时工作量大,甚至不可能。 (4) 选用收敛域较大的方法(如二分法) 先进行迭代,然后再用Newton法。 --组合方法。 4.2.4 二次插值法 设 f(x)=0 的三个近似解及函数值 构造二次函数g(y)使得: 《实用数值计算方法》
4.2.4 《实用数值计算方法》
4.2.4 F(x) g(x) f(x) x 图 4.12 二次插值法求根示意 《实用数值计算方法》
4.2.4 (1) 要有三个初始值 (2) 当 。且收敛速度 是 1.84阶。(单根) 二重根的收敛阶是1.23。 (3) (4) 发生超射、越界。 表 4.1 各种插值方法的比较 《实用数值计算方法》
4.2.5 组合方法(Brent Method) 能否有一种方法综合上述方法的优 点呢?Brent 做了一些工作。 Brent 把二分法和二次插值法结合 起来。 (1)一定收敛。 (2)收敛速度至少线性。 (3)在解附近足够光滑时,收敛速度 将是 1.84 或 1.23。 有关多项式的求根还有一些特殊方法。 《实用数值计算方法》
4.3 非线性方程组及牛顿法 非线性方程组的向量形式可表示为 解法: 1. 几乎不可能用直接法 2. 线性化,迭代逼近。牛顿法 3. 最优化,求函数极小值。下降法。 例如, 求 的极小值点。 最速下降法,共轭梯度法,变尺度方法。 《实用数值计算方法》
4.3.1 牛顿法 为方便计,用二维情形来讨论。 假定(4-6)的解 作线性函数(Taylor 展开,取一阶精度) 《实用数值计算方法》
4.3.1 在 内用线性函数(4-7)代替 非线性方程组(4-6)中的f1,f2, 从而 如果在 中矩阵(称Jacobi矩阵) 非奇异,则可解出。 《实用数值计算方法》
4.3.1 《实用数值计算方法》
4.3.1 《实用数值计算方法》
4.3.1 《实用数值计算方法》
4.3.2 牛顿法的改进 改进1 带松弛因子的牛顿迭代格式改善了 对初始值近似程度的要求。 《实用数值计算方法》
4.3.2 (4-10) 中引入了松弛因子 ,有 《实用数值计算方法》
4.3.2 图 4.13 凸函数示例 《实用数值计算方法》
4.3.2 《实用数值计算方法》
4.3.2 图 4.14 0.618法搜索极小点过程 《实用数值计算方法》
4.3.2 (2) 二次插值法求一维函数极小值: 图 4.15 二次插值法进行一维极小点搜索 《实用数值计算方法》
4.3.2 改进2.带阻尼因子的牛顿迭代格式 克服了矩阵 的奇异或病态。(4-10)中 引入阻尼因子 : 的选取可以在满足(4-12)的前提下取很大值。 (1)改善对初值的要求 (2)当 =0时为牛顿法,收敛最快。 (3)为满足(4-12),实际上需要多次试算, 工作量大。 改进3.修正牛顿法 尽可能减少矩阵求逆次数。 《实用数值计算方法》
4.3.2 一种简单的办法是每次使用同一个Jacobi 矩阵的逆。 但大大影响收敛速度。 另一种办法是若干次迭代后求一个矩阵逆: 它减少了矩阵求逆,又保证了收敛。 换一个角度看,如果说它的求逆次数与 牛顿法相同(k次),则它的收敛阶为m+1。 《实用数值计算方法》
4.3.2 作为特例,取m=2: 或 迭代格式(4-15)具有3阶收敛速度。 对一维情况,Newton法 在几何上表现为m步迭代 过程保持斜率 f'(xk) 不变。 如图4.16: f(x) 0 x 图 4.16 m=2的迭代效果 《实用数值计算方法》
4.3.2 非线性代数方程组求解问题 1. Newton--Raphson 迭代法 2. 极值化求解。 问题的转化: 《实用数值计算方法》
4.4最速下降法 4.4.1 极值化 求解 的零极值点。 求解(4-16)的极值点也是一个无约束的最 优化问题。 《实用数值计算方法》
4.4.1 求解最优化问题,通常采用下降法。下降法 一般描述如下: 《实用数值计算方法》
4.4.1 下降法的迭代步骤 《实用数值计算方法》
4.4.1 最速下降法取 因此 《实用数值计算方法》
4.4.1 等高线图: f(x)=Ci f(x1,x2)=Ci 图 4.17 等高线 图 4.18 偏导数示意 《实用数值计算方法》
4.4.2讨论与改进 优点: 1. 程序简单,每步迭代计算量少,存储省。 2. 对于不太好的初始点x0,往往也能收敛。 缺点: 最速下降法是名不符实的,一般来说, 它只有线性的收敛速度。 《实用数值计算方法》
4.4.2 图 4.19 锯齿形搜索路径情况 《实用数值计算方法》
4.4.2 《实用数值计算方法》