sábado, 23 de novembro de 2024

Usando o Scilab para expressar constantes irracionais na forma de fração

Como π é um número transcendental, não é possível gerar a quadratura do círculo em um número finito de etapas usando as ferramentas clássicas de compasso e régua.
 

Muitas constantes matemáticas são números irracionais (exemplos: $\sqrt{2}$, $\pi$, ...), logo não podem ser expressas na forma de uma fração. Entretanto, pode ser útil em muitas situações usar uma fração para representar de forma aproximada esse número irracional. Usando o comando 'rat' do Scilab é fácil encontrar o numerador e o denominador dessas frações com uma certa tolerância.   

Sintaxe do comando rat

rat: aproximação racional de ponto-flutuante
Sequência de Chamamento:
[N,D]=rat(x [,tol])
Parâmetros
  x: vetor ou matriz de reais;
  N: vetor ou matriz de inteiros;
  D: vetor ou matriz de inteiros;
  tol: tolerância (opcional).

Um exemplo: [n,d] = rat(sqrt(2),0.0001); retorna: n = 99, d = 70, ou seja, $\sqrt{2} \simeq \frac{99}{70}$, com tolerância de 0.0001 (abs(n./d - x) <= tol*abs(x)).

Um exemplo de código Scilab:

clc;

x = [sqrt(2), sqrt(5), %pi, %e];
xx = ['sqrt(2)','sqrt(5)','pi','e'];
tol = 1e-12; // maior precisão
for n=1:max(size(x))
    [num,den] = rat(x(n),tol);
    disp("Aproximação de "+xx(n)+' = ' + string(num) + "/" + string(den));
end

Saída:

"Aproximação de sqrt(2) = 1607521/1136689"
"Aproximação de sqrt(5) = 930249/416020"
"Aproximação de pi = 1146408/364913"
"Aproximação de e = 1084483/398959"

Uma postagem 'antiga' sobre o mesmo assunto aqui.

Nenhum comentário:

Postar um comentário