Teaduslik kalkulaator: astmed, juured ja trigonomeetria
Veebipõhine teaduslik kalkulaator astmete, juurte, logaritmide ja naturaallogaritmi (ln), siinuse, koosinuse ja tangensi arvutamiseks kraadides või radiaanides, samuti faktoriaalide, protsentide ja mälu kasutamiseks.
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.
Dokumentatsioon
Teaduslik kalkulaator
Teaduslik kalkulaator arvutab kirjaliku matemaatilise avaldise väärtuse. See kalkulaator mõistab astmeid, juuri, logaritme, trigonomeetrilisi funktsioone, faktoriaale ja protsente, rakendab tehete tavapärast järjekorda ning annab ühe vastuse.
Mida kalkulaator teeb
Avaldis sisestatakse avaldise kasti või koostatakse klahvistiku abil. Kalkulaator loeb avaldise kohe pärast selle muutumist, seega pole vastuse nägemiseks võrdusmärgiklahvi vaja. Klahv = lisab arvutuse hoopis ajalukku.
See aktsepteerib:
- numbreid, kümnendpunkti ja eksponendikujulisi arve, näiteks
1.5e-3; - tehtemärke
+,-,*,/ja^(aste) ning sulge; - konstante
pijae; - funktsioone
sin,cos,tan,asin,acos,atan,log,ln,sqrtjacbrt; - järelliitemärke
!(faktoriaal) ja%(protsent).
Klahvistiku sümbolid teisendatakse nende lihtsateks vasteteks, seega tähendavad ×, ÷, − ja π sama mis *, /, - ja pi.
log on alusega 10 logaritm ja ln on naturaallogaritm alusel e. Sellist märgistust kasutatakse TI ja Casio teaduslikel kalkulaatoritel ning samu nimetusi kasutatakse NISTi matemaatiliste funktsioonide digitaalkogus jaotises 4,2.
Tehete järjekord
Avaldise tähenduse määrab tehete järjekord. See kalkulaator kasutab alltoodud grammatikat. Iga rida kutsub välja enda all oleva rea, seega moodustavad need prioriteeditabeli: viimane rida seob kõige tugevamalt ja arvutatakse esimesena.
1expression := term (('+' | '-') term)*
2term := unary (('*' | '/' | juxtaposition) unary)*
3unary := ('-' | '+') unary | power
4power := postfix ('^' unary)?
5postfix := primary ('!' | '%')*
6primary := number | constant | name '(' expression ')' | '(' expression ')'
7Loendina, esimesena arvutatavast viimasena arvutatavani:
- kõik sulgudes olevad avaldised ja sulgudele rakendatav funktsioon;
!ja%;^;- alguses olev
-- või+-märk; *,/ja kaks kõrvuti kirjutatud elementi;+ja-.
Selle tulemusel saadud kokkulepped vastavad standardile ISO 80000-2:2019 ja Vikipeedia artiklile „Tehete järjekord“:
| Kirjutatu | Tähendus | Väärtus |
|---|---|---|
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 |
Kaks kõrvuti kirjutatud arvu või nime korrutatakse, mistõttu töötavad 2pi, 2(3+4) ja 3sin(30). See varjatud korrutamine on sama prioriteediga mis * ja /, seega loetakse kõrvutiolek ja jagamine vasakult paremale. Paljud käeshoitavad teaduslikud kalkulaatorid seovad kõrvutiolekut jagamisest tugevamalt ja loevad 1/2pi kujul 1/(2*pi), mille vastus on teistsugune. Vikipeedia kirjeldab seda erinevust artiklis „Kalkulaatorisse sisestamise meetodid“. Sulud lahendavad kõik juhud, kus erinevus on oluline.
% jagab selle esinemiskohas 100-ga. Seega on 20% võrdne 0,2-ga ja 200*15% võrdne 30-ga. See ei ole poe kassa klahv „protsent jooksvast summast“ ega jäägi leidmise tehtemärk.
Lahendatud näide
Avaldis sin(30)+2^3*ln(4) arvutatakse kraadirežiimis järgmises järjekorras:
sin(30)on 0,5, sest 30 kraadi on pool täisnurgast ja selle siinus on üks pool.2^3on 8. Astendamine toimub enne korrutamist.ln(4)on 1,38629436112.8 * 1.38629436112on 11,090354889.0.5 + 11.090354889on 11,590354889.
Kalkulaator näitab väärtust 11,590354889.
Teine näide näitab vasakult paremale reeglit. Avaldises 6/2(1+2) arvutatakse sulgudes olev esmalt, saades 6/2*3. Jagamisel ja varjatud korrutamisel on sama prioriteet, seega tehakse jagamine esimesena: 6/2 on 3 ja 3*3 on 9.
Kraadid ja radiaanid
Nurgaühiku säte määrab, kuidas sin, cos ja tan oma sisendit tõlgendavad ning millise ühiku tagastavad asin, acos ja atan. Kraadirežiimis on täispööre 360 kraadi. Radiaanirežiimis on täispööre 2pi ehk ligikaudu 6,28318530718. Sama avaldis võib anda kahes režiimis väga erineva vastuse: sin(30) on kraadirežiimis 0,5 ja radiaanirežiimis -0,988031624093.
Kuidas arve salvestatakse ja kuvatakse
Iga väärtus on IEEE 754 binaarne 64-bitine double-tüüpi arv, mida kirjeldatakse ECMA-262 ECMAScripti keele spetsifikatsiooni jaotises 6,1.6,1. Double mahutab ligikaudu 15 kuni 17 kümnendkohta. Vastus ümardatakse ainult ekraani jaoks üks kord 12 tüvenumbrini. Väärtused alla 0,000001 või alates 1 000 000 000 000 kuvatakse eksponendikujul, seega kuvatakse 0.0000001 kujul 1E-7.
Salvestatud arv säilitab täieliku täpsuse. Mälu salvestab täpse tulemuse, mitte ekraanil kuvatavat 12 numbrit, ning MR kleebib tagasi lühima teksti, mis tähistab sama arvu. Negatiivne mälus olev väärtus kleebitakse sulgudes, nii et pärast 2-ga korrutamist tõlgendatakse seda korrutamisena, mitte lahutamisena.
Ümardamist ei kasutata kunagi otsuste tegemiseks. Varasemast aritmeetikast jäänud imeväike jääk on tegelik arv ja seda käsitletakse sellisena. 0.1*3-0.3 ei ole binaarkujul null, vaid ligikaudu 5,55111512313E-17, mistõttu 5/(0.1*3-0.3) annab nulliga jagamise teate asemel 9,00719925474E16.
Samal põhjusel näitab sin(180) kraadirežiimis 1,22464679915E-16, mitte 0. Viga on ligikaudu üks kümne tuhande miljardi miljardi kohta ja jääb nii väikeseks. Puutuja on erand ning seda käsitletakse allpool.
Mida kalkulaator ei aktsepteeri
Kalkulaator näitab vastuse asemel teadet, kui:
- nimetaja on täpselt null, kaasa arvatud double-tüüpi arvu jaoks liiga väike sisestatud arv, näiteks
1e-400, mis on lugemisel juba null; sqrt-ile antakse negatiivne arv;log-ile võiln-ile antakse arv, mis ei ole suurem kui null;asin-ile võiacos-ile antakse arv väljaspool vahemikku -1 kuni 1, mis on NISTi DLMFi jaotises 4,14 määratud määramispiirkond;tan-i kasutatakse 90 kraadi juures või selle mis tahes paaritu kordse juures, kus sellel väärtust ei ole;- faktoriaali küsitakse milleltki muult kui täisarvult vahemikus 0 kuni 170;
- arvus on teine kümnendpunkt, nagu
1.2.3; - avaldis on pikem kui 512 märki.
Piir 170 tuleneb arvu tüübist, mitte eelistusest: 170 faktoriaal on ligikaudu 7,25741561531E306, mis mahub veel double-tüüpi arvusse, kuid 171 faktoriaal enam mitte. 512 märgi piirangut kontrollitakse koodis, sest avaldise pikkus määrab, kui palju tööd kalkulaator teeb.
Puutuja kontrollimisel ümardatakse nurk enne testimist 9 kümnendkohani. See viib varasemast aritmeetikast pärineva nihke tagasi täpsele asümptoodile, kuid toob kummalegi poole umbes 5e-10 kraadi laiuse keeldumisvahemiku. tan(89.9999999994) annab tulemuse 95 493 592 025, kuid tan(89.9999999995) lükatakse tagasi. Radiaanirežiimis sellist kontrolli ei tehta, sest tüübitud radiaani väärtus pii poole lähedal on lihtsalt teine arv, millel pole eristaatust.
Korduma kippuvad küsimused
Mida teeb siin klahv %?
See jagab igas esinemiskohas 100-ga. 100+10% on 100,1, sest see tähendab 100 pluss 0,1. See ei arvuta protsenti kõigest, mis oli enne seda.
Kas 2^3^2 on 64 või 512?
512. Astmed rühmituvad paremalt, seega tähendab see 2^(3^2), mis on 2^9. See järgib standardit ISO 80000-2:2019.
Miks on 6/2(1+2) 9, mitte 1?
Varjatud korrutamisel on jagamisega sama prioriteet ja võrdse prioriteediga tehted loetakse vasakult paremale. Kalkulaatorid, mis seovad kõrvutiolekut tugevamalt, annavad vastuseks 1. Sulud kõrvaldavad ebaselguse.
Miks ei näita sin(180) 0?
Sest 180 kraadi teisendatakse kõigepealt radiaanideks ja arvu pi ei saa binaarkujul täpselt kirjutada. Vastus on ligikaudu 1.2e-16, mis on masina tegelikult kasutatud arvu siinuse tõeline väärtus.
Mis vahe on logil ja ln-il?
log on alusel 10, seega on log(1000) võrdne 3-ga. ln on alusel e, seega on ln(e) võrdne 1-ga. Klahvistiku tähised järgivad TI ja Casio teaduslike kalkulaatorite puhul kasutatavat sama tava.
Miks lükatakse 170-st suurem faktoriaal tagasi? 171 faktoriaal on suurem kui ükskõik milline arv, mida double mahutab, seega oleks vastus arvu asemel lõpmatus. Kalkulaator annab sellest teada, mitte ei näita sisutühja tulemust.
Allikad
- IEEE 754-2019, IEEE ujukomaaritmeetika standard.
- ECMA-262, ECMAScripti keele spetsifikatsioon, jaotis 6.1.6.1 „Arvu tüüp“.
- ISO 80000-2:2019, suurused ja ühikud, osa 2: matemaatilised märgid ja sümbolid.
- NISTi matemaatiliste funktsioonide digitaalkogu, jaotised 4,2 ja 4,14.
- Vikipeedia, „Tehete järjekord“.
- Vikipeedia, „Kalkulaatorisse sisestamise meetodid“.