Evidencia 3 metodos numericos
Enviado por JaliscoNG • 4 de Marzo de 2019 • Trabajo • 1.410 Palabras (6 Páginas) • 536 Visitas
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:
Un proyectil de masa m que se dispara desde el origen con velocidad v0, haciendo un ángulo θ0 con la horizontal
Si despreciamos el empuje, las fuerzas que actúan sobre el cuerpo de masa m son:
- El peso mg
- La fuerza de rozamiento Fr, que es sentido contrario al vector velocidad (tangente a la trayectoria). →Fr=−mb→v
Para poder calcular el tiro parabólico obtuvimos las siguientes ecuaciones para x y y:
[pic 1]
Para poder calcular el tiempo (t) despejamos de la ecuación en x y obtuvimos la siguiente ecuación:
[pic 2]
En un simulador de lanzamiento de proyectiles corrimos el programa demostrando cuanto alcance tiene el proyectil lanzándolo a diferentes ángulos
tal como en esta imagen a una velocidad inicial de 20 m/s demuestra que el ángulo que mas alcance tiene el proyectil es a los 45 grados.
[pic 3]
[pic 4]
A continuación de plantea el siguiente código en lenguaje C# para demostrar que el ángulo que mas alcance tiene es el de 45 grados.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double vi = 20, al, an, g = 9.81, t, b=0.01, vfinal;
Console.WriteLine("Escribe los siguientes angulos 10°, 30°, 45° y 90°, en cada apartado");
Console.WriteLine("Dame un angulo");
an = double.Parse(Console.ReadLine());
al = (vi * vi) * Math.Sin(2 * (an * Math.PI / 180)) / g;
Console.WriteLine("El alcance es: " + al);
t = ((-1 / b) * (Math.Log(1 - ((b * al) / (20 * Math.Cos(an))))));
Console.WriteLine("El tiempo es: " + t);
vfinal=(20 * Math.Cos(an))*Math.Exp(-b*t);
Console.WriteLine("La velocidad final es: " + vfinal);
Console.ReadLine();
{
Console.WriteLine("Dame un angulo");
an = double.Parse(Console.ReadLine());
al = (vi * vi) * Math.Sin(2 * (an * Math.PI / 180)) / g;
Console.WriteLine("El alcance es: " + al);
t = ((-1 / b) * (Math.Log(1 - ((b * al) / (20 * Math.Cos(an))))));
...