TI-89 Gradient Toolbox version 3.0 (C) 2000 Bennett S. Kalafut INSTALLATION: The files in the group grad.89g must be installed to a directory on your calculator called "toolbox". This should happen automatically, but if it doesn't, just move the files. OVERVIEW: Function "grad" finds the gradient of a function of any number of variables. It returns a symbolic vector expression. Function "dirder" finds the derivative of a function in the direction of a vector. It returns a symbolic scalar expression. Function "div" finds the divergence of a vector function. It returns a symbolic scalar expression. Function "curl" finds the curl of a function in a three-dimensional space. It returns a symbolic vector expression. Function "laplacn" finds the laplacian of a function of any number of variables, which is the divergence of the gradient, often denoted as "del" ("nabla")^2. It returns a symbolic scalar expression. If you are using cylindrical or spherical coordinates be sure to switch the vector format in the MODE menu first. Also , if you are dealing with functions of more than 3 variables, you must set your mode to rectangular or bad things will happen. Note, too, that the answers you get in cylindrical or spherical mode aren't always great. This is the fault of the TI-89 EOS. If you know how to get around it, please tell me and we can co-author a fix. SYNTAX: grad(expr,varlist) expr=function to find gradient of varlist=list of variables, in order Example:grad(x*y+2*x*q*z,{x,y,z,q}) is valid syntax. dirder(expr,varlist,vect) vect=direction vector div(expr,varlist) Note that "expr" must be a VECTOR function. Example: div([x^2,y*x,z*sin(x)],{x,y,z}) curl(expr,varlist) Once again, expr must be a VECTOR laplacn(expr,varlist) TIPS: I've been trying to keep syntax consistent in developing my toolbox. Those of you who use my other programs might notice this. It's all simple to me but nevertheless some people get confused. This is my mini-FAQ: 1. What do you mean by list of variables? I mean the TI data type known as list. Enter your variables, in order, separated by commas, in curly brackets, like this: {x,y,z}. This allows my programs to be flexible and pretend that they take varying numbers of parameters. 2. Why is my answer not matching my pencil-and-paper work a. Check your algebra. b. Explicitly multiply. xy on the TI is not x*y. It's something of its own and will gum up the works c. Put your variables in your list in the correct order. If your vector components are [x,y,z] don't put {y,x,z} as your list! d. Check your calculator mode. 3. Why does this take forever? Check your mode. If you have it in spherical mode and you give it a rectangular vector, the integrals which the calculator will get will be really, really weird. 4. I'm trying to demonstrate that the curl of the electrical field is zero, in spherical coordinates. Why do I get an error? The calculator must divide by sin(azimuth function) to do this. Note that that's always zero if you put in [1/r^2,0,0]. Note, as well, that that's not the function you need. The field is [1/r^2,theta,phi] where phi is rotational angle and theta is azimuth. That should work. VERSION DIFFERENCES: 1.0-1.1 This version is missing the function "magn". Need for its use was eliminated from the directional derivative function, reducing the size of both dirder and the package and giving a slight improvement in speed. 1.1-2.0 Divergence and curl functions were added. "grad" was redone...I removed the "for" loop (unbelieveably slow, as anyone who's used Version 1 of my matrix subspaces toolbox has learned). The calculator's built in "seq" command, while quirky, is much nicer. It's a shame that the EOS doesn't recognize operator notation--could have done a "del" ("nabla") operator and have been done with all of this. Curl would have been cleaner if I could have gotten the Einstein summation form to work. I had a Levi-Cevita signature function done, but for some reasons + and - signs were being switched on me for the first two terms but not the third. Cylindrical and Spherical versions of these programs are in the works, as are (possibly) a cleaner version of the "curl" function. 2.0-3.0 Fixed a bug or two, if any existed. Overloaded each of the functions to support cylindrical and spherical coordinate systems. CONTACT INFORMATION: To report any bugs or to suggest any improvements, e-mail me at bkalafut@bigfoot.com License: You are licensed to freely distribute for this (TI-89 Gradient Toolbox) product as long as this text file is distributed with it and the recipient of the product pays no fee. You may include the code of this product into your own programs, provided that I am given credit for the authoring of that segment of code. You may NOT 1) Charge a fee for the distribution of this product. 2) Include this product in any printed book of programs without my written permission. Use of the product implies acceptance of these terms.