Mitatuista arvoista funktio

Seuraa 
Viestejä45973
Liittynyt3.9.2015

Hei

mulla on mitattuja arvoja joista pitäisi saada laskettua jonkunlainen polynomifunktio.
Mitatut arvot on:
x y
1 3
3 4
7 19
15 44
33 5
7 19

Saan polynomisen trendikäyrän ja funktion vaikka excelillä ulos mutta minun pitäisi itse laskemalla hoitaa asia. Mikä on matemaattinen tekniikka jolla tämä onnistuu, polynomiregressio, ekstrapolarointi?

Kommentit (9)

Vierailija

Korjaus, olen kiinnostunut funktiosta joka approksimoi kuvaajan pisteet arvoalueella eli interpoloinnista? Mutta olen myös kiinnostunut ekstrapoloinnista joka ennustaa?

Ylä-asteella ei käydä tällasia läpi mutta olen kiinnostunut edes yhdestä esimerkistä. Kiitos.

Vierailija

Esim. 2. asteen polynomisovitus pienimmän neliösumman menetelmällä

approksimoidaan y = P(x) = A*x^2 + B*x + C

Approksimaatiossa syntyvä virhe on tietyssä mittauspisteessä suuruudeltaan P(x) - y. Summataan kaikkien mittauspisteiden virheiden neliöt yhteen

E^2 = ∑[P(x) - y]^2 (missä x ja y ovat tiedettyjä mittausarvoja)

Parhaimmat arvot A,B ja C:lle saadaan pisteessä jossa virhe E^2 saa minimin (jos käytetään pienimmän neliösumman menetelmää). Ja koska E^2 on ns. konveksi on sillä vain yksi ääriarvo (minimi). Haetaan siis gradientin nollakohta

d/dA(E^2) = 0
d/dB(E^2) = 0
d/dC(E^2) = 0

Siinä on kolmen yhtälön yhtälöryhmä ja tuntemattomia on sama määrä, eli vakiot A, B ja C saadaan määritettyä siitä.

Vanha jäärä
Seuraa 
Viestejä1557
Liittynyt12.4.2005

Helpointa on sovittaa käyrä esimerkin

http://mathworld.wolfram.com/LeastSquaresFittingPolynomial.html

mukaan. Valitset ensin sopivan polynomin ja sovitat sen sitten pistejoukkoon. Sovitus onnistuu kaikkein parhaiten matriiseilla.

Koska mittauspisteissä on aina virhettä, kannattaa käyrän asteluku valita merkittävästi maksimiastelukua alemmaksi, jotta käyrästä tulee todella approksimaatio- eikä interpolaatiokäyrä. Näin mahdolliset mittausvirheet tasoittuvat.

Vanha jäärä

Neutroni
Seuraa 
Viestejä26848
Liittynyt16.3.2005
TH_93
Korjaus, olen kiinnostunut funktiosta joka approksimoi kuvaajan pisteet arvoalueella eli interpoloinnista? Mutta olen myös kiinnostunut ekstrapoloinnista joka ennustaa?

Ylä-asteella ei käydä tällasia läpi mutta olen kiinnostunut edes yhdestä esimerkistä. Kiitos.

Interpoloinnissa käytetään yleensä joukkoa polynomeja (kutsutaan splineiksi), jotka sovitetaan niin, että annetuissa pisteissä polynomien arvo on sama kuin funktiolla ja polynomien liitoskohdassa toteutuvat tietyt jatkuvuusehdot. Yksinkertaisin esimerkki on luonnollisesti lineaarinen interpolointi, jossa interpolatiofunktio kostuu annettujen pisteiden välisistä janoista.

Useimpiin käytännön tarkoituksiin sopiva kompromissi on kuutiollinen splini. Siinä annettujen pisteiden väleille sovitetaan kuutiollinen polynomi, jonka arvo on sama kun annettu arvo ääripisteissä, sekä ensimmäinen ja toinen derivaatta jatkuva. Se merkitsee yksinkertaistetusti, että polynomien välillä ei ole kulmaa. Splinien johtamiseksi vaaditaan differentiaalilaskennan perusteita. Tässä on jonkinlainen suomenkielinen esitys aiheesta. Yläastelaiselle se voi olla hieman korkealentoinen, mutta ideana on saada annetuista arvoista ja halutuista jatkuvuusehdoista yhtälöryhmä, jonka ratkaisuna on derivaatat annetuissa pisteissä. Sitten kun tunnetaan funktion arvot ja derivaatat välin päätepisteissä, saadaan yksikäsitteinen kolmannen asteen polynomi. Joka välille tulee oma polynomi. Interpolaatiota laskettaessa tutkitaan ensin, millä välilä ollaan ja lasktetaan oikean polynomin arvo halutussa pisteessä.

Tuolla samalla sivustolla on myös muita interpolointimenetelmiä. Lagrangen interpolointia voi myös hyödyntää monessa tilanteessa. Morjensin mainitsemat Bezierin splinit ovat yksi splinien muoto, joita käytetään erityisesti 2 ja 3-ulotteisissa funktiossa.

Vierailija

itse olen Matlabin ”spline” funktiota usein käyttänyt. Näkyy miten peräkkäiset sovitusyritykset muotoutuvat yhä paremmin mittauspisteisiin:

help spline

SPLINE Cubic spline data interpolation.
Given data vectors X and Y, and a new abscissa vector XI, the
function YI = SPLINE(X,Y,XI) uses cubic spline interpolation
to find a vector YI corresponding to XI.

Here's an example that generates a coarse sine curve, then
interpolates over a finer abscissa:

x = 0:10; y = sin(x);
xi = 0:.25:10;
yi = spline(x,y,xi);
plot(x,y,'o',xi,yi)

PP = spline(x,y) returns the pp-form of the cubic spline interpolant
instead, for later use with ppval, etc.

See also INTERP1, INTERP2, PPVAL, MKPP, UNMKPP, the Spline Toolbox.

Vierailija

Linregillä matriisina saadaan aika hyvä korrelaatio kertoimilla:
a=0,001167582
b=-0,072767857
c=1,237030678
d=-3,54884386
e=5,383413462

Neutroni
Seuraa 
Viestejä26848
Liittynyt16.3.2005
msdos464

Klikkaile ne tuhon, ja tarkastele Tuo sovittaa n pisteeseen n-1 astetta olevan polynomin...

Kovin korkean asteen interpolaatiopolynomeilla on taipumus oskilloida. Voidaan osoittaa, että virhe (virheen neliö integroituna märittelyvälin yli) kasvaa rajatta interpolaatiopolynomin asteluvun kasvaessa. Siksi yleensä käytetään paloittain määriteltyä matalamman asteen polynomeista koottua funktiota.

Uusimmat

Suosituimmat