Vitenskapelig kalkulator: potenser, røtter og logaritmer
Vitenskapelig kalkulator på nett med potenser, røtter, logaritmer og ln, sinus, cosinus og tangens i grader eller radianer, fakulteter, prosent og minne.
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.
Dokumentasjon
Vitenskapelig kalkulator
En vitenskapelig kalkulator beregner verdien av et skrevet matematisk uttrykk. Denne leser potenser, røtter, logaritmer, trigonometri, fakulteter og prosenter, bruker standard regnerekkefølge og viser ett svar.
Hva kalkulatoren gjør
Et uttrykk skrives inn i Uttrykk-feltet eller bygges med tastaturet. Kalkulatoren leser det så snart det endres, så det er ikke nødvendig å trykke på likhetstasten for å se svaret. Tasten = legger i stedet beregningen til i en historikkliste.
Den godtar:
- sifrene, desimalpunktum og tall på eksponentform, for eksempel
1.5e-3; - operatorene
+,-,*,/og^(potens), samt parenteser; - konstantene
pioge; - funksjonene
sin,cos,tan,asin,acos,atan,log,ln,sqrtogcbrt; - postfixtegnene
!(fakultet) og%(prosent).
Tastatursymboler oversettes til de tilsvarende enkle symbolene, så ×, ÷, − og π betyr det samme som *, /, - og pi.
log er logaritmen med grunntall 10, og ln er den naturlige logaritmen, med grunntall e. Dette er merkingen på vitenskapelige kalkulatorer fra TI og Casio, og navngivingen i NIST Digital Library of Mathematical Functions, avsnitt 4,2.
Regnerekkefølgen
Regnerekkefølgen er regelen som avgjør hva et uttrykk betyr. Denne kalkulatoren bruker grammatikken nedenfor. Hver linje kaller på linjen under seg, så nestingen utgjør presedenstabellen: Den siste linjen binder sterkest og beregnes først.
1expression := term (('+' | '-') term)*
2term := unary (('*' | '/' | juxtaposition) unary)*
3unary := ('-' | '+') unary | power
4power := postfix ('^' unary)?
5postfix := primary ('!' | '%')*
6primary := number | constant | name '(' expression ')' | '(' expression ')'
7Skrevet som en liste, fra det som beregnes først til det som beregnes sist:
- alt som står i parenteser, samt en funksjon brukt på parenteser;
!og%;^;- et innledende
-- eller+-tegn; *,/og to ting som står side om side;+og-.
Konvensjonene dette gir, samsvarer med ISO 80000-2:2019 og artikkelen «Order of operations» på Wikipedia:
| Skrevet | Tolkes som | Verdi |
|---|---|---|
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 |
To tall eller navn som står side om side, multipliseres. Det er dette som gjør at 2pi, 2(3+4) og 3sin(30) fungerer. Denne skjulte multiplikasjonen har samme rang som * og /, så en sidestilling og en divisjon leses fra venstre mot høyre. Mange håndholdte vitenskapelige kalkulatorer lar sidestilling binde tettere enn divisjon og leser 1/2pi som 1/(2*pi), noe som gir et annet svar. Wikipedia beskriver forskjellen i «Calculator input methods». Parenteser avgjør alle tilfeller der forskjellen har betydning.
% dividerer med 100 uansett hvor det står. Derfor er 20% lik 0,2, og 200*15% er lik 30. Det er ikke prosenttasten «prosent av løpende totalsum» på et butikkkassaapparat, og det er ikke en restoperator.
Eksempel
Uttrykket sin(30)+2^3*ln(4) beregnes i denne rekkefølgen i gradermodus:
sin(30)er 0,5, fordi 30 grader er en tredjedel av en rett vinkel, og sinusverdien er en halv.2^3er 8. Potenser beregnes før multiplikasjon.ln(4)er 1,38629436112.8 * 1.38629436112er 11,090354889.0.5 + 11.090354889er 11,590354889.
Kalkulatoren viser 11,590354889.
Et annet eksempel viser regelen fra venstre mot høyre. I 6/2(1+2) beregnes parentesen først, slik at resultatet blir 6/2*3. Divisjonen og den skjulte multiplikasjonen har samme rang, så divisjonen utføres først: 6/2 er 3, og 3*3 er 9.
Grader og radianer
Innstillingen for vinkelenhet avgjør hvordan sin, cos og tan tolker inndataene sine, og hvilken enhet asin, acos og atan returnerer. I gradermodus er en hel omdreining 360. I radianmodus er en hel omdreining 2pi, omtrent 6,28318530718. Det samme uttrykket kan gi svært forskjellige svar i de to modusene: sin(30) er 0,5 i gradermodus og -0,988031624093 i radianmodus.
Hvordan tall lagres og vises
Hver verdi er et IEEE 754 binary64-tall, talltypen som beskrives i ECMA-262, ECMAScript Language Specification, avsnitt 6,1.6,1. Et dobbelttall har omtrent 15 til 17 desimalsifre. Svaret avrundes én gang, bare for visning på skjermen, til 12 signifikante sifre. Verdier under 0,000001 eller lik 1 000 000 000 000 og høyere vises på eksponentform, så 0.0000001 vises som 1E-7.
Det lagrede tallet beholder full presisjon. Minnet lagrer det nøyaktige resultatet, ikke de 12 sifrene på skjermen, og MR setter inn igjen den korteste teksten som tolkes som det samme tallet. En negativ minneverdi settes inn i parentes, slik at den etter en 2 tolkes som en multiplikasjon og ikke en subtraksjon.
Avrunding brukes aldri til å avgjøre noe. En liten rest fra tidligere aritmetikk er et reelt tall og behandles som ett. 0.1*3-0.3 er ikke null i binær form; det er omtrent 5,55111512313E-17, så 5/(0.1*3-0.3) gir 9,00719925474E16 i stedet for en melding om divisjon med null.
Av samme grunn viser sin(180) i gradermodus 1,22464679915E-16 og ikke 0. Feilen er omtrent én del av ti tusen milliarder milliarder, og den holder seg så liten. Tangens er unntaket og behandles nedenfor.
Hva kalkulatoren avviser
Kalkulatoren viser en melding i stedet for et svar når:
- en nevner er nøyaktig null, inkludert et skrevet tall som er for lite for et dobbelttall, for eksempel
1e-400, som allerede er null når det leses; sqrtfår et negativt tall;logellerlnfår et tall som ikke er større enn null;asinelleracosfår et tall utenfor -1 til 1, definisjonsmengden angitt i NIST DLMF, avsnitt 4,14;tanbrukes ved 90 grader eller et hvilket som helst oddetallsmultiplum av dette, der den ikke har noen verdi;- det bes om fakultet av noe annet enn et helt tall fra 0 til 170;
- et tall inneholder et ekstra desimalpunktum, som i
1.2.3; - uttrykket er lengre enn 512 tegn.
Grensen på 170 skyldes talltypen, ikke et valg: Fakultet av 170 er omtrent 7,25741561531E306, som fortsatt får plass i et dobbelttall, mens fakultet av 171 ikke gjør det. Tegngrensen på 512 kontrolleres i koden, fordi uttrykkets lengde avgjør hvor mye arbeid kalkulatoren utfører.
Tangenskontrollen avrunder vinkelen til 9 desimalplasser før den tester den. Dermed føres avvik fra tidligere beregninger tilbake til den eksakte asymptoten, på bekostning av et avvisningsområde på omtrent 5e-10 grader på hver side. tan(89.9999999994) returnerer 95 493 592 025, mens tan(89.9999999995) avvises. Radianmodus gjør ingen slik kontroll, fordi en skrevet radianverdi nær halvparten av pi bare er et annet tall uten særstatus.
Ofte stilte spørsmål
Hva gjør %-tasten her?
Den dividerer med 100 uansett hvor den står. 100+10% er 100,1, fordi det betyr 100 pluss 0,1. Den beregner ikke en prosentandel av det som kom før den.
Er 2^3^2 64 eller 512?
512. Potenser grupperes fra høyre, så uttrykket betyr 2^(3^2), som er 2^9. Dette følger ISO 80000-2:2019.
Hvorfor er 6/2(1+2) 9 og ikke 1?
En skjult multiplikasjon har samme rang som en divisjon, og uttrykk med lik rang leses fra venstre mot høyre. Kalkulatorer som lar sidestilling binde tettere, svarer 1. Parenteser fjerner tvilen.
Hvorfor viser ikke sin(180) 0?
Fordi 180 grader først konverteres til radianer, og pi ikke kan skrives nøyaktig i binær form. Svaret er omtrent 1.2e-16, som er den sanne sinusverdien av tallet maskinen faktisk brukte.
Hva er forskjellen mellom log og ln?
log har grunntall 10, så log(1000) er 3. ln har grunntall e, så ln(e) er 1. Tastaturmerkingen følger samme konvensjon som på vitenskapelige kalkulatorer fra TI og Casio.
Hvorfor avvises et fakultet over 170? Fakultetet til 171 er større enn ethvert tall et dobbelttall kan lagre, så svaret ville blitt uendelig i stedet for et tall. Kalkulatoren sier dette i stedet for å vise et meningsløst resultat.
Kilder
- IEEE 754-2019, IEEE-standarden for flyttallsaritmetikk.
- ECMA-262, ECMAScript Language Specification, avsnitt 6.1.6.1, «The Number Type».
- ISO 80000-2:2019, Quantities and units, del 2: Mathematical signs and symbols.
- NIST Digital Library of Mathematical Functions, avsnittene 4,2 og 4,14.
- Wikipedia, «Order of operations».
- Wikipedia, «Calculator input methods».