Tudományos számológép: hatványok, gyökök, logaritmus
Online tudományos számológép hatványokkal, gyökvonással, logaritmus- és ln-függvényekkel, fokban vagy radiánban számolt szinusz-, koszinusz- és tangensértékekkel, faktoriálissal, százalék- és memóriaszámítással.
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.
Dokumentáció
Tudományos számológép
A tudományos számológép kiszámítja egy leírt matematikai kifejezés értékét. Ez a számológép hatványokat, gyököket, logaritmusokat, trigonometriai függvényeket, faktoriálisokat és százalékokat értelmez, a műveletek szokásos sorrendjét alkalmazza, és egy eredményt ad meg.
Mire képes a kalkulátor
A kifejezést a Kifejezés mezőbe lehet beírni, vagy a billentyűzettel lehet felépíteni. A számológép azonnal értelmezi, amikor a kifejezés megváltozik, így az eredmény megtekintéséhez nincs szükség egyenlőségjelre. A = billentyű ehelyett felveszi a számítást az előzmények listájára.
A következőket fogadja el:
- számjegyeket, tizedespontot és exponenciális alakban megadott számokat, például
1.5e-3; - a
+,-,*,/és^(hatványozás) operátorokat, valamint a zárójeleket; - a
piésekonstansokat; - a
sin,cos,tan,asin,acos,atan,log,ln,sqrtéscbrtfüggvényeket; - a postfix jeleket:
!(faktoriális) és%(százalék).
A billentyűzet jeleit a megfelelő egyszerű alakra fordítja, ezért a ×, ÷, − és π jelentése megegyezik a *, /, - és pi jelentésével.
A log alapja 10, a ln pedig természetes, e alapú logaritmus. Ezt a jelölést használják a TI és Casio tudományos számológépei, valamint a NIST Digital Library of Mathematical Functions 4,2 szakasza.
A műveletek sorrendje
A műveletek sorrendje határozza meg, mit jelent egy kifejezés. Ez a számológép az alábbi nyelvtant használja. Minden sor az alatta lévő sort hívja meg, ezért a beágyazás adja a precedenciatáblát: az utolsó sor köt a legerősebben, és azt számítja ki először.
1expression := term (('+' | '-') term)*
2term := unary (('*' | '/' | juxtaposition) unary)*
3unary := ('-' | '+') unary | power
4power := postfix ('^' unary)?
5postfix := primary ('!' | '%')*
6primary := number | constant | name '(' expression ')' | '(' expression ')'
7Listaként, az elsőként kiszámított művelettől az utolsóig:
- minden, ami zárójelben van, valamint a zárójelre alkalmazott függvény;
!és%;^;- kezdő
-vagy+előjel; *,/és két egymás mellé írt elem;+és-.
Az így létrejövő konvenciók megfelelnek az ISO 80000-2:2019 szabványnak és a Wikipédián található „A műveletek sorrendje” című szócikknek:
| Leírás | Jelentése | Érték |
|---|---|---|
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 |
Két egymás mellé írt számot vagy nevet összeszoroz, ezért működik a 2pi, a 2(3+4) és a 3sin(30). Ez a rejtett szorzás a * és a / művelettel azonos rangú, ezért a melléírást és az osztást balról jobbra kell értelmezni. Sok kézi tudományos számológép az egymás mellé írást az osztásnál szorosabban köti, és a 1/2pi kifejezést 1/(2*pi) alakban értelmezi, ami más eredményt ad. A Wikipédia „Számológépes beviteli módok” című szócikke ismerteti ezt az eltérést. A zárójelek egyértelművé teszik az olyan eseteket, amikor a különbség számít.
A % mindenhol 100-zal oszt. Így a 20% értéke 0,2, a 200*15% értéke pedig 30. Ez nem a pénztárgépek „futó végösszeg százaléka” billentyűje, és nem maradékosztás-operátor.
Számítási példa
A sin(30)+2^3*ln(4) kifejezést Fok móduszban a következő sorrendben számítja ki:
- A
sin(30)értéke 0,5, mert 30 fok egy derékszög fele, és a szinusza egyketted. - A
2^3értéke 8. A hatványozást a szorzás előtt kell elvégezni. - A
ln(4)értéke 1,38629436112. - A
8 * 1.38629436112értéke 11,090354889. - A
0.5 + 11.090354889értéke 11,590354889.
A számológép ezt mutatja: 11,590354889.
Egy második példa a balról jobbra szabályt szemlélteti. A 6/2(1+2) kifejezésben először a zárójelet számítja ki, így 6/2*3 marad. Az osztás és a rejtett szorzás azonos rangú, ezért először az osztás következik: 6/2 értéke 3, a 3*3 értéke pedig 9.
Fokok és radiánok
A Szög mértékegysége beállítás határozza meg, hogyan értelmezi a sin, cos és tan a bemenetet, valamint milyen mértékegységben adja vissza az eredményt az asin, acos és atan. Fok módban egy teljes fordulat 360 fok. Radián módban egy teljes fordulat 2pi, vagyis körülbelül 6,28318530718. Ugyanaz a kifejezés a két módban nagyon eltérő eredményt adhat: a sin(30) értéke Fok módban 0,5, Radián módban pedig -0,988031624093.
A számok tárolása és megjelenítése
Minden érték IEEE 754 binary64, azaz kettős pontosságú lebegőpontos szám, amelyet az ECMA-262 ECMAScript nyelvi specifikáció 6,1.6,1 szakasza ír le. Egy double körülbelül 15–17 tizedesjegyet tárol. A képernyőn megjelenő eredményt egyszer, csak a megjelenítéshez, 12 értékes jegyre kerekíti. A 0,000001 alatti vagy a 1 000 000 000 000 értéknél nem kisebb számokat exponenciális alakban jeleníti meg, ezért a 0.0000001 így olvasható: 1E-7.
A tárolt szám teljes pontosságban megmarad. A memória a pontos eredményt tárolja, nem a képernyőn látható 12 számjegyet, az MR pedig visszailleszti az ezt a számot jelentő legrövidebb szöveget. A negatív memóriatartalmat zárójelben illeszti be, így egy 2 után visszahívva szorzásként, nem kivonásként értelmeződik.
A kerekítést soha nem használja döntések meghozatalára. A korábbi számításokból visszamaradó parányi érték valódi szám, és akként kezeli. A 0.1*3-0.3 binárisan nem nulla; értéke körülbelül 5,55111512313E-17, ezért a 5/(0.1*3-0.3) eredménye 9,00719925474E16, nem pedig nullával való osztási üzenet.
Ugyanezen okból a sin(180) Fok módban 1,22464679915E-16 értéket mutat, nem 0-t. A hiba körülbelül egy tízezermilliárd milliárdod rész, és ilyen kicsi is marad. A tangens kivétel; ezt alább ismertetjük.
Amit a kalkulátor elutasít
A számológép eredmény helyett üzenetet jelenít meg, ha:
- a nevező pontosan nulla, beleértve a double számára túl kicsi beírt számot is, például a
1e-400értéket, amely beolvasáskor már nulla; - a
sqrtfüggvény negatív számot kap; - a
logvagy alnolyan számot kap, amely nem nagyobb nullánál; - az
asinvagy azacosa -1 és 1 közötti tartományon kívüli számot kap, amelyet a NIST DLMF 4,14 szakasza ad meg; - a
tanfüggvényt 90 foknál vagy annak bármely páratlan többszörösénél használják, ahol nincs értéke; - faktoriálist kérnek nem egész számra, illetve a 0–170 tartományon kívüli egész számra;
- egy szám második tizedespontot tartalmaz, például
1.2.3; - a kifejezés hosszabb 512 karakternél.
A 170-es korlát a számtípus tulajdonsága, nem önkényes beállítás: a 170 faktoriális körülbelül 7,25741561531E306, ami még belefér egy double értéktartományába, a 171 faktoriális viszont már nem. A 512 karakteres korlátot a kód ellenőrzi, mert a kifejezés hossza határozza meg, mennyi munkát végez a számológép.
A tangens ellenőrzése előtt a szöget 9 tizedesjegyre kerekíti. Így a korábbi számítások eltérését visszavezeti a pontos aszimptotára, cserébe mindkét oldalon körülbelül 5e-10 fok széles elutasítási tartomány alakul ki. A tan(89.9999999994) értéke 95 493 592 025, a tan(89.9999999995) értéket viszont elutasítja. Radián módban nincs ilyen ellenőrzés, mert a π felének közelében beírt radiánérték csak egy szám, amelynek nincs különleges státusza.
Gyakran ismételt kérdések
Mit csinál itt a % billentyű?
Mindenhol 100-zal oszt, ahol megjelenik. A 100+10% értéke 100,1, mert jelentése 100 plusz 0,1. Nem az előtte álló érték százalékát számítja ki.
A 2^3^2 értéke 64 vagy 512?
512. A hatványok jobbról csoportosulnak, ezért a kifejezés jelentése 2^(3^2), ami 2^9. Ez megfelel az ISO 80000-2:2019 szabványnak.
Miért 6/2(1+2) értéke 9, nem pedig 1?
A rejtett szorzás az osztással azonos rangú, az azonos rangú műveleteket pedig balról jobbra kell értelmezni. Azok a számológépek, amelyek az egymás mellé írást szorosabban kötik, 1 eredményt adnak. A zárójelek megszüntetik a bizonytalanságot.
Miért nem 0 jelenik meg a sin(180) eredményeként?
Mert a 180 fokot először radiánra váltja, a pi pedig binárisan nem írható le pontosan. Az eredmény körülbelül 1.2e-16, ami a gép által ténylegesen használt szám szinuszának valódi értéke.
Mi a különbség a log és az ln között?
A log alapja 10, ezért a log(1000) értéke 3. Az ln alapja e, ezért a ln(e) értéke 1. A billentyűzet jelölései ugyanazt a konvenciót követik, mint a TI és Casio tudományos számológépei.
Miért utasítja el a 170 feletti faktoriálist? A 171 faktoriális nagyobb bármely, double típusban tárolható számnál, ezért az eredmény szám helyett végtelen lenne. A számológép ezt közli, ahelyett hogy értelmetlen eredményt jelenítene meg.
Források
- IEEE 754-2019, IEEE-szabvány a lebegőpontos aritmetikához.
- ECMA-262, ECMAScript nyelvi specifikáció, 6.1.6.1 szakasz, „A Number típus”.
- ISO 80000-2:2019, Mennyiségek és mértékegységek, 2. rész: Matematikai jelek és szimbólumok.
- NIST Digital Library of Mathematical Functions, 4,2 és 4,14 szakasz.
- Wikipédia, „A műveletek sorrendje”.
- Wikipédia, „Számológépes beviteli módok”.