SymDiff 1.2
Symbolic differentation for Palm OS 3.0+ with pretty output
Copyright 2002 Norbert Pozar
Register at www.handango.com
User's Manual
SymDiff is program that computes the derivative of a given function and tries to find simpler form. The output function is then displayed in a pretty, easily readable form.
Simplification means that SymDiff tries various procedures to find the most common and the shortest form of expression.
Supported operators and functions:
+, -, *, /, ^ (power), square root (sqrt), cube root (curt)
Absolute value (abs), signum (sign)
Natural logarithm (ln), exponential (exp)
Goniometric (sin, cos, tan, cot), inverse goniometric (asin, acos, atan, acot)
Hyperbolic (sinh, cosh, tanh, coth), inverse hyperbolic (asinh, acosh, atanh, acoth)
Make sure you have removed an old version of SymDiff.
SymDiff consists of one file "SymDiff.prc". This file can be installed using Palm Desktop Installer, just like any other application.
SymDiff is a shareware, you have 7 (seven) days to evaluate it. After that you need to register to continue to use SymDiff. Visit www.handango.com to register and to get a Registration Code. Enter it at the Register form, which is accesible from menu "Options->Register" or from Shareware info screen.
With registration you get also free upgrades.
When you start SymDiff, you will be asked to register. If you have registered yet, you can enter Registration Code in register screen. Otherwise press Continue.
The main screen consists of an Output area, where results are shown, and of an Input area, which consists of an Input Field and buttons.
SymDiff accepts expressions in a standart mathematical infix notation.
Writing expression
For writing use your Graffiti input area or onscreen keyboard.
You can also use buttons at the bottom of the screen for entering common symbols +, -, *, /, ^, (, ).
When you are entering function names, write just one or more characters of the function. After that, a list of four relevant funcions appears just below the Input Field. You can select your function by hitting its name. If you can't find your function, hit the "..." button on the right to show other four functions starting with your characters.
Example
You want to write sin. So write s and "sin" appears as the second from left. Tap it and sin( appears at cursor position in the Input Field
You want to write acosh. So write a, then tap "..." on the right. Another four functions appear. Tap "acosh" and acosh( appears at cursor position in the Input Field.
OR write ac and tap "acosh".
See "Prefereneces"
Variables
SymDiff uses two kinds of variables:
General variables
You don't have to declare it anywhere (x means just x). Just use it. Variables are case-sensitive.
Example
height*width-a*x/y
Symbolic variables
You have to declare them simply using operator =. Symbolic variables are during symbolic evaluation replaced by their declaration. They can be used to store expressions. See "Symbolic variables".
Example
Declare velocity v=a*t. Since now every v in every expression will be replaced by a*t.
Declare kinetic energy E=1/2*m*v^2. You will get 1/2*m*a^2*t^2. Since now every E in every expression will be replaced by 1/2*m*a^2*t^2.
Differentiation
To differentiate the function in the Input Field with respect to x simply press
button on the bottom of the screen. The result appears in the Output area. See "Symbolic evaluation".
Clearing Input Field
Hit
button in the left-bottom corner.
Symbolic evaluation of expression
Hit
button. Result appears in Output area. See "Symbolic evaluation".
When you want to do more than simple differentiate by
button, you can use symbolic evaluation using
button. By symbolic evaluation you are allowed to enter symbolic commands (functions) to control the differentation.
At the moment SymDiff contains one symbolic function:
diff(symexpr,var,order)
symexpr - the expression you want to differentiate
var - variable for differentation (when omitted default variable is used)
order (positive integer number) - order of differentation, mean how many times the expression is differentiated (when omitted one (1) is used)
Examples
standard differentation (like
button): diff(sin(x)), hit
and the result is cos(x)
differentation with respect to another variable: diff(sin(x)*y/z,y), hit
, result sin(x)/z
second order differentation: diff(x^3,x,2), hit
, result 6*x
differentation with respect to more variables: diff(diff(x^8*asin(y),y,1),x,2), hit
, result 56*x^6/(1-y^2)^(1/2)
Note: When you tap
, first of all the expression is evaluated the same way as when you tap
, and then differentiated with respect to "x".
Note: Differentation of some expressions can lead to very long expressions. It can cause soft reset of your Palm in current SymDiff version. For example diff(asin(x)/x,x,4)
Symbolic variables are during symbolic evaluation of an expression replaced by their declaration. You can use them for storing expressions, numbers etc. They are saved into database, they persist even when you quit SymDiff.
Managing varibles can be done either by special operator = or by Variables form.
Declaration of symbolic variable
Enter variable name, then =, then a declaration and hit
. First of all, declaration is symbolicaly evaluated, then variable is declared using a result of symbolic evaluation.
Example
You want to declare a as sin(x)-tan(y):
Clear Input Field using
button.
Enter a=sin(x)-tan(y)
Hit
button
Result is sin(x)-tan(y)
Now a is declared.
You want to enter (sin(x)-tan(y))^3.
Clear Input Field using
button.
Enter a^3
Hit
button
Result is (sin(x)-tan(y))^3
You want to differentiate y*(sin(x)-tan(y)) with respect to y three times.
Clear Input Field using
button.
Enter diff(y*a,y,3)
Hit
button
Result is quite long :).
Changing the declaration of symbolic variable
Just declare variable with another declaration.
Example
Redeclaration of a to x-y
Clear Input Field using
button.
Enter a=x-y
Hit
button
Result is x-y
Deleting symbolic variable
In fact a variable can be only removed from symbolic variables and it becames a general variable.
To delete a symbolic variable write var=var and hit
.
Example
Deleting of variable a.
Clear Input Field using
button.
Enter a=a
Hit
button
Result is a
Now a means just a.
Variables form
Menu command "SymDiff->Variables" opens a Variables form.
It shows a list of all variables (general and symbolic as well). You can scroll the list using a scroll bar to the right or PageUp/PageDown hard buttons.
By selecting of push buttons at the bottom of the form you can choose an operation with a variable.
Then select the variable you want to use, edit, inspect its proteperties or delete.
Operations
Use - selected variable is entered at cursor position at Input Field, Variables form is closed.
Edit - selected variable and its declaration are entered at Input Field, you can then edit its declaration
Prop - shows properties form of selected variable
Del - deletes a declaration of a selected symbolic variable
Old inputs and results are stored, so you can watch them and reuse them for consecutive operations.
Browsing results
You can scroll whole Output area verticaly by using the scrollbar to the right of it OR using Page Up and Page Down hard keys.
The grey/black rectangle
in the upper right corner of the screen shows, what portion of the last expression (whole grey rectangle) is visible on the screen (black rectangle). You can scroll horizontaly every result by draging it by your pen (See Preferences).
Reusing results
You insert old input or result expression at a cursor position simply by taping the icon to the left of that expression.
At preferences form (accessible in Options menu) you can select:
Scrolling the expressions
Horizontal scrolling can be done either by draging it by your pen or by tapping a pen at a left or a right half of an expression.
Draging
Select "Pen move". x2 or x3 means that the expression moves twice or three times faster than you move the pen.
Tapping
Select "Pen tap". Full, 90% and 2/3 means what portion of the expression is moved.
Ins. right bracket
When checked, right bracket is inserted when you are entering functions. For example write s, tap sin and 'sin()' is inserted at a cursor position instead of standard 'sin(' (when Ins. right bracked unchecked).
Variables - opens the Variables form (See "Symbolic variables")
Delete expressions - deletes all expressions
Preferences - opens preferences form
About - shows information about SymDiff
Register - You can enter Registration code here
When you enter invalid expression, an error message appears just below the Input Field.
List of errors
Missing operand
Missing operator
Extra right bracket - there are more right brackets than left ones
Missing right bracket - there are more left brackets than right ones
Invalid number
Not implemented - you have tried to use function, that is not implemented yet
Unknown function
Invalid parameter type - occurs, when during a symbolic evaluation a function gets one or more invalid arguments (for example: diff function's last argument must be a number, but when it was something else (variable, expression..))
Too many parameters
Not enough parameters
Known bugs
Problems with non integer numbers - so don't use them
Very long expressions can cause fatal error (I mean very very long - with hundreds of operands)
I would appreciate bug reports, suggestions etc. My e-mail is berta@quick.cz.
Version 1.2, October 9, 2002
symbolic variables support
saving variables
faster loading and saving of expressions
shorter startup time
horizontal scroll bar
and bug fixes :)
Version 1.1, September 23, 2002
symbolic evaluation
other variables for differentation
higher orders of differentation
"Preferences" form
better simplification
minor bug fixes
Version 1.01, August 21, 2002
improved speed
better simplification
minor bug fixes
Version 1.0 beta, August 7, 2002
first release
Copyright 2002 Norbert Pozar