Sølve Selstø, Martin Lilleeng Sætra og André Brodtkorb
![](https://assets.isu.pub/document-structure/241107075604-f5d6c09e2a3143692e811cc383a3abaa/v1/fee67e79cef7094fe83a064989bd5371.jpeg)
Sølve Selstø, Martin Lilleeng Sætra og André Brodtkorb
Øvingsoppgåver for Python
Sølve Selstø, Martin Lilleeng Sætra og André Brodtkorb
Ø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........................
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.