Como fazer raiz quadrada em javascript

Anterior: método JavaScript tan ()

Seguinte: JavaScript sin () Método

JavaScript Object Math

Retorna a raiz quadrada de um número:

Math.sqrt(9);

saída:

3


tente »

Definição e Uso

sqrt () retorna a raiz quadrada de um número.

Suporte a navegadores

Como fazer raiz quadrada em javascript
Como fazer raiz quadrada em javascript
Como fazer raiz quadrada em javascript
Como fazer raiz quadrada em javascript
Como fazer raiz quadrada em javascript

Todos os principais navegadores suportam sqrt () Método

gramática

parâmetro Valor

Valor de retorno

类型 描述
Number/NaN 参数 x 的平方根。如果 x 小于 0,则返回 NaN。

detalhes técnicos


mais exemplos

Neste caso, vamos voltar à raiz quadrada das diferentes figuras:

var a=Math.sqrt(0); var b=Math.sqrt(1); var c=Math.sqrt(9); var d=Math.sqrt(64);

var e=Math.sqrt(-9);

a, b, c, d, e e de saída:


tente »


JavaScript Object Math

Anterior: método JavaScript tan ()

Seguinte: JavaScript sin () Método

Neste exemplo, você aprenderá a escrever um programa para encontrar a raiz quadrada de um número em JavaScript.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação JavaScript:

  • Variáveis ​​e constantes de JavaScript
  • JavaScript Math sqrt ()

Para encontrar a raiz quadrada de um número em JavaScript, você pode usar o Math.sqrt()método integrado . Sua sintaxe é:

Math.sqrt(number);

Aqui, o Math.sqrt()método pega um número e retorna sua raiz quadrada.

Exemplo: raiz quadrada de um número

// take the input from the user const number = prompt('Enter the number: '); const result = Math.sqrt(number); console.log(`The square root of $(number) is $(result)`);

Resultado

Digite o número: 9 A raiz quadrada de 9 é 3

Exemplo 2: Raiz quadrada de diferentes tipos de dados

const number1 = 2.25; const number2 = -4; const number3 = 'hello'; const result1 = Math.sqrt(number1); const result2 = Math.sqrt(number2); const result3 = Math.sqrt(number3); console.log(`The square root of $(number1) is $(result1)`); console.log(`The square root of $(number2) is $(result2)`); console.log(`The square root of $(number3) is $(result3)`);

Resultado

A raiz quadrada de 2,25 é 1,5 A raiz quadrada de -4 é NaN A raiz quadrada de hello é NaN
  • Se 0 ou um número positivo for passado no Math.sqrt()método, a raiz quadrada desse número será retornada.
  • Se um número negativo for passado, NaNserá retornado.
  • Se uma string é passada, NaNé retornado.

Nós usamos nossos próprios cookies e cookies de terceiros para atividades de marketing e para lhe proporcionar uma melhor experiência. Leia sobre como usamos cookies e como você pode controlá-los, clicando em Preferências.

Neste tutorial de JavaScript, vamos aprender como trabalhar com Matemática usando o objeto nativo Math, da linguagem, que fornece diversos métodos para cálculos matemáticos.

  • Estudar offline pela Apostila de JavaScript

Bom, vamos lá.

Primeiro vamos estudar a square root, que significa raiz quadrada.

Para saber a raiz quadrada de qualquer número, basta usar o método sqrt() do objeto Math, que recebe um número como parâmetro e retorna um número também.

Ou seja:

Math.sqrt(16) = 4

Math.sqrt(25) = 5

Math.sqrt(2112) = 45.95650117230423

Ou seja, se o resultado for inteiro, ele mostra o inteiro.

Se for 'quebrado', ele mostra o float correspondente.

Bem simples calcular raiz quadrada, não ?

Para calcular um número x elevado a y, basta fazer:

Math.pow(x,y)

E vale tanto para números inteiros como decimais.

Por exemplo:


Math.pow( 2, 7 ) = 128

Math.pow( 9, 0.5 ) = 3.0



Para calcular o seno de um número x em radianos, use:

Math.sin(x)

Por exemplo:

Math.sin(0) = 0

Math.sin(0.523599) = 0.500 (0,523599 radianos valem 30 graus).

Math.sin(1.5708) = 0.99999 (seno de 90 graus)

Já para calcularmos o cosseno, fazemos:

Math.cos(x)

Por exemplo:

Math.cos(0) = 1

Math.cos(1.0472) = 0.49999 (1.0472 radianos valem 60 graus)

Math.cos(1.5708) = 0.0000

Já para calcularmos a tangente de x (em radianos), fazemos:

Math.tan(x)

Por exemplo:

Math.tan(0) = 0

Math.tan(0.785398) = 0.49999 (0.785398 equivale a 45 graus)

Exponencial de um valor x é o mesmo que: e^x

(ou seja, e elevado a x).

Para calcular em JavaScript, faça: Math.exp(x)

Por exemplo:


Math.exp( 1 ) = 2.71828

Math.exp( 2 ) = 7.38906


Para calcular o logaritmo natural, na base e, faça:

Math.log(x)

Veja bem, não é o logaritmo comum. É o ln X, logaritmo na base natural e.

Por exemplo:


Math.log( 2.718282 ) = 1

Math.log( 7.389056 ) = 2

Outros métodos muito usados do objeto Math, são as funções de arredondar.

Para arredondar um número para cima, fazemos:

Math.ceil(x)

Ele vai arredondar para o menor valor inteiro, que não é menor que x.

Por exemplo:

Math.ceil( 21.12 ) = 22

Math.ceil( -8.8 ) = -8

Para arredondar para baixo, usamos:

Math.floor(x)

Ele vai arredondar para o maior valor, maior que x.

Por exemplo:

Math.floor( 21.12 ) = 21

Math.floor( - 8.8 ) = -9

Já para arredondar para o inteiro mais próximo, não importante se é pra mais ou pra menos, use:

Math.round(x)

Por exemplo:

Math.round( 8.75 ) = 9 

Math.round( 21.12 ) = 21

O que o JavaScript faz se você tentar arredondar um número que está a igual distância do maior e menor inteiro mais próximo, por exemplo: 1.5 ? Teste e descubra!

Para calcular o valor máximo entre os números x e y, use:

Math.max(x,y)

Por exemplo:

Math.max( 2.1, 1.2 ) = 2.1

Math.max( -21, -12) = -12

Já para calcular o menor valor entre os números x e y, faça:

Math.min(x,y)

Por exemplo:

Math.min( 2.1, 1.2 ) = 1.2

Math.min( -21, -12 ) = -21

Para calcular o valor absoluto de um número (ou seja, sua distância até o ponto 0 do plano cartesiano), também conhecido por módulo, faça:

Math.abs(x)

Por exemplo:

Math.abs(21) = 21

Math.abs(-12) = 12

Constantes Matemáticas

Outra importante ferramenta que o Objeto Math nativo do JavaScript nos proporciona, é a possibilidade de se trabalhar com as principais contantes da Matemática, vejamos algumas.

  1. Math.E - Base do logaritmo natural; vale aproximadamente 2.718
  2. Math.LN2 - Logaritmo natural de 2 ; vale aproximadamente 0.693
  3. Math.LN10 - Logaritmo natural de 10 ; vale aproximadamente 2.302
  4. Math.LOG2E - Logaritmo de e na base 2 ; vale aproximadamente 1.442
  5. Math.LOG10E - Logaritmo de e na base 10 ; vale aproximadamente 0.434
  6. Math.PI - A constante pi (razão do comprimento pelo diâmetro de um círculo) ; 3.141592653589793
  7. Math.SQRT1_2 - Raiz quadrada de 0.5 ; vale aproximadamente 0.707
  8. Math.SQRT2 - Raiz quadrada de 2 ; vale aproximadamente 1.414

<html> <head> <title>Estudando JavaScript</title> </head> <body> <script type="text/javascript"> var valores = new Array(1, 2, 3, 4, 5, 6, 7); document.write("Valores no vetor: " + valores + "<br>"); document.write("Retornando os três primeiros elementos<br>"); var valores2 = valores.slice(0, 3); document.write("Valores no novo vetor: " + valores2); </script> </body> </html>

<script type="text/javascript"> function obterSoma(valor, indice, vetor){ if(valor >= 20){ soma = soma + valor; } } var valores = new Array(21, 5, 30, 7, 12, 3); // vamos obter a soma dos valores maiores ou iguais a 20 var soma = 0; // percorremos os elementos do vetor individualmente valores.forEach(obterSoma); window.alert("A soma é: " + soma); </script>

Existe uma aproximação rápida de raiz quadrada através de uma equação linear:

L(x) = f(a) + f'(a)*(x-a)

Para um dado valor a em que a função tenha um valor conhecido e f'(_) sendo a derivada da função. Por coincidência, a derivada da raiz quadrada é a metade do inverso da raiz quadrada.

O valor da raiz quadrada é plenamente conhecida em quadrados perfeitos, logo, vamos tratar a como sendo um quadrado perfeito, e f(a) sua raiz inteira.

Logo, a fórmula da aproximação pode ser transformada assim:

(x-a) sqrt_approx(x) = sqrt_int(a) + ------------- 2*sqrt_int(a)

Para a aproximação dar certo, preciso escolher um a próximo o suficiente de x.

Assim, nosso algoritmo agora se resume a:

  1. achar a quadrado perfeito (e sua raiz inteira sqrt_int(a)) o mais próximo de x
  2. aplicar a fórmula

A grosso modo, seria isso:

function sqrt_approx(x) { let sqrt_a = raiz_do_quadrado_mais_proximo(x); let a = sqrt_a * sqrt_a; // se x for um quadrado perfeito, x-a resultará em zero e a resposta será sqrt_a return sqrt_a + (x-a)/(2*sqrt_a); }

Ótimo, agora só falta definir quem é o quadrado mais próximo de x. Como estamos lidando com números reais, não faz sentido investigar raízes de números negativos, logo vou reduzir o conjunto de busca apenas para os positivos. A ideia é bem simples: itero de 0 a infinito, verificando a distância do quadrado da variável de iteração para o x. No momento em que houver uma inflexão (ie, a distância deixar de ser negativa e passar a ser positiva), retorno ou o elemento atual da iteração ou o elemento anterior, de acordo com o quadrado mais próximo de x:

function raiz_do_quadrado_mais_proximo(x) { let i = 0; while (true) { let ii = i * i; if (ii - x > 0) { let dist_ii = x - ii; let dist_ant = x - (i-1)*(i-1); if (dist_ii < 0) { dist_ii *= -1; } if (dist_ant < 0) { dist_ant *= -1; } return dist_ant < dist_ii? i-1: i; } } }

O código acima pode ser otimizado trivialmente para:

function raiz_do_quadrado_mais_proximo(x) { let i = 0; while (i*i < x) { // itera até a inflexão i++; } let dist_ii = i*i - x; // i*i >= x garantido, depois da inflexão, daí dist_ii está sendo calculado já positivo let dist_ant = x - (i-1)*(i-1); // antes da inflexão, x será maior que o quadrado, daí dist_ant está sendo calculado já positivo return dist_ant < dist_ii? i-1: i; }

Juntando tudo, temos:

function faz_leitura(form) { let x = Number(document.getElementById("quad").value); let raiz_apprx = sqrt_approx(x); let err = x - (raiz_apprx * raiz_apprx); if (err < 0) { err = -err; } document.write("<div>Raiz quadrada aproimada de " + x + " é " + raiz_apprx + ", com erro de " + err + "</div>"); } function raiz_do_quadrado_mais_proximo(x) { let i = 0; while (i*i < x) { i++; } let dist_ii = i*i - x; let dist_ant = x - (i-1)*(i-1); return dist_ant < dist_ii? i-1: i; } function sqrt_approx(x) { let sqrt_a = raiz_do_quadrado_mais_proximo(x); let a = sqrt_a * sqrt_a; // se x for um quadrado perfeito, x-a resultará em zero e a resposta será sqrt_a return sqrt_a + (x-a)/(2*sqrt_a); } <form onsubmit="faz_leitura(this); return false;"> <div> <input required type="text" id="quad"/> <label>valor a ser calculada a raiz</label> </div> <button type="submit">SQRT</button> </form>