1
0
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:
Eric Swenson 2018-07-08 13:05:30 -07:00
parent 3d00a2311b
commit 8a21211d2c
4 changed files with 14752 additions and 1 deletions

View File

@ -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

File diff suppressed because it is too large Load Diff

18
src/demo/c2cyl.demo Executable file
View 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
View 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);