DN Numeriska Metoder och Grundläggande Programmering DN Numeriska Metoder för S Lördag 007--7, kl 9- Skrivtid tim Maximal poäng 5 + bonuspoäng från årets laborationer (max p) Betygsgänser: för betyg D: minst 0 poäng, för betyg C: över 6 poäng och för betyg B: över 9 poäng Alla poäng är inklusive bonuspoäng Maxpoäng för uppgifterna anges inom parentes bredvid uppgiftsnumret Tillåtna hjälpmedel: Nadas användarhandledning för MATLAB För icke-svenskspråkiga tillåts också lexikon Var god notera att miniräknare ej är tillåten på denna tentamen Svar skall motiveras och uträkningar redovisas Korrekt svar utan motivering eller med felaktig motivering medför poängavdrag Då algoritmbeskrivning begärs, avses normalt beskrivning i MATLAB Eftersom miniräknare ej är tillåten är det tillåtet att lämna enkla beräkningsuttryck oförenklade, tex c 05 0 cos(π/) i stället för det uträknade c 000 P0 Ange dina bonuspoäng och den kursomgång (linje och termin) där poängen erhållits Endast poäng från 007 är giltiga P Diverse begrepp () a) Vad innebär Runges fenomen och när kan det uppstå? (5) b) Ge ett exempel på en tridiagonal matris (med siffervärden insatta) och beräkna maximumnormen av denna matris () c) Att lösa ett linjärt N N-ekvationssystem på en viss dator tar mikrosekunder Hur lång tid tar det att på samma dator lösa ett system med dubbelt så många rader och kolumner om matrisen är full? (5) d) Givet ekvationen 0x e x Visa med en formel hur man kan använda fixpunktsmetoden för att lösa denna ekvation Vad gäller för att fixpunktsmetoden skall konvergera? (Du behöver ej bevisa att din formel konvergerar, bara redogöra för vad kraven är) Tentamen fortsätter på nästa sida Var god vänd!
P Givet integralen 0 sin(x )dx () a) Ställ upp uttrycken för trapetsregeln med dels steglängd 0 och dels steglängd 0 () b) Man har gjort trapetsregelberäkningar med tre olika steglängder T T(h), T T(h) och T T(h) Visa hur dessa värden bör kombineras för att erhålla en, i normala fall, bättre skattning av integralvärdet () c) Hur kan man skatta trunkeringsfelet i integralvärdet i deluppgift b ovan () d) Hur kan man kolla regelbundenheten i trapetsregelvärdena i deluppgift b ovan? P Givet följande tabell x 6 f 67 () a) Lägg ett interpolationspolynom genom de tre sista tabellpunkterna, (dvs x, och 6) med hjälp av Newtons ansats Alla koefficienter skall beräknas och dina kalkyler redovisas (Handräkning) () b) Använd dina redan utförda beräkningar i deluppgift a ovan för att bestämma det interpolationspolynom som går igenom alla fyra tabellpunkterna Redovisa alla beräkningar P Givet tabellen nedan t 0 z 6 () a) Beräkna parametrarna och γ då man anpassar kurvan z(t) (t ) + γ(t ) till samtliga mätdata med minstakvadratmetoden (5) b) Skriv ett Matlab-program som beräknar parametrarna, β, γ och δ då man anpassar kurvan z(t) (t β) + γ(t δ) till samtliga mätdata med minstakvadratmetoden P5 Givet differentialekvationsproblemet ÿ z y z z med z(0) ż(0) y(0) ẏ(0) 0 () a) Skriv om differentialekvationsproblemet till ett system av första ordningen (dvs standardform/vektorform) Glöm inte initialvillkoren () b) Skatta y() och z() med (explicita) Eulers metod och steget (5) c) Skriv ett Matlab-program som (med valfri metod) skattar och plottar y(t) och z(t) (och inget annat) på intervallet 0 t 5 Kurvan ska se rimligt slät ut (5) d) Definiera w(t) ẏ(t)/ż(t) Plotta även w(t) på samma intervall Lycka till och gott fortsatt nummande önskar Ninni & Beatrice!
Kort förslag till lösning Pa Kurvan svänger ut väldigt (fra i ytterkanterna) mellan de givna punkterna vid interpolation av hög grad Pb 0 0 5 0 TexA A 0 6 7 8 0 0 9 (Maximumnormen av en natris är summan av tyngsta raden) Pc Arbetet att lösa ett fullt system är proportionellt mot N Ett dubbelt så stort system blir då (N) 8N, dvs tar 8 gånger så lång tid Det tar då 8 mikrosekunder Pd Skriv om ekvationen så att man får ett ensamt x på ena sidan likhetstecknet, x G(x) Iterera sedan x n+ G(x n ) Metoden konvergerar mot roten x om startvärdet x 0 ligger nära roten och G(x ) < Här tex 0x e x x n+ exn 0 ex 0 < eller 0x e x x n+ log(0x) /x < Pa { T(0) 0 sin( ) + sin(6 ) + } sin(0 ) { T(0) 0 sin( ) + sin( ) + sin(6 ) + sin(8 ) + } sin(0 ) Pb ˆT(h) T(h) + T(h) T(h) dvs ˆT T + T T Pc Trunkeringsfelet i ˆT skattas som E ˆT ˆT ˆT där ˆT definieras i Pb ovan och ˆT T + T T Pd (T T )/(T T ), dvs ändringen i trapetregelvärdena skall avta cirka en faktor fyra Pa Tre punkter innebär ett andragradspolynom Newton ansats för ett andragradspolynom är y(x) c + c (x x ) + c (x x )(x x ) Välj tex x, x och x 6 y y(x ) c + 0 + 0 y y(x ) c + c (x x ) + 0 y y(x ) c + c (x x ) + c (x x )(x x ) c y c (y c )/(x x ) ( )/( ) 0 c (y c c (x x ))/((x x )(x x )) (67 0 )/((6 )(6 )) /8 Pb Fyra punkter innebär ett tredjegradspolynom Newton ansats för ett tredjegradspolynom är y(x) c + c (x x ) + c (x x )(x x ) + c (x x )(x x )(x x ) Välj de första tre punkterna samma som i Pa ovan, dvs x, x och x 6 Då blir de tre första koefficienterna desamma, dvs c, c 0 och c Återstår bara att beräkna c y y(x ) c + c (x x ) + c (x x )(x x ) + c (x x )(x x )(x x )
c y c c (x x ) c (x x )(x x )(x x ) (x x )(x x )(x x ) 0 ( ) ( ) ( ) ( )( )( 6) + 0 9 ( 5) 5 0067 Pa Sätt in mätvärdena i formeln: z (t ) + γ(t ) z (t ) + γ(t ) z (t ) + γ(t ) z (t ) + γ(t ) z 5 (t 5 ) + γ(t 5 ) 0 0 γ 6 Lös det överbestämda systemet Ac b med normalekvationerna A T Ac A T b A T A 0 0 ( 0 ) γ 0 0 0 ( 0 A T b ) γ 0 0 6 / γ ( 0)/5 (Starta med normalekvationerna: Dela först rad ett med två (7 + 5γ 7) Multiplicera den sedan med tre (5 + 5γ 5) Subtrahera sedan rad från rad ((5 0) + 0γ (5 ))) (Det ger / 05 och γ /5 5) Pb Parametrarna β och δ förekommer ickelinjärt - det blir ett ickelinjärt minstakvadratproblem Lös med Gauss-Newtons metod Metoden behöver startgissningar på samtliga parametrar, β, γ och δ Svårgissat! Men z ökar med ökande t så vi kan gissa små positiva tal på samtliga parametrar, tex Låt f ( t β) + γ( t δ) z Det ger Jacobi-matrisen J och programmet β γ δ ( t β) ( t β) ( t δ) γ( t δ) t(0:) ; z[ 6] ; c[ ] ; h; while norm(h)>e-6; fc()*(t-c())^ + c()*(t-c())^ - z ; J[(t-c())^, -*c()*(t-c()), (t-c())^, -*c()*(t-c())^]; hj\f; disp([c h]) cc-h; end; alfac(), betac(), gammac(), deltac()
(Faktum är att startgissningen β γ δ inte var så lysande bra Kör man programmet behövs hela 9 iterationer innan den konvergerar till lösningen 065, β 05, γ 000 och δ 6, men programmet konvergerar i alla fall!) P5a Vi har två andra ordningens differentialekvationer, ÿ zy och z z Då behövs hjälpfunktioner Sätt u y u u u (0) u ū ẏ ū u, u u z u u u med ū u 0 (0) 0 u (0) u ż u u u (0) P5b Steglängden h innebär två steg från t 0 till t Eulers (vanligaexplicita) metod ger ū n+ ū n + h ū n dvs 0 8 5 0 0 8 8 8 0 ū 0 ū + ū 8 + 8 5 8 5 5 8 9 Ett kortare/snabbare beräkningssätt är i tabellform t u u u u u u u u h u h u h u h u 0 0 0 0 8 6 8 8 5 8 6 5 7 6 0 5 0 8 9 Slutsvar: y() 5 och z() 8 P5c Välj tex ode5 Den väljer själv en lämplig steglängd function uprimdudt(t,u); uprim[u(); -*u()*u(); u(); u()-]; [tut,uut]ode5( dudt,[],[;0;;]); yutuut(:,); zutuut(:,); plot(tut,yut,tut,zut) P5c Lägg till wutuut(:,) / uut(:,); hold on; plot(tut,wut) /NC 5