--> Pendules Pendule simple C = [0,0] t = 0 a = 0.5 f = 0 w0 = 1 theta = a*cos(w0*t+f) r = 6 D = [r*sin(theta),-r*cos(theta)] point(C) point(D) segment(C,D) setInterval(rotation, 50) function rotation(){ peinture = blanc transparence = 1 rectangle([-11,11],25,25) t = t+0.1 theta = a*cos(w0*t+f) D = [r*sin(theta),-r*cos(theta)] point(C) point(D) segment(C,D) } Pendule double Un seul pendule double Xmin = 0 Xmax = 700 Ymin = 0 Ymax = 500 var d2Theta1 = 0; var d2Theta2 = 0; var dTheta1 = 0; var dTheta2 = 0; var Theta1 = 0*(Math.PI)/2; var Theta2 = 2.3*(Math.PI)/2; var m1 = 10; var m2 = 10; var l1 = 150; var l2 = 150; var X0 = 350; var Y0 = 60; var g = 9.8; var time = 0.05; setInterval(animate, 10) function animate() { mu = 1+m1/m2; d2Theta1 = (g*(sin(Theta2)*cos(Theta1-Theta2)-mu*sin(Theta1))-(l2*dTheta2*dTheta2+l1*dTheta1*dTheta1*cos(Theta1-Theta2))*sin(Theta1-Theta2))/(l1*(mu-cos(Theta1-Theta2)*cos(Theta1-Theta2))); d2Theta2 = (mu*g*(sin(Theta1)*cos(Theta1-Theta2)-sin(Theta2))+(mu*l1*dTheta1*dTheta1+l2*dTheta2*dTheta2*cos(Theta1-Theta2))*sin(Theta1-Theta2))/(l2*(mu-cos(Theta1-Theta2)*cos(Theta1-Theta2))); dTheta1 += d2Theta1*time; dTheta2 += d2Theta2*time; Theta1 += dTheta1*time; Theta2 += dTheta2*time; A = [X0+l1*sin(Theta1), 500-(Y0+l1*cos(Theta1))]; B = [ X0+l1*sin(Theta1)+l2*sin(Theta2), 500-(Y0+l1*cos(Theta1)+l2*cos(Theta2))]; transparence = 1 peinture = blanc rectangle([-10,800],800,900) point([350,440]) segment(A,B) segment([350,440],A) point(A) point(B) }

Xmin = 0 Xmax = 700 Ymin = 0 Ymax = 500 var d2Theta1 = 0; var d2Theta2 = 0; var dTheta1 = 0; var dTheta2 = 0; var Theta1 = 0*(Math.PI)/2; var Theta2 = 2.3*(Math.PI)/2; var m1 = 10; var m2 = 20; var l1 = 150; var l2 = 50; var X0 = 350; var Y0 = 60; var g = 9.8; var time = 0.05; setInterval(animate, 10) function animate() { mu = 1+m1/m2; d2Theta1 = (g*(sin(Theta2)*cos(Theta1-Theta2)-mu*sin(Theta1))-(l2*dTheta2*dTheta2+l1*dTheta1*dTheta1*cos(Theta1-Theta2))*sin(Theta1-Theta2))/(l1*(mu-cos(Theta1-Theta2)*cos(Theta1-Theta2))); d2Theta2 = (mu*g*(sin(Theta1)*cos(Theta1-Theta2)-sin(Theta2))+(mu*l1*dTheta1*dTheta1+l2*dTheta2*dTheta2*cos(Theta1-Theta2))*sin(Theta1-Theta2))/(l2*(mu-cos(Theta1-Theta2)*cos(Theta1-Theta2))); dTheta1 += d2Theta1*time; dTheta2 += d2Theta2*time; Theta1 += dTheta1*time; Theta2 += dTheta2*time; A3 = [X0+l1*sin(Theta1), 500-(Y0+l1*cos(Theta1))]; B3 = [ X0+l1*sin(Theta1)+l2*sin(Theta2), 500-(Y0+l1*cos(Theta1)+l2*cos(Theta2))]; transparence = 1 peinture = blanc rectangle([-10,800],800,900) point([350,440]) segment(A3,B3) segment([350,440],A3) point(A3) point(B3) } Deux pendules doubles avec des conditions initiales proches Xmin = 0 Xmax = 700 Ymin = 0 Ymax = 500 var d2Theta1 = 0; var d2Theta2 = 0; var dTheta1 = 0; var dTheta2 = 0; var Theta1 = 0*(Math.PI)/2; var Theta2 = 2.3*(Math.PI)/2; var m1 = 10; var m2 = 10; var l1 = 150; var l2 = 150; var X0 = 350; var Y0 = 60; var g = 9.8; var time = 0.05; var d2Theta1b = 0; var d2Theta2b = 0; var dTheta1b = 0; var dTheta2b = 0; var Theta1b = 0*(Math.PI)/2; var Theta2b = 2.3*(Math.PI)/2; var m1b = 10; var m2b = 10.01; var l1b = 150; var l2b = 150; setInterval(animate, 10) function animate() { mu = 1+m1/m2; d2Theta1 = (g*(sin(Theta2)*cos(Theta1-Theta2)-mu*sin(Theta1))-(l2*dTheta2*dTheta2+l1*dTheta1*dTheta1*cos(Theta1-Theta2))*sin(Theta1-Theta2))/(l1*(mu-cos(Theta1-Theta2)*cos(Theta1-Theta2))); d2Theta2 = (mu*g*(sin(Theta1)*cos(Theta1-Theta2)-sin(Theta2))+(mu*l1*dTheta1*dTheta1+l2*dTheta2*dTheta2*cos(Theta1-Theta2))*sin(Theta1-Theta2))/(l2*(mu-cos(Theta1-Theta2)*cos(Theta1-Theta2))); dTheta1 += d2Theta1*time; dTheta2 += d2Theta2*time; Theta1 += dTheta1*time; Theta2 += dTheta2*time; A1 = [X0+l1*sin(Theta1), 500-(Y0+l1*cos(Theta1))]; B1 = [ X0+l1*sin(Theta1)+l2*sin(Theta2), 500-(Y0+l1*cos(Theta1)+l2*cos(Theta2))]; transparence = 1 peinture = blanc rectangle([-10,800],800,900) couleur = noir point([350,440]) segment(A1,B1) segment([350,440],A1) point(A1) point(B1) mub = 1+m1b/m2b; d2Theta1b = (g*(sin(Theta2b)*cos(Theta1b-Theta2b)-mub*sin(Theta1b))-(l2b*dTheta2b*dTheta2b+l1b*dTheta1b*dTheta1b*cos(Theta1b-Theta2b))*sin(Theta1b-Theta2b))/(l1b*(mub-cos(Theta1b-Theta2b)*cos(Theta1b-Theta2b))); d2Theta2b = (mub*g*(sin(Theta1b)*cos(Theta1b-Theta2b)-sin(Theta2b))+(mub*l1b*dTheta1b*dTheta1b+l2b*dTheta2b*dTheta2b*cos(Theta1b-Theta2b))*sin(Theta1b-Theta2b))/(l2b*(mub-cos(Theta1b-Theta2b)*cos(Theta1b-Theta2b))); dTheta1b += d2Theta1b*time; dTheta2b += d2Theta2b*time; Theta1b += dTheta1b*time; Theta2b += dTheta2b*time; A1b = [X0+l1b*sin(Theta1b), 500-(Y0+l1b*cos(Theta1b))]; B1b = [ X0+l1b*sin(Theta1b)+l2b*sin(Theta2b), 500-(Y0+l1b*cos(Theta1b)+l2b*cos(Theta2b))]; couleur = rouge point([350,440]) segment(A1b,B1b) segment([350,440],A1b) point(A1b) point(B1b) }