home *** CD-ROM | disk | FTP | other *** search
/ Game Fest 1993 / gamefest1993stgcomputerslimited1993.iso / soft / ed / pro5 / mathplot.doc < prev    next >
Text File  |  1992-03-31  |  43KB  |  1,051 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.                                   M A T H P L O T
  10.  
  11.  
  12.  
  13.                       Mathematical Function Plotting Program
  14.  
  15.  
  16.  
  17.                                 Phillip H. Sherrod
  18.  
  19.                               A "shareware" program.
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.               MATHPLOT allows you to specify complicated mathematical
  27.               functions  using  ordinary  algebraic  expressions  and
  28.               immediately plot them.  Four types of functions may  be
  29.               specified:  cartesian  (Y=f(X));  parametric  cartesian
  30.               (Y=f(T)  and  X=f(T));  polar  (Radius=f(Angle));   and
  31.               parametric polar  (Radius=f(T)  and Angle=f(T)).  Up to
  32.               four functions may be plotted simultaneously.   Scaling
  33.               is automatic.    Options  are available to control axis
  34.               display and labeling as well as grid lines.  Hard  copy
  35.               output  may  be  generated  as  well as screen display.
  36.               MATHPLOT is an ideal tool  for  engineers,  scientists,
  37.               math and science teachers, and anyone else who needs to
  38.               quickly visualize mathematical functions.
  39.  
  40.                MATHPLOT -- Mathematical Function Plotter      Page 1
  41.  
  42.  
  43.  
  44.  
  45.          INTRODUCTION
  46.  
  47.          MATHPLOT  is  a  program  for  IBM-PC  computers   which   allows
  48.          interactive entry  and  plotting of mathematical functions.  Some
  49.          of the features of MATHPLOT are listed below:
  50.  
  51.               Direct  entry  of  complicated  mathematical  functions
  52.               using   normal   algebraic  expressions  with  embedded
  53.               operators and functions.
  54.  
  55.               An   assortment   of   built-in   functions   including
  56.               trigonometric,   square   root,   log,  Gamma,  Bessel,
  57.               elliptic integrals,  normal  probability  distribution,
  58.               etc.
  59.  
  60.               The  ability to plot four types of functions: cartesian
  61.               (Y=f(X)); parametric  cartesian  (Y=f(T)  and  X=f(T));
  62.               polar    (Radius=f(Angle));    and   parametric   polar
  63.               (Radius=f(T) and Angle=f(T)).
  64.  
  65.               The  ability  to  simultaneously  plot   up   to   four
  66.               functions.
  67.  
  68.               Automatic scaling and axis labeling.
  69.  
  70.               The  ability to save function specifications in command
  71.               files which then can be easily executed.
  72.  
  73.               The ability to accept X-Y data points from an  external
  74.               file.
  75.  
  76.               Printed  copies of plots may be produced on HP LaserJet
  77.               printers.
  78.  
  79.               MATHPLOT -- Mathematical Function Plotter      Page 2
  80.  
  81.  
  82.          INSTALLING MATHPLOT
  83.  
  84.          The MATHPLOT system consists of the following files:
  85.  
  86.          MATHPLOT.EXE -- The executable program.
  87.          MATHPLOT.HLP -- Text file accessed by HELP command.
  88.          MATHPLOT.FON -- Font file used for title line and axis labels.
  89.          MATHPLOT.LJF -- Font file for HP LaserJet printer.
  90.          MATHPLOT.FUN -- Example functions
  91.          MATHPLOT.DOC -- Documentation file.
  92.  
  93.          To  install  MATHPLOT,  copy the files into the directory of your
  94.          choice.  If you do not plan to generated hard copy output  for  a
  95.          LaserJet printer,  you  may delete the MATHPLOT.LJF file.  If the
  96.          MATHPLOT.HLP, MATHPLOT.FON, and MATHPLOT.LJF  files  are  not  in
  97.          your current directory, you must place a command of the following
  98.          form in your AUTOEXEC.BAT file to tell MATHPLOT where to look for
  99.          its help and font files:
  100.  
  101.          SET MATHPLOT=directory
  102.  
  103.          Where  "directory"  is the name of the device and directory where
  104.          the files are located.  For example, if the files are located  in
  105.          a  directory  named MATHPLOT on the C disk, the following command
  106.          could be used:
  107.  
  108.          SET MATHPLOT=C:\MATHPLOT
  109.  
  110.  
  111.  
  112.          GETTING STARTED
  113.  
  114.          MATHPLOT is exceptionally easy to use.  Although there are a fair
  115.          number of commands to control options, you only need  to  know  a
  116.          couple of commands to begin using it.
  117.  
  118.          Start the program by entering the command:
  119.  
  120.          MATHPLOT
  121.  
  122.          MATHPLOT  will  display a title screen; press Enter to proceed to
  123.          command mode.  MATHPLOT  prints  a  greater-than  sign  (">")  to
  124.          prompt you  for a command.  Begin by specifying a simple function
  125.          to be plotted.  I suggest you enter the command:
  126.  
  127.               MATHPLOT -- Mathematical Function Plotter      Page 3
  128.  
  129.  
  130.          Y=SIN(X)
  131.  
  132.          You  may  use  either upper or lower case letters when you type a
  133.          command.  Next, command MATHPLOT to evaluate  this  function  and
  134.          plot the results by entering the command:
  135.  
  136.          PLOT
  137.  
  138.          You should see a sine wave displayed on your screen.  Press Enter
  139.          to return  to command mode.  Now let's make the function slightly
  140.          more complicated by entering the command:
  141.  
  142.          Y=SIN(X)+SIN(3*X)/3
  143.  
  144.          Enter the PLOT command again to see this function plotted.
  145.  
  146.          So far,  the  function  has  been  evaluated  over  the  interval
  147.          (0,2*pi), which is the initial default domain.  Use the following
  148.          command to change the domain to (-2*pi,2*pi):
  149.  
  150.          DOMAIN -2*PI,2*PI
  151.  
  152.          Also, use the following command to turn on grid line display:
  153.  
  154.          GRID ON
  155.  
  156.          Now use  the  PLOT  command  to  display  the result.  As a final
  157.          exercise, use the following command to define a  second  function
  158.          to be displayed simultaneously with the first one:
  159.  
  160.          Y2=SIN(X)
  161.  
  162.          And, again  use the PLOT command to display them.  You should see
  163.          a simple sine wave (the Y2 function) superimposed on the previous
  164.          function (the Y function).  Use the EXIT command to exit MATHPLOT
  165.          and return to DOS.
  166.  
  167.          Demonstration Command File
  168.  
  169.          The  MATHPLOT  distribution  includes  a   command   file   named
  170.          MATHPLOT.FUN  containing  a  number of interesting example plots.
  171.          You can execute this command file  by  using  the  MATHPLOT  "DO"
  172.          command,  or  by  specifying  the  command file on the invocation
  173.          line.  The following DOS command starts the MATHPLOT program  and
  174.          instructs   it  to  execute  the  commands  stored  in  the  file
  175.  
  176.               MATHPLOT -- Mathematical Function Plotter      Page 4
  177.  
  178.  
  179.          MATHPLOT.FUN:
  180.  
  181.          MATHPLOT MATHPLOT.FUN
  182.  
  183.                MATHPLOT -- Mathematical Function Plotter      Page 5
  184.  
  185.  
  186.          FUNCTION SPECIFICATION
  187.  
  188.          Much of the power of MATHPLOT comes from its ability to  evaluate
  189.          complicated functions  entered  in ordinary algebraic form.  This
  190.          section explains the arithmetic operators and built in  functions
  191.          that are used to define a function.
  192.  
  193.          Arithmetic Operators
  194.  
  195.          The following arithmetic operators may be used in expressions:
  196.  
  197.              +        addition
  198.              -        subtraction or unary minus
  199.              *        multiplication
  200.              /        division
  201.              ** or ^  exponentiation
  202.  
  203.          Exponentiation   has   the   highest   precedence,   followed  by
  204.          multiplication and division, and then addition  and  subtraction.
  205.          Parentheses may be used to group terms.
  206.  
  207.          As  a convenience, MATHPLOT allows you to omit the multiplication
  208.          operator between a numeric constant and a following  variable  or
  209.          function.   For  example,  the  expressions "2pi", and "2 pi" are
  210.          equivalent to "2*pi".  Similarly, "5X" is  equivalent  to  "5*X".
  211.          However,  if  you specify a number before the letter "E", it will
  212.          be taken as the exponential form of a number (see  below)  rather
  213.          than   the   number   times  the  constant  E  (base  of  natural
  214.          logarithms).
  215.  
  216.          Numeric Constants
  217.  
  218.          Numeric constants may be written in their  natural  form  (1,  0,
  219.          1.5,  .0003, etc.) or in exponential form, n.nnnEppp, where n.nnn
  220.          is the base value and ppp is the power of ten by which  the  base
  221.          is multiplied.    For  example, the number 1.5E4 is equivalent to
  222.          15000.  All numbers  are  treated  as  "floating  point"  values,
  223.          regardless of whether a decimal point is specified or not.
  224.  
  225.          Symbolic Constants
  226.  
  227.          There  are  two  numeric  constants  that  may be specified using
  228.          symbolic names.  The symbolic name  "PI"  is  equivalent  to  the
  229.          value of  pi, 3.14159...  Similarly, the symbolic constant "E" is
  230.          equivalent to the base of natural logarithms, 2.7182818...
  231.  
  232.               MATHPLOT -- Mathematical Function Plotter      Page 6
  233.  
  234.  
  235.  
  236.  
  237.          Parameter values
  238.  
  239.          MATHPLOT  allows  you  to use parameters named P0, P1, ..., P9 in
  240.          function definitions.    You  can  then  assign  values  to   the
  241.          parameters  and  replot the function without having to retype the
  242.          function to change a value.  To assign a value  to  a  parameter,
  243.          type  the parameter name as a command followed by the value to be
  244.          assigned.  For example, the following command assigns  the  value
  245.          0.67 to the parameter P0:
  246.  
  247.          P0 0.67
  248.  
  249.          Note that parameters are like constants during the evaluation and
  250.          plotting of  a  function (i.e., their values do not change).  But
  251.          you can assign new values to parameters between plot generations.
  252.          For example, consider  the  following  commands  which  define  a
  253.          function  and then plot it twice with two different values of the
  254.          P0 parameter:
  255.  
  256.          Y = EXP(-P0*X) * COS(X)
  257.          P0  0.6
  258.          PLOT
  259.          P0  0.8
  260.          PLOT
  261.  
  262.          This function represents the response of a damped oscillator with
  263.          the P0 coefficient controlling the damping factor.   By  changing
  264.          the  value of the P0 parameter you can examine different forms of
  265.          the function without having to retype the function.
  266.  
  267.  
  268.          Built in Functions
  269.  
  270.          The following functions are built into MATHPLOT and may  be  used
  271.          in expressions:
  272.  
  273.          ABS(x) -- Absolute value of x.
  274.  
  275.          ACOS(x) -- Arc cosine of x.  Angles are measured in radians.
  276.  
  277.          ASIN(x) -- Arc sine of x.  Angles are measured in radians.
  278.  
  279.                MATHPLOT -- Mathematical Function Plotter      Page 7
  280.  
  281.  
  282.          ATAN(x) -- Arc tangent of x.  Angles are measured in radians.
  283.  
  284.          BETAI(x,a,b) --  Incomplete  beta   function:   Ix(a,b).      The
  285.                    incomplete  beta  function  can  be  used  to compute a
  286.                    variety of statistical functions.    For  example,  the
  287.                    probability of Student's t with `df' degrees of freedom
  288.                    can be  computed with BETAI(df/(df+t^2),.5*df,.5).  The
  289.                    probability of the F statistic with df1 and df2 degrees
  290.                    of     freedom      can      be      computed      with
  291.                    2*BETAI(df2/(df2+df1*f),.5*df2,.5*df1).
  292.  
  293.          COS(x) -- Cosine of x.  Angles are measured in radians.
  294.  
  295.          COSH(x) -- Hyperbolic cosine of x.
  296.  
  297.          COT(x) -- Cotangent of x. (COT(x) = 1/TAN(x)).
  298.  
  299.          CSC(X) -- Cosecant of x. (CSC(x) = 1/SIN(x)).
  300.  
  301.          DEG(x)  --  Converts  an  angle,  x,  measured  in radians to the
  302.                    equivalent number of degrees.
  303.  
  304.          EI1(alpha,phi) -- Elliptic integral of the first kind.   Computes
  305.                    the  integral  from  0  to  phi radians of the function
  306.                    d.phi/sqrt(1-k**2*sin(phi)**2),  where  k = sin(alpha).
  307.                    alpha and phi must be in the range 0 to pi/2.
  308.  
  309.          EI2(alpha,phi) -- Elliptic integral of the second kind.  Computes
  310.                    the  integral  from  0  to  phi radians of the function
  311.                    sqrt(1-k**2*sin(phi)**2)*d.phi,  where  k = sin(alpha).
  312.                    alpha and phi must be in the range 0 to pi/2.
  313.  
  314.          EIC1(alpha)  --  Complete  elliptic  integral  of the first kind.
  315.                    Computes the integral from 0 to  pi/2  radians  of  the
  316.                    function      d.phi/sqrt(1-k**2*sin(phi)**2),     where
  317.                    k = sin(alpha). alpha must be in the range 0  to  (less
  318.                    than) pi/2.
  319.  
  320.          EIC2(alpha)  --  Complete  elliptic  integral of the second kind.
  321.                    Computes the integral from 0 to  pi/2  radians  of  the
  322.                    function      sqrt(1-k**2*sin(phi)**2)*d.phi,     where
  323.                    k = sin(alpha). alpha must be in the range 0 to pi/2.
  324.  
  325.               MATHPLOT -- Mathematical Function Plotter      Page 8
  326.  
  327.  
  328.          ERF(x) -- Standard error function of x.
  329.  
  330.          EXP(x) -- e (base of natural logarithms) raised to the x power.
  331.  
  332.          FAC(x) --  x  factorial (x!).  Note, the FAC function is computed
  333.                    using  the  GAMMA   function   (FAC(x)=GAMMA(x+1))   so
  334.                    non-integer argument values may be computed.
  335.  
  336.          GAMMA(x) -- Gamma function.  Note, GAMMA(x+1) = x! (x factorial).
  337.  
  338.          GAMMAI(x)   --   Reciprocal   of   GAMMA  function  (GAMMAI(x)  =
  339.                    1/GAMMA(x)).
  340.  
  341.          GAMMALN(x) -- Log (base e) of the GAMMA function.
  342.  
  343.          HAV(x) -- Haversine of x. (HAV(x) = (1-COS(x))/2).
  344.  
  345.          J0(x) -- Bessel function of the first kind, order zero.
  346.  
  347.          J1(x) -- Bessel function of the first kind, order one.
  348.  
  349.          JN(n,x) -- Bessel function of the first kind, order n.
  350.  
  351.          LOG(x) -- Natural logarithm of x.
  352.  
  353.          LOG10(x) -- Base 10 logarithm of x.
  354.  
  355.          MAX(x1,x2) -- Maximum value of x1 or x2.
  356.  
  357.          MIN(x1,x2) -- Minimum value of x1 or x2.
  358.  
  359.          NORMAL(x) -- Normal probability distribution of x.  X is in units
  360.                    of standard deviations from the mean.
  361.  
  362.          PAREA(x) -- Area under the normal probability distribution  curve
  363.                    from  -infinity to x. (i.e., integral from -infinity to
  364.                    x of NORMAL(x)).
  365.  
  366.          PULSE(a,x,b) -- Pulse function.  If the value of x is less than a
  367.                    or greater than b, the value of the function is 0.   If
  368.                    x  is greater than or equal to a and less than or equal
  369.                    to b, the value of the function is 1.  In other  words,
  370.                    it is  1  for  the domain (a,b) and zero elsewhere.  If
  371.                    you need a function that is zero in  the  domain  (a,b)
  372.                    and 1 elsewhere, use the expression (1-PULSE(a,x,b)).
  373.  
  374.                MATHPLOT -- Mathematical Function Plotter      Page 9
  375.  
  376.  
  377.  
  378.          RAD(x) -- Converts an angle measured in degrees to the equivalent
  379.                    number of radians.
  380.  
  381.          SEC(x) -- Secant of x. (SEC(x) = 1/COS(x)).
  382.  
  383.          SIN(x) -- Sine of x.  Angles are measured in radians.
  384.  
  385.          SINH(x) -- Hyperbolic sine of x.
  386.  
  387.          SQRT(x) -- Square root of x.
  388.  
  389.          STEP(a,x) -- Step function.  If x is less than a,  the  value  of
  390.                    the function is 0.  If x is greater than or equal to a,
  391.                    the value of the function is 1.  If you need a function
  392.                    which is 1 up to a certain value and then 0 beyond that
  393.                    value, use the expression STEP(x,a).
  394.  
  395.          T(n,x) -- Chebyshev polynomial of order n.
  396.  
  397.          TAN(x) -- Tangent of x.  Angles are measured in radians.
  398.  
  399.          TANH(x) -- Hyperbolic tangent of x.
  400.  
  401.          Y0(x) -- Bessel function of the second kind, order zero.
  402.  
  403.          Y1(x) -- Bessel function of the second kind, order one.
  404.  
  405.          YN(n,x) -- Bessel function of the second kind, order n.
  406.  
  407.                MATHPLOT -- Mathematical Function Plotter     Page 10
  408.  
  409.  
  410.          FUNCTION TYPES
  411.  
  412.          MATHPLOT allows four different types of functions to be  plotted:
  413.          cartesian,  parametric  cartesian,  polar,  and parametric polar.
  414.          Each of the function types is described below:
  415.  
  416.          Cartesian Functions
  417.  
  418.          A cartesian  function  has  the  form  Y=f(X),  where  X  is  the
  419.          independent  variable  that  is plotted along the horizontal axis
  420.          and Y is the dependent variable plotted  on  the  vertical  axis.
  421.          The value specified with the DOMAIN command controls the interval
  422.          of X  values over which the function is evaluated.  Some examples
  423.          of this type of function are listed below:
  424.  
  425.          Y=SIN(X)
  426.          Y=2*X**2-3*X+5
  427.          Y=SIN(X)/EXP(X)
  428.          Y=1/SQRT(2*(X+1))
  429.  
  430.          Parametric Cartesian Functions
  431.  
  432.          Parametric functions use a third variable, which we will call  T,
  433.          as the  independent  variable.    Both  X  and  Y  are  dependent
  434.          variables defined as functions of T. The value of the T  variable
  435.          is  not  directly  displayed  on the plot but is used only in the
  436.          functions that define the values of the X and  Y  variables  that
  437.          are plotted.   For example, the following commands define X and Y
  438.          as functions of T:
  439.  
  440.          X=COS(T)
  441.          Y=SIN(T)
  442.  
  443.          When parametric  functions  are  defined,  the  DOMAIN  statement
  444.          specifies the interval over which the T variable is computed.  If
  445.          the two functions of X and Y specified above are plotted over the
  446.          domain  (0,2*PI),  the  result is a circle with radius 1 centered
  447.          around the origin.
  448.  
  449.          Polar Functions
  450.  
  451.          A polar function specifies the distance (or radius)  of  a  point
  452.          from  the  origin  as  a  function  of the angle swept around the
  453.          origin.  The angle (A) is the independent variable and the radius
  454.          (R) is the dependent variable.  The  DOMAIN  statement  specifies
  455.  
  456.               MATHPLOT -- Mathematical Function Plotter     Page 11
  457.  
  458.  
  459.          the  interval  of  values that the angle is to be evaluated over.
  460.          The  angle  begins  on  the  positive X axis; positive angles are
  461.          measured counterclockwise around the origin.  Angles are measured
  462.          in radians; the RAD and DEG functions  can  be  used  to  convert
  463.          between degrees and radians.  The simplest polar function is
  464.  
  465.          R=1
  466.  
  467.          which specifies  that  for  all  angles the radius is 1.  If this
  468.          function is plotted over the domain  (0,2*pi)  the  result  is  a
  469.          circle of  radius  1  centered around the origin.  Another simple
  470.          polar function is
  471.  
  472.          R=A
  473.  
  474.          which defines a spiral with the radius increasing with the angle.
  475.  
  476.          Parametric Polar Functions
  477.  
  478.          A parametric polar function defines the radius (R) and angle  (A)
  479.          as  functions of the parametric variable, T. The DOMAIN statement
  480.          defines the interval of T  values  over  which  the  function  is
  481.          evaluated.   The  following  is  an example of a parametric polar
  482.          function definition:
  483.  
  484.          R=COS(T)
  485.          A=SIN(T)
  486.  
  487.          Over the domain (0,2*pi), this produces a figure-eight pattern.
  488.  
  489.  
  490.          PLOTTING SIMULTANEOUS FUNCTIONS
  491.  
  492.          Up to four functions may be plotted  at  the  same  time.    When
  493.          defining  multiple  functions,  add  a single-digit suffix to the
  494.          dependent variable name for  the  function.    For  example,  the
  495.          following   commands   define   four   functions  to  be  plotted
  496.          simultaneously:
  497.  
  498.          Y1=SIN(X)
  499.          Y2=COS(X)
  500.          Y3=SIN(2*X)
  501.          Y4=COS(2*X)
  502.  
  503.                MATHPLOT -- Mathematical Function Plotter     Page 12
  504.  
  505.  
  506.          If no number is specified, the default value is  1.    Thus,  the
  507.          following two function definitions are equivalent:
  508.  
  509.          Y=2*X**2
  510.          Y1=2*X**2
  511.  
  512.          You can remove a function definition by defining another function
  513.          for the same dependent variable or by  specifying  the  dependent
  514.          variable without  a function.  For example, the following command
  515.          removes the definition for Y2:
  516.  
  517.          Y2
  518.  
  519.          When a function of a type (cartesian, polar, etc.) different from
  520.          the current  type  is  defined,  all  of  the  currently  defined
  521.          functions are removed.
  522.  
  523.                MATHPLOT -- Mathematical Function Plotter     Page 13
  524.  
  525.  
  526.          MATHPLOT COMMANDS
  527.  
  528.          The commands described  in  this  section  are  used  to  control
  529.          MATHPLOT.  When  MATHPLOT is waiting for a command, it displays a
  530.          greater-than sign (">") as a prompt.   If  you  need  to  type  a
  531.          command  that  is  longer  than a single line, you may continue a
  532.          command by typing a minus sign as the last character on the  line
  533.          to be  continued.  When MATHPLOT detects a minus sign as the last
  534.          character of a line, it  deletes  the  minus  sign  and  requests
  535.          additional command input using the prompt "->".
  536.  
  537.          Commands  may  be abbreviated to the first three letters of their
  538.          keyword.  Commands  may  be  typed  using  upper  or  lower  case
  539.          letters.
  540.  
  541.          You may place comments on commands by preceding the comment by an
  542.          exclamation point.    For  example,  the  following commands have
  543.          comments:
  544.  
  545.          ! Define square wave function
  546.          Y=SIN(X)+SIN(3*X)/3       ! Approximate square wave
  547.          DOMAIN 0,2*PI              ! One cycle of the function
  548.  
  549.          Startup Command File
  550.  
  551.          The DOS command to start MATHPLOT is:
  552.  
  553.          MATHPLOT [filename]
  554.  
  555.          where "filename" is an optional parameter specifying the name  of
  556.          a  file containing commands to be executed by MATHPLOT as soon as
  557.          it is started.  This startup command file may contain commands to
  558.          set preferred default values, or  it  may  contain  one  or  more
  559.          complete  sets  of  statements to define functions and plot them.
  560.          The default file extension is ".FUN".  See also the  descriptions
  561.          of  the  DO  and  SAVE  commands for additional information about
  562.          command files.
  563.  
  564.          Initialization file
  565.  
  566.          Each time Mathplot is started it attempts to open  a  file  named
  567.          MATHPLOT.INI.  If  this  file  exists,  all  commands  in  it are
  568.          executed.  You may create such a file to  contain  initialization
  569.          commands to  set  default  values.   For example, if you normally
  570.          like  to  have  grid  lines  turned  on,  create  a  file   named
  571.  
  572.               MATHPLOT -- Mathematical Function Plotter     Page 14
  573.  
  574.  
  575.          MATHPLOT.INI containing  the  command  "GRID ON".  Mathplot looks
  576.          for  this  file first in the current directory and if it does not
  577.          find it there it checks to see if a MATHPLOT environment variable
  578.          has been defined to specify a directory.  The initialization file
  579.          is executed before any file specified on the command that  starts
  580.          Mathplot.
  581.  
  582.          Command Arguments
  583.  
  584.          Many of   the   commands   accept  numeric  arguments.    In  the
  585.          descriptions below, the notation  "cexpr"  is  shown  wherever  a
  586.          numeric argument  may  be specified.  These numeric arguments may
  587.          consist of numbers, symbolic  constants,  and  expressions  using
  588.          operators and  built in functions.  For example, the following is
  589.          a valid DOMAIN command:
  590.  
  591.          DOMAIN -2*PI,PI*SQRT(2)
  592.  
  593.          The argument expressions may NOT contain variables such as X,  Y,
  594.          R, A, or T, or parameters such as P0 or P1.
  595.  
  596.          Arguments shown in brackets are optional.  Braces around a set of
  597.          options  indicate  that you must choose one of the options in the
  598.          set.
  599.  
  600.          ALPHABETICAL LIST OF COMMANDS
  601.  
  602.          AXES {ON | OFF} (default=ON) -- Specifies whether to display axes
  603.                  without labels.  Use the LABELS command to  display  axes
  604.                  with labels.
  605.  
  606.          CALCULATE cexpr  -- Evaluate the specified expression, which must
  607.                  contain only numbers, operators, and built in  functions,
  608.                  and print the result.
  609.  
  610.          CAXES cexpr  (default=3)  -- Specify the color to be used for the
  611.                  axis lines and labels.
  612.  
  613.          CFn cexpr (default=2,1,4,3) -- Define the color to be  used  when
  614.                  plotting function  'n'.  For example, the command "CF1 3"
  615.                  specifies that color  3  is  to  be  used  when  plotting
  616.                  function 1.
  617.  
  618.               MATHPLOT -- Mathematical Function Plotter     Page 15
  619.  
  620.  
  621.          CGRID cexpr  (default=8) -- Specify the color to be used for grid
  622.                  lines.
  623.  
  624.          CLEAR -- Clear the screen.
  625.  
  626.          COMMONSCALE {ON | OFF}  (default=OFF) -- If this option is turned
  627.                  on, the X and Y directions are forced to  have  the  same
  628.                  scale.   If  this  option  is off, the X and Y ranges are
  629.                  scaled independently,  which  may  cause  figures  to  be
  630.                  distorted  -  for  example,  a  circle  may display as an
  631.                  ellipse.  However, turning this option on may  result  in
  632.                  one  of  the dimensions using only a small portion of the
  633.                  screen if the X and Y ranges are very  different.    This
  634.                  option is always on for polar function plots.
  635.  
  636.          CTITLE cexpr  (default=7)  --  Specify  the  color to use for the
  637.                  title line.
  638.  
  639.          DATA filename -- Causes X and Y data values to be  read  from  an
  640.                  external  file  rather  than  being  computed as function
  641.                  definitions.  After the data has been read, use the  PLOT
  642.                  command to display it.  Any function definition following
  643.                  this  command  will  clear  the  external data values and
  644.                  revert to function mode.  Each  X,Y  data  pair  must  be
  645.                  specified  as  a  separate  line in the file with a space
  646.                  separating the X value from the Y  value.    The  default
  647.                  extension for the file is ".DAT".
  648.  
  649.          DISPLAY string --  Display  the  string  on  the  console.   This
  650.                  command  may  be  placed  in  command   file   to   cause
  651.                  information to be printed while the command file is being
  652.                  processed.
  653.  
  654.          DO filename  --  Execute  the  MATHPLOT  commands  stored  in  an
  655.                  external file.  This allows you  to  specify  a  complete
  656.                  plot  request,  including functions and options, and then
  657.                  execute it without having to retype  the  commands.    An
  658.                  external  file  may  itself contain a DO command and this
  659.                  nesting may be performed to a depth of  10  files.    The
  660.                  default file   extension   is   ".FUN".    See  also  the
  661.                  description of the SAVE command.
  662.  
  663.               MATHPLOT -- Mathematical Function Plotter     Page 16
  664.  
  665.  
  666.          DOMAIN cexpr1,cexpr2 (default=0,2*pi) -- Define the domain of the
  667.                  independent   variable   over  which  the  functions  are
  668.                  evaluated and plotted.   The  lower  end  of  the  domain
  669.                  (cexpr1) must  be less than the upper end (cexpr2).  This
  670.                  command may be abbreviated to "DOM".
  671.  
  672.          EXIT -- Stop MATHPLOT and return to DOS.
  673.  
  674.          GRID {ON | OFF} (default=OFF) -- Specify whether grid  lines  are
  675.                  to be displayed.
  676.  
  677.          HELP -- Display several pages of help text.
  678.  
  679.          LABEL {ON | OFF} (default=ON) -- Specify whether axes with labels
  680.                  are to be displayed.
  681.  
  682.          LIST {ON | OFF}   (default=OFF)   --   Specify  whether  commands
  683.                  executed from an external file by use of the  DO  command
  684.                  are to be listed as they are executed.
  685.  
  686.          NUMPOINTS cexpr  (default=100) -- Specify the number of points at
  687.                  which the functions are to be evaluated over the  domain.
  688.                  Specifying  a  larger  number  of  points  results  in  a
  689.                  smoother plot but increases the computation  time.    The
  690.                  maximum  number  of  points that may be computed is 2000.
  691.                  This command may be abbreviated to the single letter 'N'.
  692.  
  693.          ORIGIN {ON | OFF} (default=OFF) --  Specify  whether  the  origin
  694.                  (0,0) is  to  be  forced  to be included in the plot.  If
  695.                  this option is off and the range of values does not  span
  696.                  0, then  the  origin  may not be displayed.  Turning this
  697.                  option on allows the range of the  function  relative  to
  698.                  the  origin  to  be  observed,  but may result in a small
  699.                  scale factor if the range is far from the origin.
  700.  
  701.          Pn cexpr -- Specify a value for parameter Pn where 'n' is in  the
  702.                  range 0  to  9.    MATHPLOT  allows  you to use up to ten
  703.                  parameter values  in  function   specifications.      The
  704.                  parameters are  named  P0, P1, ..., P9.  You can assign a
  705.                  new value to a parameter and replot the function  without
  706.                  having to retype the function.
  707.  
  708.               MATHPLOT -- Mathematical Function Plotter     Page 17
  709.  
  710.  
  711.          PAUSE [cexpr]  (default=0)  --  This  command  may be placed in a
  712.                  command  file  to cause execution to pause until a key is
  713.                  pressed or the specified number of seconds  elapse.    If
  714.                  cexpr is omitted or has the value 0, execution pauses for
  715.                  an indefinite time until a key is pressed.
  716.  
  717.          PDEVICE device  (default=PRN) -- Allows you to specify the device
  718.                  or file to which printer output is written when  printing
  719.                  is turned on by use of the PRINT ON command.  The default
  720.                  device  is  "PRN" but you may specify another device such
  721.                  as LPT2 or COM. You may also direct output to a disk file
  722.                  that you can printer later using the DOS  PRINT  or  COPY
  723.                  commands.
  724.  
  725.          PLOT [cexpr]   (default=0)  --  Evaluate  the  currently  defined
  726.                  functions and plot them.  If an optional value (cexpr) is
  727.                  specified, the function is displayed  for  the  specified
  728.                  number of  seconds  or  until  a  key is pressed.  If the
  729.                  optional value  is  omitted  or  is  zero,  the  plot  is
  730.                  displayed  for an indefinite time until a key is pressed.
  731.                  The use of the optional value is  most  useful  when  the
  732.                  PLOT  command occurs in a command file producing a "slide
  733.                  show" of functions.  This command may be  abbreviated  to
  734.                  the letter 'P'.
  735.  
  736.          PRINT {ON | OFF} (default=OFF) -- Turns printer output on or off.
  737.                  When  turned on, any plot displayed on the screen is also
  738.                  written to the  printer  (or  file  as  directed  by  the
  739.                  PDEVICE command).
  740.  
  741.          RESET -- Reset all parameters and options to their initial values
  742.                  and remove all function definitions.
  743.  
  744.          SAVE filename  --  Write the current function definitions and the
  745.                  values of all options and  parameters  to  the  specified
  746.                  file.  The DO command can then be used at a later time to
  747.                  redisplay the  function.    The default file extension is
  748.                  ".FUN".
  749.  
  750.          TABULATE -- Evaluate  the  functions  and  print  the  values  in
  751.                  tabular form rather than plotting them.
  752.  
  753.                MATHPLOT -- Mathematical Function Plotter     Page 18
  754.  
  755.  
  756.          TITLE string -- Define a title line to be displayed at the top of
  757.                  the plot.
  758.  
  759.          WAXES cexpr (default=3) -- Specify the width  (in  dots)  of  the
  760.                  axis lines  for  printed output.  This parameter does not
  761.                  affect the screen display.
  762.  
  763.          WFn cexpr (default=3) -- Specify the width (in dots) of the  line
  764.                  used to draw the plot of function 'n'.  This only affects
  765.                  hard copy output.
  766.  
  767.          WGRID cexpr  (default=1)  --  Specify  the width (in dots) of the
  768.                  grid lines.  This only affects hard copy output.
  769.  
  770.               MATHPLOT -- Mathematical Function Plotter     Page 19
  771.  
  772.  
  773.          ADVANCED APPLICATIONS
  774.  
  775.          Root Finding
  776.  
  777.          MATHPLOT can be used to find the roots of equations.  To do this,
  778.          turn  on  axis labeling (LABEL ON) and plot the function over the
  779.          domain in which a root occurs.  Observe the approximate  X  value
  780.          at  which  the  function  crosses  the  X axis and then reset the
  781.          domain to closely span the crossing point.  Replot  the  function
  782.          and obtain  a  new X estimate.  After several iterations you will
  783.          be able to determine the root to several significant digits.  For
  784.          example, use this technique to find the root of the function:
  785.  
  786.          Y = X^4 - EXP(X)
  787.  
  788.          in the domain (2,9.5).
  789.  
  790.          For a course in Algebra I, MATHPLOT can be  used  to  demonstrate
  791.          the graphical method of solving two simultaneous linear equations
  792.          by locating the point of intersection.  For an Algebra II course,
  793.          MATHPLOT  can  be  used  to locate minimum and maximum points for
  794.          quadratic and cubic equations.
  795.  
  796.          Multiple Domains
  797.  
  798.          MATHPLOT only allows specification of a single continuous  domain
  799.          of values.    However,  by  using  the multiple function plotting
  800.          capability it is sometimes possible to simulate multiple domains.
  801.          For example, the function X*Y=5 defines a hyperbola with branches
  802.          in both the positive X-Y domain (upper right  quadrant)  and  the
  803.          negative X-Y  domain (lower left quadrant).  The following set of
  804.          commands defines two parametric functions to  draw  each  of  the
  805.          branches:
  806.  
  807.          X1=T
  808.          Y1=5/T
  809.          X2=-T
  810.          Y2=-5/T
  811.          DOMAIN 0.5,10
  812.          LABEL ON
  813.          COMMONSCALE ON
  814.          PLOT
  815.  
  816.                MATHPLOT -- Mathematical Function Plotter     Page 20
  817.  
  818.  
  819.          Interesting Functions
  820.  
  821.          The following  specifications  plot  interesting  and  attractive
  822.          functions:
  823.  
  824.          TITLE Four Leaved Rose
  825.          CTITLE 4
  826.          R=2*SIN(2*A)
  827.          CF1 3
  828.          DOMAIN 0,2*PI
  829.          NUMPOINTS 150
  830.          AXES ON
  831.          CAXES 1
  832.          PLOT
  833.  
  834.          TITLE Prolate Cycloid
  835.          CTITLE 4
  836.          Y=1-2*COS(T)
  837.          X=T-2*SIN(T)
  838.          CF1 2
  839.          DOMAIN -4*PI,4*PI
  840.          NUMPOINTS 400
  841.          CAXES 1
  842.          COMMONSCALE ON
  843.          PLOT
  844.  
  845.          TITLE Hypocycloid of four cusps (Asteroid)
  846.          CTITLE 4
  847.          Y=SIN(T)^3
  848.          X=COS(T)^3
  849.          CF1 2
  850.          DOMAIN 0,2*PI
  851.          NUMPOINTS 100
  852.          AXES ON
  853.          CAXES 1
  854.          COMMONSCALE ON
  855.          PLOT
  856.  
  857.                MATHPLOT -- Mathematical Function Plotter     Page 21
  858.  
  859.  
  860.          TITLE Bifolium
  861.          CTITLE 4
  862.          Y=2*SIN(T)^2*COS(T)^2
  863.          X=2*SIN(T)*COS(T)^3
  864.          CF1 3
  865.          DOMAIN 0,2*PI
  866.          NUMPOINTS 100
  867.          AXES ON
  868.          CAXES 1
  869.          COMMONSCALE ON
  870.          PLOT
  871.  
  872.          TITLE Epicycloid
  873.          CTITLE 4
  874.          Y=5*SIN(T)-SIN(5*T)
  875.          X=5*COS(T)-COS(5*T)
  876.          CF1 3
  877.          DOMAIN 0,2*PI
  878.          NUMPOINTS 150
  879.          AXES ON
  880.          CAXES 1
  881.          COMMONSCALE ON
  882.          PLOT
  883.  
  884.          "Artistic" Plots
  885.  
  886.          When MATHPLOT plots a function, it evaluates the function at  the
  887.          number of points specified by the last NUMPOINTS command and then
  888.          connects the points together using straight lines.  By specifying
  889.          very  large  domain values for polar or parametric functions, the
  890.          lines connecting the points  span  large  distances  and  produce
  891.          interesting and  "artistic"  plots.   It is best to turn off axis
  892.          display  (AXES OFF,  LABELS OFF)  and  turn  on  common   scaling
  893.          (COMMONSCALE ON) for these plots.  Here are some examples to try:
  894.  
  895.          Y=SIN(T)^3
  896.          X=COS(T)^3
  897.          CF1 2
  898.          DOMAIN 0,4000
  899.          NUMPOINTS 500
  900.  
  901.                MATHPLOT -- Mathematical Function Plotter     Page 22
  902.  
  903.  
  904.          R=2*SIN(2*A)
  905.          CF1 3
  906.          DOMAIN 0,2000
  907.          NUMPOINTS 500
  908.  
  909.          Y=5*SIN(T)-SIN(5*T)
  910.          X=5*COS(T)-COS(5*T)
  911.          CF1 3
  912.          DOMAIN 0,6000
  913.          NUMPOINTS 400
  914.  
  915.          Parametric and polar functions seem to produce the best  artistic
  916.          plots.   By  varying  the  NUMPOINTS  and  DOMAIN  values you can
  917.          usually produce many different plots from the same functions.
  918.  
  919.               MATHPLOT -- Mathematical Function Plotter     Page 23
  920.  
  921.  
  922.          USE AND DISTRIBUTION OF MATHPLOT
  923.  
  924.          MATHPLOT is  a  "shareware"  product.    You  are welcome to make
  925.          copies of this program and pass them on to friends or  post  this
  926.          program on bulletin boards.
  927.  
  928.          However,  if  you  find MATHPLOT to be useful and/or entertaining
  929.          you are expected to send to  the  author  the  registration  form
  930.          printed  on  the next page with $20 to help cover the development
  931.          and support of MATHPLOT. In return, you  will  receive  the  most
  932.          recent  version  of  the  program and a bound copy of the manual.
  933.          Add $5 if Mathplot is being shipped out of the United States.
  934.  
  935.          See also the special offer with Nonlin that follows.
  936.  
  937.          You are welcome to write to the author at:
  938.  
  939.                              Phillip H. Sherrod
  940.                              4410 Gerald Place
  941.                              Nashville, TN  37205-3806
  942.  
  943.          Both the MATHPLOT program and  documentation  are  copyright  (c)
  944.          1991-1992 by  Phillip  H.  Sherrod.    You  are not authorized to
  945.          modify the program. "MATHPLOT" is a trademark.
  946.  
  947.          Disclaimer
  948.  
  949.          MATHPLOT is provided "as is" without warranty of any kind, either
  950.          expressed or implied.    This  program  may  contain  "bugs"  and
  951.          inaccuracies, and its results should not be assumed to be correct
  952.          unless they  are  verified  by  independent  means.    The author
  953.          assumes no responsibility for the use of MATHPLOT and will not be
  954.          responsible for any damage resulting from its use.
  955.  
  956.               MATHPLOT -- Mathematical Function Plotter     Page 24
  957.  
  958.  
  959.                                     N O N L I N
  960.  
  961.               Nonlinear Regression Analysis Program -- Special Offer
  962.  
  963.          If  you  like  Mathplot,  you  should  check  out  Nonlin  -- the
  964.          nonlinear regression analysis program by the same author.    And,
  965.          if you register your use of Mathplot and order Nonlin at the same
  966.          time, you can get both for the special price of $36.
  967.  
  968.          What is   regression   analysis?      Regression  analysis  is  a
  969.          mathematical  technique  for  determining  the  best  values   of
  970.          parameters to  fit  an  equation  to  a  set of data points.  For
  971.          example, you might want to develop an equation of the form
  972.  
  973.          price = p0 + p1*age + p2*miles
  974.  
  975.          to predict the price of a used car  based  on  its  age  and  the
  976.          number of  miles  driven.   With Nonlin you can collect data from
  977.          car ads and then perform the analysis using the following set  of
  978.          commands:
  979.  
  980.              VARIABLES PRICE,AGE,MILES
  981.              PARAMETERS P0,P1,P2
  982.              FUNCTION  PRICE = P0 + P1*AGE + P2*MILES
  983.              DATA
  984.  
  985.          Nonlin will analyze the data and determine the best values of the
  986.          parameters P0, P1, and P2 to fit the data values.
  987.  
  988.          Ordinary  linear regression programs can only determine parameter
  989.          values for linear (straight line)  equations.    Nonlin,  on  the
  990.          other  hand,  can  handle  multivariate,  linear, polynomial, and
  991.          general nonlinear equations.  For example, using Nonlin  you  can
  992.          easily  determine  the  best  values  for  the parameters Offset,
  993.          Amplitude, and Frequency for an equation of the form:
  994.  
  995.          Y = Offset + Amplitude * sin(Frequency * X)
  996.  
  997.          Nonlin uses the same expression evaluator as Mathplot so you  can
  998.          model  complicated  equations using the full set of operators and
  999.          library functions available in Mathplot.
  1000.  
  1001.          If you do any data analysis, or would just like  to  learn  about
  1002.          the  incredibly  useful  regression  analysis technique, you need
  1003.          Nonlin!
  1004.  
  1005.               MATHPLOT -- Mathematical Function Plotter     Page 25
  1006.  
  1007.  
  1008.        =====================================================================
  1009.                                 Software Order Form
  1010.        =====================================================================
  1011.  
  1012.          NAME ______________________________________________________
  1013.  
  1014.          ADDRESS ___________________________________________________
  1015.  
  1016.          CITY _______________________  STATE _______ ZIP ___________
  1017.  
  1018.          TELEPHONE _________________________________________________
  1019.  
  1020.          COMPUSERVE ACCOUNT (optional) _____________________________
  1021.  
  1022.          MATHPLOT VERSION (on title screen) ________________________
  1023.  
  1024.          BULLETIN BOARD WHERE YOU FOUND MATHPLOT ___________________
  1025.  
  1026.          COMMENTS __________________________________________________
  1027.  
  1028.  
  1029.          Check the box below which indicates your order type:
  1030.  
  1031.          ___ I wish to register Mathplot ($20).
  1032.  
  1033.          ___ I wish to order Nonlin ($20).
  1034.  
  1035.          ___ I wish to register Mathplot and order Nonlin ($36).
  1036.  
  1037.          Add $5 to any amount shown above if the software is being shipped
  1038.          out of the United States.
  1039.  
  1040.          Distribution disk choice (check one):
  1041.  
  1042.                3.50" HD (1.4 MB)  ______
  1043.                5.25" HD (1.2 MB)  ______
  1044.                5.25" DD (360 KB)  ______
  1045.  
  1046.          Send this form with the amount indicated to the author at:
  1047.  
  1048.                                 Phillip H. Sherrod
  1049.                                  4410 Gerald Place
  1050.                              Nashville, TN  37205-3806
  1051.