Kf1 - Tillampad Matematik, TMA 225 - 2005
Datorstudioövning 3: Styvhetsmatris. Robinrandvillkor.
Börja med att läsa igenom det utdelade materialet om
Robinrandvillkor.
Huvudmomenten i PoissonSolver1D är: - Skapa en partition av [x_min, x_max] i N-1 stycken delintervall.Dessa steg är implementerade på följande sätt: Först skapas en partition av [x_min, x_max] i huvudprogrammet PoissonSolver1D, vilket därefter anropar funktionen PoissonAssembler1D, i vilken assembleringen av matriser och vektorer görs. Lösning av det linjära ekvationssystemet och plottning av lösningen görs slutligen i PoissonSolver1D. Fortsätt nu med att öppna, samt spara hos dig själv, funktionsfilerna PoissonSolver1D.m och PoissonAssembler1D.m Gå igenom koden i PoissonSolver1D.m noggrant, så du förstår programmets struktur. Denna kod behöver du inte göra något med själv. Fortsätt med att gå igenom koden i PoissonAssembler1D.m. Assembleringen av lastvektorn, b, är identisk med hur vi gjorde när vi beräknade högerledsvektorn, b_vek, i fallet med L2-projektion, och finns därför redan inlagd. Också assembleringen av massmatrisen, Mc, är (så när som på koefficienten c) densamma som för L2-projektion, och är även den inlagd. Det du alltså själv måste göra är att, på de platser i koden där det står ???, komplettera PoissonAssembler1D.m så att styvhetsmatrisen, A, assembleras, och randbidragen till ekvationssystemet, matrisen R och vektorn rv, beräknas. (Jämför med hur assembleringen av Mc och b görs: För beräkning av Mc används Simpsons formel och för beräkning av b används Trapetsregeln. Du kan förslagsvis välja Trapetsregeln för beräkning av styvhetsmatrisen. Jämför också med det utdelade materialet om Robinrandvillkor.) Prova nu att lösa exemplet som finns beskrivet i PoissonSolver1D.m Kör programmet med kommandot >>PoissonSolver1D. Det är mycket viktigt att testa ditt program genom att jämföra din beräknade lösning med den exakta lösningen (vilken är känd i detta fall), på det sätt som finns beskrivet i slutet av PoissonSolver1D.m.
Lycka till!!!
|
Editor: Nils Svanstedt Last modified: 2005-04-13 |