Exercícios Resolvidos de Analisando seu programa

Ver Teoria

Enunciado

O código abaixo verifica o limite:

lim x → 0 ⁡ sin ⁡ x x = 1

Calculando sin ⁡ x x para x = 0,1 ; 0,01 ; … ; 0,00000001 . Em seguida, as posições dos elementos do vetor que armazena sin ⁡ x x para cada valor de x que estão dentro de uma dada tolerância, representada pela variável e r r o , são determinadas.

Descubra por que o programa não funciona, usando o MATLAB.

Passo 1

Este exercício pede que identifiquemos os erros do programa do enunciado, usando o MATLAB. Devemos copiar o programa em um novo script e rodá-lo algumas vezes, até que não apareçam mais mensagens de erro.

Passo 2

Em um novo script do MATLAB, copie o código do enunciado.

Antes de executarmos o programa, vamos ver o que cada linha de código faz, pois isso é necessário para identificar eventuais erros:

Na primeira linha, temos o comando c l e a r   a l l , que limpa o Workspace do MATLAB cada vez que o programa é rodado. Como procuramos erros no código e teremos que rodá-lo várias vezes para ver se corrigimos alguma coisa e encontrar mais erros, é importante limpar o Workspace a cada tentativa.

Na segunda linha, o comando c l c limpa o Command Window do MATLAB cada vez que o programa é executado. Novamente, como vamos rodar o código diversas vezes, é importante limpar o Command Window a cada tentativa, para ficar mais fácil de ver qual erro foi corrigido e qual é o erro a ser corrigido na sequência, caso exista.

Na linha 4, pedimos ao MATLAB para nos mostrar os números resultantes dos cálculos com 16 algarismos significativos.

Na linha 5, criamos um vetor x , cujo primeiro elemento será 0,1 1 , o segundo será 0,1 2 , e assim sucessivamente, até o último elemento 0,1 8 . Logo, x = 0,1 1 0,1 2 … 0,1 8 . Isto é feito elevando-se 0,1 a uma potência dada pelo vetor [ 1 : 8 ] , que vai de 1 a 8 .

Na linha seguinte, calcula-se sin ⁡ x x para cada elemento de x , e os resultados são armazenados no vetor y .

Na linha 8, calcula-se a tolerância, salva na variável e r r o . A tolerância é dada pela diferença entre 1 e o oitavo elemento do vetor x , que é muito próximo de 0 .

A tolerância é usada na linha 9 para determinar qual elemento do vetor y é maior ou igual a ela, por meio da função f i n d , que nos retorna os índices dos elementos de y que sejam maiores ou iguais a e r r o . Desta forma, determina-se os elementos de y que são o mais próximo possível de 1 , considerando a tolerância adotada.

Passo 3

Após ver o que cada linha faz, vamos executar o programa pela primeira vez para identificar o primeiro erro. O Command Window fornecerá a seguinte mensagem:

O MATLAB avisou que tem um erro na linha 5, dizendo que o operador ^ só aceita como entrada um número escalar ou uma matriz quadrada. Isto quer dizer que o problema está em 0.1 ^ [ 1 : 8 ] .

O MATLAB só trabalha com potências que sejam números ou matrizes quadradas, e a potência na linha 5 é um vetor que vai de 1 a 8 . Queremos elevar 0,1 a cada elemento do vetor [ 1 : 8 ] . Para fazermos isto, coloque um ponto ao lado de 0,1 na linha 5. Além disso, apague o ; ao final da linha, para quando executar o programa, o vetor x ser impresso automaticamente no Command Window:

Vamos ver como x ficou?

Agora x está do jeito queremos e não há mais mensagens de erro. Contudo, isso não significa que está tudo certo ainda com o programa.

Passo 4

Vamos ver se está tudo certo com a linha 6, onde se deseja calcular sin ⁡ x x para cada elemento de x e gerar um vetor y com os resultados. Se você imprimir y no Command Window, você verá que ele é um escalar, e nos queremos que ele seja um vetor:

Para que y seja um vetor com a solução de sin ⁡ x x para cada elemento do vetor x , devemos incluir um ponto à esquerda do sinal de divisão, na linha 6:

Vamos ver como ficou y agora? Rode o programa e o imprima no Command Window:

Agora temos um vetor! E veja que legal: quando o elemento de x é mais próximo de 0 , o seu elemento de y correspondente se aproxima de 1 , como indica o limite lim x → 0 ⁡ sin ⁡ x x = 1 .

Passo 5

Para finalizar, vamos ver qual o valor de e r r o :

E vamos ver as posições dos elementos de y que são maiores ou iguais a e r r o :

Para ver quais elementos de y estão nessas posições, digite no Command Window y ( c ) :

Podemos perceber que eles realmente são maiores que e r r o e muito próximos de 1 .

Resposta

Ei, a resposta está no passo a passo :)