Go forward to Decomposing Polynomials.
Go backward to Multiple Solutions.
Go up to Solving Equations.
Solving Systems of Equations
----------------------------
You can also use the commands described above to solve systems of
simultaneous equations. Just create a vector of equations, then
specify a vector of variables for which to solve. (You can omit the
surrounding brackets when entering the vector of variables at the
prompt.)
For example, putting `[x + y = a, x - y = b]' on the stack and typing
`a S x,y RET' produces the vector of solutions `[x = a - (a-b)/2, y =
(a-b)/2]'. The result vector will have the same length as the
variables vector, and the variables will be listed in the same order
there. Note that the solutions are not always simplified as far as
possible; the solution for `x' here could be improved by an
application of the `a n' command.
Calc's algorithm works by trying to eliminate one variable at a time
by solving one of the equations for that variable and then
substituting into the other equations. Calc will try all the
possibilities, but you can speed things up by noting that Calc first
tries to eliminate the first variable with the first equation, then
the second variable with the second equation, and so on. It also
helps to put the simpler (e.g., more linear) equations toward the
front of the list. Calc's algorithm will solve any system of linear
equations, and also many kinds of nonlinear systems.
Normally there will be as many variables as equations. If you give
fewer variables than equations (an "over-determined" system of
equations), Calc will find a partial solution. For example, typing `a
S y RET' with the above system of equations would produce `[y = a -
x]'. There are now several ways to express this solution in terms of
the original variables; Calc uses the first one that it finds. You
can control the choice by adding variable specifiers of the form
`elim(V)' to the variables list. This says that V should be
eliminated from the equations; the variable will not appear at all in
the solution. For example, typing `a S y,elim(x)' would yield `[y = a
- (b+a)/2]'.
If the variables list contains only `elim' specifiers, Calc simply
eliminates those variables from the equations and then returns the
resulting set of equations. For example, `a S elim(x)' produces `[a -
2 y = b]'. Every variable eliminated will reduce the number of
equations in the system by one.
Again, `a S' gives you one solution to the system of equations. If
there are several solutions, you can use `H a S' to get a general
family of solutions, or, if there is a finite number of solutions, you
can use `a P' to get a list. (In the latter case, the result will
take the form of a matrix where the rows are different solutions and
the columns correspond to the variables you requested.)
Another way to deal with certain kinds of overdetermined systems of
equations is the `a F' command, which does least-squares fitting to
satisfy the equations. See Curve Fitting.