Muotoinosa tulkitaan vasta suoritushtkellä.



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

Funktioiden approksimointi ja interpolointi

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

Numeeriset menetelmät

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

Numeerinen integrointi

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

Numeeriset menetelmät

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

Yhtälön ratkaiseminen

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

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

MS-A0102 Differentiaali- ja integraalilaskenta 1

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

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

Oletetaan, että funktio f on määritelty jollakin välillä ]x 0 δ, x 0 + δ[. Sen derivaatta pisteessä x 0 on

Dierentiaaliyhtälöistä

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

MATP153 Approbatur 1B Ohjaus 2 Keskiviikko torstai

Derivaatan sovellukset (ääriarvotehtävät ym.)

MS-A0107 Differentiaali- ja integraalilaskenta 1 (CHEM)

Matematiikan tukikurssi

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 5: Taylor-polynomi ja sarja

Matematiikan tukikurssi

a) Mikä on integraalifunktio ja miten derivaatta liittyy siihen? Anna esimerkki = 16 3 =

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

Vastaus: 10. Kertausharjoituksia. 1. Lukujonot lim = lim n + = = n n. Vastaus: suppenee raja-arvona Vastaus:

Ratkaisuehdotus 2. kurssikoe

Matematiikan tukikurssi, kurssikerta 3

Ratkaisuehdotus 2. kurssikokeeseen

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 4: Derivaatta

Juuri 7 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty c) sin 50 = sin ( ) = sin 130 = 0,77

Juuri 6 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty Vastaus: Määrittelyehto on x 1 ja nollakohta x = 1.

f(x 1, x 2 ) = x x 1 k 1 k 2 k 1, k 2 x 2 1, 0 1 f(1, 1)h 1 = h = h 2 1, 1 12 f(1, 1)h 1 h 2

Johdatus reaalifunktioihin P, 5op

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

MATP153 Approbatur 1B Harjoitus 6 Maanantai

8 Potenssisarjoista. 8.1 Määritelmä. Olkoot a 0, a 1, a 2,... reaalisia vakioita ja c R. Määritelmä 8.1. Muotoa

1 Rajoittamaton optimointi

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

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Ratkaisu: Tutkitaan derivoituvuutta Cauchy-Riemannin yhtälöillä: f(x, y) = u(x, y) + iv(x, y) = 2x + ixy 2. 2 = 2xy xy = 1

Matematiikan tukikurssi

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1).

Viikon aiheet. Funktion lineaarinen approksimointi

Lisätehtäviä. Rationaalifunktio. x 2. a b ab. 6u x x x. kx x

Kohdeyleisö: toisen vuoden teekkari

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

Ensimmäisen ja toisen kertaluvun differentiaaliyhtälöistä

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Differentiaali- ja integraalilaskenta 1 Ratkaisut 5. viikolle /

Mapu 1. Laskuharjoitus 3, Tehtävä 1

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

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

4 Yleinen potenssifunktio ja polynomifunktio

MATP153 Approbatur 1B Harjoitus 5 Maanantai

infoa Viikon aiheet Potenssisarja a n = c n (x x 0 ) n < 1

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

Numeeriset menetelmät

Luento 8: Epälineaarinen optimointi

1 Lineaariavaruus eli Vektoriavaruus

3.1 Väliarvolause. Funktion kasvaminen ja väheneminen

Matematiikan peruskurssi 2

Pienimmän neliösumman menetelmä

4. Funktion arvioimisesta eli approksimoimisesta

Matematiikan peruskurssi (MATY020) Harjoitus 7 to

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

Lineaarinen yhtälöryhmä

Matematiikan tukikurssi

Matematiikka B3 - Avoin yliopisto

JAKSO 2 KANTA JA KOORDINAATIT

Avaruuden kolme sellaista pistettä, jotka eivät sijaitse samalla suoralla, määräävät

H7 Malliratkaisut - Tehtävä 1

Matematiikan tukikurssi

H5 Malliratkaisut - Tehtävä 1

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

2 Osittaisderivaattojen sovelluksia

VASTAA YHTEENSÄ KUUTEEN TEHTÄVÄÄN

Ortogonaaliprojektio äärellisulotteiselle aliavaruudelle

Tekijä Pitkä matematiikka

Tekijä Pitkä matematiikka a) Ratkaistaan nimittäjien nollakohdat. ja x = 0. x 1= Funktion f määrittelyehto on x 1 ja x 0.

Miten osoitetaan joukot samoiksi?

Differentiaalilaskenta 1.

Funktiot. funktioita f : A R. Yleensä funktion määrittelyjoukko M f = A on jokin väli, muttei aina.

Luento 8: Epälineaarinen optimointi

Kompleksiluvut., 15. kesäkuuta /57

Matematiikan johdantokurssi, syksy 2017 Harjoitus 8, ratkaisuista

2 Yhtälöitä ja epäyhtälöitä

Aalto-yliopiston perustieteiden korkeakoulu Matematiikan ja systeemianalyysin laitos. MS-A0203 Differentiaali- ja integraalilaskenta 2, kevät 2016

Pisteessä (1,2,0) osittaisderivaatoilla on arvot 4,1 ja 1. Täten f(1, 2, 0) = 4i + j + k. b) Mihin suuntaan pallo lähtee vierimään kohdasta

1.7 Gradientti ja suunnatut derivaatat

Antti Rasila. Kevät Matematiikan ja systeemianalyysin laitos Aalto-yliopisto. Antti Rasila (Aalto-yliopisto) MS-A0204 Kevät / 16

Analyysi III. Jari Taskinen. 28. syyskuuta Luku 1

5 Differentiaalilaskentaa

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

Vanhoja koetehtäviä. Analyyttinen geometria 2016

Transkriptio:

Syöttö ja tulostus write (*,*) x write (6,*) x write (*,00) x 00 format( x=,f8.3) write(*, ("x=",f8.3) ) x write(*,"( x=,f8.3)") x write(*, ( x=,f8.3) ) x character (len=80) :: form character (len=2) :: fi... fi= I2 ; if (i>99) fi= I3 form= ( //fi//,f5.2) write(6,form) i,x(i) Muotoinosa tulkitaan vasta suoritushtkellä.

Syötön ja tulostuksen ohjaus Unixissa: read(*,...), read(5,...) lukee tiedostosta input: prog < input write(*,...), write(6,..) tulostaa tiedostoon output: prog > output prog < input > output Jos output olemassa, edellinen versio tuhoutuu. Useamman ajon tulostus peräkkäin samaan tiedostoon: prog > output prog >> output Syöttötietojen lukeminen komentotiedostosta (here document) prog <<EOF...... EOF

Syöttö- ja tulostuslauseessa voi olla kaksi osoitetta virhetilanteita varten: read(5,, ERR=00, END=900) x format(f5.2)... 00 write(6,"( pieleen meni )")... 900 write(6,"( tiedosto loppui )") F90:ssä myös: integer status do read(5,form, iostat=status) x if (status > 0) then write(6,"( pieleen meni )") exit else if (status < 0) then write(6,"( tiedosto loppui )") exit end if... end do integer status do read(5,form, iostat=status) x if (status /= 0) then call error(status) exit end if... end do... subroutine error(code) integer code write(6,"( error,i4)") code end subroutine

Laitenumeroihin 5 ja 6 liittyviä tiedostoja ei tarvitse avata tai sulkea. Muihin laitenumeroihin voi liittyä jokin oletusnimi (fort000.dat tms.) Tiedosto avataan open-lauseella: open (, fyle )! luodaan uusi tiedosto! tiedostoa ei saa olla ennestaan olemassa open (, file= fyle, status= new )! avataan olemassaoleva tiedosto open (, file= fyle, status= old, ERR=900)! jos tiedosto olemassa ja siihen kirjoitetaan,! vanha tiedosto tuhotaan ja luodaan uusi open (, file= fyle, status= unknown ) Tiedosto suljetaan close-lauseella close()

Binääritulostus: open(, file= bin.dat, form= unformatted ) write () x Normaalisti tiedostoa luetaan ja kirjoitetaan tietue kerrallaan alusta alkaen. Suorasaantitiedoston määrittely open(, file= lista, access= direct, recl=28) read(, rec=i) x Suorasaantitiedosto oletusarvoisesti binääritiedosto. Suorasaantitiedostolle on aina ilmoitettava tietueen pituus recl tavuina. Luku- ja kirjoituslauseessa ilmoitettava tietueen numero (rec)

Aineiston esittäminen funktiolla. Tunnetun funktion approksimointi - funktion laskeminen peruslaskutoimitusten avulla - alkuperäisen funktion laskeminen voi olla liian raskasta Funktion arvot tunnetaan tarkasti joissakin pisteissä. Muut arvot lasketaan interpoloimalla. - funktio ja derivaatat tunnetaan yhdessä pisteessä - Taylorin sarja - Padé-approksimaatio - tasavälinen pistejoukko - interpolointipolynomit - mielivaltainen pistejoukko - Lagrangen interpolointipolynomi - spline-funktiot - bezier-käyrät 2. Pienimmän neliösumman sovitus Aineistossa satunnaista hajontaa, joten sitä ei voi kuvata täsmällisesti. - lineaarinen sovitus (lineaarikombinaatio muuten mielivaltaisista funktioista) - epälineaarinen sovitus

Sovituksen kriteerit Funktioiden välinen etäisyyttä d(f,g) eli normia f g pyritään minimoimaan. Normi voidaan määritellä monella tavalla. L -normi f g = f g dx Sallii suuret poikkeamat, jos ne rajoittuvat lyhyelle välille. L 2 -normi vastaa euklidisen avaruuden etäisyyttä f g 2 = f g 2 dx. Yleisemmin L p -normi ( f g p = f g p dx) /p. L -normi eli maksiminormi f g = sup f g. Estää suuret poikkeamat, mutta sovitus ei välttämättä missään kovin hyvä.

Taylorin sarjat Olkoon f funktio f : R R. Funktion kuvaajan pisteeseen x 0 asetetun tangentin yhtälö on y = f(x 0 ) + f (x 0 )(x x 0 ), missä f (x 0 ) on funktion f derivaatan df/dx arvo pisteessä x 0. Funktion arvoja pisteen x 0 lähellä voidaan arvioida tangentin avulla: f(x) f(x 0 ) + f (x 0 )(x x 0 ). Arvio on sitä huonompi, mitä enemmän derivaatta f muuttuu välillä [x 0,x]. Tätä muutosta kuvaa toinen derivaatta f jne. Funktion arvo pisteessä x on f(x) = f(x 0 ) + f (x 0 )(x x 0 ) + 2 f (x 0 )(x x 0 ) 2 +... + n! f(n) (x 0 )(x x 0 ) n +... missä f (n) (x 0 ) on funktion n:nnen derivaatan arvo pisteessä x 0 ja n! on n-kertoma = 2 3 n. Tämä on funktion f Taylorin sarja pisteessä x 0.

Esimerkkejä (kaikissa näissä on x 0 = 0): + x = x + x2 x 3 + suppenee, kun x < x = + x + x2 + x 3 + + x = + 2 x 8 x2 + 6 x3 x = 2 x 8 x2 6 x3 + x = 2 x + 3 8 x2 5 6 x3 x = + 2 x + 3 8 x2 + 5 6 x3 + e x = + x + 2! x2 + 3! x3 + + n! xn + kaikilla x ln( + x) = x 2 x2 + 3 x3 4 x4 + x (,] sinx = x 3! x3 + 5! x5 cos x = 2! x2 + 4! x4 kaikilla x kaikilla x tanx = x + 3 x3 + 2 5 x5 + x < π 2 Usein käytettyjä ovat lineaariapproksimaatiot, kuten + x + 2 x, + x 2 x,

Rationaaliapproksimaatiot Approksimoidaan funktiota rationaalilausekkeella a 0 + a x +... + a n x 4 + b x +...b m x m. Kertoimien etsiminen johtaa yleensä optimointitehtävään. Usein käytetty yksinkertainen menetelmä on Padé-approksimaatio. Esimerkiksi eksponenttifunktion Taylorin sarja pisteessä x = 0 on f(x) = e x = + x + 2 x2 + 6 x3 +... Yritetään muodostaa rationaaliapproksimaatio, joka on muotoa R(x) = a + bx + cx2. + dx Vaadimme nyt, että tämä antaa pisteessä x = 0 saman arvon kuin Taylorin sarja, ja että myös molempien derivaatat ovat samoja. Tarkastellaan erotusta f(x) R(x) = + x + 2 x2 + 6 x3 a + bx + cx2 + dx = ( + x + 2 x2 + 6 x3 )( + dx) (a + bx + cx 2 ). + dx Vaadimme, että origossa tämä erotus ja sen derivaatat ovat nollia. Osoittajan on oltava identtisesti nolla. Kirjoitetaan osoittaja auki ja ryhmitellään termit muuttujan x potenssien mukaan: ( a) + ( + d b)x + ( 2 + d c)x2 + ( 6 + 2 d)x3 + 6 x4. Jotta tämä olisi identtisesti nolla, on x:n jokaisen potenssin kertoimen erikseen oltava nolla. Viimeistä termiä ei saada häviämään, mutta kyseessä on kolmannen asteen approksimaatiota, joten termi voidaan heittää pois. Saadaan yhälöryhmä a = 0, + d b = 0, 2 + d c = 0, 6 + 2 d = 0,

josta a =, b = 2 3, c = 6, d = 3. Approksimaatio on f(x) = + 2 3 x + 6 x2 3 x. Esimerkiksi pisteessä x = neljän termin Taylorin sarja antaisi arvoksi 2 2 3 2.667. Rationaaliapproksimaatiosta saadaan f() = 4 = 2.750. Sama vika kuin Taylorin sarjalla: se antaa yhdessä pisteessä funktion arvon täsmälleen oikein, mutta ei pyri minimoimaan virhettä muissa pisteissä.

Tšebyševin polynomit Palautuskaava cos(n + )φ + cos(n )φ = 2cos φ cos nφ. Todistus: cos(n + )φ + cos(n )φ = cos(nφ + φ) + cos(nφ φ) = cos nφcos φ sinnφsin φ + cos nφcos φ + sinnφsin φ = 2cos nφcos φ. Palautuskaavasta saadaan cos 2φ = 2cos 2 φ, cos 3φ = 2cos φ cos2φ cos φ. = 4cos 3 φ 3cos φ Kulman φ monikertojen kosinit voidaan palauttaa muotoon, jossa esiintyy vain cos φ:n potensseja. Saadaan joukko lausekkeita, jotka ovat cos φ:n polynomeja. Merkitään x = cos φ, Määritellään Tshebyshevin polynomi T n kaavalla T n (x) = cos nφ = cos(narccos x). T 0 (x) = cos0 =, T (x) = cosarccos x = x. T 2 (x) = cos(2arccos x) = cos 2φ = 2cos 2 φ = 2x 2, T 3 (x) = 4x 3 3x, T 4 (x) = 8x 4 8x 2 + T 5 (x) = 6x 5 20x 3 + 5x. Oletetaan, että x on aina välillä x +.

Ominaisuuksia Symmetria: T n ( x) = ( ) n T n (x). Nollakohdat Koska funktion cosφ nollakohdat ovat φ = (2k + )π/2, k = 0,,..., funktion cosnφ nollakohdat ovat φ = 2k + n π 2, k = 0,,... Koska T n (x) = cos nφ, nämä ovat samalla polynomin T n nollakohtia. Muuttujan x avulla lausuttuina nollakohdat ovat ( ) 2k + π x k = cos, k = 0,,...,n. n 2 Ortogonaalisuus Tshebyshevin polynomit muodostavat keskenään ortogonaalisten funktioiden joukon, jos painofunktioksi valitaan / x 2 : + T n (x)t m (x) x 2 dx = { 0, n m, π/2, n = m 0, π, n = m = 0. Äärelliselle pistejoukolle ortogonaalisuus pätee seuraavassa muodossa K T n (x i )T m (x i ) = i=0 { 0, n m, (K + )/2, n = m 0, K +, n = m = 0, missä pisteet x i ovat polynomin T K+ nollakohdat, n K, m K.

Minimaalisuus Tshebyshevin polynomi on määritelmän mukaan jonkin kulman kosini, joten se ei itseisarvoltaan voi olla ykköstä suurempi (väliäll x ). Ääriarvokohdissa sen arvo on joko tai. Maksiminormi on siten täsmälleen. Palautuskaavan avulla voidaan helposti todistaa, että polynomin T n korkeimman potenssin kerroin on 2 n. Jos polynomi kerrotaan luvulla 2 n, saadaan polynomi, jonka korkeimman potenssin kerroin on ykkönen. Kaikista niistä polynomeista, joiden korkeimman potenssin kerroin on ykkönen, polynomilla 2 n T n on pienin maksiminormi. Polynomilla 2 n T n on n + ääriarvokohtaa välillä x. Näistä n on pisteitä, joissa derivaatta häviää. Lisäksi polynomilla on ääriarvot välin päätepisteissä. Olkoot ääriarvokohdat x 0 =, x,..., x n =. Nämä ovat vuorotellen minimejä ja maksimeja. Oletetaan, että x 0 on maksimi. Vastaoletus: oletetaan, että P n on toinen n-asteinen polynomi, jolla on vielä pienempi maksiminormi. Koska x 0 on polynomin 2 n T n maksimi, täytyy olla P(x 0 ) < 2 n T n (x 0 ). Vastaavasti x on minimi, jossa on oltava P(x ) > 2 n T n (x ). Näin P n on ääriarvokohdissa vuorotellen pienempi tai suurempi kuin 2 n T n. P n (x 0 ) 2 n T n (x 0 ) < 0, P n (x ) 2 n T n (x ) > 0, P n (x 2 ) 2 n T n (x 2 ) < 0, Funktio P n (x) 2 n T n (x) vaihtaa merkkiä n kertaa. Koska kummassakin termissä korkeimman potenssin kerroin on ykkönen, nämä korkeimmat potenssit kumoavat toisensa, ja funktio on n -asteinen polynomi. Tällaisella polynomilla on kuitenkin vain n nollakohtaa, joten se ei voi vaihtaa merkkiään n kertaa. Ristiriita vastaoletus ei pidä paikkaansa. Miten on n pistettä x k, k =,...,n sijoitettava välille x siten, että polynomin (x x )(x x 2 ) (x x n ) maksiminormi tulee mahdollisimman pieneksi? Pisteiden on oltava Tshebyshevin polynomin T n nollakohtia...

x y i f Interpolointi Tasavälinen aineisto Tunnetaan funktion arvot pisteissä x i, f(x i ) = y i. i x f(x) f 2 f 3 f 0 x 0 y 0 2 f f 0 x y 2 f 0 f 2 x 2 y 2 3 f Merkitään h = x x 0. Askeloperaattori Ef(x) = f(x + h). Eteenpäinen differenssi f(x) = f(x + h) f(x). Taaksepäinen differenssi f(x) = f(x) f(x h). Kaikki ovat lineaarisia operaattoreita. Operaattoreille voidaan johtaa mm. seuraavat ominaisuudet: E 2 f(x) = E(Ef(x)) = E(f(x + h)) = f(x + 2h). E n f(x) = f(x + nh). f(x) = f(x + h) f(x) = Ef(x) f(x) = (E )f(x), josta = E.

Newtonin-Gregoryn interpolointipolynomi: P(x 0 + sh) = E s f(x 0 ) = ( + ) s f(x 0 ) [ ( ) ] s = + s + 2 +... f(x 0 ) 2 ( ) s = f 0 + s f 0 + 2 f 0 +... 2 P 2 (x 0 + sh) = f 0 + s f 0 + s(s ) 2 f 0. 2 Kun s = 0,,2, tämä kulkee pisteiden (x 0,y 0 ), (x 0 + h,y ) ja (x 0 + 2h,y 2 ) kautta: P 2 (x 0 ) = P 2 (x 0 + 0h) = y 0, P 2 (x ) = P 2 (x 0 + h) = y 0 + f 0 = y, P 2 (x 2 ) = P 2 (x 0 + 2h) = y 0 + 2 f 0 + 2 f 0 = y 2 P 2 voidaan käsittää myös s:n funktioksi, kun s = (x x 0 )/h on mielivaltainen reaaliluku. Samalla tavoin voidaan johtaa myös korkeamman asteisia interpolointipolynomeja. Eteenpäisten differenssien sijasta voidaan käyttää myös taaksepäisiä tai molempia yhdessä.

Edellä esitetty menetelmä soveltuu vain tasaväliselle aineistolle. Esimerkki: x 0 y 2.0 30 50 3.0 3.8 75 00 4.8 5.2 Aineistossa 5 pistettä, joten se voidaan esittää neljännen asteen polynomin avulla: y = P 4 (n) = a 0 + a x + a 2 x 2 + a 3 x 3 + a 4 x 4. Sijoittamalla annetut arvot saadaan yhtälöryhmä a 0 + 0a + 00a 2 + 000a 3 + 0000a 4 = 2.0, a 0 + 30a + 900a 2 + 27000a 3 + 80000a 4 = 3.0, a 0 + 50a + 2500a 2 + 25000a 3 + 6250000a 4 = 3.8, a 0 + 75a + 5625a 2 + 42875a 3 + 3640625a 4 = 4.8, a 0 +00a +0000a 2 +000000a 3 +00000000a 4 = 5.2. Tämä on lineaarinen yhtälöryhmä, jonka ratkaisu on a 0 =.234, a = 0.095, a 2 = 0.00672, a 3 = 0.00002347, a 4 = 0.00000089. Työlästä!

Lagrangen interpolointi Etsitään ensin joukko kardinaalifunktioita, polynomeja, joiden arvot annetuissa pisteissä ovat vain nollia tai ykkösiä. Jos esitettäviä pisteitä on n kappaletta, kardinaalifunktioita tarvitaan n kappaletta, L i, i =,...,n. Valitaan ne siten, että L i (x i ) =, L i (x j ) = 0, i j. Edellisessä esimerkissä n = 4, joten kardinaalifunktiot ovat neljännen asteen polynomeja. Algebran peruslauseen mukaan ne voidaan kirjoittaa neljän tekijän tulona: L (x) = A (x x 2 )(x x 3 )(x x 4 )(x x 5 ),.. L 5 (x) = A 5 (x x )(x x 2 )(x x 3 )(x x 4 ). Vakiot A i saadaan ehdosta L i (x i ) = ; esim. A(x x 2 )(x x 3 )(x x 4 )(x x 5 ) =. Ensimmäinen kardinaalifunktio on siten L (x) = x x 2 x x 2 x x 3 x x 3 x x 4 x x 4 x x 5 x x 5. Esimerkkitapauksen kardinaalifunktiot L (x) = (x 30)(x 50)(x 75)(x 00), 4680000 L 2 (x) = (x 0)(x 50)(x 75)(x 00), 800000 L 3 (x) = (x 0)(x 30)(x 75)(x 00), 700000 L 4 (x) = (x 0)(x 30)(x 50)(x 00), 42875 L 5 (x) = (x 0)(x 30)(x 50)(x 75). 7875000

Interpolointipolynomi voidaan muodostaa kardinaalifunktioiden lineaarikombinaationa: P(x) = y L (x) + y 2 L 2 (x) + + y n L n (x). Esimerkissä P(x) = 2L (x) + 3L 2 (x) + 3.8L 3 (x) + 4.8L 4 (x) + 5.2L 5 (x). 6 3 0 0 50 00 Polynomeja voi käyttää interpolointiin, mutta ei ekstrapolointiin.

Spline-funktiot Esimerkki: x y 0.0 0.2 6 2.0 3.5 9 4. 7 5.0 24 Aineistoa ei voi kunnolla kuvata yhdellä funktiolla. Käytetään paloittaista sovitusta: aineisto jaetaan sopiviin väleihin, ja kuhunkin väliin sovitetaan eri funktio. Spline-funktiot ovat kolmannen asteen polynomeja, joiden kertoimet valitaan siten, että osavälien rajoilla toiset derivaatat ovat jatkuvia. Esimerkin aineistossa on 6 pistettä 5 väliä. Kuvataan käyrää viidellä kolmannen asteen polynomilla ( ) ( x xi x xi S i (x) = a i +b i +c i h i h i ) 2 ( ) 3 x xi +d i, i =,...,5, h i missä h i = x i+ x i. Ensimmäinen ja toinen derivaatta: ( S i(x) = ( ) ( ) ) 2 x xi x xi b i + 2c i + 3d i, h i h i S i (x) = ( ( x xi (h i ) 2 2c i + 6d i h i )). h i

Ensimmäistä väliä esittävän polynomin täytyy kulkea molempien päätepisteiden kautta: S (0) = a = 0, S (.2) = a + b + c + d = 6. Ensimmäisen välin päätepisteessä polynomin S ensimmäinen ja toinen derivaatta ovat samoja kuin polynomin S 2 vastaavat derivaatat toisen välin alussa: S (.2) = S 2(.2), eli S (.2) = S 2 (.2),.2 (b + 2c + 3d ) = 0.8 b 2,.2 2 (2c + 6d ] = 0.8 2 2c 2. Esimerkissä välejä 5 kappaletta, ja kutakin väliä kohti saadaan neljä yhtälöä, joten periaatteessa saadaan 20 yhtälöä. Derivaattoja koskeva yhtälö ei päde viimeiselle välille: Yhtälöitä on 8, mutta määrättäviä vakioita 20. Kaksi vakiota voidaan valita halutulla tavalla. Luonnollinen splini: toiset derivaatat nollia ensimmäisessä ja viimeisessä pisteessä. S (0) = 2c = 0, S 5 (5) = 2c 5 + 6d 5 = 0. Saadaan lineaarinen yhtälöryhmä a = 0, a + b + c + d = 6, b + 2c + 3d.500b 2 = 0, 2c + 6d 4.5002c 2 = 0, 2c = 0, a 2 = 6, a 2 + b 2 + c 2 + d 2 =, b 2 + 2c 2 + 3d 2 0.533b 3 = 0, 2c 2 + 6d 2 0.5692c 3 = 0,.. a 5 = 7, a 5 + b 5 + c 5 + d 5 = 24, 2c 5 + 6d 5 = 0, Kertoimet a i saadaan suoraan ja niiden arvot voidaan sijoittaa yhtälöihin, joissa ne esiintyvät.

Tämän ratkaisu on i a i b i c i d i 0.0 4.54 0.00.46 2 6.0 5.94.94 2.89 3.0 2.9 23.68 9.50 4 9.0 5.32 5.57 2.89 5 7.0.67 7.00 2.33 20 0 0 0 2 3 4 5

Edellä saatu yhtälöryhmä ei ole kätevin mahdollinen. y = a i + b i (x x i ) + c i (x x i ) 2 + d i (x x i ) 3, y i = a i, y i+ = a i + b i h i + c i h 2 i + d i h 3 i, y = b i + 2c i (x x i ) + 3d i (x x i ) 2, y i = b i, y i+ = b i + 2c i h i + 3d i h 2 i, y = 2c i + 6d i (x x i ), y i = 2c i, y i+ = 2c i + 6d i h i Otetaan uusiksi muuttujiksi toisen derivaatan arvot D i = y i. Tuntemattomille vakioille saadaan lausekkeet a i = y i, c i = D i /2, d i = (D i+ D i )/6h i, b i = y i+ y i 2h id i + h i D i+. h i 6 Välin i alussa y i = b i. Edellisen välin avulla laskettuna derivaatta on y i = b i + 2c i (x i x i ) + 3d i (x i x i ) 2 = b i + 2c i h i + 3d i h 2 i. Asetetaan nämä lausekkeet yhtä suuriksi ja lausutaan vakiot derivaattojen D i ja y-arvojen avulla: joka sievenee muotoon y i = y i+ y i 2h id i + h i D i+ h i 6 ( ) Di D i+ = 3 h 2 i + 2 2 6h i + y i y i h i ( Di 2h i D i + h i D i, 6 ) h i h i D i + (2h i + 2h i )D i + h i D i+ ( yi+ y i = 6 y ) i y i, h i h i i = 2,...,n.

Tässä on n 2 yhtälöä ja n tuntematonta D i. Lisäksi voidaan valita esimerkiksi D = D n = 0, jolloin kerroinmatriisi on 2(h + h 2 ) h 2 0 0 0 0 h 2 2(h 2 + h 3 ) h 3 0 0 0 0 h 3 2(h 3 + h 4 ) 0 0. 0 0 0 h n 2 2(h n 2 + h n ). Tämä on tridiagonaalinen yhtälöryhmä, joka on helppo ratkaista.

subroutine cubicspline(n, x, y, a, b, c, d) integer, intent(in) :: n real, intent(in), dimension(maxpoint) :: x, y real, intent(out), dimension(maxpoint) :: a, b, c, d integer i real, dimension(maxpoint,4) :: u real, dimension(maxpoint) :: s, h real t do i=,n-! h = askel x-suunnassa h(i) = x(i+)-x(i) end do do i=,n-2! lasketaan kerroinmatriisi u(i, ) = h(i) u(i, 2) = 2*(h(i)+h(i+)) u(i, 3) = h(i+)! oikean puolen vektori u(i, 4) = 6.0* ((y(i+2)-y(i+))/h(i+) & - (y(i+)-y(i))/h(i)) end do u(,) = 0.0 u(n-2,3) = 0.0 do i=2,n-2! eliminointi t = u(i, )/u(i-, 2) u(i, 2) = u(i,2) - t * u(i-, 3) u(i, 4) = u(i,4) - t * u(i-, 4) end do u(n-2,4) = u(n-2,4) / u(n-2,2)! takaisinsijoitus do i=n-3,,- u(i,4) = (u(i, 4) - u(i, 3) * u(i+, 4))/u(i,2) end do s() = 0.0 do i=2,n- s(i)=u(i-,4) end do s(n) = 0.0! toiset derivaatat do i=,n-! splinien kertoimet a(i) = y(i) b(i) = (y(i+)-y(i))/h(i) - (2.0*h(i)*s(i) + h(i)*s(i+))/6.0 c(i) = s(i) / 2.0 d(i) = (s(i+)-s(i))/(6*h(i)) end do end subroutine

Splinejä voidaan jäykistää, jolloin ne mutkittelevat vähemmän, mutta eivät enää kuvaa aineistoa aivan täsmällisesti. Splinit sopivat interpolointiin, mutta eivät ekstrapolointiin. Jos aineistossa on jyrkkiä vaihteluita tai pitkiä tyhjiä välejä, käyrään voi tulla ylimääräisiä mutkia ja heilahteluja. Splinien ongelmia voi korjata lisäämällä uusia havaintopisteitä. Tärkeätä on, että pisteitä on riittävän tiheässä jyrkkien mutkien ympäristössä. Jos aineiston yhtä pistettä muutetaan, koko ratkaisu on laskettava uudestaan. Splinien kerroinmatriisi on nauhamatriisi, ja yhden pisteen muutoksesta aiheutuva häiriö vaimenee yleensä nopeasti kaueammas siirryttäessä. Esimerkki: Rungen funktio y = + 25x 2. 0-2 - 0 2

Kaksiulotteiset käyrät Edellä oletettiin, että vaaka-akselilla oleva muuttuja on koko ajan kasvava. Jos aineisto on yleistä käyrää esittävä pistejoukko, x-koordinaattia ei voi käyttää riippumattomana muuttujana. Jos molemmat koordinaatit riippuvat jostakin parametrista t, se voidaan valita riippumattomaksi muuttujaksi. Saadaan kaksi funktiota x = x(t) ja y = y(t), jolloin vastaava piste tasossa on (x(t),y(t)). Muussa tapauksessa valitaan jokin parametrointi. Esimerkiksi missä 0 t. x i (t) = a i + b i t + c i t 2 + d i t 3, y i (t) = a i + b it + c it 2 + d it 3.

Bézier-käyrät Bernšteinin interpolointipolynomi on kompleksitason käyrä z(t) = ( t) 3 z + 3t( t) 2 z 2 + 3t 2 ( t)z 3 + t 3 z 4, missä 0 t ja pisteet z i ovat käyrän neljä kontrollipistettä. Pierre Bézier alkoi käyttää näitä 960-luvulla tietokoneavusteisessa suunnittelussa. Bézier-käyrä määritellään kahden päätepisteen ja kahden kontrollipisteen avulla. Käyrä kulkee aina päätepisteiden kautta. Kontrollipisteillä ilmoitetaan tangenttien suunnat päätepisteissä. Käyrä lähtee päätepistestä kontrollipisteen suuntaan sitä suorempana mitä kauempana kontrollipiste on. Sopii hyvin juuri interaktiiviseen käyttöön. PostScript-kielessä on valmiina operaattori (curveto) Bézier-käyrän piirtämiseen.