Praktisk introduksjon til numeriske metodar (9788245050554)

Page 1


Sølve Selstø, Martin Lilleeng Sætra og André Brodtkorb

Praktisk introduksjon til numeriske metodar

Øvingsoppgåver for Python

Sølve Selstø, Martin Lilleeng Sætra og André Brodtkorb

Praktisk introduksjon til numeriske metodar

Øvingsoppgåver for Python

Copyright © 2024 by Vigmostad & Bjørke AS

All Rights Reserved

1. utgåve 2024 / 1. opplag 2024

ISBN: 978-82-450-5055-4

Grafisk produksjon: John Grieg, Bergen

Grafisk design: Forfattarane

Omslagsdesign: Endre Barstad

Illustrasjonane er laga av forfattarane, med unntak av:

Figur 7.1 Offentleg tilgjengeleg

Figur 15.1 Holger Ellgaard, CC BY-SA 3.0, via Wikimedia Commons

Figur 20.1 Henriette Bærheim

Forfattaren har fått støtte frå Det faglitterære fondet.

Spørsmål om denne boka kan rettast til: Fagbokforlaget

Kanalveien 51

5068 Bergen

Tlf.: 55 38 88 00 e-post: fagbokforlaget@fagbokforlaget.no www.fagbokforlaget.no

Materialet er verna etter åndsverklova.

Utan uttrykkjeleg samtykke er eksemplarframstilling berre tillate når det er heimla i lov eller avtale med Kopinor.

Vigmostad & Bjørke AS er Miljøfyrtårn-sertifisert, og bøkene er produsert i miljøsertifiserte trykkeri.

4.6Løysingsforslag..........................

5.1Reduserttrappeformogløysingavlineære

5.7Ekstraoppgåve:Rekkeoperasjonar................

7.1Halveringsmetoden–igjen....................

7.4Ekstraoppgåve:Bursdagsamedag................

8Numeriskderivasjon135

8.1Endelegdifferanse........................

8.2Denderivertefråeintabell....................

8.3Derivasjonsomlineærtransformasjon..............

8.4Ekstraoppgåve:Gammafunksjonenvs.eksponentialfunksjonen.

8.5Ekstraoppgåve:Åbestemmefeilen................

8.6Løysingsforslag..........................

9Numeriskintegrasjon153

9.6Ekstraoppgåve:MonteCarlo-integrasjon.............

10Optimering179

12Intermesso213 12.1Kortoppsummering........................

Introduksjon

Numeriskemetodarerikkjenokonytt.Toavdeimestsentralemetodanei dennebokaerutviklaavIsaacNewton(1642–1726)ogLeonhardEuler(1707–1783).Rettnokhaddeikkjedessekaranehøvetilånyttesegavelektronisk databehandling(EDB)nårdeiskulleimplementere1 metodanesine;deimåtteta tiltakkemedpapirogblyant,ellerfjørpenn.Slikemaskinarbleitilpå40-talet. Ogdeiharblittganskepopulæresidandess.Pånorskkallarvidei datamaskinar, påmangeandrespråk,inkludertengelsk,blideikalla reknemaskinar.Deiblei tilforåkunnehandterestoremengdertalogdatarasktogeffektivt.Deipassar somhandihanskeforåkunneimplementeremetodanetilNewtonogEuler,for eksempel.

Vedhjelpavslike–ogliknande–metodarkanvispåvêrogklima,dimensjonere bygningarogbruer,lageprognosarforspreiingavepedemiar,analysereog manipulerebildeoglyd,studereyttergrenseneavuniverset,“treneopp”ein kunstigintelligensellerlagegodemodellarforlønsutviklingogfolketal.Lista kangjerastmykjelengre.Deterikkjespesieltvanskelegåargumenterefor atberekningaroghandteringoganalyseavdataspelarganskeviktigeroller isamfunnetvårt.Derforbørimplementeringavnumeriskemetodarvereein naturlegdelavmatematikk-undervisinga.Likevelkandetoftesittelangtinne–bådeforelevoglærar,studentogførelesar–åutfordretankenomatmatematikk ereinreinpapirogblyant-aktivitet.Ogmangelærebøkererlojalemotden tradisjonen.Dessverre.

Mangelærebøkerimatematikkerlagtopppådenmåtenateinførstgårgjennom eindelteori–medeksempel–ogsåskalelevenellerstudentensjølvbruke teorienpåkonkreteoppgåveretterpå.Herharviprøvdågjeretingpåeinlitt annanmåte.Herblirdusetttilågjereoppgåvermedeingong.Innimellomer

1 IfølgeordbokatilSpråkrådetkandetteordetdefinerastslik:“implementere (fråeng.av,lat. implere‘gjereferdig’)1)utføre,setteiverk;2)iIT:gjeredetsomskaltilforåfåmaskineller programtilåverke.”

derdryppavteori.Menframforalthåparviatteorienskalblitilei erfaring frå førstestund–vedatdugjerdetsjølv,vedatdu implementerer løysinga.Detsom ståridenneboka,skal gjerast,ikkje lesast.

Håpeteratalleskalklareågjeredesseøvingane–ogsådeisomaldriharskrive eilinjePython-kodeførelleraldriharbruktdatamaskinarognettbretttilnoko særlegannaennnettsurfing,sosialemediumogtekstbehandling.Viforsøkerå forklaretingsågrundigviklarar.Derforvilnokenkelteoppleveatdetheile kanblilittteksttungtogomstendeleg.Dettegjeldikkjeminstiløysingsforslaga. Mendeterviktigåvereklaroveratsjølvombokaerganskjetjukk,erdetikkje nødvendigvisveldigmykjeågjere.

Pådenandresida:Omdusynestatoppgåveneerioverkantdetaljstyrande,kjenn degfritilåløyseoppgåvenepådineigenmåte.Ogdersomduskulleblinyfiken påtingsomkanskjeligglittpåsidaavdetoppgåvaleggopptil,såikkjeverredd forågåeinlitenomveg!

Somtittelentyderpå,eroppgåveneknyttetilprogrammeringsspråketPython. FaktiskfinstdeteintidlegareversjonavdennebokabasertpåMATLAB,2 meni dennebokaharvibådeutvidaogomarbeidaheilemanuskriptettilåbrukePython. Determangegodegrunnartildet.Eingrunneratprogramvareforåkøyre Python-kodeergratis.Ogderermangeutviklararsomjobbarjamtogtruttmedå utvikleogutbetrenyttige,brukarvenlegeogeffektiveimplementeringarsomkan køyrastiPython.DerforharPythonogsåblitteitpopulærtprogrammeringsspråk –eitsommangebrukar.Mangeelevarogstudentarvilnokblisetttilåutvikle ellerforståPython-kodenårdeieingongskalutiarbeidslivet.

Meddetsagtbørdetogsånemnastatmykjeavdetsomvilæreråimplementere idenneboka,kan,medrelativtenklejusteringar,overførasttilandreplattformer ogspråk–somtildømesMATLAB/Octave,JuliaellerR–ellermeirgenerelle programmeringsspråksomC,C++,C#ellerJava.Sånnsettkaneingodtinvende atbokavillehattstørrenytteverdiomkodeogimplementeringhaddevoregjort meirgenerisk–alståformulertpålittmeirgenerellemåtar.Menettervårerfaring erverdienavåfåkonkret,køyrbarkjeldekodeganskestor.Detbidrartilåsenke terskelenforåkommeigang.Såfårhellerfugleperspektivetkommelittseinare. Sågodtsomallevelkjentenumeriskemetodarhareinellerannanferdigfunksjon ieitellerannaPython-bibliotek.Einkanforeksempelestimereintegraleller løyseeidifferensiallikningvedågiberreeitparkommandoar.Viskaliliten gradbrukeslikeferdiglagaløysingar.Dettekankanskjesjåutsomeineffektiv måteågjeretingmeirkompliserteenndeitrengåvere.Menpoengetmeddenne bokaerjoatviskal læreossnumeriskemetodar,ikkjelæreosskorleisviskalfå Pythontilågjeredeiforosspåenklastmoglegmåtevedåsettesamandeirette

2 Selstø,Sølve(2017). Praktiskintroduksjontilnumeriskemetodar.Øvingsoppgåverfor MATLAB.Universitetsforlaget. ISBN9788215028453

svarteboksane.Eitsliktoppleggvilledessutanhaførtmedsegeindelkjedeleg pugging.Nårvivelharlærtdessemetodane–ogkvadeiersterkeogkvadei ersvakepå–vildetveremeirnaturlegåbrukeslikeferdigepakkar.Menher,i startgropa,vilvibyggeoppmetodanevedhjelpavdeienklastebitane.

Nårviskalimplementeredeiaktuellenumeriskemetodane,vilviforsøkeå skrivekodanesåenkeltoggjennomsiktigsomviklarar.Kanskjekandettetil tidergåutovereffektiviteten;omvioppleveratdetskulleverekonfliktmellom ågjereeinkodepedagogiskogågjerehanoptimal,vilvitypiskveljeågjeredet første.Derforerkanskjeikkjedennebokaheilt optimal fordeisomhartenktå blisterkeprogrammerarar;dåkankanskjeboka“Pythonforrealfag”avFinn AakreHaugenogMariusLysakervereeitbetrealternativ.

Ideiførstekapitlafokuserervipåeittavgrensatemaomgongen.Dersomdublir ståandefastpånokreavoppgåvene,skuldastdettemestsannsynlegatoppgåva ikkjeertydelegnokformulertavoss–elleratduhartattlittforlettpåeittav deitidlegarekapitla.Tankeneratdersomdufølgerprogresjonen,skaldetikkje verenødvendigågrublelengeforåfåtingtil.Ogomduhargrublalitt,håparvi atdeidetaljerteløysingsforslagakanveretilnytte.Herbørdetogsånemnastat visseavkapitlaharekstraoppgåverderspesieltinteressertefårutfordraseglitt. Mendeiverkelegeutfordringanekjemidensistedelenavboka.Herblirdetgitt ganskekrevjandeoppgåverderduvilfåbrukforaltdetduharlærtideiførste kapitla.Deterikkjeutanvidareopplagdkvametodareinskaltaibrukikvar avoppgåvene,ogoftemåeinkombinerefleireavdei–itilleggtilåtaibruk meiranalytiske“papirogblyant”-metodar.Ogdeterakkuratslikvisomjobbar medkvantitativemetodartildagleg,heldpå.Vivekslarmellomnotatblokkog datamaskinheiletida.

Bokaerrikpåkodesnuttar.Omduharlysttilåbrukenokonavdesse,skaldu sleppeåskrivedeiav.Alledeiaktuellefilenekandufinneibokasitteige GitHub repository,på https://github.com/nummet/nummet Vihåparatduetteråhajobbadeggjennomdennebokasitattmedeioffensiv haldningtilkvantitativproblemløysing:“Dersomegklararåbrukematematikk tilå formulere problemet,skalegogsåklareå løyse det.”Ogkanskjeopplever duogså,somoss,atkodingakangjeredetlettareåforståteorien–ikkjeberre motsett.

Dennebokaharblitttilisamspelmedflottestudentarogkollegaerved OsloMet–storbyuniversitetet.Tusentakktildykkalle!

Numeriske metodar og berekningar er ein viktig del av ingeniørmatematikk, men for mange kan det å komme i gang med numerisk problemløysing kjennast utfordrande – spesielt om du har lite erfaring med programmering. I Praktisk introduksjon til numeriske metodar blir du leidd steg for steg gjennom numerisk problemløysing, med Python som kodeverktøy.

Metodane blir introduserte gjennom enkle oppgåver som er tilpassa for å gi deg ei klar forståing av korleis teori og praksis heng saman. Mot slutten av boka får du høve til å bruke desse teknikkane for å løyse meir samansette problem. Boka er full av praktiske oppgåver med grundige løysingsforslag som gir deg solid erfaring med metodane.

Boka er utvikla i tett samband med undervising, og er eit nyttig verktøy for deg som vil lære numeriske metodar på ein praktisk og tilgjengeleg måte.

Sølve Selstø er professor ved ingeniørutdanninga på OsloMet – storbyuniversitetet, der han underviser i matematikk og fysikk. Han er utdanna i teoretisk fysikk og forskar på kvantefysikk.

Martin Lilleeng Sætra er forskar ved Meteorologisk institutt og førsteamanuensis ved OsloMet – storbyuniversitetet. Han underviser og forskar innan anvend matematikk og berekningsvitskap.

André Brodtkorb er professor i berekningsvitskap ved OsloMet – storbyuniversitetet. Forskinga og undervisinga hans ligg i skjeringspunktet mellom matematikk og informatikk.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.