• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak komputer liczy pierwiastek?

Object Storage Arubacloud
+5 głosów
3,841 wizyt
pytanie zadane 20 października 2015 w Offtop przez emSon Stary wyjadacz (10,480 p.)
przywrócone 1 grudnia 2015 przez emSon
W szkole uczą ,że pierwiastki liczy się.. no właśnie, niewiadomo. Po prostu każdy wie, że pierwiastek z 81 to 9, a ze 100 to 10. Człowiek szuka liczby, która po pomnożeniu przez siebie da równowartość liczby zapisanej w pierwiastku. A jak robi to komputer?

W C++ jest funkcja w bibliotece math.h, sqrt. Wysyłamy do niej liczbe double, a ona zwraca nam jej pierwiastek. Jak ona ten pierwiastek liczy?

4 odpowiedzi

+8 głosów
odpowiedź 20 października 2015 przez Patrycjerz Mędrzec (192,320 p.)
+3 głosów
odpowiedź 20 października 2015 przez furas Maniak (53,800 p.)

Można liczyć z Szeregu Taylora

http://www.matematyka.pl/303369.htm

Wzór jest tez wspomniany w Wikipedii 

https://pl.wikipedia.org/wiki/Pierwiastek_kwadratowy

+3 głosów
odpowiedź 1 grudnia 2015 przez Schizohatter Nałogowiec (39,600 p.)
Mnie bardziej ciekawi w jaki sposób liczy pierwiastek dowolnego stopnia z dowolnej liczby... Np. pierwiastek stopnia 2.05 z liczby 1.99.

Jasne, że można tę wartość przybliżyć korzystając z metod wykorzystujących różniczki, ale czy na pewno tę metodę zastosuje procesor?

Hej, przecież to napisali programiści przy współpracy z matematykami!

W teorii: https://pl.wikipedia.org/wiki/Algorytm_obliczania_pierwiastka_n-tego_stopnia jednak nadal potem trafiamy na problemy typu niecałkowite potęgi, które prowadzą nas znowu do niepełnych pierwiastków. Ale jakby to ziterować z odpowiednim limitem, to pewnie coś się uda wyliczyć.
komentarz 1 grudnia 2015 przez draghan VIP (106,230 p.)

Ta teoria świetnie sprawdza się w praktyce. Miałem takie fajne rzeczy na przedmiocie, zwanym "metody numeryczne". Sam przytoczyłeś link z rozwiązaniem - my na zajęciach robiliśmy to kalkulatorem, metodą Newtona-Raphsona, z wykorzystaniem macierzy.

Ale jakby to ziterować z odpowiednim limitem, to pewnie coś się uda wyliczyć.

No i tutaj tkwi sedno - należy mieć świadomość, jak dokładny wynik nas interesuje. Jeśli robisz to ręcznie, to widzisz ile miejsc po przecinku masz i które z nich są jeszcze "niestabilne".
Jeśli piszesz algorytm dla komputera, zakładasz sobie pewien mały epsilon i obliczasz błąd względny. Kiedy błąd względny < epsilon, kończysz algorytm.

komentarz 1 grudnia 2015 przez Schizohatter Nałogowiec (39,600 p.)
Jak wyliczysz błąd względny, nie mając wartości odniesienia? ;) Na dokładność będzie inny wzór - wynikający ze wzoru obliczającego i zależny od ilości wykonanych iteracji. Prawdopodobnie dokładność wyznaczono doświadczalnie.

My na metodach numerycznych używamy MathCada.

Ew. wartość odniesienia do wyliczenia błędu można wyliczyć poprzez odwrócenie wzoru i porównanie tego z wartością początkową, ale wątpię, żeby to miało zastosowanie, miało sens i w ogóle było miarodajne.
komentarz 1 grudnia 2015 przez draghan VIP (106,230 p.)

Jak wyliczysz błąd względny, nie mając wartości odniesienia?

Przyjmując za wartość rzeczywistą wartość obliczoną w aktualnej (n) iteracji, zaś za wartość przybliżoną wartość iteracji n-1.

wartość odniesienia do wyliczenia błędu można wyliczyć poprzez odwrócenie wzoru i porównanie tego z wartością początkową

Wartość początkowa to zawsze jest bzdura, nie mogę załapać o co Ci tutaj chodzi.

A co do prowadzenia zajęć, to sam prowadzący przyznał, że powinny to być laborki przy oprogramowaniu matematycznym lub ewentualnie jakimś IDE, ale cóż... Wydział oszczędza, ćwiczenia rachunkowe są tańsze.

komentarz 1 grudnia 2015 przez Schizohatter Nałogowiec (39,600 p.)
Wartość początkowa przed jakiejkolwiek iteracją. Wartość, którą chcemy policzyć. No ale tak, to ma sens z tym błędem względnym.

Podobne pytania

+2 głosów
2 odpowiedzi 300 wizyt
pytanie zadane 22 października 2015 w Offtop przez niezalogowany
0 głosów
2 odpowiedzi 187 wizyt
pytanie zadane 2 lipca 2016 w C# przez matilogias Obywatel (1,550 p.)
–2 głosów
4 odpowiedzi 978 wizyt
pytanie zadane 12 marca 2016 w C i C++ przez RaveN Nowicjusz (120 p.)

92,566 zapytań

141,420 odpowiedzi

319,613 komentarzy

61,952 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...