Scipy optimaliser rot

Scipy optimaliser rot

Python er et objektorientert, strukturert og funksjonelt dataspråk. Applikasjonen er ikke bare begrenset til spesifikke typer som gjør det til et generelt språk. Det er et godt kjent programmeringsspråk, og det tilbyr en rekke biblioteker for å skrive de forskjellige programmerene på dette språket. Skriptet til dette språket ligner også på det engelske språket. I kraft av dette faktum har Python æren av å være et nybegynnervennlig programmeringsspråk for applikasjoner som vitenskapelig og teknisk databehandling, integrasjon, signal og bildebehandling, og interpolering av Python-biblioteket som er "scipy", som omhandler alt Slike spesifikke funksjoner.

Scipy har en attributt til funksjonen som heter “Optimaliser. root () ”. Denne funksjonen inneholder optimalisatorene. Optimisatorene representerer settet med disse funksjonene eller prosedyrene som reduserer funksjonens endelige verdi/utgang eller roten til den funksjonen til den minste verdien som mulig.

Fremgangsmåte:

Prosedyren for denne artikkelen følger noen viktige trinn. Først av alt vil vi lære om “optimalisere. root () ”-funksjon. Deretter vil vi bli kjent med hvilke moduler fra scipy som er pålagt å jobbe med denne funksjonen. Vi vil også lære om syntaks for optimalisering.root () funksjon i python -skriptet. Deretter vil vi gjøre noen eksempler for å få tak i dette emnet.

Syntaks:

Følgende er syntaks- og erklæringsmetoden for å kalle optimaliseringen.Rotfunksjon i Python -programmet:

$ scipy.optimalisere.root (moro, x0, args = (), metode = 'hybr', jac = ingen, tol = ingen, callback = ingen, alternativer = ingen)

Den første parameterfunksjonen i inngangsargumentlisten over denne funksjonen er "moro". Dette er ligningen eller funksjonen vi ønsker å bruke “Optimaliser på. root () “funksjon. Neste er “X0” som er en første gjest å beregne for røttene. "Args" er tilleggsparameteren som vi kan legge til funksjonens mål. Og "metoden" er en viktig parameter som definerer typen av løseren til optimaliseringsfunksjonen. “Jac” betyr Jacobian. Hvis verdien er spesifisert til den "sanne" verdien, returnerer funksjonen Jacobians verdi med innvendingsfunksjonen. I et alternativt tilfelle beregnes Jacobian numerisk, og det er en annen valgfri parameter. Da er "TOL" toleransen for stopping av funksjonen og avhenger av løseren; Igjen, en valgfri parameter.

Returverdi:

Funksjonen returnerer det optimaliserte resultattypeobjektet i utgangen som har matrisen som representerer løsningen. Suksessmeldingen er et boolsk flagg som betyr at funksjonen er forlatt med suksess, og årsaken til termineringsmeldingen.

Eksempel 1:

“Optimaliser.root () ”-funksjon optimaliserer funksjonen og reduserer eller øker verdien i henhold til kravet i programmet. Den finner også røttene for en funksjon som kan være i form av en eller annen ikke-lineær ligning.

Med den forrige syntaksen som vi må lære, la oss gjøre et veldig grunnleggende eksempel for dette optimalisere.root () funksjon og finn røttene for en ikke-lineær ligning eller funksjon. Plattformen som vi vil bruke til å bruke Python -kompilatoren er “Google Collab”. Dette er et open source-program og gir alle pakkene som allerede er installert og lastet ned. For å starte med det nye programmet, tildel en ny notisbok i Google Drive i kollabben.

Etter å ha opprettet en notisbok, la oss integrere de nødvendige Python -pakkene i programmet. For det vil vi integrere scipy. Siden Scipys attributtoptimalisering har “Root” -modulen, må vi importere roten fra “Scipy.Optimalisere ”. Siden vi allerede diskuterte at optimaliseringen.root () tar "func" i sin inngangsargument liste og func er ganske enkelt en form for den ikke-lineære ligningen, vi integrerer "matematikk" -biblioteket for å skrive disse ikke-lineære ligningene med modulen som kreves i funksjonens Ligning. Ligningen for funksjonen til dette eksemplet er som følger:

a + sin (a)

Den gitte ligningen har den trigonometriske funksjonen i den som er "synd". Vi integrerer matematikkbiblioteket som "synd". Med denne importen av de nødvendige Python -pakkene, definerer vi nå ligningen i funksjonen. For denne oppgaven lager vi en funksjon med "func" -navnet og returtypen "def". Vi gir variabelen “A” til funksjonen til funksjonen. Deretter får vi funksjonen til å returnere ligningen som "Return x + sin (x)".

Nå kaller vi denne funksjonen for å bruke denne ligningen i “Root ()” -metoden som inngangsargumentet. Kall "root ()" -funksjonen og pass navnet på funksjonen som vi definerer ligningen som "func" sammen med den første gjetningsverdien som er lik "0" for røttene. Vis nå resultatene med print () -metoden. Programmet for denne funksjonen med utdataene vises i følgende utdrag:

Fra scipy.Optimaliser importrot
Fra matematikkimporter synd
def func (a):
Returner A + sin (a)
Verdi = root (func, 0)
trykk (verdi)

Funksjonen returnerte løsningsarrayen som roten til ligningen. Løsningen har konvergert.

Eksempel 2:

Med den samme metoden som vi lærte i det første eksemplet, kan vi legge til "JAC" -funksjonen med ligningen og bruke "optimalisere.root () ”funksjon på den for å få minimumsverdien for funksjonen. Importer “Scipy.Optimaliser "som" root "og" numpy "som" np ". Forklar “func” -funksjonen og returner ligningen i den som “[a [0] + 0.4*(A [0] - A [1]) ** 2 - 1.0, 0.4*(A [1] - A [0]) ** 2 + A [1]] ”. Definer en annen funksjon, “Jacobian”, som er tilleggsparameteren og returner ligningen i den som “[[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]] ”. Pass "func", innledende gjetning "x0", "jacobian" og "solver /metode" som "hybr" til "root ()" -funksjonen og kjøre programmet som følger:

Importer numpy som NP
Fra scipy.Optimaliser importrot
def func (a):
retur [a [0] + 0.4*(A [0] - A [1]) ** 2 - 1.0,
0.4*(A [1] - A [0]) ** 2 + A [1]]
Def Jacobian (A):
Return NP.Array ([[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]])
verdi = root (func, [0, 0], jac = jacobian, method = 'hybr')
trykk (verdi)

Funksjonen returnerte de optimaliserte røttene som løsningsarrayen med de to andre parametrene.

Konklusjon

Arbeidet og implementeringen av “Scipy's Optimize.root () ”-funksjon vises i denne artikkelen. Vi utførte roten () -funksjonen på to separate eksempler og med forskjellige funksjonsparametere.