% ECE 463 Lecture #6 % calling routine for ball rolling in a bowl x = 1.5; dx = 0; g = 9.8; dt = 0.01; t = 0; L = 0; while(t < 100) % Compute the dynamics ddx = - (1.4*dx*dx + g)*x / ( 1.4*(1 + x*x)); % Integrate x = x + dx * dt; dx = dx + ddx * dt; dy = x*dx; dL = sqrt(1 + (dy/dx)^2) * dx; L = L + dL * dt; t = t + dt; % Display the ball y = 0.5 * x^2; x1 = [-2:0.01:2]'; y1 = 0.5 * x1 .^2; % draw the ball i = [0:0.01:1]' * 2 * pi; xb = 0.05*cos(i) + x; yb = 0.05*sin(i) + y + 0.05 + 0.03*abs(x); % line through the ball q = [0, pi] - L/0.05; xb1 = 0.05*cos(q) + x; yb1 = 0.05*sin(q) + y + 0.05 + 0.03*abs(x); plot(x1,y1,'b', xb, yb, 'r', xb1, yb1, 'r'); xlim([-2,2]); ylim([0,2]); pause(0.01); end