Calculando seno(x)/x com o interpretador Hall.
Problema
Seja, por exemplo, calcular o valor do limite fundamental f(x)=sen(x)/x quando x tende a
zero.
Considerações
Fazendo-se a substituição do valor 0 (zero) na expressão de f(x), temos f(x) = sen(0)/0 e que
resulta em uma expressão 0/0 !!! A questão então é, qual será o valor de f(x) quando x -> 0 ?
Vamos usar o interpretador Hall para nos ajudar a resolver esse problema.
Solução
A solução consistirá então em fazermos x se aproximar do valor 0 e calcular o valor de f(x)
para sabermos o que está acontecendo com a função. Há duas formas de fazer x tender a 0:
●
●
Podemos partir de valores que são maiores que 0 e ir decrementando até valores muito
próximos de 0. Note que, x não poderá assumir o valor 0 pois em nossas considerações
anteriores vimos que um valor 0 (zero) para x nos leva a expressão 0/0. Esse processo é
conhecido como “limite à direita”.
Podemos partir de valores que são menores que 0 e ir incrementando até valores muito
próximos de 0. Note que, x não poderá assumir o valor 0 pois em nossas considerações
anteriores vimos que um valor 0 (zero) para x nos leva a expressão 0/0. Esse processo é
conhecido como “limite à esquerda”.
O algoritmo
Bom, iremos desenvolver os dois algoritmos e analisar os resultados gerados. Há um teorema
do cálculo que diz que: “se os limites a esquerda e a direita existirem e forem iguais, então o
limite da função existe e é dado pelo valor encontrado”.
Abaixo está o programa que faz x tender a 0 pela direita, isto é, partimos de valores que são
maiores que 0 e decrementamos até se aproximar de 0. Aqui cabe uma pergunta, Que valor
de decremento utilizar ? Em nosso exemplo utilizamos 15. A resposta a essa pergunta
envolve considerações de precisão nos resultados mas, não é o nosso caso neste exemplo
simples.
Veja o código abaixo:
Interpretador Hall
1
algoritmo()
{
real L;
real x;
// o valor do limite
// a variavel independente
// calcula o valor do seno passando o arco x em graus
// de 180 a 15, de 15 em 15
para (x:=180 ate 10 decr 15)
{
L := seno(x,g) / (x*3.141592/180.0);
escreva("para x = ",x," => f(x) = ",L);
}
}
Obs: Veja no código acima que a chamada à função seno, L := seno(x,g), é realizada com
dois argumentos: o valor do ângulo e a unidade de medida. Tradicionalmente, os ângulos são
medidos em graus, radianos e grados. A letra 'g' como argumento da função especifica que o
ângulo x está sendo passado em graus. Para se passar um ângulo em radianos deve-se usar a
letra 'r'. A opção para grados não está disponível.
Abaixo pode-se ver a tela de execução do algoritmo acima: (a tela abaixo é de uma execução
do interpretador hall no ambiente do FreeBSD. A execução em ambiente windows
apresentará o mesmo resultado). Partimos de um ângulo de 180 graus e caminhamos até 15,
decrementando de 15 em 15. Observe como o valor de f(x) cresce de 0 até um valor que é
próximo de 1 quando o valor de x atinge 15 graus.
Interpretador Hall
2
Poderemos aproximar mais ainda os nossos cálculos e verificar o que está acontecendo. Vamos
reescrever o mesmo algoritmo, fazendo agora x variar de 1 em 1 partindo do valor 10 graus.
Veja abaixo o algoritmo...
algoritmo()
{
real L;
real x;
// o valor do limite
// a variavel independente
// calcula o valor do seno passando o arco x em graus
// de 10 a 1, de 1 em 1
}
para (x:=10 ate 1 decr 1)
{
L := seno(x,g) / (x*3.141592/180.0);
escreva("para x = ",x," => f(x) = ",L);
}
O resultado de execução do algoritmo acima pode ser vista na figura abaixo, veja...
Interpretador Hall
3
Veja que o valor da função f(x) está cada vez mais próximo de 1 à medida que o valor de x
tende a 0.
Vamos fazer um terceiro algoritmo e ver o que acontece. Nesse terceiro programa vamos fazer
a variável x começar de 1 e decrescer até atingir o valor 0.1, decrescendo de 0.1 em 0.1. Veja
o algoritmo abaixo:
algoritmo()
{
real L;
real x;
// o valor do limite
// a variavel independente
// calcula o valor do seno passando o arco x em graus
// de 1 a 0.1, de 0.1 em 0.1
para (x:=1 ate 0.1 decr 0.1)
{
L := seno(x,g) / (x*3.141592/180.0);
escreva("para x = ",x," => f(x) = ",L);
}
}
Abaixo está a tela de execução do algoritmo acima, acompanhe...
Interpretador Hall
4
Bom, é fácil observar como cada vez mais o valor da função f(x) se aproxima de 1 quando x
tende a 0. Em nosso exemplo, pode-se até observar que a função atingiu o valor 1 para x igual
a 0.1. Naturalmente que, na verdade esse valor está vinculado à capacidade de realizar
cálculos do computador assim como ao tipo de dado que foi utilizado no programa para se
modelar o problema.
Obviamente que, se solicitarmos mais casas decimais nos cálculos, o valor de f(x) passará a
ser mais exato e você poderá observar que, na verdade, o valor de f(x) quando x for 0.1 será
alguma coisa como 0.999999..., diferentemente de 1 como apresentado acima. Isso acontece
pois, nos computadores usamos valores discretos ao passo que, matemáticamente falando, as
funções são definidas e estudadas no domínio dos números reais, isto é, em um conjunto com
valores contínuos.
E, claro, esse processo pode-se seguir indefinidamente...mas, até quando ?
O que ou quando parar ? A precisão definida para os resultados é o juiz e, é ela que dirá
quando o resultado fornecido pelo programa está correto. Poderíamos, por exemplo, estipular
que, gostaríamos de valores para f(x) com dez casas decimais ou uma precisão de 0.0000001.
Muito bem. Nos exercícios acima fizemos os programas com limite à direita, isto é, com valores
que tendem a 0 através de valores que são maiores que 0. Faça você agora, os mesmos
algoritmos com limite à esquerda e compare os resultados. Será que f(x) também tenderá a 1 ?
Bom trabalho !
[email protected]
Interpretador Hall
5
Download

Limite seno(x)