假设我想以g(x)=x^2*的形式打印方程g(x。。。。。。。。
我该怎么做?这是我第一次使用python
import numpy as np
import matplotlib.pyplot as plt
import math
from sympy.mpmath import *
f = lambda x: ((x^2)*math.exp(-x))
dfdx = lambda x: diff(f,x)
d2fdx2 = lambda x: diff(dfdx,x)
g = lambda x: ((math.exp(x)/math.factorial(2))*d2fdx2)
print(g)
(编辑)我得到的输出是
0x0671C198 处的函数lambda
首先,去掉所有不必要的导入,坚持你真正需要的。符号数学是sympy
的用途,请查看相关文档。
在症状中,您必须首先定义symbols
import sympy
x = symbols('x')
现在,您将使用符号x
来使用sympy
模块中的内置运算符和函数构造表达式。请注意,**
是幂运算,^
是逻辑异或运算。
f = x ** 2 * sympy.exp(-x)
dfdx = sympy.diff(f, x)
d2fdx2 = sympy.diff(f, x, x)
g = sympy.exp(x) / sympy.factorial(2) * d2fdx2
当你在交互式解释器中编写g
时,它会按照你想要的方式编写表达式。这里不能显示,但至少我可以做到:
>>> print(g)
x**2/2 - 2*x + 1
你不能对math
、sympy.mpmath
和numpy
模块为所欲为,因为它们是为数字评估而存在的——它们需要数字,并给你数字。
如果您稍后想要评估给定值x
的表达式,您可以执行
val_at_point = g.evalf(subs={x: 1.5})
其中CCD_ 12是字典。
或者,您可以将g
转换为python lambda函数:
fun_g = sympy.lambdify(x, g)
val_at_point = fun_g(1.5)
如果你在数学课上这样做,你可能无论如何都想在解释器中工作,在这种情况下,你可以从编写开始
>>> from sympy import *
以便您可以跳过上面代码示例中的所有sympy.
内容。我把它们留在那里只是为了显示符号的来源。