Cross
Cross
Computing.dk
Cross
Cross
Cross

Opgaver til kurset Numerical Methods (Forår 2003)

Nedenstående programmer er lavet i matlab. Graferne er også lavet i matlab og gemt som epsc2 filer og derefter lavet om til gif filer ved hjælp af kommandoen "convert graf.epsc2 graf.gif".

Ugeseddel 1: Præcision af tal

Her er et eksempel på, at man skal overveje hvilken rækkefølge, man lægger tal sammen i.

Ugeseddel 2: Integration

Når man udregner integralet af en funktion numerisk kan man benytte funktionsværdierne af endepunkterne af intervallerne (lukket formel) eller punkter inde i intervallet (åben formel). Det sidste kan være en fordel, hvis funktionen har singulariteter.

Ugeseddel 3: Integration fortsat

Når man integrerer kan man dele intervallet op i lige store delintervaller som på sidste ugeseddel, eller man kan bruge en adaptiv metode, hvor man laver flest delintervaller de steder, hvor funktionen ændrer sig mest.

Ugeseddel 4: Løsning af lineære ligningssystemer

En kvadratisk matrix A kan skrives som A=QR, hvor Q er ortogonal og R er højretriangulær.

Ugeseddel 5: Løsning af lineære ligningssystemer fortsat

Følgende metoder kan sammen med programmerne fra ugeseddel 4 bruges til at løse ligningssystemer Ax=b, beregne determinanter og finde den inverse af en matrix.

Ugeseddel 6: Interpolation

Følgende metoder kan bruges til at lave kvadratisk spline og polynomisk interpolation af nogle givne punkter.

Ugeseddel 7: Lineær least square fit

Et sæt datapunkter med usikkerheder på y-værdierne kan fittes til et polynomium ved hjælp af de følgende programmer. Ud over ligningen for polynomiet giver programmet også χ2 og covariansmatricen.

Ugeseddel 8: Løsning af ordinære differentialligninger

Ved hjælp af en anden-tredie ordens Runge-Kutta metode kan man løse en enkelt førsteordens differentialligninger. Afstanden mellem punkterne bestemmes ved en adaptiv metode.

Ugeseddel 9: Løsning af ordinære differentialligninger fortsat

Runge-Kutta metoden er nu udvidet, så man kan løse et system med flere førsteordens differentialligninger.

Ugeseddel 10: Diagonalisering af matricer

Man kan diagonalisere matricer (dvs. finde egenværdier og egenvektorer) ved først at lave matricen tridiagonal og derefter benytte en algoritme, der bygger på QR-dekompositionen fra ugeseddel 4.

Ugeseddel 11: Find nulpunkter og minimum af funktioner

Man kan finde nulpunkter for et ikke-lineært ligningssystem ved hjælp af Newtons metode. Denne metode kan modificeres ved at lave skridtlængden variabel.

Ved hjælp af downhill simplex metoden kan man finde minimum for en funktion af n variable. Programmet finder gradienten, dvs. den retning hvor hældningen er størst, og leder videre i den retning.

Ugeseddel 12: Find globalt minimum af en funktion

Hvis man i downhill simplex metoden fra sidste ugeseddel nogle gange tillader, at programmet går til et højereliggende punkt i stedet for altid at gå nedad, så kan man undgå at blive fanget i et lokalt minimum. I metropolis algoritmen accepteres skridt opad med en sandsynlighed P=exp(-ΔE/T), hvor T langsomt gøres mindre.

Ugeseddel 13: Monte Carlo integration

Integralet af en funktion af flere variable kan beregnes ved at beregne funktionsværdien i tilfældigt valgte punkter.

Cross
Cross