Как я могу получить константу из ODE в Python? - PullRequest
1 голос
/ 13 октября 2019

Моя задача - вычислить константу из ODE. Итак, я не хочу строить график функции, я просто хочу получить результат дифференциального уравнения, и после этого мне нужно вычислить c на основе этого предположения: v0 = 120, когда t0 = 0. Я начал осуществлять с помощью модуля sympy, и я успешно получаю следующий результат: [120.000000000000 -2.23606797749979 / tanh (C1)] Но после этого я понятия не имею, как я могу получить c1. Возможно ли это?

import inline as inline
import sympy as sp
import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt
from sympy import *
from sympy import lambdify
t=Symbol('t')
v = map(Function, 'v')
v=Function('v')
k=2
g=10
i=dsolve(Eq( Derivative(v(t), t)+k*v(t)**2, g), v(t))
j=i.subs(v(t),120).subs(t,0).evalf()
print(i)
print(j)
h=j.args
k=np.array(h)

1 Ответ

1 голос
/ 13 октября 2019

Если вы хотите, чтобы значение C1 соответствовало значениям данных t и v(t), вы могли бы сначала найти его, а затем заменить на известные значения:

>>> C1 = [_ for _ in i.free_symbols if _.name == 'C1'][0]
>>> vals = solve(i, C1)
>>> [_.subs(v(t),120).subs(t,0).n(2) for _ in vals]
[-0.019 + 3.1*I, -0.019]
...