Mer om texter i MATLAB och om iterativ lösning av linjära ekvationssystem

Relevanta dokument
Polynomanpassning i MATLAB

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

NUMPROG, 2D1212, vt Föreläsning 1, Numme-delen. Linjära ekvationssystem Interpolation, Minstakvadratmetoden

8.5 Minstakvadratmetoden

1.1 MATLABs kommandon för matriser

Minstakvadratmetoden

x 2 x 1 W 24 november, 2016, Föreläsning 20 Tillämpad linjär algebra Innehåll: Projektionssatsen Minsta-kvadratmetoden

Föreläsning 5. Approximationsteori

% Föreläsning 3 10/2. clear hold off. % Vi börjar med att titta på kommandot A\Y som löser AX=Y

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Felfortplantning och kondition

Minsta kvadratmetoden

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 2 juni 2014

Kurvanpassning. Kurvanpassning jfr lab. Kurvanpassning jfr lab

Välkomna till Numme och MATLAB, 9 hp, för Materialdesign och Energi&Miljö, årskurs 2

Ortogonal dekomposition. Minstakvadratmetoden.

Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde?

TANA09 Föreläsning 5. Matrisnormer. Störningsteori för Linjära ekvationssystem. Linjära ekvationssystem

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

Fö4: Kondition och approximation. Andrea Alessandro Ruggiu

Rapportexempel, Datorer och datoranvändning

Polynomanpassningsprogram

Veckoblad 4, Linjär algebra IT, VT2010

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Enkel och multipel linjär regression

25 november, 2015, Föreläsning 20. Tillämpad linjär algebra

Del I: Lösningsförslag till Numerisk analys,

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Från förra gången: Newton-Raphsons metod

MMA132: Laboration 2 Matriser i MATLAB

SF1624 Algebra och geometri Lösningsförslag till tentamen Lördagen den 5 juni, 2010 DEL A

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

2 Matrisfaktorisering och lösning till ekvationssystem

SF1624 Algebra och geometri

Linjär Algebra och Numerisk Analys TMA 671, Extraexempel

SF1624 Algebra och geometri Lösningsförslag till modelltentamen DEL A

Lösningar till Tentamen i Beräkningsvetenskap II, 5.0 hp, Del A. 1. (a) ODE-systemet kan skrivas på formen

15 februari 2016 Sida 1 / 32

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

TMV166 Linjär Algebra för M. Tentamen

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

Numerisk Analys, MMG410. Lecture 8. 1/30

DN1212+DN1214+DN1215+DN1240+DN1241+DN1243 mfl Lördag , kl 9-12 Tentamen i Grundkurs i numeriska metoder Del 1 (av 2)

Sammanfattning (Nummedelen)

Introduktion till MATLAB

8 Minsta kvadratmetoden

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

Institutionen för Matematiska Vetenskaper TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA

Minsta-kvadratmetoden

Varning!!! Varning!!!

SF1624 Algebra och geometri

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

1. Vi skriver upp ekvationssystemet i matrisform och gausseliminerar tills vi når trappstegsform,

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

5.7. Ortogonaliseringsmetoder

. (2p) 2x + 2y + z = 4 y + 2z = 2 4x + 3y = 6

1 som går genom punkten (1, 3) och är parallell med vektorn.

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

TANA17 Matematiska beräkningar med Matlab

1 basen B = {f 1, f 2 } där f 1 och f 2 skall uttryckas i koordinater i standardbasen.

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Syftet med den här laborationen är att du skall bli mer förtrogen med det i praktiken kanske viktigaste området inom kursen nämligen

Beräkning av integraler

Interpolation Modellfunktioner som satisfierar givna punkter

Lösningsförslag till tentamensskrivningen i Numerisk analys

DN1212+DN1214+DN1215+DN1240+DN1241+DN1243 mfl Tentamen i Grundkurs i numeriska metoder Del 2 (av 2) Lördag , kl 9-12

Modul 1: Komplexa tal och Polynomekvationer

Lösningar tentamen i kurs 2D1210,

DN1212 Numeriska Metoder och Grundläggande Programmering DN1214 Numeriska Metoder för S Lördag , kl 9-12

SF1624 Algebra och geometri Lösningsförslag till tentamen Fredagen den 23 oktober, 2009 DEL A

SF1624 Algebra och geometri Lösningsförsag till modelltentamen

Föreläsning 14: Exempel på randvärdesproblem. LU-faktorisering för att lösa linjära ekvationssystem.

Lösningsförslag till inlämningsuppgift 3 i Beräkningsprogrammering Problem 1) function condtest format compact format long

Tentamen, del 2 DN1240 Numeriska metoder gk II för F

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

TANA19 NUMERISKA METODER

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Moment Viktiga exempel Övningsuppgifter

Konvergens för iterativa metoder

1. (Dugga 1.1) (a) Bestäm v (3v 2u) om v = . (1p) and u =

Tentamen i Beräkningsvetenskap I, DV, 5.0 hp, OBS: Kurskod 1TD394

KTH 2D1240 OPEN vt 06 p. 1 (5) J.Oppelstrup

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Interpolation. 8 december 2014 Sida 1 / 20

Laboration 2. Laborationen löses i grupper om två och redovisas individuellt genom en lappskrivning den 3/10. x = 1±0.01, y = 2±0.05.

SF1513 NumProg för Bio3 HT2013 LABORATION 4. Ekvationslösning, interpolation och numerisk integration. Enkel Tredimensionell Design

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

NUMPROG, 2D1212, vt Föreläsning 9, Numme-delen. Stabilitet vid numerisk behandling av diffekvationer Linjära och icke-linjära ekvationssystem

Omtentamen i DV & TDV

Linjär algebra med tillämpningar, lab 1

SF1624 Algebra och geometri

Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, Del A

November 6, { b1 = k a

SF1624 Algebra och geometri

Laboration 4: Lineär regression

MMA132: Laboration 1 & 2 Introduktion till MATLAB

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

TAIU07 Matematiska beräkningar med Matlab

SF1624 Algebra och geometri Tentamen Onsdag, 13 januari 2016

Transkript:

Mer om texter i MATLAB och om iterativ lösning av linjära ekvationssystem Texter (strängar) i MATLAB skrivs omgivna av '' och behandlas som vektorer, med samma operationer: text = 'iss'; disp(['m' text text 'ipp' text(1)]) ger utskriften Mississippi Ett diagonaltungt linjärt ekvationssystem Ax=b kan skrivas om x = c + M * x, genom division av raderna och högerledet med diagonalelementen. M, iterationsmatrisen, består av de icke-diagonala elementen och har max-normen M < 1 (definitionen av diagonaltung). Iterationmetoden x (n+1) = c + M x (n), med x (0) = c som start, konvergerar med feluppskattningen x (n+1) - x (n) M n c Yngve Sundblad Föreläsning 3 sid.1 SF 1518/19 ht 2015 7 sept.

Iterationsmetoden enligt Jacobi och Gauss-Seidel, I MATLAB x (n+1) = c + M x (n), med x (0) = c som start, n ekvationer Jacobi: Komponenterna i x (n+1) beräknas direkt ur komponenterna i x (n) Gauss-Seidel: Komponenterna i x (n+1) beräknas ur de komponenter i x (n+1) som redan beräknats, i övrigt ur komponenter i x (n) MATLAB, utgående från matrisen M, vektorn c, felgränsen err : % Jacobi % Gauss-Seidel diffx = norm(c,inf) diffx = norm(c,inf); x=c; iter=0; x=c; iter=0; n=rank(m); while diffx >= err while diffx >= err xold = x; iter = iter+1; xold = x; iter = iter+1; x = c + M*x; for i=1:n x(i) = c(i) + M(i,:)*x; end diffx=norm(x-xold,inf) diffx=norm(x-xold,inf) end end disp( Lösning: ); disp(x); disp( Lösning: ); disp(x); disp( Varv: ); disp(iter); disp( Varv: ); disp(iter); OBS! norm(c,inf) ger maxnorm. norm(c,inf) går lika bra. Yngve Sundblad Föreläsning 3 sid.2 SF 1518/19 ht 2015 7 sept.

Jacobi och Gauss-Seidel på exempel 3.6 A=[2 10 0-1;0-1 1 5;5 1 0 0;-1 0 10 0], b=[30 25 10 70]' Efter byte av rader till diagonaltung och division med diagonalelementen och överflyttning av icke-diagonala: M=[0 0.2 0 0; 0.2 0 0-0.1; -0.1 0 0 0; 0-0.2 0.2 0] c=[2 3 7 5]' Resulterande normer med err=0.00005: Iteration Jacobi Gauss-Seidel 1 0,8 0,74 2 0,06 0,074 3 0,02 0,015 4 0,0036 0,00088 5 0,00088 0,000059 6 0,00023 0,0000039 7 0,000061 8 0,000015 Gauss-Seidel vinner klart i längden (men t.o.m. sämre i början), extra decimal efter 6, Jacobi kräver 8 iterationer Yngve Sundblad Föreläsning 3 sid.3 SF 1518/19 ht 2015 7 sept.

Minstakvadratmetoden Ett vanligt problem i vetenskap och teknik är att man har ett antal mätdata och vill anpassa en funktion / kurva till dessa. Om man har lika många parametrar som data kan man interpolera, vi återkommer till detta, men oftast har man fler data än parametrar och vill anpassa med funktionen / kurvan. Man ska alltså hantera ett överbestämt ekvationssystem. Med minstakvadratmetoden anpassar man så att summan av kvadraterna av avvikelserna mellan funktionsvärdena och mätpunkterna minimeras. Om mätvärdena är (y 1 för x 1 ), (y 2 för x 2 ), (y n för x n ) ska alltså funktionen y = f(x) anpassas så att k r k 2 = k (y k - f(x k )) 2 minimeras Yngve Sundblad Föreläsning 3 sid.4 SF 1518/19 ht 2015 7 sept.

Linjär minstakvadratanpassning 1 Ofta vill man anpassa till en linjär kombination av basfunktioner som en rät linje, ett högregradspolynom eller ett uttryck som kan omformas till detta (t.ex. genom logaritmering). Låt oss titta på fallet med två basfunktioner, f 1 (x), f 2 (x) : y= F(x) = c 1 f 1 (x)+ c 2 f 2 (x) ska anpassas till (y 1,x 1 ),(y 2,x 2 ), (y n, x n ) så att k r k 2 = k (c 1 f 1 (x k ) + c 2 f 2 (x k ) - y k ) 2 minimeras Då gäller om F = [ f 1 f 2 ] c att F y och att vi vill finna c så att y F 2 ( kvadratsumman) minimeras Geometriskt: f 1 f 2 F y För att längden av y F ska vara så liten som möjligt måste den vara ortogonal (vinkelrät) mot F, dvs både mot f 1 och f 2, som är kolumnerna i systemmatrisen: A T (y F)=0, A T (y Ac)=0, A T Ac=A T y Normalekvationerna Yngve Sundblad Föreläsning 3 sid.5 SF 1518/19 ht 2015 7 sept.

Linjär minstakvadratanpassning 2 rät linje Analogt kan man, med mer skrivarbete, visa att det allmänt gäller för linjär minstakvadratanpassning med godtyckligt många basfunktioner, Ac = y, att bästa lösningen (koefficenterna) ges av normalekvationerna A T Ac = A T y I MATLAB finns inbyggt att för ett överbestämt linjärt ekvationssystem Ac = y ger c=a\y minstakvadratlösningen. Exempel 1(Pohl): Upphettad stång från T=20 grader, uppmätt längdökning (y): T=[20 30 40 50 60 70 80]' y=[0.0 1.1 1.5 2.2 3.3 3.8 4.7]' Anpassa till linjen y = c 1 + c 2 T: A=[1 1 1 1 1 1 1; 20 30 40 50 60 70 80]' N=A *A=[7 350; 350 20300]; z=a *y=[16.6 1043]' c=n\z ger [-1.4321 0.0761]; c=a\y ger samma. Residualvektorn: r=y-ac: 0.01*[-9 25-11 -17 17-9 4] Yngve Sundblad Föreläsning 3 sid.6 SF 1518/19 ht 2015 7 sept.

Linjär minstakvadratanpassning 3 sönderfall Exempel 2 (NAM (Eriksson)): Radioaktivt sönderfall: t=[0:500:3000]' x=[0.100 0.0892 0.0776 0.0705 0.0603 0.0542 0.0471]' Anpassa till produktfunktionen x(t) = x0 exp(-kt) Logaritmera: y = ln x = ln x0 kt = c 1 + c 2 t MATLAB (med vektorerna t och x ovan): y = log(x); A=[ones(size(t)) t]; c=a\y; x0 = exp(c(1)) ger 0,1006 k = -c(2) ger 0,00025 (halveringstid ln2/k = 2772 sek, rimligt) xanp=x0*exp(-k*t) ger [0.1006 0.0888 0.0783 0.0691 0.0610 0.0538 0.0474]' residual = x-xanp ger 1e-4*[-6 4-7 14 7 4 3]' Yngve Sundblad Föreläsning 3 sid.7 SF 1518/19 ht 2015 7 sept.

Plottning av anpassad kurva och avvikelser subplot(2,1,1); plot(t,x, *,t,xanp); subplot(2,1,2); plot(t,residual); Yngve Sundblad Föreläsning 3 sid.8 SF 1518/19 ht 2015 7 sept.

Linjär minstakvadratanpassning 4 planetbanor (Kepler) Exempel 4.15 (EXS): Planetbanor (solavstånd R i jordradier, omloppstid T i år): Merkurius (0,39 0,24) Venus (0,72 0,62) Mars (1,52 1,88) Jupiter(5,20 11.9) Saturnus (9,50 29,5) Uranus (19,0 84,0) Anpassa T0 och q i T = T0 * R q, log(t) = log(t0) + q* log(r) MATLAB: R=[0.39 0.72 1.52 5.2 9.5 19]' T=[0.24 0.62 1.88 11.9 29.5 84]' y = log(t); A=[ones(6,1) R]; c=a\y; T0 = exp(c(1)); q = c(2); ger T0=1,0008, q=1,5040 r=t-t0*r.^q ger 1e-3*[-3-9 1.5-45 -67 141]' r=t-r.^1.5 ger 1e-3*[-4 9 0.6 42 219 1181]' Utan Uranus (upptäckt 1781), med Jorden (1, 1): T0=1,0006, q=1,5036 Kepler (1619): Tre lagar för planetrörelse i ellipser, den tredje: T 2 = R 3 eller T = R 1,5 (baserad på beräkningar från Tycho Brahes observationer) Yngve Sundblad Föreläsning 3 sid.9 SF 1518/19 ht 2015 7 sept.

Polynomanpassning med minstakvadrat Vid anpassning med polynom av grad n (n 2) till data kan man råka ut för stort konditionstal, dvs små fel i matrisen ger stora fel i resulterande parametrarna. Detta kan kraftigt förbättras genom centrering, dvs välja 1, x-x medel, (x-x medel ) 2, (x-x medel ) 3, som basfunktioner istället för 1, x, x 2, x 3, Exempel 3 (NAM): x=[15:1:19]'; y=[15 8 5 3 3]'; Anpassa till y = F(x) = c 1 + c 2 x + c 3 x 2 A=[1 15 225; 1 16 256; 1 17 289; 1 18 324; 1 19 361] A A = [5 85 1455; 85 1455 25075; 1455 25075 434979] A y = [34 549 8929]; A\y ger [363.6-39.3286 1.0714] cond(a *A) ger 3e9 Anpassa till y = F(x) = c 1 + c 2 (x-17) + c 3 (x-17) 2 B=[1-2 4; 1-1 1; 1 0 0; 1 1 1; 1 2 4]; B B=[5 0 10; 0 10 0; 1 0 34]; B'y=[34-29 83]'; B\y ger [4.6571-2.9000 1.0714] cond(b'*b) ger 20 Yngve Sundblad Föreläsning 3 sid.10 SF 1518/19 ht 2015 7 sept.

Polynomanpassning i MATLAB Funktionsanropet c=polyfit(x,y,n) ger koefficiemterna i ett n:e-gradspolynom som anpassar sig till y-värdena för x-värdena med lämplig metod. yv=polyval(c,xv) ger värdet av polynomet för xv. I vårt exempel 3 med ursprungliga andragradspolynomet c=polyfit(x,y,2)ger[1.0714-39.3286 363.6000]' OBS! Omvänd ordning, högsta koefficienten först, också i c för polyval polyval(c,17) ger 4.6571, stämmer med 4.6571-2.9000(x-17)+1.0714(x-17)^2 Yngve Sundblad Föreläsning 3 sid.11 SF 1518/19 ht 2015 7 sept.

Överkurs I NAM (Eriksson), avsnitt 2.5-2.7 beskrivs för minstakvadratmetoden 2.5 Residualanalys 2.6 Experimentell störningsräkning 2.7 Praktisk statistik Det ingå inte i kursen och kommer inte på tentan, men är läsvärt för speciellt intresserade. Yngve Sundblad Föreläsning 3 sid.12 SF 1518/19 ht 2015 7 sept.