home *** CD-ROM | disk | FTP | other *** search
/ Current Shareware 1994 January / SHAR194.ISO / graphuti / grmat32d.zip / GRAPHMAT.DOC < prev    next >
Text File  |  1993-07-23  |  99KB  |  1,962 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9. ========================================================================
  10.  
  11.   GGGG                       h                      t
  12.  G    G                      h                    ttttt
  13. G                            h                      t      i
  14. G  GGGG  rrrr   aaaa  pppp   hhhh   mmm mm    aaaa  t         cccc  aaaa
  15. G     G  r  r  a   a  p   p  h   h  m  m  m  a   a  t      i c     a   a
  16.  G    G  r     a   a  p   p  h   h  m  m  m  a   a  t   t  i c     a   a
  17.   GGGG   r      aaaa  pppp   h   h  m  m  m   aaaa   ttt   i  cccc  aaaa
  18.                       p
  19.                       p
  20.  
  21. ========================================================================
  22.  
  23.                                Graphmatica
  24.  
  25.                      Version 3.20  Fri 23 July 1993
  26.  
  27.  
  28.                             by Keith Hertzer
  29.                      Copyright (C) 1993 kSoft, Inc.
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.                           System Requirements:
  38.                           --------------------
  39.  
  40. IBM personal computer or compatible equipped with CGA, EGA, or VGA
  41. graphics, at least 256 KB of RAM, and a diskette drive or hard disk,
  42. running MS-DOS version 2.0 or higher. Epson dot-matrix and HP
  43. DeskJet/LaserJet and compatible printers are supported but not
  44. required.
  45.  
  46. Graphmatica also supports Microsoft and compatible mice. If you have a
  47. mouse driver installed, Graphmatica will automatically detect and make
  48. use of your mouse. See Section I for details on "mouse strokes."
  49.  
  50. Note: Please do not edit the files GRMAT1.HLP - GRMAT6.HLP They are
  51. formatted especially for use by the Graphmatica help view function.
  52. Altering these files may prevent effective use of the help text. These
  53. files are a subset of the information contained in GRAPHMAT.DOC, so if
  54. you want printed documentation, you don't have to print the .HLP files.
  55.  
  56.  
  57.  
  58.  
  59.                  Graphmatica version 3.20  GRAPHMAT.DOC
  60.  
  61. ======================================================================
  62.                          C  O  N  T  E  N  T  S
  63. ======================================================================
  64.  
  65.  
  66. Section I: Using Graphmatica.........................................3
  67.  
  68. Section II: Using the Graph function.................................5
  69.  
  70. Section III: Extended graph functions: polar, parametric, dif eq....14
  71.  
  72. Section IV: Using AutoRedraw and the Redraw Queue...................17
  73.  
  74. Section V: View: Changing the appearance of the screen..............20
  75.  
  76. Section VI: Labels: Adding Explanatory Text to a Graph..............23
  77.  
  78. Section VII: Options: Viewing and setting special options...........25
  79.  
  80. Section VIII: Using a printer with Graphmatica......................27
  81.  
  82. Section IX: Point menu: evaluating a graph at specific points.......29
  83.  
  84. Appendix A: Graphmatica's Command Line Arguments....................30
  85.  
  86. Appendix B: Editing equation lists and GRAPHMAT.INI.................31
  87.  
  88. Appendix C: Upgrade Notes: Changes from 3.10........................33
  89.  
  90. Appendix D: Shareware / Order Form..................................34
  91.  
  92.  
  93.                         GRAPHMATICA FOR WINDOWS
  94.  
  95. Graphmatica for Windows, version 1.2 is now available for Windows 3.1
  96. users. If Graphmatica for Windows isn't available on the BBS where you
  97. got this file, download it from CompuServe (in the math/science forum)
  98. or contact me and I will ship it directly to you for a fee of $5.
  99.  
  100.                           DEMO EQUATION FILES
  101.  
  102. Six prewritten equation list files are included with Graphmatica to
  103. help demonstrate the kinds of graphs you can create and how to create
  104. them. Try loading each of them up, manipulating the view of the
  105. equations, redrawing, and modifying some equations. I suggest clearing
  106. the screen (if not the redraw queue as well) before loading a new file
  107. so the screen doesn't become too cluttered. The files each contain a
  108. different sort of graphs that you can draw with Graphmatica.
  109.  
  110. GRAPHMAT.GR - draws Graphmatica's name, demonstration of
  111.               parametric equations
  112. XYDEMO.GR   - Cartesian equations, quadratic equations, relations
  113. TRIG.GR     - trigonometric graphs
  114. POLAR.GR    - polar coordinates graphs
  115. DIFEQ.GR    - sample differential equation approximations
  116. INEQUAL.GR  - sample inequalities
  117. Read section IV (page 19) to learn how to use these demo files.
  118.  
  119.  
  120.  
  121. Section                                            =====================
  122. III                                                | Using Graphmatica |
  123.  I                                                 =====================
  124.  I
  125.  I
  126. IIIo                                                                   3
  127. ------------------------------------------------------------------------
  128.  
  129.                               NEW INTERFACE
  130. L---+---T1----+-T--2----T----3--T-+----4T---+---T5----+-T--6-r--T----7rR-+---
  131.  
  132. Graphmatica version 3.20 has a modified user interface which, although
  133. on the surface it looks a lot like the old one, has some significant
  134. differences that make it more closely related to Windows version. If
  135. you've used Windows a lot, I'm sure you'll appreciate the difference.
  136.  
  137.                        The EQUATION QUEUE COMBOBOX
  138.  
  139. The main addition to this version is the new equation queue combobox.
  140. The equation editing line has been moved to the top of the screen, and
  141. the up/down arrow system for scrolling through the equation queue has
  142. been replaced by a single down arrow to the right of the edit line.
  143. Clicking on this arrow with the mouse or pressing the down arrow key
  144. brings down the listbox of the combobox, which shows you several of your
  145. equations at a time. Use the arrow keys to scroll up and down through
  146. the listbox; Graphmatica displays the status of each equation in the
  147. color it is drawn in as you highlight it. You can also move the
  148. highlight line by clicking on the up and down arrows on the scroll bar
  149. (when it appears). Click on an equation or press enter to select an
  150. equation. The listbox will close and the selected equation will appear
  151. in the editing area. You can close the listbox without selecting an
  152. equation by pressing Escape, clicking on the edit line, or raising the
  153. menu as detailed in the section below.
  154.     Previously, the menu was "home base," but now this honor belongs to
  155. the combobox. Thus after completing any operation, you will be returned
  156. without delay to the edit line with a copy of the current equation.
  157.     Also note that the program now uses the object-action model, instead
  158. of the previous action-object interaction model. The upshot of this is
  159. that you must select an equation from the combobox BEFORE you choose a
  160. menu item to apply to it; the program will not prompt you for which
  161. equation to redraw, evaluate a point from, or delete.
  162.  
  163.                 POP-UP PROMPTS and the Graphmatica EDITOR
  164.  
  165. Most data input in Graphmatica is done through pop-up "dialog boxes"
  166. which appear in the middle of the screen. (Of course, the equation input
  167. takes place in the combobox at the top of the screen.) If there are
  168. additional instructions, they will replace the menu bar on the top line.
  169. The input editor makes full use of the standard editing keys: Insert,
  170. Delete, Backspace, Left and Right arrow keys, Home, and End. Escape
  171. clears the entire field. The flashing cursor shows the current position
  172. and is either an underscore or a full block to indicate normal
  173. (overwrite) or insert modes. The editor can now handle lines longer than
  174. the actual display space. When you move the cursor near the edge of the
  175. field, for equations and titles, it will automatically scroll to show
  176. you the rest of the line.
  177.  
  178. Usually if you choose a function by mistake and it presents you a pop-up
  179. prompt, pressing enter or ESC on the blank field will return you to the
  180. equation editor as if you had never selected the option. Note that this
  181. is not true for the Range function; if you press ESC at all 4 prompts
  182. the current range will be preserved, BUT the screen will clear.
  183.  
  184.  
  185.  
  186. I. Using Graphmatica                                                   4
  187. ------------------------------------------------------------------------
  188.  
  189.                                   MENUS
  190.  
  191. All features of Graphmatica are available through drop-down menus, which
  192. operate in a manner pretty close to Windows. (The one exception is that
  193. they are not technically "pull-down" like the Macintosh's; you must
  194. release the mouse button before the drop-down menu will appear.)
  195.  
  196. You have a choice of several ways to select menu items. If you have a
  197. mouse, just point and click. You can also use the keyboard in several
  198. ways. Note that to activate the menu for the first two ways you must
  199. first press the Alt key. (Pressing the Alt key or Escape exits the menu,
  200. in case you decide you actually want to continue editing.)
  201.  
  202. 1. Cursor keys: As you navigate through the menus with the cursor keys,
  203. an explanation of the highlighted option appears on the bottom line of
  204. the screen. Highlight the option you want by using the left and right
  205. cursor keys. Select the highlighted option in the top bar by pressing
  206. enter. Most top-level items call up a secondary drop-down menu.
  207. Highlight the item you want using the up and down cursor keys. Select
  208. the highlighted item by pressing enter again. To cancel the menu and
  209. return to the top bar, press Escape. Or, use the left/right cursor keys
  210. to move to the next item on the top bar.
  211.  
  212. 2. Alphabetic/mnemonic keys: Each menu item also has associated with it
  213. an alphabetic accelerator key that is shown in a different color when
  214. the menu is activated.  Pressing this letter selects that menu item.
  215. Most (but not all) of these letters are the first in the word, so after
  216. a while they are easy to remember. Thus, to select the menu item _P_aper
  217. in the _V_iew menu, where underlines indicate highlighting, you would
  218. press Alt, V, P. Holding down Alt is OK, too.
  219.  
  220. 3. Function keys: This is not the most intuitive way around, but I left
  221. it in for old times' sake. If you prefer, you can use function keys;
  222. they select the options in the current menu in the order they appear on
  223. the screen. (i.e. in the main menu, F1 selects File, F2 Redraw, etc., and
  224. F7 selects Help. In the View menu, F1 would select Clear, F2 Paper, and
  225. so on.) Sorry, function key labels aren't available, but there are not
  226. many options to learn. If you use function keys, though, you do NOT need
  227. to press Alt or Enter to select items.
  228.  
  229.  
  230.                               CHOICE BOXES
  231.  
  232. For prompts where you must choose between several options, (i.e. yes or
  233. no questions) Graphmatica displays a dialog box with instructions and
  234. two or more pushbuttons. You can respond to these either by clicking on
  235. the desired button with the mouse, pressing the highlighted letter of
  236. your choice, or pressing Enter or Escape. Enter selects the default
  237. choice, which is presented with a double box around it. Escape does
  238. whatever is appropriate at that point to evade the question and return
  239. you to the equation editor. If you don't know how to answer a prompt,
  240. Escape will never hurt.
  241.  
  242.  
  243.  
  244. I. Using Graphmatica                                                   5
  245. ------------------------------------------------------------------------
  246.  
  247.                           HINTS FOR MOUSE USERS
  248.  
  249. Graphmatica has internal support for Microsoft (R) and compatible mice.
  250. If a mouse driver is installed when you run Graphmatica, it will
  251. automatically be detected and the usual mouse arrow will appear. To use
  252. the mouse on the menus, you simply "point and click." Some of the other
  253. aspects of the program are not so intuitive:
  254.  
  255.    1. The left button, as usual, is always used to select an item or
  256.       emulate a keystroke. Whenever you see a prompt that says "Press
  257.       any key...", clicking the left button will have the same effect
  258.       as hitting a key.
  259.    2. The right button has the same effect as pressing the ESC key
  260.       whenever pressing ESC is a valid option. To get out of a
  261.       menu, you can click the right button.
  262.    3. When used with a mouse, the menus are technically drop-down, not
  263.       pull-down; you must release the mouse button before your choice
  264.       will be registered, so you can't push the button down, pull the
  265.       cursor around, and release the mouse button to select the item.
  266.    4. Whenever you are using Graphmatica's input editor, the mouse can
  267.       be used to do two things: Pressing the right button, as usual,
  268.       causes the same effect as pressing the ESC key. You can also
  269.       position the cursor inside the edit field by clicking the left
  270.       button on the space you want to move to.
  271.    5. In the equation combobox and file selector, clicking on the up or
  272.       down arrows on the scroll bar to the right of the listbox is
  273.       equivalent to pressing those keys, and moves the highlight up or
  274.       down one line. However, the rest of the scrollbar is display only;
  275.       you cannot click on the track or drag the thumb to change the
  276.       contents of the listbox.
  277.    6. To use the mouse to scroll through a help file, click on the key
  278.       name (highlighted in red on the bottom line of the screen which
  279.       corresponds to the action you want to perform. In addition,
  280.       clicking the right mouse button corresponds to the escape key.
  281.    7. The mouse is not available during the actual graphing loop, to
  282.       prevent the pointer and the graph drawing routine from fighting
  283.       over the screen. To pause the graph, you must use the keyboard.
  284.       The mouse can be used to restart or cancel the graph at this
  285.       prompt though.
  286.  
  287.  
  288.              Important! ---> HARDWARE NOTE <--- Important!
  289.  
  290. If you have a CGA monitor, you may need to run the DOS program
  291. GRAFTABL.COM (a small TSR that allows block graphics characters to be
  292. printed in graphics modes) before successfully running Graphmatica. The
  293. program comes with DOS 3.0 and up. If you're not sure whether your
  294. adapter has a graphics (>ASCII 127) character generator included, run
  295. Graphmatica first. If you NEED to run GRAFTABL, there will be NO box
  296. characters around the dropdown menus, none around the settings box, and
  297. the full block insert cursor will not function. Otherwise, you're okay
  298. without it. Since it's TSR, you need run it only once and then it's
  299. active until you reboot.
  300.  
  301.  
  302.  
  303. Section                              ===================================
  304. III III                              | Entering and graphing equations |
  305.  I   I                               ===================================
  306.  I   I
  307.  I   I
  308. III IIIo                                                               6
  309. ------------------------------------------------------------------------
  310.  
  311.                       GRAPHING CARTESIAN FUNCTIONS
  312.  
  313. So now that the cursor is blinking in the equation editor, what do you
  314. do? Just type in an equation and press enter. If you've used a
  315. programming language, spreadsheet, or math package on your computer
  316. before, you probably already know the basic format by heart. Just take a
  317. look at the sample files to make sure you know what everything means. If
  318. you're confused about how to specify division or exponents, see the
  319. operator table on the next page.
  320.  
  321. Here are the ground rules for normal Cartesian equations:
  322. + Always use exactly one "=" per equation
  323. + Always use exactly one "y", which need not be isolated
  324. + Always put some sort of expression on both sides of the "="
  325. + An expression consists of any mathematically meaningful combination of
  326.   decimal numbers, binary operations like + and *, parentheses,
  327.   functions, and variables or constants.
  328. + Spaces are completely optional, except where they serve to separate
  329.   alphabetic identifiers.
  330. + The order of operations is the standard algebraic left to right of:
  331.     Functions
  332.     Parentheses
  333.     Exponents
  334.     Multiplication and division
  335.     Addition and subtraction
  336.  
  337. Graphmatica supports implied multiplication of variables and constants
  338. as in "3x" or "5(2x+3)", but variables and other alphabetic
  339. identifiers such as functions and constants MUST be separated by a space
  340. or they will not be correctly identified. Thus  "xx", "xcos(x)", and
  341. "xpi" are not recognized, while "x*x" and "x pi" are OK. (Implied
  342. multiplication of the two variables x and y [e.g. "xy=1"] IS supported
  343. as a special case, however. I still recommend including the times sign
  344. in these cases for clarity.) The parser may reject some complex
  345. expressions for no apparent reason. Keep trying! I suggest liberal use
  346. of parentheses: if you are not sure whether something will be
  347. interpreted correctly, go back and put parentheses around it. (However,
  348. you should not use parentheses gratuitously; the best example of this is
  349. that if you enclose the entire expression on either side of the equals
  350. sign in parentheses, the parser will NOT be able to find the expression
  351. inside.)
  352.  
  353.                             CALLING FUNCTIONS
  354.  
  355. The parser's ability to determine exactly what you want to pass as an
  356. argument to a function is somewhat limited, so I suggest you make it a
  357. habit to enclose the desired expression in parentheses. "cos x" may work
  358. fine but "cos 2x" is interpreted as "(cos 2)*x" and "cos x^2" turns out
  359. "(cos x)^2". Typing "cos (2x)" or "cos (x^2)" instead works perfectly.
  360.  
  361.  
  362.  
  363. II. Entering and graphing equations                                    7
  364. ------------------------------------------------------------------------
  365.  
  366.                    OPERATORS, FUNCTIONS, AND VARIABLES
  367.  
  368. Graphmatica uses an operator set almost identical to BASIC's, with
  369. several additions to make it more user-friendly. The supported operators
  370. and functions are as follows:
  371.  
  372.    Operator            Meaning
  373.    =================   ==============================================
  374.    +, -, *, /          Add, subtract, multiply, divide
  375.    ^                   Exponentiation
  376.    [( )]               Parentheses: may be nested to any extent,
  377.                        brackets are provided for ease of reading but
  378.                        parser WON'T differentiate between "(" and "["
  379.    ; (semicolon)       Separate halves of a parametric equation
  380.    ' (single quote)    Make rest of the equation a comment
  381.    { m, n }            Specify domain, where 'm' is the start of the
  382.                        domain and 'n' is the end. Either end may be
  383.                        left open by omitting 'm' or 'n'.
  384.  
  385.    Function            Meaning
  386.    =================   ==============================================
  387.    abs                 absolute value
  388.    acos, asin, atan    arc cosine, arc sine, and arc tangent
  389.    asec, acsc, acot    arc secant, arc cosecant, and arc cotangent
  390.    cos, cosh           cosine and hyperbolic cosine
  391.    cot                 cotangent (1/tan)
  392.    csc                 cosecant (1/sin)
  393.    exp                 Euler's number to the specified power
  394.    int                 greatest integer ([x] is not supported)
  395.    ln, log             natural logarithm, logarithm base 10
  396.    sec                 secant (1/cos)
  397.    sin, sinh           sine, hyperbolic sine
  398.    sqr                 square root
  399.    tan, tanh           tangent, hyperbolic tangent
  400.  
  401.    Variables           Usage
  402.    =================   ==============================================
  403.    x, y                rectangular coordinates
  404.    r, t                r and theta in polar coordinates
  405.    x, y, t             x and y as functions of t in parametric form
  406.    x, t, dx            dif-eq mode, solves first order o.d.e.
  407.                        dx is actually dx/dt in dx/dt = f(x,t)
  408.    a                   user-settable free variable; can specify range
  409.                        and step rate to calculate several values
  410.  
  411.    Constant            Value
  412.    =================   ==============================================
  413.    b, c                user-settable free variables (constant)
  414.    d                   converts degrees to radians = p/180
  415.    e                   Euler's number = 2.718...
  416.    pi (or p)           p = 3.14159...
  417.  
  418. Note: by default, all trig functions work in radians, not degrees. You
  419. can convert using the constant d: e.g. sin(45d) = sin (pi/4)
  420. cos (x*d) = cosine of x, in degrees (you will need to change the range
  421. of x to 0 to 360 to get the full graph)
  422.  
  423.  
  424.  
  425. II. Entering and graphing equations                                    8
  426. ------------------------------------------------------------------------
  427.  
  428.                            GRAPHING RELATIONS
  429.  
  430. Graphmatica's equation parser will automatically isolate the variable
  431. "y" wherever it is in the equation. It will graph some relations, like
  432. circles ("x^2+y^2=36") and ellipses ("x^2/3 + y^2/4 = 20"), as well as
  433. hyperbolas and many other conic sections. (Consult a good Algebra
  434. textbook for help on their formulas.) The only limitation for functions
  435. is that there must be one and only one occurrence of the variable "y".
  436. Graphmatica cannot graph an equation without a "y", like "x=4". It also
  437. cannot perform the factoring needed to isolate the variable "y" when it
  438. occurs more than once (i.e. "x=y^2+3y"). The relation graphing module
  439. (for graphs which may have more than one y value for a given x value)
  440. works like this: if in isolating the "y" in an equation Graphmatica
  441. finds an even power of it (i.e. "y^2"), it solves for both the positive
  442. and negative roots. This method by no means covers all possible
  443. relations, but it is adequate for the most common.
  444.  
  445.  
  446.                           GRAPHING INEQUALITIES
  447.  
  448. You can graph rectangular-coordinate inequalities by replacing the '='
  449. with '<' or '>' for many simple functions and relations. This feature is
  450. presently only available for cartesian graphs. (Also, since the free
  451. variable 'a' implies that more than one curve will be drawn, equations
  452. containing 'a' are incompatible with inequalities, and the parser will
  453. not accept any inequality that uses 'a'.)
  454.  
  455. The region that solves the inequality is hatched in with the graph
  456. color. (The curve itself is not actually dotted to indicate a strict
  457. inequality, however, so '<' is effectively "less than or equal to".) In
  458. most cases, asymptotes are detected and a boundary added there as
  459. appropriate, so graphs like "y < tan x" and "xy > 1" are drawn
  460. correctly. In addition, the valid domain of the function being graphed
  461. is detected automatically, so "y > log x", for instance, shades only the
  462. first and fourth quadrants.
  463.  
  464. To accommodate intersecting regions, the graphing routine alternates
  465. between '\' and '/' hatching. Best results will be obtained when you
  466. graph no more than two inequalities on the same screen.  Not only does
  467. this make it easier to interpret the graph, but it can also prevent
  468. conflicts between graphs that cause the inequality to shade incorrectly.
  469. The graphing routine first defines a region by solid lines in the
  470. current graph color plus the edges of the screen. It then "seeds" this
  471. region, which may be discontinuous, in one or more places, and flood-
  472. fills it. Since the flood-fill operation does not know anything about
  473. the actual curves, but rather stops as soon as it finds the boundary
  474. color, the region MAY SHADE INCORRECTLY if another graph of the same
  475. color intersects it.
  476.  
  477. Unfortunately, in 2-color modes (CGA and MCGA) every feature of the grid
  478. is the same color as the graphs. Because the fill routine is not very
  479. robust, even graph paper interferes with the shading if a hatched
  480. pattern is used. Therefore, a 50% gray pattern is used instead to graph
  481. inequalities accurately in monochrome modes. Sorry if this wears down
  482. your printer ribbon, but there is nothing I can do about it without
  483. writing my own fill routine. Also note that this method does not
  484. accommodate intersecting regions gracefully.
  485.  
  486.  
  487.  
  488. II. Entering and graphing equations                                    9
  489. ------------------------------------------------------------------------
  490.  
  491.                           SPECIFYING THE DOMAIN
  492.  
  493. Graphmatica allows you to specify the domain of each equation
  494. independently. This allows you to draw only a particular part of a graph
  495. or change the domain without using the Range or T range functions to
  496. change the default domain. To specify a domain for an equation, type
  497. anywhere on the line the expression
  498.                                 { m, n }
  499. where 'm' is the start of the domain and 'n' is the end. If you want the
  500. domain to start at the default start, leave 'm' out. Then, whatever you
  501. change the start of the default domain to, that will always be where the
  502. equations starts graphing. To leave the end of the domain open, leave
  503. out 'n'. So if the range on-screen is (-10,10), specifying a domain of
  504. "{ ,5}" will graph from -10 to 5, and one of "{-4, }"  from -4 to 10.
  505.  
  506. To graph a parametric equation, you MUST specify a domain that is closed
  507. (i.e. one that has neither number left out).
  508.  
  509. The domain is parsed like any other expression, so you can use all of
  510. the arithmetic operators and functions available in the rest of the
  511. equations, as well as numbers and the constants d, e, and pi. The only
  512. restriction is that you may not use a variable (see table, page 7) in
  513. your domain, since this would yield ambiguous results.
  514.  
  515.  
  516.                           USING FREE VARIABLES
  517.  
  518. In any equation, in addition to the pre-programmed constants such as e
  519. and pi, you can also include the free variables 'b' and 'c' which you
  520. can define yourself. These parameters are effectively symbolic constants
  521. that make it easier to "play around" with the exact shape of the curve
  522. without editing the equation extensively.
  523.  
  524. The values of parameters used in each equation must be specified along
  525. with that equation, but if you don't type them in explicitly,
  526. Graphmatica will prompt you for the value(s) and insert this
  527. information in the equation for you. If you want, you can type in a
  528. value manually using a format similar to the domain specifier described
  529. above, for example:
  530.          {b: 1}                {c: -1/2}            {b: -pi/4}
  531. As usual, enclose the "domain" in curly braces. You must specify which
  532. parameter you want to set by its name ('b' or 'c') and a colon, followed
  533. by a value, which can be any expression that evaluates to a constant.
  534. You may not use other parameters either, since this could become self-
  535. referential.
  536.  
  537. You can change the value of a free variable after you have typed in
  538. equations and Graphmatica will automatically update and redraw all of
  539. the graphs using it with the new value. See section .... for details.
  540.  
  541.  
  542.  
  543. II. Entering and graphing equations                                   10
  544. ------------------------------------------------------------------------
  545.  
  546.                      GRAPHING FAMILIES OF FUNCTIONS
  547.  
  548. The third free variable, 'a', is fundamentally different because you can
  549. specify not just a single value, but a range of possible values that it
  550. can take. This allows you to graph families of functions or level curves
  551. of a 3-D surface easily. For instance, "y = a*cos(x)" will graph cosine
  552. curves of varying amplitudes, and "x^2+y^2 = a" will draw level curves
  553. of the surface "f(x,y) = x^2+y^2".
  554.  
  555. You don't even need to know the syntax described below to use this
  556. feature, since Graphmatica will prompt for the needed values and insert
  557. them in the equation for you. If you don't specify a range for 'a',
  558. Graphmatica will ask you for three values: the start of the range, the
  559. end of the range, and the amount to step by. Graphmatica starts by
  560. graphing the function with 'a' set to the start of its range, and then
  561. increments 'a' by the step value and draws another graph until 'a'
  562. exceeds the end of its range. (You can also specify a negative step
  563. value as long as the end of the range is less than the start.)
  564.  
  565. To type this information in on the command-line, add the domain
  566. specifier "{a: start, end, step}" to your equation, replacing "start",
  567. "end", and "step" with the desired values. For example, "y=a*cos(x)
  568. {a: 1,6,2}" will draw graphs of y=cos x, y=3cos x, and y=5 cos x.
  569.  
  570. Although the program does not put any limit on the number of curves in
  571. the "family" you can graph, be aware that this feature uses memory
  572. rapidly. In any case, the screen will likely become too cluttered to be
  573. useful if more than ten or so graphs are drawn, so try to make your step
  574. rate proportionate to the size of the range.
  575.  
  576.                             DRAWING THE GRAPH
  577.  
  578. Once you have entered an equation that parses successfully and pressed
  579. enter, Graphmatica will proceed to graph it. To interrupt a graph when
  580. the computer is in the process of drawing it, hit any key and the
  581. program will display on the bottom line the message:
  582.    "PAUSE at x=#, y=#. Press ESC to quit, any other key to restart.. "
  583. where # indicates the x and y coordinates you stopped it at. If you
  584. mistyped the equation and want to fix it, just press ESC.
  585.  
  586. Be patient! Graphmatica may need a while to produce a quality graph on a
  587. slower machine. To speed up the graphing, you may want to select a lower
  588. Fineness value.
  589.  
  590. When the graph for your equation is complete, the blinking cursor will
  591. reappear in the equation editor. If you'd like to start  over with a
  592. completely different equation, press ESC to clear the input field. If
  593. you'd rather modify the last equation, go right ahead; it's already
  594. stored safe and sound in the redraw queue (for more information see
  595. Section IV: Using AutoRedraw and the Redraw Queue). Or you can modify
  596. any previously entered equation by pressing the down arrow key (or
  597. clicking on the down arrow next to the editing field) to drop down the
  598. equation queue listbox and then selecting an equation from the redraw
  599. queue. You can then redraw this equation by pressing enter, or modify it
  600. to create a new equation. To access Graphmatica's other features, press
  601. Alt or hit escape on a blank line to raise the menu, or click on the
  602. desired menu item with the mouse.
  603.  
  604.  
  605.  
  606. II. Entering and graphing equations                                   11
  607. ------------------------------------------------------------------------
  608.  
  609.                              ERROR MESSAGES
  610.  
  611. Seventeen error messages may be encountered when graphing (apart from
  612. messages ingrained in the library functions which I cannot control).
  613. Twelve of them are fatal; the equation cannot be graphed and you must
  614. edit it. They will cause the computer to beep so you know there is a
  615. problem. The other five apply only to specific point(s) for which a y-
  616. value cannot be generated. They will not appear unless you ask for them
  617. using the Warnings option and then they appear silently.
  618.  
  619. [Please note that all warning messages which refer to the variables 'x'
  620. or 'y' will actually be 't' or 'r' when you are dealing with a polar
  621. equation.]
  622.  
  623. "Please type an equation (or select from the listbox); then press <-'
  624. to graph."
  625.     You pressed enter on the graph line without selecting or typing in
  626.     an equation.
  627.  
  628. "One or both sides of equation evaluated to nothing. Please edit your
  629. equation."
  630.     Make sure there is some sort of expression on each side of the
  631.     equation. Obviously, an entry like "y=" can't produce a meaningful
  632.     graph.
  633.  
  634. "No equals sign or more than one found. Press any key to edit the
  635. equation."
  636.     To be a valid and graphable, your equation must include exactly
  637.     one equals sign ['=']. If you get this error, you either left out
  638.     the '=' or accidentally typed two or more of them. For parametric
  639.     equations, there must be an '=' on each side of the dividing ';'.
  640.  
  641. "Inequalities only supported for rectangular equations. Replace < or >
  642. with =."
  643.     Inequalities cannot presently be evaluated for polar, parametric, or
  644.     differential equations. You may still be able to draw the graph if
  645.     you can express the inequality in rectangular form.
  646.  
  647. "Found bad operation or mismatched parentheses. Press any key to
  648. edit..."
  649.     You either left out a paren somewhere, left out one or both
  650.     of the operands for a binary operation or the argument for a
  651.     function, or typed some other weird thing the parser and evaluator
  652.     couldn't digest, like putting parentheses around the entire
  653.     expression. Examine your equation carefully and fix whatever seems
  654.     to be the problem.
  655.  
  656. "Found unknown variable or function. Press any key to edit the
  657. equation."
  658.     Unfortunately, the evaluator isn't set up to return what caused
  659.     the error, so you'll have to look for it yourself. Check that your
  660.     equation contains only valid identifiers (x, y, pi, d, e, r, t, a,
  661.     b, and the functions listed above) and that you separated each of
  662.     them with an operator, space, or some other punctuation.
  663.  
  664.  
  665.  
  666. II. Entering and graphing equations                                   12
  667. ------------------------------------------------------------------------
  668.  
  669.                         ERROR MESSAGES, continued
  670.  
  671. "Missing required argument to function. Press any key to edit the
  672.  equation."
  673.     The parser couldn't find any identifiers or expressions to use as
  674.     the argument for a function, like cos(x). All of Graphmatica's
  675.     functions require one argument following the function name,
  676.     preferably enclosed in parentheses.
  677.  
  678. "No dependent variable or more than one 'y' found. Please edit your
  679. equation."
  680.     Although Graphmatica can isolate ONE 'y' variable and graph some
  681.     relations, it cannot graph an equation without a 'y', like "x=4". It
  682.     also cannot perform the factoring needed to isolate the variable 'y'
  683.     (or 'r') when it occurs more than once (i.e. "x=y^2+3y"). If you can
  684.     adjust the equation so it uses only one 'y', do so; otherwise it
  685.     can't be graphed. In parametric graphing, this message may also
  686.     indicate that no 'x' variable was found in the x(t) equation.
  687.  
  688. "Can't find the inverse of this function of y. Press a key to edit
  689. equation."
  690.     You tried to graph an equation like "int(y)=x" or "abs(y)=x" for
  691.     which y cannot be isolated by taking the inverse of the function.
  692.     The functions which cannot be isolated are "abs", "cosh", "sinh",
  693.     "tanh", and "int". If you can't adjust the equation so this error
  694.     does not occur, it is not graphable.
  695.  
  696. "Parametric equation requires that you specify domain! See 'Graph' help
  697. file."
  698.     You typed in a parametric equation (or accidentally hit the
  699.     semicolon) and neglected to include a closed domain [like {1,6}].
  700.     Because the diversity of parametric equations makes it hard to pick
  701.     a default domain, you have to include one with each parametric
  702.     graph. See above in this section for help on giving the domain and
  703.     below in Section III for help on parametrics.
  704.  
  705. "Domain did not evaluate to a constant value. Press a key to edit
  706. equation."
  707.     The domain you entered either could not be parsed, or was found to
  708.     contain a non-constant identifier, like x or y. Valid domains must
  709.     have at least one side of the range defined and can't contain
  710.     variables, although any other expression that evaluates to a
  711.     constant is OK.
  712.  
  713. "Initial value must be on screen to graph an ode. Modify grid or
  714. equation's IV."
  715.     Since an initial-value approximation that doesn't start in the
  716.     visible grid may never encounter it, Graphmatica tries to avoid this
  717.     situation. Simply move the IV point or modify the grid so that it is
  718.     on screen.
  719.  
  720.  
  721.  
  722. II. Entering and graphing equations                                   13
  723. ------------------------------------------------------------------------
  724.  
  725.  
  726.                          WARNING ERROR MESSAGES
  727.  
  728. "Overflow at x=#.##."
  729.     Some function or operation generated a number too large to fit
  730.     into a 8-byte floating point variable. The point at x=#.## was not
  731.     graphed. This error is not fatal, so the graphing process is
  732.     continued, but if the message is repeated and no image is graphed,
  733.     you may need to abort graphing and look at your equation again.
  734.  
  735. "Division by zero at x=#.##."
  736.     At x=#.## your equation included division by zero so that point
  737.     was skipped. Unless you get this error repeatedly, there's no real
  738.     problem.
  739.  
  740. "Can't raise a negative number to a fractional power. [x=#.##]"
  741.     Due to the possibility of getting an even root of a negative
  742.     number (like -16^(1/2) which actually equals the square root of
  743.     -16), the C Library pow() function refuses to process any
  744.     arguments like these. This is not a fatal error, and the portion
  745.     of your graph (if any) where the base is not negative or the power
  746.     is not fractional should be graphed perfectly. This error also
  747.     occurs when you try to take the square root of a negative number
  748.     with the "sqr" function.
  749.  
  750. "Can't find the logarithm of a negative number. [x=#.##]"
  751.     The natural logarithm (ln) and base 10 logarithm (log) functions
  752.     are defined only on x greater than zero.
  753.  
  754. "Domain error: asin/acos functions defined only on -1<=x<=1. [x=#.##]"
  755.     The arcsine (asin) and arc cosine (acos) functions are only
  756.     defined between -1 and 1 (the range of the sin and cos functions).
  757.  
  758.  
  759.  
  760. Section                                     ============================
  761. III III III                                 | Extended Graph Functions |
  762.  I   I   I                                  ============================
  763.  I   I   I
  764.  I   I   I
  765. III III IIIo                                                          14
  766. ------------------------------------------------------------------------
  767.  
  768.                       INTRODUCTION TO POLAR GRAPHS
  769.  
  770. Polar coordinates are a fundamentally different approach to representing
  771. curves in two-dimensional space. The concept is pretty easy to grasp
  772. graphically, but if you have never used polar coordinates and want to
  773. understand them, you should probably read the section below.
  774.  
  775. The traditional Cartesian method relies on an x and a y coordinate to
  776. mark how far a point is from the axes in two perpendicular directions;
  777. polar coordinates plot the location of a point by one coordinate
  778. represented by the greek letter theta (looks like an O with a line
  779. through the middle--one of these methods should print it: Θ or O-) which
  780. is simplified to "t" in Graphmatica and another called "r". The "t"
  781. tells what direction to go in from the origin, and the "r" tells how far
  782. to go out in that direction to reach the point. The direction is
  783. measured in radians as an angle starting from the positive side of the
  784. x-axis and turning around counter-clockwise (like measuring the angle
  785. the hand on a clock has traveled starting at the 3 o'clock position and
  786. going backwards). There are 2pi radians in a complete circle,
  787. corresponding to 360 of the degrees you're familiar with. To put a polar
  788. coordinate into Cartesian terms in order to graph it, we use the
  789. equations: x = r cos (theta)  and  y = r sin (theta).
  790.  
  791. To make a graph using polar coordinates, we let theta be the independent
  792. variable and calculate a distance to plot out from the origin as we let
  793. the angle sweep around in the positive direction. The domain for the
  794. graphing is 0 to 2pi (the first complete circle in the positive
  795. direction), but you can easily change these values using the "T range"
  796. function in the View menu [see Section V]. Polar graphs can be entered
  797. in the equation editor just like normal graphs. The only difference in
  798. what you type, and the way Graphmatica detects a polar graph, is that
  799. you must use the variables "t" and "r" instead of "x" and "y". The
  800. restrictions are still the same: you can have one and only one instance
  801. of the dependent variable "r," although it can be located almost
  802. anywhere in the equation. You can embed the "r" in a term like "r^2" to
  803. graph functions that cannot be simplified by normal means and
  804. Graphmatica will evaluate both positive and negative roots automat-
  805. ically. You should watch as your graph is drawn, because often the
  806. direction it is going is almost as important as the figure it draws.
  807. (When you have a "double" equation with "r^2" in it, though, note that
  808. the positive roots are drawn first and then the negative roots are
  809. drawn: theoretically they should be drawn simultaneously, but this is
  810. not practical.)
  811.  
  812. Please note that the x and y coordinate ranges and the range for the
  813. variable theta function completely independently; in normal Cartesian
  814. graphing, theta's value is irrelevant, and in polar graphing, theta
  815. controls the domain of the graph, but the x and y ranges still control
  816. the physical screen you see. If you want to change your view of a polar
  817. graph, you use the scale or range functions just as you would normally.
  818.  
  819.  
  820.  
  821. III. Extended graph functions                                         15
  822. ------------------------------------------------------------------------
  823.  
  824.                     INTRODUCTION TO PARAMETRIC GRAPHS
  825.  
  826. Parametric graphing, like polar graphing, uses a different method of
  827. calculating points on the plane to come up with curves that may be
  828. difficult to compute using normal rectangular coordinates. They are
  829. unique in that the cartesian x and y coordinates are calculated based on
  830. a third variable (the "parameter" of x and y) which is traditionally
  831. called 't' (not to be confused with the 't' used by Graphmatica to
  832. represent theta). T is allowed to increase from the start of the domain
  833. you specify to the end. At each value, the functions x(t) and y(t) are
  834. calculated to give an (x,y) coordinate which is graphed. Graphmatica
  835. then connects these points to form a smooth curve--if something you
  836. graph begins to look jagged, you probably need to adjust the fineness.
  837. (Parametric graph fineness is linked to the same fineness control as
  838. Cartesian and polar graphing, and should be decent at the default
  839. fineness value, but if you need to, you can increase or decrease this
  840. value. Be aware that this will affect the fineness of non-parametric
  841. graphs as well. See Section VII "Adjusting the Fineness" for details.)
  842.  
  843. To enter a parametric graph, you need to remember four basic parts: the
  844. x(t) and y(t) functions, the semicolon between them (this is how
  845. Graphmatica knows it's a parametric graph), and the domain for t.
  846.                       semicolon
  847.                 x-function |   y-function    domain
  848.                     |      |        |           |
  849.                   x =  2t  ;   y =  2t^2   {-10, 10}
  850.  
  851. Although as in all other Graphmatica equations you don't need to solve
  852. for x and y (i.e. t=5x would be OK), only one x and one y can appear in
  853. the whole equation, and "double" equations like "x^2=t" where
  854. Graphmatica would normally solve for both the positive and negative
  855. roots are NOT supported (you can enter them but only the positive root
  856. will be found; each equation in the redraw queue is allowed enough space
  857. to hold two computable expressions, and either a double equation or an
  858. x/y pair of parametric equations will fit, but not both). You can type
  859. the x and y equations in in either order, as long as they are separated
  860. by a semicolon, and the domain will be recognized anywhere on the line.
  861. You MUST specify a domain for each parametric equation! The variety of
  862. curves that can be drawn with parametric equations is great and makes
  863. choosing an appropriate default domain impossible. Some curves (like
  864. those including the circular functions sine and cosine) tend to work
  865. best over a {0,2pi} domain, like polar graphs. Others will match up
  866. better with the default domain of the normal graphs, the size of the
  867. viewing area. Some have a very compact domain, between say 0 and 1,
  868. where they will appear on the screen. If you over- or under-estimate the
  869. domain, you can always abort the graph and edit your equation.
  870.  
  871.  
  872.  
  873. III. Extended graph functions                                         16
  874. ------------------------------------------------------------------------
  875.  
  876.                COMPARISON OF THE THREE GRAPHING TECHNIQUES
  877.  
  878.     While some curves can be drawn by cartesian relations, polar
  879. coordinates, and parametric functions, each technique is better suited
  880. for some graphs than for others. For instance, a circle with radius 5
  881. around the origin which can be produced by the equation
  882.                              x^2 + y^2 = 25
  883. can be drawn faster by the parametric equations
  884.                  x = 5 cos (t) ; y = 5 sin (t)  {0, 2p}
  885. and can be drawn faster and much more simply by the polar graph
  886.                                  r = 5.
  887.  
  888.  
  889.             GRAPHING APPROXIMATIONS OF DIFFERENTIAL EQUATIONS
  890.  
  891. Graphmatica also has built-in a rudimentary feature for approximating
  892. the solutions of first-order differential equations. [I will not provide
  893. background material on this function because if you need to use it, you
  894. probably know more about differential equations than I do.] To let the
  895. parser know you want to graph a differential equation, you must include
  896. the differential "dx" (which actually represents dx/dt) as one of your
  897. variables. If you specify an equation as dx = f(x,t) where f(x,t) is
  898. some combination of the variables x and t (such as "x^3 + t" or "t * x")
  899. and do NOT include the domain operator "{ , }", the program will draw a
  900. slope field for dx/dt = f(x,t), with t as the horizontal axis and x
  901. the vertical.
  902.  
  903. If you do include the domain operator {g, h}, it will not be interpreted
  904. as a domain but will instead indicate that you want to graph a specific
  905. solution to the initial-value problem x(g)=h by Runge-Kutta approx-
  906. imation. This deviation from the normal notation is only valid for
  907. differentials.
  908.  
  909. In addition, you can now specify an initial value by moving the
  910. crosshairs around with the arrow keys or mouse. Type in an equation to
  911. add an IV to or select an equation to modify and choose the Set IV
  912. option from the Point menu. Move the cursor to the desired location and
  913. press enter or click the left mouse button to add the initial value
  914. point to the selected equation. Then press enter in the equation editor
  915. to graph the solution.
  916.  
  917. This version of the program offers significantly enhanced initial-value
  918. solving. The Cauchy-Euler approximation method has been replaced with
  919. the much more accurate Runge-Kutta method, thanks to a user suggestion.
  920. Both sides of the curve, to the left and the right of the point, are
  921. graphed. Also, dynamic fineness adjustment has been added to increase
  922. the accuracy of steep curves like "dx = x {0,1}" (solution: x=e^t) and
  923. "dx = 1/t {1,0}" (solution: x = ln t).
  924.  
  925.  
  926.  
  927. Section                        =========================================
  928. III VVV VVV                    | Using AutoRedraw and the Redraw Queue |
  929.  I   V   V                     =========================================
  930.  I   V   V
  931.  I    V V
  932. III    V o                                                            17
  933. ------------------------------------------------------------------------
  934.  
  935.                             USING AutoRedraw
  936.  
  937. Whenever you change the scale to look at a graph in greater detail or
  938. from farther back, or you shift the range of the axes so that the graph
  939. you just drew will be centered, the screen must be cleared so that a new
  940. coordinate grid can be drawn. So you're left with the viewing angle you
  941. wanted for that graph, but the screen is blank. You shouldn't have to
  942. solve this problem by retyping the whole equation again...and you don't.
  943. You can redraw the equation much more easily by selecting Pick graph in
  944. the Redraw menu. But with AutoRedraw ON, you don't even have to do that.
  945.  
  946. As its name suggests, AutoRedraw will redraw the last equation(s) you
  947. typed in automatically when you change the scale or range. If you don't
  948. want a graph redrawn, you can abort it by pressing ESC twice and you
  949. will be returned to the equation editor. If you want to turn off
  950. AutoRedraw completely, just select AutoRedraw under the Options menu and
  951. answer "n" when asked if you want AutoRedraw on.
  952.  
  953. To change the number of graphs redrawn automatically, you should also
  954. select AutoRedraw from the menu. After responding "y" when asked if you
  955. want it on, enter the number of graphs (1-25) that you would like to be
  956. redrawn each time AutoRedraw is invoked. (If there aren't that many in
  957. the queue, Graphmatica will just redraw them all.)
  958.  
  959. AutoRedraw is ON by default. You can change the default to OFF by
  960. turning it off and using the Save Setup command to record this change in
  961. the GRAPHMAT.INI file.
  962.  
  963.                             THE REDRAW QUEUE
  964.  
  965. Every time you type in an equation, the character string you typed and
  966. the program's internal representation of that equation get stored in the
  967. redraw queue. From this queue, or list, you can call up any of the last
  968. 25 equations you typed to graph again with fewer keystrokes than
  969. retyping it. Or you can redraw all of them or the just the last one you
  970. typed with even fewer keystrokes. The equations in the queue are stored
  971. in an order that puts the most-recently-used at the beginning and the
  972. least-recently-used at the end. Hopefully, when the queue fills up, the
  973. equations that are bumped off the queue at the end will be the ones you
  974. won't miss very much.
  975.  
  976. As explained above, the screen clears whenever you execute Range or a
  977. successful Scale (if you abort Scale the screen remains as it was). If
  978. you execute either of these functions or clear the screen accidentally
  979. with the Clear menu option, you can redraw the last equation (if
  980. AutoRedraw hasn't already) by selecting Last graph under Redraw, or you
  981. can redraw all of the equations in the queue using Redraw All under the
  982. Redraw menu. Note that the redraw function does not keep track of which
  983. graphs are on the screen at any point in time so "redrawing all" may put
  984. more (if you plotted many equations on the screen before the last one)
  985. or fewer (if you cleared the queue) equations on the screen than there
  986. were before the screen was cleared.
  987.  
  988.  
  989.  
  990. IV. Using AutoRedraw and the Redraw Queue                             18
  991. ------------------------------------------------------------------------
  992.  
  993.  
  994.                            REDRAWING MANUALLY
  995.  
  996. The Pick graph option in the Redraw menu allows you to graph any
  997. equation currently in the redraw queue. First choose an equation from
  998. the combobox by clicking on it with the mouse or using the down key to
  999. highlight it and pressing enter. Then, choose Pick graph from the menu.
  1000. (If you do not select an equation, Graphmatica redraws the first one in
  1001. the queue.) When you pick a graph, it is re-inserted at the top of the
  1002. redraw queue, as you'll likely be working with it again in the future.
  1003. So if you scale the grid again, that graph will be Auto-Redrawn, and if
  1004. you redraw the last graph, that graph will be shown.
  1005.  
  1006. You can redraw a single equation more efficiently within the equation
  1007. editor by selecting the equation as above and then simply pressing enter
  1008. (do not modify the equation) while it is in the equation editor. The
  1009. only advantage of the menu item is that it allows you to pick and redraw
  1010. one-handed with a mouse.
  1011.  
  1012.  
  1013.                           DELETING AN EQUATION
  1014.  
  1015. To remove an equation that is no longer of interest from the queue,
  1016. simply select that equation from the combobox (see Section I for
  1017. details) and then choose the Delete Eqn item from the Redraw menu. The
  1018. equation is then vaporized from the queue, although its graph will
  1019. remain on the screen until you clear the screen.
  1020.  
  1021.  
  1022.                         CLEARING THE REDRAW QUEUE
  1023.  
  1024. Selecting Clear All from the Redraw menu essentially starts a new
  1025. session, except the options settings and grid size remain the same.
  1026. All of the equations in the queue are deleted, and the screen and labels
  1027. (including annotations) are cleared as well.
  1028.  
  1029.  
  1030.  
  1031. IV. Using AutoRedraw and the Redraw Queue                             19
  1032. ------------------------------------------------------------------------
  1033.  
  1034.                     SAVING AND LOADING EQUATION LISTS
  1035.  
  1036. To save the list of equations you're working on, as well as the title
  1037. and y-axis labels if you've entered them, simply select Save List from
  1038. the File menu and enter a filename. This file will be saved in the
  1039. current directory with an extension of ".GR" (for GRaphmatica) unless
  1040. you specify differently. To save to diskette, you simply have to insert
  1041. "A:" or "B:" before your filename. Longer directories may not fit. When
  1042. asked if you want to include setup information, answer "y" if you want
  1043. to record the current size of the grid and options settings in the
  1044. equation list file. Otherwise, only the text labels and equations in the
  1045. queue are saved in the file.
  1046.  
  1047. To reload your list of equations or load up one of the demo files
  1048. provided with Graphmatica, you have more options. You can automatically
  1049. load a file when you run Graphmatica by typing its name (with or without
  1050. a file path or the ".GR" extension) as a command-line argument. Then
  1051. those equations will be loaded up (and graphed) immediately after the
  1052. opening screen, unless the file includes the autoredraw=off statement
  1053. (see Appendix B: editing equation lists). You can also load an equation
  1054. list at any time by selecting Open List from the File menu. You will
  1055. be presented with a list of files available (if there are any) which can
  1056. be selected using the up/down arrow keys or mouse. This list includes
  1057. two special options, "[Cancel]" and "[New path]". Select cancel to
  1058. return to the equation editor without loading a file, and new path to
  1059. change the current directory to look for files elsewhere.
  1060.  
  1061. After you select a file to load, if the redraw queue is not empty, you
  1062. must decide whether to add the new file's equations to the existing
  1063. queue or replace its current contents. Answer "y" to the prompt to clear
  1064. the queue before loading the new file, or "n" to keep it.
  1065.  
  1066. When the file has been loaded, if AutoRedraw is on Graphmatica will
  1067. proceed to draw all of the equations just loaded (but not the ones that
  1068. were previously in the queue, if you didn't clear it). You can abort
  1069. these by pressing ESC twice on each if you are impatient. The graph
  1070. title and Y-axis labels (if the file had any) that were loaded won't be
  1071. displayed until you print or do a Print Preview (see Section VIII).
  1072.  
  1073. If the file was saved with the Save setup option on, the grid and
  1074. special options settings recorded in the file will be loaded and set
  1075. automatically.
  1076.  
  1077.  
  1078.  
  1079. Section                  ===============================================
  1080. VVV VVV                  | View: Changing the appearance of the screen |
  1081.  V   V                   ===============================================
  1082.  V   V
  1083.   V V
  1084.    V o                                                                20
  1085. ------------------------------------------------------------------------
  1086.  
  1087.                           CLEARING THE SCREEN
  1088.  
  1089. Select Clear in the View menu to clear the screen. Everything will be
  1090. erased and the grid will then be redrawn. Remember, every equation you
  1091. have typed is still stored and can be redrawn later even after you have
  1092. cleared the screen. If an error has garbled the whole screen, here's a
  1093. hint to help regenerate it: first press ESC until the top menu bar is
  1094. refreshed, and then use Clear to redraw the rest of the screen.
  1095.  
  1096.  
  1097.                   CHANGING THE BACKGROUND GRAPH PAPER
  1098.  
  1099. Graphmatica has two additional types of graph paper that may be more
  1100. appropriate than the regular rectangular grid in some situations: polar
  1101. paper and trig paper. Polar paper, instead of a grid of squares,
  1102. consists of concentric circles marking the distance r, and radiating
  1103. lines marking the angle theta at intervals of pi/6 radians. Trig paper,
  1104. intended to ease interpretation of trigonometric functions, uses the
  1105. regular rectangular grid but the x-axis is labelled in multiples of pi
  1106. instead of integers.
  1107.  
  1108. New to this version is the ability to control the level of detail in
  1109. your graph paper. There are four possibilities: no paper, axes only,
  1110. reference dots, and the full grid. Note that polar and rectangular paper
  1111. look the same when you set the detail level to no paper or axes only.
  1112. Also remember that even with no paper selected, legends may still be
  1113. displayed along the invisible axes unless you turn them off
  1114. independently.
  1115.  
  1116. You can switch instantly between any of these graph paper types by
  1117. selecting the Paper option from the View menu and responding to the two
  1118. prompts, "Select type of graph paper:" and "Select detail level:"
  1119. appropriately. Since only the appearance, not the size, of the grid
  1120. changes during this operation, any graphs you had on-screen will be
  1121. instantly redrawn with no need for recalculation.
  1122.  
  1123. Your choice of graph paper type, like all of Graphmatica's options, is
  1124. recorded in your equation list files when you choose to save setup
  1125. information, so when you load up an equation list later the correct
  1126. type of graph paper will automatically be displayed. See the demo files
  1127. TRIG.GR, POLAR.GR, and DIFEQ.GR for examples of this.
  1128.  
  1129.  
  1130.  
  1131. V. View: Changing the Appearance of the Screen                        21
  1132. ------------------------------------------------------------------------
  1133.  
  1134.                            CHANGING THE SCALE
  1135.  
  1136. The scale function allows you to change the scale of the graph you have
  1137. on-screen while keeping the center of the display the same (the origin
  1138. may move but if (2,2) is at the middle of the screen, it will stay
  1139. there). The scale is relative to the size of the grid that is presently
  1140. on the screen, so you need not make any comparison with the default
  1141. grid. To rescale the grid, select Scale from the View menu. Then you
  1142. must provide a "scale factor" to tell the program how much to change the
  1143. size of the grid.
  1144.  
  1145. Enter a positive number to zoom in, or a negative number to pan out. (In
  1146. the Camcorder terminology, a positive number acts as a telephoto and a
  1147. negative as a wide-angle lens.) The number of units across the screen
  1148. will be divided or multiplied by that number accordingly. Numbers
  1149. between -1 and 1, inclusive, are not allowed because they produce
  1150. meaningless values. Decimals greater than 1 or less than -1 are valid
  1151. though.
  1152.  
  1153. If you enter an invalid number, you will be asked to enter the scale
  1154. again. To abort rescaling, leave the field blank and just press enter.
  1155.  
  1156. The program remembers the value you type in and presents it as a default
  1157. the next time you Scale the grid. The original default is "2".
  1158.  
  1159.  
  1160.                            ADJUSTING THE RANGE
  1161.  
  1162. Graphmatica allows you to adjust the start and end of the x- and y-
  1163. ranges independently, so as to create a perfect fit for whatever
  1164. function you are graphing. Or, you can constrain one or more of the
  1165. coordinates to produce a graph with a square aspect ratio without
  1166. actually figuring out all of the values by hand.
  1167.  
  1168. Choose the Range item from the View menu to modify the grid. To create a
  1169. "custom" grid, estimate the top-, bottom-, left- and rightmost
  1170. extremities of the graph, and respond with the proper values to the 4
  1171. Range prompts. The new grid may be somewhat expanded or compressed
  1172. depending on the aspect ratio, but it will show the part of the graph
  1173. you're interested in the best possible detail.
  1174.  
  1175. To create a "square" grid where both x and y axis have the same scale,
  1176. just type "auto" for any of the four coordinates and it will
  1177. automatically be scaled properly to fit the other three. If you pick the
  1178. least significant coordinate to AutoScale, you can match the other three
  1179. exactly, framing your graph almost as well as a custom range, but with a
  1180. more natural aspect ratio. If you want to show the same amount above as
  1181. below the axis, type "auto" at both of the y-coordinate prompts and the
  1182. top and bottom of the grid will be set to properly scaled equal and
  1183. opposite values. (AutoScaling of both x-coordinates based on the height
  1184. of the grid is not supported.)
  1185.  
  1186.  
  1187.  
  1188. V. View: Changing the Appearance of the Screen                        22
  1189. ------------------------------------------------------------------------
  1190.  
  1191.                        CHANGING THE RANGE OF THETA
  1192.  
  1193. This feature was previously found in the Options menu.
  1194.  
  1195. Because the independent variable (theta) in polar coordinates is
  1196. fundamentally different from the 'x' of Cartesian coordinates, the
  1197. Cartesian x/y ranges can only be used to determine the size of the
  1198. screen and not the domain of the equation graphed for polar graphs.
  1199. Although the default 0 to 2pi range is the typical range of theta used
  1200. for most graphs that go on forever (like spirals) and some closed graphs
  1201. (like circles), other graphs cannot be completely drawn in this range of
  1202. theta. For instance, the figure-8-shaped "r^2=64cos(2t)", because it is
  1203. undefined where the right half is less than zero, is missing a couple of
  1204. spots unless theta's range is extended to -2pi to 2pi. To allow the
  1205. greatest flexibility, Graphmatica allows theta's range to be changed
  1206. independently of all other options.
  1207.  
  1208. To change the range, select "T range" from the View menu and enter
  1209. the start and end of the range you want (or press enter on the blank
  1210. line to keep the current range). You can type in any expression,
  1211. even using fractions and functions, as long as it evaluates to a
  1212. constant. In particular, although Graphmatica works exclusively with
  1213. radians, you can enter the range in degrees by typing in a number times
  1214. the constant 'd', which converts degrees to radians, as in "45d" for 45
  1215. degrees. You can also easily specify a radian measure as a multiple of
  1216. pi, as in "2p" for 2 pi.
  1217.  
  1218. If you would rather not change the default domain but simply change the
  1219. domain for a single graph, see Section II "Specifying a Domain".
  1220.  
  1221.  
  1222.  
  1223. Section                   ==============================================
  1224. VVV VVV III               | Labels: Adding Explanatory Text to a Graph |
  1225.  V   V   I                ==============================================
  1226.  V   V   I
  1227.   V V    I
  1228.    V    IIIo                                                          23
  1229. ------------------------------------------------------------------------
  1230.  
  1231.  
  1232.                               AXES LEGENDS
  1233.  
  1234. Graphmatica by default prints legends along the hatch marks across the
  1235. graph so you can more easily locate points or find the coordinates of a
  1236. graphed point. In some cases, though, especially when doing graphs near
  1237. the axes in a monochrome video mode, the numbers can be confusing and
  1238. you may want to turn them off. To do this, select the Legends option in
  1239. the Labels menu and respond to the prompt.
  1240.  
  1241.  
  1242.                       ADDING TITLES TO YOUR GRAPHS
  1243.  
  1244. If you want to add a title line and/or labels along the sides to your
  1245. graph, select Titles from the Labels menu. You can type in a new title,
  1246. edit one you typed in previously, or delete the title by pressing enter
  1247. on the blank line. For the y-axis labels, the length of the string you
  1248. can use depends on the number of rows you monitor has: CGA and EGA can
  1249. hold 23 letters and VGA can hold 28. The program presents you with the
  1250. previous label which you can edit, discard by pressing ESC and typing a
  1251. new string, or turn off completely by pressing ESC and then enter on the
  1252. blank line.
  1253.  
  1254. When you print (or select Print Preview from the menu), the title is
  1255. written across the top of the screen where the equation editor normally
  1256. is, and it is automatically centered. Do not try to center the title
  1257. manually when you are typing it in or it will interfere with the
  1258. automatic centering. When you are graphing and the menu is active, the
  1259. title line is not shown.  Like the title, the y-axis labels are
  1260. automatically centered (vertically) on the graph. Graphmatica does not
  1261. draw these labels immediately, since they are intended mainly to enhance
  1262. hardcopy printing, but they are also displayed if you perform the
  1263. Preview option under the File menu.
  1264.  
  1265. These two features were previously found in the View menu.
  1266.  
  1267.  
  1268.  
  1269. VI. Labels: Adding Explanatory Text to a Graph                        24
  1270. ------------------------------------------------------------------------
  1271.  
  1272.  
  1273.                                ANNOTATIONS
  1274.  
  1275. Annotations are short text phrases which you can place anywhere on the
  1276. graph surface to label intersections, zero-crossings, and other
  1277. important points on your graphs. Graphmatica maintains a list of up to
  1278. ten 30-character annotations.
  1279.  
  1280. To add an annotation to the graph, select Annotate from the Labels menu.
  1281. Type in the text you wish to use to label the graph and press enter. Now
  1282. a crosshair cursor will appear. Move it with the keyboard or mouse to
  1283. the position where you want the upper-left corner of the text. Then
  1284. click the left button or press enter to paste it down. The text will
  1285. appear on the screen immediately. Remember that it is associated with a
  1286. logical x,y coordinate on the grid, not with the physical point you
  1287. clicked on or with any particular equation. Thus, when you rescale the
  1288. graph or change the range, the annotation will reappear at the same
  1289. logical but not always the same physical position. Also note that
  1290. annotations that would run off the screen cannot be drawn. You must zoom
  1291. out so they are fully on the screen before they will appear.
  1292.  
  1293. To edit a previously entered annotation, select the Edit Annote menu
  1294. item from the Labels menu. Next choose the annotation to edit from the
  1295. listbox. You can then choose the delete the annotation, change its text,
  1296. or change its position. Pressing Esc at this prompt instead leaves the
  1297. annotation unchanged.
  1298.  
  1299. All of the annotations you have entered will be saved with any equation
  1300. list you save, and will automatically be displayed again when you reload
  1301. it. Like the graph title, the current annotations are cleared before
  1302. loading a new file and when you Clear all of the equations from the
  1303. redraw queue.
  1304.  
  1305.  
  1306.  
  1307. Section                          =======================================
  1308. VVV VVV III III                  | Viewing and Setting Special Options |
  1309.  V   V   I   I                   =======================================
  1310.  V   V   I   I
  1311.   V V    I   I
  1312.    V    III IIIo                                                      25
  1313. ------------------------------------------------------------------------
  1314.  
  1315.                           THE DEFAULT SETTINGS
  1316.  
  1317. When you run Graphmatica without a GRAPHMAT.INI file, the following
  1318. settings are in effect:
  1319.  
  1320.     Start of range:  (-8.0, *)
  1321.       End of range:  (8.0, *)
  1322.           Fineness:  1.0 **
  1323.            Legends:  ON              Warnings:  OFF
  1324.            Printer:  OFF           AutoRedraw:  ON
  1325.            AutoNum:  1            Graph paper:  Rectangular, Grid
  1326.        Theta Range:  0 to 6.28 (2pi)
  1327.  
  1328. *  varies depending on video mode; always equal and opposite and scaled
  1329.    to provide a square aspect ratio.
  1330. ** on CGA systems fineness is automatically set down to 0.75 to speed up
  1331.    graphing.
  1332. This provides a basic rectangular grid of decent size with the origin
  1333. centered, a square aspect ratio (a 1x1 square on the grid really LOOKS
  1334. square), and a good resolution graph.
  1335.  
  1336.                           VIEWING THE SETTINGS
  1337.  
  1338. The current settings are almost always displayed whenever you change one
  1339. of them. Every item under Options (unless aborted) will bring up the
  1340. settings screen. You can also look at them manually by selecting
  1341. Settings in the Options menu.
  1342.  
  1343.                         SAVING SETUP INFORMATION
  1344.  
  1345. You can save your preferred grid size and settings of other user options
  1346. so that whenever you run Graphmatica again they will automatically be
  1347. restored. You can do this at any time by selecting the Save Setup item
  1348. in the File menu. The options will be saved in the GRAPHMAT.INI file in
  1349. the current directory. If this is not where the program files are
  1350. stored, Graphmatica will not be able to find it again, so if you change
  1351. the directory using the load or save list commands, be sure to reset it
  1352. before you save the setup.
  1353.  
  1354. The setup file is just a special equation list that is loaded
  1355. automatically (if you don't specify another equation list on the command
  1356. line) when you start Graphmatica. It follows the same format as a normal
  1357. equation list (described in Editing Equation Lists) except that when you
  1358. save it Graphmatica leaves out the labels and the equations (the
  1359. important parts of normal equation lists). If you do want to save
  1360. equations and labels in it, use the normal save command (and answer "y"
  1361. when asked if you want to save setup information), and just enter the
  1362. filename GRAPHMAT.INI.
  1363.  
  1364. When Graphmatica saves your options, to simplify things it only records
  1365. those options that are different from its own internal defaults. (See
  1366. Default Settings for a list of these.) If your settings are close to the
  1367. defaults, your setup file will be very short.
  1368.  
  1369.  
  1370.  
  1371. VII. Viewing and Setting Special Options                              26
  1372. ------------------------------------------------------------------------
  1373.  
  1374.                          ADJUSTING THE FINENESS
  1375.  
  1376. The fineness factor determines the resolution of the graph, and in
  1377. effect, the amount of time it takes to draw it. The fineness factor of 1
  1378. is quite adequate in most circumstances. Graphmatica's SmartFineness
  1379. feature dynamically adjusts the actual step rate, making the manual
  1380. fineness adjustment almost obsolete, but I left it in to accommodate the
  1381. need for especially sharp graphs or for especially quick renderings.
  1382. SmartFineness automatically decreases the fineness when the point being
  1383. graphed is not on the screen to speed up blank areas, then recovers
  1384. automatically and backtracks to the spot where the graph comes on-screen
  1385. again. It also varies the fineness with the slope of the equation being
  1386. graphed--less when the slope is near-horizontal, greater when the slope
  1387. tends toward vertical, so steep graphs are tracked more effectively. As
  1388. the fineness is increased, the curve will become smoother--to a point.
  1389. Remember that for any increase in the fineness factor, there will be a
  1390. proportional increase in the time it takes to draw a graph.
  1391.  
  1392. If you have CGA adapter, Graphmatica assumes you are using an 8088-class
  1393. PC and reduces the fineness to 0.75 to speed up graphing; the difference
  1394. in resolution is usually not noticeable, but the difference in speed is.
  1395.  
  1396. Fineness is also linked to the rate at which the angle is allowed to
  1397. change in polar graphs, and Cartesian and Polar graphs will be of
  1398. comparable quality at the same fineness factor. Fineness is also linked
  1399. to the step rate of parametric graphs and differential equations;
  1400. because they vary so much, it is harder to insure that all parametrics
  1401. and dif-eqs will graph well at the default fineness, but those I have
  1402. tested look fine.
  1403.  
  1404. To change the fineness factor, select Fineness from the Options menu.
  1405. Any value greater than zero is valid, but I would not recommend going
  1406. below 0.25, as the image quality suffers and the graphs begin to look
  1407. like modern art. Also, a factor greater than 5, in addition to being
  1408. slow, can overflow the list of plotted points kept for quick redraws,
  1409. which may actually cause the graph to display incorrectly if you change
  1410. the graph paper or another option that forces the screen to be redrawn.
  1411.  
  1412.                            WARNING MESSAGES
  1413.  
  1414. By default, the error messages which do not require the equation to be
  1415. edited are suppressed, because they slow down the graphing process,
  1416. cover up the equation, and are somewhat annoying when you know the graph
  1417. shouldn't produce any values in some area. (Also, it saves you the
  1418. effort of specifying the domain for each equation.) If something goes
  1419. wrong (e.g. the graph doesn't show up on screen when it should and the
  1420. reason isn't readily apparent), you can turn on the warning messages
  1421. (using the Warnings function of the Options menu) and redraw it to see
  1422. what the problem is.
  1423.  
  1424.                         CHANGING THE DRAWING MODE
  1425.  
  1426. Graphmatica can render graphs in two ways: by drawing dots to represent
  1427. the points it has calculated or by drawing lines to "connect the dots."
  1428. By default, graphs are drawn using lines, because at a minimal expense
  1429. of time, this makes the graphs much more visible. If you want, however,
  1430. you can change the drawing mode to "dots" using the Draw Mode command in
  1431. the Options menu.
  1432.  
  1433.  
  1434.  
  1435. Section                             ====================================
  1436. VVV VVV III III III                 | Using a Printer with Graphmatica |
  1437.  V   V   I   I   I                  ====================================
  1438.  V   V   I   I   I
  1439.   V V    I   I   I
  1440.    V    III III IIIo                                                  27
  1441. ------------------------------------------------------------------------
  1442.  
  1443.  
  1444.                     PRINTING PICTURES OF YOUR GRAPHS
  1445.  
  1446. Graphmatica includes two internal printing functions which work with CGA,
  1447. EGA, and VGA and many common printers. To print, select the Print
  1448. command from the File menu and then choose the printer type closest to
  1449. your own. If you have an IBM, Epson, or compatible dot-matrix graphics-
  1450. capable printer or a laser printer that doesn't support HP PCL but has
  1451. Epson emulation, select Epson dot-matrix. If you have a Hewlett-Packard
  1452. DeskJet, LaserJet, or other laser or ink jet printer compatible with the
  1453. HP Printer Control Language Level III, choose HP LaserJet/DeskJet. If
  1454. you didn't mean to choose the print command, press ESC to abort.
  1455.  
  1456. Graphmatica does not check the printer's status, so you must have it on
  1457. before you try to print.
  1458.  
  1459. All the graphs on the screen will be printed on the printer, with
  1460. the top of the screen at the top of the paper. At the bottom of the
  1461. page is a list of the equations for the graphs Graphmatica
  1462. thinks are presently on the screen. All graphs you have drawn since the
  1463. last time the screen was cleared, except ones that you aborted by
  1464. pressing ESC, are included in this list.
  1465.  
  1466. If you want to abort the printing process, press ESC. Don't turn off or
  1467. reset the printer until the "Printing..." message at the bottom of the
  1468. screen is gone or DOS may print an error message and mess up the screen.
  1469.  
  1470. The output is as close to what you see on the screen as I can make it,
  1471. but since none of the supported display resolutions makes a very good
  1472. match with the printer's resolution (aside from VGA on a LaserJet), I had
  1473. to do some stretching and squeezing to make the printouts the right
  1474. shape. Thus the size of the printout will vary between different monitor
  1475. types because to make the grid square, I had to expand the x axis
  1476. different amounts to make up for the different vertical resolutions.
  1477.  
  1478. On dot matrix printers, for CGA mode, the x direction is expanded by 33%
  1479. and the y by 100%. For EGA, the x is expanded by 20% and the y remains
  1480. as it was read off the screen. For VGA, the x is expanded 50% and the y
  1481. is compressed about 9% by merging pairs of adjacent lines. For super-
  1482. VGA (800x600), the x direction is expanded by 20% and the y is
  1483. compressed by 27% by merging adjacent lines. For this reason, dot matrix
  1484. printouts at high resolutions may not be as sharp as EGA resolution
  1485.  
  1486. On laser printers, Graphmatica produces crisper, more compact images due
  1487. to the superior resolution. The VGA image will print the best with a
  1488. laser printer: every point is mapped on a one-to-one basis due to the
  1489. square aspect ratios of both the screen and printer. EGA and CGA images
  1490. are scaled accordingly so the output isn't squashed, and they print
  1491. graphics that are not as sharp but still much better than dot-matrix
  1492. output.
  1493.  
  1494.  
  1495.  
  1496. VIII. Using a Printer with Graphmatica                                28
  1497. ------------------------------------------------------------------------
  1498.  
  1499.                             NOTES ON PRINTING
  1500.  
  1501. Graphmatica assumes your printer resides at LPT1:. If your printer is
  1502. not connected to the parallel port but to the serial port instead, you
  1503. must use the DOS "mode" command to redirect the output if you want to
  1504. use the printer. For most people, the command would be
  1505.     C:\>mode lpt1 = com1
  1506. You need to use this command only once before you run Graphmatica; DOS
  1507. will remember the redirection until you shut off the computer or reboot.
  1508.  
  1509. If you have a color printer and a version of GRAPHICS.COM that produce
  1510. legible output from a printscreen, you may want to load GRAPHICS and
  1511. just press Shift-PrtSc while in Preview mode instead of using the print
  1512. option. (It can only print in black and white.)
  1513.  
  1514.  
  1515.                               PRINT PREVIEW
  1516.  
  1517. To see how the screen will look when it is printed, simply select the
  1518. Preview option from the Print menu. In EGA and VGA modes, you can choose
  1519. between color and monochrome preview (it is easier to capture monochrome
  1520. screens to add to other documents, because you need not worry about the
  1521. color palette). Super-VGA does not have any corresponding monochrome
  1522. mode available, unfortunately.
  1523.  
  1524. The menu bar and help line will clear, and the graph title and y-axis
  1525. labels (if any) will be drawn on the screen. If you have a color printer
  1526. that works better with an external print screen function, this is the
  1527. perfect time to press the Print Screen button (if you have a mouse, be
  1528. sure to hide the arrow at the bottom of the screen first). In any case,
  1529. you can look at it as long as you need to. When you want to return to
  1530. work, just press any key or mouse button and the menu will reappear.
  1531. (The side labels are not erased, however; they must be cleared manually.
  1532.  
  1533.                              PRINTING VALUES
  1534.  
  1535. This feature allows you to print out a table of coordinates as the
  1536. program is drawing your graph. This option is available to aid the
  1537. drawing of graphs manually (if you happen to be cheating on your
  1538. homework) and provide a reference for labeling the axes if you print the
  1539. graph without the legends on.
  1540.  
  1541. By default, the print tables option is OFF; most people don't leave
  1542. their printer on at all times and the process slows down graphing. You
  1543. can turn it on by selecting Tables in the Options menu and responding
  1544. "y" to the prompt.
  1545.  
  1546.  
  1547.  
  1548. Section                       ==========================================
  1549. III XX    XX                  | Point menu: evaluating specific points |
  1550.  I    X  X                    ==========================================
  1551.  I     XX
  1552.  I    X  X
  1553. III XX    XX o                                                        29
  1554. ------------------------------------------------------------------------
  1555.  
  1556. Sometimes the graph of a function just isn't enough: you really need to
  1557. get a number. Graphmatica provides two features to help you accomplish
  1558. this task. Both are located in the Point menu.
  1559.  
  1560.                      NUMERICALLY EVALUATING A POINT
  1561.  
  1562. The Evaluate command in the point menu allows you to quickly find the
  1563. value of any equation you've entered at a specific point. First choose
  1564. an equation from the queue by selecting it in the equation combobox. (If
  1565. you do not choose an equation, Graphmatica will select the last one
  1566. graphed for you.) Then choose the Evaluate command from the Point menu.
  1567.  
  1568. You will be asked to enter a value for the selected equation's
  1569. independent variable. Any expression that evaluates to a constant is OK,
  1570. including fractions and constants.
  1571.  
  1572. Graphmatica will calculate the value of the dependent variable(s) at
  1573. this point and display the result. For function families that use the
  1574. parameter 'a', only the starting value of 'a' will be used, since only
  1575. one result can be displayed. (Note that if an error occurs when
  1576. evaluating at the point, a message will be displayed on the bottom line
  1577. regardless of the state of the Warning Messages option.) Press any key
  1578. to type in another point to evaluate. When you want to stop evaluating
  1579. points, press ESC to return to the menu.
  1580.  
  1581.                          THE COORDINATE CURSOR
  1582.  
  1583. If the point you're interested in is on-screen, you can use the
  1584. coordinate cursor to estimate its coordinates. Simply select the Cursor
  1585. item in the Point menu and use the arrow keys or mouse to maneuver the
  1586. crosshairs over the point in question. The coordinates of that point
  1587. are displayed at the bottom of the screen. Then press ESC to return to
  1588. the menu.
  1589.  
  1590. If you have a mouse, the crosshairs will appear at the current position
  1591. of the mouse pointer and will respond to both the mouse and the
  1592. keyboard. To exit the coordinate cursor, click either mouse button.
  1593.  
  1594. When you use the keyboard to position the pointer, you will notice that
  1595. it moves about 20 pixels with each keypress. (This makes it possible to
  1596. move rapidly from one side of the screen to the other.) To move the
  1597. crosshair one pixel at a time, hold down the Ctrl key while pressing
  1598. the appropriate arrow key (it is necessary to press Ctrl first).
  1599.  
  1600. Remember that the values reported by the coordinate cursor are limited
  1601. by the resolution of your screen. At the default grid size, values may
  1602. be off by 0.01 or more. For best results, you may want to zoom in on
  1603. the section of the graph you are interested in before examining
  1604. specific points with the cursor. (Of course, you can also use the
  1605. Evaluate command to get precise numeric results at any time.)
  1606.  
  1607.  
  1608. Appendix                        ========================================
  1609.  AAAA                           | Graphmatica's Command Line Arguments |
  1610. A    A                          ========================================
  1611. AAAAAA
  1612. A    A
  1613. A    Ao                                                               30
  1614. ------------------------------------------------------------------------
  1615.  
  1616. With the introduction of the GRAPHMAT.INI file, which will not only
  1617. save your preferred options automatically from inside Graphmatica but
  1618. will also reset them automatically the next time you run the program,
  1619. most of the command line arguments that GraphIt! version 2.80 supported
  1620. were removed in version 3.0. [Although you shouldn't need to edit the
  1621. setup file yourself at all, its format is described in Appendix B.]
  1622.  
  1623. Arguments are NOT case sensitive (upper-case and lower-case letters
  1624. are treated exactly the same). Arguments must be separated by one or
  1625. more spaces on the command line. Excluding filenames, the other
  1626. argument must begin with the standard MS-DOS "switch" character ("/").
  1627. UNIX-style switches (starting with "-") are NOT supported.
  1628.  
  1629.  
  1630. /G:xxxxxx        Graph Equation
  1631. -------------------------------
  1632.     If you want to start up Graphmatica by automatically graphing one or
  1633.     more equations, use the /G: option. The only limits on the number
  1634.     of equations you can include on the command line are the capacity
  1635.     of the redraw queue (25 equations) and, of course, the maximum
  1636.     length of the command line (I think it's around 128 characters).
  1637.     The equation(s) will be parsed and graphed in exactly the same way
  1638.     as the regular prompted input, with one exception: if you want to
  1639.     include any spaces in the equation, you must enclose the whole
  1640.     "/G:xxxx" string in quotation marks or the spaces will be
  1641.     interpreted as delimiters between arguments.  As the Graphmatica
  1642.     editor is far superior to the DOS command line editor, this option
  1643.     has limited usefulness, but it is a good interface for execution
  1644.     from a batch file.
  1645.  
  1646. /V       Use VESA 800x600 mode
  1647. ------------------------------
  1648.     Because the signals that high-resolution video cards produce may
  1649.     physically damage monitors that are not capable of displaying them,
  1650.     Graphmatica does not attempt to detect super-VGA cards. If you know
  1651.     your monitor is capable of supporting this mode and you have a VESA-
  1652.     compatible video card (or a TSR VESA driver), you can select 800x600
  1653.     resolution with this switch. kSoft ASSUMES NO LIABILITY FOR ANY
  1654.     DAMAGE CAUSED BY IMPROPER USE OF THIS SETTING. If your card is not
  1655.     compatible with this mode, Graphmatica will select standard VGA.
  1656.     The Microsoft mouse driver, version 8.20, does not fully support
  1657.     these modes. (The mouse cursor does not display.) A newer version of
  1658.     this or another mouse driver may.
  1659.  
  1660. filename[.ext]
  1661. --------------
  1662.     Specifying the name of a valid equation list file (with or without
  1663.     the ".GR" extension) loads that file upon startup. Unless
  1664.     AUTOREDRAW=OFF is specified in the [options] section of the file
  1665.     loaded (assuming it has one), the graphs are drawn as soon as the
  1666.     opening screen is gone. If you load a file in this manner,
  1667.     GRAPHMAT.INI is NOT loaded.
  1668.  
  1669.  
  1670.  
  1671. Appendix                   ===========================================
  1672. BBBB                       | Editing Equation Lists and GRAPHMAT.INI |
  1673. B   B                      ===========================================
  1674. BBBB
  1675. B   B
  1676. BBBB o                                                              31
  1677. ----------------------------------------------------------------------
  1678.  
  1679. Graphmatica does not really provide facilities for maintaining equation
  1680. lists; although you can edit an equation and change the order of
  1681. equations by redrawing selected graphs, determining the precise order of
  1682. equations in the list is difficult since they are dynamically shuffled
  1683. each time an equation is entered or redrawn to make Graphmatica more
  1684. interactive. However, the equation list is just a text file whose
  1685. structure is virtually identical to the win.ini file, you can create or
  1686. modify one with virtually any editor. The structure goes like this:
  1687. (sections in parentheses are explanations; don't type them in.)
  1688.  
  1689.   [saved-setup]   (if present, resets all options to defaults before
  1690.                   load to ensure the saved setup is restored correctly)
  1691.   [labels]
  1692.   title = xxxx    (any character string, up to 76 chars.)
  1693.   left = xxxx
  1694.   right = xxxx
  1695.  
  1696.   [grid]
  1697.   left = #.##            (left side of grid)     (any decimal number)
  1698.   right = #.##           (right  "  "  ")        (or "auto" to autoscale)
  1699.   top = #.##             (top of grid)
  1700.   bottom = #.##          (bottom of grid)
  1701.  
  1702.   [options]
  1703.   paper = polar, trig, or rect  (controls graph paper type)
  1704.   detail = none, axes, dots, or grid  (controls paper detail level)
  1705.   autoredraw = on or off  (controls AutoRedraw)          ("on" or "off")
  1706.   autonum = ##            (number of equations to A.R.)  (any integer 0-25)
  1707.  _legends = on or off    _(controls axis legends (numbers))
  1708. | hogcpu = on or off      |
  1709. | color = 1,2, or mono    |   valid under Graphmatica for Windows ONLY
  1710. | autosquare = on or off  |  Graphmatica for DOS ignores these 4 settings
  1711. |_labels = on or off     _|
  1712.   tables = on or off      (controls print tables feature)
  1713.   warnings = on or off    (controls warning error messages)
  1714.   defscale = #.##         (default for "Scale" prompt - any decimal number)
  1715.   fineness = #.##         (default fineness value)
  1716.   tstart = #.##           (default start of theta's domain)
  1717.   tstop = #.##            (default end of theta's domain)
  1718.  
  1719.   [equations]
  1720.   (up to 25 equations, each up to 128 characters, each on a separate line)
  1721.  
  1722. The [labels] section specifies the title and y-axis labels. The [grid]
  1723. section gives the left, right, top and bottom coordinates of the grid.
  1724. Type "auto" for any one to auto-scale that coordinate based on the other
  1725. three. Type auto for both the top and bottom to auto-scale the y-axis so
  1726. the top and bottom coordinates are equal and opposite.
  1727.  
  1728.  
  1729.  
  1730. B. Editing equation lists and GRAPHMAT.INI                            32
  1731. ------------------------------------------------------------------------
  1732.  
  1733. You can omit any item or even a complete section if you don't want to
  1734. change the default. Type exactly as specified above, including the
  1735. brackets "[ ]" around the section headings, but replacing the values on
  1736. the right side of the equals signs with your own values. If you don't
  1737. know or don't care what the value is for an option, just leave the line
  1738. out. Don't worry about capitalization, extra spaces, or even extra blank
  1739. lines. (However, each entry must be on a separate line or some may be
  1740. ignored.) You can put the options and sections in any order ... the only
  1741. requirement is that the [equations] section must come last, if there is
  1742. one. Invalid options are also ignored.
  1743.  
  1744. If you want to create a file with no titles or options, simply type the
  1745. "[equations]" header and then type all of your equations. Each equation
  1746. must be on a separate line. There is one catch, however: since
  1747. Graphmatica graphs the most recently entered equation first when it
  1748. redraws, when the list is loaded and graphed, the equation listed LAST
  1749. will be graphed FIRST. (It is certainly possible to correct this
  1750. situation by graphing the equations as they come in, but then every
  1751. subsequent "redraw all" command would draw the list backwards anyway.)
  1752. If you load an equation list and immediately save it without changing
  1753. anything, the net effect will be that the order of the equations in the
  1754. file is reversed.
  1755.  
  1756. The GRAPHMAT.INI file, which is loaded whenever you run Graphmatica
  1757. without specifying an equation list to load, uses the exact same
  1758. format... when you choose the Save Setup command, Graphmatica simply
  1759. saves the setup file as it would an equation list, except the [labels]
  1760. and [equations] sections are omitted, since you probably don't want to
  1761. have the same graph title and equations load up automatically forever
  1762. and ever.
  1763.  
  1764.                       CONVERTING OLD EQUATION LISTS
  1765.  
  1766. Anybody who upgraded from GraphIt! for DOS version 2.80 who wants to
  1767. convert equation list files from the original format to one compatible
  1768. with Graphmatica for DOS 3.2, please contact me and I will explain the
  1769. process.
  1770.  
  1771.  
  1772.  
  1773. Appendix                          ====================================
  1774.  CCCC                             | Upgrade Notes: Changes from 3.10 |
  1775. C                                 ====================================
  1776. C
  1777. C
  1778.  CCCC o                                                             33
  1779. ----------------------------------------------------------------------
  1780.  
  1781. Although for the most part, old users should have no problem adapting to
  1782. this release, it does contain significant changes in the interface, so I
  1783. strongly suggest reading Part I of this manual to familiarize yourself
  1784. with the new interface. This new release also include a number of new
  1785. features that make it more powerful and flexible than any previous one.
  1786. Please take a minute to acquaint yourself with them:
  1787.  
  1788.  1. Up to 25-30% speed increase in graphing (compliments of Microsoft)
  1789.     due to this version's use of the C 7.0 optimizing compiler.
  1790.  2. Interface changes: the menu routines and structure have been
  1791.     modified to make the user interface much more like that of the
  1792.     Windows version of the program. The menu pops up with the Alt key as
  1793.     well as Escape, and keyboard mnemonics are provided. The equation
  1794.     queue can be accessed at any time via a combobox at the top of the
  1795.     screen. New multiple-choice dialog boxes allow fast one-key or one-
  1796.     click responses.
  1797.  3. Inequalities: By replacing the '=' with '<' or '>' you can graph
  1798.     most simple Cartesian equations as inequalities. See Section II for
  1799.     details.
  1800.  4. New variables and "function family" graphing capability. The free
  1801.     variables 'a', 'b', and 'c' have been added for you to use as you
  1802.     wish. 'a' can also be set to iterate through several values to graph
  1803.     a family of functions differing only by one parameter using a new
  1804.     feature described in Section II.
  1805.  5. New minimalist graph paper. Graphmatica now has four levels of
  1806.     detail available for graph paper: none at all, axes only, axes and
  1807.     reference dots, and the original grid-lines.
  1808.  6. Domains are now processed by the main equation parser, allowing
  1809.     fractions, constants and transcendental functions (e.g. "5/2pi" and
  1810.     "ln 2") to be used in any domain specification.
  1811.  7. Annotations. Graphmatica now lets you type in and place up to 10
  1812.     short annotations anywhere on the graph to label important regions
  1813.     or points. See Section VI for details.
  1814.  8. New differential equation approximation algorithm. Thanks to a
  1815.     user's tip, I have replaced the Cauchy-Euler method routine used in
  1816.     previous versions with the much-more-accurate Runge-Kutta method.
  1817.     Also, you can set the initial value point using the mouse.
  1818.  9. Several fixes have been made to the parser in the areas of 1/x trig
  1819.     functions, parentheses handling, and non-function curve graphing.
  1820. 10. Five new error tests have been added to the parser and the messages
  1821.     have been revised to make diagnosing problems with equations easier.
  1822. 11. Added support for VESA 800x600 SVGA mode. Although the MS mouse
  1823.     driver (version 8.20) does not support this mode, the most recent
  1824.     release might.
  1825. 12. If desired, graphs can now be drawn by points instead of lines at
  1826.     your option. Also, graphs containing the greatest integer function
  1827.     are by default drawn by lines and correctly include discontinuities.
  1828. 13. The length of the equation editor has been increased to a maximum of
  1829.     200 characters in an equation, to support complex expressions.
  1830.  
  1831. I hope you find these new features beneficial. If you'd like to support
  1832. future versions with your comments and suggestions, see Appendix D or
  1833. the included REGISTER.TXT for the mail-in survey form.
  1834.  
  1835.  
  1836.  
  1837. Appendix                                    ==========================
  1838. DDDDD                                       | Shareware / Order Form |
  1839. D    D                                      ==========================
  1840. D     D
  1841. D    D
  1842. DDDDD  o                                                            34
  1843. ----------------------------------------------------------------------
  1844.  
  1845. Shareware: Feel free to distribute copies of Graphmatica to your friends
  1846. and upload to BBS's where others can donwload it AS LONG AS 1) you
  1847. charge no fees for its use or distribution and 2) you do not modify the
  1848. program or documentation files in any way.
  1849.  
  1850. [Shareware catalogs have permission to distribute this product for no
  1851. more than $5 a copy. However, please contact me to make sure you have
  1852. the latest version before you do so.]
  1853.  
  1854. This program is to be taken AS IS with no warranties, express or implied.
  1855. Although I know of no serious bugs, kSoft will not be held liable for any
  1856. damage caused by use or misuse of the program. However, if you tell me
  1857. about any bugs you may find, I will try to correct them in the next
  1858. release.
  1859.  
  1860. If, after using Graphmatica, you find that it is easy, helpful, and
  1861. convenient to use, please support the release of future versions by
  1862. filling out the registration form on the next page and sending your
  1863. contribution (payable to Keith Hertzer) to the address below:
  1864.  
  1865.                               kSoft, Inc.
  1866.                           345 Montecillo Dr.
  1867.                       Walnut Creek, CA 94595-2613
  1868.  
  1869. If you send $20 or more, you will be registered to receive a diskette
  1870. with the next versions of Graphmatica for DOS and Windows when they
  1871. become available. For releases after that, you will be informed that a
  1872. new version is available and how you can get it. Orders outside of North
  1873. America: please add $5 for shipping if you want to receive your upgrade
  1874. via air mail.
  1875.  
  1876. Even if you cannot send any money, please help me out by filling out the
  1877. response form below, especially if you have any suggestions about what I
  1878. should add to the next upgrade.
  1879.  
  1880. Graphmatica is also supported via CompuServe. If you are a member, look
  1881. for new versions in the Math and Science forum ("GO SCIENCE") and feel
  1882. free to send me feedback at any time at User ID 70711,2071. You may also
  1883. register Graphmatica via CompuServe's Shareware registration database.
  1884. The ID number is 111. Type GO SWREG to start the transaction. The $20 fee
  1885. will be added to your monthly bill.
  1886.  
  1887. WHAT'S NEXT? I intend to start immediately after this release on
  1888. Graphmatica 3D, which may or may not have a DOS version. If you still
  1889. don't have Windows, and want to use this program, please let me know. If
  1890. there is sufficient user support I will release DOS as well as Windows
  1891. versions.
  1892.  
  1893. If you would like a copy of the source code for Graphmatica for DOS
  1894. (developed using QuickC version 2.5 and compiled with Microsoft C 7.0),
  1895. please send me a check for $20 and a short note telling why you would
  1896. like it.
  1897.  
  1898.  
  1899. --G3.2l--------------------kSoft REGISTRATION FORM---------------------7/93--
  1900. Name &
  1901. Company _____________________________________________________________________
  1902.  
  1903.  
  1904. Address _____________________________________________________________________
  1905.  
  1906.  
  1907. City ________________________________    State _______    ZIP _______________
  1908.   _
  1909.  |_|  Enclosed is my $20 or more contribution. Please register me to
  1910.       receive the next upgrade to Graphmatica for DOS.
  1911.   _
  1912.  |_|  Enclosed is my $20 or more contribution. I want Graphmatica for Windows
  1913.       NOW! Please use my upgrade credit to send me the current version.
  1914.   _
  1915.  |_|  Please send me the source code [for QuickC 2.5] to Graphmatica for DOS
  1916.       3.2. I have enclosed a note on why I'd like it and a check for $20.
  1917.  
  1918.                FOREIGN ORDERS PLEASE ADD $5.00 FOR SHIPPING
  1919. ------------------(make checks payable to KEITH HERTZER)---------------------
  1920.  
  1921. What size diskettes do you use?        5 1/4"           3 1/2"
  1922.  
  1923. Where did you get Graphmatica?  (name of BBS or catalog: ________________)
  1924.  
  1925. From a friend      Local BBS       CompuServe      Shareware Catalog
  1926.  
  1927. What processor are you using to run Graphmatica ?  (circle one)
  1928.  
  1929. 8088/8086      286        386sx      386      486       Other (___________)
  1930.  
  1931. What DOS version do you usually run with Graphmatica?   _________
  1932.  
  1933. If you use a printer with Graphmatica, what type is it?
  1934.  
  1935.      dot-matrix        ink jet        laser       Other (___________)
  1936.  
  1937. What type of video card do you have?      Mono          CGA
  1938.  
  1939.      EGA             VGA           SVGA           Other (___________)
  1940.  
  1941. What features do you like best about Graphmatica?
  1942.  
  1943. _____________________________________________________________________________
  1944.  
  1945. _____________________________________________________________________________
  1946.  
  1947. What problems have you experienced with Graphmatica?
  1948.  
  1949. _____________________________________________________________________________
  1950.  
  1951. _____________________________________________________________________________
  1952.  
  1953. Any other comments or suggestions for improvement in the next upgrade?
  1954. (Your comments are vital so I will know what to change or add. Please
  1955. feel free to use the back or another sheet of paper.)
  1956.  
  1957. _____________________________________________________________________________
  1958.  
  1959. _____________________________________________________________________________
  1960. Please send to: kSoft, Inc., 345 Montecillo Dr., Walnut Creek, CA 94595-2613.
  1961.  
  1962.