Exercícios Resolvidos de Interação, Ramificação e controle de fluxo 2(Estruturas de repetição)

Ver Teoria

Enunciado

Escreva uma codificação em Matlab capaz de avaliar os valores da seguinte expansão de Maclaurin e além disso revele o erro entre a utilização da expansão e da própria exponencial.

e x = ∑ n = 0 N x n n !

Passo 1

Opa iae, está tudo bem?

A questão pede para elaborar um programa que calcule uma soma em séries de potência da exponencial. No caso aqui nós teremos duas entradas de dados.

A primeira entrada de dados corresponde ao número de termos que o somatório tem, no caso o N , e a segunda entrada de dados é o valor de x pelo qual se quer aproximar o valor da exponencial.

Porém o código deve conter uma advertência, as séries de Maclaurin foram criadas para cálculo de funções em torno da origem, ou seja, quanto mais se distanciar da origem maior será o erro.

Para elaboração desse algoritmo precisamos da função fatorial do Matlab, que sua sintaxe corresponde ao f a c t o r i a l ( n )

Passo 2

Para o início do cálculo precisaremos começar pela entrada de dados:

d i s p ( ' Q u a n t o   m a i o r   o   v a l o r   d e   N   m e l h o r   a   a p r o x i m a ç a o ' )

N = i n p u t ( ' d i g i t e   o   v a l o r   d e   N   p a r a   a p r o x i m a r   a   f u n ç a o = ' ) ;

d i s p ( ' q u a n t o   m a i s   p r o x i m o   d e   0   m e l h o r   a   a p r o x i m a ç a o ' )

X = i n p u t ( ' d i g i t e   o   v a l o r   d e   X   q u e   s e   p r e c i s a   c a l c u l a r   a   f x = ' ) ;

Agora precisaremos implementar a estrutura de repetição. Para isso vamos fazer variar a expressão de controle (que é a variável i que aparece ali do lado do f o r ) de 0 até o termo N, pois o somatório acontece de 0 até N e nós vamos usar o i na nossa conta. Então temos:

s o m a = X ;  

f o r   i = 0 : 1 : N

                      s o m a = s o m a + X ^ i / f a c t o r i a l ( i ) ;

e n d

E repara que ali dentro do f o r , eu já coloquei o cálculo da soma, que vai sendo alterado a cada volta, de 0 a N.

Passo 3

Uma vez que criamos o laço de repetição precisamos apenas criar a saída de dados

f p r i n t f ( ' o   v a l o r   d e   F % f e q u i v a l e   a   % f   c o m   u m a   a p r o x i m a ç ã o   d e   o r d e m   % i ' , X , s o m a , N )

Além do valor da soma, vamos também criar o valor erro

E r r o = s o m a - e x p ( X ) ;

f p r i n t f ( ' \ n O   e r r o   d a   a p r o x i m a ç ã o   e q u i v a l e   a   % f ' , E r r o )

Passo 4

Após a implementação do código teremos algo mais ou menos assim:

Executando o código podemos na janela command Windows teremos o seguinte resultado:

Então vemos ali na última linha que o erro é tão pequeno que o matlab aproxima pra zero.

Resposta

O erro é zero.