【问题标题】:Sin function not working with Differential EquationSin 函数不适用于微分方程
【发布时间】:2020-09-30 20:58:42
【问题描述】:

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

import sympy as sym
from math import *

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

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

【问题讨论】:

  • 不要尝试将 numpysympy 一起使用 - 至少在您分别擅长两者之前不要尝试。

标签: python numpy math sympy differential-equations


【解决方案1】:

您正在调用 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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 2014-10-17
    • 1970-01-01
    相关资源
    最近更新 更多