Graph and interact with your Math formulas!

Math Graphing is a powerful & unique 1D graphing calculator to graph mathematical expressions of arbitrary complexity. Math Graphing can help students improve their math skills by developing some visual intuition of mathematical expressions or advanced users who need some scientific capabilities only available with desktop software like Matlab or Mathematica. For the iPad version: check out "Math Graphing XL" here.

Math Graphing provides the following functionalities:

• Multiple expressions with quasi-unlimited number of variables can be combined to produce simple or complex formulas,
• Interactive sliders can be created to visually investigate the role of important parameters on the graphical representation of the formulas.
• Trace mode to display coordinates and derivative of marker on selected curve,
• Solver tool to solve y = f(x) where x or y are unknown, local/global minima/maxima/extrema (NEW),
• Formula graphs can be saved to the device's Photos Album, or the formulas be exported through email with embedded graphs,
• A list of favorite formulas can be also stored for later editing or archival purposes,
• Several formulas can be plotted simultaneously in different colors and styles,
• Customizable graph appearance: axes labels, title, curve color and style, ticks number, grid, etc,
• Single-precision calculator (NEW).

SCREENSHOTS

Here are tips to get you started:

• To modify the formula, simply touch its mathematical expression to edit it: both standard and custom keyboards are available to provide maximum flexibility. If a syntax error occurs, the background turns red and back to white once the syntax has been corrected.
• To visualize the modified formula, press the "Update" button. If an error occurred during the expression evaluation, an alert explains the problem and proposes to return to the editing mode. The graph view supports portrait and landscape modes.
• Use standard touch gestures to manipulate the graph: pinch to zoom, drag to move the graph, shake to scale the graphs to the y-axis, pinch below the x-axis or on the left of y-axis to zoom along the x and y axes only,
• Double tap the graph to access the interactive sliders. Tap once to return to the gesture mode.
• Tap and hold to select the closest curve to access the trace mode, and move your finger along the x-axis to shift the marker on the curve and display its coordinates and derivative above the graph.
• Press the "info" button in the main panel to access the Settings and Help sections: Settings allow the customization of the graphing properties and the size of emailed images. The Help section provides a description of all available mathematical operators and functions.
"Math Graphing" offers export and favorites capabilities:
• To export a graph to your Photos Album or email the formula, simply tap on the export tool in the toolbar and select one of the export buttons at the contextual menu. Exported images to the photo album can contain an inset with the formula, and current or favorite formulas can be emailed.
• To manage your formula favorites, press the "Favorites" button: then, to create a new empty formula, press the '+' button; to duplicate a formula, select its name and provide a new name; to replace the "Default" formula with a favorite, press the small preview icon on the left; to remove, rename, or reorder any favorite formula, press the "Edit" button.
• To return to the main panel and visualize any favorite formula, press its blue disclosure button.

Example:

# Gabor function
x = 0:1:100
sigma = 1:50; freq = 0:0.1; phase = 0:180
u = cos(2*pi*(x-50)*freq+phase*pi/180)
v = e^(-((x-50)^2)/(2*sigma^2))
y = u*v
plot(u,'lr')
plot(v,'lg')
plot(y,'lw')

SHORT TUTORIAL ON CREATING FORMULAS

With "Math Graphing", formulas of any complexity can be plotted as function of any variable or parameter. A formula typically consists in expressing the value of a variable y as function of another variable x. For example:

y = f(x)

A formula can also consist of several expressions separated by a semicolon delimiter on the same line or split across several lines. For example, to compute y as function of x through the use of intermediary variables u and v:

u = g(x); v = h(u)
y = f(v)

The formula y = f(x) can be plotted by using the plot command:

plot(x,y)

x being the default continuous variable used to plot any other variable along the x-axis of the graph, the formula can be also plotted by simply entering:

plot(y)

However, it is also possible to specify a variable as a discrete range with starting, step and ending values (variable = starting value : step : ending value). For example, to plot a cosine function as function of the discrete variable t between 0 and 100 by step of 5:

t = 0:5:100
y = cos(2*pi*t/20)
plot(t,y)

To customize the appearance of a plot, add tags between apostrophes. For example, to plot y = f(x) as red empty circle symbols:

plot(t,y,'srec')

The tag may consist of 4 letters: the 1st letter for the curve appearance ('l' for line, 's' for symbols, 'b' for bars), the 2nd letter for the curve color ('w' for white, 'r' for red, 'g' for green, 'b' for blue), the 3rd letter for the symbols or bars appearance ('e' for empty, 'f' for filled), the 4th letter for the symbols shape ('c' for circle, 's' for square).

 In addition of variables, it is also possible to specify parameters that affect how the formula depends on variables. For example:wavelength = 20t = 0:1:100y = cos(2*pi*t/wavelength)plot(t,y,'l')To visualize the effect of such parameters on the plotted formula, the parameter value can be controlled through an interactive slider by specifying a range with starting and ending values (parameter = starting value : ending value). For example, to create a slider that controls the parameter wavelength between 1 and 50, simply use:wavelength = 1:50To visualize the effect of the parameter on the formula, double tap the graph to access the interactive slider, and change its value. The graphical representation of the formula is then automatically updated with the new parameter value when releasing the slider.

RELEASE HISTORY

Version 1.3 (May 5, 2010):
- Addition of a right toolbar to access a single-precision calculator, a solver tool, the interactive sliders and the export functions,
- Report of derivative in trace mode (with marker with tangent arrow),
- Support for independent zooming along the x and y axes (pinch below the x-axis or on the left of y-axis),
- Addition of min(), max(), mean(), sum(), norm() vector functions,
- Fix title position being too close to the graph top,
- Redesign of custom keyboards.

Version 1.2 (Oct 31, 2009):
- Addition of a trace mode (tap and hold to select the closest curve, and move your finger along the x-axis to shift the marker on the curve and display its coordinates above the graph),
- Addition of xlabel, ylabel, and title commands to customize further the graph appearance,
- Fix problem of axes range being reset when e-mailing graph,
- Improvement of small previews appearance in Favorites.

Version 1.1 (Sept 11, 2009):
- Support for in-application email capability under iPhone 3.0,
- Addition of nb ticks settings,
- Addition of optional grid setting,
- Addition for choice of linear or log scale setting,
- Improved legibility for axis labels.

Version 1.0 (July 14, 2009):
- First released version on AppStore.