4 e, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numeryczne [2009], Kosma Z - Metody i algorytmy numeryczne [2009]


4.5. Interpolacja Czebyszewa

Wielomiany Czebyszewa są określone w przedziale związkiem rekurencyjnym:

(4.34)

wynikającym z tożsamości trygonometrycznej

(4.35)

po przyjęciu

Związek rekurencyjny (4.34) określa wielomiany parzyste, gdy n jest liczbą parzystą i wielomiany nieparzyste, gdy n jest liczbą nieparzystą. Oto kilka pierwszych wielomianów Czebyszewa:

Biorąc bazę Czebyszewa: jako układ funkcji liniowo niezależnych (4.6) otrzymamy wielomian interpolacyjny Czebyszewa

0x01 graphic
(4.36)

którego współczynniki są rozwiązaniem układu równań liniowych

(4.37)

gdzie:

,

0x01 graphic

0x01 graphic

Jeśli mamy do czynienia ze zmienną 0x01 graphic
przebiegającą dowolny przedział [a, b], to należy wykonać podstawienie

0x01 graphic
(4.38)

gdyż

0x01 graphic

Interpolacja Czebyszewa przy dowolnym wyborze węzłów interpolacji jest efektywna w tym sensie, że błędy zaokrągleń występujące przy rozwiązywaniu układu równań liniowych (4.37) są istotnie mniejsze w porównaniu z błędami zaokrągleń powstającymi przy rozwiązywaniu układu równań (4.5) dla interpolacji wielomianami w postaci naturalnej.

Druga bardzo ważna własność interpolacji Czebyszewa ujawnia się przy odpowiednim doborze węzłów interpolacji, będących zerami kolejnych wielomianów Czebyszewa (4.34)

0x01 graphic
(4.39)

Węzły interpolacji określone wzorem (4.39) nie są rozmieszczone w równych odstępach, lecz są zagęszczone przy końcach przedziału.

Z zasady minimaksu [3, 17] wynika, że ze wszystkich wielomianów n-tego stopnia (4.13) ze współczynnikiem wiodącym 1 najmniejszą normę maksymalną w przedziale 0x01 graphic
ma wielomian 0x01 graphic
jego norma maksymalna jest równa 0x01 graphic
Przyjęcie węzłów zgodnie z (4.39) gwarantuje więc tym samym uzyskanie minimalnego błędu interpolacji (4.33) w przedziale, w którym będzie użyty wzór interpolacyjny. Wielomian interpolacyjny rozpięty na węzłach (4.39), które są pierwiastkami wielomianu Czebyszewa nazywa się optymalnym wielomianem interpolacyjnym.

Jeżeli jako węzły interpolacji przyjmiemy węzły Czebyszewa (4.39) - to z jednej strony otrzymamy pewną minimalizację błędu interpolacji, a z drugiej strony z własności wielomianów Czebyszewa:

0x01 graphic
(4.40)

wynika, że dla

(4.41)

macierz współczynników układu równań (4.37) pomnożona przez stałą jest macierzą ortogonalną (2.30)

Zatem jest

(4.42)

co stanowi bardzo istotne uproszczenie obliczeń.

{Program 4.3}

unit Obliczenia;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, OleCtnrs;

const nmax = 20;

type

Tabl1 = array[0..100] of Real;

Tabl2 = array[1..1000] of Real;

Tabl3 = array[0..nmax,0..nmax+1] of Real;

. . . . . . . . . . . . . . . . . . . . . .

var

Form3: TForm3;

i,j,K,n,m,wez,X0,Y0,ZX,ZY: Integer;

a,b,bl,det,h,t,x,y: Real;

xx,yy,Xekr,Yekr: Tabl2;

plik,plik1: Text;

acz,xw,yw: Tabl1;

mac,mac1: Tabl3;

implementation

uses Ustawienia, Informacje, Grafika, Podglad;

{$R *.DFM}

function f(x: Real): Real;

begin

if Form3.RadioButton1.Checked then

f:=100*x*x*Exp(-10*x);

if Form3.RadioButton2.Checked then

f:=1/(1+25*x*x);

end;

function WielCzeb(n: Integer; x: Real): Real;

var

k: Integer;

Tn,Tn1,Tn2: Real;

label kon;

begin

Tn2:=1; Tn1:=x;

if n=0 then begin

Tn:=Tn2; goto kon;

end;

if n=1 then begin

Tn:=Tn1; goto kon;

end;

for k:=2 to n do begin

Tn:=2*x*Tn1-Tn2;

Tn2:=Tn1; Tn1:=Tn;

end;

kon:

WielCzeb:=Tn;

end;

{procedure ElimGaussa0(n,m: Integer; var A: Tabl3; var det: Real);}

procedure TForm3.BitBtn1Click(Sender: TObject);

begin

Form2.Show;

AssignFile(plik,Edit6.Text);

AssignFile(plik1,Edit5.Text);

Rewrite(plik); Rewrite(plik1);

Writeln(plik,'PROGRAM 4.3.');

if RadioButton3.Checked then wez:=1;

if RadioButton4.Checked then wez:=2;

a:=StrtoFloat(Edit1.Text); b:=StrtoFloat(Edit2.Text);

n:=StrtoInt(Edit3.Text); m:=StrtoInt(Edit4.Text);

Writeln(plik,'Interpolacja Czebyszewa funkcji jednej zmiennej.');

case wez of

1: Writeln(plik,'Węzły interpolacji rozłożone równomiernie.');

2: Writeln(plik,'Węzły interpolacji są węzłami Czebyszewa.');

end;

Writeln(plik);

Writeln(plik,'Początek przedziału: a = ',a:13);

Writeln(plik,'Koniec przedziału: b = ',b:13);

Writeln(plik,'Liczba węzłów: n = ',n:3);

Writeln(plik,'Liczba punktów wykresu: m = ',m:3);

Writeln(plik1,n:3); Writeln(plik1,m:3);

Writeln(plik);

h:=(b-a)/n;

if wez=1 then begin

for i:=0 to n do begin

x:=a+i*h; y:=f(x);

xw[i]:=x; yw[i]:=y;

xx[i+1]:=x; yy[i+1]:=y;

end;

for i:=0 to n do begin

mac[i,0]:=1/Sqrt(2);

mac[i,n+1]:=yw[i];

for j:=1 to n do begin

t:=2*xw[i]/(b-a)-(a+b)/(b-a);

mac[i,j]:=WielCzeb(j,t);

end;

end;

ElimGaussa0(n,1,mac,det);

for i:=0 to n do

acz[i]:=mac[i,n+1];

end;

if wez=2 then begin

for i:=0 to n do begin

t:=Cos((2*i+1)*Pi/(2*n+2));

x:=0.5*(a+b)+0.5*(b-a)*t;

y:=f(x); xw[i]:=x; yw[i]:=y;

xx[i+1]:=x; yy[i+1]:=y;

end;

for i:=0 to n do begin

mac[i,0]:=1/Sqrt(2);

mac[i,n+1]:=yw[i];

for j:=1 to n do begin

t:=2*xw[i]/(b-a)-(a+b)/(b-a);

mac[i,j]:=WielCzeb(j,t);

end;

end;

for i:=0 to n do

for j:=0 to n do

mac1[i,j]:=2*mac[j,i]/(n+1);

for i:=0 to n do begin

t:=0;

for j:=0 to n do

t:=t+mac1[i,j]*yw[j];

acz[i]:=t;

end;

end;

xx[n+2]:=0; yy[n+2]:=0; K:=n+2;

Writeln(plik,'Wyniki interpolacji funkcji:');

Writeln(plik,' i x[i] y[i] błąd');

h:=(b-a)/m;

for i:=0 to m do begin

x:=a+i*h;

t:=2*x/(b-a)-(a+b)/(b-a);

y:=acz[0]/Sqrt(2);

for j:=1 to n do

y:=y+acz[j]*WielCzeb(j,t);

bl:=f(x)-y;

Writeln(plik,i:3,' ',x:13,' ',y:16,' ',bl:13);

K:=K+1; xx[K]:=x; yy[K]:=y;

end;

for i:=1 to m+n+3 do

Writeln(plik1,xx[i]:13,' ',yy[i]:13);

CloseFile(plik); CloseFile(plik1);

Form2.Wyniki.Lines.LoadFromFile(Edit6.Text);

end;

. . . . . . . . . . . . . . . . . . . . . . .

procedure TForm3.BitBtn3Click(Sender: TObject);

begin

Close;

end;

end.

W programie 4.3 procedura funkcyjna WielCzeb jest przeznaczona do obliczania wartości wielomianu Czebyszewa (4.34) dla zadanej wartości argumentu w przedziale , a procedura ElimGaussa0 jest zmodyfikowaną procedurą Elim-Gaussa - przystosowaną do rozwiązywania układu algebraicznych równań liniowych metodą eliminacji Gaussa, numerowanych od zera. Program ten jest przeznaczony do interpolacji funkcji jednej zmiennej w dowolnym przedziale 0x01 graphic
dla dwóch wariantów obliczeń, przy przyjęciu:

1) równomiernego odstępu między węzłami interpolacji,

2) jako węzłów interpolacji węzłów Czebyszewa (4.39).

Za pomocą programu 4.3 powtórzono obliczenia dla przykładu Runge'go (4.32). Oczywiście przy wyborze pierwszego wariantu obliczeń otrzymujemy takie same wielomiany interpolacyjne, jakie są pokazane na rysunkach 4.3 ÷ 4.5. Natomiast przy wyborze drugiego wariantu obliczeń występuje istotne ograniczenie błędów interpolacji przy końcach przedziału, dla dużych n, co zostało uwidocznione na rysunkach 4.6 ÷ 4.9, uzyskanych również dla n = 4, 7 i 10 oraz dodatkowo n = 15.

0x01 graphic

Rys. 4.6

0x01 graphic

Rys. 4.7

0x01 graphic

Rys. 4.8

0x01 graphic

Rys. 4.9

186 4. Interpolacja

4.5. Interpolacja Czebyszewa 187



Wyszukiwarka

Podobne podstrony:
7 h, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
Spis tresci, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy
4 a, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
1 c, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
4 m, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
Okladka, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy nume
1 h, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
Przedmowa, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy nu
Contents, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy num
4 i, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
6 c, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
5 f, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
2 c, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
2 f, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
1 d, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
7 c 2, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numery
5 h, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
7 b, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
1 e, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz

więcej podobnych podstron