Metody numeryczne

Metody numeryczne

  1. Szybkie podnoszenie do potęgi

Jest to metoda pozwalająca na szybkie obliczenie potęgi o wykładniku naturalnym. Metoda ta wykorzystuje pośrednio dwójkową reprezentację wykładnika potęgi, a jej złożoność, wyrażona jako liczba wykonywanych mnożeń, wynosi O(logn), gdzie n oznacza wykładnik obliczanej potęgi.

Algorytm szybkiego potęgowania jest konsekwencją tego, że aby obliczyć wartość xk wystarczy znać xk/2⌋, a następnie w zależności od wykładnika k.

Przykładowo, aby obliczyć 313 wystarczy znać wartość x=36, następnie policzyć y = x2=312 i wynik wynosi y*3. W ten sposób aby przejść od 36 do 313 wystarczy wykonać dwa mnożenia zamiast 7.

Algorytm ten można zapisać w postaci prostej funkcji rekurencyjnej.

Pseudokod:

funkcja potęga(x, n)

jeżeli n = 0

zwróć 1

jeżeli n jest nieparzysta

zwróć x · potęga(x, n - 1)

w przeciwnym przypadku

a = potęga(x, n/2)

zwróć a2

Implementacja w C++ w pliku potega.cpp

  1. Stabilny algorytm rozwiązywania równania kwadratowego ax2 + bx + c

Klasyczna metoda rozwiązywania równania kwadratowego, nazywana algorytmem „delty” nie zawsze jest stabilna w realizacjach komputerowych. Dzieje się tak, ponieważ liczby rzeczywiste są reprezentowane w komputerze w sposób przybliżony. Przybliżenia te mogą się kumulować, powodując błędy w obliczeniach.

Sposób reprezentacji liczby rzeczywistej za pomocą notacji naukowej – liczba zmiennoprzecinkowa

X=M*BE

X-wartość liczby zmiennoprzecinkowej

M-mantysa, liczba ułamkowa należąca do przedziału <1,B)

B-podstawa systemu liczbowego, 10 dla systemu dziesiętnego

E-wykładnik/cecha, liczba całkowita

Zakres cechy ma wpływ na wielkość liczb w tej reprezentacji. Liczba cyfr przeznaczona na mantysę wpływa na dokładność obliczeń. Jeśli na mantysę przeznaczono k cyfr, to wartość mantysy zostanie zapamiętana jako zaokrąglenie liczby do k cyfr.
Przykładowo, gdy dla mantysy przeznaczymy 4 znaki, liczba 3,14159265359 zostanie zapamiętana jako 3,141.

Niedokładność algorytmu delty powstaje, gdy iloczyn 4ac jest bardzo mały w stosunku do b2. Wtedy pierwiastek z delty jest w przybliżeniu równy b. Dodawanie lub odejmowanie liczb bliskich sobie może doprowadzić do utraty dokładności.


$$x1 = \frac{- b - \sqrt{\text{delta}}}{2a}$$

Odejmujemy w tym przypadku dwie liczby bliskie sobie. Zatem w zależności od znaku b w przypadkach $- b - \sqrt{\text{delta}}$ lub $- b + \sqrt{\text{delta}}$ następuje odejmowanie dwóch bliskich sobie liczb.

Stabilny algorytm rozwiązywania równania kwadratowego opiera się na wzorach Viette’a.

x1 + x2 =   − a/b x1 * x2 = c/a

Polega on na posłużeniu się wzorem na iloczyn pierwiastków, do obliczenia tego pierwiastka, którego wartość może być zaburzona błędami zaokrągleń – zależnie od znaku b.

Dla b>0: $x1 = \frac{- b - \sqrt{\text{delta}}}{2a}$; x2 = c/(a * x1).

Dla b<0: $x2 = \frac{- b + \sqrt{\text{delta}}}{2a}$; x1 = c/(a * x2).

Implementacja w C++ w pliku rownanie_kwadratowe.cpp

Bibliografia:

Adam Sawicki kl.3c


Wyszukiwarka

Podobne podstrony:
Metody numeryczne w6
metoda siecznych, Elektrotechnika, SEM3, Metody numeryczne, egzamin metody numeryczn
MN energetyka zadania od wykładowcy 09-05-14, STARE, Metody Numeryczne, Część wykładowa Sem IV
METODA BAIRSTOWA, Politechnika, Lab. Metody numeryczne
testMNłatwy0708, WI ZUT studia, Metody numeryczne, Metody Numeryczne - Ćwiczenia
Metody numeryczne Metoda węzłowa
Metody numeryczne, wstep
metody numeryczne w4
Metody numeryczne PDF, MN macierze 01 1
Metody numeryczne w11
metody numeryczne i w9
Metody numeryczne PDF, MN raphson 11
metody numeryczne w9
7 h, Informatyka, Informatyka, Informatyka. Metody numeryczne, Kosma Z - Metody i algorytmy numerycz
rownania nieliniowe, Automatyka i robotyka air pwr, VI SEMESTR, Notatki.. z ASE, metody numeryczne,
text, informa, metody numeryczne
metody numeryczne - interpolacja, Nauka i Technika, Informatyka, Programowanie

więcej podobnych podstron