在Python中打印整个方程(包括变量)

时间:2015-10-31 19:00:23

标签: 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)

(编辑)输出即时取消

函数lambda在0x0671C198

1 个答案:

答案 0 :(得分:4)

首先丢弃所有不必要的进口并坚持你真正需要的东西。符号数学是()的作用,因此请查看文档。

您必须首先定义sympy

symbols

现在,您将使用符号import sympy x = symbols('x') 使用x模块中的内置运算符和函数构造表达式。请注意,sympy是取幂,**是逻辑xor。

^

当您在交互式解释器中编写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.mpmath模块执行您想要的数字评估 - 他们需要数字并为您提供数字。

如果您以后想要为numpy的给定值评估表达式,则可以

x

其中val_at_point = g.evalf(subs={x: 1.5}) 是字典。

或者你可以将subs变成python lambda函数:

g

如果你为数学课做这个,你可能想要在翻译中工作,在这种情况下,你可以从写作开始

fun_g = sympy.lambdify(x, g)
val_at_point = fun_g(1.5)

这样您就可以跳过上述代码示例中的所有>>> from sympy import * 内容。我把它们留在那里只是为了显示符号的来源。