数值计算-5-非线性方程求根

敏感性

dx/dy=导数的倒数

所以倒数绝对值越小,问题越敏感,

二分法

中学学过

不动点法

x=g(x)则 (x,g(x)) 为不动点

收敛的条件是在不动点处,导数小于1,如果二阶导等于零收敛最快

比如

方程:f(x) = x² - x - 2 = 0,根是 x=2 和 x=-1

四个等价形式 g(x):

  1. g(x) = x² - 2

    • g'(2) = 4 > 1,发散

  2. g(x) = √(x+2)

    • g'(2) = 1/4 < 1,线性收敛,从一侧接近

  3. g(x) = 1 + 2/x

    • g'(2) = -1/2 < 1,线性收敛,左右交替接近

  4. g(x) = (x²+2)/(2x-1)

    • g'(2) = 0,二次收敛(更快)

关键:|g'(x*)| < 1 才收敛,越小收敛越快;=0 时二次收敛。

牛顿迭代法

但是对导数连续性要求很高,计算量大

割线法

反二次插值法

输入与初始化
  • 已知三个近似解:abc

  • 对应的函数值:fa = f(a)fb = f(b)fc = f(c)

2. 计算中间变量

u = fb / fc
v = fb / fa  
w = fa / fc

p = v * w * u - w * c - b * (1 - u) * (b - a)
q = (w - 1) * (u - 1) * (v - 1)

new_estimate = b + p / q

用 new_estimate 替换 abc 中离 new_estimate 最远的点,保持三个点的顺序。

重复操作

牛顿下山法

雅各比矩阵

有f的所有一阶偏导数构成

    [ ∂f₁/∂x₁  ∂f₁/∂x₂  ...  ∂f₁/∂xₙ ]
J = [ ∂f₂/∂x₁  ∂f₂/∂x₂  ...  ∂f₂/∂xₙ ]
    [   ...       ...    ...    ...   ]
    [ ∂fₘ/∂x₁  ∂fₘ/∂x₂  ...  ∂fₘ/∂xₙ ]

非线性方程组的求解方法总结

不动点

对于

f₁(x₁,x₂,…,xₙ) = 0
f₂(x₁,x₂,…,xₙ) = 0
...
fₙ(x₁,x₂,…,xₙ) = 0

找到不动点

x₁ = g₁(x₁,x₂,…,xₙ)
x₂ = g₂(x₁,x₂,…,xₙ)
...
xₙ = gₙ(x₁,x₂,…,xₙ)

迭代格式

x₁^(k+1) = g₁(x₁^k,x₂^k,…,xₙ^k)
x₂^(k+1) = g₂(x₁^k,x₂^k,…,xₙ^k)
...
xₙ^(k+1) = gₙ(x₁^k,x₂^k,…,xₙ^k)

牛顿法

对可微函数 f:ℝⁿ → ℝⁿ,在任一点 x 处作一阶泰勒展开:
f(x+s) ≈ f(x) + J_f(x)s

当 x = x^k 时,解 f(x^k) + J_f(x^k)s = 0

迭代格式

x^(k+1) = x^k + s = x^k - [J_f(x^k)]⁻¹ f(x^k)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值