Logarytm naturalny
Logarytm naturalny
Czy wie moze ktos jak zaprogramowac funkcje obliczajaca logarytm naturalny ?? I prosze mi nie pisac o predefiniowanych funkcjach, ja musze ja zapisac od poczatku i jakos brak idei... Jezyk C, Pascal, Java..Ktos pomoze??
-
- Użytkownik
- Posty: 971
- Rejestracja: 27 wrz 2005, o 22:56
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 11 razy
- Pomógł: 75 razy
Logarytm naturalny
Oblicz wartość ln(c)
Jeśli: x = ln(c) -> e^x = c
Zatem należy rozwiązać równanie:
\(\displaystyle{ f(x) = e^x - c = 0}\)
Dobra jest metoda Newtona (iteracyjna):
\(\displaystyle{ \large x_{i+1} = x_i - \frac{f(x_i)}{f^'(x_i)}}\)
w tym przypadku:
\(\displaystyle{ \large x_{i+1} = x_i + c\cdot e^{-x_i} - 1}\)
Za x0 wstawiasz dowolną liczbę.
Po 3, 4 iteracjach wynik jest dokładny nawet do 6 cyfr.
Jeśli nie wolno używać funkcji exp to, jest też taki wzór:
\(\displaystyle{ \large \int_1^c{\frac{1}{x}dx} = ln(c)}\)
Zatem można to przerobić na obliczanie kwadratury z 1/x, w granicach od 1 do c.
Jest dużo prostych i skutecznych metod obliczania kwadratur: wzór trapezów, Simpsona,
metoda Romberga, itp.
Jeśli: x = ln(c) -> e^x = c
Zatem należy rozwiązać równanie:
\(\displaystyle{ f(x) = e^x - c = 0}\)
Dobra jest metoda Newtona (iteracyjna):
\(\displaystyle{ \large x_{i+1} = x_i - \frac{f(x_i)}{f^'(x_i)}}\)
w tym przypadku:
\(\displaystyle{ \large x_{i+1} = x_i + c\cdot e^{-x_i} - 1}\)
Za x0 wstawiasz dowolną liczbę.
Po 3, 4 iteracjach wynik jest dokładny nawet do 6 cyfr.
Jeśli nie wolno używać funkcji exp to, jest też taki wzór:
\(\displaystyle{ \large \int_1^c{\frac{1}{x}dx} = ln(c)}\)
Zatem można to przerobić na obliczanie kwadratury z 1/x, w granicach od 1 do c.
Jest dużo prostych i skutecznych metod obliczania kwadratur: wzór trapezów, Simpsona,
metoda Romberga, itp.