Calculadora científica: potências, raízes e trigonometria
Calculadora científica online com potências, raízes, logaritmos e ln, seno, cosseno e tangente em graus ou radianos, fatoriais, porcentagem e memória.
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ção
Calculadora científica
Uma calculadora científica calcula o valor de uma expressão matemática escrita. Esta trabalha com potências, raízes, logaritmos, funções trigonométricas, fatoriais e porcentagens, aplica a ordem padrão das operações e informa uma resposta.
O que a calculadora faz
Uma expressão é digitada na caixa Expressão ou construída com o teclado. A calculadora a lê assim que ela muda, portanto não é necessário pressionar a tecla de igualdade para ver a resposta. A tecla = adiciona o cálculo a uma lista de histórico.
Ela aceita:
- os algarismos, um ponto decimal e números na forma exponencial, como
1.5e-3; - os operadores
+,-,*,/e^(potência), além de parênteses; - as constantes
piee; - as funções
sin,cos,tan,asin,acos,atan,log,ln,sqrtecbrt; - os sinais pós-fixos
!(fatorial) e%(porcentagem).
Os símbolos do teclado são traduzidos para seus equivalentes simples, portanto ×, ÷, − e π têm o mesmo significado que *, /, - e pi.
log é o logaritmo na base 10 e ln é o logaritmo natural, de base e. Essa é a convenção de nomenclatura usada nas calculadoras científicas da TI e da Casio e na seção 4,2 da NIST Digital Library of Mathematical Functions.
A ordem das operações
A regra que determina o significado de uma expressão é a ordem das operações. Esta calculadora usa a gramática abaixo. Cada linha chama a linha abaixo dela, portanto o aninhamento é a tabela de precedência: a última linha é a de maior precedência e é calculada primeiro.
1expression := term (('+' | '-') term)*
2term := unary (('*' | '/' | juxtaposition) unary)*
3unary := ('-' | '+') unary | power
4power := postfix ('^' unary)?
5postfix := primary ('!' | '%')*
6primary := number | constant | name '(' expression ')' | '(' expression ')'
7Em forma de lista, da primeira operação calculada à última:
- tudo que estiver dentro de colchetes e uma função aplicada a colchetes;
!e%;^;- um sinal inicial
-ou+; *,/e dois elementos escritos lado a lado;+e-.
As convenções resultantes correspondem à ISO 80000-2:2019 e ao artigo “Order of operations” da Wikipédia:
| Forma escrita | É interpretado como | Valor |
|---|---|---|
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 |
Dois números ou nomes escritos lado a lado são multiplicados, o que faz 2pi, 2(3+4) e 3sin(30) funcionarem. Essa multiplicação implícita tem a mesma precedência que * e /, portanto uma justaposição e uma divisão são interpretadas da esquerda para a direita. Muitas calculadoras científicas portáteis dão maior precedência à justaposição que à divisão e interpretam 1/2pi como 1/(2*pi), o que produz uma resposta diferente. A Wikipédia descreve essa divergência em “Calculator input methods”. Os parênteses resolvem qualquer caso em que a diferença seja relevante.
% divide por 100 onde quer que esteja. Assim, 20% é 0,2 e 200*15% é 30. Não é a tecla de “porcentagem do total acumulado” de um caixa de loja, nem um operador de resto.
Exemplo prático
A expressão sin(30)+2^3*ln(4), no modo Graus, é calculada nesta ordem:
sin(30)é 0,5, porque 30 graus correspondem à metade de um ângulo reto e seu seno é um meio.2^3é 8. As potências vêm antes da multiplicação.ln(4)é 1,38629436112.8 * 1.38629436112é 11,090354889.0.5 + 11.090354889é 11,590354889.
A calculadora mostra 11,590354889.
Um segundo exemplo mostra a regra da esquerda para a direita. Em 6/2(1+2), o conteúdo dos parênteses é calculado primeiro, resultando em 6/2*3. A divisão e a multiplicação implícita têm a mesma precedência, portanto a divisão vem primeiro: 6/2 é 3, e 3*3 é 9.
Graus e radianos
A configuração da unidade de ângulo determina como sin, cos e tan interpretam a entrada e qual unidade asin, acos e atan retornam. No modo Graus, uma volta completa é 360. No modo Radianos, uma volta completa é 2pi, aproximadamente 6,28318530718. A mesma expressão pode produzir respostas muito diferentes nos dois modos: sin(30) é 0,5 no modo Graus e -0,988031624093 no modo Radianos.
Como os números são armazenados e exibidos
Todo valor é um número de ponto flutuante de precisão dupla binary64 do IEEE 754, o tipo numérico descrito na ECMA-262, ECMAScript Language Specification, seção 6,1.6,1. Um número de precisão dupla comporta cerca de 15 a 17 algarismos decimais. A resposta é arredondada uma única vez, apenas para a tela, para 12 algarismos significativos. Valores abaixo de 0,000001 ou iguais ou acima de 1.000.000.000.000 são mostrados na forma exponencial; assim, 0.0000001 é exibido como 1E-7.
O número armazenado mantém a precisão total. A memória armazena o resultado exato, não os 12 algarismos exibidos na tela, e MR cola de volta o texto mais curto que representa esse mesmo número. Um valor negativo da memória é colado entre parênteses, portanto recuperá-lo depois de um 2 resulta em uma multiplicação, e não em uma subtração.
O arredondamento nunca é usado para decidir nada. Um pequeno resíduo de cálculos anteriores é um número real e é tratado como tal. 0.1*3-0.3 não é zero em binário; é aproximadamente 5,55111512313E-17, portanto 5/(0.1*3-0.3) resulta em 9,00719925474E16, e não em uma mensagem de divisão por zero.
Pelo mesmo motivo, sin(180) no modo Graus mostra 1,22464679915E-16, e não 0. O erro é de cerca de uma parte em dez quatrilhões e permanece tão pequeno. A tangente é a exceção e é tratada abaixo.
O que a calculadora recusa
A calculadora mostra uma mensagem em vez de uma resposta quando:
- o denominador é exatamente zero, incluindo um número escrito pequeno demais para um número de precisão dupla, como
1e-400, que já é lido como zero; sqrtrecebe um número negativo;logoulnrecebe um número que não é maior que zero;asinouacosrecebe um número fora do intervalo de -1 a 1, o domínio especificado na seção 4,14 da NIST DLMF;tané usada em 90 graus, ou em qualquer múltiplo ímpar desse valor, onde ela não tem valor;- é solicitado o fatorial de algo que não seja um número inteiro de 0 a 170;
- um número contém um segundo ponto decimal, como em
1.2.3; - a expressão tem mais de 512 caracteres.
O limite de 170 é uma propriedade do tipo numérico, não uma preferência: o fatorial de 170 é aproximadamente 7,25741561531E306, o que ainda cabe em um número de precisão dupla, enquanto o fatorial de 171 não cabe. O limite de 512 caracteres é verificado no código, porque é o comprimento da expressão que determina quanto trabalho a calculadora executa.
A verificação da tangente arredonda o ângulo para 9 casas decimais antes de testá-lo. Isso corrige desvios de cálculos anteriores, levando-os de volta à assíntota exata, ao custo de uma janela de recusa de aproximadamente 5e-10 graus de largura em cada lado. tan(89.9999999994) retorna 95.493.592.025, e tan(89.9999999995) é recusada. O modo Radianos não faz essa verificação, porque um valor em radianos digitado próximo da metade de pi é apenas outro número, sem status especial.
Dúvidas frequentes
O que a tecla % faz aqui?
Ela divide por 100 onde quer que apareça. 100+10% é 100,1, porque significa 100 mais 0,1. Ela não calcula uma porcentagem do que veio antes.
2^3^2 é 64 ou 512?
512. As potências são agrupadas da direita para a esquerda, portanto isso significa 2^(3^2), que é 2^9. Isso segue a ISO 80000-2:2019.
Por que 6/2(1+2) é 9 e não 1?
Uma multiplicação implícita tem a mesma precedência que uma divisão, e operações de mesma precedência são interpretadas da esquerda para a direita. Calculadoras que dão maior precedência à justaposição respondem 1. Os parênteses eliminam a dúvida.
Por que sin(180) não mostra 0?
Porque 180 graus é convertido primeiro em radianos, e pi não pode ser escrito exatamente em binário. A resposta é aproximadamente 1.2e-16, que é o valor verdadeiro do seno do número realmente usado pela máquina.
Qual é a diferença entre log e ln?
log é de base 10, portanto log(1000) é 3. ln é de base e, portanto ln(e) é 1. Os rótulos do teclado seguem a mesma convenção das calculadoras científicas da TI e da Casio.
Por que um fatorial acima de 170 é recusado? O fatorial de 171 é maior que qualquer número que um número de precisão dupla possa armazenar, portanto a resposta seria infinito em vez de um número. A calculadora informa isso em vez de mostrar um resultado sem significado.
Fontes
- IEEE 754-2019, Norma IEEE para aritmética de ponto flutuante.
- ECMA-262, ECMAScript Language Specification, seção 6.1.6.1, “The Number Type”.
- ISO 80000-2:2019, Quantities and units, Parte 2: Mathematical signs and symbols.
- NIST Digital Library of Mathematical Functions, seções 4,2 e 4,14.
- Wikipédia, “Order of operations”.
- Wikipédia, “Calculator input methods”.