跳到主要内容

非线性系统

1. 求根问题

对于 f:RRf:\mathbb{R}\to\mathbb{R},找到 xx^* 使得 f(x)=0f(x^*)=0

xx^* 也可能是多变量

解法: 使用二分法:

  1. 对于连续函数 f(x)f(x),找到 l,rRl,r\in \mathbb{R} 使得 f(l)f(r)<0f(l)f(r)<0
  2. 计算 c=l+r2c=\frac {l+r}{2}, 若 f(c)=0f(c)=0, 结束
  3. f(c)f(l)<0f(c)f(l)<0,采用 cc 作为新的 rr;否则,采用 cc 作为新的 ll
  4. rl<ε\lvert r-l\rvert < \varepsilon 后,cc 可以视为 xx^*

2. 求不动点问题

不动点问题 f(x)=xf(x)=x 可以视为 f(x)x=0f(x)-x=0 的求根问题。

300

解法: 迭代法:令 xk+1=f(xk)x_{k+1}=f(x_k),直到 xkxk+1<ε\lvert x_k-x_{k+1}\rvert<\varepsilon前提条件:ff 满足 Lipschitz 条件

由于迭代法往往是按照平方收敛的,所以其收敛速度往往更快。

3. 牛顿法

解方程 f(x)=0f(x)=0

可以使用牛顿法:

xk+1=xkf(xk)f(xk)x_{k+1}=x_k-\frac{f(x_k)}{f'(x_k)}

要求: ffxkx_k 附近是可微的,且 f(x)0f'(x^*)\neq 0

4. Secant 法

解方程 f(x)=0f(x)=0

可以使用 Secant 法:

xk+1=xkf(xk)(xkxk1)f(xk)f(xk1)x_{k+1}=x_k-\frac{f(x_k)(x_k-x_{k-1})}{f(x_k)-f(x_{k-1})}