Функция Sin не работает с дифференциальным уравнением

#python #numpy #math #sympy #differential-equations

#python #numpy #математика #симпатия #дифференциальные уравнения

Вопрос:

Я пытаюсь получить дифференциальное уравнение y ‘= sin (x), однако мое дифференциальное уравнение больше не будет выполняться, поскольку я получаю сообщение об ошибке «не удается преобразовать выражение в float». Если я использую numpy с np.sin(x), я получаю другую ошибку «цикл ufunc не поддерживает аргумент 0 типа Symbol, который не имеет вызываемого метода 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))
  

Если кто-нибудь может показать мне, где я ошибаюсь, это было бы большой помощью, поскольку это кажется довольно простым….

Комментарии:

1. Не пытайтесь использовать numpy с sympy — по крайней мере, до тех пор, пока вы не научитесь хорошо работать с обоими по отдельности.

Ответ №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))