Scipy optymalizuj root

Scipy optymalizuj root

Python to obiektowy, ustrukturyzowany i funkcjonalny język komputerowy. Jego aplikacja nie ogranicza się tylko do określonych typów, co czyni go językiem ogólnym. Jest to dobrze znany język programowania i oferuje różnorodne biblioteki do pisania różnych programów w tym języku. Skrypt tego języka jest również podobny do języka angielskiego. Z tego faktu Python ma zasługę bycia przyjaznym dla początkującym językiem programowania dla zastosowań takich jak przetwarzanie naukowe i techniczne, integracja, sygnał i przetwarzanie obrazu oraz interpolacja biblioteki Python, która jest „scipy”, który zajmuje się wszystkimi takie konkretne funkcje.

SCIPY ma atrybut funkcji o nazwie „Optymalizuj. źródło ()". Ta funkcja zawiera optymalizatory. Optimisery reprezentują zestaw tych funkcji lub procedury, które zmniejszają ostateczną wartość/wyjście funkcji lub pierwiastek tej funkcji do najmniejszej możliwej wartości.

Procedura:

Procedura tego artykułu wykonuje kilka ważnych kroków. Przede wszystkim dowiemy się o „Optymalizowaniu. root () ”funkcja. Następnie dowiemy się, jakie moduły z SCIPY są zobowiązane do pracy z tą funkcją. Dowiemy się również o składni optymalizowania.root () funkcja w skrypcie Python. Następnie zrobimy kilka przykładów, aby zdobyć ten temat.

Składnia:

Poniżej znajduje się składnia i metoda deklaracji wywoływania optymalizowania.Funkcja korzeni w programie Python:

$ scipy.optymalizować.root (zabawa, x0, args = (), metoda = 'hybr', jac = brak, tol = brak, callback = brak, opcje = brak)

Pierwszą funkcją parametrów na liście argumentów wejściowych tej funkcji jest „zabawa”. To jest równanie lub funkcja, na której chcemy zastosować „Optymalizuj. root () „funkcja. Następnie jest „x0”, który jest początkowym gościem do obliczenia dla korzeni. „Args” to dodatkowy parametr, który możemy dodać do celu funkcji. A „metoda” jest ważnym parametrem, który określa rodzaj solver funkcji optymalizatora. „Jac” oznacza Jakobian. Jeśli jego wartość jest określona do wartości „prawdziwej”, funkcja zwraca wartość Jacobian z funkcją sprzeciwu. W alternatywnym przypadku Jakobian jest obliczany numerycznie i jest to kolejny parametr opcjonalny. Następnie „TOL” jest tolerancją dla zatrzymania funkcji i zależy od rodzaju solver; Ponownie opcjonalny parametr.

Wartość zwracana:

Funkcja zwraca zoptymalizowany obiekt typu wyniku w wyjściu, który ma tablicę reprezentującą rozwiązanie. Przesłaniem sukcesu jest flaga logiczna, co oznacza, że ​​funkcja jest z powodzeniem, a przyczyna komunikatu o zakończeniu.

Przykład 1:

„Optymalizuj.root () ”Funkcja optymalizuje funkcję i zmniejsza lub zwiększa wartość zgodnie z wymaganiami w programie. Znajduje również korzenie funkcji, która może być w postaci pewnego nieliniowego równania.

Z poprzednią składnią, której musimy się nauczyć, zróbmy bardzo podstawowy przykład tego zoptymalizowania.root () funkcja i znajdź korzenie dla nieliniowego równania lub funkcji. Platformą, której użyjemy do korzystania z kompilatora Python, jest „Google COLLAB”. Jest to program typu open source i zapewnia wszystkie pakiety, które są już zainstalowane i pobierane. Aby rozpocząć od nowego programu, przeznacz nowy notebook w Drive Google w collab.

Po pomyślnym utworzeniu notebooka zintegrujmy wymagane pakiety Pythona z programem. W tym celu zintegrujemy scipy. Ponieważ optymalizacja atrybutu Scipy ma moduł „root”, musimy zaimportować korzeń z „Scipy.Optymalizować". Ponieważ już rozmawialiśmy o optymalizacji.root () przyjmuje „func” na liście argumentów wejściowych, a FUNC jest po prostu formą równania nieliniowego, integrujemy bibliotekę „matematyki”, aby zapisać te nieliniowe równania z modułem wymaganym w funkcji równanie. Równanie funkcji tego przykładu jest następujące:

A + sin (a)

Dane równanie ma w sobie funkcję trygonometryczną, która jest „grzechem”. Integrujemy bibliotekę matematyczną jako „grzech”. Dzięki temu importowi wymaganych pakietów Pythona definiujemy teraz równanie w funkcji. W przypadku tego zadania tworzymy funkcję o nazwie „FUNC” i typu „Def”. Przekazujemy zmienną „a” do argumentu funkcji. Następnie sprawiamy, że funkcja zwraca równanie jako „return x + sin (x)”.

Teraz nazywamy tę funkcję, aby użyć tego równania w metodzie „root ()” jako jego argument wejściowy. Wywołaj funkcję „root ()” i przekazuj nazwę funkcji, dla której definiujemy równanie jako „FUNC” wraz z początkową wartością zgadywania równą „0” dla korzeni. Teraz wyświetl wyniki metodą print (). Program tej funkcji z jej wyjściem jest pokazany w następującym fragmencie:

od Scipy.Zoptymalizuj import root
od grzechu importowego matematyki
Def Func (a):
zwróć sin (a)
wartość = root (func, 0)
Drukuj (wartość)

Funkcja zwróciła tablicę rozwiązania jako korzeń równania. Rozwiązanie się zbiegło.

Przykład 2:

Z tą samą metodą, jak nauczyliśmy się w pierwszym przykładzie, możemy dodać funkcję „JAC” do równania i zastosować „Optymalizuj.root () ”, aby uzyskać minimalną wartość dla funkcji. Zaimportuj „Scipy.optymalizuj ”jako„ root ”i„ Numpy ”jako„ NP ”. Dokonaj funkcji „FUNC” i zwróć w niej równanie jako „[A [0] + 0.4*(A [0] - A [1]) ** 2 - 1.0, 0.4*(A [1] - a [0]) ** 2 + a [1]] ”. Zdefiniuj inną funkcję „Jakobian”, która jest dodatkowym parametrem i zwróć w nim równanie jako „[[1 + 1.4*(A [0] - A [1]) ** 2, -1.4*(A [0] - A [1]) ** 2], [-1.4*(A [1] - A [0]) ** 2, 1 + 1.4*(A [1] - A [0]) ** 2]] ”. Przekaż „FUNC”, początkowe zgadnięcie „x0”, „Jakobian” i „Solver /Method” jako „hybr” do funkcji „root ()” i uruchom program w następujący sposób:

importować Numpy jako NP
od Scipy.Zoptymalizuj import root
Def Func (a):
zwróć [A [0] + 0.4*(A [0] - A [1]) ** 2 - 1.0,
0.4*(A [1] - a [0]) ** 2 + a [1]]
def Jacobian (a):
zwróć NP.tablica ([[1 + 1.4*(A [0] - A [1]) ** 2, -1.4*(A [0] - A [1]) ** 2], [-1.4*(A [1] - A [0]) ** 2, 1 + 1.4*(A [1] - A [0]) ** 2]])
wartość = root (func, [0, 0], jac = jacobian, metoda = „hybr”)
Drukuj (wartość)

Funkcja zwróciła zoptymalizowane korzenie jako tablicę rozwiązania z pozostałymi dwoma parametrami.

Wniosek

Praca i wdrożenie „Scipy's Optimalize.root () ”Funkcja jest pokazana w tym artykule. Wykonaliśmy funkcję root () na dwóch osobnych przykładach i z różnymi parametrami funkcji.