Você está na página 1de 2

SOLUO DO PROBLEMA DO PARAQUEDISTA ATRAVS DE MTODOS NUMRICOS

MTODO APLICADO: EULER

#include
#include
#include
#include

<stdlib.h>
<stdio.h>
<math.h>
<iostream.h>

//y -> velocidade (v)


//x -> tempo (t)
//double c=12.5 Kg/s
//double g=9.8 m/s2
//int m=70
Kg
double v(double t) /* a soluo v(t) da equao */
{
return ((9.8*70)/12.5)*(1-exp(-(12.5/70)*t));
}
double f(double t, double v) /* a funo f(t,v)*/
{
return 9.8-(12.5/70)*v;
}
int main(int argc, char* argv[])
{
double tn, tn1, tmax; /* variveis tn e tn+1 */
double vn, vn1; /* variveis vn e vn+1 */
double v0, t0; /* valores iniciais de y e x */
double h; /* passo */
//double v_it_anterior;
double delta_v; /* Variacao da velocidade por passos*/
int n; /* nmero de iteraes */
t0 = 0.0; /* valor incial para t */
v0 = 1.0; /* valor inicial para v */
//tmax = 200.0; /* valor mximo para t */
h = 0.1; /* o valor do passo */
tn = t0;
vn = v0;
n = 0; /* numero de iteraes */
printf("***********************************************************\n");
printf("
Metodos Computacionais 2\n");
printf("
Aluno: Daniel Anjos e Silva\n");
printf("***********************************************************\n\n");
printf("Solucao do Problema do Paraquedista pelo metodo de Euler\n");
printf("EDO do problema: v' = g - (c/m)*v\n");
printf("Valores Iniciais: t0 = 0.0\n");
printf("
v0 = 1.0\n\n");
printf("***********************************************************\n");
printf("num. iteracoes
t
v
v(t)\n");
printf("***********************************************************\n");
//v_it_anterior = 1.0;
delta_v = 1.0;

while(delta_v >= 0.000000001){


//while(tn < tmax){
n = n+1; /* atribua os valores para a prxima iterao */
//printf("
%i
%f %f %f\n",n,tn,vn,v(tn)
); /*escreva os valores das variveis*/
delta_v = h*f(tn,vn);
//cout << "delta_v = " << delta_v << endl;
vn1 = vn + h*f(tn,vn);
tn1 = tn + h;
if(vn1-vn<=0.0001)
{
break;
}
tn = tn1;
vn = vn1;
//}/* lao Segundo while */
}/*lao Primeiro While*/
printf("
%i
%f %f %f\n",n,tn,vn,v(tn)); /*escreva os valores d
as variveis*/
cout << endl << endl;
printf("***********************************************************\n");
cout << "
Resultados das iteracoes metodo de Euler" << endl;
printf("***********************************************************\n\n");
printf("O valor converge para uma velocidade constante (consideran-\ndo 2 casas
decimais)\n\n");
cout << "Erro: " << delta_v << endl;
cout << "v = " << vn << " m/s" << endl << "t = " << tn << " segundos" << endl;
cout << "qtd de iteracoes: " << n << endl << endl;
system ("pause");
return 0; /* termina a computao */
}/* funo main */

Você também pode gostar