Sin 函数不适用于微分方程

Sin function not working with Differential Equation

我正在尝试获取微分方程 y'=sin(x),但是我的微分方程不会 运行 进一步,因为我收到错误“无法将表达式转换为浮点数”。如果我将 numpy 与 np.sin(x) 一起使用,我会收到另一个错误“ufunc 循环不支持没有可调用 sin 方法的 Symbol 类型的参数 0”。这是代码:

import sympy as sym
from math import *

x = sym.symbols('x')
y = sym.Function('y')
diffeq = sym.Eq(y(x).diff(x), sin(x))

如果有人能告诉我我哪里出错了,那将是一个很大的帮助,因为它看起来很简单....

您调用 sin() 时使用了它不支持的参数。 math.sin() 必须将数值作为其唯一参数。

我想解决这个问题,你只需要传递函数的名称而不是调用它:

diffeq = sym.Eq(y(x).diff(x), sin)

否则,您需要使用 sym.sin 而不是 math.sin:

diffeq = sym.Eq(y(x).diff(x), sym.sin(x))