trying to find theta

6 Ansichten (letzte 30 Tage)
Aidan Palermo
Aidan Palermo am 20 Sep. 2021
Kommentiert: Walter Roberson am 21 Sep. 2021
% plot mountain
Mn_x = [0, 1000, 3014.8];
Mn_y = [0, 0, 616];
plot (Mn_x, Mn_y)
hold on
% known variables
Xo = 0;
Yo = 1;
V = 585; % m/s
G = 9.81; % m/s^2
t = linspace(0, 5, 900);
th1 = 10; % degrees
th2 = 12; % degrees
th3 = 14; % degrees
% calculate trajectory of howitzer
x_th1 = Xo + (V .* cosd(th1)) .* t;
y_th1 = Yo + (V .* sind(th1)) .* t - 1/2 .* G .* (t.^2);
plot (x_th1, y_th1, 'r')
x_th2 = Xo + (V .* cosd(th2)) .* t;
y_th2 = Yo + (V .* sind(th2)) .* t - 1/2 .* G .* (t.^2);
plot (x_th2, y_th2, 'k')
x_th3 = Xo + (V .* cosd(th3)) .* t;
y_th3 = Yo + (V .* sind(th3)) .* t - 1/2 .* G .* (t.^2);
plot (x_th3, y_th3, 'c')
xlim([-10 3250])
ylim([-10 650])
% calculate theta
theta = 0:1:90;
eqn = 3010 == Xo + (V .* cosd(theta)) .* t
I'm trying to find the theta value that makes the last equation true. when I run the code I recieve this error code
Arrays have incompatible sizes for this operation.
Error in lab2 (line 30)
eqn = 3010 == Xo + (V .* cosd(theta)) .* t

Akzeptierte Antwort

Star Strider
Star Strider am 21 Sep. 2021
The Question lacks clarity.
% plot mountain
Mn_x = [0, 1000, 3014.8];
Mn_y = [0, 0, 616];
plot (Mn_x, Mn_y)
hold on
% known variables
Xo = 0;
Yo = 1;
V = 585; % m/s
G = 9.81; % m/s^2
t = linspace(0, 5, 900);
th1 = 10; % degrees
th2 = 12; % degrees
th3 = 14; % degrees
% calculate trajectory of howitzer
x_th1 = Xo + (V .* cosd(th1)) .* t;
y_th1 = Yo + (V .* sind(th1)) .* t - 1/2 .* G .* (t.^2);
plot (x_th1, y_th1, 'r')
x_th2 = Xo + (V .* cosd(th2)) .* t;
y_th2 = Yo + (V .* sind(th2)) .* t - 1/2 .* G .* (t.^2);
plot (x_th2, y_th2, 'k')
x_th3 = Xo + (V .* cosd(th3)) .* t;
y_th3 = Yo + (V .* sind(th3)) .* t - 1/2 .* G .* (t.^2);
plot (x_th3, y_th3, 'c')
xlim([-10 3250])
ylim([-10 650])
% calculate theta
% eqn = 3010 == Xo + (V .* cosd(theta)) .* t
theta_1 = interp1(x_th1, y_th1, 3010, 'pchip', 'extrap')
theta_2 = interp1(x_th2, y_th2, 3010, 'pchip', 'extrap')
theta_3 = interp1(x_th3, y_th3, 3010, 'pchip', 'extrap')
% I'm trying to find the theta value that makes the last equation true. when I run the code I recieve this error code
% Arrays have incompatible sizes for this operation.
% Error in lab2 (line 30)
% eqn = 3010 == Xo + (V .* cosd(theta)) .* t
It would appear that you want the ‘y_th#’ values for the corresponding ‘x_th#’ values that equal 3010. The only option is likely extrapolation using interp1. I have done that for all of them here. The θ values are fixed, and ‘t’ is a 900-element vector, and I have no idea if the θ values are supposed to be in terms of ‘t’ or something else.
Ambiguity of the context, and precise solutions are completely incompatible. Neverhteless, this provides an approach to a solution to consider in the event that my guess is incorrect.
.

Weitere Antworten (0)

Kategorien

Mehr zu Animation finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by