Professional Documents
Culture Documents
EXPERIMENTO 1
MÉTODO DAS DIFERENÇAS FINITAS
SANTO ANDRÉ
2018
DESCRIÇÃO DO EXPERIMENTO
O experimento consistia em determinar as soluções numéricas de diferentes
equações diferenciais utilizando e comparando os métodos de diferenças progressivas
e centrais. Avaliou-se também a influência do passo de integração na exatidão dos
resultados.
RESULTADOS E DISCUSSÃO
Abaixo constam graficamente as soluções numéricas das cincos equações
diferenciais pelo método forward (método de diferenças progressivas) e central
(método de diferenças centrais). Os gráficos apresentam quatro curvas a linha contínua
é referente a solução exata da equação. Os símbolos o, x e ⬜ são referentes às
variações de dx, do maior para o menor respectivamente.
● Exercício A
Gráfico 1 - Equação A pelo método forward. Legenda: o dx =0.025,x dx=0.01 e ⬜ dx =0.005.
Gráfico 2 - Equação A pelo método de diferenças centrais. Legenda: o dx =0.025,x dx=0.01 e ⬜ dx =0.005.
● Exercício B
Gráfico 3 - Equação B pelo método forward. Legenda: o dx =0.5,x dx=0.25 e ⬜ dx =0.05. Linha contínua - solução
analítica
Gráfico 4 - Equação B pelo método central. Legenda: o dx =0.1,x dx=0.08 e ⬜ dx =0.05.Linha contínua - solução
analítica
● Exercício C
Gráfico 5- Equação C pelo método forward. Legenda: o dx =0.6,x dx=0.2 e ⬜ dx =0.05.Linha contínua - solução
analítica
Gráfico 6- Equação C pelo método central.. Legenda: o dx =0.6,x dx=0.2 e ⬜ dx =0.05. Linha contínua - solução
analítica
● Exercício D
Gráfico 7- Equação D pelo método forward.. Legenda: o dx =0.6,x dx=0.2 e ⬜ dx =0.05. Linha contínua - solução
analítica
Gráfico 8- Equação D pelo método central.. Legenda: o dx =0.6,x dx=0.2 e ⬜ dx =0.05. Linha contínua - solução
analítica
● Exercício (e)
Gráfico 9- Equação E pelo método forward. Legenda: o dx =1.0,x dx=0.5 e ⬜ dx =0.1. Linha contínua - solução
analítica
Gráfico 10- Equação E pelo método central. Legenda: o dx =0.8,x dx=0.5 e ⬜ dx =0.1. Linha contínua - solução
analítica
Nota-se que o passo de integração (dx) possui grande influência na exatidão dos
resultados. Em algumas equações, a mudança é bem sensível; ou seja, pequenas
variações no dx mudam totalmente o perfil da curva. Isso pode ser atribuído ao fato de
que nas soluções numéricas o valor de cada passo depende do passo anterior. Isso
pode gerar um erro que vai se propagando. Na solução numérica, grandes intervalos
(maiores valores de dx) geram curvas mais distantes da solução analítica, pois a última
é contínua, ou seja, é composta de intervalos que tendem a zero ( lim ).
dx→0
CONCLUSÃO
● forward ● central
clear clear
t0 = 0.0; t0 = 0.0;
tf=0.5;
tf=0.5; dt=0.005;
dt=0.005; t=(t0: dt: tf);
[row, col]=size(t);
t=(t0: dt: tf);
x=zeros(row,col);
[row, col]=size(t); x(1)=2000;
x=zeros(row,col); x(2)=x(1)+dt*(-0.8*x(1)^(3/2)
+10*2000*(1-exp(-3*t(1))));
x(1)=2000;
CO=2000; for i=2 : col -1;
for i=1 : col -1; x(i+1) = x(i)+ dt*(-0.8*x(i)^(3/2)
+10*2000*(1-exp(-3*t(i))))
x(i+1) = x(i)+ dt*(-0.8*x(i)^(3/2)
+10*CO*(1-exp(-3*t(i)))) end
x_calc =x;
end plot (t,x_calc, 'ks')
end
Exercício (b)
● forward ● central
clear clear
x0 = 0.0; x0 = 0.0;
xf=2.5; xf=2.5;
dx=0.05; dx=0.05;
x=(x0: dx: xf); x=(x0: dx: xf);
[row, col]=size(x); [row, col]=size(x);
y=zeros(row,col); y=zeros(row,col);
y(1)=3; y(1)=3;
y(2) = y(1) + dx*(-1.2*y(1)+7*exp(-0.3*x(1)));
for i=1 : col -1;
y(i+1) = y(i)+ dx*(-1.2*y(i)+7*exp(-0.3*x(i))) for i=2 : col -1;
y(i+1) = y(i-1)+
2*dx*(-1.2*y(i)+7*exp(-0.3*x(i)))
end
y_calc =y;
end
y_exat =
(70/9)*exp(-0.3*x)-(43/9)*exp(-1.2*x); y_calc =y;
plot (x,y_calc, 'ks',x,y_exat,'k') y_exat =
(70/9)*exp(-0.3*x)-(43/9)*exp(-1.2*x);
plot (x,y_calc, 'ks',x,y_exat,'k')
Exercício (c)
● forward ● central
clear clear
x0 = 0.0; x0 = 0.0;
xf=3.0; xf=3.0;
dx=0.05;
dx=0.05;
x=(x0: dx: xf);
x=(x0: dx: xf);
[row, col]=size(x);
[row, col]=size(x);
y=zeros(row,col);
y(1)=0; y=zeros(row,col);
y(1)=0;
for i=1 : col -1; y(2)=y(1)+
y(i+1) = y(i)+ dx*(((x(1)+1)^3)+((2/(x(1)+1)*y(1))));
dx*(((x(i)+1)^3)+((2/(x(i)+1)*y(i))))
end
y_calc =y;
y_exat = ((1/2)*((x+1)^4))-((1/2)*((x+1)^2));
Exercício (d)
● forward ● central
clear clear
x0 = 0.0; x0 = 0.0;
xf=3.0; xf=3.0;
dx=0.05;
dx=0.05;
x=(x0: dx: xf);
x=(x0: dx: xf);
[row, col]=size(x);
y=zeros(row,col); [row, col]=size(x);
y(1)=0.5; y=zeros(row,col);
y(1)=0.5;
for i=1 : col -1;
y(2)=
y(i+1) = y(i)+ y(1)+dx*((((x(1))^3)*((y(1))^3))-(x(1)*y(1)));
dx*((((x(i))^3)*((y(i))^3))-(x(i)*y(i)))
y_calc =y;
y_exat = ((x^2)+1+(3*exp(x^2)))^(-1/2);
Exercício (e)
● forward ● central
clear clear
x0 = 0.0; x0 = 0.0;
xf=5.0; xf=5.0;
dx=0.1;
dx=0.1;
x=(x0: dx: xf);
x=(x0: dx: xf);
[row, col]=size(x);
[row, col]=size(x);
y=zeros(row,col);
y(1)=2; y=zeros(row,col);
y(1)=2;
for i=1 : col -1; y(2)=y(1)+dx*((1/exp(x(1)))-(y(1)));
y(i+1) = y(i)+ dx*((1/exp(x(i)))-(y(i)));
y_exat = ((x+2)./(exp(x)));
plot (x,y_calc, 'ks', x,y_exat,'k-') end
y_calc =y;
y_exat = (x+2)/(exp(x));