Videnskabelig lommeregner: Potenser, rødder og logaritmer
Online videnskabelig lommeregner med potenser, rødder, log og ln, sinus, cosinus og tangens i grader eller radianer, fakulteter, procent og hukommelse.
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.
Dokumentation
Videnskabelig lommeregner
En videnskabelig lommeregner beregner værdien af et skrevet matematisk udtryk. Denne lommeregner fortolker potenser, rødder, logaritmer, trigonometri, fakulteter og procenter, følger den almindelige rækkefølge for regnearter og angiver ét svar.
Hvad beregneren gør
Et udtryk indtastes i feltet Udtryk eller bygges med tastaturet. Lommeregneren fortolker det, så snart det ændres, så der ikke er brug for en lig med-tast for at se svaret. Tasten = føjer i stedet beregningen til en historikliste.
Den accepterer:
- cifrene, et decimaltegn og tal i eksponentform som
1.5e-3; - operatorerne
+,-,*,/og^(potens) samt parenteser; - konstanterne
pioge; - funktionerne
sin,cos,tan,asin,acos,atan,log,ln,sqrtogcbrt; - postfixtegnene
!(fakultet) og%(procent).
Tastaturets symboler oversættes til deres almindelige ækvivalenter, så ×, ÷, − og π betyder det samme som *, /, - og pi.
log er logaritmen med grundtal 10, og ln er den naturlige logaritme med grundtal e. Det er den betegnelse, der bruges på TI- og Casio-lommeregnere samt i NIST Digital Library of Mathematical Functions i afsnit 4,2.
Regnearternes rækkefølge
Den regel, der afgør, hvad et udtryk betyder, er regnearternes rækkefølge. Denne lommeregner bruger grammatikken nedenfor. Hver linje kalder linjen under sig, så indlejringen udgør præcedenstabellen: Den sidste linje binder stærkest 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, der beregnes først, til det, der beregnes sidst:
- alt inden for parenteser samt en funktion anvendt på parenteser;
!og%;^;- et indledende
-- eller+-tegn; *,/samt to ting skrevet side om side;+og-.
De konventioner, dette giver, stemmer overens med ISO 80000-2:2019 og artiklen »Order of operations« på Wikipedia:
| Skrevet | Fortolkes som | Værdi |
|---|---|---|
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 tal eller navne skrevet side om side multipliceres, hvilket får 2pi, 2(3+4) og 3sin(30) til at fungere. Denne skjulte multiplikation har samme rang som * og /, så en sammenstilling og en division fortolkes fra venstre mod højre. Mange håndholdte videnskabelige lommeregnere lader en sammenstilling binde stærkere end division og fortolker 1/2pi som 1/(2*pi), hvilket giver et andet svar. Wikipedia beskriver forskellen i »Calculator input methods«. Parenteser afgør alle tilfælde, hvor forskellen har betydning.
% dividerer med 100, uanset hvor det står. Derfor er 20% lig med 0,2, og 200*15% er lig med 30. Det er ikke tasten »procent af den løbende total« på et kasseapparat, og det er ikke en restoperator.
Regneeksempel
Udtrykket sin(30)+2^3*ln(4) beregnes i denne rækkefølge i tilstanden Grader:
sin(30)er 0,5, fordi 30 grader er en halv ret vinkel, og sinus til den er en halv.2^3er 8. Potenser beregnes før multiplikation.ln(4)er 1,38629436112.8 * 1.38629436112er 11,090354889.0.5 + 11.090354889er 11,590354889.
Lommeregneren viser 11,590354889.
Et andet eksempel viser reglen fra venstre mod højre. I 6/2(1+2) beregnes parentesen først, hvilket giver 6/2*3. Divisionen og den skjulte multiplikation har samme rang, så divisionen udføres først: 6/2 er 3, og 3*3 er 9.
Grader og radianer
Indstillingen for vinkel-enhed afgør, hvordan sin, cos og tan fortolker deres input, og hvilken enhed asin, acos og atan returnerer. I tilstanden Grader er en hel omdrejning 360. I tilstanden Radianer er en hel omdrejning 2pi, cirka 6,28318530718. Det samme udtryk kan give meget forskellige svar i de to tilstande: sin(30) er 0,5 i tilstanden Grader og -0,988031624093 i tilstanden Radianer.
Sådan lagres og vises tal
Hver værdi er en IEEE 754 binary64-double, den taltype, der beskrives i ECMA-262, ECMAScript Language Specification, i afsnit 6,1.6,1. En double indeholder cirka 15 til 17 decimalcifre. Svaret afrundes én gang, kun til visning på skærmen, til 12 betydende cifre. Værdier under 0,000001 eller lig med eller over 1.000.000.000.000 vises i eksponentform, så 0.0000001 vises som 1E-7.
Det lagrede tal bevarer den fulde præcision. Hukommelsen gemmer det nøjagtige resultat, ikke de 12 cifre på skærmen, og MR indsætter den korteste tekst, der fortolkes som det samme tal. En negativ værdi i hukommelsen indsættes i parenteser, så hentning efter et 2 fortolkes som en multiplikation i stedet for en subtraktion.
Afrunding bruges aldrig til at afgøre noget. En lille rest fra tidligere aritmetik er et reelt tal og behandles som sådan. 0.1*3-0.3 er ikke nul i binær repræsentation; den er cirka 5,55111512313E-17, så 5/(0.1*3-0.3) giver 9,00719925474E16 i stedet for en besked om division med nul.
Af samme grund viser sin(180) i tilstanden Grader 1,22464679915E-16 og ikke 0. Fejlen er cirka én ud af ti billioner, og den forbliver så lille. Tangens er en undtagelse og behandles nedenfor.
Hvad beregneren afviser
Lommeregneren viser en besked i stedet for et svar, når:
- en nævner er nøjagtig nul, herunder et skrevet tal, der er for lille til en double, som
1e-400, der allerede er nul, når det læses; sqrtfår et negativt tal;logellerlnfår et tal, der ikke er større end nul;- Hvis
asinelleracosfår et tal uden for intervallet fra -1 til 1, det definitionsområde, der er angivet i NIST DLMF i afsnit 4,14; tanbruges ved 90 grader eller et ulige multiplum deraf, hvor den ikke har nogen værdi;- der anmodes om et fakultet af andet end et helt tal fra 0 til 170;
- et tal indeholder et ekstra decimaltegn, som i
1.2.3; - udtrykket er længere end 512 tegn.
Grænsen på 170 er en egenskab ved taltypen, ikke et valg: Fakultet af 170 er cirka 7,25741561531E306, hvilket stadig kan rummes i en double, mens fakultet af 171 ikke kan. Grænsen på 512 tegn kontrolleres i koden, fordi udtrykkets længde afgør, hvor meget arbejde lommeregneren udfører.
Kontrollen af tangens afrunder vinklen til 9 decimalpladser, før den testes. Det fører afvigelser fra tidligere aritmetik tilbage til den nøjagtige asymptote, men medfører et afvisningsinterval på cirka 5e-10 grader på hver side. tan(89.9999999994) returnerer 95.493.592.025, mens tan(89.9999999995) afvises. Tilstanden Radianer udfører ikke denne kontrol, fordi en indtastet radianværdi nær halvdelen af pi blot er et tal som alle andre uden særstatus.
Ofte stillede spørgsmål
Hvad gør %-tasten her?
Den dividerer med 100, uanset hvor den står. 100+10% er 100,1, fordi det betyder 100 plus 0,1. Den beregner ikke en procentdel af det, der står foran den.
Er 2^3^2 64 eller 512?
512. Potenser grupperes fra højre, så det betyder 2^(3^2), hvilket er 2^9. Dette følger ISO 80000-2:2019.
Hvorfor er 6/2(1+2) 9 og ikke 1?
En skjult multiplikation har samme rang som en division, og operationer med samme rang læses fra venstre mod højre. Lommeregnere, der lader sammenstillingen binde stærkere, giver svaret 1. Parenteser fjerner tvivlen.
Hvorfor viser sin(180) ikke 0?
Fordi 180 grader først omregnes til radianer, og pi ikke kan skrives nøjagtigt i binær form. Svaret er cirka 1.2e-16, hvilket er den sande værdi af sinus til det tal, maskinen faktisk brugte.
Hvad er forskellen på log og ln?
log har grundtal 10, så log(1000) er 3. ln har grundtal e, så ln(e) er 1. Tastaturets betegnelser følger samme konvention som på TI- og Casio-lommeregnere.
Hvorfor afvises et fakultet over 170? Fakultet af 171 er større end ethvert tal, en double kan rumme, så svaret ville være uendelig i stedet for et tal. Lommeregneren angiver dette i stedet for at vise et meningsløst resultat.
Kilder
- IEEE 754-2019, IEEE-standarden for flydende kommaaritmetik.
- ECMA-262, ECMAScript Language Specification, afsnit 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, afsnit 4,2 og 4,14.
- Wikipedia, »Order of operations«.
- Wikipedia, »Calculator input methods«.