数值分析-求微分
中点公式
求微分一般是利用微分的定义
f'(x) = lim e->0 ( f(x+e) - f(x) ) / e
但是由于f(x)可能会有误差
所以我们使用中点公式
G(x) = ( f(x + h) - f(x - h) ) / 2h
误差分析
将f(a)按照泰勒多项式展开可得、
f(a+h) = f(a) + h*f'(a) + ( h2 / 2! ) * f''(a) + ( h3 / 3! ) * f'''(a) + .....
f(a-h) = f(a) - h*f'(a) + ( h2 / 2! ) * f''(a) - ( h3 / 3! ) * f'''(a) + .....
带入得
G(a) = f'(a) + ( h3 / 3! ) * f'''(a) + .....
| f(a) - G(a) | <= ( h2 / 3! ) * M
M >= f'''(x) x 属于 [x-h, x+h]
设f(a+h)有舍入误差e1 f(a-h)有舍入误差e2
导数的舍入误差为 ( |e1| + |e2| )/ 2h = e / h
总误差为:
E = ( h2 / 3! ) * M + e/ h
解得当h = 3√ ̄(3e/M)时 E最小
M以max f'''(x) x属于[a-0.1, a+0.1] 来近似