Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
cpm:mumath [2010/08/04 11:12] – volkerp | cpm:mumath [2020/01/30 07:17] – [Downloads] alle Newsletter 1..18 volkerp | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== muMATH ====== | ====== muMATH ====== | ||
+ | |||
+ | David R. Stoutemyer, 28.1.2012: | ||
+ | |||
+ | <wrap hi>//I am delighted that someone is keeping alive the memory of muMath!\\ | ||
+ | best regards, david// | ||
+ | </ | ||
**Computer-Algebra-System für CP/M** | **Computer-Algebra-System für CP/M** | ||
- | muMATH war seinerzeit ein beeindruckendes Stück Software: Ein Programm, das mit Zahlen beliebiger Länge rechnen konnte, Gleichungen mit Variablen algebraisch löste u.v.m. | + | muMATH |
Und das alles mit den beschränkten Speicher- und Rechenkapazitäten von CP/M! | Und das alles mit den beschränkten Speicher- und Rechenkapazitäten von CP/M! | ||
- | myMATH | + | muMATH |
auch für sich selbst stehen. | auch für sich selbst stehen. | ||
muMATH wurde in den 70er Jahren von von Albert D. Rich und David Ross Stoutemyer entwickelt. Beide gründeten 1979 das Unternehmen The Soft Warehouse. | muMATH wurde in den 70er Jahren von von Albert D. Rich und David Ross Stoutemyer entwickelt. Beide gründeten 1979 das Unternehmen The Soft Warehouse. | ||
- | muMATH ist in einem LISP-Derivat namens muSIMP geschrieben. muMATH war das erste Computeralgebrasystem (CAS), das auf " | + | {{ : |
+ | |||
+ | Zur Computeralgebrageschichte und zu Implementationsdetails hat D. Stoutemyer 2008 einen Vortrag gehalten: http:// | ||
+ | |||
+ | muMATH ist in einem LISP-Derivat namens muSIMP geschrieben. muMATH war das erste Computeralgebrasystem (CAS), das auf " | ||
muMATH-79 erschien 1979 und lief auf 8080- und Z80-Computern mit weniger als 48Kbyte RAM unter CP/M, und auf dem Radio Shack TRS-80 unter TRS-DOS. muMATH-80 erschien 1980 und lief zusätzlich auf 6502 based Apple II Computern. muMATH-83 erschien 1983 und lief auf 8088 based IBM PC und XT Computern mit weniger als 300Kbytes RAM. | muMATH-79 erschien 1979 und lief auf 8080- und Z80-Computern mit weniger als 48Kbyte RAM unter CP/M, und auf dem Radio Shack TRS-80 unter TRS-DOS. muMATH-80 erschien 1980 und lief zusätzlich auf 6502 based Apple II Computern. muMATH-83 erschien 1983 und lief auf 8088 based IBM PC und XT Computern mit weniger als 300Kbytes RAM. | ||
- | {{: | + | {{: |
//September 1, 1982: Microsoft announces the availability of its symbolic mathematic package muMATH/ | //September 1, 1982: Microsoft announces the availability of its symbolic mathematic package muMATH/ | ||
- | the Apple II, TRS-80, and CP/M-80 computer systems.// | + | the Apple II, TRS-80, and CP/M-80 computer systems.// |
DERIVE, der Nachfolger von muMATH, erschien 1988 und war unter DOS und später Windows lange Zeit gerade in der schulischen und studentischen Ausbildung verbreitet. | DERIVE, der Nachfolger von muMATH, erschien 1988 und war unter DOS und später Windows lange Zeit gerade in der schulischen und studentischen Ausbildung verbreitet. | ||
+ | |||
+ | ===== Dokumentation ===== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Zu Mumath gibt es ein Handbuch (auch in deutscher Sprache von der TUK); Lehrprogramme und außerdem Newsletter. | ||
+ | Diese Newsletter erschienen von Nov. 1979 bis Nov. 1988 in ingesamt 18 Ausgaben und einem Reprint der Ausgaben 1-16. | ||
+ | |||
+ | Vom Autor von Musimp, Albert Rich, habe ich die Newsletter als Original-Wordstar-Texte erhalten. Diese wurden mit [[cpm: | ||
+ | |||
+ | <WRAP clear></ | ||
===== Downloads ===== | ===== Downloads ===== | ||
- | * {{: | + | * {{: |
- | * {{: | + | * {{: |
- | * engl. Anleitung gibt es bei http:// | + | * http:// |
* {{: | * {{: | ||
+ | * {{: | ||
+ | * {{: | ||
+ | * {{ : | ||
+ | * {{ : | ||
+ | |||
+ | ===== Links ===== | ||
+ | |||
+ | * http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
===== Schnellstart ===== | ===== Schnellstart ===== | ||
- | Zum Kennenlernen von Musimp: | + | Zum Kennenlernen von Musimp |
- Starte Musimp am CP/M prompt: **MUSIMP ALL** | - Starte Musimp am CP/M prompt: **MUSIMP ALL** | ||
- | - Setze " | + | - Setze " |
- | - Starte die demo durch folgende Eingabe am "?" | + | - Starte die Demo durch folgende Eingabe am "?" |
- Beende Musimp | - Beende Musimp | ||
- | ===== Links ===== | + | <file - demo.prn> |
+ | %*** INTEGER ARITHMETIC EXAMPLES | ||
+ | |||
+ | % INTEGER ADDITION & SUBTRACTION % | ||
+ | |||
+ | 32 + 15 - 24; | ||
+ | @: 23 | ||
+ | |||
+ | |||
+ | ? % MULTIPLICATION & UNARY MINUS % | ||
+ | |||
+ | 5 * -12; | ||
+ | @: -60 | ||
+ | |||
+ | |||
+ | ? % USE OF PARENTHESIS % | ||
+ | |||
+ | 436 * (123 - 57); | ||
+ | @: 28776 | ||
+ | |||
+ | |||
+ | ? % RAISING TO A POWER % | ||
+ | |||
+ | 100^3; | ||
+ | @: 1000000 | ||
+ | |||
+ | |||
+ | ? % ASSIGNMENTS TO A VARIABLE % | ||
+ | |||
+ | FOO: (3*8 - 16)^2; | ||
+ | @: 64 | ||
+ | |||
+ | |||
+ | ? % USE OF ASSIGNED VARIABLE % | ||
+ | |||
+ | 3*FOO^5; | ||
+ | @: 3221225472 | ||
+ | |||
+ | |||
+ | ? % SAVE INTERMEDIATE RESULTS % | ||
+ | |||
+ | SEC#PER#YR: 365*24*3600; | ||
+ | @: 31536000 | ||
+ | |||
+ | |||
+ | ? IN#PER#MI: 5280*12; | ||
+ | @: 63360 | ||
+ | |||
+ | |||
+ | ? % USE OF INTERMEDIATE RESULTS % | ||
+ | % TO FIND INCHES TO ALHPA CENTAURI % | ||
+ | |||
+ | 4 * 186000 * SEC#PER#YR * IN# | ||
+ | @: 1486601994240000000 | ||
+ | |||
+ | |||
+ | ? % EXACT, INFINITE PRECISION % | ||
+ | |||
+ | 99^99; | ||
+ | @: | ||
+ | 3697296376497267726571879056288054405956687642817411 | ||
+ | 0243025997242355257045527752342141065001012823272794 | ||
+ | 0978889548326540119429996769494359451621570193644014 | ||
+ | 418071060667659301384999779999159200499899 | ||
+ | |||
+ | |||
+ | ? | ||
+ | %*** RATIONAL ARITHMETIC EXAMPLES | ||
+ | |||
+ | % REDUCE FRACTIONS TO LOWEST TERMS % | ||
+ | |||
+ | 56/77; | ||
+ | @: 8 / 11 | ||
+ | |||
+ | |||
+ | ? % FIND COMMON DENOMINATOR % | ||
+ | |||
+ | 5/6 - 3/4; | ||
+ | @: 1 / 12 | ||
+ | |||
+ | |||
+ | ? % RATIONAL SIMPLIFICATION % | ||
+ | |||
+ | 3 * (1/2 + 1/6); | ||
+ | @: 2 | ||
+ | |||
+ | |||
+ | ? % FLOATING POINT NOTATION % | ||
+ | |||
+ | POINT: 10$ | ||
+ | |||
+ | ? 1/3; | ||
+ | @: 0.3333333333 | ||
+ | |||
+ | |||
+ | ? | ||
+ | %*** VARIABLE RADIX BASE ***% | ||
+ | |||
+ | % SET FOR HEXADECIMAL ARITHMETIC % | ||
+ | |||
+ | RADIX (16); | ||
+ | @: 0A | ||
+ | |||
+ | |||
+ | ? % USE AS A HEX CALCULATOR % | ||
+ | |||
+ | 7C80 - 2*12EF + 0A3C; | ||
+ | @: 60DE | ||
+ | |||
+ | |||
+ | ? % ASSIGNMENT TO A VARIABLE % | ||
+ | |||
+ | EG: 10000; | ||
+ | @: 10000 | ||
+ | |||
+ | |||
+ | ? % RETURN TO BASE TEN ARITHMETIC % | ||
+ | |||
+ | RADIX (0A); | ||
+ | @: 16 | ||
+ | |||
+ | |||
+ | ? % FIND EG IN BASE TEN % | ||
+ | |||
+ | EG; | ||
+ | @: 65536 | ||
+ | |||
+ | |||
+ | ? % BASE TWO ARITHMETIC % | ||
+ | |||
+ | RADIX (2); | ||
+ | @: 1010 | ||
+ | |||
+ | |||
+ | ? % BINARY ARITHMETIC CALCULATOR % | ||
+ | |||
+ | 101101110 * EG; | ||
+ | @: 1011011100000000000000000 | ||
+ | |||
+ | |||
+ | ? % RETURN TO BASE TEN ARITHMETIC % | ||
+ | |||
+ | RADIX (1010); | ||
+ | @: 2 | ||
+ | |||
+ | |||
+ | ? | ||
+ | %*** EXPONENTIAL SIMPLIFICATIONS | ||
+ | |||
+ | % FRACTIONAL POWERS % | ||
+ | 8 ^ (2/3); | ||
+ | @: 4 | ||
+ | |||
+ | |||
+ | ? 12 ^ (1/2); | ||
+ | @: 2 * 3^0.5 | ||
+ | |||
+ | |||
+ | ? % POWERS OF THE IMAGINARY NUMBER % | ||
+ | |||
+ | #I^2; | ||
+ | @: -1 | ||
+ | |||
+ | |||
+ | ? #I^-7; | ||
+ | @: #I | ||
+ | |||
+ | |||
+ | ? % COMPLEX EXPONENTIALS % | ||
+ | |||
+ | #E ^ (#I*#PI); | ||
+ | @: -1 | ||
+ | |||
+ | |||
+ | ? | ||
+ | %*** | ||
+ | |||
+ | 5!; | ||
+ | @: 120 | ||
+ | |||
+ | |||
+ | ? 50!^2; | ||
+ | @: | ||
+ | 9250170652825079190134707232358836823494868074219019 | ||
+ | 8770613927101881057071736043444238321314044821530214 | ||
+ | 4000000000000000000000000 | ||
+ | |||
+ | |||
+ | ? % BINOMIAL COEFFICIENTS [12:30] % | ||
+ | |||
+ | N: 30; | ||
+ | @: 30 | ||
+ | |||
+ | |||
+ | ? M: 12; | ||
+ | @: 12 | ||
+ | |||
+ | |||
+ | ? N! / ((N-M)!*M!); | ||
+ | @: 86493225 | ||
+ | |||
+ | |||
+ | ? | ||
+ | %*** BASIC ALGEBRA EXAMPLES | ||
+ | |||
+ | % AUTOMATIC ALGEBRAIC SIMPLIFICATION % | ||
+ | |||
+ | % COMBINES SIMILAR TERMS AND FACTORS % | ||
+ | |||
+ | 3*X - X; | ||
+ | @: 2 * X | ||
+ | |||
+ | |||
+ | ? Y^3 * Y^(R+1); | ||
+ | @: Y ^ (4+R) | ||
+ | |||
+ | |||
+ | ? | ||
+ | % EXPLOITS IDENTITIES AND ZEROS % | ||
+ | |||
+ | 0 + X; | ||
+ | @: X | ||
+ | |||
+ | |||
+ | ? 1 * Y; | ||
+ | @: Y | ||
+ | |||
+ | |||
+ | ? Z * 0; | ||
+ | @: 0 | ||
+ | |||
+ | |||
+ | ? X^1; | ||
+ | @: X | ||
+ | |||
+ | |||
+ | ? Y^0; | ||
+ | @: 1 | ||
+ | |||
+ | |||
+ | ? 1^X; | ||
+ | @: 1 | ||
+ | |||
+ | |||
+ | ? % MULTIPLE SIMPLIFICATIONS % | ||
+ | |||
+ | 5*X^1*Y + Y^2*-3*X/Y + W^(Z^2 - Z*Z); | ||
+ | @: 1 + 2*X*Y | ||
+ | |||
+ | |||
+ | ? % POLYNOMIAL MULTIPLICATION % | ||
+ | |||
+ | (3*X - 2*Y) * (Y^2 + 4*X); | ||
+ | @: -8*X*Y + 3*X*Y^2 + 12*X^2 - 2*Y^3 | ||
+ | |||
+ | |||
+ | ? % POLYNOMIAL POWERS % | ||
+ | |||
+ | (X+1)^2; | ||
+ | @: 1 + 2*X + X^2 | ||
+ | |||
+ | |||
+ | ? (X+5) * (X^2-2*X+3)^2; | ||
+ | @: 45 - 51*X + 38*X^2 - 10*X^3 + X^4 + X^5 | ||
+ | |||
+ | |||
+ | ? % CONTENT FACTORIZATION % | ||
+ | |||
+ | FCTR (6*X^3*Y + 15*X^2*Y); | ||
+ | @: 3 * X^2 * Y * (5+2*X) | ||
+ | |||
+ | |||
+ | ? | ||
+ | %*** LOGARITHMIC SIMPLIFICATIONS | ||
+ | |||
+ | % NATURAL LOG OF ONE % | ||
+ | |||
+ | LN (1); | ||
+ | @: 0 | ||
+ | |||
+ | |||
+ | ? % COMMON LOG OF 1000 % | ||
+ | |||
+ | LOG (1000, 10); | ||
+ | @: 3 | ||
+ | |||
+ | |||
+ | ? % EXPAND THE LOG OF A PRODUCT % | ||
+ | |||
+ | LN (X*Y); | ||
+ | @: LN(X) + LN(Y) | ||
+ | |||
+ | |||
+ | ? % EXPAND THE LOG OF A POWER % | ||
+ | |||
+ | LOG (Z^3, 10); | ||
+ | @: 3*LN(Z) / LN(10) | ||
+ | |||
+ | |||
+ | ? % MULTIPLE SIMPLIFICATIONS % | ||
+ | |||
+ | LN(X^2*Y) - 2*LN(X); | ||
+ | @: LN (Y) | ||
+ | |||
+ | |||
+ | ? % INTER-BASE SIMPLIFICATIONS % | ||
+ | |||
+ | LOG(X,10) * LOG(10,# | ||
+ | @: LN (X) | ||
+ | |||
+ | |||
+ | ? % LOGARITHMIC POWERS % | ||
+ | |||
+ | #E ^ LN(X+5); | ||
+ | @: 5 + X | ||
+ | |||
+ | |||
+ | ? | ||
+ | %*** TRIGONOMETRIC SIMPLIFICATIONS ***% | ||
+ | |||
+ | % ELEMENTARY ANGLE VALUES % | ||
+ | |||
+ | COS (0); | ||
+ | @: 1 | ||
+ | |||
+ | |||
+ | ? SIN (#PI/2); | ||
+ | @: 1 | ||
+ | |||
+ | |||
+ | ? SIN (37*# | ||
+ | @: 3^0.5 / 2 | ||
+ | |||
+ | |||
+ | ? % EQUIVALENT FUNCTIONS % | ||
+ | |||
+ | TAN(X) * COS(X); | ||
+ | @: SIN (X) | ||
+ | |||
+ | |||
+ | ? % MULTIPLE ANGLES EXPANSION % | ||
+ | |||
+ | SIN (2*X); | ||
+ | @: 2 * COS(X) * SIN(X) | ||
+ | |||
+ | |||
+ | ? COS(3*X); | ||
+ | @: 4*COS(X)^3 - 3*COS(X) | ||
+ | |||
+ | |||
+ | ? % ANGLE SUMS EXPANSION % | ||
+ | |||
+ | COS (X-Y); | ||
+ | @: COS(X)*COS(Y) + SIN(X)*SIN(Y) | ||
+ | |||
+ | |||
+ | ? % COMBINATION EXPANSIONS % | ||
+ | |||
+ | EG: SIN (2*X+Y); | ||
+ | @: 2*COS(X)^2*SIN(Y) + 2*COS(X)*COS(Y)*SIN(X) - SIN( | ||
+ | Y) | ||
+ | |||
+ | |||
+ | ? | ||
+ | %*** REPRESENT EQUATIONS | ||
+ | |||
+ | EQN: 2*X+7 == A^2 - X^2/X - 3; | ||
+ | @: 7+2*X == -3-X+A^2 | ||
+ | |||
+ | |||
+ | ? % STEP BY STEP SOLUTION FOR X % | ||
+ | |||
+ | EQN: EQN + X - 7; | ||
+ | @: 3*X == -10+A^2 | ||
+ | |||
+ | |||
+ | ? EQN: EQN/3; | ||
+ | @: X == (-10+A^2)/ | ||
+ | |||
+ | |||
+ | ? | ||
+ | %*** CALCULUS OPERATIONS | ||
+ | |||
+ | % FIND DERIVATIVES % | ||
+ | |||
+ | DIF (3*X^2 + 5*X - 4, X); | ||
+ | @: 5 + 6*X | ||
+ | |||
+ | |||
+ | ? DIF (LN(X)^2, X); | ||
+ | @: 2*LN(X) / X | ||
+ | |||
+ | |||
+ | ? DIF (#E^X^2, X); | ||
+ | @: 2 * #E^X^2 * X | ||
+ | |||
+ | |||
+ | ? DIF (P*SIN(X) + X^2, X); | ||
+ | @: 2*X + P*COS(X) | ||
+ | |||
+ | |||
+ | ? % FIND INTEGRALS % | ||
+ | |||
+ | INT (2*X - 1/X, X); | ||
+ | @: X^2 - LN(X) | ||
+ | |||
+ | |||
+ | ? INT (X * #E^X^2 * SIN(# | ||
+ | @: -COS(# | ||
+ | |||
+ | |||
+ | ? INT (LN(LN(X))/ | ||
+ | @: LN(X)*LN(LN(X)) - LN(X) | ||
+ | |||
+ | |||
+ | ? | ||
+ | %*** | ||
+ | |||
+ | % TAYLOR SERIES EXPANSION FUNCTION % | ||
+ | |||
+ | FUNCTION TAYLOR (EXPN, X, A, N, | ||
+ | % Locals: % J, C, ANS, NUMNUM, DENNUM), | ||
+ | NUMNUM: DENNUM: 30, | ||
+ | J: ANS: 0, | ||
+ | C: 1, | ||
+ | LOOP | ||
+ | ANS: ANS + C * EVSUB (EXPN, X, A), | ||
+ | WHEN J=N, ANS EXIT, | ||
+ | EXPN: DIF (EXPN, X), | ||
+ | J: J + 1, | ||
+ | C: C * (X-A) / J, | ||
+ | ENDLOOP, | ||
+ | ENDFUN ; | ||
+ | @: *** REDEFINED: TAYLOR | ||
+ | | ||
+ | |||
+ | |||
+ | ? % TAYLOR SERIES EXPANSION % | ||
+ | |||
+ | TAYLOR (#E^X, X, 0, 6); | ||
+ | @: 1 + X + X^2/2 + X^3/6 + X^4/24 + X^5/120 + X^6/ | ||
+ | 720 | ||
+ | |||
+ | |||
+ | ? TAYLOR (SIN(X), X, 0, 8); | ||
+ | @: X - X^3/6 + X^5/120 - X^7/5040 | ||
+ | |||
+ | |||
+ | ? TAYLOR (#E^SIN(X), X, 0, 4); | ||
+ | @: 1 + X + X^2/2 - X^4/8 | ||
+ | |||
+ | |||
+ | ? | ||
+ | MOVD (' | ||
+ | |||
+ | ? RDS ()$ | ||
+ | |||
+ | ? ^C | ||
+ | </ | ||
- | * http:// | ||
- | * [[http:// | ||
- | * [[http:// |