Scipy Odeint

Scipy Odeint
Ten artykuł został zaprojektowany wokół funkcji ODEINT biblioteki Scipy. W tym przewodniku dowiemy się, jak rozwiązać równania różniczkowe za pomocą funkcji ODEININT dostarczonej przez Python's Scipy Library. Język programowania w Pythonie ma wiele prostych i przydatnych funkcji, które sprawiają, że życie programistów nie są nieskomplikowane. Deweloperzy stają się ekspertami w dziedzinie programowania za pomocą wbudowanych funkcji i bezpłatnych bibliotek języka programowania Python. W tym artykule zbadamy funkcję ODEINT biblioteki Scipy, aby pomóc Ci nauczyć się wdrażać funkcję ODEINT w programie Python.

Co to jest Odeint?

Odeint jest skrótem zwykłej integracji równań różniczkowych i jest używany do rozwiązania różnych rodzajów równań różniczkowych. Jest to kompletny pakiet, który zawiera zbiór zaawansowanych algorytmów numerycznych, które są używane do rozwiązania zwykłych równań różniczkowych i problemów z wartością początkową. Odnosi się do rozwiązywania równań różniczkowych, które obejmują pochodne bez częściowej pochodnej.

W tym samouczku wywołamy bibliotekę Scipy, aby korzystać z funkcji ODEINIT i sprawi, że nauczysz się i zrozumiesz, jak zaimplementować funkcję ODEINT w programie Python. Zrozumiemy najpierw składnię funkcji ODEINT. Następnie przejdziemy do sekcji przykładowej i nauczymy się wdrażać funkcję ODEINT.

Składnia funkcji ODEINT

Funkcja OdeInt integruje i rozwiązuje system zwykłych równań różniczkowych za pomocą pakietu biblioteki Odepack Fortran, ISODA. Składnia funkcji ODEINT jest następująca:

Funkcja ODEININT ma trzy wymagane parametry i listę opcjonalnych parametrów. Funkcje y i t są wymaganymi parametrami, które należy podać do wdrożenia funkcji ODEININT dla podanej funkcji. *Args reprezentuje listę opcjonalnych parametrów, które można dostarczyć i użyć zgodnie z wymaganiem użytkownika.

Jednak parametr „funkcji” służy do wywołania funkcji, która oblicza pochodną parametru „Yo” przy parametrze „T”. Parametr „Yo” jest typem tablicy, która określa warunki początkowe tablicy „Y”. Parametr „t” służy do zdefiniowania sekwencji punktów czasowych w tablicy, która jest używana do rozwiązania dla tablicy „y”.

Funkcja OdeInt zwraca tablicę, która zawiera wartość „y” na raz „t” z początkową wartością „yo”. Zwraca również słownik zawierający dodatkowe informacje o wyjściach. Teraz zademontujmy kilka przykładów, aby pokazać, jak zaimplementować funkcję ODEINT w programie Python.

Przykład 1:

Zacznijmy od prostego i bardzo podstawowego przykładu. Tutaj poprowadzimy Cię, w jaki sposób możesz użyć funkcji ODEINT w programie Python i przekazać wymagane parametry. Rozważ następujący przykład przykładowy kod dla twojego zrozumienia:

importować Numpy jako NP
od Scipy.Zintegruj import OdeInt
def Dydt (y, t):
dy = y + 2*t
powrót DY
Y0 = 4
t = np.Linspace (0,4)
y = Odeint (Dydt, y0, t)
Drukuj (y)

Używamy dwóch bibliotek w tym programie - biblioteki Numpy i Scipy. Biblioteka Numpy pozwala nam korzystać z funkcji Linspace (). Scipy pozwala nam korzystać z funkcji ODEINT (). Po wywołaniu wszystkich bibliotek deklarujemy funkcję „DYDT”, która jest używana do znalezienia pochodnej funkcji przez funkcję ODEINT (). Wartość początkowa jest ustawiona na y0 = 4, a czas jest ustawiony na Linspace (0, 4). Przekazując wszystkie te wartości i nazwy funkcji do funkcji ODEINT (), implementujemy funkcję ODEINT w programie Python. Wyjście jest następujące:

Przykład 2:

Aby zademonstrować dane wyjściowe funkcji ODEINT i dalsze wyjaśnienie, w jaki sposób działa ona w aplikacji Python, wcześniej wydrukowaliśmy całą tablicę. Teraz narysujmy wykres tych samych danych, aby dać ci jasny obraz tego, jak wygląda wyjście funkcji ODEINT. Rozważ następujący przykładowy kod, który pokazuje wyjście funkcji ODEINT na wykresie:

importować Numpy jako NP
importować matplotlib.Pyplot as Plt
od Scipy.Zintegruj import OdeInt
def Dydt (y, t):
dy = y + 2*t
powrót DY
Y0 = 4
t = np.Linspace (0,4)
y = Odeint (Dydt, y0, t)
plt.fabuła (t, y)
plt.xlabel („czas”)
plt.ylabel („y”)
plt.pokazywać()

Program jest dokładnie taki sam, który jest używany w poprzednim przykładzie. Dodano tutaj tylko kod wykreślania danych wyjściowych na wykresie. Biblioteka Matplotlib służy do pokazania wyjścia na wykresie. Funkcja wykresu biblioteki MATPlotlib jest używana do generowania wykresu danych. Powstały wykres funkcji ODEINT jest następujący:

Przykład 3:

Nauczyliśmy się teraz, w jaki sposób funkcja OdeInt jest wdrażana w programie Python i jak jest wykreślona na wykresie. Zobaczmy kolejny przykład funkcji ODEININT i rozwiązajmy z nią inne równanie różniczkowe. Rozważ następujący przykładowy kod. Tutaj używamy następującego równania różniczkowego:

To równanie jest rozwiązane przez funkcję ODEINT w poniższym przykładzie:

importować Numpy jako NP
importować matplotlib.Pyplot as Plt
od Scipy.Zintegruj import OdeInt
def Dydt (y, t):
dy = 2*np.exp (t) - 13*y
powrót DY
Y0 = 2
t = np.Linspace (0,4)
y = Odeint (Dydt, y0, t)
plt.fabuła (t, y)
plt.xlabel („czas”)
plt.ylabel („y”)
plt.pokazywać()

Ponownie, trzy biblioteki są wywoływane w programie - Scipy, Numpy i Matplotlib - aby zaimportować odpowiednio funkcje ODEINT (), Linspace () i PTTS (). Funkcja DYDT jest zadeklarowana poprzez dostarczenie równania różniczkowego, o którym wspomniano wcześniej. Wartość początkowa i powiązany czas dla każdego elementu są zdefiniowane. Wszystkie zdefiniowane parametry są przekazywane do funkcji ODEINT (). Za pomocą modułu PLT z biblioteki MATPlotlib wynik funkcji ODEINT () jest wykreślany na wykresie. Zobaczmy tutaj reprezentację graficzną:

Przykład 4:

Pokazajmy trochę złożonego praktycznego przykładu, aby pokazać, że OdeInt może łatwo obsługiwać różne typy danych. W poprzednim przykładzie zadeklarowaliśmy tylko jedną wartość początkową dla funkcji. Tutaj używamy wielu warunków początkowych dla równania różniczkowego. Ma to pomóc w nauce radzenia sobie z równaniem różniczkowym, gdy ma ono wiele początkowych warunków. Rozważ następujący przykładowy kod:

importować Numpy jako NP
importować matplotlib.Pyplot as Plt
od Scipy.Zintegruj import OdeInt
def Dydt (y, t):
dy = (1.1 - y) / (1.45 - y)) - (y / (0.02 + y))
powrót DY
Y0 = [1, 2, 4]
t = np.Linspace (1, 10)
y = Odeint (Dydt, y0, t)
plt.fabuła (t, y)
plt.xlabel („czas”)
plt.ylabel („y”)
plt.pokazywać()

Zauważ, że biblioteki i inny proces deklaracji danych są takie same jak w poprzednich przykładach, tylko warunki początkowe są dostarczane jako tablica. Wykres wyjściowy funkcji ODEINT z wieloma początkowymi warunkami jest następujący:

Wniosek

Ten przewodnik miał na celu wyjaśnienie, czym jest OdeInt i jak można go wdrożyć w programie Python. Odeint oznacza zwykłą integrację równań różniczkowych. Służy przede wszystkim do rozwiązania równań różniczkowych. Przykładowe programy wykazały, jak zaimplementować funkcję ODEINT i jak wykreślić wynik funkcji ODEINT na wykresie. Ponadto przykłady pokazały również, jak rozwiązać równanie różniczkowe z wieloma warunkami początkowymi.