Calculator științific: puteri, radicali și trigonometrie
Calculator științific online cu puteri, radicali, logaritmi și ln, sinus, cosinus și tangentă în grade sau radiani, factoriale, procente și memorie.
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.
Documentație
Calculator științific
Un calculator științific determină valoarea unei expresii matematice scrise. Acesta interpretează puteri, radicali, logaritmi, funcții trigonometrice, factoriale și procente, aplică ordinea standard a operațiilor și afișează un singur rezultat.
Ce face calculatorul
O expresie este introdusă în caseta Expresie sau construită cu tastatura. Calculatorul o interpretează imediat ce se modifică, astfel încât nu este necesară apăsarea tastei egal pentru a vedea rezultatul. Tasta = adaugă în schimb calculul la o listă de istoric.
Acceptă:
- cifrele, punctul zecimal și numerele în formă exponențială, precum
1.5e-3; - operatorii
+,-,*,/și^(putere), precum și parantezele; - constantele
pișie; - funcțiile
sin,cos,tan,asin,acos,atan,log,ln,sqrtșicbrt; - semnele postfixate
!(factorial) și%(procent).
Simbolurile de pe tastatură sunt traduse în echivalentele lor simple, astfel încât ×, ÷, − și π au aceeași semnificație ca *, /, - și pi.
log este logaritmul în baza 10, iar ln este logaritmul natural, în baza e. Aceasta este convenția de notare folosită pe calculatoarele științifice TI și Casio și în secțiunea 4,2 a NIST Digital Library of Mathematical Functions.
Ordinea operațiilor
Regula care stabilește semnificația unei expresii este ordinea operațiilor. Acest calculator folosește gramatica de mai jos. Fiecare linie apelează linia de sub ea, astfel încât imbricarea reprezintă tabelul priorităților: ultima linie are prioritatea cea mai mare și este evaluată prima.
1expression := term (('+' | '-') term)*
2term := unary (('*' | '/' | juxtaposition) unary)*
3unary := ('-' | '+') unary | power
4power := postfix ('^' unary)?
5postfix := primary ('!' | '%')*
6primary := number | constant | name '(' expression ')' | '(' expression ')'
7Scrisă ca listă, de la prima operație evaluată la ultima:
- orice se află între paranteze și o funcție aplicată unor paranteze;
!și%;^;- un semn
-sau+la început; *,/și două elemente scrise unul lângă altul;+și-.
Convențiile rezultate corespund standardului ISO 80000-2:2019 și articolului „Ordinea operațiilor” de pe Wikipedia:
| Forma scrisă | Se interpretează ca | Valoare |
|---|---|---|
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 |
Două numere sau denumiri scrise unul lângă altul se înmulțesc, ceea ce face ca 2pi, 2(3+4) și 3sin(30) să funcționeze. Această înmulțire implicită are aceeași prioritate ca * și /, astfel încât juxtapunerea și împărțirea se interpretează de la stânga la dreapta. Multe calculatoare științifice portabile dau juxtapunării o prioritate mai mare decât împărțirii și interpretează 1/2pi ca 1/(2*pi), ceea ce produce un rezultat diferit. Wikipedia descrie această diferență în articolul „Metode de introducere a datelor în calculatoare”. Parantezele clarifică orice situație în care diferența contează.
% împarte la 100 oriunde apare. Astfel, 20% este 0,2, iar 200*15% este 30. Nu este tasta „procent din totalul curent” a unei case de marcat și nici un operator rest.
Exemplu rezolvat
Expresia sin(30)+2^3*ln(4), în modul Grade, este evaluată în următoarea ordine:
sin(30)este 0,5, deoarece 30 de grade reprezintă jumătate dintr-un unghi drept, iar sinusul său este o jumătate.2^3este 8. Puterile sunt evaluate înaintea înmulțirii.ln(4)este 1,38629436112.8 * 1.38629436112este 11,090354889.0.5 + 11.090354889este 11,590354889.
Calculatorul afișează 11,590354889.
Un al doilea exemplu arată regula de la stânga la dreapta. În 6/2(1+2), paranteza este evaluată prima, rezultând 6/2*3. Împărțirea și înmulțirea implicită au aceeași prioritate, astfel încât împărțirea se face prima: 6/2 este 3, iar 3*3 este 9.
Grade și radiani
Setarea unității unghiului stabilește cum își interpretează intrarea sin, cos și tan și ce unitate returnează asin, acos și atan. În modul Grade, o rotație completă are 360. În modul Radiani, o rotație completă are 2pi, adică aproximativ 6,28318530718. Aceeași expresie poate produce rezultate foarte diferite în cele două moduri: sin(30) este 0,5 în modul Grade și -0,988031624093 în modul Radiani.
Cum sunt stocate și afișate numerele
Fiecare valoare este un număr în virgulă mobilă binar64 cu dublă precizie IEEE 754, tipul de număr descris în ECMA-262, ECMAScript Language Specification, secțiunea 6,1.6,1. O valoare dublă păstrează aproximativ între 15 și 17 cifre zecimale. Rezultatul este rotunjit o singură dată, doar pentru ecran, la 12 cifre semnificative. Valorile mai mici decât 0,000001 sau mai mari ori egale cu 1.000.000.000.000 sunt afișate în formă exponențială, astfel încât 0.0000001 este afișat ca 1E-7.
Numărul stocat păstrează precizia completă. Memoria stochează rezultatul exact, nu cele 12 cifre de pe ecran, iar MR inserează cel mai scurt text care este interpretat ca același număr. O valoare negativă din memorie este inserată între paranteze, astfel încât reamintirea ei după un 2 este interpretată ca înmulțire, nu ca scădere.
Rotunjirea nu este folosită niciodată pentru a decide ceva. O diferență foarte mică rămasă dintr-un calcul anterior este un număr real și este tratată ca atare. 0.1*3-0.3 nu este zero în reprezentarea binară; este aproximativ 5,55111512313E-17, astfel încât 5/(0.1*3-0.3) produce 9,00719925474E16, nu un mesaj de împărțire la zero.
Din același motiv, sin(180) în modul Grade afișează 1,22464679915E-16, nu 0. Eroarea este de aproximativ o parte la zece mii de miliarde de miliarde și rămâne atât de mică. Tangenta este excepția și este tratată mai jos.
Ce refuză calculatorul
Calculatorul afișează un mesaj în locul unui rezultat atunci când:
- numitorul este exact zero, inclusiv atunci când este introdus un număr prea mic pentru o valoare dublă, precum
1e-400, care devine deja zero la citire; sqrtprimește un număr negativ;logsaulnprimește un număr care nu este mai mare decât zero;asinsauacosprimește un număr în afara intervalului de la -1 la 1, domeniul de definiție indicat în secțiunea 4,14 din NIST DLMF;taneste folosită la 90 de grade sau la orice multiplu impar al acestei valori, unde nu are valoare;- se solicită factorialul pentru altceva decât un număr întreg de la 0 la 170;
- un număr conține un al doilea punct zecimal, ca în
1.2.3; - expresia are mai mult de 512 caractere.
Limita de 170 este o proprietate a tipului de număr, nu o preferință: factorialul lui 170 este aproximativ 7,25741561531E306, valoare care încape încă într-o valoare dublă, în timp ce factorialul lui 171 nu încape. Limita de 512 caractere este verificată în cod, deoarece lungimea expresiei stabilește cât de mult lucru efectuează calculatorul.
Verificarea tangentei rotunjește unghiul la 9 zecimale înainte de testare. Astfel, abaterile rezultate din calcule anterioare sunt readuse pe asimptota exactă, cu prețul unei ferestre de refuz de aproximativ 5e-10 grade pe fiecare parte. tan(89.9999999994) returnează 95.493.592.025, iar tan(89.9999999995) este refuzată. Modul Radiani nu face o astfel de verificare, deoarece o valoare în radiani introdusă aproape de jumătatea lui pi este doar un alt număr, fără un statut special.
Întrebări frecvente
Ce face tasta % aici?
Împarte la 100 oriunde apare. 100+10% este 100,1, deoarece înseamnă 100 plus 0,1. Nu calculează un procent din ceea ce a apărut înaintea ei.
2^3^2 este 64 sau 512?
512. Puterile se grupează de la dreapta, astfel încât expresia înseamnă 2^(3^2), adică 2^9. Aceasta respectă standardul ISO 80000-2:2019.
De ce 6/2(1+2) este 9, nu 1?
O înmulțire implicită are aceeași prioritate ca o împărțire, iar operațiile cu aceeași prioritate se interpretează de la stânga la dreapta. Calculatoarele care acordă juxtapunării o prioritate mai mare dau rezultatul 1. Parantezele elimină ambiguitatea.
De ce sin(180) nu afișează 0?
Deoarece 180 de grade este convertit mai întâi în radiani, iar pi nu poate fi reprezentat exact în binar. Rezultatul este aproximativ 1.2e-16, valoarea reală a sinusului numărului folosit efectiv de mașină.
Care este diferența dintre log și ln?
log este în baza 10, astfel încât log(1000) este 3. ln este în baza e, astfel încât ln(e) este 1. Etichetele tastaturii respectă aceeași convenție ca pe calculatoarele științifice TI și Casio.
De ce este refuzat un factorial mai mare decât 170? Factorialul lui 171 este mai mare decât orice număr pe care îl poate stoca o valoare dublă, astfel încât rezultatul ar fi infinit, nu un număr. Calculatorul indică acest lucru în loc să afișeze un rezultat lipsit de sens.
Surse
- IEEE 754-2019, standardul IEEE pentru aritmetica în virgulă mobilă.
- ECMA-262, ECMAScript Language Specification, secțiunea 6.1.6.1, „Tipul Number”.
- ISO 80000-2:2019, Mărimi și unități, partea 2: Semne și simboluri matematice.
- NIST Digital Library of Mathematical Functions, secțiunile 4,2 și 4,14.
- Wikipedia, „Ordinea operațiilor”.
- Wikipedia, „Metode de introducere a datelor în calculatoare”.