Przedmiot zadania
Dla zadanego w tab. nr 1 zbioru węzłów należało wyznaczyć wielomian interpolacyjny Metodą Vandermonde’a. Obliczenia należało wykonać przy użyciu MatLAB’a bądź Octave’a. Ponadto sprawdzono poprawność wykonania wykresu poprzez sporządzenie wykresu oraz określenie uwarunkowania macierzy Vandermonde’a.
Tabela 1. Zadane węzły
x | 0 | 1 | 2 | 4 |
---|---|---|---|---|
y | -3 | 3 | 31 | 197 |
Metoda Vandermonde’a – polega na znalezieniu równania wielomianu interpolacyjnego poprzez rozwiązanie układu równań, w którym wprowadza się macierz Vandermonde’a w postaci jak na rys. nr 1.
Rysunek 1. Definicyjna postać macierzy Vandermonde'a
Metoda ta pozwala na uzyskanie jednoznacznego rozwiązania. W celu uzyskania poprawnych rezultatów spełnione muszą zostać dwa warunki:
det A ≠0,
cond(A)=1 ÷ 1000.∖n
Kod z programu MatLAB
% Rozwiązanie problemu przy użyciu macierzy Vandermonde'a
xi=[0 1 2 4]
yi=[-3 3 31 197]
Vandermond(xi,yi)
function [ai ] = vandermond( xi,yi );
%UNTITLED3 Summary of this function goes here
% Detailed explanation goes here
V=vander(xi)
b=yi'
%rozwiązujemy układ równań
x=V\b;
ai=x;
a=-5; b=5;
x=linspace(a,b,256);
%wartości wielomianu
Wn=polyval(ai,x)
%kreślimy wielomian i węzły
plot(xi,yi,'ro',x,Wn,'k')
grid on
end
V=[0 0 0 1; 1 1 1 1; 8 4 2 1; 64 16 4 1]
cond(V)
det(V)
V =
0 0 0 1
1 1 1 1
8 4 2 1
64 16 4 1
b =
-3
3
31
197
x =
1.8333
5.5000
-1.3333
-3.0000
ai =
1.8333
5.5000
-1.3333
-3.0000
ans =
280.1460
ans =
48
Wykres 1. Przebieg wielomianu interpolacyjnego
Na podstawie wartości “ai” wygenerowanych przez program można zauważyć, iż wielomian interpolacyjny przyjął postać:
W3(x)=−3x3−1.3333x2+5.5x + 1.8333
Wnioskując z wykresu nr 1, powyższy wielomian bardzo dobrze przybliża przebieg funkcji w zadanych węzłach.
Obliczenia odręczne zamieszczone zostały na odwrocie bieżącej strony i zgodnie z zaleceniami prowadzącego zostały one przeprowadzone w ograniczonym zakresie.
Wnioski
Wykres uzyskanego metodą Vandermonde’a wielomianu interpolacyjnego
W3(x) = −3x3 − 1.3333x2 + 5.5x + 1.8333 bardzo dokładnie pokrywa się z zadanymi w treści problemu węzłami
Rozwiązanie jest jednoznaczne, a macierz Vandermonde’a dobrze uwarunkowana, gdyż spełnione są oba warunki:
detA = 48 → detA ≠ 0
cond(A) = 280.146 → cond (A) ∈ (1 , 1000)
Z dużym prawdopodobieństwem stwierdza się, iż zadanie zostało wykonane poprawnie.