<  1  2  3  4  5  6  7  8  9  10  11  12

maszyna różnicowa

Maszyna Różnicowa - komputer specjalizowany
(Difference Engine)

czyli, Maszyna mechaniczna
do obliczania kolejnych wartości wielomianu

Część II

Spis treści

Wstęp

W części I omówiłem zasadę działania maszyny różnicowej i przedstawiłem wzory potrzebne do jej zaprojektowania. W części II przedstawię przykłady obliczeń wykonanych przez maszynę różnicową w oparciu o komputerowy model tej maszyny, zaprojektowany na podstawie wzorów przedstawionych w części I. Przytoczenie tych przykładów pozwoli na lepsze zrozumienie działania maszyny różnicowej, maszyny znacznie przewyższającej w pewnych zastosowaniach możliwości najnowszych superkomputerów.

W przykładach posłużę się maszyną różnicową, która sama wylicza i ustawia różnice początkowe, zwalniając mnie tym samym całkowicie od żmudnych obliczeń w tym zakresie.

Ciągi liczbowe przesyłane do maszyny, jako jej dane wejściowe, posiadają warunek, że liczby z tych ciągów stanowią wartości pewnej funkcji i są wyznaczone dla równoodległych wartości argumentu x tej funkcji tzn. f(x), f(x+h), f(x+2h),..,f(x+ih), gdzie h oznacza pewną stałą. Z takim przypadkiem mamy najczęściej do czynienia.

Samo wyliczenie przez maszynę różnic początkowych oznacza, że maszyna wyznaczyła już szukaną funkcję i jest gotowa do przedstawienia jej w postaci numerycznej.

Przykłady pracy maszyny różnicowej szeregowej

Przykład 1

Wprowadzono do maszyny różnicowej szeregowej (obsługa 6-ciu różnic, precyzja obliczeń - 7 cyfr po przecinku, metoda I sumowania różnic) siedem kolejnych wartości nieznanej funkcji:

 2.00, 7.62, 21.04, 45.86, 92.88, 194.50, 419.12 

Poniżej podano wartości, jakie wygenerowała maszyna różnicowa:

Maszyna różnicowa szeregowa  
Precyzja: 7 cyfr po przecinku, metoda I sumowania różnic

Dane wejściowe: 2.00 7.62 21.04 45.86 92.88 194.50 419.12

Obliczenie różnic początkowych:

      y         D       D2      D3     D4      D5     D6
    419.12   194.50   92.88   45.86  21.04   7.62  2.00
    419.12   224.62  101.62   47.02  24.82  13.42  5.62   
    419.12   224.62  123.00   54.60  22.20  11.40  7.80
    419.12   224.62  123.00   68.40  32.40  10.80  3.60
    419.12   224.62  123.00   68.40  36.00  21.60  7.20
    419.12   224.62  123.00   68.40  36.00  14.40 14.40
    419.12   224.62  123.00   68.40  36.00  14.40  0.00  

Obliczenie kolejnych wartości funkcji:

    419.12   224.62  123.00   68.40  36.00  14.40  0.00 
    885.54   466.42  241.80  118.80  50.40  14.40  0.00
   1777.36   891.82  425.40  183.60  64.80  14.40  0.00
   3357.38  1580.02  688.20  262.80  79.20  14.40  0.00
   5982.00  2624.62 1044.60  356.40  93.60  14.40  0.00
  10115.62  4133.62 1509.00  464.40 108.00  14.40  0.00
  16345.04  6229.42 2095.80  586.80 122.40  14.40  0.00
  25393.86  9048.82 2819.40  723.60 136.80  14.40  0.00
  38136.88 12743.02 3694.20  874.80 151.20  14.40  0.00
  55614.50 17477.62 4734.60 1040.40 165.60  14.40  0.00
    -       -       -       -       -       -     -    
 Uwaga! Wytłuszczonym drukiem oznaczono docelowe wartości.
       Podkreślonym drukiem oznaczono wartości początkowe.

Jak wynika z powyższego wydruku piąta różnica ma stałą wartość 14.40, a szósta różnica jest równa zero. Odpowiada to wielomianowi piątego stopnia.

Do wyznaczenia danych wejściowych posłużyłem się następującą funkcją:

f(x) = 0.12x5 - 0.9x4 + 3x3 - 0.6x2 + 4x + 2

Wartości funkcji wyznaczyłem dla [x = 0,..,6] z krokiem h=1.

Maszyna różnicowa poprawnie wygenerowała kolejne wartości tej funkcji.

Przykład 2

Wprowadzono do maszyny różnicowej szeregowej (obsługa 6-ciu różnic, precyzja obliczeń: 7 cyfr po przecinku, metoda II sumowania różnic) siedem kolejnych wartości nieznanej funkcji:

 2.00, 4.1725, 7.62, 13.13, 21.04, 31.6875, 45.86 

Poniżej podano wartości, jakie wygenerowała maszyna różnicowa:

Maszyna różnicowa szeregowa  
Precyzja: 7 cyfr po przecinku, metoda II sumowania
różnic

Dane wejściowe: 2.00, 4.1725, 7.62, 13.13, 21.04, 31.6875,
                45.86

Obliczenie różnic początkowych:

      y         D       D2      D3     D4      D5     D6
    2.0000   4.1725   7.6200 13.1300 21.04 31.6875 45.86
    2.0000   2.1727   3.4475  5.5100  7.91 10.6475 14.1725 
    2.0000   2.1727   1.2750  2.0625  2.40  2.7375  3.525
    2.0000   2.1727   1.2750  0.7875 0.3375 0.3375  0.7875
    2.0000   2.1727   1.2750  0.7875 -0.45  0.00    0.45  
    2.0000   2.1727   1.2750  0.7875 -0.45  0.45    0.45
    2.0000   2.1727   1.2750  0.7875 -0.45  0.45    0.00
	
Obliczenie kolejnych wartości funkcji:
 
    2.0000   2.1725   1.2750  0.7875 -0.45  0.45  0.00 
    4.1725   3.4475   2.0625  0.3375  0.00  0.45  0.00
    7.6200   5.5100   2.4000  0.3375  0.45  0.45  0.00
   13.1300   7.9100   2.7375  0.7875  0.90  0.45  0.00
   21.0400  10.6475   3.5250  1.6875  1.35  0.45  0.00
   31.6875  14.1725   5.2125  3.0375  1.80  0.45  0.00
   45.8600  19.3850   8.2500  4.8375  2.25  0.45  0.00
   65.2450  27.6350  13.0875  7.0875  2.70  0.45  0.00
   92.8800  40.7225  20.1750  9.7875  3.15  0.45  0.00
  133.6025  60.8975  29.9625 12.9375  3.60  0.45  0.00
  194.5000  90.8600  42.9000 16.5375  4.05  0.45  0.00
  285.3600 133.7600  59.4375 20.5875  4.50  0.45  0.00
  419.1200 193.1975  80.0250 25.0875  4.95  0.45  0.00
  612.3175 273.2225 105.1125 30.0375  5.40  0.45  0.00
  885.5400 378.3350 135.1500 35.4375  5.85  0.45  0.00
 1263.8750 513.4850 170.5875 41.2875  6.30  0.45  0.00
 1777.3600 684.0725 211.8750 47.5875  6.75  0.45  0.00
     -        -         -       -       -     -     -
 Uwaga! Wytłuszczonym drukiem oznaczono docelowe wartości.
        Podkreślonym drukiem oznaczono wartości początkowe.

Jak wynika z powyższego wydruku piąta różnica ma stałą wartość 0.45, a szósta różnica jest równa zero. Odpowiada to wielomianowi piątego stopnia.

Do wyznaczenia danych wejściowych posłużyłem się tą samą funkcją, co w przykładzie 1:

f(x) = 0.12x5 - 0.9x4 + 3x3 - 0.6x2 + 4x + 2

Wartości funkcji  wyznaczyłem dla  [x = 0,..,3] z krokiem h=0.5.

Maszyna różnicowa poprawnie wygenerowała kolejne wartości tej funkcji.

Przykład pracy maszyny różnicowej równoległej

Przykład 3

Wprowadzono do maszyny różnicowej równoległej (obsługa 6-ciu różnic, precyzja obliczeń: 7 cyfr po przecinku, metoda I lub II sumowania różnic) siedem kolejnych wartości funkcji, jak w przykładzie 1

 2.00, 7.62, 21.04, 45.86, 92.88, 194.50, 419.12 

Poniżej podano wartości, jakie wygenerowała maszyna różnicowa:

Maszyna różnicowa równoległa  
Precyzja: 7 cyfr po przecinku, metoda I lub II sumowania
różnic

Dane wejściowe: 2.00 7.62 21.04 45.86 92.88 194.50 419.12

Obliczenie różnic początkowych:

        y        D     D2     D3     D4     D5     D6
       2.00    7.62  21.04  45.86 92.88 194.50 419.12
      45.86    5.62  13.42  24.82 47.02 101.62 224.62
      45.86   24.82   7.80  11.40 22.20  54.60 123.00
      45.86   24.82  22.20   3.60 10.80  32.40  68.40
      45.86   24.82  22.20  10.80  7.20  21.60  36.00  
      45.86   24.82  22.20  10.80 21.60  14.40  14.40
      45.86   24.82  22.20  10.80 21.60  14.40   0.00

Obliczanie kolejnych wartości funkcji:      

      45.86    24.82   22.2   10.8  21.6   14.4  0.00  
      92.88    47.02   54.6   32.4  36.0   14.4  0.00
     194.50   101.62  123.0   68.4  50.4   14.4  0.00
     419.12   224.62  241.8  118.8  64.8   14.4  0.00
     885.54   466.42  425.4  183.6  79.2   14.4  0.00
    1777.36   891.82  688.2  262.8  93.6   14.4  0.00
    3357.38  1580.02 1044.6  356.4 108.0   14.4  0.00
    5982.00  2624.62 1509.0  464.4 122.4   14.4  0.00
   10115.62  4133.62 2095.8  586.8 136.8   14.4  0.00
   16345.04  6229.42 2819.4  723.6 151.2   14.4  0.00
   25393.86  9048.82 3694.2  874.8 165.6   14.4  0.00
   38136.88 12743.02 4734.6 1040.4 180.0   14.4  0.00
      -         -       -      -     -       -     -
 Uwaga! Wytłuszczonym drukiem oznaczono docelowe wartości.
        Podkreślonym drukiem oznaczono wartości początkowe.

Jak wynika z powyższego wydruku piąta różnica ma stałą wartość 14.4, a szósta różnica jest równa zero. Odpowiada to wielomianowi piątego stopnia.

Do wyznaczenia danych wejściowych posłużyłem się funkcją, jak w przykładzie 1 i 2:

f(x) = 0.12x5 - 0.9x4 + 3x3 - 0.6x2 + 4x + 2

Wartości funkcji wyznaczyłem dla [x = 0,..,6] z krokiem h=1.

Komputerowy model maszyny równoległej działa na moim komputerze w sposób szeregowy, a nie równoległy, lecz algorytm jest przystosowany do jednoczesnej pracy sumatorów w dwóch grupach po (n-1)/2 sumatorów.

Metody sumowania różnic I i II dają takie same wyniki obliczeń poszczególnych różnic początkowych i kolejnych wartości funkcji.

Maszyna różnicowa oblicza trajektorię lotu statku kosmicznego

Przykład 4

Należy określić trajektorię lotu statku kosmicznego. Statek, aby zmienić swój lot, uruchomił na krótko silniki hamujące. Jak wygląda teraz lot tego statku? Kolejnym zadaniem jest utrzymanie stałej trajektorii lotu tego statku.

W celu określenia trajektorii lotu statku pobrano z urządzenia pomiarowego 7 kolejnych wartości określających pozycję statku. Po uruchomieniu silników hamujących, pomiaru dokonano ponownie.

W przykładzie określono następujące przypadki:

  1. Statek porusza się lotem swobodnym, bez oddziaływania pola grawitacyjnego.
  2. Statek porusza się w polu grawitacyjnym.
  3. Statek porusza się w polu grawitacyjnym, tuż po użyciu silników hamujących.

Do wyznaczenia trajektorii lotu posłużono się maszyną różnicową.

Poniżej podano wartości, jakie wygenerowała maszyna różnicowa dla tych 3 przypadków:

 Dane pomiarowe:

          1          2          3

 0.00 -5.2500000 -5.2500000 -5.2500000 
 0.01 -5.1484000 -5.1447200 -5.1487200
 0.02 -5.0468000 -5.0400800 -5.0480800
 0.03 -4.9452000 -4.9360800 -4.9480800
 0.04 -4.8436000 -4.8327200 -4.8487200
 0.05 -4.7420000 -4.7300000 -4.7500000
 0.06 -4.6404000 -4.6279200 -4.6519200

 Ustawienie maszyny różnicowej 
          1          2          3
 y0  -5.2500000 -5.2500000 -5.2500000
 d1   0.1016000  0.1052800  0.1012800
 d2   0.0000000 -0.0006400 -0.0006400
 d3   0.0000000  0.0000000  0.0000000
 d4   0.0000000  0.0000000  0.0000000
 d5   0.0000000  0.0000000  0.0000000
 d6   0.0000000  0.0000000  0.0000000

 Generowane wartości
 (podano co dziesiątą wartość)
          1          2          3
 0.0 -5.2500000 -5.2500000 -5.2500000  
 0.1 -4.2340000 -4.2260000 -4.2660000 
 0.2 -3.2180000 -3.2660000 -3.3460000 
 0.3 -2.2020000 -2.3700000 -2.4900000 
 0.4 -1.1860000 -1.5380000 -1.6980000 
 0.5 -0.1700000 -0.7700000 -0.9700000 
 0.6  0.8460000 -0.0660000 -0.3060000 
 0.7  1.8620000  0.5740000  0.2940000 
 0.8  2.8780000  1.1500000  0.8300000 
 0.9  3.8940000  1.6620000  1.3020000 
 1.0  4.9100000  2.1100000  1.7100000 
 1.1  5.9260000  2.4940000  2.0540000 
 1.2  6.9420000  2.8140000  2.3340000 
 1.3  7.9580000  3.0700000  2.5500000 
 1.4  8.9740000  3.2620000  2.7020000 
 1.5  9.9900000  3.3900000  2.7900000 
 1.6 11.0060000  3.4540000  2.8140000 
 1.7 12.0220000  3.4540000  2.7740000 
 1.8 13.0380000  3.3900000  2.6700000 
 1.9 14.0540000  3.2620000  2.5020000 
 2.0 15.0700000  3.0700000  2.2700000 
 2.1 16.0860000  2.8140000  1.9740000 
 2.2 17.1020000  2.4940000  1.6140000 
 2.3 18.1180000  2.1100000  1.1900000 
 2.4 19.1340000  1.6620000  0.7020000 
 2.5 20.1500000  1.1500000  0.1500000 
 2.6 21.1660000  0.5740000 -0.4660000 
 2.7 22.1820000 -0.0660000 -1.1460000 

Z analizy różnic wynika, że w pierwszym przypadku występuje tylko pierwsza różnica, co oznacza ruch prostoliniowy. W drugim i trzecim przypadku występuje pierwsza i druga różnica (<0), co oznacza ruch balistyczny w polu grawitacyjnym. Ponieważ w drugim i trzecim przypadku druga różnica jest taka sama, oznacza to, że ruch ciała odbywa się w tym samym polu grawitacyjnym.

Wartości generowane przez maszynę różnicową zaznaczono na osi współrzędnych i otrzymano następujące wykresy.

maszyna różnicowa oblicza trajektorię lotu statku kosmicznego

Na podstawie siedmiu danych pomiarowych z zakresu x=(0.00,..,0.06) trudno jest powiedzieć, czy jakaś z funkcji jest ciągła, czy osiągnie maksimum, kiedy osiągnie i kiedy wykres funkcji drugi raz przejdzie prostą x. Jedno co rzuca się w oczy, to że funkcje są rosnące. Maszyna różnicowa umożliwia precyzyjnie odpowiedzieć na te pytania.

Dla zainteresowanych podaję funkcje, jakie użyłem do wyznaczenia danych pomiarowych.

Dla przypadku 1: f(x) = 10.16x-5.25
Dla przypadku 2: f(x) = -3.2x2+10.56x-5.25;
Dla przypadku 3: f(x) = -3.2x2+10.16x-5.25;

Wyliczenia maszyny różnicowej zgadzają się dokładnie z wartościami wyliczonymi na podstawie podanych wzorów.

Odnośnie zachowania stałej trajektorii lotu, wystarczy śledzić różnice początkowe otrzymane z maszyny różnicowej liczone dla kolejnych danych pomiarowych i w razie potrzeby korygować lot poprzez silniki impulsowe.

Maszyna różnicowa oblicza funkcję sin(x)

Przykład 5

Wprowadzono do maszyny różnicowej szeregowej (metoda II sumowania różnic) następujące kolejne wartości nieznanej funkcji:

Przypadek 1: Siedem kolejnych wartości z precyzją 7 cyfr po przecinku.
Przypadek 2: Siedem kolejnych wartości z precyzją 15 cyfr po przecinku.
Przypadek 3: Jedenaście kolejnych wartości z precyzją 15 cyfr po przecinku

Wartości te zostały wyznaczone dla równoodległych wartości argumentu x tej funkcji.

W zależności od zastosowanego przypadku zastosowano następujące parametry maszyny różnicowej:

Dla przypadku 1 zastosowano maszynę różnicową z obsługą 6-ciu różnic i precyzją obliczeń 7 cyfr po przecinku.
Dla przypadku 2 zastosowano maszynę różnicową z obsługą 6-ciu różnic i precyzją obliczeń 15 cyfr po przecinku.
Dla przypadku 3 zastosowano maszynę różnicową z obsługą 10-ciu różnic i precyzją obliczeń 15 cyfr po przecinku.

Poniżej przedstawiono wartości, jakie wygenerowała maszyna różnicowa dla tych trzech przypadków:

 Dane wejściowe:

   7 liczb        7 liczb            11 liczb
   (7 cyfr)      (15 cyfr)          (15 cyfr)
  
  0.8414710  0.841470984807897  0.841470984807897  
  0.8912074  0.891207360061435  0.891207360061435
  0.9320391  0.932039085967226  0.932039085967226
  0.9635582  0.963558185417193  0.963558185417193
  0.9854497  0.985449729988460  0.985449729988460
  0.9974950  0.997494986604054  0.997494986604054
  0.9995736  0.999573603041505  0.999573603041505
                                0.991664810452469
                                0.973847630878195
                                0.946300087687414
                                0.909297426825682
Ustawienie maszyny różnicowej

    6 różnic      6 różnic          10 różnic  
    7 cyfr       15 cyfr            15 cyfr

  0.8414710  0.841470984807897  0.841470984807897 
  0.0497364  0.049736375253538  0.049736375253538
 -0.0089047 -0.008904649347747 -0.008904649347747
 -0.0004079 -0.000407977108077 -0.000407977108077
  0.0000929  0.000093048685201  0.000093048685201
  0.0000035  0.000003146660702  0.000003146660702
 -0.0000018 -0.000000961152102 -0.000000961152102
                               -0.000000021836875
                                0.000000009821696
                                0.000000000120061
                               -0.000000000099364
Generowane wartości
(podano co dziesiątą wartość)

      6 różnic   6 różnic   10 różnic    sin x
  x   7 miejsc   15 miejsc  15 miejsc
      
 1.0  0.8414710  0.8414710  0.8414710  0.8414710  
 1.1  0.8912074  0.8912074  0.8912074  0.8912074  
 1.2  0.9320391  0.9320391  0.9320391  0.9320391  
 1.3  0.9635582  0.9635582  0.9635582  0.9635582 
 1.4  0.9854497  0.9854497  0.9854497  0.9854497  
 1.5  0.9974950  0.9974950  0.9974950  0.9974950  
 1.6  0.9995736  0.9995736  0.9995736  0.9995736 
 1.7  0.9916630  0.9916648  0.9916648  0.9916648 
 1.8  0.9738368  0.9738478  0.9738476  0.9738476  
 1.9  0.9462610  0.9463008  0.9463001  0.9463001  
 2.0  0.9091885  0.9092996  0.9092974  0.9092974
 2.1  0.8629518  0.8632149  0.8632094  0.8632094
 2.2  0.8079539  0.8085088  0.8084964  0.8084964
 2.3  0.7446574  0.7457300  0.7457052  0.7457052
 2.4  0.6735718  0.6755085  0.6754632  0.6754632
 2.5  0.5952390  0.5985492  0.5984721  0.5984721
 2.6  0.5102170  0.5156242  0.5155014  0.5155014
 2.7  0.4190618  0.4275648  0.4273799  0.4273799
 2.8  0.3223075  0.3352518  0.3349881  0.3349882
 2.9  0.2204446  0.2396054  0.2392493  0.2392493
 3.0  0.1138965  0.1415737  0.1411199  0.1411200
 3.1  0.0029942  0.0421208  0.0415804  0.0415807 
 3.2 -0.1120508 -0.0577867 -0.0583746 -0.0583741
 . . . . . . . . . . . . . . . . . . . . . . . .
 3.5 -0.4823390 -0,3508339 -0.3507875 -0.2555411
 . . . . . . . . . . . . . . . . . . . . . . . .
 4.0 -1.2201550 -0.7686381 -0.7568756 -0.6877662
 . . . . . . . . . . . . . . . . . . . . . . . .
 4.5 -2.3069890 -1.0528001 -0.9782450 -0.9516021
 4.6 -2.6046647 -1.0957308 -0.9947643 -0.9775301
 4.7 -2.9415866 -1.1362124 -1.0015125 -0.9936910
 4.8 -3.3246096 -1.1758146 -0.9984877 -0.9999233
 4.9 -3.7614442 -1.2164760 -0.9858075 -0.9961646
 5.0 -4.2607160 -1.2605341 -0.9637143 -0.9824526
 . . . . . . . . . . . . . . . . . . . . . . . .
 5.5 -8.0674610 -1.6455818 -0.7300291 -0.7727645 

Po prawej stronie umieszczono odpowiednie wartości funkcji sin(x), którą była tą nieznaną funkcją.

Wygenerowane wartości zaznaczono w układzie współrzędnych i wykreślono następujące wykresy.

maszyna różnicowa oblicza funkcję sin(x)

Okazuje się, że w każdym przypadku generowane wartości różnią się od wartości funkcji sin(x), od której pochodziły dane wejściowe. Przyczyn tego jest kilka.

Po pierwsze, okrojenie danych wejściowych do 7 cyfr po przecinku, może spowodować zagubienie części informacji dotyczącej zmienności funkcji, znajdującej się w kolejnych, nieuwzględnionych pozycjach cyfr po przecinku. Z naszym przykładzie podwyższenie precyzji danych i maszyny różnicowej do 15 cyfr po przecinku przybliżyło generowane wartości do wartości wzorcowej funkcji sin(x).

Po drugie, skorzystanie z maszyny różnicowej z obsługą sześciu różnic jest równoznaczne z uznaniem, że szósta różnica jest stała, a siódma (nie obsługiwana przez maszynę) jest równa zero, co odpowiada wielomianowi szóstego stopnia. Stało się to przyczyną błędu na skutek nieuwzględnienia wyższych różnic. Podwyższenie ilości obsługiwanych różnic do 10 przy zachowaniu wyższej precyzji 15 cyfr po przecinku spowodowało znaczne poprawienie dokładności generowanych wartości, na tyle, że uwidoczniło się już pierwsze minimum funkcji.

Rozwinięcie funkcji sin(x) w szereg Taylora pokazuje, że funkcja ta jest równoznaczna z wielomianem nieskończonego stopnia o postaci

sin(x) = x - (1/3!) x3 + (1/5!) x5 - (1/7!) x7 + (1/9!) x9 - (1/11!) x11...

co dowodzi, że zawsze będzie występował błąd nieuwzględnienia wyższych różnic. Jednakże w praktyce można pominąć błędy, które są niższe od zakładanych przez nas - interesuje nas np. określona ilość miejsc po przecinku, odcinająca miejsca niezgodności.

Jest sposób na sprawdzenie, kiedy mamy do czynienia z wielomianami o wyższym stopniu niż może obsłużyć maszyna różnicowa. Wystarczy pobrać nie jedną, ale kilka serii danych wejściowych, policzyć dla każdej serii różnice początkowe i porównać. Jeżeli najwyższa różnica, z założenia stała, będzie zmieniała swoją wartość, to oznacza, że mamy do czynienia z takim właśnie przypadkiem.

Poniżej zostały przedstawione najwyższe różnice dla kolejnej serii danych wejściowych uzyskanej poprzez uwzględnienie w serii kolejnej wartości nieznanej funkcji.

Różnice dla innych danych wejściowych:
  Przypadek 1     Przypadek 2        Przypadek 3 
    6 różnica        6 różnica          10 różnica  
    7 cyfr          15 cyfr            15 cyfr

    ---------------- Różnica -----------------
    szósta           szósta          dziesiąta 

 -0.0000018  -0.000000961152102  -0.000000000099364
  0.0000000  -0.000000982988977  -0.000000000099477
 -0.0000018  -0.000000995004156  -0.000000000098812
 -0.0000005  -0.000000997077578  -0.000000000096977
 -0.0000015  -0.000000989188546  -0.000000000094173
 -0.0000001  -0.000000971415849  -0.000000000090619
 -0.0000022  -0.000000943937088  -0.000000000085965
  0.0000005  -0.000000907026841  -0.000000000080542
	

Podczas analizy najwyższych różnic mamy następujące sytuacje:

  1. Najwyższa niezerowa różnica jest stała, co oznacza, że maszyna jest już gotowa do wyznaczenia dokładnej numerycznej postaci nieznanej funkcji.

  2. Najwyższa niezerowa różnica zmienia się, co oznacza, że maszyna nie nabyła pełnej informacji dotyczącej zmienności funkcji i nie będzie w stanie wygenerować dokładnej numerycznej postaci nieznanej funkcji, co najwyżej jej postać przybliżoną.

Jeżeli zajdzie sytuacja 2 oznacza to, że należy:

  • Zwiększyć precyzję danych i maszyny różnicowej.
  • Zwiększyć ilość różnic w maszynie różnicowej
  • Nieznana funkcja nie jest wielomianem i maszyna nie potrafi wygenerować jej dokładnej postaci numerycznej, co najwyższej przybliżoną postać.

Jak wynika z przykładu 5 maszyna różnicowa oprócz generacji wartości wielomianów może nadawać się także do łatwej metody interpolacji nieznanych funkcji.

Komputerowy model maszyny różnicowej

Na potrzeby rozdziału II został opracowany komputerowy model maszyny różnicowej w oparciu o wzory z części I. Zaprojektowany model sam liczy różnice początkowe i ustawia się do generacji wartości nieznanej funkcji.

komputerowy model maszyny różnicowej

Uwaga! Powyższy program maszyny różnicowej można otrzymać od autora tego artykułu, który zarazem jest jego projektantem i wykonawcą.

Podsumowanie

W rozdziale tym zostały przytoczone przykłady uwzględniające funkcje wielomianowe lub wielomian stopnia  nieskończonego, jaki występuje np. w przypadku takich funkcji jak: sin(x), cos(x), ln(x), exp(x). Pomijając wyższe różnice w takim wielomianie, można uzyskiwać zadowalające przybliżenia (np. w produkcji tablic matematycznych).

Wiele danych wejściowych może jednak nie nadawać się do obróbki przez maszynę różnicową, ponieważ badając, nie jedną, a kilka serii danych wejściowych, uzyskuje się całkiem odmienne różnice początkowe najwyższych rzędów.

Waldemar Wietrzykowski
Computational Neuroscience
Digital Intelligence Laboratory
email: mail

Zobacz też

Linki

dil

<  1  2  3  4  5  6  7  8  9  10  11  12

Copyright  © 22.11.2007 net3plus  mail