2016-12-14 4 views
-1

Я новичок в Python, так что в это время я могу только очень простые проблемы.Дифференциальное уравнение третьего порядка в python

Как решить ODE, как это в Python?

enter image description here

+4

Использование '' scipy.integrate.odeint' или scipy.integrate.ode' , Оба пакета python имеют хорошие учебные страницы. После этого добавьте код, который вы попытались, отредактировав вопрос. Это показывает, насколько вы все это понимаете, тогда разумный ответ возможен. – LutzL

+0

«Я могу только очень простые проблемы». Я должен знать: считаете ли вы ODE «очень простой проблемой»? Если нет, то какую помощь вы ожидаете от нас? и если да, то что на самом деле сложно для вас? –

ответ

0

Ваше решение может выглядеть следующим образом (если удалить все связанные сюжетные линии, это довольно короткий)

import numpy as np 
from scipy.integrate import odeint 
import matplotlib 
matplotlib.use('Qt4Agg') 
import matplotlib.pyplot as pl 

# define the ODE as a first order system 
def func(y,x): 
    return [ 
     y[1], 
     y[2], 
     (7*x**1.5 - 5*x**2*y[2]-2*x*y[1] + 2*y[0])/x**3 
     ]  

# initial values 
y0=[ 10.6, -3.6, 31.2] 
# points at which the solution value is requested 
x = np.linspace(1,10,501) 
# numerical integration 
y=odeint(func, y0, x) 
# y[-1,:] contains the value at x=10 
print "[ y(10), y'(10), y''(10) ] = ", y[-1,:] 

# plot the solution with subplots for each component 
fig=pl.figure() 
ax=fig.add_subplot(311) 
ax.plot(x, y[:,0]) 
ax=fig.add_subplot(312) 
ax.plot(x, y[:,1]) 
ax=fig.add_subplot(313) 
ax.plot(x, y[:,2]) 
pl.show() 
Смежные вопросы