Exercícios Resolvidos de Derivadas Numéricas

Ver Teoria

Enunciado

A figura abaixo mostra um mecanismo biela-manivela:

A manivela AB tem comprimento R   = 90 mm e rotaciona a uma velocidade constante. A posição x do pistão C varia de acordo com o ângulo θ segundo a equação:

x = R c o s c o s   θ   + 2,5 2 - s i n s i n   θ   2

Crie um programa que calcule a taxa de variação da posição do pistão em função de θ , para θ = 0 ° ,   5 ° ,   10 ° ,   … ,   180 ° , usando diferenciação numérica. Ao final, plote as curvas de x em função de θ e de d x d θ em função de θ .

Passo 1

O enunciado nos dá um expressão de x   em função de θ , representando a posição de um pistão de um mecanismo biela-manivela.

Ele pede para encontrarmos a taxa de variação da posição do pistão em função de θ . Isto significa que devemos encontrar a primeira derivada de x em função de θ , isto é, d x d θ .

Para encontrarmos d x d θ por diferenciação numérica, primeiramente devemos calcular o valor de x para a faixa de valores de θ dada, que vai de 0° a 180°, de 5° em 5°. Em seguida, usamos a função d i f f ( ) do MATLAB nos valores encontrados para determinar d x d θ .

Ao final, geraremos um gráfico com as curvas de x   e d x d θ   em função de θ .

Passo 2

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

O comando acima cria um vetor chamado t h e t a cujos elementos vão de 0° a 180°, com um passo de 5°, conforme exigido no enunciado. Os elementos de t h e t a são convertidos de graus para radianos ao serem multiplicados por π 180 .

Em seguida, precisamos calcular x para cada elemento do vetor t h e t a . Para isso, usaremos um laço f o r . Em seu script do MATLAB, digite as linhas de código:

Na primeira linha, eu entro com o comprimento da manivela AB, que é de 90 mm, armazenando-a em uma variável chamada R .

Na segunda linha, crio um vetor x que só tem zeros, com a função z e r o s ( ) , que tem a seguinte estrutura:

A   =   z e r o s ( n _ l i n h a s ,   n _ c o l u n a s )

A função z e r o s ( ) cria uma matriz A que só tem 0 em seus elementos. Ela tem como entrada o número de linhas da matriz de zeros que você quer criar, n _ l i n h a s , e o número de colunas, n _ c o l u n a s .

O vetor x criado na segunda linha tem uma linha e o mesmo número de colunas do vetor t h e t a . Entramos com o número de colunas de t h e t a usando a função l e n g t h ( ) , que nos dá a quantidade de elementos de t h e t a .

Na terceira linha, começo com meu laço f o r . Ele vai de 1 até a quantidade de elementos de t h e t a , determinada pela função l e n g t h ( ) .

Na quarta linha, entro com a função que determina a posição do pistão em função de θ .

Finalmente, na última linha, encerro o laço f o r .

Passo 3

Para encontrarmos d x d θ por diferenciação numérica, temos que gerar dois vetores, um representando d x e outro representando d θ . O vetor d x teria a diferença de posição do pistão de um ângulo θ a outro e o vetor d θ teria a diferença entre um ângulo θ 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ç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 t h e t a . A variação de t h e t a é armazenada no vetor d t h e t a .

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

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

O vetor d x d t h e t a representa a derivada de x em função de θ obtida por meio de diferenciação numérica. Em outras palavras, d x d t h e t a representa a taxa de variação da posição do pistão de acordo com o ângulo θ .

Com o vetor x e d x d t h e t a , podemos gerar os gráficos pedidos no enunciado.

Passo 5

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

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

A linha de código acima diz que o vetor t d é um pedaço do vetor t h e t a , começando do segundo elemento de t h e t a e indo até o final de t h e t a (indicando por e n d ).

Já temos tudo o que precisamos para gerar os gráficos de x e de d x d θ . 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 x em função de t h e t a e d x d t h e t a em função de t d .

Na segunda linha, damos um nome ao eixo x do gráfico: chamamos ele de θ e indicamos a unidade entre colchetes. Usei \ t h e t a para sair o símbolo θ no gráfico.

Na terceira linha, criamos uma legenda para o gráfico. A string ‘ x ’ é a legenda da curva gerada pelo primeiro par de vetores, t h e t a e x , da função p l o t ( ) . Já a string ‘ d x / d \ t h e t a ’ é a legenda da curva gerada pelo segundo par de vetores, t d e d x d t h e t a , da função p l o t ( ) . Novamente, usei \ t h e t a para sair o símbolo θ no gráfico.

Ao rodarmos o programa, é gerado o gráfico abaixo:

A curva azul representa a posição x do pistão em função de θ .

A curva vermelha representa a taxa de variação da posição do pistão em função de θ , isto é, d x d θ .

Resposta

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