// Compare Over Damped, Under Damped, and Critically Damped Oscilators // // Over Damped // z'' + 2z' + 0.6z = 0, z(0) = 3; z'(0) = 0 // // Critically Damped // z'' + 2z' + z = 0, z(0) = 3; z'(0) = 0 // // Under Damped // z'' + 2z' + 1.8z = 0, z(0) = 3; z'(0) = 0 // // // // Over Damped System // x = z, y = z' x(0) = z(0) = 3; y(0) = z'(0) = 0 // dx/dt = z' = y // dy/dt = z'' = - 2z' - 0.6z = -2y -0.6 x // // Critically Damped System // x = z, y = z' x(0) = z(0) = 3; y(0) = z'(0) = 0 // dx/dt = z' = y // dy/dt = z'' = - 2z' - z = -2y - x // // Over Damped System // x = z, y = z' x(0) = z(0) = 3; y(0) = z'(0) = 0 // dx/dt = z' = y // dy/dt = z'' = - 2z' - 1.8z = -2y -1.8 x // // Over Damped System function wdot = fover(t,w) xdot = w(2,1); ydot = -2*w(2,1)-0.6*w(1,1); wdot = [ xdot; ydot ]; endfunction // // Critically Damped System function wdot = fcrit(t,w) xdot = w(2,1); ydot = -2*w(2,1)-w(1,1); wdot = [ xdot; ydot ]; endfunction // // Under Damped System function wdot = funder(t,w) xdot = w(2,1); ydot = -2*w(2,1)-1.8*w(1,1); wdot = [ xdot; ydot ]; endfunction // t = 0:0.1:10; t0 = 0; w0 = [3; 0]; wover = ode(w0, t0, t, fover); wcrit = ode(w0, t0, t, fcrit); wunder = ode(w0, t0, t, funder); // scf(0); clf(); plot(t,wover(1,:),"b-",t,wcrit(1,:),"r-",t,wunder(1,:),"g-"); xtitle("Overdampped in blue, Critical in red, Underdampped in green","z","t"); min(wover(1,:)) min(wcrit(1,:)) min(wunder(1,:))