1 e (3)



Wybor alternatywy obliczen:
- 1: Sqrt(3)
- 2: Sqrt(5)
- 3: Sqrt(7)
Pierwiastek(m) - m = 7
Dokladnosc obliczen - eps = 1e-10

Wartosc pierwiastka: 2.645751311E+00
Blad pierwiastka: 3.64E-12
Liczba ogniw ulamka: 20

Nowe obliczenia: (t/n)?


1.6. Rozwijanie funkcji w ułamki łańcuchowe

Ułamki łańcuchowe stanowią wygodny aparat do przedstawiania i obliczania
wartości funkcji.
Aby rozwinąć daną funkcję w ułamek łańcuchowy musimy najpierw przed-stawić ją w
postaci funkcji wymiernej

(1.20)

Rozpatrzymy obliczanie wartości wielomianu

(1.21)

przyjmując funkcje i również w postaci wielomianów

(1.22)

Po przyrównaniu prawych stron (1.21) i (1.22) otrzymujemy zależność



z której wynika układ równań dla określenia nieznanych współczynników


(1.23)

Błąd aproksymacji wielomianu (1.21) funkcją wymierną (1.22) można ocenić za
pomocą współczynnika wielomianu

(1.24)

Rozważmy w charakterze przykładu rozwinięcie funkcji w szereg Maclaurina

(1.25)

zbieżny dla . Dla tej funkcji, po rozwiązaniu układu równań (1.23),
otrzymujemy:



i następnie mamy

(1.26)

przy czym błąd aproksymacji (1.24) szeregu Maclaurina zawierającego wyrazy do
włącznie funkcją wymierną (1.26) wynosi




Rozwinięcie funkcji wymiernej

(1.27)

w ułamek łańcuchowy jest realizowane poprzez wykonywanie kolejnych
przekształceń elementarnych

,

gdzie



oraz



W taki sam sposób rozkładamy funkcję



gdzie



przy czym



itd.
Współczynniki określające rozwinięcie funkcji (1.27) w ułamek łańcuchowy



najwygodniej jest obliczać z ogólnego wzoru



dla
Wykorzystując opisany algorytm łatwo uzyskujemy rozwinięcie rozważanej fun-kcji
(1.26) w ułamek łańcuchowy

(1.28)

Pełne rozwinięcie funkcji w ułamek łańcuchowy jest następujące [2]:

(1.29)

Rozwinięcie to jest osobliwe dla ponieważ jest



liczbę należy więc obliczać jako kwadrat liczby e.


{Program 1.3}
uses
Crt;
var
i,j,k,n: Integer;
bl,c,dx,eps,sum,sump,x,xmax: Real;
a,b: array [0..20] of Real;
nap,zbior: String;
war: Boolean;
plik: Text;
zn: Char;
label kon;
begin
zbior:='Pr_1_3.wyn';
Assign(plik,zbior);
Rewrite(plik);
ClrScr;
Writeln('Wybor alternatywy obliczen:');
Writeln(' - 1: funkcja Exp(x)');
Writeln(' - 2: funkcja Tan(x)');
zn:=ReadKey;
war:=(zn='1') or (zn='2');
if not war then goto kon;
if zn='1' then nap:='Exp(x)' else nap:='Tan(th)';
Writeln(plik,'PROGRAM 1.3');
Writeln(plik,'Obliczanie wartosci funkcji ',nap,'.');
Writeln(plik,'Metoda rozwijania w ulamki lancuchowe.');
Writeln('Dane do obliczen:');
Write(' - n = '); Readln(n);
Write(plik,'n = ',n:3);
if zn='1' then Write(' - xmax = ')
else Write(' - thmax = ');
Readln(xmax);
if zn='1' then Write(plik,', xmax = ')
else Write(plik,', thmax = ');
Write(plik,xmax:13);
Write(' - eps = '); Readln(eps);
Writeln(plik,', eps = ',eps:9);
if zn='1' then Writeln(plik,' i x ',
nap,' blad k')
else Writeln(plik,' i th ',
nap,' blad k');
if zn='2' then xmax:=xmax*Pi/180;
dx:=xmax/n; a[0]:=0; b[0]:=0;
for i:=1 to n do begin
x:=i*dx;
if zn='1' then begin
a[1]:=1; a[2]:=2+x;
b[1]:=1; b[2]:=-2*x;
for j:=3 to 20 do begin
a[j]:=4*(j-2)+2;
b[j]:=x*x;
end;
end;
if zn='2' then begin
for j:=1 to 20 do begin
a[j]:=2*(j-1)+1;
b[j]:=-x*x;
end;
b[1]:=x;
end;
k:=1; sump:=0;
repeat
c:=b[k]/a[k];
for j:=1 to k do begin
sum:=a[k-j]+c;
c:=b[k-j]/sum;
end;
bl:=Abs(sum-sump);
k:=k+1; sump:=sum;
until bl if zn='1' then bl:=Abs(sum-Exp(x))
else bl:=Abs(sum-Sin(x)/Cos(x));
if zn='2' then x:=x*180/Pi;
Writeln(plik,i:3,x:12:6,' ',sum:13,
' ',bl:9,' ',k:2);
end;
Close(plik);
kon:
end.


W programie 1.3 wyznaczane są z zadaną dokładnością wartości funkcji oraz z
rozwinięcia (1.29) oraz rozwinięcia w ułamek łańcuchowy [2]



w przedziałach i w n równoodległych punktach.
Uzyskane wyniki porównano z rezultatami wywołań odpowiednich arytmetycznych
funkcji standardowych. Drukowana jest także liczba ogniw k ułamka łańcuchowego,
niezbędna do obliczenia wartości funkcji z zadaną dokładnością Wykonane przez
program 1.3 obliczenia wartości funkcji i zawierają dwa kolejne tabulogramy
wyników.


PROGRAM 1.3
Obliczanie wartosci funkcji Exp(x).
Metoda rozwijania w ulamki lancuchowe.
n = 30, xmax = 1.500000E+00, eps = 1.00E-08
i x Exp(x) blad k
1 0.050000 1.051271E+00 0.00E+00 5
2 0.100000 1.105171E+00 0.00E+00 6
3 0.150000 1.161834E+00 0.00E+00 6
4 0.200000 1.221403E+00 3.64E-12 6
5 0.250000 1.284025E+00 1.82E-12 6
6 0.300000 1.349859E+00 3.64E-12 6
7 0.350000 1.419068E+00 7.28E-12 6
8 0.400000 1.491825E+00 5.46E-12 7
9 0.450000 1.568312E+00 3.64E-12 7
10 0.500000 1.648721E+00 3.64E-12 7
11 0.550000 1.733253E+00 0.00E+00 7
12 0.600000 1.822119E+00 3.64E-12 7
13 0.650000 1.915541E+00 1.82E-12 7
14 0.700000 2.013753E+00 3.64E-12 7
15 0.750000 2.117000E+00 7.28E-12 7
16 0.800000 2.225541E+00 3.64E-12 8
17 0.850000 2.339647E+00 3.64E-12 8
18 0.900000 2.459603E+00 3.64E-12 8
19 0.950000 2.585710E+00 7.28E-12 8
20 1.000000 2.718282E+00 3.64E-12 8
21 1.050000 2.857651E+00 1.46E-11 8
22 1.100000 3.004166E+00 1.09E-11 8
23 1.150000 3.158193E+00 7.28E-12 8
24 1.200000 3.320117E+00 1.82E-11 8
25 1.250000 3.490343E+00 7.28E-12 8
26 1.300000 3.669297E+00 3.64E-11 8
27 1.350000 3.857426E+00 3.64E-12 9
28 1.400000 4.055200E+00 7.28E-12 9
29 1.450000 4.263115E+00 0.00E+00 9
30 1.500000 4.481689E+00 7.28E-12 9


PROGRAM 1.3
Obliczanie wartosci funkcji Tan(th).
Metoda rozwijania w ulamki lancuchowe.
n = 89, thmax = 8.900000E+01, eps = 1.00E-08
i th Tan(th) blad k
1 1.000000 1.745506E-02 8.53E-14 4
2 2.000000 3.492077E-02 1.71E-13 4
3 3.000000 5.240778E-02 8.53E-13 4
4 4.000000 6.992681E-02 3.41E-13 5
5 5.000000 8.748866E-02 2.27E-13 5
6 6.000000 1.051042E-01 2.27E-13 5
7 7.000000 1.227846E-01 2.27E-13 5
8 8.000000 1.405408E-01 2.27E-13 5
9 9.000000 1.583844E-01 9.09E-13 5
10 10.000000 1.763270E-01 1.82E-12 5
11 11.000000 1.943803E-01 3.87E-12 5
12 12.000000 2.125566E-01 2.27E-13 6
13 13.000000 2.308682E-01 0.00E+00 6
14 14.000000 2.493280E-01 0.00E+00 6
15 15.000000 2.679492E-01 0.00E+00 6
16 16.000000 2.867454E-01 4.55E-13 6
17 17.000000 3.057307E-01 4.55E-13 6
18 18.000000 3.249197E-01 4.55E-13 6
19 19.000000 3.443276E-01 9.09E-13 6
20 20.000000 3.639702E-01 9.09E-13 6
21 21.000000 3.838640E-01 1.82E-12 6
22 22.000000 4.040262E-01 3.18E-12 6
23 23.000000 4.244748E-01 5.46E-12 6
24 24.000000 4.452287E-01 8.64E-12 6
25 25.000000 4.663077E-01 1.36E-11 6
26 26.000000 4.877326E-01 2.05E-11 6
27 27.000000 5.095254E-01 0.00E+00 7
28 28.000000 5.317094E-01 0.00E+00 7
29 29.000000 5.543091E-01 0.00E+00 7
30 30.000000 5.773503E-01 0.00E+00 7
31 31.000000 6.008606E-01 9.09E-13 7
32 32.000000 6.248694E-01 0.00E+00 7
33 33.000000 6.494076E-01 9.09E-13 7
34 34.000000 6.745085E-01 1.82E-12 7
35 35.000000 7.002075E-01 1.82E-12 7
36 36.000000 7.265425E-01 2.73E-12 7
37 37.000000 7.535541E-01 4.55E-12 7
38 38.000000 7.812856E-01 6.37E-12 7
39 39.000000 8.097840E-01 8.19E-12 7
40 40.000000 8.390996E-01 1.09E-11 7
41 41.000000 8.692867E-01 1.73E-11 7
42 42.000000 9.004040E-01 2.27E-11 7
43 43.000000 9.325151E-01 3.09E-11 7
44 44.000000 9.656888E-01 2.73E-12 8
45 45.000000 1.000000E+00 0.00E+00 8
46 46.000000 1.035530E+00 0.00E+00 8
47 47.000000 1.072369E+00 0.00E+00 8
48 48.000000 1.110613E+00 3.64E-12 8
49 49.000000 1.150368E+00 1.82E-12 8
50 50.000000 1.191754E+00 3.64E-12 8
51 51.000000 1.234897E+00 5.46E-12 8
52 52.000000 1.279942E+00 3.64E-12 8
53 53.000000 1.327045E+00 5.46E-12 8
54 54.000000 1.376382E+00 3.64E-12 8
55 55.000000 1.428148E+00 5.46E-12 8
56 56.000000 1.482561E+00 1.09E-11 8
57 57.000000 1.539865E+00 1.46E-11 8
58 58.000000 1.600335E+00 1.82E-11 8
59 59.000000 1.664279E+00 2.18E-11 8
60 60.000000 1.732051E+00 2.91E-11 8
61 61.000000 1.804048E+00 4.00E-11 8
62 62.000000 1.880726E+00 4.91E-11 8
63 63.000000 1.962611E+00 5.46E-12 9
64 64.000000 2.050304E+00 3.64E-12 9
65 65.000000 2.144507E+00 3.64E-12 9
66 66.000000 2.246037E+00 3.64E-12 9
67 67.000000 2.355852E+00 7.28E-12 9
68 68.000000 2.475087E+00 7.28E-12 9
69 69.000000 2.605089E+00 3.64E-12 9
70 70.000000 2.747477E+00 7.28E-12 9
71 71.000000 2.904211E+00 7.28E-12 9
72 72.000000 3.077684E+00 1.82E-11 9
73 73.000000 3.270853E+00 2.55E-11 9
74 74.000000 3.487414E+00 2.18E-11 9
75 75.000000 3.732051E+00 2.55E-11 9
76 76.000000 4.010781E+00 4.37E-11 9
77 77.000000 4.331476E+00 5.82E-11 9
78 78.000000 4.704630E+00 6.55E-11 9
79 79.000000 5.144554E+00 2.18E-11 10
80 80.000000 5.671282E+00 3.64E-11 10
81 81.000000 6.313752E+00 4.37E-11 10
82 82.000000 7.115370E+00 2.91E-11 10
83 83.000000 8.144346E+00 0.00E+00 10
84 84.000000 9.514364E+00 8.73E-11 10
85 85.000000 1.143005E+01 1.75E-10 10
86 86.000000 1.430067E+01 2.04E-10 10


Wyszukiwarka