ode2( m * 'diff(v,t) = - m * g - b * v, v, t);
g : 9.8; m : 0.1; b : 0.01; %c: g*m/k; plot2d( rhs(%o1), [t, 0, 10]);パラメタ g, m , b, %c に数値を入れて t が 0 から 10 の間についてグラフに描く。
m : 0.1; g : 9.8; b : 0.01; data : rk( -g -k/m*v, v, 0, [t, 0, 10, 0.1]); plot2d( [discrete, data] ); remvalue(m, g, b, %c);
ode2( m * 'diff(v,t) = -m*g + k*v^2, v, t); solve(%, v); ratsubst(-1, exp(2*%c*sqrt(g*k*m)/m), %); m : 0.1; g : 9.8; k : 0.01; plot2d( rhs( %o999999[1]), [t, 0, 10]);※ %o999999 のところには、実際に微分方程式を解いて solve で得られた答えを指定する。
solve( [ m1*v01 + m2 * v02 = m1*v1+m2*v2, 1/2 * m1 * v01^2 + 1/2 * m2 * v02^2= 1/2 * m1 * v1^2 + 1/2 * m2 * v2^2 ], [v1, v2] );
ratsubst( m1, m2, %);