Pienimm"an neli"osumman sovitusV2 19.3. 2002, V3 lokakuu -022013kevat/maple/Aluksi luentoesimerkkiLUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2JVEocmVzdGFydEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJw==with(LinearAlgebra):alias(Tr=Transpose):LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEld2l0aEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JKG1mZW5jZWRHRiQ2JC1GIzYjLUYsNiVRJnBsb3RzRidGL0YyL0YzUSdub3JtYWxGJy1JI21vR0YkNi1RIjpGJ0Y9LyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZFLyUpc3RyZXRjaHlHRkUvJSpzeW1tZXRyaWNHRkUvJShsYXJnZW9wR0ZFLyUubW92YWJsZWxpbWl0c0dGRS8lJ2FjY2VudEdGRS8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRlQ=xd:=[-1.3,-0.1,0.2,1.3]; yd:=[0.103,1.099,0.808,1.897];n:=nops(xd);plot([seq([xd[i],yd[i]],i=1..n)],style=point,symbol=circle,symbolsize=15);datakuva:=%:C:=<<1,1,1,1>|<op(xd)>>;M:=Tr(C).C;B:=Tr(C).Vector(yd);ab:=LinearSolve(M,B);suora:=ab[1]+ab[2]*x;display(plot(suora,x=-2..2,color=blue),datakuva);LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYrLUkjbWlHRiQ2JVEpJXJlc3RhcnRGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSI7RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0YxLyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLUY2Ni1RIn5GJ0Y5RjsvRj9GPUZARkJGREZGRkhGSi9GTkZMLUYsNiVRJXdpdGhGJ0YvRjItSShtZmVuY2VkR0YkNiQtRiM2Ji1GLDYlUSZwbG90c0YnRi9GMi8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStleGVjdXRhYmxlR0Y9RjlGOS1GNjYtUSI6RidGOUY7RlNGQEZCRkRGRkZIL0ZLRk9GTUZqbkZdb0Y5Muistellaan 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];LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVElcGxvdEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JKG1mZW5jZWRHRiQ2JC1GIzYlLUYsNiVRI3hkRidGL0YyLUkjbW9HRiQ2LVEiLEYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGMS8lKXN0cmV0Y2h5R0ZFLyUqc3ltbWV0cmljR0ZFLyUobGFyZ2VvcEdGRS8lLm1vdmFibGVsaW1pdHNHRkUvJSdhY2NlbnRHRkUvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR1EsMC4zMzMzMzMzZW1GJy1GLDYlUSN5ZEYnRi9GMkZBLUY+Ni1RIjtGJ0ZBRkNGRkZIRkpGTEZORlBGUi9GVlEsMC4yNzc3Nzc4ZW1GJw==LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2JVEpZGF0YWt1dmFGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSomY29sb25lcTtGJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGTC1GLDYlUSVwbG90RidGL0YyLUkobWZlbmNlZEdGJDYkLUYjNjEtRiw2JVEjeGRGJ0YvRjItRjY2LVEiLEYnRjlGOy9GP0YxRkBGQkZERkZGSC9GS1EmMC4wZW1GJy9GTlEsMC4zMzMzMzMzZW1GJy1GLDYlUSN5ZEYnRi9GMkZaLUYsNiVRJnN0eWxlRidGL0YyLUY2Ni1RIj1GJ0Y5RjtGPkZARkJGREZGRkhGSkZNLUYsNiVRJnBvaW50RidGL0YyRlotRiw2JVEnc3ltYm9sRidGL0YyRmJvLUYsNiVRJmNyb3NzRidGL0YyRlotRiw2JVErc3ltYm9sc2l6ZUYnRi9GMkZiby1JI21uR0YkNiRRIzE4RidGOUY5LUY2Ni1RIjpGJ0Y5RjtGPkZARkJGREZGRkhGSkZNplot([seq([xd[i],yd[i]],i=1..10)],style=point,symbol=cross,symbolsize=18); # Vaihtoehtoinen tapa: pisteiden lista.p:=interp(xd,yd,x); # Ei tarvitse ladata.display(datakuva,plot(p,x=0..10,color=blue));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 ( LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUklbXN1YkdGJDYlLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1GIzYkLUYvNiVRImlGJ0YyRjUvRjZRJ25vcm1hbEYnLyUvc3Vic2NyaXB0c2hpZnRHUSIwRictSSNtb0dGJDYtUSIsRidGPS8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGNC8lKXN0cmV0Y2h5R0ZILyUqc3ltbWV0cmljR0ZILyUobGFyZ2VvcEdGSC8lLm1vdmFibGVsaW1pdHNHRkgvJSdhY2NlbnRHRkgvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR1EsMC4zMzMzMzMzZW1GJy1GLDYlLUYvNiVRInlGJ0YyRjVGOEY/Rj0=) (paljon) ja teht"av"an"a on sovittaa esim. polynomiLUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbW9HRiQ2LVEhRicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y0LyUpc3RyZXRjaHlHRjQvJSpzeW1tZXRyaWNHRjQvJShsYXJnZW9wR0Y0LyUubW92YWJsZWxpbWl0c0dGNC8lJ2FjY2VudEdGNC8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkMtRiM2KEYrLUYjNiYtSSNtaUdGJDYlUSJwRicvJSdpdGFsaWNHUSV0cnVlRicvRjBRJ2l0YWxpY0YnLUYsNi1RMCZBcHBseUZ1bmN0aW9uO0YnRi9GMkY1RjdGOUY7Rj1GP0ZBRkQtSShtZmVuY2VkR0YkNiQtRiM2JC1GSzYlUSJ4RidGTkZRRi9GL0YvLUYsNi1RIj1GJ0YvRjJGNUY3RjlGO0Y9Rj8vRkJRLDAuMjc3Nzc3OGVtRicvRkVGXG8tRiM2Ky1JJW1zdWJHRiQ2JS1GSzYlUSJiRidGTkZRLUYjNiQtSSNtbkdGJDYkUSIwRidGL0YvLyUvc3Vic2NyaXB0c2hpZnRHRltwLUYsNi1RIitGJ0YvRjJGNUY3RjlGO0Y9Rj8vRkJRLDAuMjIyMjIyMmVtRicvRkVGYnAtRiM2Ji1GYW82JUZjby1GIzYkLUZpbzYkUSIxRidGL0YvRlxwLUYsNi1RMSZJbnZpc2libGVUaW1lcztGJ0YvRjJGNUY3RjlGO0Y9Rj9GQUZERmVuRi9GXnAtRiM2Jy1GYW82JUZjby1GIzYkLUZpbzYkUSIyRidGL0YvRlxwRl1xLUYjNiQtSSVtc3VwR0YkNiVGZW5GZnEvJTFzdXBlcnNjcmlwdHNoaWZ0R0ZbcEYvRitGL0ZecC1GIzYnLUZhbzYlRmNvLUYjNiQtRmlvNiRRIjNGJ0YvRi9GXHBGXXEtRiM2JC1GXHI2JUZlbkZmckZeckYvRitGL0YrRi9GK0YvRitGLw==annettuun dataan niin, ett"a LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbW9HRiQ2LVEhRicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y0LyUpc3RyZXRjaHlHRjQvJSpzeW1tZXRyaWNHRjQvJShsYXJnZW9wR0Y0LyUubW92YWJsZWxpbWl0c0dGNC8lJ2FjY2VudEdGNC8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkMtRiM2KC1JK211bmRlcm92ZXJHRiQ2Jy1GLDYtUSYmU3VtO0YnRi9GMkY1L0Y4USV0cnVlRidGOS9GPEZPL0Y+Rk9GP0ZBL0ZFUSwwLjE2NjY2NjdlbUYnLUYjNiYtSSNtaUdGJDYlUSJpRicvJSdpdGFsaWNHRk8vRjBRJ2l0YWxpY0YnLUYsNi1RIj1GJ0YvRjJGNUY3RjlGO0Y9Rj8vRkJRLDAuMjc3Nzc3OGVtRicvRkVGXG8tSSNtbkdGJDYkUSIxRidGL0YvLUZXNiVRIm5GJ0ZaRmZuRj8vJSxhY2NlbnR1bmRlckdGNEYrLUknbXNwYWNlR0YkNiYvJSdoZWlnaHRHUSYwLjBleEYnLyUmd2lkdGhHUSQ1LjBGJy8lJmRlcHRoR0ZccC8lKmxpbmVicmVha0dRJWF1dG9GJy1GIzYkLUklbXN1cEdGJDYlLUkobWZlbmNlZEdGJDYkLUYjNictSSVtc3ViR0YkNiUtRlc2JVEieUYnRlpGZm4tRiM2JEZWRi8vJS9zdWJzY3JpcHRzaGlmdEdRIjBGJy1GLDYtUSgmbWludXM7RidGL0YyRjVGN0Y5RjtGPUY/L0ZCUSwwLjIyMjIyMjJlbUYnL0ZFRl5yLUYjNiYtRlc2JVEicEYnRlpGZm4tRiw2LVEwJkFwcGx5RnVuY3Rpb247RidGL0YyRjVGN0Y5RjtGPUY/RkFGRC1GW3E2JC1GIzYkLUZgcTYlLUZXNiVRInhGJ0ZaRmZuRmVxRmdxRi9GL0YvRitGL0YvLUZfbzYkUSIyRidGLy8lMXN1cGVyc2NyaXB0c2hpZnRHRmlxRi9GK0YvRitGLw== minimoituu.Yleens"a datapisteiden lkm =n on paljon suurempi kuin polynomin asteluku m (t"ass"a 3).Jos A on matriisi , jonka alkiot ovat LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbW9HRiQ2LVEhRicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y0LyUpc3RyZXRjaHlHRjQvJSpzeW1tZXRyaWNHRjQvJShsYXJnZW9wR0Y0LyUubW92YWJsZWxpbWl0c0dGNC8lJ2FjY2VudEdGNC8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkMtRiM2Ji1JJW1zdWJHRiQ2JS1JI21pR0YkNiVRImFGJy8lJ2l0YWxpY0dRJXRydWVGJy9GMFEnaXRhbGljRictRiM2Ji1GTDYlUSJpRidGT0ZSLUYsNi1RIixGJ0YvRjIvRjZGUUY3RjlGO0Y9Rj9GQS9GRVEsMC4zMzMzMzMzZW1GJy1GTDYlUSJqRidGT0ZSRi8vJS9zdWJzY3JpcHRzaGlmdEdRIjBGJy1GLDYtUSI9RidGL0YyRjVGN0Y5RjtGPUY/L0ZCUSwwLjI3Nzc3NzhlbUYnL0ZFRmNvLUkobXN1YnN1cEdGJDYnLUZMNiVRInhGJ0ZPRlItRiM2JEZWRi9GaW4vJTFzdXBlcnNjcmlwdHNoaWZ0R0Zeb0Zcb0YvRitGLw== , 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 tuleesysteemi (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 geometrisluonteisellaargumentilla.)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, jokasiis 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 suorittaasovituksen 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 dataanxd:=[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];n:=nops(xd);C:=Van(xd,n,3); # tai # Matrix((i,j)->xd[i]^(j-1),n,3);M:=Tr(C).C;b:=Tr(C).Vector(yd);a:=LinearSolve(M,b);p:=add(a[i]*x^(i-1),i=1..3);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);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 kirjastojenlatausj"arjestyksest"a (onneksi menee virheeseen, eik"a laske jotain p"a"at"ont"a).QyQtJkkuTGluZWFyQWxnZWJyYUc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYjSS1MZWFzdFNxdWFyZXNHRik2JEkiQ0dGKS1JJ1ZlY3RvckdGJjYjSSN5ZEdGKSIiIg==LSZJLUN1cnZlRml0dGluZ0c2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkc2IjYjSS1MZWFzdFNxdWFyZXNHRig2JkkjeGRHRihJI3lkR0YoSSJ4R0YoL0kmY3VydmVHRigsKComSSNjMEdGKCIiIkYuIiIjRjQqJkkjYzFHRihGNEYuRjRGNEkjYzJHRihGNA==JSFHH"airi"oalttiusLUkmYWxpYXNHJSpwcm90ZWN0ZWRHNiMvSSVjb25kRzYiSTBDb25kaXRpb25OdW1iZXJHRig=n:=5: m:=n-2:x:=[$1..n];C:=Van(x,n,m);cond(Tr(C).C): evalf(%);n:=6: m:=n-2:x:=[$1..n]:C:=Van(x,n,m):cond(Tr(C).C): evalf(%);n:=10: m:=n-2:x:=[$1..n]:C:=Van(x,n,m):cond(Tr(C).C): evalf(%);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(%);n:=20: m:=2:x:=[$1..n]:C:=Van(x,n,m):cond(Tr(C).C): evalf(%);n:=20: m:=3:x:=[$1..n]:C:=Van(x,n,m):cond(Tr(C).C): evalf(%);Paremmat menetelm"at perustuvat ortogonalisointiin tai ns. singulaariarvohajoitelmaan.Esim.Sovita a) 2. asteen PNS-polynomi ja b) interpolaatiopolynomiP:=[[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);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));Tai, kuten edell"a, suoraan LinearAlgebra-kirjaston funktiolla (joka yll"a "aliasoitiinkin" nimelle Van).VandermondeMatrix(xd):%[1..5,1..3]; # K"aytet"a"an nyt sit"a keskimm"aist"a "harmaata laatikkoa"kertoimet:=LinearAlgebra[LeastSquares](C,Vector(yd));PkkieEc2Ii5GIw==poly2:=Tr(kertoimet).<1,x,x^2>;display(plot(P,style=point,symbol=circle,color=black),plot(poly2,x=1.3..4.2));b)Nyt haetaan interpolaatioplynomia. Sen asteluku = datapisteiden lkm -1 = 4. No siihen l"oytyy taas ihanvalmiskin funktio: (Jos ratkaistaisiin LSQ-teht"av"an"a, matriisina olisi koko Vandermonde (transposilla kertominen voitaisiin "supistaa pois").)intpol:=interp(xd,yd,x);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));SVD:n ja QR-hajotelman k"aytt"o LSQ:ssaAiheesta jatkoty"oarkilla (ja jatkokursilla). Hyv"a tiet"a"a: K"aytt"aj"a voi valita menetelm"an CurveFitting-pakkauksen LeastSquares-funktiossa.Polynomin asteluvun nostaminen lis"a"a dramaattisesti h"airi"oalttiutta.TTdSMApJQVJUQUJMRV9TQVZFLzE4NDQ2NzQ0MDc4MTAxNjg4Njc4WCwlKWFueXRoaW5nRzYiRiVbZ2whIiUhISEjMCImIiQkIiM1ISIiRiZGJiIiIkYpJCIjOUYoJCIjPUYoJCIjQ0YoIiIkIiIlJCIkJz4hIiMkIiRDJEY0JCIkdyZGNCIiKiIjO0YlTTdSMApJQVJUQUJMRV9TQVZFLzE4NDQ2NzQ0MDc4MTAxNjg4OTE4WCwlKWFueXRoaW5nRzYiRiVbZ2whIiUhISEjMCImIiQkIiM1ISIiRiZGJiIiIkYpJCIjOUYoJCIjPUYoJCIjQ0YoIiIkIiIlJCIkJz4hIiMkIiRDJEY0JCIkdyZGNCIiKiIjO0YlTTdSMApJQVJUQUJMRV9TQVZFLzE4NDQ2NzQ0MDc4MTAxNjkwMjM4WColKWFueXRoaW5nRzYiRiVbZ2wnIyUhISEiJCIkNDBCOUVGOTczRjE3MThDNzQwODdENzNBNzZGODUzNjhDMDYzODBCMTY2OUM1REQ3RiU=