This manual contains information on Mathomatic equations.
Mathomatic is a symbolic interpreter that can:
Mathomatic was originally written in Microsoft C for MS-DOS. The C source code is highly portable and will compile and run under any operating system.
To start the Mathomatic interpreter, type "am" at the shell prompt.
ANSI color mode is enabled by default. This mode can be toggled by the "-c" option. ANSI color mode outputs ANSI escape sequences to make each level of parentheses a different color, to improve readability.
HTML color mode is enabled by the "-h" option. This makes Mathomatic output suitable for inclusion in a web page.
After any options, file names may be specified on the command line that will be read in with the "read" command.
Mathomatic equations are entered into equation spaces. The number of available equation spaces is displayed every time Mathomatic starts up (usually 20).
The Mathomatic prompt contains the number of the current equation space (origin 1).
To enter an equation into the first available equation space, simply type the equation at the prompt. Equations consist of a Left Hand Side (LHS) and a Right Hand Side (RHS). The equation sides are separated by one, and only one, equals sign (=). An equation side consists of a mathematical expression which is one or more variables or constants separated by operators. Parentheses are used to override operator precedence.
Shown below is a valid equation with its parts labeled:
equation ----------------------- | variables constant| |-------------- | | || | | | | a = b - (c + 2) | | | | | | | | | -------- | | | | operators | --- ----------------- LHS RHS
In the above equation, the variable (a) is called the dependent variable because its value depends on the variables (b) and (c). (b) and (c) are called independent variables. In Mathomatic, any variable can be made the dependent variable by simply typing the variable name in at the prompt. This will solve the equation for that variable and, if successful, make that variable the LHS.
Here is the above equation entered into Mathomatic and solved for (b):
1-> a=b-(c+2) #1: a = b - c - 2 1-> b #1: b = 2 + c + a 1->
Constants are decimal, IEEE double precision (14 digit) floating point numbers. They may be entered in normal or scientific notation. They are displayed in normal or scientific notation, whichever is shortest.
Examples of equivalent constants in normal and scientific notation follow:
Normal Notation | Scientific Notation |
---|---|
10 | 1e1 (1.0 times 101) |
.1 | 1e-1 (1.0 times 10-1) |
6000000000 | 6e9 (6.0 times 109) |
Mathomatic results are almost always accurate to 14 digits. It is possible to get a result that is accurate to less digits, due to floating point inexactness, but you would have to really try.
Variables are what Mathomatic is all about. That is where the term "symbolic" comes from, because variables are symbolic in nature. They can represent known or unknown values, or any expression.
Variables start with a letter of the alphabet, followed by any combination of letters, numbers, and underscores (_), possibly followed by up to 7 primes ('). Variables may be up to 80 characters long.
The following variables are predefined and are not normal variables:
e# - The universal constant e (2.718281828...). p# or pi - The universal constant pi (3.1415926...). i# - The imaginary number (square root of -1). sign, sign1, sign2, sign3, ... - may be +1 or -1.
By default, upper case letters in variable names are automatically converted to lower case. To allow upper and lower case letters in variable names, use the "set case" command.
To automatically enter a unique (sign) variable, precede any expression with "+/-".
Operators have precedence decreasing as indicated:
- negate (unary prefix operator) ! factorial (unary postfix operator) ^ power (binary operator) * multiply / divide (binary operators) + add - subtract (binary operators) = equate (signifies equivalence)
Operators in the same precedence level are evaluated left to right.
The negate operator "-" may precede an expression, variable, or constant. The negate operator has the highest precedence of all operators.
The default operator for variables is multiply ("*"). If a variable is entered when an operator is expected, a multiply operator is automatically inserted.
Standard absolute value notation is allowed. "|x|" is converted to "(x^2)^.5".
The following example shows why operator precedence is important. Given the equation:
a = 64/-2^4 + 6*(3+1)
Mathomatic will first parenthesize the highest precedence operator (power) and then the lower precedence operators (times and divide). Addition and subtraction are the lowest precedence, so no need to parenthesize them. The result will be:
a = (64/(-2^4)) + (6*(3+1))
Mathomatic will evaluate this by combining constants from left to right on the same level of parentheses, deepest level first. So the calculations are performed in the following order:
a = (64/16) + (6*4) Combine deepest level parentheses first. a = 4 + 24 Divided 64 by 16 and then multiplied 6 by 4. a = 28 Added 24 to 4.
If the calculations were performed in a different order, the result would be different.
Mathomatic can perform complex number addition, subtraction, multiplication, and division. It can also do roots and powers of complex numbers. Complex numbers are in the form:
a + b*i#
where "a" is the "real part" and "b" is the "imaginary part". "a" and "b" may be constants, variables, or expressions. "i#" represents the square root of -1.
An example of complex number division follows:
1-> a=b/c #1: a = b/c 1-> calculate Enter b: 1+2*i# Enter c: 3+4*i# a = 0.44 + (0.08*i#) 1->
The imaginary number "i#" may appear anywhere within an equation, as many times as you want. Mathomatic will handle it properly.
Mathomatic has about 30 different commands that may be typed at its prompt. Please consult the Mathomatic Command Reference, for detailed information on commands. It is available in the file "am.htm".
Copyright © 2000 George Gesslein II