Teoria aproksymacji 3 7


Teoria aproksymacji
Projekt numer 3.7
Wydział Fizyki, Matematyki i Informatyki
Kierunek Informatyka
Katarzyna Jaruga
Nr indexu 88428
Katarzyna Jaruga | Teoria Aproksymacji
Wstęp
Interpolacja wielomianowa, nazywana interpolacją Lagrange a, a także po prostu interpolacją jest metodą
numerycznego przybliżania funkcji wielomianem Lagrange a stopnia n, przyjującym w n+1 punktach,
zwanych węzłami interpolacji wartości takie same jak przybliżana funkcja. Stosowana jest w naukach
doświadczalnych, w których dysponuje się skończoną liczbą danych do określenia zależności między
wielkościami, a także w celu uproszczenia skomplikowanych funkcji.
Pierre Bézier w latach 60. XX wieku opisaÅ‚ typ krzywych nazywanych krzywymi Béziera, które pierwotnie
używane były przy projektowaniu nadwozi samochodów Renault.
Krzywe Béziera sÄ… krzywymi parametrycznymi, tzn. każda współrzÄ™dna punktu krzywej jest pewnÄ…
funkcją liczby rzeczywistej będącej wspomnianym parametrem; aby określić krzywą na płaszczyznie
potrzebne są dwie funkcje, aby określić krzywą w przestrzeni  trzy, itd. Ze względu na rodzaj tych funkcji
mówi się o krzywych wielomianowych oraz krzywych wymiernych. Powszechnie stosuje się również
krzywe złożone z kawałków gładko połączonych krzywych wielomianowych bądz wymiernych, tzw.
krzywych B-sklejanych (także: krzywych gładkich).
Niezależnie od rodzaju krzywej na jej przebieg wpływa łamana kontrolna określona za pomocą punktów
kontrolnych, których liczba jest zwykle niewielka. Ta cecha bardzo ułatwia pracę interakcyjną, bowiem
człowiek w naturalny sposób może ustalać położenie punktów i w łatwy sposób korygować błędy.
Interpolacja Lagrange a
( ) ( )
( ) ( )
)# *#
Interpolację wykonałam za pomocą funkcji polyfit, która tworzy wielomian interpolacyjny Lagrange a. Do
uzyskania wartości w konkretnych punktach użyłam funkcji polyval.
Strona 1
Katarzyna Jaruga | Teoria Aproksymacji
function z = teoaproxc7(n)
% n = liczba przedziałów w przedziale [a,b]
a=0;
b=8*pi;
m=3; %stopien funkcji B-spline
% Wyznaczanie elementów po podziale na n części
delta=(b)/(n);
T=a:delta:b;
U=0:1/(n+m+m):1; %n+m for all original objects
T2=a:0.01:b;
% Obliczenie funkcji interpolowanej
X2=cos(T2./4).^3;
Y2=sin(T2./4).^3;
% Tworzenie danych do interpolacji oraz interpolacja
X=cos(T./4).^3;
Y=sin(T./4).^3;
aux=size(T);
FITX=polyfit(T,X,aux(2)-1);
FITY=polyfit(T,Y,aux(2)-1);
X2int= polyval(FITX, T2);
Y2int= polyval(FITY, T2);
Aproksymacja przy użyciu krzywej B-spline
Aproksymację wykonałam korzystając ze wzoru:
( ) "
( )
( ) ( ) ( )
)
( ) {
n  stopień krzywej
m+1  liczba węzłów
pi  i-ty punkt kontrolny
Nin(t)  unormowana funkcja B-sklejana stopnia n
Strona 2
Katarzyna Jaruga | Teoria Aproksymacji
% Tworzenie danych do aproksymacji oraz aproksymacja
for i=1:m
X(n+i)=X(i);
Y(n+i)=Y(i);
end
index=1;
k=U(m+1);
% t -> [U3, Un-3]
while k<=U(n+4) %-m
X2apx(index)=0;
Y2apx(index)=0;
for j=1:n+3 % n-stopień-1 (n-3-1) i+1 -> n-3
X2apx(index)=X2apx(index)+X(j)*N(m,j,k,U);
Y2apx(index)=Y2apx(index)+Y(j)*N(m,j,k,U);
end
k=k+0.002;
index=index+1;
end
By skorzystać z powyższego wzoru rekurencyjnego zdefiniowałam następującą funkcję:
function ret=N(n,i,t,u)
if n==0
if t >= u(i) && t< u(i+1)
ret=1;
else
ret=0;
end
else
ret=((t-u(i))/ (u(i+n) - u(i))) * N(n-1,i,t, u) + (u(i+n+1) - t)/(u(i+n+1)-
u(i+1)) * N(n-1, i+1, t, u);
end
end
Wykonanie wykresów
Wykresy wykonałam za pomocą funkcji plot. Dodałam również opis osi oraz ograniczyłam wartości na osi
poziomej oraz pionowej do przedziału x , y <-1, 1>.
% Rysowanie wykresów
plot(X2,Y2,'r.',X2int,Y2int,'g.',X2apx,Y2apx,'b.-');
xlabel('x'); ylabel('y');title('Wykres funkcji y=f(x) oraz funkcji interpolujÄ…cej');
axis([-1 1 -1 1]);
legend('funkcja interpolowana','interpolacja Lagrangea','aproksymacja B-spline');
Strona 3
Katarzyna Jaruga | Teoria Aproksymacji
Wyznaczanie norm z wykorzystaniem metody Simpsona
Wzory na użyte normy:
  | ( )|
+"
"
  +" ( )
%Normy
Nix=X2-X2int;
Niy=Y2-Y2int;
norma1i=simpson(abs(Nix),a,b)+simpson(abs(Niy),a,b);
norma2i=sqrt(simpson(Nix.*Nix,a,b))+sqrt(simpson(Niy.*Niy,a,b));
Liczenie norm dla funkcji interpolowanej i aproksymowanej:
deltaux=(b)/(index-2);
Taux=a:deltaux:b;
Xaux=cos(Taux./4).^3;
Yaux=sin(Taux./4).^3;
Nx=X2apx-Xaux;
Ny=Y2apx-Yaux;
norma1a=simpson(abs(Nx),a,b)+simpson(abs(Ny),a,b);
norma2a=sqrt(simpson(Nx.*Nx,a,b))+sqrt(simpson(Ny.*Ny,a,b));
Wyniki
N=5 N=10 N=50 N=100
  3.0170 3.4401e-004 4.8551e+004
interpolacja 10.9945
  1.2672 3.6939e-004 8.4087e+004
interpolacja 2.8094
  17.6545 3.8991 1.8619
aproksymacja 27.4690
  3.8871 0.9143 0.4376
aproksymacja 5.9055
Strona 4
Katarzyna Jaruga | Teoria Aproksymacji
N = 5
Strona 5
Katarzyna Jaruga | Teoria Aproksymacji
N = 10
N = 50
Strona 6
Katarzyna Jaruga | Teoria Aproksymacji
N = 100
Wnioski
Jak widać na powyższych wykresach, zadana krzywa stosunkowo łatwo interpoluje się interpolacją
Lagrange a. natomiast aproksymacja przy małej ilości węzłów daje dużo gorsze przybliżenie przebiegu
funkcji natomiast warto zauważyć, że mimo tego dobrze odzwierciedla jej kształt. Dla liczby węzłów 50
aproksymacja daje przybliżony rezultat jaki interpolacja osiąga już przy 10 węzłach. Dalszy wzrost liczby
punktów podziału zwiększa dokładność aproksymacji, lecz powoduje również zakłócenie prac algorytmu
interpolacji Lagrange, który przy tak dużej liczbie danych nie potrafi ich prawidłowo zinterpretować.
Strona 7


Wyszukiwarka

Podobne podstrony:
pawlikowski, fizyka, szczególna teoria względności
Teoria i metodologia nauki o informacji
teoria produkcji
Cuberbiller Kreacjonizm a teoria inteligentnego projektu (2007)
Teoria B 2A
Teoria osobowości H J Eysencka
silnik pradu stalego teoria(1)
Rachunek prawdopodobieństwa teoria
Teoria konsumenta1 2
niweleta obliczenia rzednych luku pionowego teoria zadania1
Teoria wielkiego podrywu S06E09 HDTV XviD AFG
koszałka,teoria sygnałów, Sygnały i przestrzenie w CPS
Teoria Drgań Mechanicznych Opracowanie 04

więcej podobnych podstron