Graphmatica Beta Test

The beta-test program is now over. Thanks again to all who participated. Version 2.0 is now available for 32-bit Windows platforms only. I have stopped working on the DOS and Windows 3.1 versions entirely now; if this matters to you, please speak up ASAP!

The new version is backward compatible with old graphmat.ini and .gr files, but the .gr files it saves may produce some errors when loaded in version 1.60e without modification. If you need to continue using the old version as well as the new version, I recommend installing to a separate directory and then copying your old graphmat.ini file there.

Download Windows 3.1 beta version

Please note that this version is not fully tested and may not be suitable for classroom instruction. If you find any bugs or usability problems with the new features, please send a quick e-mail describing the problem to

What's new in version 2.0: (2/18/03)

  1. Fixed bug which caused incomplete graphs in equations that had exponents with free variables (a, b, c) in them.
  2. Program now starts up with the window maximized if you last exited in that state.
  3. Grid control now uses system color selections for text and highlighting.
  4. Fixed some bugs in the point tables output for ODEs and implicit functions.
  5. Increasing the value for "AutoRedraw On--Draw Last ___ equations" in the Global Settings dialog box now also increases the maximum number of equations kept before adding a new one deletes the oldest in the queue.

What's new in version 1.76: (2/14/03)

  1. Point tables window are now kept more in sync with graphs on screen. Also added Refresh item to popup menu to clear and recalc all graphs on screen.
  2. Fixed problem with point tables toolbar button not staying "pressed in" after drawing a graph.
  3. All messages extracted into the string table to make translation easier.
  4. Draw Tangent Line dialog box now looks at both y and x values when you enter coordinates manually and solves for the one you didn't change, rather than always looking at x and solving for y.

What's new in version 1.75: (2/11/03)

  1. Added toolbar buttons for toggling Point tables and Data Plot editor windows.
  2. Printing improvements: gridline and axis thickness scaled up for higher- resolution printers, data plot legend printed as well.
  3. Added fine-tuning parameters for automatic legends and grid spacing, as well as manual control over grid spacing.
  4. Added Make Default option for Graph Paper settings.

What's new in version 1.74: (2/06/03)

  1. Multiple data plots are now supported in the same graph document.
  2. Data plot symbols and colors are now user-customizable.
  3. Support for additional curve-fitting algortihms (sinusoidal, exponential, and logistic) has been added.
  4. Added Ctrl+Tab support to switch between sub-windows.
  5. Fixed (hopefully) a crash caused by scrolling the point tables window horizontally.

What's new in version 1.73: (1/29/03)

  1. Improved user-defined functions feature to support a Function Library saved in the graphmat.ini file. These functions are made available in every new graph document.
  2. Fixed a bug where the window position was saved incorrectly if the program was closed from the taskbar while the window was minimized.
  3. First draft of updated help file included.
  4. Packaged as a real release including setup and demo files.

What's new in version 1.72: (1/24/03)

  1. Added support for Bode plots (x-axis only logarithmic graph paper).
  2. Added AutoRange feature to reset the range to ensure all Cartesian functions are displayed on-screen.
  3. Improved speed of curve-fitting algorithm and increased maximum number of iterations allowed.

What's new in version 1.71: (1/20/03)

  1. Added support for user defined functions. Use the Functions dialog box (Tools/Functions menu item) to define as many single-variable helper functions as you want. You can define functions in terms of the variable x or t, and name them arbitrarily (although you cannot override built-in variables or function names).
  2. Added warning message when curve fitting algorithm does not converge within max. iterations.
  3. Made all numerical functions respect decimal place setting from Point tables options when displaying output.
  4. Fixed some bugs with restoring the number of columns in point tables and showing the data plot editor when loading a document that requested it.
I'm interested in hearing your thoughts on the new Functions feature. Should you be able to save/load functions that are available in all graph documents in graphmat.ini? Can you find a case where the program behaves differently when you graph the same equation spelling everything out versus breaking it up into one or more functions?

What's new in version 1.70: (1/16/03)

  1. Added Paste Data Plot menu item to create a data plot by pasting a tab-delimited table (e.g. from Excel) of x and y values.
  2. Added "Show horizontal scrollbar" option to Point tables options dialog. Also increased number of columns allowed from 4 to 9.
  3. Added control over number of decimal places used in Point tables to options dialog and fixed a problem where numbers in scientific notation were getting formatted with fewer decimal places than requested.
  4. Fixed a problem that might have caused the program to crash or hang when turning off Point tables or the Data Plot editor, or switching between them.
  5. Made the Edit/Copy Graphs EMF function recalculate the graphs at maximum possible screen resolution. This should improve the quality of graphs copied and printed from Word.
  6. Added more visible point icons for data plots (and made them print properly as well).

What's new in version 1.69a: (1/15/03)

  1. Optimized new grid control; drawing multiple graphs with point tables on should be much faster.
  2. Added right-click context menus and double-click support for graph title/labels, axis labels, and point tables.
  3. Rudimentary data-plotting added. For the moment, you can only do one data plot per graph document, and you must choose between viewing the normal Point Tables and the Data Plot editor. Use View/Data Plot Editor to access it.
  4. Also added curve-fitting using polynomials (up to 9th order) using the Levenberg-Marquardt algorithm.
This is only the beginning for the data-plotting feature--the current UI is just a simple mockup to spur discussion of what you really want to see. If you are interested in data-plotting and curve-fitting, please let me know which of the following (or any other issues you can think of) are most important to you:

What's new in version 1.68: (1/9/03)

  1. Added an edit field to set the wide lines width in the Settings panel.
  2. Increased maximum width of axis labels from 7 to 25 characters.
  3. When saving and loading a .gr file, equations are now restored with the same color they originally had. Also, they are restored in the same order as they appeared in the queue at save time, rather than backwards.
  4. Added "color-code" checkbox to print dialog box. This will print equations in the same color as their corresponding graphs when checked.
  5. Swapped out yellow for "dark yellow" in the white color scheme, since yellow was virtually invisible when printed.
  6. Fixed an annoying bug which sometimes caused the selection to be cleared or displayed inappropriately when you switched windows after selecting a portion of the grid to zoom in on.

What's new in version 1.67: (1/7/03)

  1. The Point Tables window now uses a grid control based on "BabyGrid" by David Hillard rather than a standard listbox. This makes for much neater display of data (right-aligned numbers, resizable columns, etc.) and will be the data entry mechanism for new plotting features.
  2. Last directory used in File Open/Save dialog boxes is now remembered.

What's new in version 1.66: (1/1/03)

  1. The Point Tables window can now be resized and has a system close menu.
  2. Added panel to choose Draw Tangent Line input method (mouse/dialog/both) and enable or disable Tangent Line mode "stickiness".
  3. Simplified UI: Consolidated most options screens into 2 tabbed dialog boxes, and revamped menus to remove commands that were no longer needed, plus some rarely-used items that can be accessed through the Settings dialog box.
  4. Converted to implicit-save model for default settings (but you now must explicitly set the defaults for grid range and graph paper).
  5. Coordinate cursor is now always on except when it would interfere with display of important info (selected range, tangent line/integral info) in the status bar. However, you must still use the coordinate cursor button/menu item to gain keyboard control over the crosshairs.
  6. Improved Windows shell integration: files are added to the Documents menu when opened, and the program opens files dragged from Explorer.
I am very interested to hear what you think of the new menu layout and tabbed dialog boxes. My goal in the redesign was to simplify the menus by eliminating options that are no longer relevant (many of the redraw features, since most PCs are fast enough these days to always redraw all equations without any noticeable pause) and moving settings that you don't normally need to change into additional tabs in two dialog boxes rather than giving them their own menu item. Do you agree that, as a result, the things you use most frequently are now easier to find? Did something get harder to find or understand instead?

What's new in version 1.65: (5/3/01)

  1. The equation of tangent lines is now displayed in the Printout window along with the point and slope.
  2. Added Draw Tangent Line dialog box which, like the Integrate Curve dialog box, allows you to type in values rather than selecting an equation and tangent point with the mouse.

What's new in version 1.64:

  1. Added 2 integration methods: left-hand sums and right-hand sums.
  2. Improved right-click context menus to NOT come up after using right-click- drag coordinate cursor.
  3. Fixed bug with specifying the domain as {y:...} for functions of y.
  4. Added support for graphing highest-order derviative in custom ODE mode (e.g. {vars:t,dx} graphs t vs. dx/dt for a first-order ODE).
  5. Added two options to graphmat.ini to improve accessibility for visually- impaired users:

What's new in version 1.63 (1/2/00):

  1. Added context-sensitive popup menus when you right-click on the grid: Tell me what you think about these menu options--are they ordered in a way that makes it fast and easy to find the one you want? Did I leave out the one that would be most useful to you? Are there other modes I missed where a different context menu would be more appropriate?
  2. Fixed several recently-reported bugs: problems with domain for "a" when decimal separator is set to ",", flow fields not drawn correctly when aspect ratio is not square, Redraw/Last Graph menu item crashes program when no graphs have been entered.
  3. Added rand(n) function which generates a random number between 0 and n.

What's new in version 1.62 (11/20/99):

  1. New, improved Point Evaluate dialog box allows you to: Tell me what you think of the new dialog layout. Also let me know if you have any trouble finding solutions for some equations.
  2. Moved Find Intersection to the Point menu
  3. Added support for printing integral and tangent line information.
  4. Made Draw Tangent a "mode" rather than a one-time operation. The program stays in Draw Tangent mode as long as you keep clicking on curves.
    Please send me your comments on whether this improves the usability of the tangent line feature for you.
  5. Fixed a bug which prevented loading the newly-supported relations when an auto-scaled grid range was saved in the .gr file.

What's new in version 1.61:

  1. Added support for decimal separators other than "." based on your Windows control panel settings. If your settings indicate you prefer a different decimal separator (say ",") then all constant values input and output by the program will use this separator. (Note that if you are using "," as your separator, to enter domains with non-integer values you must leave a space after the comma separating the parts of the domain, e.g. "{2, 2,3}".)

  2. Added a Find Intersection feature to the Calculus menu. This brings up a dialog box which allows you to select two equations (they must be Cartesian functions or simple relations in the same variable) and display either all points of intersection on the screen or the intersection closest to a guess that you type in.
    I may try to add some support for approximating the solutions to other types of equations that Newton's method doesn't work on, but I think this basically works for most Cartesian functions. I still want your feedback on the usability of the feature:

  3. Fixed a bug with the graph "y=int x" which prevented the graphing loop from terminating.

  4. Initial support for graphing relations with multiple instances of both x and y variables. This is done by performing implicit differentiation with respect to both variables and plotting the resulting ODE. The algorithm attempts to find two initial values to deal with closed curves such as ellipses (e.g. x^2-xy+y^2=10) since the approximation fails when the slope goes vertical, but this may not always work. Also, certain features available for simple relations and functions (e.g. inequalities, calculus features, and the new Find Intersection feature) do not work yet (and may not ever work) for these relations.
    Note that I have only tested this feature on a small class of relations-- I cannot guarantee complete or accurate results for other equations. Please try it on equations that are of interest to you and send me your results:

Back to kSoft homepage...

kSoft, Inc. Last updated: Fri 14 Feb 2003