Kalkulator naukowy: potęgi, pierwiastki, logarytmy
Internetowy kalkulator naukowy z potęgami, pierwiastkami, logarytmami i ln, sinusem, cosinusem oraz tangensem w stopniach lub radianach, silnią, procentami i pamięcią.
Scientific Calculator
Evaluates a typed or tapped expression with the usual order of operations, including powers, roots, logarithms, trigonometry and factorials.
Keypad
How this calculator reads an expression
History
No calculations yet. Press = to add one.
Dokumentacja
Kalkulator naukowy
Kalkulator naukowy oblicza wartość zapisanego wyrażenia matematycznego. Ten kalkulator obsługuje potęgi, pierwiastki, logarytmy, funkcje trygonometryczne, silnie i wartości procentowe, stosuje standardową kolejność wykonywania działań i podaje jeden wynik.
Działanie kalkulatora
Wyrażenie wpisuje się w polu Wyrażenie albo buduje za pomocą klawiatury. Kalkulator odczytuje je natychmiast po każdej zmianie, więc do wyświetlenia wyniku nie jest potrzebny klawisz równości. Klawisz = dodaje obliczenie do listy historii.
Obsługuje:
- cyfry, kropkę dziesiętną oraz liczby w postaci wykładniczej, takie jak
1.5e-3; - operatory
+,-,*,/i^(potęgowanie), a także nawiasy; - stałe
piie; - funkcje
sin,cos,tan,asin,acos,atan,log,ln,sqrticbrt; - znaki przyrostkowe
!(silnia) i%(procent).
Symbole klawiatury są tłumaczone na zwykłe odpowiedniki, więc ×, ÷, − i π oznaczają to samo co *, /, - i pi.
log to logarytm o podstawie 10, a ln to logarytm naturalny o podstawie e. Takie oznaczenia są używane na kalkulatorach naukowych TI i Casio oraz w bibliotece NIST Digital Library of Mathematical Functions, w sekcji 4,2.
Kolejność wykonywania działań
Regułą określającą znaczenie wyrażenia jest kolejność wykonywania działań. Ten kalkulator korzysta z poniższej gramatyki. Każdy wiersz odwołuje się do wiersza znajdującego się pod nim, dlatego zagnieżdżenie wyznacza tabelę pierwszeństwa: ostatni wiersz wiąże najsilniej i jest obliczany jako pierwszy.
1expression := term (('+' | '-') term)*
2term := unary (('*' | '/' | juxtaposition) unary)*
3unary := ('-' | '+') unary | power
4power := postfix ('^' unary)?
5postfix := primary ('!' | '%')*
6primary := number | constant | name '(' expression ')' | '(' expression ')'
7W postaci listy, od działań wykonywanych najpierw do wykonywanych na końcu:
- wszystko, co znajduje się w nawiasach, oraz funkcja zastosowana do nawiasów;
!i%;^;- początkowy znak
-lub+; *,/oraz dwa elementy zapisane obok siebie;+i-.
Wynikające z tego zasady są zgodne z normą ISO 80000-2:2019 oraz artykułem „Order of operations” w Wikipedii:
| Zapis | Odczytywane jako | Wartość |
|---|---|---|
2^3^2 | 2^(3^2) | 512 |
-2^2 | -(2^2) | -4 |
2^-2 | 2^(-2) | 0,25 |
2^3! | 2^(3!) | 64 |
100+10% | 100 + (10/100) | 100,1 |
1/2pi | (1/2) * pi | 1,57079632679 |
6/2(1+2) | (6/2) * (1+2) | 9 |
Dwie liczby lub nazwy zapisane obok siebie są mnożone, dzięki czemu działają wyrażenia 2pi, 2(3+4) i 3sin(30). To pominięte mnożenie ma taki sam priorytet jak * i /, więc zestawienie elementów i dzielenie są odczytywane od lewej do prawej. Wiele ręcznych kalkulatorów naukowych nadaje zestawieniu elementów wyższy priorytet niż dzieleniu i odczytuje 1/2pi jako 1/(2*pi), co daje inny wynik. Wikipedia opisuje ten podział w artykule „Calculator input methods”. Nawiasy rozstrzygają każdy przypadek, w którym różnica ma znaczenie.
% oznacza dzielenie przez 100 niezależnie od miejsca wystąpienia. Zatem 20% to 0,2, a 200*15% to 30. Nie jest to klawisz „procent od bieżącej sumy” stosowany w kasach sklepowych ani operator reszty z dzielenia.
Przykład obliczeniowy
Wyrażenie sin(30)+2^3*ln(4) w trybie stopni oblicza się w następującej kolejności:
sin(30)wynosi 0,5, ponieważ 30 stopni to połowa kąta prostego, a jego sinus wynosi jedną drugą.2^3wynosi 8. Potęgowanie wykonuje się przed mnożeniem.ln(4)wynosi 1,38629436112.8 * 1.38629436112wynosi 11,090354889.0.5 + 11.090354889wynosi 11,590354889.
Kalkulator wyświetla 11,590354889.
Drugi przykład pokazuje zasadę odczytywania od lewej do prawej. W wyrażeniu 6/2(1+2) najpierw oblicza się nawias, otrzymując 6/2*3. Dzielenie i pominięte mnożenie mają ten sam priorytet, więc najpierw wykonuje się dzielenie: 6/2 wynosi 3, a 3*3 wynosi 9.
Stopnie i radiany
Ustawienie jednostki kąta określa, jak funkcje sin, cos i tan interpretują dane wejściowe oraz jaką jednostkę zwracają funkcje asin, acos i atan. W trybie stopni pełny obrót ma 360 stopni. W trybie radianów pełny obrót ma 2pi, czyli około 6,28318530718. To samo wyrażenie może dawać zupełnie różne wyniki w obu trybach: sin(30) wynosi 0,5 w trybie stopni i -0,988031624093 w trybie radianów.
Sposób przechowywania i wyświetlania liczb
Każda wartość jest liczbą zmiennoprzecinkową IEEE 754 binary64 typu double, opisaną w ECMA-262, w specyfikacji języka ECMAScript, w sekcji 6,1.6,1. Liczba typu double przechowuje około 15 do 17 cyfr dziesiętnych. Wynik jest zaokrąglany tylko raz, na potrzeby ekranu, do 12 cyfr znaczących. Wartości mniejsze niż 0,000001 lub większe bądź równe 1 000 000 000 000 są wyświetlane w postaci wykładniczej, więc 0.0000001 odczytuje się jako 1E-7.
Przechowywana liczba zachowuje pełną precyzję. Pamięć przechowuje dokładny wynik, a nie 12 cyfr widocznych na ekranie, a MR wstawia najkrótszy tekst odczytywany jako ta sama liczba. Ujemna wartość z pamięci jest wstawiana w nawiasach, więc jej przywołanie po 2 oznacza mnożenie, a nie odejmowanie.
Zaokrąglanie nigdy nie służy do podejmowania decyzji. Niewielka pozostałość po wcześniejszych działaniach jest rzeczywistą liczbą i jest tak traktowana. 0.1*3-0.3 nie wynosi zero w systemie binarnym; wynosi około 5,55111512313E-17, dlatego 5/(0.1*3-0.3) daje 9,00719925474E16 zamiast komunikatu o dzieleniu przez zero.
Z tego samego powodu sin(180) w trybie stopni wyświetla 1,22464679915E-16, a nie 0. Błąd wynosi około jednej części na dziesięć biliardów i pozostaje tak mały. Wyjątkiem jest tangens, omówiony poniżej.
Czego kalkulator nie akceptuje
Kalkulator wyświetla komunikat zamiast wyniku, gdy:
- mianownik jest dokładnie równy zero, w tym gdy wpisana liczba jest zbyt mała dla typu double, na przykład
1e-400, która po odczytaniu jest już zerem; - funkcji
sqrtpodano liczbę ujemną; - funkcji
loglublnpodano liczbę, która nie jest większa od zera; - funkcji
asinlubacospodano liczbę spoza zakresu od -1 do 1, określonego w sekcji 4,14 NIST DLMF; - funkcja
tanjest używana dla 90 stopni lub dowolnej nieparzystej wielokrotności tej wartości, gdzie nie ma określonej wartości; - zażądano silni dla wartości innej niż liczba całkowita od 0 do 170;
- liczba zawiera drugą kropkę dziesiętną, jak w
1.2.3; - wyrażenie ma więcej niż 512 znaków.
Limit 170 wynika z właściwości typu liczbowego, a nie z preferencji: silnia z 170 wynosi około 7,25741561531E306, więc nadal mieści się w typie double, natomiast silnia z 171 już nie. Limit 512 znaków jest sprawdzany w kodzie, ponieważ długość wyrażenia decyduje o ilości pracy wykonywanej przez kalkulator.
Podczas sprawdzania tangensa kąt jest zaokrąglany do 9 miejsc po przecinku. W ten sposób odchylenie wynikające z wcześniejszych działań zostaje sprowadzone do dokładnej asymptoty, kosztem okna odmowy o szerokości około 5e-10 stopnia po każdej stronie. tan(89.9999999994) zwraca 95 493 592 025, a tan(89.9999999995) zostaje odrzucone. W trybie radianów takie sprawdzanie nie jest wykonywane, ponieważ wpisana wartość w radianach bliska połowie liczby pi jest po prostu kolejną liczbą, bez specjalnego statusu.
Często zadawane pytania
Co robi tutaj klawisz %?
Dzieli przez 100 niezależnie od miejsca wystąpienia. 100+10% wynosi 100,1, ponieważ oznacza 100 plus 0,1. Nie oblicza procentu od wartości znajdującej się przed nim.
Czy 2^3^2 oznacza 64 czy 512?
512. Potęgowanie grupuje się od prawej strony, więc wyrażenie oznacza 2^(3^2), czyli 2^9. Jest to zgodne z normą ISO 80000-2:2019.
Dlaczego 6/2(1+2) daje 9, a nie 1?
Pominięte mnożenie ma taki sam priorytet jak dzielenie, a działania o równym priorytecie odczytuje się od lewej do prawej. Kalkulatory, które nadają zestawieniu elementów wyższy priorytet, dają wynik 1. Nawiasy usuwają wątpliwość.
Dlaczego sin(180) nie wyświetla 0?
Ponieważ 180 stopni jest najpierw przeliczane na radiany, a liczby pi nie da się dokładnie zapisać w systemie binarnym. Wynik wynosi około 1.2e-16, co jest rzeczywistą wartością sinusa liczby użytej przez komputer.
Jaka jest różnica między log i ln?
log ma podstawę 10, więc log(1000) wynosi 3. ln ma podstawę e, więc ln(e) wynosi 1. Oznaczenia na klawiaturze są zgodne z tą samą konwencją co na kalkulatorach naukowych TI i Casio.
Dlaczego odrzucana jest silnia większa niż 170? Silnia z 171 jest większa od każdej liczby, jaką może przechować typ double, więc wynikiem byłaby nieskończoność, a nie liczba. Kalkulator informuje o tym zamiast wyświetlać pozbawiony znaczenia wynik.
Źródła
- IEEE 754-2019, norma IEEE dotycząca arytmetyki zmiennoprzecinkowej.
- ECMA-262, specyfikacja języka ECMAScript, sekcja 6.1.6.1, „The Number Type”.
- ISO 80000-2:2019, Wielkości i jednostki, część 2: Znaki i symbole matematyczne.
- NIST Digital Library of Mathematical Functions, sekcje 4,2 i 4,14.
- Wikipedia, „Order of operations”.
- Wikipedia, „Calculator input methods”.