% Dynamics of a ball rolling in a bowl where % y = 1/2 x^2 % x = 1.5; dx = 0; dt = 0.01; t = 0; while(t < 100) % compute the acceleration ddx = -( 1.4*dx*dx + 9.8) * x / ( 1.4*(1 + x*x) ); % integrate dx = dx + ddx*dt; x = x + dx*dt; % display the ball y = 0.5*x*x; 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) + 0.5*x^2 + 0.05 + 0.02*abs(x); % line through the ball q = [0, pi] - x/0.05; xb1 = 0.05*cos(q) + x; yb1 = 0.05*sin(q) + 0.5*x^2 + 0.05 + 0.02*abs(x); plot(x1,y1,'b', xb, yb, 'r', xb1, yb1, 'r'); pause(0.01); end