Workshop 2: Numeriske metoder#
Pensum til eksamen: Numeriske metoder
Beskrive, forklare og implementere numeriske metoder for å finne nullpunkter (Newtons metode), derivere (framover-, bakover- og sentraldifferanse) og integrere (rektangelmetoden - venstre, høyre og midt - og trapesmetoden).
Utvide numeriske metoder med relevant feilhåndtering.
Sammenlikne og analysere ulike numeriske metoder.
Feilsøke og feilrette kode med numeriske metoder.
Oppgaver#
Forklar forskjellen mellom numerisk og analytisk derivasjon.
Hvorfor kan ikke dx i numerisk derivasjon være verken for liten for veldig stor?
Finn \(f'(1)\) med numerisk derivasjon for \(f(x) = x^2 - 2lg\left(\frac{1}{x}\right) - 2\).
Les fila temperatur.csv og bruk numerisk derivasjon til å derivere dataene. Plott den deriverte i samme koordinatsystemet som dataene. Hva forteller den deriverte kurven deg?
Forklar forskjellen mellom numerisk og analytisk integrasjon.
Forklar hvorfor en sentraltilnærming av rektangelmetoden er mye bedre enn en venstre- eller høyretilnærming.
Følgende funksjon gir angir signalet til en NMR-topp i et NMR-spekter:
\[f(x) = 3e^{\frac{-(x-2)^2}{0.04}}\]Arealet avgrenset av toppen og x-aksen forteller oss om relativt antall H-atomer i samme miljø i forbindelsen. Lag et program som beregner og beregner og skriver ut dette arealet. Begrunn valg av metode.
Vi måler farten til et legeme i m/s som funksjon av tid i s og får følgende data:
t = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
v = [0, 0, 1.2, 2.5, 6, 7.2, 7.1, 5.7, 4.3, 1.2, 0.1, 0]
Bruk numerisk integrasjon til å finne total tilbakelagt strekning.
Funksjonen nedenfor inneholder en funksjon som beregner det bestemte integralet til en funksjon med trapesmetoden. Funksjonen fungerer derimot ikke som den skal. Forklar hva som er feil og rett opp koden.
def trapesmetoden(f, a, b, n):
h = (a+b)/n
A = h*(f(a) + f(b))/2.0
for k in range(n):
A = A + f(a + n*h)*h
return A*h
Bruk Newtons metode til å løse likningen \(x^5 - 3x - 10\).
Hva er fordeler og ulemper med Newtons metode. Forklar ved å skissere ulike grafer som illustrerer problemene.
Grunnleggende programmering:
Vi skal veie inn og lage en saltløsning av KMnO\(_4\) (M\(_ m\)= 158 g/mol). Lag et program som tar den innveide massen av saltet som input med input-funksjonen eller fra kommandolinja. Programmet skal regne ut og skrive ut konsentrasjonen til en løsning av dette saltet på 1 L.
Ved 25°C er løseligheten til KMnO\(_4\) 76 g/L. Utvid programmet ditt i forrige oppgave slik at det tar hensyn til dette med relevant feilhåndtering hvis brukeren av programmet gir for høy masse inn som input.
Lag en Python-funksjon som regner ut volumet gitt trykket, temperaturen og stoffmengden til en ideell gass.
Lag et program som beregner følgende rekkesum: