1 punkt

Transkrypt

1 punkt
Metody Numeryczne
Laboratorium 4
Interpolacja wielomianowa
Zadanie2.1
(1 punkt)
Napisać w dowolnym legalnie dostępnym kodzie na przykład Octave program obliczania
współczynników wielomianu Lagrange i jego wartość w wybranym punkcie.
Rozwiązanie
function lagrange(x,y,a)
%
% funkcja „ lagrange ”oblicza wspolczynniki wielomianu Lagrange’a
% i określa jego wartosc w punkcie a.
%
%
data
programista
%
4.11.2003
Janusz Chojnacki
%
% dane wejsciowe
% x --- wektor węzłów.
% y --- wektor wartości funkcji w danych wezłach
% a --- dowolna liczba rzeczywista
%
% obliczenie ilosci węzłów
n=length(x);
%
% określenie początkowej wartosci wielomianu
p=0;
%
% skonstruowanie wielomianow bazowych Lagrange’a
for k=1:n
b(k)=1;
d(k)=1;
for j=1:n
if j~= k
b(k)=b(k)*(x(k)-x(j));
d(k)=d(k)*(a-x(j));
end
end
%
% obliczenie wspolczynnikow wielomianu Lagrange’a
c(k)=y(k)/b(k);
%
% obliczenie wartosci wielomian w punkcie a
p=p+c(k)*d(k);
% wyprowadzenie wartości wspolczynnikow
oryginalny kod
Octave v. 2.1.50
c
%
%wydrukowanie wartosci wielomianu w formacie staloprzecinkowym
fprintf('\n p(a)= %10.6f',p)
fprintf('\n')
%
% zakończenie programu
endfunction
Zadanie 2.2
(1 punkt)
Cena znaczka pocztowego w USA była następująca ( w centach):
rok 1885 1917 1919 1932 1958 1963 1968 1971 1974 1978 1985 1991 1995
2
3
3
4
5
6
8
10
15
22
29
32
2
cena
Wykorzystując funkcję ,,lagrange”
z zadania 2.1, wyznaczyć wielomian interpolacyjny
Lagrange dla tych danych. Kiedy cena znaczka wyniesie $1 i $10?
Zadanie 2.3
(1 punkt)
Względne wodne stężenie etanolu w zależności od jego procentowej zawartości (wagi)
przedstawia następująca tablica:
Waga
( %)
0
20
40
60
80
100
Stężenie
1.000
2.183
2.840
2.542
1.877
1.201
Wykorzystując program ,, lagrange’’ określić względne stężenie etanolu dla 30%, 50%,
70%, 90% jego zawartości.
Zadanie 2.4
(1 punkt)
Napisać w legalnie dostępnym kodzie na przykład w Octave program obliczający
współczynniki wielomianu interpolacyjnego Lagrange’a metodą bezpośrednią to znaczy
rozwiązujący układ równań V ⋅ a = y, gdzie V – macierz Vandermonde’a dla danych
wektorów X – węzłów i Y - wartości
Wskazówka: Macierz Vandermonda V wygenerować jedną z następujących procedur:
for k = 1:n
for j = 2:n
V=[ ];
V(k, j)= X(k)*V(k,j-1);
lub
for k=0:length(X)-1 ; V=[V X.^k];
Zadanie 2.5
(1 punkt)
Rozwiązać metodą bezpośrednią ( za pomocą programu z zadania 2.4) zadania 2.2 i 2.3.
Porównać otrzymane wyniki.
Janusz Chojnacki

Podobne dokumenty