用Python打印整个方程式(包括变量)



假设我想以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

你不能对mathsympy.mpmathnumpy模块为所欲为,因为它们是为数字评估而存在的——它们需要数字,并给你数字。

如果您稍后想要评估给定值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.内容。我把它们留在那里只是为了显示符号的来源。

最新更新