Прескочи към съдържанието

Научен калкулатор: степени, корени и тригонометрия

Онлайн научен калкулатор със степени, корени, логаритми и ln, синус, косинус и тангенс в градуси или радиани, факториел, проценти и памет.

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.

Калкулатор за зареждане...
📚

Документация

Научен калкулатор

Научният калкулатор изчислява стойността на записан математически израз. Този калкулатор разпознава степени, корени, логаритми, тригонометрични функции, факториели и проценти, прилага стандартния ред на действията и показва един резултат.

Какво прави калкулаторът

Изразът се въвежда в полето „Израз“ или се изгражда с клавиатурата. Калкулаторът го прочита веднага щом се промени, така че за преглед на резултата не е нужен клавиш за равенство. Клавишът = вместо това добавя изчислението към списък с история.

Поддържат се:

  • цифрите, десетичната точка и числата в експоненциален вид, например 1.5e-3;
  • операторите +, -, *, / и ^ (степенуване), както и скоби;
  • константите pi и e;
  • функциите sin, cos, tan, asin, acos, atan, log, ln, sqrt и cbrt;
  • постфиксните знаци ! (факториел) и % (процент).

Символите на клавиатурата се превеждат до обикновените им еквиваленти, така че ×, ÷, и π означават същото като *, /, - и pi.

log е логаритъм с основа 10, а ln е натурален логаритъм с основа e. Това е означението, използвано при научните калкулатори на TI и Casio, както и в Цифровата библиотека на математическите функции на NIST, раздел 4,2.

Ред на действията

Правилото, което определя значението на даден израз, е редът на действията. Този калкулатор използва граматиката по-долу. Всеки ред извиква реда под него, така че влагането представлява таблицата на приоритетите: последният ред се свързва най-силно и се изчислява пръв.

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

Записано като списък, от първото към последното изчислявано:

  1. всичко в скоби и функция, приложена към скоби;
  2. ! и %;
  3. ^;
  4. начален знак - или +;
  5. *, / и две неща, записани едно до друго;
  6. + и -.

Получените правила съответстват на ISO 80000-2:2019 и на статията „Ред на действията“ в Wikipedia:

ЗаписЧете се катоСтойност
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

Две числа или имена, записани едно до друго, се умножават; именно това позволява 2pi, 2(3+4) и 3sin(30) да работят. Това скрито умножение има същия приоритет като * и /, затова съседно записаните изрази и делението се прочитат отляво надясно. Много преносими научни калкулатори дават на съседното умножение по-висок приоритет от делението и прочитат 1/2pi като 1/(2*pi), което дава различен резултат. Wikipedia описва това разделение в „Методи за въвеждане в калкулатор“. Скобите премахват неяснотата във всеки случай, когато разликата има значение.

% дели на 100 навсякъде, където се намира. Така 20% е 0,2, а 200*15% е 30. Това не е клавишът за „процент от текущата сума“ на касов апарат и не е оператор за остатък при деление.

Решен пример

Изразът sin(30)+2^3*ln(4) в режим „Градуси“ се изчислява в следния ред:

  1. sin(30) е 0,5, защото 30 градуса са половината от правия ъгъл, а синусът им е една втора.
  2. 2^3 е 8. Степенуването се извършва преди умножението.
  3. ln(4) е 1,38629436112.
  4. 8 * 1.38629436112 е 11,090354889.
  5. 0.5 + 11.090354889 е 11,590354889.

Калкулаторът показва 11,590354889.

Втори пример показва правилото за изчисляване отляво надясно. В 6/2(1+2) скобите се изчисляват първи и се получава 6/2*3. Делението и скритото умножение имат еднакъв приоритет, затова първо се извършва делението: 6/2 е 3, а 3*3 е 9.

Градуси и радиани

Настройката за единица на ъгъла определя как sin, cos и tan прочитат входните си данни и каква единица връщат asin, acos и atan. В режим „Градуси“ пълният оборот е 360. В режим „Радиани“ пълният оборот е 2pi, приблизително 6,28318530718. Един и същ израз може да даде много различни резултати в двата режима: sin(30) е 0,5 в режим „Градуси“ и -0,988031624093 в режим „Радиани“.

Как се съхраняват и показват числата

Всяка стойност е двоично 64-битово число с плаваща запетая IEEE 754, тип число, описан в ECMA-262, спецификацията на езика ECMAScript, раздел 6,1.6,1. Едно такова число съдържа приблизително от 15 до 17 десетични цифри. Резултатът се закръглява еднократно, само за екрана, до 12 значими цифри. Стойности под 0,000001 или равни на или по-големи от 1 000 000 000 000 се показват в експоненциален вид, така че 0.0000001 се прочита като 1E-7.

Съхраненото число запазва пълната си точност. Паметта съхранява точния резултат, а не 12-те цифри на екрана, и MR поставя обратно най-краткия текст, който се прочита като същото число. Отрицателна стойност от паметта се поставя в скоби, така че извикването ѝ след 2 се прочита като умножение, а не като изваждане.

Закръгляването никога не се използва за вземане на решения. Малкият остатък от предишни аритметични действия е реално число и се третира като такова. 0.1*3-0.3 не е нула в двоичен вид; той е приблизително 5,55111512313E-17, така че 5/(0.1*3-0.3) дава 9,00719925474E16, а не съобщение за деление на нула.

По същата причина sin(180) в режим „Градуси“ показва 1,22464679915E-16, а не 0. Грешката е приблизително една на десет квадрилиона и остава толкова малка. Тангенсът е изключение и е разгледан по-долу.

Какво калкулаторът отказва да изчисли

Калкулаторът показва съобщение вместо резултат, когато:

  • знаменателят е точно нула, включително когато е въведено число, твърде малко за такова число с плаваща запетая, например 1e-400, което вече е нула при прочитането;
  • на sqrt е подадено отрицателно число;
  • на log или ln е подадено число, което не е по-голямо от нула;
  • на asin или acos е подадено число извън интервала от -1 до 1, определен като област на допустимите стойности в NIST DLMF, раздел 4,14;
  • tan се използва при 90 градуса или при нечетно кратно на тях, където няма стойност;
  • се поиска факториел на нещо различно от цяло число от 0 до 170;
  • числото съдържа втора десетична точка, например 1.2.3;
  • изразът е по-дълъг от 512 знака.

Ограничението от 170 е свойство на типа число, а не предпочитание: факториелът на 170 е приблизително 7,25741561531E306, което все още се побира в такова число с плаваща запетая, докато факториелът на 171 не се побира. Ограничението от 512 знака се проверява в кода, защото дължината на израза определя колко работа извършва калкулаторът.

При проверката на тангенса ъгълът се закръглява до 9 знака след десетичната точка, преди да бъде тестван. Така отклонението от предишни изчисления се връща към точната асимптота, за сметка на прозорец на отказ с ширина около 5e-10 градуса от всяка страна. tan(89.9999999994) връща 95 493 592 025, а tan(89.9999999995) се отхвърля. В режим „Радиани“ такава проверка не се извършва, защото въведена стойност в радиани близо до половината от пи е просто число без специален статут.

Често задавани въпроси

Какво прави клавишът % тук? Той дели на 100 навсякъде, където се появи. 100+10% е 100,1, защото означава 100 плюс 0,1. Той не изчислява процент от всичко, което го предхожда.

2^3^2 равно ли е на 64 или на 512? 512. Степените се групират отдясно, така че изразът означава 2^(3^2), което е 2^9. Това следва ISO 80000-2:2019.

Защо 6/2(1+2) е 9, а не 1? Скритото умножение има същия приоритет като делението, а действията с еднакъв приоритет се прочитат отляво надясно. Калкулаторите, които дават по-висок приоритет на съседното умножение, дават резултат 1. Скобите премахват неяснотата.

Защо sin(180) не показва 0? Защото 180 градуса първо се преобразуват в радиани, а пи не може да бъде записано точно в двоичен вид. Резултатът е приблизително 1.2e-16, което е действителната стойност на синуса на числото, използвано от машината.

Каква е разликата между log и ln? log е с основа 10, така че log(1000) е 3. ln е с основа e, така че ln(e) е 1. Означенията на клавиатурата следват същата конвенция като при научните калкулатори на TI и Casio.

Защо се отхвърля факториел над 170? Факториелът на 171 е по-голям от всяко число, което такова число с плаваща запетая може да съхрани, така че резултатът би бил безкрайност, а не число. Калкулаторът показва съобщение, вместо да показва безсмислен резултат.

Източници

  • IEEE 754-2019, стандарт IEEE за аритметика с плаваща запетая.
  • ECMA-262, спецификация на езика ECMAScript, раздел 6.1.6.1, „Типът Number“.
  • ISO 80000-2:2019, „Величини и единици“, част 2: математически знаци и символи.
  • Digital Library of Mathematical Functions на NIST, раздели 4,2 и 4,14.
  • Wikipedia, „Ред на действията“.
  • Wikipedia, „Методи за въвеждане в калкулатор“.