Python使用SymPy构建微分方程调用numpy.exp出现Mul错误如何解决
错误原因
你的代码处于SymPy符号运算场景,变量t是SymPy定义的符号对象,不是可被Numpy处理的数值类型。np.exp是Numpy提供的数值计算函数,仅支持数值、数组类输入,无法识别、处理SymPy符号类型的输入,因此触发类型错误。
解决方法
将符号运算场景下的指数函数调用替换为SymPy自带的exp函数即可,步骤如下:
- 导入SymPy的
exp函数 - 替换原来的
np.exp调用为SymPy的exp
修改后的完整可运行代码:
import numpy as np from sympy import Symbol, Function, Derivative, Eq, exp y = Function("y") t = Symbol('t') dy2 = Derivative(y(t), t, 2) dy1 = 3 * Derivative(y(t), t) eq1 = Eq(dy2 + dy1 - 4 * y(t), 2 * exp(-4*t)) eq1
补充说明:如果后续需要将构建好的符号方程转换为可进行数值计算的函数,可以使用SymPy提供的lambdify方法对接Numpy接口,不要在符号定义阶段混用Numpy的数学函数。
内容的提问来源于stack exchange,提问作者Tatanik501
相关产品推荐
相关产品推荐

