Pienimm"an neli"osumman sovitus

Samankaltaiset tiedostot
MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

MS-C1340 Lineaarialgebra ja

Numeeriset menetelmät TIEA381. Luento 6. Kirsi Valjus. Jyväskylän yliopisto. Luento 6 () Numeeriset menetelmät / 33

Mat-C.1 harj2. Alustuksia f d 1 C sin x 1 C x 2 f := 1 C sin x

1. Lineaarialgebraa A := Matriisin osia voidaan muutella päivittämällä riviä, saraketta tai osamatriisia (Matlabmaisesti): B :=

Sovellettu todennäköisyyslaskenta B

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

Mat-1.C Matemaattiset ohjelmistot

Reaalilukuvälit, leikkaus ja unioni (1/2)

y = k 1 x + b 1, x < s y = k 2 x + b 2, x > s

x 0 x 1 x 2... x n y 0 y 1 y 2... y n Taulukko 1:

Numeeriset menetelmät

BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 7, Kevät 2018

plot(f(x), x=-5..5, y= )

2. Teoriaharjoitukset

Lineaarialgebra a, kevät 2018

Harjoitus 4 -- Ratkaisut

Numeeriset menetelmät

Lineaarialgebra, kertausta aiheita

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

mlcurvefit 1. mlcf01.tex [Maple:../../mplteht/mplCurveFit/mplCF01.tex]

Esimerkki 19. Esimerkissä 16 miniminormiratkaisu on (ˆx 1, ˆx 2 ) = (1, 0).

Numeerinen analyysi Harjoitus 3 / Kevät 2017

Lineaarialgebra b, kevät 2019

Aalto-yliopisto, Matematiikan ja Systeemianalyysin laitos Mat-1.C Matemaattiset ohjelmistot

Lineaarialgebra a, kevät 2019 Harjoitus 6 (ratkaisuja Maple-dokumenttina) > restart; with(linalg): # toteuta ihan aluksi!

Pienimmän neliösumman menetelmä

Lineaarialgebra ja matriisilaskenta II. LM2, Kesä /141

Harj 2 teht. 13. mplv0009r.mw

Pienimmän neliösumman menetelmä (PNS)

Jos havaitaan päivän ylin lämpötila, mittaustuloksissa voi esiintyä seuraavantyyppisiä virheitä:

Sovellettu todennäköisyyslaskenta B

Ratkaisuehdotukset LH 7 / vko 47

MS-C1340 Lineaarialgebra ja

Inversio-ongelmien laskennallinen peruskurssi Luento 3

MS-C1340 Lineaarialgebra ja

Pienimmän neliösumman menetelmä (PNS)

Lineaarinen yhtälöryhmä

8. Yhtälöiden ratkaisuja Newtonilla, animaatioita

Pienimmän neliösumman menetelmä (PNS)

Kanta ja Kannan-vaihto

Lineaarialgebra a, kevät 2018

Aiheet. Kvadraattinen yhtälöryhmä. Kvadraattinen homogeeninen YR. Vapaa tai sidottu matriisi. Vapauden tutkiminen. Yhteenvetoa.

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

Inversio-ongelmien laskennallinen peruskurssi Luento 2

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä)

MS-A0004/MS-A0006 Matriisilaskenta Laskuharjoitus 6 / vko 42

Numeeriset menetelmät TIEA381. Luento 7. Kirsi Valjus. Jyväskylän yliopisto. Luento 7 () Numeeriset menetelmät / 43

Harjoitus 6 -- Ratkaisut

Pienimmän Neliösumman menetelmä (PNS)

TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio. Kimmo Berg. Mat Optimointioppi. 9. harjoitus - ratkaisut

1 Rajoittamaton optimointi

Ominaisarvoon 4 liittyvät ominaisvektorit ovat yhtälön Ax = 4x eli yhtälöryhmän x 1 + 2x 2 + x 3 = 4x 1 3x 2 + x 3 = 4x 2 5x 2 x 3 = 4x 3.

k=0 saanto jokaisen kolmannen asteen polynomin. Tukipisteet on talloin valittu

Kaksinkertaisen ominaisarvon tapauksessa voi olla yksi tai kaksi lineaarisesti riippumatonta ominaisvektoria.

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Insinöörimatematiikka D

802118P Lineaarialgebra I (4 op)

Matematiikka B1 - avoin yliopisto

Numeeriset menetelmät

Ennakkotehtävän ratkaisu

Optimaalisuusehdot. Yleinen minimointitehtävä (NLP): min f(x) kun g i (x) 0 h j (x) = 0

3.2.2 Tikhonovin regularisaatio

Lineaarialgebra a, kevät 2018 Harjoitusta 5 Maplella

Paikannuksen matematiikka MAT

Osittaistuenta Gaussin algoritmissa: Etsitään 1. sarakkeen itseisarvoltaan suurin alkio ja vaihdetaan tämä tukialkioiksi (eli ko. rivi 1. riviksi).

Matematiikan tukikurssi

= 2±i2 7. x 2 = 0, 1 x 2 = 0, 1+x 2 = 0.

Kohdeyleisö: toisen vuoden teekkari

Funktioiden approksimointi ja interpolointi

Matemaattinen Analyysi / kertaus

Kuvaus. Määritelmä. LM2, Kesä /160

Tehtävä 2. Osoita, että seuraavat luvut ovat algebrallisia etsimällä jokin kokonaislukukertoiminen yhtälö jonka ne toteuttavat.

Talousmatematiikan perusteet: Luento 14. Rajoittamaton optimointi Hessen matriisi Ominaisarvot Ääriarvon laadun tarkastelu

Lineaarialgebra a, kevät 2018

Matemaattiset ohjelmistot 1-2 ov, 2-3 op

Matematiikan tukikurssi, kurssikerta 3

Differentiaali- ja integraalilaskenta 2 Laskuharjoitus 4 / vko 40

Lisä- ja projektitehtäviä V3-kurssille

Likimääräisratkaisut ja regularisaatio

1 Kannat ja kannanvaihto

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Regressioanalyysi. Vilkkumaa / Kuusinen 1

Yleiset lineaarimuunnokset

Käänteismatriisi 1 / 14

Numeeriset menetelmät

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Matematiikan tukikurssi

Matriiseista. Emmi Koljonen

Pienimmän Neliösumman Sovitus (PNS)

mplperusteet 1. Tiedosto: mplp001.tex Ohjelmat: Maple, [Mathematica] Sievennä lauseke x 1 ( mplp002.tex (PA P1 s.2011)

Regressioanalyysi. Kuusinen/Heliövaara 1

5 Lineaariset yhtälöryhmät

Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa.

x j x k Tällöin L j (x k ) = 0, kun k j, ja L j (x j ) = 1. Alkuperäiselle interpolaatio-ongelmalle saadaan nyt ratkaisu

Lineaarikuvauksen R n R m matriisi

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

Transkriptio:

Pienimm"an neli"osumman sovitus Aluksi luentoesimerkki V2 19.3. 2002, V3 lokakuu -02 2013kevat/maple/ restart with(linearalgebra):alias(tr=transpose): with plots : xd:=[-1.3,-0.1,0.2,1.3]; yd:=[0.103,1.099,0.808,1.897]; xd := K1.3, K0.1, 0.2, 1.3 n:=nops(xd); yd := 0.103, 1.099, 0.808, 1.897 n := 4 plot([seq([xd[i],yd[i]],i=1..n)],style=point,symbol=circle, symbolsize=15); (1.1) (1.2)

1.8 1.6 1.4 1.2 1.0 0.8 0.6 0.4 0.2 K1 K0.5 0 0.5 1 datakuva:=%: C:=<<1,1,1,1 <op(xd); 1 K1.3 C := 1 K0.1 1 0.2 (1.3) 1 1.3 M:=Tr(C).C; M := 4. 0.0999999999999999 0.0999999999999999 3.43000000000000 (1.4) B:=Tr(C).Vector(yd); ab:=linearsolve(m,b); B := 3.90700000000000 2.38390000000000 (1.5) (1.6)

ab := 0.960074398249453 0.667024070021882 suora:=ab[1]+ab[2]*x; suora := 0.960074398249453 C 0.667024070021882 x display(plot(suora,x=-2..2,color=blue),datakuva); (1.6) (1.7) 2 1.5 1 0.5 K2 K1 0 1 2 x %restart; with plots : %restart (1) Muistellaan aluksi interpolaatioteht. Esim: xd:=[$1..10];yd:=[1.3,3.5,4.2,5.0,7.0,8.8,10.1,12.5,13.0,15.6]; xd := 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 yd := 1.3, 3.5, 4.2, 5.0, 7.0, 8.8, 10.1, 12.5, 13.0, 15.6 (2)

plot xd, yd ; 14 12 10 8 6 4 2 1 2 3 4 5 6 7 8 9 10 datakuva d plot xd, yd, style = point, symbol = cross, symbolsize = 18 : plot([seq([xd[i],yd[i]],i=1..10)],style=point,symbol=cross, symbolsize=18); # Vaihtoehtoinen tapa: pisteiden lista.

14 12 10 8 6 4 2 1 2 3 4 5 6 7 8 9 10 p:=interp(xd,yd,x); # Ei tarvitse ladata. p := 0.00007164903227 x 9 K 0.003127480266 x 8 C 0.05718584874 x 7 K 0.5698264133 x 6 C 3.378032576 x 5 K 12.26852504 x 4 C 27.40284704 x 3 K 37.40852517 x 2 C 31.31186805 x K 10.60000106 display(datakuva,plot(p,x=0..10,color=blue)); (3)

15 10 5 0 2 4 6 8 10 x K5 K10 Interpolaatio pakottaa polynomin usein voimakkaaseen heilahteluun, jolloin "mets"a katoaa n"akyvist"a puilta". Luovutaan vaatimuksesta, ett"a polynomin tulisi kulkea datapisteiden kautta. Valitaan alempiasteinen polynomi, joka sopivassa mieless"a approksimoi parhaiten annettua dataa. Kriteeriksi valitaan usein funktiomallin (t"ass polynomi) ja datapisteiss"a laskettujen erotuksten neli"osumman minimointi. T"at"a kautta menetelm"a liittyy funktioiden "a"ariarvoteemaan. Polynomi-PNS-teht"av"ass"a on annettu datapisteit"a ( x i, y i ) (paljon) ja teht"av"an"a on sovittaa esim. polynomi p x = b 0 C b 1 x C b 2 x 2 C b 3 x 3 n 2 annettuun dataan niin, ett"a i y i K p x i minimoituu. = 1 Yleens"a datapisteiden lkm =n on paljon suurempi kuin polynomin asteluku m (t"ass"a 3). j Jos A on matriisi, jonka alkiot ovat a i, j = x i, i=1..n, j=0..3, saadaan b-kertoimien m"a"ar"a"amiseksi ylim"a"ar"aytyv"a yht"al"osysteemi A b = y, miss"a siis A on n x 3 - matriisi. PNS-ratkaisuun p"a"ast"a"an kertomalla t"am"a systeemi A:n transpoosilla, jolloin ratkaistavaksi tulee

systeemi (1) (A^T)A b = A^T y (miss"a A^T tarkoittaa A:n transpoosia) (T"am"a johdetaan joko osittaisderivoimalla tai ortogonaaliprojektioon perustuvalla geometrisluonteisella argumentilla.) Jos tuntemattomia kertoimia on yht"a monta kuin datapisteit"a (polynomin asteluku = n-1), niin systeemill"a A b = y on yksik"asitteinen ratkaisu, mik"ali x-pisteet ovat erillisi"a. T"all"oin on kyse interpolaatiopolynomista. Yll"a oleva ratkaisu voidaan Maplella tehd"a rakentamalla matriisi A ja ratkaisemalla systeemi (1). Maplen LinearAlgebra-kirjastossa on my"os LeastSquares- funktio, jolle annetaan pelkk"a A - matriisi ja datapisteet, joka siis ratkaisee ylim"a"ar"aytyv"an systeemin A b = y PNS-mieless"a. Jotta valinta ei olisi liian helppoa, Maplessa on my"os kirjasto CurveFitting ja siell"a funktio LeastSquares, joka suorittaa sovituksen suoraan datan perusteella, ja k"aytt"aj"all"a on valittavanaan eri menetelmi"a. restart:with(linearalgebra): #with(linalg): with(plots):#with(stats): alias(tr=transpose,van=vandermondematrix): Esim. Sovita 2. asteen polynomi annettuun dataan xd:=[8,10,12,16,20,30,40,60,100]; yd:=[0.88,1.22,1.64,2.72,3.96,7.66,11.96,21.56,43.16]; xd := 8, 10, 12, 16, 20, 30, 40, 60, 100 n:=nops(xd); yd := 0.88, 1.22, 1.64, 2.72, 3.96, 7.66, 11.96, 21.56, 43.16 n := 9 C:=Van(xd,n,3); # tai # Matrix((i,j)-xd[i]^(j-1),n,3); 1 8 64 C := 1 10 100 1 12 144 1 16 256 1 20 400 1 30 900 1 40 1600 1 60 3600 1 100 10000 (3.1) (3.2) (3.3)

M:=Tr(C).C; M := 9 296 17064 296 17064 1322336 17064 1322336 116590368 (3.4) b:=tr(c).vector(yd); b := a:=linearsolve(m,b); a := 94.7600000000000 6479.44000000000 5.37940800000000 10 5 K1.91914925269908 0.278213536291725 0.00173940087505516 (3.5) (3.6) p:=add(a[i]*x^(i-1),i=1..3); p := K1.91914925269908 C 0.278213536291725 x C 0.00173940087505516 x 2 datakuva:=plot([seq([xd[i],yd[i]],i=1..n)],style=point,symbol= cross,symbolsize=18): display(plot(p,x=7..100,color=blue),datakuva); (3.7)

40 30 20 10 10 20 30 40 50 60 70 80 90 100 x Tarkistetaan LinearAlgebra- ja CurveFitting-pakkauksten LeastSquares-funktioilla. Huomaa, ett"a samannimisten funktioiden tapauksessa on syyt"a k"aytt"a"a pitk"a"a muotoa, muuten toiminta riipuu kirjastojen latausj"arjestyksest"a (onneksi menee virheeseen, eik"a laske jotain p"a"at"ont"a). LinearAlgebra LeastSquares C, Vector yd ; K1.91914925269908 0.278213536291725 0.00173940087505516 CurveFitting LeastSquares xd, yd, x, curve = c0$x 2 C c1$x C c2 K1.91914925269908 C 0.278213536291725 x C 0.00173940087505516 x 2 (3.8) (3.9) H"airi"oalttius alias cond = ConditionNumber Tr, Van, cond (4.1)

n:=5: m:=n-2:x:=[$1..n]; x := 1, 2, 3, 4, 5 C:=Van(x,n,m);cond(Tr(C).C): evalf(%); 1 1 1 C := 1 2 4 1 3 9 1 4 16 1 5 25 (4.2) 10575.60000 n:=6: m:=n-2:x:=[$1..n]:c:=van(x,n,m):cond(tr(c).c): evalf(%); 3.034650032 10 6 n:=10: m:=n-2:x:=[$1..n]:c:=van(x,n,m):cond(tr(c).c): evalf(%); 1.786053076 10 18 (4.3) (4.4) (4.5) H"airi"oluku cond mittaa sensitiivisyytt"a virheille (datan virheille ja py"oristysvirheille). Normaaliyht"al"oratkaisun varjopuoli on suuri h"ari"oalttius, jos teht"av"an koko on v"ah"ank"a"an suuri. n:=6: m:=2:x:=[$1..n]:c:=van(x,n,m):cond(tr(c).c): evalf(%); 119.4666667 n:=20: m:=2:x:=[$1..n]:c:=van(x,n,m):cond(tr(c).c): evalf(%); 713.2631579 n:=20: m:=3:x:=[$1..n]:c:=van(x,n,m):cond(tr(c).c): evalf(%); 5.124155474 10 5 Paremmat menetelm"at perustuvat ortogonalisointiin tai ns. singulaariarvohajoitelmaan. (4.6) (4.7) (4.8) Esim. Sovita a) 2. asteen PNS-polynomi ja b) interpolaatiopolynomi P:=[[1.4,7400],[1.8,7500],[2.4,7600],[3,7500],[4,7200]]; P := 1.4, 7400, 1.8, 7500, 2.4, 7600, 3, 7500, 4, 7200 xd:=map(lis-lis[1],p); yd:=map(lis-lis[2],p); xd := 1.4, 1.8, 2.4, 3, 4 yd := 7400, 7500, 7600, 7500, 7200 (5.1) (5.2) Jos tuo n"aytt"a"a oudolta, voitaisiin tehd"a funktiot poimieka:=x-x[1]; poimitoka:= x-x[2]; ja suorittaa xd:=map(poimieka,p);yd:=map(poimitoka,p); T"ass"a on k"atev"a ja yleisp"atev"a tapa muodostaa matriisi. C:=Matrix(5,3,(i,j)-xd[i]^(j-1)); (5.3)

C := 1.0 1.4 1.96 1.0 1.8 3.24 1.0 2.4 5.76 1 3 9 1 4 16 (5.3) Tai, kuten edell"a, suoraan LinearAlgebra-kirjaston funktiolla (joka yll"a "aliasoitiinkin" nimelle Van). VandermondeMatrix(xd):%[1..5,1..3]; # 1.0 1.4 1.96 1.0 1.8 3.24 1.0 2.4 5.76 1 3 9 1 4 16 (5.4) K"aytet"a"an nyt sit"a keskimm"aist"a "harmaata laatikkoa" kertoimet:=linearalgebra[leastsquares](c,vector(yd)); 6639.59080643039 kertoimet := 762.903547229810 K156.021655373958 (5.5) x d'x' x := x poly2:=tr(kertoimet).<1,x,x^2; poly2 := 6639.59080643039 C 762.903547229810 x K 156.021655373958 x 2 display(plot(p,style=point,symbol=circle,color=black),plot(poly2, x=1.3..4.2)); (5.6) (5.7)

7600 7500 7400 7300 7200 7100 1.5 2 2.5 3 3.5 4 x b) Nyt haetaan interpolaatioplynomia. Sen asteluku = datapisteiden lkm -1 = 4. No siihen l"oytyy taas ihan valmiskin funktio: (Jos ratkaistaisiin LSQ-teht"av"an"a, matriisina olisi koko Vandermonde (transposilla kertominen voitaisiin "supistaa pois").) intpol:=interp(xd,yd,x); intpol := 80.73523702 x 4 K 815.8508161 x 3 C 2777.073622 x 2 K 3681.701634 x C 9039.860141 display(plot(intpol,x=1.3..4.2,color=blue),plot(p,style=point, symbol=circle,color=black),plot(poly2,x=1.3..4.2,color=gray)); (5.8)

7600 7500 7400 7300 7200 7100 1.5 2 2.5 3 3.5 4 x SVD:n ja QR-hajotelman k"aytt"o LSQ:ssa Aiheesta jatkoty"oarkilla (ja jatkokursilla). Hyv"a tiet"a"a: K"aytt"aj"a voi valita menetelm"an CurveFitting-pakkauksen LeastSquaresfunktiossa. Polynomin asteluvun nostaminen lis"a"a dramaattisesti h"airi"oalttiutta.