python - 如何写函数的导数
问题描述
我必须用 python 写一个方程。等式是计算和f(x)=(3+2x)e-x
计算位置,然后将其积分。对于这个问题,我尝试了 python 中的程序f'(x)
x=2
f'(x)=limit(i->0){[f(x+i)-f(x-i)]/2i}
i= 10^-n
n=2, 3, 4
import math
from math import exp
import sympy as sp
x = sp.Symbol('x')
sp.diff((3+2*x)*math.exp(-x),x)
from scipy.misc import derivative
def f(x):
return (3+2*x)*math.exp(-x)
def d(x):
return derivative (f,x)
def d(x):
h=1./1000.
rise=f(x+h)-f(x-h)
run=2*h
slop = rise/run
return slop
def integral(startingx, endingx, number of rectangles):
width = (endingx-startingx)/number of rectangles
runningsum = 0
for i in range(number of rectangles):
height = f(startingx + i*width)
area= height*width
runningSum += area
return runningSum
print (f)
print (derivative(f,2))
print (integral)
解决方案
以下 sympy 代码象征性地计算导数和积分。请注意,您不能在符号计算中使用 Python 数学库或其他库(如 scipy 和 numpy)中的函数。lambdify()
如果您需要生成用于数值计算的函数,Sympy 有一个函数。Sympy 的subs
命令可以用特定值替换变量。simplify()
以更简单的形式编写公式可能很有用。
import sympy as sp
x = sp.Symbol('x')
def f(x):
return (3+2*x)*sp.exp(-x)
def d(x):
return sp.diff(f(x), x)
def derivative_via_formula(x, eps):
return (f(x + eps) - f(x - eps)) / (2 * eps)
print ("f(x):", f(x))
print ("derivative:", d(x).simplify())
print ("derivative at x=2 :", d(x).subs(x, 2).simplify())
print ("derivative at x=2 evaluated:", d(x).subs(x, 2).evalf())
print ("the integral of f(x):", sp.integrate(f(x)).simplify())
for n in range(2,5):
eps = 10**(-n)
print("derivative_via_formula, eps=10^-%d:" % n, derivative_via_formula(2, eps))
输出:
f(x): (2*x + 3)*exp(-x)
derivative: -(2*x + 1)*exp(-x)
derivative at x=2 : -5*exp(-2)
derivative at x=2 evaluated: -0.676676416183063
the integral of f(x): -(2*x + 5)*exp(-x)
derivative_via_formula, eps=10^-2: -0.676678671737280
derivative_via_formula, eps=10^-3: -0.676676438738810
derivative_via_formula, eps=10^-4: -0.676676416409006
推荐阅读
- angular - 如何在角度7中将值绑定到角度材料自动完成
- spring-boot - 如何将 redis 连接到 Spring Boot?
- android - 带有圆角的 Android CalendarView 仍然给我一个方形的阴影
- javascript - 将函数传递给子组件
- php - PHP:不在 foreach 内循环
- c# - 为什么我的测试在第二种情况下运行不成功
- performance - 可以由我们的软件安装和使用的防崩溃和高性能键值存储
- javascript - 图像未根据 IF 语句显示
- mysql - 为什么我导入 mysqldump 文件时我的所有程序都运行?
- python - Python - 来自两个列表的结果,其中包含一个运算符列表