SymPy 是一个用于符号数学的 Python 库,它可以进行各种符号计算,如微积分、矩阵、求解器等。在 SymPy 中,有一个函数类,用于表示数学函数,如三角函数、指数函数、对数函数等。函数类可以用来定义自己的函数,或者对已有的函数进行操作,如求导、求极限、求级数等。
要使用 SymPy 的函数类,首先需要导入 SymPy 模块,以及一些常用的符号和函数:
from sympy import *from sympy.abc import x, y, z # 导入符号 x, y, zfrom 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_subsg_simplify = g_subs.simplify() # 化简函数 g_subsprint(g) # 打印函数 g(x, y)print(g_subs) # 打印替换后的函数 g_subsprint(g_expand) # 打印展开后的函数 g_expandprint(g_simplify) # 打印化简后的函数 g_simplify输出结果为:
exp(x + y)exp(log(z) + z)z*exp(z)z*exp(z)