#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))