Proszę o jakąkolwiek pomoc przy zadaniu: Wylicz rekurencyjnie \(\displaystyle{ \ln \left( 5 \right)}\) z dokładnością \(\displaystyle{ 10^{-6}}\).
I muszę koniecznie skorzystać z sposobu / wzorów podanych na wykładzie, które wyglądają dokładnie tak:
Funkcja \(\displaystyle{ \ln \left( x \right)}\)
Dla \(\displaystyle{ x \in \mathbb{R}}\) wówczas (liczba jako cecha, mantysa) \(\displaystyle{ x = 2^{m} z}\) gdzie \(\displaystyle{ m \in \mathbb{Z} , \frac{1}{2} \le z < 1}\).
\(\displaystyle{ \ln \left( x \right) = \ln \left( 2^{m}z \right) = m \ln \left( 2 \right) + \ln \left( z \right)}\)
\(\displaystyle{ \ln \left( z \right) = -2 \sum_{ k=1 }^{\infty} \frac{1}{2k - 1} \left( \frac{1-z}{1+z} \right)}\)
Niech \(\displaystyle{ \left( \frac{1-z}{1+z} = \partial \right)}\) wówczas:
\(\displaystyle{ \ln \left( x \right) = m \ln 2 - 2\sum_{ k=1 }^{\infty} \frac{1}{2k - 1} \partial ^ {2k-1}}\) gdzie\(\displaystyle{ 0 < \partial \le \frac{1}{3}}\)
\(\displaystyle{ \ln \left( 2 \right)}\) wartość bierzemy z tablic matematycznych
Wyliczenie rekurencyjne:
\(\displaystyle{ \begin{cases} \ln \left( x \right) = m \ln 2 - 2\sum_{ k=1 }^{n} u_{k} + R_{n} \\ u_{1} = \partial , u_{k+1}= \frac{ \partial ^2}{2k-1} u_{k} \end{cases}}\)
Kończymy zadanie gdy \(\displaystyle{ u_{n} < 4 \epsilon}\)
Wzór podany wcześniej na \(\displaystyle{ R_{n} \left( x \right) = \frac{f^{n+1} \left( \partial \right) }{ \left( n+1 \right) ! } x^{n+1}}\)
Bardzo bym prosiła o wskazówkę jak zacząć / rozpoczęcie tego zadania, albo pomóc mi przebrnąć przez to krok po kroku.
Na prawdę szukałam na internecie w książkach jakiś pomocy ale niestety nic przydatnego nie znalazłam.
A gdy samodzielnie starałam się liczyć to poziom zagmatwania się był tak duży, że wyniki wychodziły mi totalnie bez sensu.
Chcę to policzyć sama ale od czego zacząć, chciałabym żeby ktoś kontrolował to co robię.
Wyliczanie rekurencyjne funkcji
- MasterSplynter
- Użytkownik
- Posty: 23
- Rejestracja: 20 paź 2014, o 21:31
- Płeć: Kobieta
- Lokalizacja: Bytom
- Podziękował: 7 razy
Wyliczanie rekurencyjne funkcji
Ostatnio zmieniony 3 mar 2015, o 07:39 przez Afish, łącznie zmieniany 1 raz.
Powód: Punkt 2.7 instrukcji LaTeX-a. Funkcje matematyczne należy zapisywać: sinus - \sin, logarytm - \log, logarytm naturalny - \ln itd.
Powód: Punkt 2.7 instrukcji LaTeX-a. Funkcje matematyczne należy zapisywać: sinus - \sin, logarytm - \log, logarytm naturalny - \ln itd.
-
- Użytkownik
- Posty: 4211
- Rejestracja: 25 maja 2012, o 21:33
- Płeć: Mężczyzna
- Lokalizacja: Kraków PL
- Podziękował: 2 razy
- Pomógł: 758 razy
Wyliczanie rekurencyjne funkcji
Podany przez Ciebie algorytm rekurencyjnego obliczania wartości logarytmy naturalnego jest zły.
Zamiast:
Algorytm pierwotny jest zbieżny do wartości różniącej się od poprawnej. Dla \(\displaystyle{ \ln5}\) różnica wynosi \(\displaystyle{ 2,01\%}\). Gdyby był wolniej zbieżny, to różnica byłaby „wyraźniejsza”.
Algorytm pierwotny jest zbieżny do wartości \(\displaystyle{ \ln 5,164590=1,641825}\) , podczas gdy \(\displaystyle{ \ln 5=1,609438}\) .
Poniżej podaję „wstęp” i pierwsze kroki poprawnego algorytmu.
Zamiast:
- \(\displaystyle{ \begin{cases}\ln(x) = m\ln 2 - 2\sum_{k=1}^n u_k + R_{n} \\
u_1=\partial, u_{k+1}= \frac{\partial^2}{\red{2k-1}}\black{u_k}\end{cases}}\)
- \(\displaystyle{ \begin{cases}\ln(x) = m\ln 2 - 2\sum_{k=1}^n \frac{u_k}{\red{2k-1}}\black{+} R_{n} \\
u_1=\partial, u_{k+1}= \partial^2u_k\end{cases}}\)
Algorytm pierwotny jest zbieżny do wartości różniącej się od poprawnej. Dla \(\displaystyle{ \ln5}\) różnica wynosi \(\displaystyle{ 2,01\%}\). Gdyby był wolniej zbieżny, to różnica byłaby „wyraźniejsza”.
Algorytm pierwotny jest zbieżny do wartości \(\displaystyle{ \ln 5,164590=1,641825}\) , podczas gdy \(\displaystyle{ \ln 5=1,609438}\) .
Poniżej podaję „wstęp” i pierwsze kroki poprawnego algorytmu.
- \(\displaystyle{ 5=2^3\hbox{·}5/8 \quad \hbox{czyli }z=5/8}\)
\(\displaystyle{ \partial=3/13}\)
\(\displaystyle{ \epsilon=10^{-6} \quad \hbox{czyli} \ 4\epsilon=4\hbox{·}10^{-6} \\
\ln 2=0,693147 \quad \hbox{(conajmniej 6 cyfr, bo} \ 10^{-6})}\)
\(\displaystyle{ \red{u_1}\ \black{=}\ \partial=3/13 \\
\ln5=3\ln 2-2\red{u_1} \\
\red{u_1}\black{<}4\epsilon \quad \hbox{gdy tak, obliczamy wartość powyżej}}\)
\(\displaystyle{ \green{u_2}\ \black{=}\ \partial^2\red{u_1} \\
\black{\ln}5=3\ln 2-2u_1-\frac{2\green{u_2}}{\black{3}} \\
\green{u_2}\black{<}4\epsilon \quad \hbox{gdy tak, obliczamy wartość powyżej}}\)
\(\displaystyle{ \red{u_3}\ \black{=}\ \partial^2\green{u_2} \\
\black{\ln}5=3\ln 2-2u_1-\frac{2u_2}{3}-\frac{2\red{u_3}}{\black{5}} \\
\red{u_3}\black{<}4\epsilon \quad \hbox{gdy tak, obliczamy wartość powyżej}}\)
\(\displaystyle{ \green{u_4}\ \black{=}\ \partial^2\red{u_3} \\
\black{\ln}5=2\ln 2-2u_1-\frac{2u_2}{3}-\frac{2u_3}{5}-\frac{2\green{u_4}}{\black{7}} \\
\green{u_4}\black{<}4\epsilon \quad \hbox{gdy tak, obliczamy wartość powyżej}}\)
Ostatnio zmieniony 5 mar 2015, o 22:44 przez SlotaWoj, łącznie zmieniany 2 razy.
- MasterSplynter
- Użytkownik
- Posty: 23
- Rejestracja: 20 paź 2014, o 21:31
- Płeć: Kobieta
- Lokalizacja: Bytom
- Podziękował: 7 razy
Wyliczanie rekurencyjne funkcji
Dziękuję bardzo za odpowiedź
Czyli robię tak:
\(\displaystyle{ u_{1} = \partial}\)
\(\displaystyle{ u_{1} = \frac{3}{13}}\)
\(\displaystyle{ u_{1} < 4 \cdot 10^{-6}}\) nieprawda więc:
\(\displaystyle{ u_{2} = \partial ^ {2} \cdot u_{1}}\)
\(\displaystyle{ u_{2} = \frac{3}{13} ^ {2} \cdot \frac{3}{13}}\)
\(\displaystyle{ u_{2} = \frac{3}{13} ^ {3}}\)
\(\displaystyle{ u_{2} < 4 \cdot 10^{-6}}\) nieprawda więc:
\(\displaystyle{ u_{3} = \partial ^ {2} \cdot u_{2}}\)
\(\displaystyle{ u_{3} = \frac{3}{13} ^ {2} \cdot \frac{3}{13} ^ {3}}\)
\(\displaystyle{ u_{3} = \frac{3}{13} ^ {5}}\)
\(\displaystyle{ u_{3} < 4 \cdot 10^{-6}}\) nieprawda więc:
\(\displaystyle{ u_{4} = \partial ^ {2} \cdot u_{3}}\)
\(\displaystyle{ u_{4} = \frac{3}{13} ^ {2} \cdot \frac{3}{13} ^ {5}}\)
\(\displaystyle{ u_{4} = \frac{3}{13} ^ {7}}\)
\(\displaystyle{ u_{4} < 4 \cdot 10^{-6}}\) nieprawda więc:
\(\displaystyle{ u_{5} = \partial ^ {2} \cdot u_{4}}\)
\(\displaystyle{ u_{5} = \frac{3}{13} ^ {2} \cdot \frac{3}{13} ^ {7}}\)
\(\displaystyle{ u_{5} = \frac{3}{13} ^ {9}}\)
\(\displaystyle{ u_{5} < 4 \cdot 10^{-6}}\) zgadza się więc obliczam:
\(\displaystyle{ \ln \left( 5 \right) = 3\ln \left( 2\right) - 2(u_{1}+ \frac{u_{2}}{3} + \frac{u_{3}}{5}+ \frac{u_{4}}{7} + \frac{u_{5}}{9}) \approx 1.609438}\)
Teraz jeszcze coś mam robić z tym \(\displaystyle{ R_{n}}\)?
Czyli robię tak:
\(\displaystyle{ u_{1} = \partial}\)
\(\displaystyle{ u_{1} = \frac{3}{13}}\)
\(\displaystyle{ u_{1} < 4 \cdot 10^{-6}}\) nieprawda więc:
\(\displaystyle{ u_{2} = \partial ^ {2} \cdot u_{1}}\)
\(\displaystyle{ u_{2} = \frac{3}{13} ^ {2} \cdot \frac{3}{13}}\)
\(\displaystyle{ u_{2} = \frac{3}{13} ^ {3}}\)
\(\displaystyle{ u_{2} < 4 \cdot 10^{-6}}\) nieprawda więc:
\(\displaystyle{ u_{3} = \partial ^ {2} \cdot u_{2}}\)
\(\displaystyle{ u_{3} = \frac{3}{13} ^ {2} \cdot \frac{3}{13} ^ {3}}\)
\(\displaystyle{ u_{3} = \frac{3}{13} ^ {5}}\)
\(\displaystyle{ u_{3} < 4 \cdot 10^{-6}}\) nieprawda więc:
\(\displaystyle{ u_{4} = \partial ^ {2} \cdot u_{3}}\)
\(\displaystyle{ u_{4} = \frac{3}{13} ^ {2} \cdot \frac{3}{13} ^ {5}}\)
\(\displaystyle{ u_{4} = \frac{3}{13} ^ {7}}\)
\(\displaystyle{ u_{4} < 4 \cdot 10^{-6}}\) nieprawda więc:
\(\displaystyle{ u_{5} = \partial ^ {2} \cdot u_{4}}\)
\(\displaystyle{ u_{5} = \frac{3}{13} ^ {2} \cdot \frac{3}{13} ^ {7}}\)
\(\displaystyle{ u_{5} = \frac{3}{13} ^ {9}}\)
\(\displaystyle{ u_{5} < 4 \cdot 10^{-6}}\) zgadza się więc obliczam:
\(\displaystyle{ \ln \left( 5 \right) = 3\ln \left( 2\right) - 2(u_{1}+ \frac{u_{2}}{3} + \frac{u_{3}}{5}+ \frac{u_{4}}{7} + \frac{u_{5}}{9}) \approx 1.609438}\)
Teraz jeszcze coś mam robić z tym \(\displaystyle{ R_{n}}\)?
-
- Użytkownik
- Posty: 4211
- Rejestracja: 25 maja 2012, o 21:33
- Płeć: Mężczyzna
- Lokalizacja: Kraków PL
- Podziękował: 2 razy
- Pomógł: 758 razy
Wyliczanie rekurencyjne funkcji
Dopisałem powyżej sumę końcową błędnego algorytmu.
Zapomniałem też zgłosić wcześniej zauważony błąd w pierwszym poście. Zamiast:
To \(\displaystyle{ R_n}\) jest resztą ze wzoru Taylora i autor zadania „z rozpędu” umieścił w algorytmie, w którym nie jest do niczego potrzebna i można ją zignorować.
Warunek zakończenia obliczeń pochodzi z błędnego algorytmu i zastanawiam się nie powinien ulec zmianie.
Można podejść do tego „zdroworozsądkowo” i zauważyć, że skoro mamy obliczyć \(\displaystyle{ \ln 5}\) z dokładnością \(\displaystyle{ \epsilon=10^{-6}}\) , to obliczenia przerywamy gdy ostatni dodany składnik szeregu różni się od poprzedniego o mniej niż o \(\displaystyle{ \epsilon}\) .
-- 6 mar 2015, o 18:02 --
Można też wyliczyć z tego warunek na \(\displaystyle{ u_n}\) .
„Surowy” warunek zakończenia obliczeń jest następujący:
Zadanie jest wartościowe, bo oprócz ćwiczenia implementacji prostego algorytmu numerycznego ilustruje jego dostosowanie do dwójkowej reprezentacji liczb w urządzeniach elektronicznych (kalkulatory, komputery).
Przy obliczaniu wartości funkcji elementarnych zawsze podstawą jest jakiś szereg Taylora, ale często jest on modyfikowany tak, aby uzyskać szybszą zbieżność szeregu, lub mniejszą złożoność obliczeniową i dla funkcji \(\displaystyle{ \ln}\) można to pokazać najlepiej.
Dla niej „klasyczny” szereg Taylora:
Zapomniałem też zgłosić wcześniej zauważony błąd w pierwszym poście. Zamiast:
powinno być:MasterSplynter pisze:\(\displaystyle{ \ln\left(z\right) = -2\sum_{k=1}^\infty \frac{1}{2k-1}\left(\frac{1-z}{1+z}\right)}\)
- \(\displaystyle{ \ln\left(z\right) = -2\sum_{k=1}^\infty \frac{1}{2k-1}\left(\frac{1-z}{1+z}\right)^{2k-1}}\)
To \(\displaystyle{ R_n}\) jest resztą ze wzoru Taylora i autor zadania „z rozpędu” umieścił w algorytmie, w którym nie jest do niczego potrzebna i można ją zignorować.
Warunek zakończenia obliczeń pochodzi z błędnego algorytmu i zastanawiam się nie powinien ulec zmianie.
Można podejść do tego „zdroworozsądkowo” i zauważyć, że skoro mamy obliczyć \(\displaystyle{ \ln 5}\) z dokładnością \(\displaystyle{ \epsilon=10^{-6}}\) , to obliczenia przerywamy gdy ostatni dodany składnik szeregu różni się od poprzedniego o mniej niż o \(\displaystyle{ \epsilon}\) .
-- 6 mar 2015, o 18:02 --
Można też wyliczyć z tego warunek na \(\displaystyle{ u_n}\) .
„Surowy” warunek zakończenia obliczeń jest następujący:
- \(\displaystyle{ u_k<\frac{\epsilon}{2}\hbox{·}\frac{\partial^2\left(2k-1\right)\left(2k-3\right)}{\left(1-\partial^2\right)\left(2k-3\right)+2}}\)
- \(\displaystyle{ u_k<\frac{\epsilon\left(2k-1\right)}{16}}\)
Zadanie jest wartościowe, bo oprócz ćwiczenia implementacji prostego algorytmu numerycznego ilustruje jego dostosowanie do dwójkowej reprezentacji liczb w urządzeniach elektronicznych (kalkulatory, komputery).
Przy obliczaniu wartości funkcji elementarnych zawsze podstawą jest jakiś szereg Taylora, ale często jest on modyfikowany tak, aby uzyskać szybszą zbieżność szeregu, lub mniejszą złożoność obliczeniową i dla funkcji \(\displaystyle{ \ln}\) można to pokazać najlepiej.
Dla niej „klasyczny” szereg Taylora:
- \(\displaystyle{ \ln(x)=\sum_{k=1}^{\infty} \frac{(-1)^{n+1}}{n}\left(x-1\right)^n}\)
Ostatnio zmieniony 6 mar 2015, o 22:25 przez SlotaWoj, łącznie zmieniany 1 raz.
- MasterSplynter
- Użytkownik
- Posty: 23
- Rejestracja: 20 paź 2014, o 21:31
- Płeć: Kobieta
- Lokalizacja: Bytom
- Podziękował: 7 razy
Wyliczanie rekurencyjne funkcji
Czyli przy takim warunku muszę liczyć do wyrazu \(\displaystyle{ u_{6}}\).
Dziękuję bardzo za pomoc przy tym zadaniu, chyba nigdy bym tego nie ogarnęła .
Dziękuję bardzo za pomoc przy tym zadaniu, chyba nigdy bym tego nie ogarnęła .
-
- Użytkownik
- Posty: 4211
- Rejestracja: 25 maja 2012, o 21:33
- Płeć: Mężczyzna
- Lokalizacja: Kraków PL
- Podziękował: 2 razy
- Pomógł: 758 razy
Wyliczanie rekurencyjne funkcji
TAK
Przy użyciu „surowego” warunku zakończenia obliczeń można osiągnąć założoną dokładność w 5-ciu krokach, ale bardziej „opłaca się” stosować ten uproszczony, bo algorytm będzie miał mniejszą złożoność obliczeniową.
Obliczenie prawej strony dla warunku „surowego” wymaga 6-ciu mnożeń, dla warunku uproszczonego dwóch mnożeń, a kolejnego wyrazu szeregu trzech mnożeń. Już jedno sprawdzenie uproszczone zamiast „surowego” daje „większy zysk” niż koszt obliczenia kolejnego wyrazu szeregu.
Przy użyciu „surowego” warunku zakończenia obliczeń można osiągnąć założoną dokładność w 5-ciu krokach, ale bardziej „opłaca się” stosować ten uproszczony, bo algorytm będzie miał mniejszą złożoność obliczeniową.
Obliczenie prawej strony dla warunku „surowego” wymaga 6-ciu mnożeń, dla warunku uproszczonego dwóch mnożeń, a kolejnego wyrazu szeregu trzech mnożeń. Już jedno sprawdzenie uproszczone zamiast „surowego” daje „większy zysk” niż koszt obliczenia kolejnego wyrazu szeregu.