Exercícios Resolvidos de Derivadas Numéricas

Ver Teoria

Enunciado

Para o polinômio abaixo, plote a função, sua derivada primeira e sua derivada segunda, no intervalo de [-10,10]. Use diferenciação numérica para encontrar as derivadas.

i x = x 7 - 5 x 3 + 14 x 2 - 12

Passo 1

A questão nos pede para gerarmos um gráfico com três curvas, uma representando i ( x ) , outra representando d i d x (a derivada primeira de i ( x ) ) e outra representando d 2 i d x 2 (a derivada segunda de i ( x ) )) com x indo de -10 a 10.

Antes de gerarmos as curvas com função p l o t ( ) , precisamos encontrar as derivadas de i ( x ) , usando diferenciação numérica. Para isso, usaremos a função d i f f ( ) do MATLAB. Lembrando que ela tem a estrutura:

Y   =   d i f f ( X ,   n )

Ela calcula n   vezes a diferença entre os elementos adjacentes do vetor X e nos dá o resultado na forma do vetor Y .

Para encontrarmos a derivada primeira, o vetor X   de entrada de d i f f ( ) será a função i ( x ) . Para a derivada segunda, o vetor X será d i d x .

Nos passos abaixo, vamos entender direitinho o porquê.

Passo 2

Primeiramente, crie um script novo no MATLAB e digite o código abaixo, para gerar um vetor contendo o intervalo de x pedido no enunciado:

O comando acima cria um vetor chamado x cujos elementos vão de -10 a 10, com um passo de 0,01. Escolhi um passo pequeno para as curvas no final saírem suaves, mas você pode escolher o passo que quiser.

Em seguida, precisamos calcular i ( x ) para cada elemento do vetor x . Para isso, digite a linha de código:

Nesta linha de código, colocamos um . ao lado do vetor x indicando que queremos realizar a a operação matemática em cada elemento dele. Por exemplo, x . ^ 7 pede que cada elemento de x seja elevado à sétima potência. Desta forma, criamos um vetor chamado i , de mesmo tamanho de x , que contém o resultado de i ( x ) para cada elemento do vetor x .

Passo 3

Depois de criarmos os vetores x e i , podemos determinar as derivadas primeira e segunda de i ( x ) . Vamos começar com a a derivada primeira. Para encontrarmos d i d x por diferenciação numérica, temos que gerar dois vetores, um representando d i e outro representando d x . O vetor d i teria a diferença de i ( x ) de um valor de x a outro e o vetor d x teria a diferença entre um valor de x e outro.

Estes vetores são gerados por meio da função d i f f ( ) , que tem a estrutura:

Y   =   d i f f ( X ,   n )

Ela calcula n   vezes a diferença entre os elementos adjacentes do vetor X e nos dá o resultado na forma do vetor Y .

Os dois vetores são gerados por meio das seguintes linhas de código:

Na primeira linha, é criado o vetor d x , que contém as diferenças entre elementos adjacentes do vetor x . Para criar o vetor d x , a funçao d i f f ( ) faz um elemento de x menos o elemento à esquerda, começando a partir do segundo elemento de x .

Na segunda linha, é feita a mesma coisa, mas com o vetor i . A variação de i é armazenada no vetor d i .

Note que não entramos nenhum valor para n , porque queremos que a diferença seja feita uma vez. Quando não entramos com nenhum valor para n na função d i f f ( ) , por o padrão o MATLAB adota n = 1 .

Passo 4

Com os vetores d x e d i criados, podemos calcular d i d x por meio da linha de código:

Com este comando, dividimos cada elemento do vetor d i pelo elemento do vetor d x que esteja na mesma posição e o resultado é armazenado no vetor d i d x .

O vetor d i d x representa a derivada primeira de i ( x ) obtida por meio de diferenciação numérica. Com o vetor d i d x , podemos gerar o gráfico de d i d x .

Passo 5

Após determinarmos a primeira derivada, vamos calcular a segunda derivada de i ( x ) , por meio de diferenciação numérica. Assim como fizemos para a primeira derivada no passo 3, para determinar d 2 i d x 2 , precisamos construir dois vetores, um representando d 2 i e outro representando d x 2 , e dividir um pelo outro.

Para isto, usamos a função d i f f ( ) de novo. No MATLAB, digite a linha de código:

Com este comando, aplicamos a função d i f f ( ) no vetor d i d x , que representa d i d x , e armazenamos o resultado no vetor d 2 i . Calculando a diferença entre os elementos adjacentes de d i d x , é como se estivéssemos calculando a derivada de d i d x , que é consequentemente d 2 i d x 2 .

d 2 i é o nosso vetor representando d 2 i . Para criar o vetor d x 2 , vamos criar um vetor auxiliar chamado x d , com tamanho compatível ao vetor d i d x :

A linha de código acima diz que o vetor x d é um pedaço do vetor x , começando do segundo elemento de x e indo até o final de x (indicando por e n d ). Precisamos criá-lo pois o vetor d i d x tem um elemento a menos que o vetor x e para calcular d 2 i d x 2 , precisamos que os vetores d 2 i e d x 2 tenham o mesmo comprimento.

Para criar o vetor d x 2 , digite a linha de código:

O vetor d x 2 contém a diferença entre os elementos adjacentes de x d e representa o vetor d x 2 .

Passo 6

Com os vetores d x 2 e d 2 i criados, podemos calcular d ² i d x ² por meio da linha de código:

Com este comando, dividimos cada elemento do vetor d 2 i pelo elemento do vetor d x 2 que esteja na mesma posição e o resultado é armazenado no vetor d 2 i d x 2 .

O vetor d 2 i d x 2 representa a derivada segunda de i ( x ) obtida por meio de diferenciação numérica. Com o vetor d 2 i d x 2 , podemos gerar o gráfico de d ² i d x ² .

Passo 7

Antes de gerar o gráfico de i ( x ) , d i d x e de d ² i d x ² , precisamos criar um vetor auxiliar para podermos plotar a curva de d ² i d x ² em função de x .

Precisamos criar esse vetor auxiliar porque o vetor d 2 i d x 2 tem dois elementos a menos do que x , já que ele na prática foi criado usando a função d i f f ( ) duas vezes seguidas. Vetores de tamanhos diferentes dão um erro na função p l o t ( ) .

Vamos chamar o vetor auxiliar da segunda derivada de x d 2 e criá-lo com a linha de código:

Este comando diz que o vetor x d 2 é um pedaço do vetor x , começando do terceiro elemento de x e indo até o final de x .

Note que, para plotar d i d x em função de x , podemos aproveitar o vetor x d do passo 5, já x d tem o mesmo comprimento de   d i d x .

Pronto! Já temos todas informações necessárias para gerar o gráfico pedido no enunciado.

Passo 8

Vamos criar as curvas de i ( x ) , de d i d x e de d ² i d x ² na mesma janela. Para isso, entre as três linhas de código abaixo:

Na primeira linha, pedimos ao MATLAB para plotar i em função de x , d i d x em função de x d e d 2 i d x 2 em função de x d 2 .

Na segunda linha, damos um nome ao eixo x do gráfico: chamamos ele de x.

Na terceira linha, criamos uma legenda para o gráfico. A string ‘ i ( x ) ’ é a legenda da curva gerada pelo primeiro par de vetores, x e i , da função p l o t ( ) . Já a string ‘ d i / d x ’ é a legenda da curva gerada pelo segundo par de vetores, x d e d i d x , da função p l o t ( ) . Finalmente, a string ‘ d 2 i / d x 2 ’ se refere ao terceito par de vetores da função p l o t ( ) , x d 2 e d 2 x d x 2 .

Rodando nosso programa, temos o gráfico pedido no enunciado:

A curva azul representa i ( x ) , a curva vermelha representa d i d x e a curva amarela representa d ² i d x ² .

Resposta

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