POLYMATH is a proven computational system, which has been specifically created for educational or professional use. The various POLYMATH programs allow the user to apply effective numerical analysis techniques during interactive problem solving on personal computers. Results are presented graphically for easy understanding and for incorporation into papers and reports. Students, engineers, mathematicians, scientists, or anyone with a need to solve problems will appreciate the efficiency and speed of problem solution.

The POLYMATH main, task selection window is shown below.

The main options available in this window are the following:

LIN:
**Linear Equations Solver.** Enter (in matrix form) and solve a new system of
up to 200 simultaneous linear equations (64 with convenient input interface).

NLE:
**Nonlinear Equations Solver.** Enter and solve a new system of up to 200
nonlinear algebraic equations.

DEQ:
**Differential Equations Solver.** Enter and solve a new system of up to 200
ordinary differential equations.

REG:
**Data analysis and Regression.** Enter, analyze, regress, and plot set of up
to 350 data points.

calc:
**Calculator.** Enter and evaluate explicit expressions with a variety of
intrinsic functions.

units:
**Unit Conversion.** Convert selected units into desired units.

const:
**Useful Constants.** Find selected scientific and engineering constants

setup:
**Parameter Settings.** Modify parameters of numerical solution algorithms

Additional information such as the current filename, problem title, and system time is shown in the status bar.

**Linear Equations Solver**

The purpose of this program is to allow you to solve systems of linear
algebraic equations where the set of linear equations is inputted in a
matrix-vector form. Systems containing up to 64 linear equations can be entered.
The elements of the matrix of coefficients and the vector of constants must be
entered.

The data entry screen is shown below. The matrix of coefficients and the vector
of coefficients are displayed. Each equation (row) is indicated by a number, and
each column by a variable name (x_{1}, x_{2},..., x_{n},
b).

You can use the cursor to highlight one of the cells. This is the current cell.
You can move the highlight by using the arrow keys or the left mouse click. To
enter or modify a value in a data cell, move the highlight to the appropriate
cell and either start typing in a number or erase and re-type the value already
in the cell. Column (variable) names can be changed by selecting a column or a
cell and then choosing the "Variable name..." option from the "Edit" drop-down
menu or from the menu activated with the right mouse click.

After you finished entering the data the system of equations can be solved by
selecting "Solve" from the drop-down "Program" menu or by bringing the cursor to
the blue arrow on the screen and pressing the left mouse button.

**Nonlinear Equations Solver**

The purpose of this program is to allow you to solve systems of nonlinear algebraic equations. The system may contain up to 200 nonlinear simultaneous (implicit) and supporting auxiliary (explicit) equations. Only real roots (non-complex) can be found. All equations are checked for correct syntax and other errors upon entry. Multiple roots are given for a single equation.

The equation input/modification window is shown below.

The options and information available on this screen are the following:

**Add NLE**: Input a new nonlinear (implicit) algebraic equation

**Add EE**: Input a new explicit algebraic equation

**Remove:** Delete the highlighted equation

**Edit**: Edit/Alter the highlighted equation

**Comments**: This check-box hides/unhides the *comments* column in
the equations entry table.

The comments column is not used by POLYMATH for the numerical calculations, optionally users can benefit from it by adding comments and remarks.

: Selecting this option opens a window showing a list of defined and undefined variables

: Move the highlighted equation downward

: Move the highlighted equation upward

: Problem setup state. Red light - incomplete (missing definition, initial state etc.). Green light - complete, ready to be solved.

: Solve the system of equations. Note that this option is displayed only when a valid set of equations, including initial guesses for the variables, have been entered.

**Solve
with**: Select the preferred solution algorithm from 4 choices.

At the bottom of the window the number of nonlinear and auxiliary equations is listed and problem setup related warning messages (undefined variables, missing initial values etc.) are given.

Detailed additional information is provided with regard to the following subjects:

- Entering the equations and initial estimates into the program
- Variables and expressions
- Solution algorithms
- Solution report
- Troubleshooting

**Differential Equations
Solver**

The purpose of this program is to help you solve systems of first-order ordinary differential equations. The system may contain up to 200 differential and supporting explicit algebraic equations.

The equation input/modification window is shown below.

The options and information available on this screen are the following:

**Add DE**: Input a new differential equation

**Add EE**: Input a new explicit algebraic equation

**Remove**: Delete the highlighted equation

**Edit**: Edit/Alter the highlighted equation

**Comments**: This check-box can hide/unhide the comments column in the
equations entry table.

The comments column is not used by POLYMATH for the numerical calculations. This optional feature allows users to add comments.

: Selecting this option opens a window showing a list of defined and undefined variables

: Move the highlighted equation downward

: Move the highlighted equation upward

: Problem setup state. Red light - incomplete (missing definition, initial state etc.). Green light - complete, ready to be solved.

: Integrate the system of equations. Note that this option is displayed only when a valid set of equations, including initial and final values of the variables, has been entered.

**Table**: When this option is marked a table containing the values of all
the variables as function of independent variable will be created during
integration.

**Graph**: When this option is marked, a plot of the integrated values of
the differential variables versus the independent variable will be created
during integration.

**Report**: When this option is marked a report containing initial, final,
maximal and minimal values of all the variables, list of the equations in the
system and some additional information will be shown after the integration is
finished.

**Indep Var**: Name of the independent variable.

**Solve with**: Select the preferred solution algorithm identified in the
pull down menu from among 6 choices including two for stiff problems.

**Initial Value**: Initial value of the independent variable.

**Final Value**: Final value of the independent variable.

At the bottom of the window the number of nonlinear and auxiliary equations is listed and problem setup related warning messages (undefined variables, missing initial values etc.) are given.

**Data Table for Regressions,
Curve Fitting, and General Plotting**

The data table is used for input, manipulation and storage of numerical data. The data is stored in a column-wise fashion where every column is associated with a name (variable) and can be addressed separately. The stored data can be regressed (link to Regression) (meaning fitting a straight line, various curves and equations to the data using multiple linear, polynomial and nonlinear regression techniques), analyzed (link to data analysis) (meaning interpolated, differentiated, integrated and various statistics are calculated) and plotted. The data table can be accessed directly by selecting the "REG" option when creating a new file. Tabular results of solution of a set of ordinary differential equations will be stored also in the data table.

The data entry and manipulation window (Data Table) is shown above. It is much like a spreadsheet. The top row of cells contains the column names (the default names being C01 to C30). The rest are data cells, which may be up to 300 rows by 30 columns (default values, the total number of rows and columns can be changed in the setup dialog box).

Column names can be changed. Contents of a column can be defined as function of previously defined columns. Column definitions can be very useful when, for example, transformation functions are used to linearize a nonlinear regression model.

To carry out regression with analysis or plotting of the data, select the appropriate option from the bottom of the data table.

**Linear & Polynomial
Regression**

This part of the program will fit a polynomial of the form:

P(x) = a_{0} + a_{1}*x + a_{2}*x^2 + . . . + a_{n}*x^n

where a0, a1, ..., an are regression parameters to a set of N tabulated values
of x (independent variable) versus y (dependent variable). The highest degree
allowed for a polynomial is N - 1 (thus n >= N - 1). The program calculates the
coefficients a0, a1, ..., an by minimizing the sum of squares of the deviations
between the calculated y or P(x) and the data for y. To carry out linear
regression, a 1st order polynomial must be selected.

The window for selection of the type of the curve to be fitted is shown below.

The options available in this window are the following:

**Dependent Variable:
**Select the dependent variable for regression.

**Multiple Linear Regression**

This part of the program will fit a linear function of the form:

y(x_{1}, x_{2}, ..., x_{n}) = a_{0} + a_{1}*x_{1}
+ a_{2}*x_{2} + ... + a_{n}*x_{n}

where a0, a1, ..., an are regression parameters, to a set of N tabulated values
of x1, x2, ..., xn (independent variables) versus y (dependent variable). Note
that the number of data points must be greater than n+1 (thus N >= n+1). The
program calculates the coefficients a0, a1, ..., an by minimizing the sum of
squares of the deviations between the calculated and the data for y. To carry
out a multiple linear regression, select the "Multiple linear" option in the
regression solver window.

The window of options selection for multiple linear regression is shown below.

The options available in this window are the following:

**Dependent Variable:
**Select the one of the column names as the dependent variable for regression.

**Multiple Nonlinear
Regression**

This part of the program will fit a nonlinear function of the form:

y = f (x_{1}, x_{2}, …, x_{n}, a_{0}, a_{1},
a_{2}, …, a_{m})

where a0, a1, …, an are regression parameters to a set of N tabulated values of
x1, x2, …, xn (independent variables) versus y (dependent variable). Note that
the number of data points must be greater than m + 1 (thus N >= m + 1). The
model entry communication box for entering the nonlinear model is shown below.

**Enter Model:
**Type in a new regression model equation or edit an existing equation.

To enter a model equation, press the "Enter Model" button. On the left-hand side, select the name of the dependent variable (it should be the name of an existing data column). On the right hand side, type in an equation containing numerical constants, column names, and parameter names.

The program will identify the valid column names and will assign all the other
names appearing in the equation as parameter names. You are requested to provide
initial estimates for all the parameters.

**Data Analysis**

Tabulated data often cannot be represented satisfactorily by a regression model or it can be difficult to find such a model. The purpose of this part of the program to help you interpolate, differentiate, integrate and plot data for which no regression model is available.

The window for selection of the type of the data analysis to be carried out is shown below. The options available in this window are the following.

**Interpolation:**

Calculation of the value of the dependent variable for a specified value of the independent variable

**Differentiation:**

Calculation of the derivative of the dependent variable for a specified value of the independent variable

**Integration:**

Calculation of the integral of the dependent variable for a specified region of the independent variable

**Independent variable: **

Select the independent variable/s for the analysis

**Dependent variable: **

Select the dependent variable for the analysis

**Solve with: **

Select the solution method.

**Solve: **

Carry out the analysis

**Graph Preparation and
Editing**

Graphical presentations can be created from the Data Table or are given as an option from several of the programs.

The window for creation of a graph in the Data Table give a selection of the column variable for plotting as shown in the following window.

The resulting graph shown below has many options. Once the graph has been edited, it can be copied to other applications such as word processors, spreadsheets, or desktop publishing packages.

The graph editing options can be reached using either the "Curves", "X-axis" and "Y-axis" drop-down menus or by pressing the right button on the mouse. Using the right button the menu options are displayed as shown below. The following options are available:

** Max Y-axis:** Change the upper bound on the Y (vertical) axis.

** Min Y-axis:** Change the lower bound on the Y (vertical) axis.

** Max X-axis: **Change the upper bound on the X (horizontal) axis.

** Min X-axis: **Change the lower bound on the X (horizontal) axis.

** Scatter connected:** Show the curve connecting the calculated
and/or stored data points.

** Draw points:** Show the calculated and/or stored data points.

** Auto scale:** Determines whether the program automatically
changes the scale as users remove/add function curves.

** Curves and Functions:** Option to remove variables and to add
function plots to the graph.

** Title:** Add or change graph title.

** Subtitle:** Add or change graph subtitle.

** Inverse grid lines:** Show grid lines if they are not shown,
remove them if they are shown.

** Legend box:** The legend box can be "dragged" to a different
location, if necessary, using the mouse.

In addition to the options presented here there are options available to change the format of the labels in the X and Y axes, change the width of the various lines and curves and change the size of the points drown. These options can be reached using the drop-down menus.