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

Jak komputer liczy pierwiastek?

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+5 głosów
4,188 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 400 wizyt
pytanie zadane 22 października 2015 w Offtop przez niezalogowany
0 głosów
2 odpowiedzi 226 wizyt
pytanie zadane 2 lipca 2016 w C# przez matilogias Obywatel (1,550 p.)
–2 głosów
4 odpowiedzi 1,175 wizyt
pytanie zadane 12 marca 2016 w C i C++ przez RaveN Nowicjusz (120 p.)

93,173 zapytań

142,185 odpowiedzi

321,968 komentarzy

62,502 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1157p. - dia-Chann
  2. 1139p. - Łukasz Piwowar
  3. 1131p. - CC PL
  4. 1126p. - Łukasz Eckert
  5. 1118p. - Tomasz Bielak
  6. 1104p. - Michal Drewniak
  7. 1083p. - Marcin Putra
  8. 1078p. - rucin93
  9. 1071p. - rafalszastok
  10. 1054p. - Adrian Wieprzkowicz
  11. 1047p. - Piotr Aleksandrowicz
  12. 1037p. - Michał Telesz
  13. 1023p. - Mariusz Fornal
  14. 1017p. - Mikbac
  15. 1005p. - ssynowiec
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...