Program: 3D graphing calculator with symbollic differentiation
and simplification
author: Harleigh Chris Marsh
------------------------
description:
this program, takes in an expression and a differentation variable from the user, and then symbollically differentiates the expression, and, if the user chooses so, the program symbollically simplifies the differentated expression. Once the expression has been entered into the program, the user
can graph the expression, graph the derivative, and can graph both the expression and its derivative at the same time. The program places a different twist on how an expression is explored, the program implaments the standard change of x y and z axis to fit the function in the viewable window, but, the twist comes from the functionality of the program's 'camera' mode. In camera mode, the user explors the graphed expression, as if they were, themselves, inside the program, the camera functions as a standard 'first person shooter' camera, the user can move left, right, forawrd and backward, as well as levitate up, and dowm, and the 'looking' of the camera changes based on the movement of the mouse--ie: move the mouse to the left, and the camera 'looks' to the left, as if it was a person's head the user was controlling, and they are looking out of their eyes.
list of the main functionality of the program:
symbollic differentation of a general expression of n variables
symbollic simplification of a general expression of n variables
variables may be up to 30 characters long
2D graphing
3D graphing
graph a function
graph the derivative of a function
graph a function, and its derivative at the same time
change the drawing style and color of the function and its derivative
change the viewing window, the x, y, and z axis
change the level of detail for graphs (by changing the steping amount)
camera mode:
the user can explore the plotted function--either the function, its
dericative, or both the function and its derivative--as if they were
inside the program; the camera functions like a standard 'first
person shooter' camera
main benifits using this program:
the user is able to visually see a function and its derivative, this is
especially usefull for three dimentional functions
using the camera mode--see above for description of camera mode--the
user is able to explore the function--and its derivative--as if they
were inside the program, thus a very easy way to examine the graphed
function and its derivative; this way of exploring a functionis a
different twist to current mathematical graphing software
samples:
2D graphing of an expression, and its derivative:
graph of x3 and its derivative, 3*x2
x3 is displaied as black dots, and 3*x2 is depicted as a red line
3D plot:
graph: x3y
3D plot of the derivative of x3y
graph of the
derivative of x3y with respect to x
interesting 3D equation plot and its derivative:
graph of (x3y2)/(x+y)
graph of the
derivative of (x3y2)/(x+y) with respect to x
symbolic simplification and differentation:
top expression: x*y3 differentiated with respect to y
and the simplified derivative
bottom expression: x*y3 differentiated with respect to y
and the unsimplified derivative
user's guide:
display a function and/or its derivative in the
view window:
note: to graph, use only lower case x and
y as the variables for the function
if a function has already been enteren into the graphing
calculator
then press the 'Clear' button once in the 'Equation' panel
1) enter the function into the graphing calculator
2) press 'graph f' button to graph f
press 'graph f'' button to graph f'
press 'graph f and graph f'' button to graph f and f'
optional 3) print the function and its derivative on the
console
optional 4) change the draw style and color of the function
and its derivative
optional 5) change the view window or the stepping amount
in x or y
6) to enter another function, clear the view window
and equation
to enter a function into the graphing calculator
1) type the function in the 'function' text field within
the 'Equation' panel
<function>;<derivative variable>
function => the function to be graphed and/or
differentiated
can contain n variables, each variable
can be up to 30 characters long
; => symbol that denotes the end of the
function
derivative variable => the variable which the
function is differentiated
by
derivative variable can be
up to 30 characters long
examples of legal expressions:
1/x; x
(7 + x*y)/(x+y); y
(apple#bananna - peach)/canalope; canalope
(a*b/c + 5)/7 + (x*y); z
2) press the 'Enter' button once
to print an equation and its derivative to the console:
1) enter the equation into the graphing calculator
2) press the 'Print' button in the 'Equations' panel
to change the draw style and color of the
function and its derivative:
to change the draw style of f:
in the f panel, select a style in the 'draw style'
combo box
to change the color of f:
in the f panel, select a color in the 'color'
combo box
to change the draw style of f':
in the f' panel, select a style in the 'draw style'
combo box
to change the color of f':
in the f' panel, select a color in the 'color'
combo box
change the view window or the stepping amount in x or y
1) change the x y and z axes as desired
2) press the 'Sync' button in the View panel once
to clear the view window and equation:
1) press the 'Clear' button in the 'Equation' menu once
field descriptions:
Equation panel:
this panel contains the functionality that is used to enter an equation into the 3D graphing calculator so it can be differentiated and, if the user chooses to do so, graphed in the viewing window
'function': enter the function to be graphed or symbollicaly
differentiated
'enter': enters the equation into the graphing calculator
'print': prints the equation, and the derivative of the
equation, to the console
Note: if 'Simplify Equations' in the 'Options panel'
is checked, the derivative is symbollicaly
simplified before it is displaied on the
console--see 'Options panel' below
'clear' clears the equation entered in the graphing calculator,
clears the viewing window of any graphed functions
Graph panel:
this panel contains the functionality to graph and display
f and f' on the viewing window, as well as to change the
display properties of the graph of f and of f'--ie: color,
draw style of the function,...
f panel
'draw style' draw style for function f
points draw f as points
dashes draw f as dashes
line strip draw f as a single line strip
'color' color style for function f
f' panel
'draw style' draw style for function f'
points draw f' as points
dashes draw f' as dashes
line strip draw f' as a single line strip
'color' color style for function f'
'graph f' graph function f in the viewing window
'graph f' ' graph function f' in the viewing window
'graph f and graph f' '
graph both function f and f' in the viewing
window
View panel:
this pannel contains the functionality to change the viewing
window for the graphed functions
X min minimun x value
X max maximum x value
X step x distance between sampling points
Y min minimun y value
Y max maximum y value
Y step y distance between sampling points
Z min minimum z value
Z max maximum z value
'Reset' reset the view window to the original dimentions
'Sync' redraw the graph based upon the current view window
dimentions and stepping amounts
Camera panel:
this pannel displays information on the camera mode functionality
of the program
c: press the 'c' key on the keyboard to toggle the camera mode
on and off--see 'State' below
u: when the camera mode is off--when 'State' displaies 'off',
see below--press the 'u' key on the keyboard to reset the
default position of the camera
'State': displaies whether the camera mode is on or off
'on' => camera mode is on
'off' => camera mode is off
Options panel:
this pannel contains various options of the program
'Draw Axes' on (check mark visible) => draw the axes
off(no check mark) => do not draw axes
'Simplify Equations'
on (check mark visible) => run the simplification
algorithm on the
derivative of the
equation
off(no check mark) => do not simplify the derivative
of the equation