Wielomianową metodę aproksymacji w MATLAB-ie realizuje funkcja polyfit: a = polyfit(x,y,n) n - stopień wielomianu
Funkcja ta dla danych wektorów x i y znajduje wektor współczynników a wielomianu stopnia j przybliżającego najlepiej w sensie średniokwadratowym zależność pomiędzy wartościami x a y. Dla n = 1 otrzymuje się najprostszą metodę aproksymacji która nazywana jest regresją liniową jest to aproksymacja za pomocą funkcji liniowej.
Aby otrzymać wartości wielomianu przybliżającego W(x) należy posłużyć się funkcji MATLAB-a polyval: p = połyval(a, x)
Funkcja ta wyznacza wartości wielomianu o współczynnikach określonych wektorem a dla wszystkich elementów wektora x (macierzy X lub liczby) a otrzymane wartości umieszcza w wektorze p lub macierzy P.
Przykład 3: Aproksymacja liniowa
Poniższe dane zostały pozyskane podczas eksperymentu polegającego na mierzeniu współczynnika sprężystości sprężyny. Sprężyna obciążana była różnymi masami, a mierzone były wielkości rozciągnięcia 8 względem długości sprężyny w stanie spoczynku. Z fizyki wiadomo, że F=k*8 i tutaj F—m*g. Dlatego k można wyliczyć z wyrażenia k=mg/S. W tym przypadku jednak k należy odnaleźć poprzez sporządzenie wykresu danych z eksperymentu, jak najdokładniej dopasowując linię prostą (wiemy, że zależność pomiędzy 8 oraz Fjest liniowa) do owych danych i badając jej nachyleniem.
1 rn(g) |
5,00 |
10,00 |
20,001 |
50,001 |
100,00 I |
| 8 (mm) |
15,50 |
33,07 |
53,391 |
140,241 |
301,03 1 |
Dopasowanie prostej do danych oznacza, że musisz znaleźć wielomianowe współczynniki a2 oraz al (wielomian pierwszego stopnia), które przy a2xi+al dadzą „najlepszą” estymację yi.
Oto, co trzeba zrobić.
Krok 1: Znajdź współczynnik a k
a=polyfit(x,y,l)
Krok 2: Oblicz y w ciaśniej rozmieszczonych punktach xj (z mniejszym krokiem), wykorzystując dopasowany wielomian: y_fitted=polyval (a,x_fine)
Krok 3: Sporządź wykres, na którym dane otrzymane z eksperymentu będą przedstawione w postaci punktów, zaś dane dopasowane jako prosta:
Przedstawiony poniżej skrypt zawiera wszystkie elementy niezbędne do przeprowadzenia aproksymacji liniowej i odnalezienia współczynnika sprężystości badanej sprężyny. Wynikowy
wykres przedstawiony jest na rysunku 5. m=[5 10 20 50 100]; d=[15.5 33.07 53.39 140.24 301.03]; g=9.81;
F=m/1000*g a=polyfit (d,F,l); d_fit=0:10:300;
F_fit=polyval(a,d_fit);
plot(d,F,'o',d_fit,F_fit);
k=a(l)
%masa obciążenia (g)
%wielkość rozciągnięcia (mm)
% g=9.81 m/sA2
%oblicz charakterystykę Sprężystości (N) %dopasowuje linię (wielomian pierwszego stopnia) %zagęść siatkę na d %oblicz wielomian w nowych punktach %wykres danych i dopasowanie krzywej