Crie um subplot(2,1,n) para esta questão. Utilize a função ode45 e plote na mesma janela, os gráficos das soluções numérica e analítica. Plote o gráfico dos erros absolutos.
Passo 1
Beleza, vamos começar resumindo o que a questão pede. A tarefa é criar um gráfico dividido em duas partes usando
subplot(2,1,n)
no MATLAB. Vamos usar a função ode45
para resolver uma equação diferencial numericamente e também obter a solução analítica. Depois, vamos plotar ambas as soluções no mesmo gráfico e, na segunda parte do subplot, mostrar o gráfico dos erros absolutos entre as soluções numérica e analítica. Para resolver isso, precisamos entender como usar o ode45
, como plotar múltiplas curvas no mesmo gráfico e como calcular e plotar os erros absolutos.Passo 2
Primeiro, vamos definir a equação diferencial que queremos resolver. Suponha que temos uma equação do tipo:
E uma condição inicial
.
Passo 3
Vamos utilizar a função
ode45
do MATLAB, que é um método numérico para resolver equações diferenciais ordinárias. Ele utiliza um método adaptativo de Runge-Kutta de quarta e quinta ordem para calcular as soluções.Para usar o
ode45
, precisamos definir uma função que represente nossa equação diferencial. Por exemplo:function dydt = minhaEquacao(t, y)
dydt = -2 * y + exp(-t);
end
Passo 4
Agora, vamos definir o intervalo de tempo e a condição inicial para a solução numérica:
t0 = 0; % Tempo inicial
tf = 5; % Tempo final
y0 = 1; % Condição inicial
Passo 5
Com a função da equação diferencial e os parâmetros definidos, podemos chamar o
ode45
para obter a solução numérica:[t_num, y_num] = ode45(@minhaEquacao, [t0 tf], y0);
Aqui,
t_num
contém os pontos de tempo e y_num
as soluções numéricas correspondentes.Passo 6
Vamos agora encontrar a solução analítica da equação diferencial. Supondo que conseguimos resolver a equação, a solução analítica pode ser da forma:
Passo 7
Vamos calcular a solução analítica para os mesmos pontos de tempo usados na solução numérica:
y_analitica = (y0 - 0.5) * exp(-2 * t_num) + 0.5 * exp(-t_num);
Passo 8
Agora, vamos criar o subplot com duas linhas e uma coluna. No primeiro gráfico, vamos plotar as soluções numérica e analítica no mesmo gráfico:
subplot(2,1,1);
plot(t_num, y_num, 'b-', t_num, y_analitica, 'r--');
xlabel('Tempo t');
ylabel('Solução y(t)');
legend('Numérica', 'Analítica');
title('Soluções Numérica e Analítica');
Passo 9
No segundo subplot, vamos calcular e plotar os erros absolutos entre as soluções numérica e analítica:
erro_absoluto = abs(y_num - y_analitica);
subplot(2,1,2);
plot(t_num, erro_absoluto, 'k-');
xlabel('Tempo t');
ylabel('Erro Absoluto');
title('Erro Absoluto entre Soluções');
Resposta
Seguindo esses passos, você conseguirá visualizar as soluções numérica e analítica no mesmo gráfico e também o erro absoluto entre elas, facilitando a comparação e análise da precisão do método numérico
ode45
.Exercícios relacionados
Crie um subplot(4,1,n) para plotar os gráficos de (a) e (b)
(a) Plote os gráficos da solução numérica por Euler com , e a solução analítica para os primeiros 5 segundos. Plote, também, os erros absolutos.
(a) Plote os gráficos da solução numérica por Euler com
Crie um subplot(4,1,n) para plotar os gráficos de (a) e (b)
(b) Plote os gráficos da solução numérica, por Euler Melhorado com , e a solução analítica para os primeiros 5 segundos. Plote, também, os erros absolutos.
(b) Plote os gráficos da solução numérica, por Euler Melhorado com
Faça um programa para calcular a distância percorrida pelo foguete nos primeiros 40 segundos utilizando a regra do trapézio com
. Obs. distância
vel.
tempo
Área do gráfico
Resolva, analiticamente o PVI abaixo, e implemente a sua solução numérica com o comando ode45 para os 5 primeiros segundos.