How can I fix this code to run and print the table?
% Default parameter values
mass = 1;Spring = 200;Initial = 1;staticf = 0.2;dynamicf = 0.1;Period = 7;dt = 0.01;angle = 30;g = 9.81; i = 3;u(i-2) = 0;u(i-1) = 0;displacement_data(i-1) = 0; for time = 0:dt:Period if u(i-1) > 0 multiplier = -1; else multiplier = 1; end if u(i-2) <= 0 && u(i-1) >= 0 fres = (mass*g*(sind(angle)) - (staticf*cosd(angle))); elseif (u(i-2) >= 0 && u(i-1) >= 0 && displacement_data(i-1) < Initial) || (u(i-2) < 0 && u(i-1) < 0 && displacement_data(i-1) < Initial) fres = mass*g*(sind(angle) + multiplier*(dynamicf*cosd(angle))); elseif u(i-2) >= 0 && u(i-1) <= 0 fres = mass*g*(sind(angle) + staticf*cosd(angle)) - spring*(displacement_data(i-1) - Initial); elseif u(i-2) >=0 && u(i-1) >= 0 && displacement_data(i-1) >= Initial || u(i-2) < 0 && u(i-1) < 0 && displacement_data(i-1) >= Initial fres = mass*g*(sind(angle) + multiplier*(dynamicf*cosd(angle))) - spring*(displacement_data(i-1) - Initial); end acceleration = fres/mass; u(i) = u(i-1) + (acceleration * dt); displacement_data(i) = displacement_data(i-1) + u(i) * dt; i = i + 1; end fprintf('displacement\t\tacceleration\t\ttime\t\tvelocity\n') for(i=3: length(u-3)) fprintf('%.4f\t\t%.4f\t\t%.4f\t\t%.4f\n', displacement_data(i-1), acceleration_data(i-1), time_data(i), u(i-1)); end
Best Answer