Exercícios Resolvidos de Transformada Z

Ver Teoria

Enunciado

Supondo que um casal de coelhos precisa de um ano para amadurecer e gerar filhotes e que eles geram um casal de filhotes a cada ano, a população de coelhos p ( n ) no ano n é descrita pela equação das diferenças:

p ( n + 2 )   =   p ( n + 1 )   +   p ( n )

Encontre p ( n ) para determinar qual será a população de coelhos em 15 anos. Considere p ( 0 ) = 2 e p ( 1 ) = 4 .

Passo 1

O exercício pede para encontrarmos a solução p ( n ) de uma equação de diferenças, que representa a população de coelhos no ano n . Para encontrarmos p ( n ) , usaremos a transformada Z. Primeiramente, aplicaremos a função z t r a n do MATLAB na equação das diferenças para encontrarmos a transformade Z de p ( n ) . Como o enunciado não especificou nada, consideraremos que a variável independente das transformadas Z é z , que é o padrão do MATLAB. Logo, a transformada Z de p ( n ) será P ( z ) .

Após encontrarmos P ( z ) , vamos aplicar i z t r a n s para encontrar a inversa da transformada Z, isto é, p ( n ) , que é a solução da equação das diferenças. Conhecendo p ( n ) , calcularemos a população de coelhos daqui a 15 anos fazendo n = 15 .

Passo 2

Vamos começar entrando com a equação de diferenças no MATLAB. Em um script novo, digite as linhas de código:

Na primeira linha, definimos a variável simbólica p ( n ) (indicamos que p é em função de n ).

Na segunda linha, dizemos ao MATLAB para assumir (função a s s u m e ( ) ) que a variável simbólica n é maior ou igual a zero ( n > = 0 ) e que ela é um número inteiro (pois falaremos apenas em “um ano”, “dois anos”, etc, e não consideraremos “um ano e meio”, por exemplo), usando o comando i n ( n , ' i n t e g e r ' ) .

Na terceira linha, entramos com a equação de diferenças na variável e q n , mas dando uma reformuladinha nela, jogando todos os termos para a esquerda e dizendo que ela é igual a 0 .

Passo 3

Com a equação de diferenças no MATLAB, podemos usar a função z t r a n s para calcular a transformada Z dela. Lembrando que z t r a n s tem como estrutura:

F = z t r a n s ( f )

Ela retorna a transformada Z da função f , armazenando-a na variável F . Quando não tem mais nenhuma entrada em z t r a n s além de f , o MATLAB assume que a variável independente de f é n e fará que a transformada Z F seja em função de z .

Acrescente em seu programa o comando abaixo para calcular a transformada Z de e q n :

O resultado é armazenado em E .

Vamos ver como ficou E ? Rodando o programa que fizemos até agora, temos:

Percebe que tem um termo aí que aparece umas três vezes? z t r a n s ( p ( n ) ,   n ,   z ) tem exatamente a mesma estrutura da função z t r a n s e representa a transformada Z de p ( n ) , podendo ser substituído por P ( z ) . No caso, chamaremos P ( z ) só de P .

Adicione os comandos abaixo em seu programa para fazer a substituição:

Primeiramente, devemos criar mais duas variáveis simbolicas: z e P . Em seguida, usamos a função s u b s para pedir ao MATLAB que substitua em E a expressão z t r a n s ( p ( n ) ,   n ,   z ) por P . O resultado da substituição é armazenado em E , ficando no lugar daquela expressão comprida que vimos.

Após a substituição, E fica assim:

Bem mais bonitinha, né? E tem mais coisa pra substituir aí. O enunciado disse para considerarmos p ( 0 ) = 2 e p 1 = 4 . Para fazer as substituições, adicione ao seu programa a linha de código:

Com este comando, substituímos p ( 0 ) por 2 e p ( 1 ) por 4 em E e armazenamos a nova expressão em E , no lugar daquele E mostrado no print acima. Executando o programa, podemos ver como E está agora:

Passo 4

Para encontrar p ( n ) , precisamos encontrar P ( z ) para daí aplicar nela i z t r a n s , para termos a inversa da tranformada Z. Em E , a variável P representa P ( z ) e podemos usar a função s o l v e do MATLAB para encontrá-la. Adicione em seu código:

Com este comando, a função s o l v e resolve a equação E para a variável P e armazena a solução em P , atualizando seu valor. Na prática, isolamos P na equação com este comando e P passa a representar a expressão algébrica de P ( z ) . Rodando o programa, temos que P é igual a:

Quer dizer que:

P z = - 2 z 2 + 2 z - z 2 + z + 1

Para encontrarmos p ( n ) , devemos aplicar a inversa da transformada Z em P ( z ) , isto é, usar a função i z t r a n s do MATLAB em P . A função i z t r a n s tem a estrutura:

f = i z t r a n s ( F )

Ela retorna a inversa da transformada Z de F , armazenando-a na variável f . Quando não tem mais nenhuma entrada em i z t r a n s além de F , o MATLAB assume que a variável independente de F é z e fará que a inversa da transformada Z f seja em função de n .

Para encontrar p ( n ) , entre o comando:

Com este comando, o MATLAB calcula a inversa da transformada Z de P e armazena o resultado em p , atualizando seu valor. p é a solução da equação de diferenças e representa a população de coelhos em função de n anos.

Rodando o programa, temos que p é igual a:

Que expressão comprida, né? Tive que deixar a fonte bem pequenininha pra caber na página.

Passo 5

Queremos encontrar a população de coelhos em 15 anos. Para isto, substituiremos n por 15   em p , usando o comando:

O resultado é armazenado na variável p 15 , representando p ( 15 ) .

Se rodarmos o programa, teremos uma expressão gigantesca que não nos dará diretamente a população de coelhos em 15 anos:

Isso acontece pois p 15 é uma variável simbólica. Para encontrarmos a população, devemos resolver cada uma das operações matemáticas de p 15 , usando o comando v p a :

Este comando aplica a função v p a em p 15 e armazena o resultado em p 15 , substituindo a expressão anterior pelo resultado das operações matemáticas. Ao rodar programa, temos:

p 15 é um número complexo, mas note que a parte imaginária é bem pequenininha, na ordem de 10 - 35 . Logo, podemos desprezar a parte imaginária e dizer que a população de coelhos daqui a 15 anos é 3194 .

Resposta

Daqui a 15 anos, a população de coelhos será de 3194 .