python - 求导数的二阶精确方案
问题描述
所以我正在做一个课堂项目,并且必须绘制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
) - 我该如何解决这个问题?
解决方案
当谈到数学问题时,我不是最亮的灯,所以我可能会误解你的问题,但问题可能不是你只是忘记将 2*h 放在括号内吗?
所以代替:d=(f(x+h)-f(x-h))/2*h
尝试:d=(f(x+h)-f(x-h))/(2*h)
推荐阅读
- python - 研究一种使用 python 将字符串转换为日期的方法
- python-3.x - setattr 不遵守属性命名约定
- kubernetes - Kubernetes - 使用 kubectl 显示当前 pod 与容量
- php - Laravel:isDirty() 总是返回 false
- android - 片段根视图和/或数据绑定变量泄漏
- dynamics-business-central - 具有从相关实体到源表的属性的业务中心 ListPart
- c - 执行数据结构“堆栈”期间执行循环中的逻辑错误
- git - 尝试使用 git2-rs / libgit2 推送到远程时出现“请求失败,状态码:401”错误
- css - 如何在不破坏设计的情况下向上移动色带
- python - 取字符串中的重复子串