Kursens syfte

Ett svårt numeriskt problem, i till exempel strömningsmekanik eller hållfasthetslära, kan lösas så här: Först bryter man ner problemet i delproblem. Sedan söker man efter metoder och algoritmer (sätt att implementera metoder) för delproblemen. Sist sätter man samman ett fungerande program av algoritmerna.

Det visar sig att vissa delproblem, som till exempel att lösa ekvationssystem, ständigt återkommer. Under 1900-talet har metoder för många delproblem nått en hög grad av förfining. Men fortfarande pågår en jakt på snabbare, noggrannare och mer stabila sätt att räkna.

I denna kurs studerar vi några grundläggande metoder och algoritmer för vanliga delproblem. Syftet är att ge förståelse för hur metoder fungerar och varför det ibland blir fel svar, eller tar orimligt lång tid att räkna. Vilken metod som är bäst beror ofta på sammanhanget. Lika viktigt som att analysera metoder och algoritmer är att analysera de ursprungliga problem vi vill lösa. Ett givet problem kan ofta formuleras på olika sätt som är olika lämpliga ur numerisk synvinkel. I kursen ingår fyra datorlaborationer. Där tränar vi upp färdigheten i att bryta ner problem i beståndsdelar och att lösa dessa i högnivåspråket MATLAB.

Kursens betoning ligger på förståelse för algoritmers egenskaper och på förståelse för hur de används (genom allmän programmeringsträning). Vi drillar er INTE i hur man anropar färdiga rutiner i MATLAB. (Däremot ser vi positivt på att ni själva lär er detta genom MATLABS utomordentliga on-line manual "helpdesk".) Anledningen att vi inte lägger ner föreläsningstid på att gå igenom MATLAB är att det är lätt att lära själv och att att programspåk tenderar att åldras snabbt. Teoretiska resonemang och allmäna principer har en mer varaktig karaktär. Dessutom skall ju inte alla studenter ägna sig åt att programmera MATLAB i sina yrkesliv, medan en förståelse för de numeriska metodernas möjligheter och begränsningar har allmänt värde.

Kursens teoretiska del har en översiktlig karaktär. Förståelse och färdigheter tränas upp under datorlaborationerna i MATLAB. Centrala begrepp är: problems kondition, algoritmers stabilitet, och algoritmers noggrannhetsordning. Förkunskaper i linjär algebra, funktioner av flera variabler och vektoranalys är nödvändiga. Den som vill fördjupa sig och sätta sig in i aktuella forskningsprojekt rekommenderar jag att läsa institutionens fortsättningskurser.

Johan Helsing