graphDS v0.8b for Nintendo DS

Programmed by Morgan Robertson





Controls

Touchscreen -- Enter expressions, equations, etc. via the keyboard
D-Pad -- Move cursor
A -- Confirm an entry
B -- Go back
X -- Copy
Y -- Paste


Using graphDS

graphDS is a graphing calculator application designed for the Nintendo DS. The program is capable of evaluating mathematical expressions and built-in functions as well as simultaneously graphing up to four Cartesian,inverse, parametric, or polar functions.

Homescreen -- On the homescreen, you can evaluate expressions, approximate definite integrals, or use a number of built-in functions. After entering an expression, press the "ENT" key or A to evaluate it. Note that you must use proper syntax or you will risk getting an incorrect result. This includes using closing parentheses and multiplication signs (*) where necessary. Currently, trig functions along with addition/subtraction, multiplication/division, and exponents and special built-in functions can be evaluated.

Graphing -- With graphDS, you can graph up to four functions simultaneously. From the homescreen, tap the "GPH" key on the touchscreen. Using the keyboard, enter a function. Press "CLR" to erase a function and use the D-Pad to move the cursor. When you are finished entering functions, press the "ENT" key, then press "GPH" again to graph the functions. To switch graphing modes, press the "Mode" key. To adjust the graphing window, press "WIN". You can then adjust the xMin, xMax, yMin, yMax, and parametric and polar graphing parameters (depending on what graph mode you are in). When finished editing the window information, press "GPH" to return to the function input.

Tracing -- After you have graphed a function, you can trace it to see the numerical relationship between x, y, and t or theta values (if applicable). From the graphscreen, press the "TRC" key on the touchscreen to begin tracing. On the top screen, a red cursor will be displayed. To move the cursor, press the left and right buttons on the D-Pad. On the touchscreen, the values of relevant variables will be displayed. To set a specific value for x, t, or theta (depending on the graph mode), touch the touchscreen with the stylus and input a valid numerical expression. After you press "ENT" or the A button, the cursor will jump to the proper point on the function. You can also access a limited number of catalog functions while inputting a tracing expression by touching the "CLG" key on the touchscreen.

Using built-in functions -- graphDS features a number of built-in functions, which are accessible through the catalog. Please note that currently these functions cannot be nested (used inside of one another). The argument list for these functions follows:
ceiling(value)Get the ceiling of a number (round up)
euler(function,start,stop,step,c)Approximate a definite integral using Euler's Method
floor(value)Get the floor of a number (round down)
mean(value,value...)Get the mean of two or more numbers
median(value,value...)Get the median of two or more numbers
monteCarlo(function,left limit,right limit,maximum,points)Approximate a definite integral using the Monte Carlo method
nDeriv(function,x)Get a numerical approximation of the derivative of function at x
nIntegrate(function,left limit,right limit)Get a numerical approximation of the definite integral of function
rand(lower limit,upper limit)Obtain a random integer from lower limit to upper limit
riemannLeft(function,left limit,right limit,rectangles)Approximate a definite integral using left Riemann sums
riemannMiddle(function,left limit,right limit,rectangles)Approximate a definite integral using middle Riemann sums
riemannRight(function,left limit,right limit,rectangles)Approximate a definite integral using right Riemann sums
simpson(function,left limit,right limit,intervals)Approximate a definite integral using Simpson's rule
sum(expression,variable,start,end)Use sigma-style notation to evaluate the sum of a finite series
trapezoid(function,left limit,right limit,intervals)Approximate a definite integral using the trapezoid rule


Using the CAS -- A new feature in v0.8 of graphDS is a relatively simple computer algebra system (CAS). To use the CAS, simply enter an algebraic expression on the homescreen and graphDS will simplify it. Currently, the CAS is compatible with parentheses, foiling, exponents, and distribution, along with standard operators. It is not compatible with trigonometric, logarithmic, or built-in catalog functions. For now, users should avoid division and algebraic expressions within exponents. It is also imperative to use proper syntax; implied multiplication (i.e. 3X or 3(X+2) ) is not supported. For multiplication, you must use the * operator (i.e. 3*X or 3*(X+2) ).

The table below gives examples of valid and invalid entries for the CAS:
SupportedUnsupported
3*X+4*X3X+4X
3*(X+2)3(X+2)
(3*X^2+4)^3(3*X^2+4)^(4*X)
No trig, log, or catalog functionssin(X)+sin(X), mean(X,7*X,2*X)


Credits

Programmed by Morgan Robertson


Special Thanks To:
-Nick Stone for helping me write class expression
-Mrs. Smirl for the inspiration and for being such a great calculus teacher
-Mollusk and everyone at PAlib for writing a great library and other resources
-Everyone who has offered support in the PAlib forums
-Everyone at devkitPro
-Micheal Ring for his arbitrary precision library, MAPM

Contact Info

You can email me at robertson.md7@gmail.com if you have any questions or comments. You can also visit my website at http://robertson.heliohost.org to download programs for the TI-83/84+ and the Nintendo DS. Do you like my programs? Then why not make a donation? Your donations keep me motivated and will enable me to purchase hardware and software development tools so that I can continue to create useful and entertaining programs for the both the TI-83/84+ and the Nintendo DS. Click on the "Donate" link below to make a donation via credit card or your PayPal account. Thank you for your support!


License

graphDS is the intellectual property of its author, Morgan Robertson, and may not be sold without the explicit permission of the aforementioned. This program is distributed without a warranty; by downloading this file, you agree that I am not responsible for any damage that occurs to your computer, Nintendo DS, storage device, or any other property as a result of using this program. This software is intended to be useful, but is not a finished version and is not guaranteed to be 100% accurate in calculations or to be bug-free.


Update/Release History

v0.8b
Greatly improved the homescreen, adding horizontal and vertical scrolling, copy/paste, etc. Added new graph mode: inverse functions. Added MAPM, an arbitrary precision library for greater accuracy.

v0.8
Made slopefield and Euler's method graphing modes accessible to user. Added a simple CAS. Increased calculation and graphing speed by about 2.5x. Made function nIntegrate faster and more accurate. Added functions: euler, monteCarlo, simpson, trapezoid.

v0.7
Added tracing for Cartesian, parametric, and polar functions (including cursor movement controlled by D-Pad and input for a specific variable value). Increased speed of polar graphing by about 2x. Catalog now continues to scroll when Up or Down is held.

v0.6
Added cursor to homescreen. Added functions: ceiling, floor, median, sum. Added some syntax checking on homescreen. Made some catalog functions available for graphing. Changed the font.

v0.5
Added catalog. Added functions: abs, acs, asn, atn, mean, nDeriv, nIntegrate, rand.

v0.4
Added editor for window & graphing parameters. Added slopefield and Euler's method (currently inaccessible to the user). Fixed bugs in graph input. Changed graphscreen keyboard. Added compatibility with log and ln functions.

v0.3
Added parametric and polar graphing.

v0.2
Added simultaneous graphing of up to four Cartesian functions. Combined function screen with graphscreen. Added cursor to improve function input.

v0.1
Added an easier-to-use keyboard on the touchscreen and graphing for one Cartesian function.

v0.02
Added compatibility with Riemann sums.

v0.01
Initial release. Released in the forums at palib.info on February 25, 2008. Later released at http://robertson.heliohost.org.