Actividad: Evidencia 3 metodos numericos
Enviado por Miguel Salinas • 8 de Mayo de 2017 • Trabajo • 1.806 Palabras (8 Páginas) • 1.869 Visitas
Nombre: Eduardo Vega Borjas Fernando Castillo Guajardo | Matrícula: 2715891 2755878 |
Nombre del curso: Métodos numéricos | Nombre del profesor: Jorge Anibal Quishpe Armas |
Módulo: 3 | Actividad: Evidencia 3 |
Fecha: 8 de mayo de 2017 | |
Bibliografía: Mis cursos. Tecmilenio (2017).Recuperado el 06 de mayo del 2017de:https://miscursos.tecmilenio.mx/bbcswebdav/institution/UTM/semestre/profesional/ti/ti13201/bb/tema15.htm |
Objetivo:
Generar códigos con una estructura lógica en archivos de C#.
Procedimiento:
En esta tercera evidencia se hará un programa que resuelva un problema de tiro libre tomando en consideración la fricción del viento.
- Investiga cuál es la ecuación diferencial que modela la trayectoria de un proyectil, considerando la fricción del aire.
- Resuelve esta ecuación considerando un terreno plano, una gravedad constante de 9.81m/s2 y el viento sin movimiento. Los casos para los que los debes resolver son para un tiro a 10°, 30°, 45° y 90° con una velocidad inicial de 20 m/s.
- El programa debe de arrojar cuál es la posición final del proyectil, así como su velocidad final.
- Se debe buscar en qué ángulo el proyectil alcanza la mayor distancia.
Resultados:
Programa 1:
double[] angulo = new double[1] { 10 };
for (int i = 0; i < angulo.Length; i++)
{
double vi = 20 ,g = 9.81;
double xmax = ((Math.Pow(vi, 2)) * Math.Sin((2 * angulo[i]))) / g; //posicion final
double ymax = (((Math.Pow(vi, 2)) * Math.Sin(angulo[i]) * Math.Sin(angulo[i]))) / (2 * g); //altura maxima
double t = (((2 * vi) * Math.Sin(angulo[i]))) / g; //tiempo que tarda en llegar
double vx = vi * Math.Cos(angulo[i]);//velocidad final en x
double vy = vi * Math.Sin(angulo[i]) - g * t; //velocidad final en y
Console.WriteLine("Resultado para el angulo de" + angulo[i]);
Console.WriteLine("tiempo hasta la ultima posicion :" + t );
Console.WriteLine("Distancia maxima en x: " + xmax);
Console.WriteLine("Distancia maxima en y :" + ymax);
Console.WriteLine("Velocidad final en x:" + vx);
Console.WriteLine("Velocidad final en y:" + vy);
Console.ReadLine();
[pic 1]
Programa 2:
double[] angulo = new double[1] {30 };
for (int i = 0; i < angulo.Length; i++)
{
double vi = 20 ,g = 9.81;
double xmax = ((Math.Pow(vi, 2)) * Math.Sin((2 * angulo[i]))) / g; //posicion final
double ymax = (((Math.Pow(vi, 2)) * Math.Sin(angulo[i]) * Math.Sin(angulo[i]))) / (2 * g); //altura maxima
double t = (((2 * vi) * Math.Sin(angulo[i]))) / g; //tiempo que tarda en llegar
double vx = vi * Math.Cos(angulo[i]);//velocidad final en x
double vy = vi * Math.Sin(angulo[i]) - g * t; //velocidad final en y
Console.WriteLine("Resultado para el angulo de" + angulo[i]);
Console.WriteLine("tiempo hasta la ultima posicion :" + t );
Console.WriteLine("Distancia maxima en x: " + xmax);
Console.WriteLine("Distancia maxima en y :" + ymax);
Console.WriteLine("Velocidad final en x:" + vx);
Console.WriteLine("Velocidad final en y:" + vy);
Console.ReadLine();
}
}
}
}
[pic 2]
Programa 3:
static void Main(string[] args)
{
double[] angulo = new double[1] { 45 };
for (int i = 0; i < angulo.Length; i++)
{
double vi = 20 ,g = 9.81;
double xmax = ((Math.Pow(vi, 2)) * Math.Sin((2 * angulo[i]))) / g; //posicion final
...