1 g, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numeryczne [2009], Kosma Z - Metody i algorytmy numeryczne [2009]


8 16.0000 2.756373558E-0001 6.70E-0013

9 18.0000 3.090169944E-0001 1.18E-0013

10 20.0000 3.420201433E-0001 1.09E-0013

11 22.0000 3.746065934E-0001 3.19E-0014

12 24.0000 4.067366431E-0001 1.63E-0012

13 26.0000 4.383711468E-0001 4.46E-0012

14 28.0000 4.694715628E-0001 1.00E-0011

15 30.0000 5.000000000E-0001 2.06E-0011

16 32.0000 5.299192642E-0001 9.23E-0013

17 34.0000 5.591929035E-0001 6.60E-0013

18 36.0000 5.877852523E-0001 7.22E-0013

19 38.0000 6.156614753E-0001 3.81E-0013

20 40.0000 6.427876097E-0001 1.43E-0012

21 42.0000 6.691306064E-0001 2.53E-0012

22 44.0000 6.946583705E-0001 4.34E-0012

23 46.0000 7.193398003E-0001 9.43E-0012

24 48.0000 7.431448255E-0001 1.58E-0011

25 50.0000 7.660444431E-0001 2.79E-0011

26 52.0000 7.880107536E-0001 4.56E-0011

27 54.0000 8.090169944E-0001 4.78E-0013

28 56.0000 8.290375726E-0001 2.89E-0013

29 58.0000 8.480480962E-0001 6.00E-0013

30 60.0000 8.660254038E-0001 2.01E-0012

31 62.0000 8.829475929E-0001 3.66E-0012

32 64.0000 8.987940463E-0001 3.77E-0012

33 66.0000 9.135454576E-0001 6.06E-0012

34 68.0000 9.271838546E-0001 9.83E-0012

35 70.0000 9.396926208E-0001 1.59E-0011

36 72.0000 9.510565163E-0001 2.46E-0011

37 74.0000 9.612616960E-0001 3.57E-0011

38 76.0000 9.702957263E-0001 5.28E-0011

39 78.0000 9.781476008E-0001 7.80E-0011

40 80.0000 9.848077530E-0001 7.54E-0013

41 82.0000 9.902680687E-0001 1.54E-0012

42 84.0000 9.945218954E-0001 2.14E-0012

43 86.0000 9.975640503E-0001 2.71E-0012

44 88.0000 9.993908270E-0001 4.72E-0012

45 90.0000 1.000000000E+0000 6.37E-0012

1.8. Obliczanie wartości funkcji uwikłanych

Podstawą wielu efektywnych algorytmów numerycznych jest obliczanie ciągu liczb, zbieżnego do poszukiwanej wartości. Proces obliczeniowy polegający na wykonywaniu zespołu działań niezbędnych do wyznaczenia przybliżenia wyższego na podstawie znajomości przybliżenia niższego nazywa się metodą kolejnych przybliżeń lub metodą iteracji.

Jedną z najbardziej znanych metod iteracyjnych jest metoda stycznych, nazywana najczęściej metodą Newtona. Metodę tę zastosujemy do obliczania wartości funkcji uwikłanej, określonej równaniem

0x01 graphic
(1.42)

Założymy, że zarówno funkcja 0x01 graphic
jak i jej pochodna 0x01 graphic
są ciągłe.

Ciąg kolejnych przybliżeń metody stycznych Newtona napiszemy rozpatrując wykres funkcji (rys. 1.3)

0x01 graphic
(1.43)

w której x pełni rolę parametru. Oznaczając przez przybliżoną wartość nieznanej funkcji y, na podstawie rysunku 1.3 uzyskujemy zależność

0x01 graphic

pozwalającą na obliczenie jej nowego przybliżenia

0x01 graphic
. (1.44)

Uogólniając to postępowanie otrzymujemy wzór określający metodę stycznych New-tona

0x01 graphic
(n = 0, 1, 2, ...), (1.45)

w którym 0x01 graphic
jest zadanym przybliżeniem początkowym.

0x01 graphic

Rys. 1.3

Przerwanie obliczeń następuje w chwili, gdy dwa kolejne przybliżenia spełniają nierówność

(1.46)

gdzie ε jest żądaną dokładnością obliczeń - co gwarantuje na ogół, że również jest

gdyż ciągi konstruowane w metodzie Newtona są bardzo szybkozbieżne i błędy zaokrągleń mają niewielki wpływ na przebieg obliczeń. Proces iteracyjny jest zbieżny, jeżeli pochodne 0x01 graphic
oraz 0x01 graphic
istnieją i nie zmieniają znaku w przedziale zawierającym nieznaną wartość funkcji y i jej przybliżenie początkowe 0x01 graphic
.

Metodę Newtona (1.43) ÷ (1.46) zastosujemy obecnie do wyznaczenia wartości funkcji

(1.47)

Przyjmując funkcję (1.42) w postaci

0x01 graphic
(1.48)

po obliczeniu pochodnej 0x01 graphic

0x01 graphic
(1.49)

i wykorzystaniu wzoru (1.45)

ostatecznie uzyskujemy następujący ciąg kolejnych przybliżeń

0x01 graphic
(1.50)

Z założenia: x > 0 wynika, że musi być również 0x01 graphic
przyjmiemy

(1.51)

0x01 graphic

Rys. 1.4

W przypadku obliczania pierwiastka kwadratowego ze wzorów (1.47) ÷ (1.49), ciąg kolejnych przybliżeń (1.50) dla m = 2

nazywa się procesem Herona; geometryczną interpretację metody Newtona, zastosowanej do funkcji 0x01 graphic
przedstawia rysunek 1.4.

Wyznaczanie wartości funkcji (1.47) przy wykorzystaniu ciągu kolejnych przybliżeń (1.50) ÷ (1.51) jest realizowane w programie 1.5. Obliczona z zadaną dokładnością (1.46) wartość funkcji (1.47) jest porównywana z wartością tej funkcji, uzyskaną poprzez wywołanie funkcji standardowych.

Tabulogram modułu Obliczenia programu 1.5:

{Program 1.5}

unit Obliczenia;

interface

uses

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

Forms, Dialogs, StdCtrls, Buttons;

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

var

Form3: TForm3;

bl,eps,x,y,y1: Double;

iter,m: Integer;

plik: Text;

implementation

uses Ustawienia, Informacje, Grafika, Podglad;

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

procedure TForm3.BitBtn1Click(Sender: TObject);

label kon;

begin

Form2.Show;

AssignFile(plik,Edit4.Text);

Rewrite(plik); Writeln(plik,'PROGRAM 1.5.');

Writeln(plik,'Obliczanie pierwiastka arytmetycznego.');

Writeln(plik,'Metoda Newtona.');

Writeln(plik,'');

x:=StrToFloat(Edit1.Text);

Writeln(plik,'Argument (x>0) - x = ',x:13);

m:=StrToInt(Edit2.Text);

Writeln(plik,'Stopień pierwiastka - m = ',m);

eps:=StrToFloat(Edit3.Text);

Writeln(plik,'Dokładność obliczeń - eps = ',eps:6);

if x<=0 then begin

Form2.Wyniki.Font.Size:=22;

Form2.Wyniki.Font.Color:=clRed;

Form2.Wyniki.Lines.Text:='Pierwiastek z liczby ujemnej

nie istnieje';

goto kon;

end;

y:=x; iter:=0;

repeat

y1:=((m-1)*y+x*Exp((1-m)*Ln(y)))/m;

bl:=Abs(y-y1); y:=y1;

iter:=iter+1;

until bl<eps;

Writeln(plik,'');

bl:=Abs(y-Exp(1*Ln(x)/m));

Writeln(plik,'Wartość pierwiastka: ',y:20);

Writeln(plik,'Błąd pierwiastka: ',bl:11);

Writeln(plik,'Liczba iteracji: ',iter);

kon:

CloseFile(plik);

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

end;

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

procedure TForm3.BitBtn3Click(Sender: TObject);

begin

Close;

end;

end.

Kopie przykładowych wydruków komputerowych ukazujących się na ekranie monitora w formularzu Obliczenia są prezentowane na rysunkach 1.5 ÷ 1.7.

W tablicy 1.2 zamieszczone zostały wyniki dotyczące obliczania pierwiastków arytmetycznych dla x = 2, 3, 4; przyjęto

0x01 graphic

Rys. 1.5

0x01 graphic

Rys. 1.6

0x01 graphic

Rys. 1.7

40 1. Wprowadzenie do metod numerycznych

1.8. Obliczanie wartości funkcji uwikłanych 41



Wyszukiwarka