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


93 9.3000E-0001 6.9634657E-0003 9.4382E-0004

94 9.4000E-0001 5.9483989E-0003 1.3611E-0003

95 9.5000E-0001 4.9826978E-0003 1.7727E-0003

96 9.6000E-0001 4.1317740E-0003 2.1101E-0003

97 9.7000E-0001 3.4940266E-0003 2.2721E-0003

98 9.8000E-0001 3.2098605E-0003 2.1157E-0003

99 9.9000E-0001 3.4723825E-0003 1.4452E-0003

100 1.0000E+0000 4.5399930E-0003 0.0000E+0000

4.3. Interpolacja Newtona

Interpolacja Newtona jest oparta na przyjęciu jako układu funkcji liniowo-niezależnych wielomianów czynnikowych postaci:

0x01 graphic
(4.21)

Po podstawieniu tej bazy do (4.8) otrzymujemy układ równań z trójkątną macierzą charakterystyczną:

0x01 graphic
0x01 graphic
(4.22)

Przed rozwiązaniem tego układu równań niezbędne jest wprowadzenie pojęcia ilorazów różnicowych. Dla funkcji 0x01 graphic
określonej na dyskretnym zbiorze argumentów (4.3) definiujemy ilorazy różnicowe pierwszego rzędu:

0x01 graphic
(4.23)

0x01 graphic
(4.23cd.)

oraz rekurencyjnie ilorazy różnicowe rzędu k

0x01 graphic
0x01 graphic
(4.24)

Obliczanie powyższych ilorazów różnicowych można wykonać w łatwiejszy sposób przy wykorzystaniu zależności

0x01 graphic

(4.25)

lub posługując się następującą tablicą ilorazów różnicowych:

xi

Yi

Ilorazy różnicowe

x0

Y0

0x01 graphic

x1

Y1

0x01 graphic

0x01 graphic

0x01 graphic

x2

Y2

0x01 graphic

0x01 graphic

x3

Y3

...

...

Przykładowo dla wielomianu trzeciego stopnia dla węzłów interpolacji: tablica ilorazów różnicowych ma postać:

xi

Yi

Ilorazy różnicowe

0

0

4

2

8

5

19

1

3

27

10

0

49

1

5

125

14

91

6

216

Rozwiązując kolejne równania układu równań (4.22) otrzymujemy:

0x01 graphic
(4.26)

Tak więc wzór interpolacyjny Newtona ma postać:

0x01 graphic
(4.27)

Współczynniki   wielomianu interpolacyjnego Newtona

0x01 graphic
(4.28)

można wyznaczyć również w inny sposób, wykorzystując zależność rekurencyjną

Wielomiany mają współczynnik równy jedności przy zatem współczynnik jest równy współczynnikowi przy w wielomianie interpolacyjnym Lagrange'a

0x01 graphic

Stąd oraz na mocy związku (4.25) jest

0x01 graphic

Przykład. Znaleźć wielomian interpolacyjny Newtona, który w punktach: 0, 2,
3, 5 przyjmuje wartości: 1, 3, 2, 5.

Sporządzamy najpierw tablicę ilorazów różnicowych:

xi

Yi

ilorazy różnicowe

0

1

1

2

3

−2/3

−1

3/10

3

2

5/6

3/2

5

5

i następnie otrzymujemy

0x01 graphic

*

W przypadku węzłów równoodległych ilorazy różnicowe kolejnych rzędów wy-noszą odpowiednio:

0x01 graphic

Można je zapisać w szczególnie wygodny sposób za pomocą skończonych różnic progresywnych funkcji 0x01 graphic
zdefiniowanych następująco:

0x01 graphic
(4.29)

Korzystając z tych wzorów po podstawieniu do (4.27) otrzymujemy wzór interpolacyjny Newtona dla węzłów równoodległych

0x01 graphic

który łatwiej jest stosować po wprowadzeniu pomocniczej zmiennej (4.18)

0x01 graphic
(4.30)

Operator różnicowania 0x01 graphic
ma wiele własności podobnych do własności operatora różniczkowego:

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic
0x01 graphic

Łatwo ponadto można wykazać, że w przypadku wielomianu n-tego stopnia n-ta różnica jest stała i ma postać

0x01 graphic

Obliczone różnice kolejnych rzędów najwygodniej jest układać w postaci trójkątnej tablicy różnic progresywnych:

xi

yi

0x01 graphic

0x01 graphic

0x01 graphic

x0

y0

0x01 graphic

x1

y1

0x01 graphic

0x01 graphic

0x01 graphic

x2

y2

0x01 graphic

0x01 graphic

x3

y3

Wzory interpolacyjne (4.27) i (4.31), zwane pierwszymi wzorami interpolacyjnymi, są stosowane do interpolacji funkcji 0x01 graphic
w otoczeniu wartości początkowej Do interpolacji funkcji 0x01 graphic
w pobliżu końca tablicy wygodniej jest wykorzystywać tzw. drugie wielomiany interpolacyjne Newtona postaci

0x01 graphic

których współczynniki określane są za pomocą wstecznych ilorazów różnicowych

0x01 graphic

lub też wstecznych różnic skończonych

0x01 graphic

Dla węzłów równoodległych, po podstawieniu

0x01 graphic

analogicznym do (4.18), otrzymamy

0x01 graphic
(4.31)

Ze względu na możliwość nieuwzględniania we wzorach interpolacyjnych New-tona tych składników, których współczynniki są dostatecznie małe, mogą one okazać się korzystniejsze w stosowaniu niż wielomian interpolacyjny Lagrange'a, w którym każdy ze składników jest jednakowo istotny i nie można żadnego z nich zaniedbać.

{Program 4.2}

unit Obliczenia;

interface

uses

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

Forms, Dialogs, StdCtrls, Buttons;

type

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

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

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

var

Form3: TForm3;

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

xx,yy,Xekr,Yekr: Tabl2;

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

plik,plik1: Text;

xw,yw: Tabl1;

implementation

uses Ustawienia, Informacje, Grafika, Podglad;

{$R *.DFM}

function f(x: Real): Real;

begin

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

end;

procedure Newton(wzor,n: Integer; x: Real; var y: Real;

xw,yw: Tabl1);

var

k,l: Integer;

f: Tabl1;

begin

f:=yw;

case wzor of

1: for k:=1 to n do

for l:=n downto k do

f[l]:=(f[l]-f[l-1])/(xw[l]-xw[l-k]);

2: for k:=n-1 downto 0 do

for l:=0 to k do

f[l]:=(f[l+1]-f[l])/(xw[n+l-k]-xw[l]);

end;

if wzor=1 then begin

y:=f[n];

for k:=n-1 downto 0 do

y:=y*(x-xw[k])+f[k];

end else begin

y:=f[0];

for k:=1 to n do

y:=y*(x-xw[k])+f[k];

end;

end;

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

procedure TForm3.BitBtn1Click(Sender: TObject);

begin

Form2.Show;

if RadioButton1.Checked then wzor:=1;

if RadioButton2.Checked then wzor:=2;

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

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

AssignFile(plik,Edit6.Text); AssignFile(plik1,Edit5.Text);

Rewrite(plik); Rewrite(plik1);

Writeln(plik,'Program 4.2.');

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

case wzor of

1: Writeln(plik,'Pierwszy wzór interpolacyjny Newtona.');

2: Writeln(plik,'Drugi wzór interpolacyjny Newtona.');

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;

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;

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;

Newton(wzor,n,x,y,xw,yw); 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.

0x01 graphic

Rys. 4.2

Program 4.2 jest zmodyfikowanym programem 4.1 przeznaczonym do interpolowania funkcji 0x01 graphic
za pomocą wielomianów interpolacyjnych Newtona. W programie tym najpierw obliczane są ilorazy różnicowe, a następnie w zależności od wyboru alternatywy obliczeń na formularzu Dane (rys. 4.2) wyznaczane są wartości funkcji w m równoległych punktach, przy wykorzystaniu albo pierwszego lub też drugiego wzoru interpolacyjnego Newtona.

Rozwiązując dwukrotnie to samo zadanie, które było rozważane przy testowaniu działania programu 4.1 otrzymujemy wyniki przedstawione na rysunku 4.1 oraz stanowiące załączone fragmenty wydruków komputerowych.

PROGRAM 4.2.

Interpolacja funkcji jednej zmiennej.

Pierwszy wzór interpolacyjny Newtona.

Początek przedziału: a = 0.0000E+0000

Koniec przedziału: b = 1.0000E+0000

Liczba węzłów: n = 10

Liczba punktów wykresu: m = 100

Wyniki interpolacji funkcji:

i x[i] y[i] błąd

0 0.0000E+0000 0.0000000E+0000 0.0000E+0000

1 1.0000E-0002 1.3360847E-0002 -4.3125E-0003

2 2.0000E-0002 3.8910743E-0002 -6.1615E-0003

3 3.0000E-0002 7.3132626E-0002 -6.4590E-0003

4 4.0000E-0002 1.1310700E-0001 -5.8558E-0003

5 5.0000E-0002 1.5643571E-0001 -4.8030E-0003

6 6.0000E-0002 2.0117326E-0001 -3.6011E-0003

7 7.0000E-0002 2.4576536E-0001 -2.4386E-0003

8 8.0000E-0002 2.8899388E-0001 -1.4233E-0003

9 9.0000E-0002 3.2992775E-0001 -6.0633E-0004

10 1.0000E-0001 3.6787944E-0001 0.0000E+0000

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

PROGRAM 4.2.

Interpolacja funkcji jednej zmiennej.

Drugi wzór interpolacyjny Newtona.

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

Wyniki interpolacji funkcji:

i x[i] y[i] błąd

0 0.0000E+0000 1.6271429E-0012 -1.6271E-0012

1 1.0000E-0002 1.3360847E-0002 -4.3125E-0003

2 2.0000E-0002 3.8910743E-0002 -6.1615E-0003

3 3.0000E-0002 7.3132626E-0002 -6.4590E-0003

4 4.0000E-0002 1.1310700E-0001 -5.8558E-0003

5 5.0000E-0002 1.5643571E-0001 -4.8030E-0003

6 6.0000E-0002 2.0117326E-0001 -3.6011E-0003

7 7.0000E-0002 2.4576536E-0001 -2.4386E-0003

8 8.0000E-0002 2.8899388E-0001 -1.4233E-0003

9 9.0000E-0002 3.2992775E-0001 -6.0633E-0004

10 1.0000E-0001 3.6787944E-0001 -9.0949E-0013

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

176 4. Interpolacja

4.3. Interpolacja Newtona 175



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