// // first_order.sce // // A first order integration of an accelerating mass // // To run this in Scilab use 'File' then 'Exec'. // // by: M. Coburn J. Wireman // //Set thes system component values kd1 = 1; kd2 = 1; kd3 = 1; ks1 = 1; ks2 = 1; ks3 = 1; M1 = 1; M2 = 1; F = 1; //Initial Conditions for the System x1 = 0; v1 = 0; x2 = 0; v2 = 0; //Set the number of steps and the step size h = 0.1; steps = 30; //Print a Header for the Table of Values printf(" t x1 v1 x2 v2 \n"); printf("-----------------------------------------------\n"); for i = 1:steps, dx1 = v1; dx2 = v2; dv1 = v1*((-kd1-kd2)/M1)+ x1*((-ks1-ks2)/M1) +v2*(kd2/M1) + x2*(ks2/M1); dv2 = (F/M2)+v2*((-kd2-kd3)/M2)+x2*((-ks2-ks3)/M2)+v1*(kd2/M2)+x1*(ks2/M2); v1 = v1 + h*dv1; v2 = v2 + h*dv2; x1 = x1 + h*dx1; x2 = x2 + h*dx2; end printf(" v1 = %f \n", v1); printf(" x1 = %f \n", x1); printf(" v2 = %f \n", v2); printf(" x2 = %f \n", x2); end printf(" v1 = %f \n", v1); printf(" x1 = %f \n", x1); printf(" v2 = %f \n", v2); printf(" x2 = %f \n", x2); printf("%4.3f %8.3f %8.3f %8.3f %8.3f\n", i*h, x1, v1, x2, v2); end