Você está na página 1de 11

UNIVERSIDADE FEDERAL DO TRIÂNGULO MINEIRO

Instituto de Ciências Tecnológicas e Exatas


Departamento de Engenharia Civil

Guilherme Santos Gouvêa


Marco Antônio Farias Rios
Mariana Foresto De Andrade Lima

TRABALHO FINAL

Professor: Fabian Andres Lara-Molina


Disciplina: Cálculo Numérico Computacional

Uberaba - MG
2023
Guilherme Santos Gouvêa
Marco Antônio Farias Rios
Mariana Foresto De Andrade Lima

TRABALHO FINAL

Projeto final apresentado à disciplina de


Cálculo Numérico Computacional do curso de
Engenharia Civil para fins avaliativos, sob
orientação do Prof. Fabian Andres Lara-Molina.

Uberaba - MG
2023
1. INTRODUÇÃO
Este trabalho de cálculo numérico computacional tem como objetivo apresentar a
implementação e comparação de três métodos numéricos para resolver um problema
específico. O problema em questão pode ser modelado como uma equação diferencial e
para resolvê-la numericamente, serão utilizados os métodos de Euler Aperfeiçoado e
Runge-Kutta de quarta ordem. Além disso, o trabalho irá comparar os resultados obtidos
com esses dois métodos com o método de Root Mean Square Error (RMSE).

O GNU Octave será utilizado como ambiente de programação para a implementação


dos métodos numéricos e cálculos necessários. Este software livre e de código aberto é
uma alternativa ao MATLAB e possui uma ampla variedade de funções matemáticas e
ferramentas para análise numérica.

O método de Euler Aperfeiçoado é um método de primeira ordem para resolver


equações diferenciais ordinárias, que consiste em aproximar a solução da equação através
de uma série de iterações, cada uma delas utilizando a inclinação da tangente na solução
atual. Já o método de Runge-Kutta de quarta ordem é um método de quarta ordem que
utiliza uma série de equações para calcular a solução da equação diferencial em cada
passo. Esse método é considerado mais preciso que o método de Euler Aperfeiçoado.

Por fim, o método de RMSE será utilizado para comparar os resultados obtidos com
os dois métodos numéricos utilizados. Este método é uma medida da diferença entre os
valores obtidos pelo modelo e os valores observados, sendo amplamente utilizado para
avaliar a precisão de modelos numéricos.

Dessa forma, o objetivo deste trabalho é fornecer uma compreensão mais


aprofundada sobre a aplicação desses métodos numéricos na solução de problemas em
cálculo e fornecer uma comparação quantitativa da precisão desses métodos por meio do
método de RMSE.

2. MARCO TEÓRICO
2.1. Método de Euler aperfeiçoado

O método de Euler Aperfeiçoado é um método numérico de primeira ordem para


resolver equações diferenciais ordinárias. Ele é baseado em uma aproximação linear da
equação diferencial e utiliza a inclinação da tangente na solução atual para obter a solução
no próximo passo.

O processo é o seguinte: dada uma equação diferencial de primeira ordem, y' = f(x,y)
e um valor inicial y0 = y(x0), o método de Euler Aperfeiçoado calcula a solução aproximada
y1 = y(x1) no próximo ponto x1 = x0 + h, onde h é o tamanho do passo.

O método consiste em dois passos. Primeiramente, utiliza-se o método de Euler para


calcular uma aproximação linear da solução no ponto x1/2 = x0 + h/2. Em seguida, utiliza-
se a inclinação da tangente neste ponto para obter uma aproximação melhorada da solução
em x1:

k1 = hf(x0, y0)

k2 = hf(x0 + h, y0 + k1)

y1 = y0 + (k1 + k2)/2

Onde k1 e k2 são inclinações da tangente em x0 e x0+h, respectivamente.

Este método é relativamente simples de implementar, mas é menos preciso que


outros métodos de ordem superior, como o método de Runge-Kutta.

2.2. Método de Runge-Kutta de quarta ordem

O método de Runge-Kutta de quarta ordem é um método numérico de quarta ordem


para resolver equações diferenciais ordinárias. Ele é baseado em uma fórmula de
integração de quarta ordem e utiliza uma série de equações para calcular a solução em
cada passo.

O processo é o seguinte: dada uma equação diferencial de primeira ordem, y' = f(x,y)
e um valor inicial y0 = y(x0), o método de Runge-Kutta de quarta ordem calcula a solução
aproximada y1 = y(x1) no próximo ponto x1 = x0 + h, onde h é o tamanho do passo.

O método consiste em quatro etapas principais, cada uma com um coeficiente


diferente. O valor final da solução é uma combinação linear desses valores intermediários:

k1 = hf(x0, y0)

k2 = hf(x0 + h/2, y0 + k1/2)

k3 = hf(x0 + h/2, y0 + k2/2)


k4 = hf(x0 + h, y0 + k3)

y1 = y0 + (k1 + 2k2 + 2k3 + k4)/6

Este método é considerado mais preciso que o método de Euler Aperfeiçoado e é


amplamente utilizado na resolução de problemas em engenharia, física, matemática e
outras áreas que envolvem equações diferenciais ordinárias.

2.3. Solução analítica

Infelizmente, a equação diferencial y(t) = k(m - y(t))y(t) não pode ser resolvida de
forma analítica, ou seja, não existe uma solução em termos de funções elementares
conhecidas, como polinômios, exponenciais ou senos e cossenos.

Essa equação é uma equação diferencial não-linear de primeira ordem, e as


equações diferenciais não-lineares geralmente não têm soluções analíticas simples. A
solução para essa equação é encontrada por meio de métodos numéricos, como o método
de Euler que foi mencionado na minha resposta anterior.

No entanto, existem algumas equações diferenciais não-lineares que têm soluções


analíticas, mas isso é uma exceção e não a regra geral. A maioria das equações diferenciais
não-lineares só pode ser resolvida de forma aproximada usando métodos numéricos.

3. RESULTADOS E ANÁLISE

Primeiramente, aplicando o método de Euler Aperfeiçoado, obtemos o valor de y(tf)


= 80295.6771, ao final dos 30 dias e a seguinte curva característica da contaminação:
Figura 1 - Solução numérica usando Euler Aperfeiçoado

Fonte: Autores, 2023

Já aplicando o método de Runge-Kutta de quarta ordem, passado os 30 dias iniciais,


obteve-se o valor para y(tf) de 80295.7153 e a curva:

Figura 2 - Solução numérica usando Runge-Kutta de quarta ordem

Fonte: Autores, 2023

Por fim, para comparar as duas soluções, utilizou-se a métrica RMSE (Root Mean
Square Error), que é uma medida de erro que representa a raiz quadrada da média dos
erros ao quadrado entre os valores observados e previstos em um modelo estatístico ou de
machine learning. Quanto menor o valor de RMSE, melhor será o desempenho do modelo
na predição dos valores.

Figura 3 - Solução numérica do modelo de crescimento populacional

Fonte: Autores, 2023

Verificou-se um erro de apenas RMSE = 0.024808 entre os dois métodos, provando


que ambos foram bastante precisos e confiáveis.
4. CÓDIGOS EM OCTAVE
#Euler aperfeiçoado

clc
clear all
close all
m = 100000;
y0 = 1000;
k = 0.000002;
t0 = 0;
tf = 30;
N = 3000;
dydt = @(t, y) k*(m-y)*y;
h = (tf - t0)/N;
t(1) = t0;
y(1) = y0;

for i = 1:N
t(i+1) = t(i) + h;
k1 = h*dydt(t(i), y(i));
k2 = h*dydt(t(i+1), y(i)+k1);
y(i+1) = y(i) + (k1+k2)/2;
end

yf = y(end);
disp(['Aproximação para y(tf) = ', num2str(yf)]);

% Plot da solução numérica


plot(t, y, 'b', 'LineWidth', 2);
xlabel('Tempo (t)', 'FontSize', 14);
ylabel('População (y)', 'FontSize', 14);
title('Solução numérica usando Euler Aperfeiçoado', 'FontSize',16);
xlim([t0 tf]);
ylim([y0 yf]);
#Runge-Kutta

clc
clear all
close all
m = 100000;
y0 = 1000;
k = 0.000002;
t0 = 0;
tf = 30;
N = 3000;
dydt = @(t, y) k*(m-y)*y;
h = (tf - t0)/N;
t(1) = t0;
y(1) = y0;

for i = 1:N
t(i+1) = t(i) + h;
k1 = h*dydt(t(i), y(i));
k2 = h*dydt(t(i) + h/2, y(i) + k1/2);
k3 = h*dydt(t(i) + h/2, y(i) + k2/2);
k4 = h*dydt(t(i) + h, y(i) + k3);
y(i+1) = y(i) + (k1 + 2*k2 + 2*k3 + k4)/6;
end

yf = y(end);
disp(['Aproximação para y(tf) = ', num2str(yf)]);

% Plot da solução numérica


plot(t, y, 'r', 'LineWidth', 2);
xlabel('Tempo (t)', 'FontSize', 14);
ylabel('População (y)', 'FontSize', 14);
title('Solução numérica usando Runge-Kutta de quarta ordem',
'FontSize', 16);
xlim([t0 tf]);
ylim([y0 yf]);
#RMSE

clc
clear all
close all
m = 100000;
y0 = 1000;
k = 0.000002;
t0 = 0;
tf = 30;
N = 3000;
dydt = @(t, y) k*(m-y)*y;
% Método de Euler aperfeiçoado
h1 = (tf - t0)/N;
t1 = t0:h1:tf;
y1(1) = y0;
for i = 1:N
y1(i+1) = y1(i) + h1*dydt(t1(i) + h1/2, y1(i) + h1/2*dydt(t1(i),
y1(i)));
end

% Método Runge-Kutta de quarta ordem


h2 = (tf - t0)/N;
t2 = t0:h2:tf;
y2(1) = y0;
for i = 1:N
k1 = h2*dydt(t2(i), y2(i));
k2 = h2*dydt(t2(i) + h2/2, y2(i) + k1/2);
k3 = h2*dydt(t2(i) + h2/2, y2(i) + k2/2);
k4 = h2*dydt(t2(i) + h2, y2(i) + k3);
y2(i+1) = y2(i) + (k1 + 2*k2 + 2*k3 + k4)/6;
end

% Cálculo do RMSE
rmse = sqrt(sum((y1 - y2).^2)/N);

disp(['RMSE = ', num2str(rmse)]);


% Plot das soluções numéricas obtidas para cada método
plot(t1, y1, 'r', 'LineWidth', 2)
hold on
plot(t2, y2, 'b', 'LineWidth', 2)
xlabel('Tempo (dias)')
ylabel('População (indivíduos)')
title('Solução numérica do modelo de crescimento populacional')
legend('Euler aperfeiçoado', 'Runge-Kutta de quarta ordem')
5. CONCLUSÃO
A aplicabilidade de métodos matemáticos com a finalidade de estudar a
disseminação de doenças contagiosas vem desde 1760, quando Daniel Bernoulli efetuou
diversos estudos sobre a varíola. Nos últimos anos, diversos modelos matemáticos têm
sido propostos e estudados para diversas doenças diferentes. Modelos semelhantes têm
sido utilizados, também, para descrever a disseminação de boatos, de produtos de
consumo etc. Observou-se nessa situação problema que é possível utilizar 3 métodos para
resolver o cálculo específico e comparar as respostas obtidas.

Verificamos que o método de Runge-Kutta de quarta ordem é considerado mais


preciso que o método de Euler Aperfeiçoado e que ambos são amplamente utilizados na
resolução de problemas em engenharia, física, matemática e outras áreas que envolvem
equações diferenciais ordinárias.

6. REFERÊNCIAS
MOLINA, F. A. L. Equações Diferenciais Ordinárias. Notas de Aula.Curso de Cálculo
Numérico Computacional. 2023.

ZILL, D. G. Equações diferenciais com aplicações em modelagem. 2. ed. São Paulo:


Cengage Learning, 2011.

Método de Euler melhorado. Disponível em:


<https://www.ufrgs.br/reamat/CalculoNumerico/livro-oct/pdvi-
metodo_de_euler_melhorado.htmlf>. Acesso em: 16 mar. 2023.

Métodos de Runge-Kutta explícitos. Disponível em:


<https://www.ufrgs.br/reamat/CalculoNumerico/livro-oct/pdvi-metodos_de_runge-
kutta_explicitos.html#x112-20900010.7>. Acesso em: 16 mar. 2023.

Você também pode gostar