12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- %*********************************************************************;
- % This is a test file for the CHANGEVAR package. ;
- % Make sure that before you attempt to run it the ;
- % MATRIX package and CHANGEVAR is loaded. ;
- %*********************************************************************;
- algebraic;
- %*********************************************************************;
- % ON DISPJACOBIAN; % To get the Jacobians printed, remove the... ;
- % ... percentage sign before the word ON ;
- %*********************************************************************;
- % ;
- % *** First test problem *** ;
- % ;
- % Here are two Euler type of differential equations, ;
- % ;
- % 3 2 ;
- % 2 x y''' + 3 x y'' - y = 0 ;
- % ;
- % ;
- % 2 ;
- % 5 x y'' - x y' + 7 y = 0 ;
- % ;
- % ;
- % An Euler equation can be converted into a (linear) equation with ;
- % constant coefficients by making change of independent variable: ;
- % ;
- % u ;
- % x = e ;
- % ;
- % The resulting equations will be ;
- % ;
- % ;
- % 2 y''' - 3 y'' + y' - y = 0 ;
- % ;
- % and ;
- % ;
- % 5 y'' - 6 y' + 7 y = 0 ;
- % ;
- % ;
- % Where, now (prime) denotes differentiation with respect to the new ;
- % independent variable: u ;
- % How this change of variable is done using CHANGEVAR follows. ;
- % ;
- %*********************************************************************;
- operator y;
- changevar(y, u, x=e**u, { 2*x**3*df(y(x),x,3)+3*x**2*df(y(x),x,2)-y(x),
- 5*x**2*df(y(x),x,2)-x*df(y(x),x)+7*y(x) } ) ;
- %*********************************************************************;
- % *** Second test problem *** ;
- % ;
- % Now, the problem is to obtain the polar coordinate form of Laplace's;
- % equation: ;
- % ;
- % 2 2 ;
- % d u d u ;
- % ------ + ------ = 0 ;
- % 2 2 ;
- % d x d y ;
- % ;
- % (The differentiations are partial) ;
- % ;
- % For polar coordinates the change of variables are : ;
- % ;
- % x = r cos(theta) , y = r sin(theta) ;
- % ;
- % As known, the result is : ;
- % ;
- % ;
- % 2 2 ;
- % d u 1 d u 1 d u ;
- % ------ + --- ------ + --- ---------- = 0 ;
- % 2 r d r 2 2 ;
- % d r r d theta ;
- % ;
- % How this change of variable is done using CHANGEVAR follows. ;
- % ;
- % 2 2 ;
- % (To get rid of the boring sin + cos terms we introduce a LET ;
- % statement) ;
- % ;
- %*********************************************************************;
- operator u;
- let sin theta**2 = 1 - cos theta**2 ;
- changevar(u, { r , theta }, { x=r*cos theta, y=r*sin theta },
- df(u(x,y),x,2)+df(u(x,y),y,2) ) ;
- end; % End of test programs for CHANGEVAR ;
|