Velocidad terminal

Este programa calcula (en este caso) la velocidad terminal de un objeto. La función de velocidad es proporcionada (no se introduce una ecuación diferencial, sino su solución).

Se utiliza una función recursiva para el cálculo, aunque esta puede reemplazarse por un ciclo “while”.

En este caso, es mejor utilizar un incremento en t mayor a 1, pues se busca comparar valores de v para t lejanas, de modo que sean iguales.

Los resultados pueden verse arriba.

============================= Código ===================================

#include <iostream>
#include <cmath>

using namespace std;

void ecuacion(float a, float b, float t, float v, int i);

int main(){
float m = 68.1; float g = 9.81; float c = 12.5; //Parametros

float a = m*g/c; float b = -c/m;                //Parametros compactos

float t = 0; double v = 0;                      //Condiciones iniciales

int i = 0;                                      //Numero de iteraciones

cout << “Con funcion recursiva: ” << endl << endl;
ecuacion(a, b , t+1, v, i);
cout << endl;

system(“pause”);
return 0;
}

void ecuacion(float a, float b, float t, float v, int i){
double v1 = a*(1 – exp(b*t));

if (abs(v1 – v) < 0.00001){
cout << “Velocidad terminal: ” << v1 << “m/s” << endl;
cout << “Tiempo: ” << t << ” s” << endl;
cout << “Error: ” << abs(v1 – v) << “m/s” << endl;
cout << “Iteraciones: ” << i << endl;
}
else{
ecuacion(a, b, t+1, v1, i+1);
}
}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s