Scipy minimerer eksempel

Scipy minimerer eksempel
Utviklere har henvendt seg til Python -programmeringsspråket og prioritert i å lære Python fremfor noe annet programmeringsspråk. Funksjonene og bibliotekene i Python -programmeringsspråket gjør det veldig enkelt og nyttig for utviklere å skrive de kompliserte kodene. Scipy er det mest brukte Python -biblioteket for algebraiske ligninger, integrasjon, statistiske problemer, interpolasjon, differensialligninger, optimalisering osv. I denne artikkelen diskuterer vi Scipy Minize -funksjonen for å hjelpe deg med å forstå hvordan Scipy minimerer funksjonen fungerer i Python -applikasjoner.

Hva er Scipy minimer funksjonen på Python -språk?

Scipy er et åpen kildekode, gratis og brukervennlig bibliotek som kan brukes til å løse enhver form for teknisk, ingeniørvitenskap, vitenskapelig og matematisk problem. Scipy gir en "minimer" og flere nyttige funksjoner i "optimaliser" -pakken. En rekke optimaliseringsalgoritmer og funksjoner er tilgjengelige i Scipy Optimize -pakken og minimerer er en av dem.

Minimerfunksjonen levert av Scipy Optimize -pakken er et vanlig grensesnitt som brukes til multivariate skalarfunksjoner med begrensede og ubegrensede minimeringsalgoritmer. Det brukes til å minimere en eller flere variabler av en skalarfunksjon. Hver gang en inngangsparameter for en funksjon må minimeres, brukes minimeringsfunksjonen til optimaliseringsbiblioteket. Minimerfunksjonen fungerer med flere nyttige metoder for å minimere de forskjellige typene funksjoner.

Syntaks av minimeringsfunksjonen:

Følgende er syntaks for minimeringsfunksjon:

Antall argumenter som minimeringsfunksjonen tar er opptil 12. Imidlertid er funksjonen og "a" påkrevd parametere og de andre 10 er valgfrie. "Funksjon" -parameteren representerer funksjonsnavnet som skal optimaliseres, og "A" -parameteren representerer matrisen for data. I den kommende delen vil vi vise hvordan vi skal minimere en funksjon ved hjelp av nyttige og enkle eksempler.

Eksempel 1:

La oss starte med et enkelt eksempel slik at vi kan ha en grunnleggende forståelse av minimere funksjon. Som tidligere diskutert, må to viktige parametere gis for å minimere funksjonen - et funksjonsnavn og dataene. Så i dette eksemplet gir vi bare funksjonsnavnet og dataene til minimeringsfunksjonen for å forstå hvordan minimeringsfunksjonen fungerer. Eksempelkoden er spesifisert i følgende for din referanse:

Fra scipy.Optimaliser importen minimer, Rosen
matrise = [1.5, 9.7, 2.8, 6.2, 3.1]
res = minimere (rosen, matrise)
trykk (res.x)

Fra første linje importeres Scipy -biblioteket, optimaliseringsfunksjonen og minimerer metoden i programmet med "Fra scipy.Optimaliser import minimerer "-uttalelsen. Husk alltid at biblioteket og pakkene må importeres til programmet før de eksplisitt blir kalt. Hvis du glemmer å ta med biblioteket i programmet ditt, vil du til slutt få feil. Så sørg for at du har alle bibliotekene og funksjonene som er inkludert i programmet ditt før du kaller noen av funksjonene deres.

Når du har importert alle bibliotekene, er du klar til å oppgi dataene og bruke de forskjellige funksjonene på den. Dataene er gitt i matrisen som flytende punkttall. Arrayen inneholder seks flytende punkttall, og den sendes til minimeringsfunksjonen. Resultatet fra minimeringsfunksjonen lagres i "Res" -variabelen. For å se resultatet, se følgende gitt utdata:

Eksempel 2:

Siden du allerede har lært grunnleggende arbeid med minimeringsfunksjon ved hjelp av eksempel, la oss bruke dette andre eksemplet for å lære hvordan "metoden" og "tol" -parametrene til minimeringsfunksjonen i minimeringsfunksjonen. I forrige eksempel ga vi ingen valgfri parameter til funksjonen. I dette eksemplet skal vi gi to valgfrie parametere. Se eksempelkoden som er spesifisert i følgende skjermbilde:

Fra scipy.Optimaliser importen minimer, Rosen
matrise = [1.5, 9.7, 2.8, 6.2, 3.1]
res = minimere (rosen, matrise, metode = 'nelder-mead', tol = 1e-6)
trykk (res.x)

Her importerer vi Scipy -biblioteket, optimaliserer pakken, minimerer og Rosen -funksjonen med “Fra Scipy.Optimaliser import minimer, Rosen ”-uttalelsen. Etter det gir vi dataene i en matrise og passerer den matrisen til minimeringsfunksjonen. Legg nå merke til at "Neldor-Mead" -metodenavnet sendes som "Metode" -parameteren og "1E-6" sendes som "TOL" -parameteren.

"Metode" -parameteren tilbyr deg å tilby flere forhåndsdefinerte funksjoner og "Neldo-Mead" er en av dem. "Neldo-Mead" -funksjonen bruker Simplex-algoritmen som er robust i flere applikasjoner. For å forstå forskjellen mellom den generelle, minimere funksjonen uten noen valgfrie parametere som er bestått og med valgfrie parametere som er gitt, se følgende gitt utdata:

Eksempel 3:

Så langt lærte vi hvordan vi bruker minimeringsfunksjonen med eller uten å passere noen valgfrie parametere. La oss nå gi noen forskjellige valgfrie parametere til minimeringsfunksjonen slik at vi kan ha en bedre forståelse av hvordan minimerfunksjonen fungerer.

Fra scipy.Optimaliser importen minimer, Rosen, Rosen_der
matrise = [1.5, 9.7, 2.8, 6.2, 3.1]
res = minimere (rosen, matrise, metode = 'bfgs', jac = rosen_der,
Alternativer = 'gtol': 1e-6, 'disp': true)
res.x

I dette eksemplet bruker vi “Rosen”, “Rosen_der” og “BFGS” -metodene for å minimere de oppgitte dataene. Igjen importeres Scipy Library, Optimize Package, Minize, Rosen og Rosen_der -funksjonene i programmet med “From Scipy.Optimaliser import minimer, Rosen, Rosen_der ”-uttalelsen. Etter det blir dataene gitt i matrisen som sendes som en dataparameter til minimeringsfunksjonen.

Metodene som brukes her er “BFGS” og “JAC = Rosen_der”. "Alternativ" -parameteren brukes i en variasjon, med to verdier. BFGS-metoden brukes til å beregne gradientvektorene, og den er ofte implementert i Quasi-Newton-metodene. Det er også standardmetoden som brukes av minimeringsfunksjonen hvis ingen metode eksplisitt sendes i minimeringsfunksjonen som en parameter. Utgangen fra prøvekoden er spesifisert i følgende skjermbilde:

Konklusjon

For å pakke opp hele denne artikkelen, her er en rask oppsummering. Vi lærte om den grunnleggende arbeidet med minimeringsfunksjon på Python -språket. Python blir det mest populære språket på grunn av fleksibiliteten det tilbyr. De innebygde funksjonene og bibliotekene kommer til nytte når du må takle noen kompliserte applikasjoner. Her lærte vi om optimaliserpakken og minimeringsfunksjonen ved hjelp av eksempler på eksempler.