符号数学的Python库——SymPy模块
SymPy 是一个用于符号数学的 Python 库,它可以进行各种符号计算,如微积分、矩阵、求解器等。在 SymPy 中,有一个函数类,用于表示数学函数,如三角函数、指数函数、对数函数等。函数类可以用来定义自己的函数,或者对已有的函数进行操作,如求导、求极限、求级数等。
要使用 SymPy 的函数类,首先需要导入 SymPy 模块,以及一些常用的符号和函数:
from sympy import *
from sympy.abc import x, y, z # 导入符号 x, y, z
from sympy.functions import sin, cos, tan, exp, log # 导入函数 sin, cos, tan, exp, log
然后,可以用函数类来创建自己的函数,或者对已有的函数进行操作。例如,可以定义一个函数 f(x) = sin(x) + cos(x),并求它的导数和极限:
f = sin(x) + cos(x) # 定义函数 f(x)
f_prime = f.diff(x) # 求函数 f(x) 的导数
f_limit = f.limit(x, 0) # 求函数 f(x) 在 x 趋于 0 时的极限
print(f) # 打印函数 f(x)
print(f_prime) # 打印函数 f(x) 的导数
print(f_limit) # 打印函数 f(x) 在 x 趋于 0 时的极限
输出结果为:
sin(x) + cos(x)
-sin(x) + cos(x)
sqrt(2)/2
还可以用函数类来定义多元函数,或者对函数进行替换、展开、化简等操作。例如,我们可以定义一个函数 g(x, y) = exp(x + y),并用 x = log(z) 和 y = z 来替换它,然后展开和化简:
g = exp(x + y) # 定义函数 g(x, y)
g_subs = g.subs({x: log(z), y: z}) # 用 x = log(z) 和 y = z 来替换函数 g(x, y)
g_expand = g_subs.expand() # 展开函数 g_subs
g_simplify = g_subs.simplify() # 化简函数 g_subs
print(g) # 打印函数 g(x, y)
print(g_subs) # 打印替换后的函数 g_subs
print(g_expand) # 打印展开后的函数 g_expand
print(g_simplify) # 打印化简后的函数 g_simplify
输出结果为:
exp(x + y)
exp(log(z) + z)
z*exp(z)
z*exp(z)