[Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Szysiek
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 8 lut 2013, o 22:23
Płeć: Mężczyzna
Lokalizacja: Łódź

[Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: Szysiek » 8 lut 2013, o 22:29

Witam, mam takie pytanie:

Jak oblicza się numerycznie wartości funkcji elementarnych np. \(\displaystyle{ \sin (1.3\pi)}\)

Z góry dziękuję za odpowiedź.
Rekrutacja Instytut Matematyczny, Uniwersytet Wrocławski (gif)

Awatar użytkownika
szw1710
Gość Specjalny
Gość Specjalny
Posty: 18824
Rejestracja: 1 cze 2010, o 22:13
Płeć: Mężczyzna
Lokalizacja: Cieszyn
Podziękował: 6 razy
Pomógł: 3752 razy

[Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: szw1710 » 8 lut 2013, o 22:32

Ze wzoru Maclaurina.

Szysiek
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 8 lut 2013, o 22:23
Płeć: Mężczyzna
Lokalizacja: Łódź

[Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: Szysiek » 9 lut 2013, o 20:04

A mógłby ktoś rozpisać ten przykład z pierwszego postu? Najlepiej z jakimś komentarzem, bo jakoś nie mogę tego pojąć do końca. Byłbym wdzięczny.

miodzio1988

[Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: miodzio1988 » 9 lut 2013, o 20:18

Nie. Jaki masz wzór podany przez kolege?

Awatar użytkownika
szw1710
Gość Specjalny
Gość Specjalny
Posty: 18824
Rejestracja: 1 cze 2010, o 22:13
Płeć: Mężczyzna
Lokalizacja: Cieszyn
Podziękował: 6 razy
Pomógł: 3752 razy

[Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: szw1710 » 9 lut 2013, o 20:33

Szysiek, a czy Ty masz to implementować, czy wystarczy Ci odpowiednia biblioteka?

Szysiek
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 8 lut 2013, o 22:23
Płeć: Mężczyzna
Lokalizacja: Łódź

[Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: Szysiek » 9 lut 2013, o 20:58

To jest pytanie, które często lubi padać na zaliczeniu. Więc muszę wytłumaczyć jak się wylicza te wartości funkcji.

Awatar użytkownika
szw1710
Gość Specjalny
Gość Specjalny
Posty: 18824
Rejestracja: 1 cze 2010, o 22:13
Płeć: Mężczyzna
Lokalizacja: Cieszyn
Podziękował: 6 razy
Pomógł: 3752 razy

[Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: szw1710 » 9 lut 2013, o 21:04

Radzę więc poszukać w opisach oprogramowania, kalkulatorów itp. tego, wg jakiego algorytmu się to robi. Bo niekoniecznie wzór Maclaurina czy Taylora będzie najszybszy w rozwiązaniu praktycznym. Metody numeryczne to bardzo rozległa dziedzina wiedzy. A pewnie o taki przedmiot chodzi. Kto wie czy np. nie aproksymuje się funkcjami sklejanymi

Ja bym do tego tak podszedł: wiadomo, że aby wyznaczyć funkcje trygonometryczne dowolnego kąta, wystarczy je znać dla kątów ostrych. Więc badałbym jaka jest dokładność obliczeń np. sinusa wzorem Maclaurina w przedziale \(\displaystyle{ \left[0,\frac{\pi}{2}\right]}\). Wiadomo, że

\(\displaystyle{ \left|\sin x-\left(x-\frac{x^3}{3!}+\dots+(-1)^{n+1}\frac{x^{2n-1}}{(2n-1)!}\right)\right|\le\frac{|x|^{2n+1}}{(2n+1)!}}\)

To właśnie oszacowanie błędu we wzorze Maclaurina dla sinusa. No i wystarczy że podstawisz sobie \(\displaystyle{ x=\frac{\pi}{2}}\), a szybciutko zobaczysz, jak wysokiego \(\displaystyle{ n}\) potrzeba dla z góry zadanej dokładności. Powiedzmy \(\displaystyle{ 10}\)-miejscowej, czyli rzędu \(\displaystyle{ 10^{-11}}\) (wtedy \(\displaystyle{ 10}\) miejsc po przecinku jest pewnych).

Nawiasem mówiąc to wystarczy dla wszystkich funkcji trygonometrycznych - znając sinusa kąta ostrego, znasz od razu cosinusa, tangensa i cotangensa. Tylko jeszcze jest kwestia dzielenia, która produkować może duże błędy w zaokrągleniach.

ksisquare
Użytkownik
Użytkownik
Posty: 132
Rejestracja: 1 cze 2012, o 07:04
Płeć: Mężczyzna
Lokalizacja: Polska
Pomógł: 15 razy

[Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: ksisquare » 12 lut 2013, o 21:56

Pade i CORDIC

Awatar użytkownika
mdd
Użytkownik
Użytkownik
Posty: 1882
Rejestracja: 14 kwie 2013, o 10:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy
Pomógł: 509 razy

Re: [Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: mdd » 20 gru 2020, o 13:28

Materiały dla ciekawskich i poszukujących: http://www.andraka.com/files/crdcsrvy.pdf

CORDIC II: A New Improved CORDIC Algorithm: http://liu.diva-portal.org/smash/get/di ... TEXT01.pdf

Awatar użytkownika
mdd
Użytkownik
Użytkownik
Posty: 1882
Rejestracja: 14 kwie 2013, o 10:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy
Pomógł: 509 razy

Re: [Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: mdd » 20 gru 2020, o 13:33


Awatar użytkownika
szw1710
Gość Specjalny
Gość Specjalny
Posty: 18824
Rejestracja: 1 cze 2010, o 22:13
Płeć: Mężczyzna
Lokalizacja: Cieszyn
Podziękował: 6 razy
Pomógł: 3752 razy

Re: [Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: szw1710 » 20 gru 2020, o 17:15

Zobaczę. :) Archeologia górą. Brawo za znalezienie wykopaliska. :)

Awatar użytkownika
mdd
Użytkownik
Użytkownik
Posty: 1882
Rejestracja: 14 kwie 2013, o 10:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy
Pomógł: 509 razy

Re: [Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: mdd » 31 gru 2020, o 12:47

Świetny materiał: https://repositories.lib.utexas.edu/bit ... j20424.pdf

Wszystkiego dobrego w Nowym Roku!

Awatar użytkownika
mdd
Użytkownik
Użytkownik
Posty: 1882
Rejestracja: 14 kwie 2013, o 10:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy
Pomógł: 509 razy

Re: [Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: mdd » 16 sty 2021, o 13:30

Uogólniony CORDIC w pigułce: CORDIC

"Scale free CORDIC": https://hal.archives-ouvertes.fr/hal-01327460/document

Awatar użytkownika
mdd
Użytkownik
Użytkownik
Posty: 1882
Rejestracja: 14 kwie 2013, o 10:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy
Pomógł: 509 razy

Re: [Metody numeryczne] Obliczanie wartości funkcji elementarnyc

Post autor: mdd » 7 paź 2021, o 02:08

Logarithm
Feynman's algorithm

While at Los Alamos National Laboratory working on the Manhattan Project, Richard Feynman developed a bit-processing algorithm that is similar to long division and was later used in the Connection Machine. The algorithm uses the fact that every real number \(\displaystyle{ 1 < x < 2}\) is representable as a product of distinct factors of the form \(\displaystyle{ 1 + 2^{−k}}\). The algorithm sequentially builds that product \(\displaystyle{ P}\): if \(\displaystyle{ P \cdot (1 + 2^{−k}) < x}\), then it changes \(\displaystyle{ P}\) to \(\displaystyle{ P \cdot (1 + 2^{−k})}\). It then increases \(\displaystyle{ k}\) by one regardless. The algorithm stops when \(\displaystyle{ k}\) is large enough to give the desired accuracy. Because \(\displaystyle{ \log(x)}\) is the sum of the terms of the form \(\displaystyle{ \log(1 + 2^{−k})}\) corresponding to those \(\displaystyle{ k}\) for which the factor \(\displaystyle{ 1 + 2^{−k}}\) was included in the product \(\displaystyle{ P}\), \(\displaystyle{ \log(x)}\) may be computed by simple addition, using a table of \(\displaystyle{ \log(1 + 2^{−k})}\) for all \(\displaystyle{ k}\). Any base may be used for the logarithm table.
https://math.stackexchange.com/question ... ber-in-1-2

ODPOWIEDZ