Exercícios Resolvidos de Derivadas Numéricas

Ver Teoria

Enunciado

Para o polinômio abaixo, plote a função e sua derivada, no intervalo de [-10,10], usando diferenciação numérica.

h x = x 5 - 4 x 4 - 9 x 3 + 32 x 2 + 28 x - 48

Passo 1

A questão nos pede para gerarmos um gráfico com duas curvas, uma representando h ( x ) e outra representando d h d x , com x indo de -10 a 10.

Antes de gerarmos as curvas com função p l o t ( ) , precisamos encontrar a derivada de h ( x ) , usando diferenciação numérica. Para isso, usaremos a função d i f f ( ) do MATLAB.

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 h ( x ) para cada elemento do vetor x . Para isso, digite a linha de código:

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

Passo 3

Para encontrarmos d h d x por diferenciação numérica, temos que gerar dois vetores, um representando d h e outro representando d x . O vetor d h teria a diferença de h ( 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 ( ) . Lembrando que ela tem a seguinte 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ção 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 h . A variação de h é armazenada no vetor d h .

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 h criados, podemos calcular d h d x por meio da linha de código:

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

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

Passo 5

Antes de gerar o gráfico de h ( x ) e de d h d x , precisamos criar um vetor auxiliar para podermos plotar a curva de d h d x em função de x . Esse vetor auxiliar é necessário por que o vetor d h d x tem um elemento a menos do que x , o que levaria a um erro na função p l o t ( ) .

Vamos chamar o vetor auxiliar de x d e criá-lo da seguinte forma:

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 ).

Já temos tudo o que precisamos para gerar os gráficos de h ( x ) e de d h d x . Vamos criar as curvas de ambos na mesma janela. Para isso, entre as três linhas de código abaixo:

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

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 ‘ h ( x ) ’ é a legenda da curva gerada pelo primeiro par de vetores, x e h , da função p l o t ( ) . Já a string ‘ d h / d x ’ é a legenda da curva gerada pelo segundo par de vetores, x d e d h d x , da função p l o t ( ) .

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

A curva azul representa h ( x ) e a curva vermelha, d h d x .

Resposta

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