敏感性
dx/dy=导数的倒数
所以倒数绝对值越小,问题越敏感,
二分法
中学学过
不动点法
x=g(x)则 (x,g(x)) 为不动点
收敛的条件是在不动点处,导数小于1,如果二阶导等于零收敛最快
比如
方程:f(x) = x² - x - 2 = 0,根是 x=2 和 x=-1
四个等价形式 g(x):
-
g(x) = x² - 2
-
g'(2) = 4 > 1,发散
-
-
g(x) = √(x+2)
-
g'(2) = 1/4 < 1,线性收敛,从一侧接近
-
-
g(x) = 1 + 2/x
-
g'(2) = -1/2 < 1,线性收敛,左右交替接近
-
-
g(x) = (x²+2)/(2x-1)
-
g'(2) = 0,二次收敛(更快)
-
关键:|g'(x*)| < 1 才收敛,越小收敛越快;=0 时二次收敛。
牛顿迭代法

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

反二次插值法

输入与初始化
-
已知三个近似解:
a,b,c -
对应的函数值:
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 替换 a, b, c 中离 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)
1万+

被折叠的 条评论
为什么被折叠?



