7
Treba primetiti da nemamo analiticku zavisnost y od x vec je funkcija f() "nekako" definisana. Jedino sto nas ovde zanima je da ova funkcija prolazi kroz parove (x,y) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.2 0.4 0.6 0.8 1 1.2 y fz () xz , z 0.1 0.11 , 0.8 .. := fz () interp cspline x y , ( )x , y , z , ( ) := ili u jednom koraku Definisemo interpolacionu funkciju fz () interp koef x , y , z , ( ) := 2. Pronalazimo koeficijente interpolacije pozivom funkcija cspline,psline ili lspline - parametri funkcija su prethodno zadati vektori nezavisno prom. x i zavisno prom. y koef cspline x y , ( ) := 1. Interpolacija se u Mathcad-u realizuje pomocu funkcija za kubni splajn i izvodi u dva koraka y 0.52 0.4 0.53 0.6 1.01 := x 0.1 0.2 0.3 0.5 0.8 := Primer: Vektor nezavisno promemljive x (u rastucem redosledu) i vektor zavisno promenljive y Problem: Ako imamo tabelarno zadatu zavisnost y=f(x) u obliku parova (x,y) i potreban nam je funkcionalna zavisnost - mozemo koristiti interpolaciju - (uslov da kriva prolazi kroz svaku tacku tabele) regresiju - fitovanje (uslov da kriva najbolje opisuje zadate podatke) Interpolacija i regresija - empirijske funkcije sa jednom nezavisno promenljivom

Mathcad Tutorial Fitovanje

Embed Size (px)

DESCRIPTION

Fitovanje

Citation preview

  • Treba primetiti da nemamo analiticku zavisnost y od x vec je funkcija f() "nekako" definisana.Jedino sto nas ovde zanima je da ova funkcija prolazi kroz parove (x,y)

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.80.2

    0.4

    0.6

    0.8

    1

    1.2

    y

    f z( )

    x z,

    z 0.1 0.11, 0.8..:=f z( ) interp cspline x y,( ) x, y, z,( ):=

    ili u jednom korakuDefinisemo interpolacionu funkcijuf z( ) interp koef x, y, z,( ):=2.

    Pronalazimo koeficijente interpolacije pozivom funkcija cspline,psline ili lspline - parametri funkcija su prethodno zadati vektori nezavisno prom. x i zavisno prom. y

    koef cspline x y,( ):=1.

    Interpolacija se u Mathcad-u realizuje pomocu funkcija za kubni splajn i izvodi u dva koraka

    y

    0.520.4

    0.530.6

    1.01

    :=x

    0.1

    0.2

    0.3

    0.50.8

    :=

    Primer: Vektor nezavisno promemljive x (u rastucem redosledu) i vektor zavisno promenljive y

    Problem: Ako imamo tabelarno zadatu zavisnost y=f(x) u obliku parova (x,y) i potreban nam je funkcionalna zavisnost - mozemo koristiti

    interpolaciju - (uslov da kriva prolazi kroz svaku tacku tabele)

    regresiju - fitovanje (uslov da kriva najbolje opisuje zadate podatke)

    Interpolacija i regresija - empirijske funkcije sa jednom nezavisno promenljivom

  • aPn a n,( )dd 0.422=a 0.32:=0.25

    0.55zPn z n,( ) d 0.162=

    Ako nam odgovara, i ovde mozemo izvrsiti integraciju i diferenciranje

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

    0.5

    1

    y

    Pn z n,( )

    x z,

    Pn z n,( ) interp regress x y, n,( ) x, y, z,( ):=ili u jednom koraku (polinom od z stepena n)

    Definisemo trazeni polinomPn z( ) interp koef x, y, z,( ):=2.Pronalazimo koeficijente regresije pozivom funkcije regresskoef regress x y, n,( ):=1.

    Slicno kao i kod splajn interpolacije, regresija se vrsi u dva koraka:

    stepen polinoman 3:=Pn z b,( ) b0 b1 z+ b2 z2 ..+ bn zn+=

    0

    n

    jbj zj==Polinom je funkcija oblika:

    Ako je zeljena kriva oblika polinoma onda mozemo koristiti ugradjenu funkciju regress koja pronalazi koeficijente polinoma zadatog stepena

    Regresija (aproksimacija) u Mathcad-u se realizuje pomocu vise funkcija

    Prvi izvod u datoj tackia

    f a( )dd

    0.977=a 0.32:=

    Odredjeni integral 0.25

    0.55xf x( ) d 0.172=

    Jedan od glavnih razloga sto name je ovako definisana funkcija potrebna moze biti integracija ili diferenciranje u tabelarno zadatoj funkciji (x,y). Na primer:

  • 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

    0.5

    1

    y

    b0 b1 x+

    x

    b0.321

    0.767

    =b line x y,( ):=2. Funkcija line()

    b0.321

    0.767

    =nagib b1 slope x y,( ):=odsecak b0 intercept x y,( ):=

    1. Funkcije za odsecak intercept() i nagib slope() prave linije

    P1 x b,( ) b0 b1 x+=Funkcija je oblika polinoma prvog stepena:Linearna regresija - jednacina prave (intercept(), slope(), line())

    Sledi nekoliko funkcija gde mozemo dobiti koeficijente regresije - ukoliko su nam potrebni

    S2 7.654 10 3=

    S21

    length y( ) n 1+( ) y Pn x n,( )

    2:=

    Kada su polinomi u pitanju, ovaj pokazatelj ukljucuje i broj koeficijenata polinoma(stepen polinoma + 1), odnosno suma kvadrata odstupanja se deli sa duzinom vektoraplus broj nepoznatih parametara. To je radi poredjena funkcija sa razlicitim brojem parametara.

    S2 1.531 10 3=S2

    1length y( ) y Pn x n,( )

    2:=

    Kvalitet aproksimacije se obicno prikazuje kao srednje kvadratno odstupanjezadatih vrednosti y i onih dobijenih polinomom za zadate x vrednosti - pozeljna je sto manju vredost ovog pokazatelja

  • polinom x b,( ) b x( ):=ilipolinom x b,( )0

    length b( ) 1

    jbj x( ) j=:=

    3. Grafik

    b

    0.5951.261

    3.242

    1.275

    =b linfit x y, ,( ):=

    2. Pozivamo funkciju linfit() i dobijamo trazene koeficijente

    x( )

    1

    x

    x2

    x3

    :=

    1. Zadajemo vektorsku funkciju sa elementima x( ) jResicemo isti problem kao i sa funkcijom regress()Ovaj problem se moze resiti ugradjenom funkcijom linfit() *Specijalan oblik ove funkcije je polinom n-tog stepena

    f x b,( ) b0 x( )0 b1 x( )1+ b2 x( )2 ..+ bn x( )n+=0

    n

    jbj x( ) j==

    Funkcija je oblika

    Linearna regresija - linearna kombinacija funkcija (linfit)

    S2 5.363 10 3=S2 1

    length y( ) 2+ y b0 b1 x+( ) 2:=ili S2 7.508 10

    3=S2 1

    length y( ) y b0 b1 x+( ) 2:=Kvalitet aproksimacije

  • 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

    0.5

    1

    y

    polinom z b,( )

    x z,

    Nelinearna regresijaFunkcija je nelinearna po parametrimaPokusacemo da aproksimiramo prethodne podatke (x,y) funkcijom

    f x b,( ) b0 eb1 x:=1. Potrebno je zadati polazne procene nepoznatih parametara

    bpoc1

    1

    :=2. Definisati vektorsku funkciju ciji je prvi element zadata funkcija a ostali elementi su prvi izvodi po parametrima redom

  • 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

    0.5

    1

    y

    f z b,( )

    x z,

    Kvalitet aproksimacije S2 1length y( ) y f x b,( )( )

    2:=S2 4.543 10 3=

    ili

    S2 1length y( ) 2+ y f x b,( )( )

    2:=S2 3.245 10 3=

    U opstem slucaju se nepoznati koeficijenti pronalaze metodom najmanjih kvadrata tj. minimizacijom sume kvadrata odstupanja tabelarnih vrednosti funkcije od onih dobijenih regresionom jednacinom. Resicemo prethodni problem koji je resen pomocu genfit() i na ovaj nacin. Ovo je pogodan nacin kada je problematicno naci izvode po parametrima.Formiracemo funkciju koju minimizujemo (suma kvadrata odstupanja) po parametrima

    S b( ) y f x b,( )( )2:= vektori x i y su zadatiPolazne procene parametara:

    bpoc1

    1

    :=Pozivamo funkciju minimize() za trazenje minimuma date funkcije po parametrima

    b Minimize S bpoc,( ):=b

    0.362

    1.241

    =

  • ________________________________________________________________________________

    Treba obratiti paznju u ovom poslednjem slucaju da se desnim tasterom klikne na MinErr() i izabere Levenberg-Marquardt metoda. To je zbog toga sto ova metoda minimizuje sume kvadrata odstupanja - sto nam je i prvenstveni cilj.

    b0.362

    1.241

    =

    b MinErr bpoc( ):=LSM x y, bpoc,( ) 0=

    Given

    bpoc1

    1

    :=

    OdstupanjaLSM x y, b,( ) y f x b,( ):=

    Mozemo cak koristiti i samo minimizaciju odstupanja umesto sume kvadrata odstupanja, u ovom slucaju, kada koristimo MinErr()

    Koristi se vec spomenuti SOLVE BLOCK ali se umesto Find() koristi MinErr() koja sluzi da pronadje resenja koja su ne jednaka nuli kao sto je u bloku naznaceno - nego najbliza nuli. U ovom slucaju, kako je funkcija suma kvadrata odstupanja ona je uvek pozitivna. Ako pronadjemo one parametre koji ovu funkciju daju vrednost koja je bliska nuli, mi smo pronasli minimum koji i trazimo.

    b0.362

    1.241

    =

    b MinErr bpoc( ):=LSM x y, bpoc,( ) 0=

    Given

    bpoc1

    1

    :=Suma kvadrata odstupanjaLSM x y, b,( ) y f x b,( )( )2:=

    Kako pronalazenje parametara u regresionoj jednacini nelinearnoj po parametrima moze biti prilicno problematicno, evo jos jednog nacina koji se moze upotrebiti ako prethodni metodi nedaju rezultat. Naravno, ni ovaj nacin ne garantuje da cemo doci do resenja jer su u pitanju sisteminelinearnih jednacina po parametrima