Numeerinen analyysi Harjoitus 3 / Kevät 2017

Samankaltaiset tiedostot
Funktioiden approksimointi ja interpolointi

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

Numeeriset menetelmät

Numeerinen analyysi Harjoitus 1 / Kevät 2017

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

Numeeriset menetelmät

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

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

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

Numeeriset menetelmät

Numeerinen integrointi ja derivointi

MATP153 Approbatur 1B Ohjaus 2 Keskiviikko torstai

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

Harjoitus 4 -- Ratkaisut

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

13. Taylorin polynomi; funktioiden approksimoinnista. Muodosta viidennen asteen Taylorin polynomi kehityskeskuksena origo funktiolle

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 1 / vko 44

mlvektori 1. Muista, että Jacobin matriisi koostuu vektori- tai skalaariarvoisen funktion F ensimmäisistä

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

Numeeriset menetelmät

BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016

Pienimmän neliösumman menetelmä

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

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

Kuva 1: Funktion f tasa-arvokäyriä. Ratkaisu. Suurin kasvunopeus on gradientin suuntaan. 6x 0,2

0 3 y4 dy = 3 y. 15x 2 ydx = 15. f Y (y) = 5y 4 1{0 y 1}.

Oletetaan ensin, että tangenttitaso on olemassa. Nyt pinnalla S on koordinaattiesitys ψ, jolle pätee että kaikilla x V U

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

HY, MTO / Matemaattisten tieteiden kandiohjelma Todennäköisyyslaskenta IIa, syksy 2018 Harjoitus 3 Ratkaisuehdotuksia.

MATP153 Approbatur 1B Harjoitus 5 Maanantai

MS-A0107 Differentiaali- ja integraalilaskenta 1 (CHEM)

saadaan kvanttorien järjestystä vaihtamalla ehto Tarkoittaako tämä ehto mitään järkevää ja jos, niin mitä?

Matematiikan tukikurssi

(0 desimaalia, 2 merkitsevää numeroa).

y = 3x2 y 2 + sin(2x). x = ex y + e y2 y = ex y + 2xye y2

3 = Lisäksi z(4, 9) = = 21, joten kysytty lineaarinen approksimaatio on. L(x,y) =

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

Tehtävä 1. Arvioi mitkä seuraavista väitteistä pitävät paikkansa. Vihje: voit aloittaa kokeilemalla sopivia lukuarvoja.

MATEMATIIKAN KOE PITKÄ OPPIMÄÄRÄ Merkitään f(x) =x 3 x. Laske a) f( 2), b) f (3) ja c) YLIOPPILASTUTKINTO- LAUTAKUNTA

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

6. Toisen ja korkeamman kertaluvun lineaariset

, c) x = 0 tai x = 2. = x 3. 9 = 2 3, = eli kun x = 5 tai x = 1. Näistä

BM20A5810 Differentiaalilaskenta ja sovellukset Harjoitus 5, Syksy 2016

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

min x x2 2 x 1 + x 2 1 = 0 (1) 2x1 1, h = f = 4x 2 2x1 + v = 0 4x 2 + v = 0 min x x3 2 x1 = ± v/3 = ±a x 2 = ± v/3 = ±a, a > 0 0 6x 2

Matemaattiset ohjelmistot MS-E1999

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

BM20A1501 Numeeriset menetelmät 1 - AIMO

Matlab- ja Maple- ohjelmointi

Matriisilaskenta Laskuharjoitus 5 - Ratkaisut / vko 41

Ratkaisuehdotukset LH 7 / vko 47

Matematiikan tukikurssi: kurssikerta 12

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Numeeriset menetelmät

Matematiikan peruskurssi 2

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

y x1 σ t 1 = c y x 1 σ t 1 = y x 2 σ t 2 y x 2 x 1 y = σ(t 2 t 1 ) x 2 x 1 y t 2 t 1

w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1.

Luento 10: Optimointitehtävien numeerinen ratkaiseminen; optimointi ilman rajoitusehtoja

Numeeriset menetelmät

r > y x z x = z y + y x z y + y x = r y x + y x = r

Harjoitus 7 -- Ratkaisut

Epäyhtälöt 1/7 Sisältö ESITIEDOT: yhtälöt

Tehtäväsarja I Tehtävät 1-5 perustuvat monisteen kappaleisiin ja tehtävä 6 kappaleeseen 2.8.

Matematiikan tukikurssi

0 kun x < 0, 1/3 kun 0 x < 1/4, 7/11 kun 1/4 x < 6/7, 1 kun x 1, 1 kun x 6/7,

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

Juuri 12 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty

1. Esitä rekursiivinen määritelmä lukujonolle

H5 Malliratkaisut - Tehtävä 1

Vektorianalyysi II (MAT21020), syksy 2018

Johdatus reaalifunktioihin P, 5op

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

MATP153 Approbatur 1B Harjoitus 3, ratkaisut Maanantai

= 2 L L. f (x)dx. coshx dx = 1 L. sinhx nπ. sin. sin L + 2 L. a n. L 2 + n 2 cos. tehdään approksimoinnissa virhe, jota voidaan arvioida integraalin

Numeeriset Menetelmät

(1.1) Ae j = a k,j e k.

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.

y + 4y = 0 (1) λ = 0

MS-A0104 Differentiaali- ja integraalilaskenta 1 (ELEC2) MS-A0106 Differentiaali- ja integraalilaskenta 1 (ENG2)

MS-C1340 Lineaarialgebra ja

Pienimm"an neli"osumman sovitus

Matemaattisen analyysin tukikurssi

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

DIFFERENTIAALI- JA INTEGRAALILASKENTA

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

3 Toisen kertaluvun lineaariset differentiaaliyhtälöt

KERTAUS KERTAUSTEHTÄVIÄ K1. P( 1) = 3 ( 1) + 2 ( 1) ( 1) 3 = = 4

(a) Kyllä. Jokainen lähtöjoukon alkio kuvautuu täsmälleen yhteen maalijoukon alkioon.

Harjoitus 6 ( )

MS-A0103 / Syksy 2015 Harjoitus 2 / viikko 38 / Ennakot

Numeeriset menetelmät Pekka Vienonen

Inversio-ongelmien laskennallinen peruskurssi Luento 3

2 Pistejoukko koordinaatistossa

HY / Matematiikan ja tilastotieteen laitos Vektorianalyysi I, syksy 2017 Harjoitus 1 Ratkaisuehdotukset. I.1. Todista Cauchyn-Schwarzin epäyhtälö

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

Harjoitus 6 ( )

Transkriptio:

Numeerinen analyysi Harjoitus 3 / Kevät 2017 Palautus viimeistään perjantaina 17.3. Tehtävä 1: Tarkastellaan funktion f(x) = x evaluoimista välillä x [2.0, 2.3]. Muodosta interpoloiva polynomi p 3 (x), kun y i = f(x i ), missä x i = 2.0 + 0.1i ja i {0, 1, 2, 3}. Laske virhearvio ja piirrä (esimerkiksi Matlabilla) virhefunktio R(x) = f(x) p 3 (x). Mikä on virhe pisteissä 2.05 ja 2.25? Ratkaisu 1: Aloitetaan kokoamalla funktion f(x) arvot datapisteissä taulukoksi: x 2.0 2.1 2.2 2.3 f(x) 1.414... 1.449... 1.483... 1.516... Lasketaan interpolaatiopolynomi vaikkapa Newtonin muodossa. Jaetut erotukset ovat: f[x 0 ] = 1.414... f[x 1 ] = 1.449... f[x 0, x 1 ] = 0.349... f[x 2 ] = 1.483... f[x 1, x 2 ] = 0.341... f[x 0, x 1, x 2 ] = 0.041... f[x 3 ] = 1.516... f[x 2, x 3 ] = 0.333... f[x 1, x 2, x 3 ] = 0.038... f[x 0, x 1, x 2, x 3 ] = 0.009... Taulukon ensimmäinen sarake on tiedossa. Loput alkiot voidaan laskea näistä rekursiivisesti. Alkio d ij saadaan kaavasta Newtonin polynomi on nyt d ij = d i,j 1 d i 1,j 1 x i 1 x i j. p(x) = a 0 + a 1 (x x 0 ) + a 2 (x x 0 )(x x 1 ) + a 3 (x x 0 )(x x 1 )(x x 2 ), missä kertoimet a 0, a 1, a 2 ja a 4 ovat taulukon diagonaalialkiot. Sijoittamalla lukuarvot ja sieventämällä saadaan p(x) = 0.457687157... + 0.639961999... x 0.099335410... x 2 + 0.009243006... x 3 Interpolaatiovirhe on R(x) = f(x) p 3 (x) = f (3+1) (ξ) (3 + 1)! 3 (x x j ) j=0 = f (4) (ξ) (x 2.0)(x 2.1)(x 2.2)(x 2.3). 24 Tiedostoa viimeksi muokattu: 11. maaliskuuta 2017 1/5

Tässä f (4) (ξ) = 15 16 x 7 15 2 16 2.3 7 2 0.082864, kun x [2.0, 2.3]. Saadaan siis virhearvio R(x) 4 10 3 (x 2.0)(x 2.1)(x 2.2)(x 2.3). Piirretään nyt Matlabilla todellinen virhe ja virhearvio samaan kuvaan >> f = @(x) sqrt(x); >> p3 = @(x) 0.457687157 + 0.639961999*x - 0.099335410*x^2 + 0.009243006*x^3; >> virhearvio = @(x) 4*10^(-3)*abs((x - 2.0)*(x - 2.1)*(x - 2.2)*(x - 2.3)); >> x=2.0:0.01:2.3; >> virhe = x; >> arvio = x; >> for i=1:length(x);... virhe(i) = abs(f(x(i))-p3(x(i))); arvio(i) = virhearvio(x(i));... end; >> plot(x,virhe,x,arvio) ja saadaan oheinen kuva, josta nähdään että virhearvio pitää paikkansa. Virhe pisteissä 2.05 ja 2.25 on R(2.05) 2.6 10 7 ja R(2.25) 2.4 10 7. 4 10-7 3.5 3 2.5 2 1.5 1 0.5 0 2 2.05 2.1 2.15 2.2 2.25 2.3 Kuva 1: Kuva keskipistesäännöllä laskettavasta pinta-alasta. Tehtävä 2 (Greenbaum & Chartier 8.8, teht. 3): a) Kirjoita jaetut erotukset ja Newtonin interpolaatiopolynomi seuraavalle datapisteistölle: Tiedostoa viimeksi muokattu: 11. maaliskuuta 2017 2/5

x 1 3/2 0 2 f(x) 2 6 0 14 b) Näytä, miten saamasi polynomin arvo annetussa pisteessä x voidaan evaluoida neljällä askeleella hieman samaan tapaan kuin Hornerin säännöllä. Yleistä menettely n-asteiselle polynomille. a) On annettu neljä pistettä, joten käytetään kolmannen asteen Newtonin polyno- Ratkaisu 2: mia p(x) = a 0 + a 1 (x x 0 ) + a 2 (x x 0 )(x x 1 ) + a 3 (x x 0 )(x x 1 )(x x 2 ). Jaetut erotukset on kätevää koota taulukoksi f[x 0 ] = 2 f[x 1 ] = 6 f[x 2 ] = 0 f[x 3 ] = 14 f[x 0, x 1 ] = 6 2 = 8 3/2 1 f[x 1, x 2 ] = 0 6 = 4 f[x 0 3/2 0, x 1, x 2 ] = 4 8 = 4 0 1 f[x 2, x 3 ] = 14 0 = 7 f[x 2 0 1, x 2, x 3 ] = 7 4 = 6 f[x 2 3/2 0, x 1, x 2, x 3 ] = 6 4 = 2. 2 1 Taulukon ensimmäinen sarake on tiedossa. Loput alkiot voidaan laskea näistä rekursiivisesti. Alkio d ij saadaan kaavasta d ij = d i,j 1 d i 1,j 1 x i 1 x i j. Newtonin interpolaatiopolynomin kertoimet a 0, a 1, a 2 ja a 3 ovat edellisen taulukon diagonaalialkiot. Interpolaatiopolynomi siis on p(x) = 2 + 8(x 1) + 4(x 1)(x 3/2) + 2(x 1)(x 3/2)(x 0) = 2x 3 x 2 + x. On helppo tarkistaa, että saatu polynomi kulkee annettujen pisteiden kautta. b) Polynomin arvo pisteessä x voidaan evaluoida neljällä askeleella käyttäen seuraavaa algoritmia Askel 1: Asetetaan y = a 3. Askel i = 2, 3, 4: Korvataan y arvolla y(x x 4 i ) + a 4 i. Vastaavasti n-asteisen Newtonin muotoa olevan polynomin arvo voidaan evaluoida n askeleella seuraavasti Askel 1: Asetetaan y = a n 1. Askel i = 2, 3,..., n: Korvataan y arvolla y(x x n i ) + a n i. Tiedostoa viimeksi muokattu: 11. maaliskuuta 2017 3/5

Tehtävä 3: Olkoon f(x) = 28 13x 2 + 8x + 4. Muodosta Lagrangen muotoa oleva interpolaatiopolynomi p(x), joka interpoloi funktiota f pisteissä x 0 = 5, x 1 = 1, x 2 = 0 ja x 3 = 1. Näytä, että myös polynomi q(x) = p(x) x 4 5x 3 + x 2 + 5x interpoloi funktiota f annetuissa pisteissä. Miksi tämä ei ole ristiriidassa interpolaatiopolynomin yksikäsitteisyyden kanssa? Ratkaisu 3: Lasketaan interpolaatiopolynomi vaikkapa Lagrangen muodossa. Saadaan ϕ 0 (x) = ϕ 1 (x) = ϕ 2 (x) = ϕ 3 (x) = joten kysytty polynomi on (x + 1)(x 0)(x 1) ( 5 + 1)( 5 0)( 5 1) = 1 120 (x x3 ) (x + 5)(x 0)(x 1) ( 1 + 5)( 1 0)( 1 1) = 1 8 ( 5x + 4x2 + x 3 ) (x + 5)(x + 1)(x 1) (0 + 5)(0 + 1)(0 1) = 1 5 (5 + x 5x2 x 3 ), (x + 5)(x + 1)(x 0) (1 + 5)(1 + 1)(1 0) = 1 12 (5x + 6x2 + x 3 ), p(x) = f( 5)ϕ 0 (x) + f( 1)ϕ 1 (x) + f(0)ϕ 2 (x) + f(1)ϕ 3 (x) = 476 120 (x x3 ) + 84 8 ( 5x + 4x2 + x 3 ) + 56 5 (5 + x 5x2 x 3 ) + 140 12 (5x + 6x2 + x 3 ) = 7x 3 + 56x 2 + 21x + 56. Olkoot nyt q(x) = p(x) x 4 5x 3 + x 2 + 5x = x 4 + 2x 3 + 57x 2 + 26x + 56. Nähdään että q( 5) = 476, q( 1) = 84, q(0) = 56 ja q(1) = 140 eli myös q interpoloi funktiota f annetuissa pisteissä. Teorian mukaan mille tahansa pistejoukolle (x i, y i ), i = 0, 1,... n on olemassa yksikäsittäinen polynomi p astetta n siten että y i = p(x i ). Nyt kuitenkin n = 3 ja polynomi q on astetta n + 1, joten tehtävä ei ole ristiriidassa interpolaatiopolynomin yksikäsitteisyyden kanssa. Tehtävä 4 ( ): Funktio f(x) = cos(x) taulukoidaan arvoilla x k = k m 45, k = 0, 1,..., m. Taulukkoa käytettäessä muodostetaan toisen asteen interpolaatiopolynomi argumenttia x lähinnä olevista taulukkopisteistä ja käytetään polynomin arvoa f(x):n approximaationa. Miten suuri m on valittava, jos halutaan, että interpolaatiovirheelle pätee f(x) p(x) 10 5. Ratkaisu 4: Interpolaatiovirheen kaava on R(x) = f(x) p(x) = f (n+1) (ξ) (n + 1)! n (x x j ), missä n on interpolaatiopolynomin aste, x j :t ovat interpolaatiopisteitä ja ξ on jokin tuntematon piste interpolointivälillä. Tehtävän tapauksessa n = 2, joten lasketaan f (ξ) = sin(ξ). On helppo todeta että funktion sin(ξ) suurin arvo taulukointivälillä ξ [0, π] on 1 4 2. Toisin sanoen f (ξ) 1 2 ja saadaan siis R(x) 1 n 6 x x j. 2 Tiedostoa viimeksi muokattu: 11. maaliskuuta 2017 4/5 j=0 j=0

Olkoot nyt x lähimpänä taulukointipistettä x k eli x x k < h, missä h = π. Tällöin etäisyydet 2 4m lähimpään kolmeen taulukointipisteeseen ovat x x k, x x k + h ja x x k h ja siten R(x) 1 6 2 (x x k)(x x k + h)(x x k h). Merkitään u = x x k ja g(u) = u(u + h)(u h) = u 3 h 2 u. Jälleen on helppo todeta että funktion g(u) suurin arvo välillä u [ h, h 3h3 ] on. Sjoittamalla tämä virhekaavaan saadaan 2 2 8 R(x) 1 6 2 3h3 8 0.0442 h3. Jos halutaan että R(x) 10 5, on valittava h 0.0609 (rad) 3.49. Siis valinta m = 13 on riittävä. Matlab-tehtävä 2 (Greenbaum & Chartier 8.8, teht. 4 abc): Tässä tehtävässä voi olla hyötyä Matlabin rutiineista polyfit ja polyval. Ensimmäistä voi käyttää apuna interpolaatiopolynomien muodostamisessa. Jälkimmäistä taas voi käyttää polynomin arvojen evaluoimiseen annetulla välillä ja siten tarvittavien kuvien piirtämiseen. Ohjeita rutiinien käyttämiseen saa komennoilla help polyfit ja help polyval. a) Käytä Matlabia sovittaaksesi 12. asteen polynomi funktiolle f(x) = 1 1 + x 2 siten, että se interpoloi funktiota 13 tasan jakautuneessa pisteessä välillä -5 ja 5. Pisteet saat muodostettua komennolla x = [-5:5/6:5];. Piirrä itse funktio sekä muodostamasi 12. asteen interpolaatiopolynomi samaan kuvaan. b) Toista a-kohta käyttäen 12. asteen polynomia, joka interpoloi funktiota f skaalatuissa Chebyshevin pisteissä ( ) πj x j = 5 cos, j = 0,..., 12. 12 c) Jos annetulle funktiolle yrittää Matlabin polyfit-rutiinilla sovittaa liian korkea-asteista polynomia, saa Matlabilta varoituksen, jonka mukaan tehtävä on huonosti asetettu eivätkä tulokset välttämättä ole tarkkoja. Barysentristä interpolaatiokaavaa voi kuitenkin yhä käyttää ja tässä tapauksessa painot saadaan kaavasta w j = 2n 1 5 n n { ( 1) j /2 jos j = 0 tai j = n ( 1) j muulloin, missä edessä oleva kerroin supistuu itse asiassa pois lopullisesta polynomin lausekkeesta. Muodosta tällä tavoin tarkempi approksimaatio funktiolle f käyttäen interpolaatiopisteinä 21 skaalattua Chebyshevin pistettä ( ) πj x j = 5 cos, j = 0,..., 20. 20 Piirrä kuva interpolaatiopolynomista p 20 (x) ja virheistä f(x) p 20 (x) välillä [ 5, 5]. Tiedostoa viimeksi muokattu: 11. maaliskuuta 2017 5/5

Palauta Matlab-tehtävä kurssin sivuilla annettujen ohjeiden mukaan. Tiedostoa viimeksi muokattu: 11. maaliskuuta 2017 6/5

%*****a-kohta***** %Interpolaatiopisteet x = [-5:5/6:5]; y = 1./(1 + x.^2); plot(x, y, 'ko'); %Piirretään samaan kuvaan hold on; %Tiheämpi jako piirtämistä varten xx = [-5:0.01:5]; %Alkuperäinen funktio fy = 1./(1 + xx.^2); plot(xx, fy); %Interpolaatiopolynomi p = polyfit(x, y, 12); py = polyval(p, xx); plot(xx, py, 'g'); %Otsikko title('tasavälisissä pisteissä laskettu interpolaatiopolynomi') %*****b-kohta***** %Uusi kuva figure(); hold on; %Interpolaatiopisteet j = [0:1:12]; x = 5*cos(pi*j/12); y = 1./(1 + x.^2); plot(x, y, 'ko'); %Alkuperäinen funktio fy = 1./(1 + xx.^2); plot(xx, fy); %Interpolaatiopolynomi p = polyfit(x, y, 12); py = polyval(p, xx); plot(xx, py, 'g'); %Otsikko title('chebyshevin pisteissä laskettu interpolaatiopolynomi') %*****c-kohta***** %Uusi kuva 1

figure(); hold on; %Interpolaatiopisteet j = [0:1:20]; x = 5*cos(pi*j/20); y = 1./(1 + x.^2); plot(x, y, 'ko'); %Barysentrisen interpolaation painot w = (-1).^j; w(1) = w(1)/2; w(21) = w(21)/2; %Alkuperäinen funktio fy = 1./(1 + xx.^2); plot(xx, fy); %Barysentrinen interpolaatiopolynomi p = @(t) sum(w.*y./(t - x)) / sum(w./(t - x)); for i = 1:length(xx) py(i) = p(xx(i)); end %Silmukan sijaan voisi käyttää komentoa py = arrayfun(p, xx) plot(xx, py, 'g'); %Otsikko title('interpolaatio barysentristä muotoa käyttäen') %Virheet figure(); ey = abs(py - fy); plot(xx, ey, 'r'); %Otsikko title('barysentrisen muodon virheet') %HUOM: Barysentrinen interpolaatiokaava ei ole määritelty %interpolaatiopisteissä. Tästä syystä edellä oleva koodi antaa vektorin py %ensimmäiseksi ja viimeiseksi arvoksi NaN (Not a number). Harkitummassa %toteutuksessa barysentristä kaavaa tulisi käyttää vain %interpolaatiopisteiden ulkopuolella. Edellä tämä seikka on jätetty %huomiotta selkeyden säilyttämiseksi. 2

3

4

Published with MATLAB R2013b 5