Tieteellinen laskin: potenssit, juuret ja trigonometria
Verkossa toimiva tieteellinen laskin potensseille, juurille, logaritmeille ja luonnolliselle logaritmille (ln) sekä sinille, kosinille ja tangentille asteina tai radiaaneina. Mukana myös kertoma-, prosentti- ja muistitoiminnot.
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.
Dokumentaatio
Tieteellinen laskin
Tieteislaskin laskee kirjoitetun matemaattisen lausekkeen arvon. Tämä laskin tunnistaa potenssit, juuret, logaritmit, trigonometriset funktiot, kertomat ja prosentit, noudattaa laskutoimitusten tavanomaista suoritusjärjestystä ja antaa yhden vastauksen.
Mitä laskin tekee
Lauseke kirjoitetaan Lauseke-ruutuun tai muodostetaan näppäimistöllä. Laskin lukee lausekkeen heti sen muuttuessa, joten vastauksen näkemiseen ei tarvita yhtäsuuruusmerkkinäppäintä. Näppäin = lisää laskutoimituksen sen sijaan historiatietojen luetteloon.
Se hyväksyy:
- numerot, desimaalipisteen ja eksponenttimuodossa esitetyt luvut, kuten
1.5e-3; - operaattorit
+,-,*,/ja^(potenssi) sekä sulkeet; - vakiot
pijae; - funktiot
sin,cos,tan,asin,acos,atan,log,ln,sqrtjacbrt; - jälkiliitteiset merkit
!(kertoma) ja%(prosentti).
Näppäimistön merkit muutetaan niitä vastaaviksi tavallisiksi merkeiksi, joten ×, ÷, − ja π tarkoittavat samaa kuin *, /, - ja pi.
log on kymmenkantainen logaritmi, jonka kantaluku on 10, ja ln on luonnollinen logaritmi, jonka kantaluku on e. Tätä merkintätapaa käytetään TI:n ja Casion tieteislaskimissa sekä NIST Digital Library of Mathematical Functions -teoksen kohdassa 4,2.
Laskutoimitusten suoritusjärjestys
Sääntöä, joka määrää lausekkeen merkityksen, kutsutaan laskutoimitusten suoritusjärjestykseksi. Tämä laskin käyttää alla olevaa kielioppia. Kukin rivi kutsuu sen alapuolella olevaa riviä, joten sisäkkäisyys määrittää suoritusjärjestyksen: viimeinen rivi sitoo tiukimmin ja lasketaan ensin.
1expression := term (('+' | '-') term)*
2term := unary (('*' | '/' | juxtaposition) unary)*
3unary := ('-' | '+') unary | power
4power := postfix ('^' unary)?
5postfix := primary ('!' | '%')*
6primary := number | constant | name '(' expression ')' | '(' expression ')'
7Lueteltuna ensin laskettavasta viimeiseksi laskettavaan:
- kaikki sulkeiden sisällä oleva sekä sulkeisiin kohdistettu funktio;
!ja%;^;- alussa oleva merkki
-tai+; *,/sekä kaksi vierekkäin kirjoitettua asiaa;+ja-.
Näin muodostuvat käytännöt vastaavat standardia ISO 80000-2:2019 ja Wikipedian artikkelia ”Laskutoimitusten suoritusjärjestys”:
| Kirjoitettu | Tulkitaan muodossa | Arvo |
|---|---|---|
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 |
Kaksi vierekkäin kirjoitettua lukua tai nimeä kerrotaan keskenään. Tämän ansiosta 2pi, 2(3+4) ja 3sin(30) toimivat. Tämä piilokertolasku on samalla tasolla kuin * ja /, joten vierekkäin kirjoitettu kertolasku ja jakolasku luetaan vasemmalta oikealle. Monissa kädessä pidettävissä tieteislaskimissa vierekkäin kirjoitettu kertolasku sitoo jakolaskua tiukemmin, ja 1/2pi tulkitaan muodossa 1/(2*pi), jolloin vastaus on eri. Wikipedia kuvaa tätä eroa artikkelissa ”Laskimen syöttötavat”. Sulkeet ratkaisevat kaikki tapaukset, joissa erolla on merkitystä.
% jakaa luvulla 100 siinä kohdassa, jossa se esiintyy. Siksi 20% on 0,2 ja 200*15% on 30. Kyseessä ei ole kauppakassan näppäin, joka laskee prosenttiosuuden juoksevasta loppusummasta, eikä jakojäännösoperaattori.
Laskuesimerkki
Lauseke sin(30)+2^3*ln(4) lasketaan aste-tilassa seuraavassa järjestyksessä:
sin(30)on 0,5, koska 30 astetta on puolet suorasta kulmasta ja sen sini on yksi.2^3on 8. Potenssit lasketaan ennen kertolaskua.ln(4)on 1,38629436112.8 * 1.38629436112on 11,090354889.0.5 + 11.090354889on 11,590354889.
Laskin näyttää arvon 11,590354889.
Toinen esimerkki havainnollistaa vasemmalta oikealle -sääntöä. Lausekkeessa 6/2(1+2) sulkeet lasketaan ensin, jolloin saadaan 6/2*3. Jakolasku ja piilokertolasku ovat samalla tasolla, joten jakolasku lasketaan ensin: 6/2 on 3 ja 3*3 on 9.
Asteet ja radiaanit
Kulmayksikköasetus määrää, miten sin, cos ja tan tulkitsevat syötteen sekä minkä yksikön asin, acos ja atan palauttavat. Aste-tilassa täysi kierros on 360 astetta. Radiaani-tilassa täysi kierros on 2pi eli noin 6,28318530718. Sama lauseke voi antaa tiloissa hyvin erilaiset vastaukset: sin(30) on aste-tilassa 0,5 ja radiaani-tilassa -0,988031624093.
Lukujen tallennus ja näyttäminen
Jokainen arvo on IEEE 754-standardin mukainen binary64-tyypin liukuluku, joka on kuvattu ECMA-262-standardin ECMAScript-kielimäärityksen kohdassa 6,1.6,1. Kaksinkertaisen tarkkuuden luku sisältää noin 15–17 desimaalinumeroa. Vastaus pyöristetään näyttöä varten kerran 12 merkitsevään numeroon. Arvot, jotka ovat pienempiä kuin 0,000001 tai vähintään 1 000 000 000 000, näytetään eksponenttimuodossa, joten 0.0000001 näkyy muodossa 1E-7.
Tallennettu luku säilyttää täyden tarkkuuden. Muistiin tallennetaan tarkka tulos, eivät näytöllä näkyvät 12 numeroa, ja MR liittää takaisin lyhimmän tekstin, joka tulkitaan samaksi luvuksi. Negatiivinen muistiarvo liitetään sulkeissa, joten sen palauttaminen luvun 2 jälkeen tulkitaan kertolaskuksi eikä vähennyslaskuksi.
Pyöristystä ei koskaan käytetä minkään asian ratkaisemiseen. Aiemmista laskutoimituksista jäänyt hyvin pieni jäännös on oikea luku, ja sitä käsitellään sellaisena. 0.1*3-0.3 ei ole binäärimuodossa nolla, vaan noin 5,55111512313E-17, joten 5/(0.1*3-0.3) antaa arvon 9,00719925474E16 nollalla jakamista koskevan ilmoituksen sijaan.
Samasta syystä sin(180) näyttää aste-tilassa arvon 1,22464679915E-16 eikä arvoa 0. Virhe on noin yksi kymmenestä biljardista, ja se pysyy näin pienenä. Tangentti on poikkeus, jota käsitellään jäljempänä.
Mitä laskin ei hyväksy
Laskin näyttää vastauksen sijaan ilmoituksen, kun:
- nimittäjä on täsmälleen nolla, mukaan lukien kaksoistarkkuusluvulle liian pieni kirjoitettu luku, kuten
1e-400, joka on jo tulkittaessa nolla; sqrt-funktiolle annetaan negatiivinen luku;log- tailn-funktiolle annetaan luku, joka ei ole suurempi kuin nolla;asin- taiacos-funktiolle annetaan luku alueen -1–1 ulkopuolelta; alue on määritelty NIST DLMF:n kohdassa 4,14;tan-funktiota käytetään 90 asteen kohdalla tai sen millä tahansa parittomalla monikerralla, jolloin sillä ei ole arvoa;- kertomaa pyydetään muulle kuin kokonaisluvulle väliltä 0–170;
- luvussa on toinen desimaalipiste, kuten
1.2.3; - lauseke on pidempi kuin 512 merkkiä.
Raja 170 johtuu lukutyypistä, ei asetuksesta: 170! on noin 7,25741561531E306, joten se mahtuu edelleen kaksoistarkkuuslukuun, mutta 171! ei mahdu. 512 merkin raja tarkistetaan ohjelmakoodissa, koska lausekkeen pituus määrää laskimen tekemän työn määrän.
Tangentin tarkistusta varten kulma pyöristetään 9 desimaalin tarkkuuteen. Näin aiemmissa laskutoimituksissa syntynyt poikkeama palautetaan täsmälleen asymptootille, mutta kummallekin puolelle syntyy noin 5e-10 asteen levyinen hylkäysalue. tan(89.9999999994) palauttaa arvon 95 493 592 025, mutta tan(89.9999999995) hylätään. Radiaani-tilassa tällaista tarkistusta ei tehdä, koska piin puolikkaan lähelle kirjoitettu radiaaniarvo on vain yksi luku muiden joukossa eikä sillä ole erityisasemaa.
Usein kysyttyä
Mitä %-näppäin tekee tässä?
Se jakaa luvulla 100 siinä kohdassa, jossa se esiintyy. 100+10% on 100,1, koska se tarkoittaa 100 plus 0,1. Se ei laske prosenttiosuutta mistään sitä edeltävästä.
Onko 2^3^2 64 vai 512?
512. Potenssit ryhmitellään oikealta, joten lauseke tarkoittaa 2^(3^2), joka on 2^9. Tämä noudattaa standardia ISO 80000-2:2019.
Miksi 6/2(1+2) on 9 eikä 1?
Piilokertolasku on samalla tasolla kuin jakolasku, ja saman tason laskutoimitukset luetaan vasemmalta oikealle. Laskimet, joissa vierekkäin kirjoitettu kertolasku sitoo tiukemmin, antavat vastaukseksi 1. Sulkeet poistavat epäselvyyden.
Miksi sin(180) ei näytä arvoa 0?
Koska 180 astetta muunnetaan ensin radiaaneiksi, eikä piitä voi kirjoittaa täsmällisesti binäärimuodossa. Tulos on noin 1.2e-16, eli koneen käyttämän luvun sinin todellinen arvo.
Mikä ero on logaritmeilla log ja ln?
log on kymmenkantainen, joten log(1000) on 3, kun kantaluku on 10. ln on luonnollinen logaritmi, jonka kantaluku on e, joten ln(e) on 1. Näppäimistön merkinnät noudattavat samaa käytäntöä kuin TI:n ja Casion tieteislaskimissa.
Miksi yli 170 menevä kertoma hylätään? Luku 171! on suurempi kuin mikään kaksoistarkkuusluvun sisältämä luku, joten tulos olisi luvun sijaan ääretön. Laskin ilmoittaa tästä sen sijaan, että näyttäisi merkityksettömän tuloksen.
Lähteet
- IEEE 754-2019, IEEE-standardi liukulukuaritmetiikalle.
- ECMA-262, ECMAScript-kielimääritys, kohta 6.1.6.1, ”The Number Type”.
- ISO 80000-2:2019, suureet ja yksiköt, osa 2: matemaattiset merkit ja symbolit.
- NIST Digital Library of Mathematical Functions, kohdat 4,2 ja 4,14.
- Wikipedia, ”Laskutoimitusten suoritusjärjestys”.
- Wikipedia, ”Laskimen syöttötavat”.