Codigo de Matlab

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

% Tiro Parabólico - Cálculo y Trajectory Plotting en MATLAB

% Autor: [Tu Nombre]


% Fecha: [Fecha]

% Limpiar el entorno de trabajo


clear; clc; close all;

% Constante de la gravedad (m/s^2)


g = 9.81;

% Entrada de datos
Empezar = input('presiones enter ');
v0 = input('Ingrese la velocidad inicial v0 (m/s): ');
theta_deg = input('Ingrese el ángulo de lanzamiento θ (grados): ');
y0 = input('Ingrese la altura inicial y0 (m): ');

% Conversión del ángulo a radianes


theta = deg2rad(theta_deg);

% Cálculo del tiempo de vuelo utilizando la fórmula:


% t = (v0 sinθ + sqrt(v0^2 sin^2θ + 2 g y0)) / g
discriminante = v0^2 * sin(theta)^2 + 2 * g * y0;
t_flight = (v0 * sin(theta) + sqrt(discriminante)) / g;

% Cálculo de la distancia máxima en x


x_max = v0 * cos(theta) * t_flight;

% Cálculo de la altura máxima en y


y_max = y0 + (v0^2 * sin(theta)^2) / (2 * g);

% Creación de un vector de tiempo desde 0 hasta t_flight con incrementos


pequeños
t = linspace(0, t_flight, 1000);

% Cálculo de las coordenadas x e y en función del tiempo


x = v0 * cos(theta) * t;
y = y0 + v0 * sin(theta) * t - 0.5 * g * t.^2;

% Alternativamente, se puede calcular y usando la ecuación de la trayectoria


% y = y0 + x .* tan(theta) - (g .* x.^2) / (2 * v0^2 * cos(theta)^2);

% Mostrar los resultados


fprintf('\nResultados del Tiro Parabólico:\n');

Resultados del Tiro Parabólico:

fprintf('Tiempo de vuelo: %.2f segundos\n', t_flight);

Tiempo de vuelo: 3.65 segundos

fprintf('Distancia máxima en x: %.2f metros\n', x_max);

1
Distancia máxima en x: 33.10 metros

fprintf('Altura máxima en y: %.2f metros\n', y_max);

Altura máxima en y: 50.91 metros

% Graficar la trayectoria
figure;
plot(x, y, 'b', 'LineWidth', 2);
grid on;
xlabel('Distancia horizontal x (m)');
ylabel('Altura y (m)');
title('Trayectoria de un Tiro Parabólico');
hold on;

% Marcar los puntos de altura máxima y distancia máxima


plot(x_max, y_max, 'ro', 'MarkerSize', 8, 'DisplayName', 'Máximo (x,y)');
legend('Trayectoria', 'Máximo (x,y)', 'Location', 'best');

% Añadir anotaciones
text(x_max, y_max, sprintf(' (%.2f, %.2f)', x_max, y_max),
'VerticalAlignment', 'bottom');

% Ajustar los límites del gráfico


xlim([0, x_max * 1.1]);
ylim([0, y_max * 1.1]);

hold off;

2
3

También podría gustarte