Построение ODE, изоклин с использованием Python

Я ищу пакет Python, который позволит мне построить что-то похожее на апплет Java, показанный ниже:

http://math.mit.edu/mathlets/mathlets/isoclines/

Кто-нибудь знает какие-либо пакеты для построения графиков ODE для этого? Я могу написать что-то с нуля, используя Numpy, Matplotlib, но сначала я хотел поспрашивать.

Спасибо,


person BBSysDyn    schedule 16.06.2011    source источник
comment
Будет ли колчан matplotlib делать что-то подобное? matplotlib.sourceforge.net/api/ и matplotlib.sourceforge.net/examples/pylab_examples/   -  person Thomas K    schedule 16.06.2011
comment
да, колчан, по-видимому, может помочь здесь, я тоже видел несколько примеров для него.   -  person BBSysDyn    schedule 16.06.2011


Ответы (3)


Мудрец сделает это:

x,y = var("x y")
eq = y^3-3*y-x
p = implicit_plot(eq==0,(x,-4,4),(y,-4,4))
p += plot_slope_field(eq, (x,-4,4),(y,-4,4), headlength=1e-8)
p.show(aspect_ratio=1)

хотя это просто обертка функций matplotlib для графики. (Честно говоря, оболочка matplotlib еще не так хороша, как могла бы быть, что часто вызывает у меня головную боль.)

пример

person DSM    schedule 16.06.2011
comment
я посмотрел на sage, исходный код огромен, поддерживает ли он python из коробки? код выше кода Python? - person BBSysDyn; 16.06.2011
comment
Да, он довольно большой: это набор математических инструментов и библиотек, завернутый в Python. Но если все, что вы делаете, является числовым, и вам не нужны символы, то, вероятно, проще всего просто использовать matplotlib напрямую (в конце концов, это то, что Sage делает за кулисами). - person DSM; 16.06.2011
comment
Вы можете использовать sage в Интернете, не устанавливая его, если хотите: sagenb.org - person Thomas K; 16.06.2011
comment
спасибо за информацию, но я занялся этим, поэтому у меня будет локальный код вместо матлетов, которые являются апплетами. - person BBSysDyn; 16.06.2011

Я написал что-то вроде этого, кажется, это работает для y'=y^2-x

from pylab import *
xmax = 4.0
xmin = -xmax
D = 20
ymax = 4.0
ymin = -ymax
x = linspace(xmin, xmax, D)
y = linspace(ymin, ymax, D)
X, Y = meshgrid(x, y)
deg = arctan(Y**2 - X)
QP = quiver(X,Y,cos(deg),sin(deg))
show()

введите здесь описание изображения

person BBSysDyn    schedule 16.06.2011

В этих ответах нет возможности изменить параметры с помощью инструмента перетаскивания. Если вам нужна эта опция, то эти два примера динамических систем покажут вам, как это сделать. Они написаны на Python Sage. Просто подумайте об этом как о Python с множеством готовых функций для математики.


Пример 1 Sage – фазовый график.
Пример 2 от Sage — график траектории.

person Sav-econ    schedule 02.03.2014