首页 > 解决方案 > 求导数的二阶精确方案

问题描述

所以我正在做一个课堂项目,并且必须绘制f(x)=x*arctan(x)使用二阶精确方案的导数的数值近似值, f(xi) ≈(f(xi+1) − f(xi−1))/2h 哦,还要绘制f(x)

到目前为止,我已经这样做了:

from numpy import *
from matplotlib.pylab import *
a=0
b=2
n=100
h=(b-a)/n
def f(x):
    f=x*arctan(x)
    return(f)
def dydx(x):
    d=(f(x+h)-f(x-h))/2*h
    return(d)
x=linspace(a,b,n+1)
plot(x,f(x),'b')
plot(x,dydx(x),'r--')

我收到的问题是,我的导数图表的值明显低于应有的值(即限制在0.0006而不是1.6) - 我该如何解决这个问题?

标签: python

解决方案


当谈到数学问题时,我不是最亮的灯,所以我可能会误解你的问题,但问题可能不是你只是忘记将 2*h 放在括号内吗?

所以代替:d=(f(x+h)-f(x-h))/2*h 尝试:d=(f(x+h)-f(x-h))/(2*h)


推荐阅读