function projectile_golf clearclcformat long g;workspaceformat compact fontSize = 20;g = 9.81; % acceleration due to gravity in Y
y0 = 0; % intial position y
v0 = 50; % initial velocity magnitude
Angular_w = 100; % Angular Velocity (rad/s)
angle = 30; % angle of strike
c = 4.5*10^(-5); % Coefficient of drag
r = 21.5*10^(-3); % Radius of gold ball
m = 46*10^(-3); % Mass of golf ball
rho_air = 1.2; % Density of air
dt=0.1; t=[0:dt:200];v(1) = v0; % Velocity Magnitude
Vel = [v0*cosd(angle),v0*sind(angle)- g*t,0]; % Velocity Vector
FdragX(1) = v(1).*Vel(1).*c; % Drag force in X direction
FdragY(1) = v(1).*Vel(1).*c; % Drag force in Y direction
p = [0,0,0];AccDrag = [FdragX(1)./ m, FdragY(1)./ m, 0]; % F=M*A decceleration due to drag
for i=2:length(t) v(i) = sqrt((Vel(1)^2)+(Vel(2)^2)); p(i) = p(i-1) + Vel.*t - AccDrag.*(t^2); v(i) = v(i-1); Vel = [v(i)*cosd(angle),v(i)*sind(angle)- g*t,0]; FdragX(i) = v(i).*Vel(i).*c; FdragY(i) = v(i).*Vel(i).*c; AccDrag(i) = [FdragX(i)./m, FdragY(i)./m, 0]; endplot(p)
MATLAB: Projectile motion with drag. Im not sure what Im doing wrong here but it tells me the matrix dimensions must agree however I thought that if I use .* it can multiply a scalar and a vector together
mechanical engineering
Best Answer