mirror of
https://github.com/PDP-10/its.git
synced 2026-01-11 23:53:12 +00:00
Added text version of macsyma manual version 9. Added batch demo
scripts to support manual's examples. Partially addresses #808 but does not resolve this issue as we want to be able to build from source.
This commit is contained in:
parent
3d00a2311b
commit
8a21211d2c
2
Makefile
2
Makefile
@ -14,7 +14,7 @@ SRC = system syseng sysen1 sysen2 sysen3 sysnet kshack dragon channa \
|
||||
DOC = info _info_ sysdoc sysnet syshst kshack _teco_ emacs emacs1 c kcc \
|
||||
chprog sail draw wl pc tj6 share _glpr_ _xgpr_ inquir mudman system \
|
||||
xfont maxout ucode moon acount alan channa fonts games graphs humor \
|
||||
kldcp libdoc lisp _mail_ midas quux scheme
|
||||
kldcp libdoc lisp _mail_ midas quux scheme manual
|
||||
BIN = sys2 emacs _teco_ lisp liblsp alan inquir sail comlap c decsys moon \
|
||||
graphs draw datdrw fonts fonts1 fonts2 games macsym maxer1 maint imlac
|
||||
|
||||
|
||||
14676
doc/manual/macsma.doc
Normal file
14676
doc/manual/macsma.doc
Normal file
File diff suppressed because it is too large
Load Diff
18
src/demo/c2cyl.demo
Executable file
18
src/demo/c2cyl.demo
Executable file
@ -0,0 +1,18 @@
|
||||
|
||||
/* Conversion of the Laplacian from Cartesian Coords. to
|
||||
Cylindrical Coords. */
|
||||
|
||||
ORDERLESS(Z,Y,X)$
|
||||
DEPENDS(U,[RHO,PHI,Z])$
|
||||
/* Input the transformation rules from the
|
||||
Cartesian system to the Cylindrical system */
|
||||
GRADEF(RHO,X,X/RHO)$
|
||||
GRADEF(RHO,Y,Y/RHO)$
|
||||
GRADEF(PHI,X,-Y/RHO^2)$
|
||||
GRADEF(PHI,Y,X/RHO^2)$
|
||||
EXPOP:1$
|
||||
/* Now just input the Laplacian in Cart. Coords.,
|
||||
and let the Chain Rule do its thing */
|
||||
DIFF(U,X,2)+DIFF(U,Y,2)+DIFF(U,Z,2);
|
||||
SUBST(RHO^2-X^2,Y^2,%);
|
||||
|
||||
57
src/demo/solder.demo
Executable file
57
src/demo/solder.demo
Executable file
@ -0,0 +1,57 @@
|
||||
|
||||
/* The following routine returns the homog.-part soln. to 2nd
|
||||
order linear diff'l eqns. with const. coeffs. */
|
||||
|
||||
MATCHDECLARE([B,C],RATNUMP,F,FREEOF(U))$
|
||||
ALIAS(D,DIFF)$
|
||||
DEFMATCH(SOLDE,'D(U,X,2) + B*'D(U,X) + C*U = F,U,X)$
|
||||
|
||||
SOLDER(EQN,U,X) :=
|
||||
BLOCK([B,C,F,DISC,R1,R2,ALPHA,BETA],
|
||||
IF SOLDE(EQN,U,X) = FALSE THEN RETURN(FALSE)
|
||||
ELSE (DISC: B^2 - 4*C, ALPHA: -B/2,
|
||||
IF DISC = 0 THEN RETURN(%E^(ALPHA*X) * (A1 + A2*X))
|
||||
ELSE (BETA: SQRT(DISC)/2,
|
||||
IF DISC > 0
|
||||
THEN (R1: ALPHA + BETA, R2: ALPHA - BETA,
|
||||
RETURN(A1*%E^(R1*X) + A2*%E^(R2*X)))
|
||||
ELSE (BETA: %I*BETA,
|
||||
RETURN(%E^(ALPHA*X) * (A1*COS(BETA*X)
|
||||
+ A2*SIN(BETA*X)))))))$
|
||||
|
||||
|
||||
/* An example - The method of undetermined coeffs. for
|
||||
obtaining the particular soln. as well */
|
||||
|
||||
DE: 'D(Y,X,2) - 'D(Y,X) - 6*Y = SIN(X);
|
||||
YH(X) := ''(SOLDER(%,Y,X));
|
||||
YP(X) := B1*SIN(X) + B2*COS(X)$
|
||||
YG(X) := YH(X) + YP(X)$
|
||||
PLUGIN: EV(DE,DIFF,EXPAND,Y=YP(X));
|
||||
EQN1: COEFF(PLUGIN,SIN(X));
|
||||
EQN2: COEFF(PLUGIN,COS(X));
|
||||
GLOBALSOLVE: TRUE$
|
||||
SOLN: LINSOLVE([EQN1,EQN2],[B1,B2]);
|
||||
YG(X);
|
||||
|
||||
/* Plugging in initial conditions of Y(0)=1 and Y'(0)=0 */
|
||||
|
||||
EQN1: YG(0) = 1;
|
||||
DIFF(YG(X),X);
|
||||
EQN2: EV(%,X=0) = 0;
|
||||
SOLN: LINSOLVE([EQN1,EQN2],[A1,A2]);
|
||||
YG(X);
|
||||
|
||||
|
||||
/* Resetting of options */
|
||||
|
||||
GLOBALSOLVE: FALSE$
|
||||
|
||||
/* Solution by Laplace transforms */
|
||||
|
||||
DE: SUBST(Y(X),Y,DE);
|
||||
[ATVALUE(Y(X),X=0,1), ATVALUE('DIFF(Y(X),X),X=0,0)];
|
||||
LAPLACE(DE,X,S);
|
||||
LINSOLVE([%],['LAPLACE(Y(X),X,S)]);
|
||||
ILT(FIRST(%),S,X);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user