牛顿迭代法

QwQ-OvO / 2024-11-13 / 原文

1 牛顿迭代法的作用

对于单个方程\(f(x)=0\),通过不断的迭代趋近于某一个单解,最终求出答案。但也有例外,比如出现无理数、无限循环小数等特殊情况,只能趋近,也就是结果是有限的

2 牛顿迭代法的内容

2.1 怎么迭代

\(x_1\)为你对\(x\)的猜测值,比如方程\(x^2-16=0\),你最开始猜测\(x\)\(5\),则\(x_1=5\)。通过\(x_1\)求出\(x_2\)……(一直迭代),使最终趋近于“真正的\(x\)”。

2.2 迭代的式子

\(x_{i+1}=x_i-\frac{f(x_i)}{f'(x_i)}\),这是牛顿迭代法迭代的式子,其中\(f'(x)\)是函数\(f(x)\)一阶导数

3 如何求导

3.1 第一种,单点求导数

  • 中心差分公式:\(f'(x) = \frac{f(x + h) - f(x - h)}{2h}\)
  • 后向差分公式:\(f'(x) = \frac{f(x) - f(x - h)}{h}\)
  • 前向差分公式:\(f'(x) = \frac{f(x + h) - f(x)}{h}\)

其中,中心差分公式最为精准,\(h\)是一个无限小的数,用1e-7一些极小的值代替一下。

3.2 第二种,函数求导数函数

记住以下式子。

  • 对于\(f(x)=x^n\)\(f'(x)=nx^{n-1}\)
  • 对于\(f(x)\)为常数的\(f'(x)=0\)
  • 对于\(f(x)=g_1(x)+g_2(x)\)\(f'(x)=g_1'(x)+g_2'(x)\)

基本的情况就可以解决了。

3.3 导数不存在了

啊啊啊啊~导数不存在了(发癫)!在一些情况下没有导数
趋向
导数也就是一根切线的斜率,这根切线它要是上下摆动,有无数根,还怎么求导?所以需要用左导数\(f_-'(x)\)右导数\(f_+'(x)\)进行判断。举个例子,\(f(x)=|x|\)

  • \(f'_-(0) =\lim_{h \to 0^-}\frac{f(0 + h)-f(0)}{h}=\lim_{h\to0^-}\frac{|h|-0}{h}=\lim_{h\to0^-}\frac{-h}{h}=-1\)
  • \(f'_+(0) =\lim_{h \to 0^+}\frac{f(0 + h)-f(0)}{h}=\lim_{h\to0^+}\frac{|h|-0}{h}=\lim_{h\to0^+}\frac{h}{h}=1\)

诶~左导数右导数竟然不相等,说明它的切线还有活动空间,所以它没有导数在\(x=0\)的位置,否则若相等则有导数。