Uniwersytet Warmińsko – Mazurski w Olsztynie
II rok, studia stacjonarne
Mechatronika
Algorytmy i metody numeryczne
Temat: Interpolacja i aproksymacja.
Adrian Mańka
Grupa 3
Cel ćwiczenia
Praktyczne zaznajomienie sie z podstawowymi aspektami interpolacji wielomianowej, interpolacji funkcjami sklejanymi i aproksymacji średniokwadratowej.
Zadania.
Napisać m-plik dla obliczenia wielomianu Lagrange'a.
%ZADANIE 1
clc;
clear;
x=0:9;
n=length(x);
y=tan(x);
xx=0:0.01:9;
n1=length(xx);
for ii=1:n1
R(ii)=0;
for i=1:n
z=y(i);
for j=1:n
if i~=j
z=z*(xx(ii)-x(j))/(x(i)-x(j));
end
end
R(ii)=R(ii)+z;
end
end
plot(x,y,'o',xx,R);
11. Znaleźć wielomian interpolacyjny dla funkcji , określonej tablicą
1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|
2 | 1 | 5 | 6 | 1 |
Rezultat
12. Dla funkcji , określonej tablicą, znaleźć wielomian aproksymujący stopnia pierwszego.
0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | |
---|---|---|---|---|---|---|---|
2.9 | 2.8 | 2.7 | 2.3 | 2.1 | 2.1 | 1.7 |
13. Dla funkcji , określonej tablicą, znaleźć wielomian aproksymujący stopnia pierwszego.
20.5 | 32.7 | 51.0 | 73.2 | 95.7 | |
---|---|---|---|---|---|
765 | 826 | 873 | 942 | 1032 |
14. Funkcja jest określona tablicą. Znaleźć wielomian aproksymujący stopnia drugiego.
0 | 0.2 | 0.4 | 0.6 | 0.8 | 1.0 | |
---|---|---|---|---|---|---|
1.026 | 0.768 | 0.648 | 0.401 | 0.272 | 0.193 |
15. Funkcja jest określona tablicą (jest to tablica wartości funkcji )
0 | |||||
---|---|---|---|---|---|
0 | 1/2 | 1 |
a) Znaleźć wielomian aproksymujący stopnia drugiego i określić średni błąd aproksymacji.
b) Znaleźć wielomian aproksymujący stopnia czwartego.
PROGRAM
clc; %czyszczenie ekranu
clear; %czyszczenie pamięci
%ZADANIE 11
disp('ZADANIE 11'); %wyświetlenie treści w oknie z wynikami
X=[1 2 3 4 5]; %zdefiniowanie x-ów zgodnie z tablicą umieszczoną w zadaniu
Y=[ 2 1 5 6 1]; %zdefiniowanie y-ów zgodnie z tablicą umieszczoną w zadaniu
a=polyfit(X,Y,4)*24 %funkcja aproksymująca, gdzie X,Y - serie danych, 4 - stopień wielomianu. Mnożenie przez liczbę 24 ma na celu pozbycie się mianownika
%ZADANIE 12
disp('ZADANIE 12'); %wyświetlenie treści w oknie z wynikami
A=[0 0.1 0.2 0.3 0.4 0.5 0.6]; %zdefiniowanie wartości zgodnie z tablicą umieszczoną w zadaniu
B=[2.9 2.8 2.7 2.3 2.1 2.1 1.7]; %zdefiniowanie wartości zgodnie z tablicą umieszczoną w zadaniu
b=polyfit(A,B,1) %funkcja aproksymująca, gdzie A,B - serie danych, 1 - stopień wielomianu
z=b(1)*A+b(2) %funkcja zamieniająca wartości z tablicy A na aproksymację
figure(1);plot(A,B,A,z) %wykres przedstawiający dwie zależności:
%wartości A od wartości B
%wartości A od funkcji z
%ZADANIE 13
disp('ZADANIE 13'); %wyświetlenie treści w oknie z wynikami
C=[ 20.5 32.7 51.0 73.2 95.7]; %zdefiniowanie wartości zgodnie z tablicą umieszczoną w zadaniu
D=[765 826 873 942 1032]; %zdefiniowanie wartości zgodnie z tablicą umieszczoną w zadaniu
c=polyfit(C,D,1) %funkcja aproksymująca, gdzie C,D - serie danych, 1 – stopień
wielomianu
g=c(1)*C+c(2) %funkcja zamieniająca wartości z tablicy C na aproksymację
figure(2);plot(C,D,C,g) %wykres przedstawiający dwie zależności:
%wartości C od wartości D
%wartości C od funkcji g
%ZADANIE 14
disp('ZADANIE 14'); %wyświetlenie treści w oknie z wynikami
E=[0 0.2 0.4 0.6 0.8 1.0]; %zdefiniowanie wartości zgodnie z tablicą umieszczoną w zadaniu
F=[1.026 0.768 0.648 0.401 0.272 0.193]; %zdefiniowanie wartości zgodnie z tablicą umieszczoną w
zadaniu
d=polyfit(E,F,2); %funkcja aproksymująca, gdzie E,F - serie danych, 2 - stopień wielomianu
e=d(1)*E+d(2) %funkcja zamieniająca wartości z tablicy E na aproksymację
figure(3);plot(E,F,E,e) %wykres przedstawiający dwie zależności:
%wartości E od wartości F
%wartości E od funkcji e
%ZADANIE 15
disp('ZADANIE 15'); %wyświetlenie treści w oknie z wynikami
x=[0 pi/6 pi/4 pi/3 pi/2] %zdefiniowanie wartości zgodnie z tablicą umieszczoną w zadaniu
y=sin(x) %zwrócenie funkcji sinus odpowiednich wartości
a2=polyfit(x,y,2) %obliczenie współczynników wielomianu aproksymującego stopnia 2
y2=polyval(a2,x) %obliczenie wartości wielomianu stopnia 2 w punktach wektora x
a6=polyfit(x,y,6) %obliczenie współczynników wielomianu aproksymującego stopnia 2
y6=polyval(a6,x) %obliczenie wartości wielomianu stopnia 2 w punktach wektora x
figure(4);plot(x,y,'o',x,y2,'x',x,y6) %wykres przedstawiający powyższe zależności
REZULTAT
ZADANIE 11
a =
5.0000 -82.0000 427.0000 -806.0000 504.0000
ZADANIE 12
b =
-2.0000 2.9714
z =
2.9714 2.7714 2.5714 2.3714 2.1714 1.9714 1.7714
ZADANIE 13
c =
3.3949 702.1721
g =
1.0e+03 *
0.7718 0.8132 0.8753 0.9507 1.0271
ZADANIE 14
e =
-1.2263 -1.1496 -1.0729 -0.9963 -0.9196 -0.8429
ZADANIE 15
x =
0 0.5236 0.7854 1.0472 1.5708
y =
0 0.5000 0.7071 0.8660 1.0000
a2 =
-0.3346 1.1685 -0.0050
y2 =
-0.0050 0.5151 0.7064 0.8517 1.0049
a6 =
0.0112 0 -0.0822 0 -0.1127 1.0253 0.0000
y6 =
0.0000 0.5000 0.7071 0.8660 1.0000