Hoppa till innehåll

Vetenskaplig kalkylator: Potenser, rötter och trig

Vetenskaplig kalkylator online med potenser, rötter, logaritmer och ln, sinus, cosinus och tangens i grader eller radianer, fakulteter, procent och minne.

Scientific Calculator

Evaluates a typed or tapped expression with the usual order of operations, including powers, roots, logarithms, trigonometry and factorials.

Use + - * / for arithmetic, ^ for powers, ! for factorial and % for percent.

Type an expression or use the keypad to see a result.

Keypad

How this calculator reads an expression

Percent divides by 100 wherever it appears, so 100+10% is 100.1, not 110. Powers group from the right: 2^3^2 is 2^9, which is 512. A minus sign in front of a power is applied last, so -2^2 is -4. Two things written side by side are multiplied, and that multiplication ranks with division, so both are read left to right: 1/2pi means (1/2) times pi, and 6/2(1+2) is 9. Some scientific calculators read 1/2pi the other way, as 1/(2 times pi), so use brackets when the meaning matters. In Degrees mode the tangent is refused at 90 degrees and every odd multiple of it, because it has no value there.

History

No calculations yet. Press = to add one.

Laddningsberäknare...
📚

Dokumentation

Vetenskaplig kalkylator

En vetenskaplig kalkylator beräknar värdet av ett skrivet matematiskt uttryck. Den här läser potenser, rötter, logaritmer, trigonometri, fakulteter och procenttal, tillämpar den vanliga räkneordningen och anger ett svar.

Vad kalkylatorn gör

Ett uttryck skrivs in i rutan Uttryck eller byggs med knappsatsen. Kalkylatorn läser det så snart det ändras, så ingen likhetstangent behövs för att se svaret. Tangenten = lägger i stället beräkningen till i en historiklista.

Den accepterar:

  • siffror, en decimalpunkt och tal i exponentform, till exempel 1.5e-3;
  • operatorerna +, -, *, / och ^ (potens), samt parenteser;
  • konstanterna pi och e;
  • funktionerna sin, cos, tan, asin, acos, atan, log, ln, sqrt och cbrt;
  • postfixtecknen ! (fakultet) och % (procent).

Tecknen på knappsatsen översätts till sina enkla motsvarigheter, så ×, ÷, och π betyder samma som *, /, - och pi.

log är logaritmen med basen 10 och ln är den naturliga logaritmen, med basen e. Detta är den beteckning som används på vetenskapliga kalkylatorer från TI och Casio samt i NIST Digital Library of Mathematical Functions, avsnitt 4,2.

Räkneordningen

Regeln som avgör vad ett uttryck betyder är räkneordningen. Den här kalkylatorn använder grammatiken nedan. Varje rad anropar raden under sig, så nästningen utgör prioritetstabellen: den sista raden binder hårdast och beräknas först.

1expression := term (('+' | '-') term)*
2term       := unary (('*' | '/' | juxtaposition) unary)*
3unary      := ('-' | '+') unary | power
4power      := postfix ('^' unary)?
5postfix    := primary ('!' | '%')*
6primary    := number | constant | name '(' expression ')' | '(' expression ')'
7

Skrivet som en lista, från det som beräknas först till det som beräknas sist:

  1. allt inom parenteser samt en funktion som tillämpas på sådana uttryck;
  2. ! och %;
  3. ^;
  4. ett inledande tecken - eller +;
  5. *, / samt två saker som skrivs intill varandra;
  6. + och -.

De konventioner som detta ger överensstämmer med ISO 80000-2:2019 och artikeln ”Order of operations” på Wikipedia:

SkrivetTolkas somVärde
2^3^22^(3^2)512
-2^2-(2^2)-4
2^-22^(-2)0,25
2^3!2^(3!)64
100+10%100 + (10/100)100,1
1/2pi(1/2) * pi1,57079632679
6/2(1+2)(6/2) * (1+2)9

Två tal eller namn som skrivs intill varandra multipliceras, vilket gör att 2pi, 2(3+4) och 3sin(30) fungerar. Den dolda multiplikationen har samma prioritet som * och /, så en sådan sammanställning och en division läses från vänster till höger. Många handhållna vetenskapliga kalkylatorer ger sammanställning högre prioritet än division och läser 1/2pi som 1/(2*pi), vilket ger ett annat svar. Wikipedia beskriver skillnaden i ”Calculator input methods”. Parenteser avgör alla fall där skillnaden har betydelse.

% dividerar med 100 oavsett var det står. Därför är 20% 0,2 och 200*15% 30. Det är inte tangenten för ”procent av löpande totalsumma” på ett kassaregister och inte heller en restoperator.

Löst exempel

Uttrycket sin(30)+2^3*ln(4) beräknas i läget Grader i följande ordning:

  1. sin(30) är 0,5, eftersom 30 grader är hälften av en rät vinkel och sinus för vinkeln är en halv.
  2. 2^3 är 8. Potenser beräknas före multiplikation.
  3. ln(4) är 1,38629436112.
  4. 8 * 1.38629436112 är 11,090354889.
  5. 0.5 + 11.090354889 är 11,590354889.

Kalkylatorn visar 11,590354889.

Ett andra exempel visar regeln från vänster till höger. I 6/2(1+2) beräknas parentesen först, vilket ger 6/2*3. Divisionen och den dolda multiplikationen har samma prioritet, så divisionen utförs först: 6/2 är 3 och 3*3 är 9.

Grader och radianer

Inställningen för vinkelenhet avgör hur sin, cos och tan tolkar sina indata och vilken enhet asin, acos och atan returnerar. I läget Grader är ett helt varv 360. I läget Radianer är ett helt varv 2pi, ungefär 6,28318530718. Samma uttryck kan ge mycket olika svar i de två lägena: sin(30) är 0,5 i läget Grader och -0,988031624093 i läget Radianer.

Hur tal lagras och visas

Varje värde är ett IEEE 754 binärt 64-bitars flyttal med dubbel precision, den taltyp som beskrivs i ECMA-262, ECMAScript Language Specification, avsnitt 6.1.6.1. Ett flyttal med dubbel precision rymmer ungefär 15 till 17 signifikanta decimaler. Svaret avrundas en gång, enbart för visningen, till 12 signifikanta siffror. Värden under 0,000001 eller från och med 1 000 000 000 000 visas i exponentform, så 0.0000001 visas som 1E-7.

Det lagrade talet behåller full precision. Minnet lagrar det exakta resultatet, inte de 12 siffrorna på skärmen, och MR klistrar in den kortaste text som tolkas som samma tal. Ett negativt minnesvärde klistras in inom parenteser, så ett återkallande efter 2 tolkas som en multiplikation i stället för en subtraktion.

Avrundning används aldrig för att avgöra något. En liten rest från tidigare aritmetik är ett verkligt tal och behandlas som ett sådant. 0.1*3-0.3 är inte noll i binär form utan ungefär 5,55111512313E-17, så 5/(0.1*3-0.3) ger 9,00719925474E16 i stället för ett meddelande om division med noll.

Av samma skäl visar sin(180) i läget Grader 1,22464679915E-16 och inte 0. Felet är där omkring en del på tio tusen biljarder och förblir så litet. Tangens är undantaget och hanteras nedan.

Vad kalkylatorn vägrar att beräkna

Kalkylatorn visar ett meddelande i stället för ett svar när:

  • en nämnare är exakt noll, inklusive ett skrivet tal som är för litet för att representeras som ett flyttal med dubbel precision, till exempel 1e-400, som redan är noll när det läses in;
  • sqrt får ett negativt tal;
  • log eller ln får ett tal som inte är större än noll;
  • asin eller acos får ett tal utanför intervallet -1 till 1, det definitionsområde som anges i NIST DLMF, avsnitt 4,14;
  • tan används vid 90 grader eller någon udda multipel av detta, där funktionen saknar värde;
  • en fakultet begärs för något annat än ett heltal från 0 till 170;
  • ett tal innehåller en andra decimalpunkt, som i 1.2.3;
  • uttrycket är längre än 512 tecken.

Gränsen 170 är en egenskap hos taltypen, inte ett godtyckligt val: fakulteten av 170 är ungefär 7,25741561531E306, vilket fortfarande ryms i ett flyttal med dubbel precision, medan fakulteten av 171 inte gör det. Teckengränsen 512 kontrolleras i koden, eftersom uttryckets längd avgör hur mycket arbete kalkylatorn utför.

Tangenskontrollen avrundar vinkeln till 9 decimaler innan den testas. Det för tillbaka avvikelser från tidigare aritmetik till den exakta asymptoten, på bekostnad av ett vägransintervall på ungefär 5e-10 grader på vardera sidan. tan(89.9999999994) ger 95 493 592 025, medan tan(89.9999999995) avvisas. Läget Radianer gör ingen sådan kontroll, eftersom ett inskrivet radianvärde nära halva pi bara är ett annat tal utan särskild status.

Vanliga frågor och svar

Vad gör %-tangenten här? Den dividerar med 100 överallt där den förekommer. 100+10% är 100,1, eftersom det betyder 100 plus 0,1. Den beräknar inte en procentandel av det som kom före.

Är 2^3^2 64 eller 512? 512. Potenser grupperas från höger, så uttrycket betyder 2^(3^2), vilket är 2^9. Detta följer ISO 80000-2:2019.

Varför är 6/2(1+2) 9 och inte 1? En dold multiplikation har samma prioritet som en division, och uttryck med samma prioritet läses från vänster till höger. Kalkylatorer som ger juxtaposition högre prioritet svarar 1. Parenteser undanröjer tvivlet.

Varför visar sin(180) inte 0? Eftersom 180 grader först omvandlas till radianer och pi inte kan skrivas exakt i binär form. Svaret är ungefär 1.2e-16, vilket är det sanna sinusvärdet för det tal som maskinen faktiskt använde.

Vad är skillnaden mellan log och ln? log har basen 10, så log(1000) är 3. ln har basen e, så ln(e) är 1. Beteckningarna på knappsatsen följer samma konvention som på vetenskapliga kalkylatorer från TI och Casio.

Varför avvisas en fakultet över 170? 171 fakultet är större än det största tal som kan lagras i dubbel precision, så svaret skulle bli oändlighet i stället för ett tal. Kalkylatorn säger det i stället för att visa ett meningslöst resultat.

Källor

  • IEEE 754-2019, IEEE-standarden för flyttalsaritmetik.
  • 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, avsnitten 4,2 och 4,14.
  • Wikipedia, ”Order of operations”.
  • Wikipedia, ”Calculator input methods”.