You
may have wondered what happened to the October issue of this Newsletter. The
answer is that there isnt one. Your Editor has been busy writing Lava,
which is the central topic of this months Newsletter. Other news: You
might like to check out the new review of the Mathwright Library in the November,
1999 issue of the College Mathematics Journal.
1) An Applet Reader for Mathematical exploration
A student once complained of her algebra course: Solving equations wouldnt be so bad. But every time you find the value of x, they change it on you. Nothing could be more true in the world of educational computing. Paradigms come and go with the stochastic regularity of late-Summer Hurricanes off the Florida coast. For the bewildered teacher and the beleaguered student, the question for the educational software developers is: What is constant?
Gleefully, the developers reply: What is a constant? And this only reflects the temperament and the climate of the larger world of computing, in which the beaches of our minds have been battered (invaded?) with wave on wave of new and ever more powerful technology. This is not a bad thing. We have passed from the Spartan Command Line to the expressive and colorful Multimedia environments of CDs and the Internet in a few short years.
But one thing is constant for students of Mathematics. That is the importance of experimental, open-ended, and even gratuitous thinking, through problem-solving, to the formation of clear concepts. However it is packaged, the content delivered by the new Media should first lead the student, not to answers, but to new questions.
With the appearance of the Internet, there arose, almost overnight, the largest repository of information in the history of our culture. But information alone has precious little value unless we know how to use it. As the Internet became increasingly interactive it began to offer us verbs in addition to the nouns of the information world. We are now able to act as we browse, and to manipulate the facts in increasingly useful ways. It is obviously useful for purchasing airline tickets, and it is useful in a less obvious way for students of Mathematics. If students are to ask questions, questions that are meaningful to them, then the computer environment should have the flexibility to attempt to answer them. A learning environment is more useful to the extent that students can ask a wider variety of questions within it.
Now with the appearance of Java-enabled web Browsers, it became possible to put small interactions within the Browser itself. These take the form of Applets. Being delivered over the web, these tiny applications were at first rather small and were useless for supporting open-ended exploration. But that has changed. The technology for delivery continually increases at a dramatic pace, and there is no reason for applets to be limited to simple interactions any more. As well discuss in the next article, a single Applet such as Lava, can provide an infinity of opportunities for the reader to explore any topics in the Primary, Secondary, or Undergraduate Mathematics Curriculum. In fact, Lava is already quite a bit more powerful than Mathwright itself, both computationally, and in terms of the learning opportunities it can offer its readers.
Most of us think of Applets as dedicated interactions, with a single vocation. Lava, on the other hand, is a Reader, like the Mathwright Library Player. What it can do depends upon what you happen to be reading. As we develop WorkBooks for Lava, and we translate existing Mathwright Library WorkBooks into Lava, you will see that it is just as dexterous with 2- and 3-dimensional graphics as it is with symbolic algebra, or differential equations, with Linear Algebra, as with Exact Arithmetic. It is a chameleon. And all the content runs in your Browser. (There is, of course, an Application version of Lava that can run, like the Mathwright Player, entirely on your machine.)
The principle advantage of developing Lava is its platform independence. This brings us back to the rapidly changing world of computing. Java, itself, is developing and changing. The new Swing version of Java and the Foundation Classes (Java 2) are presently not directly supported by the major web Browsers. Because of its heavy use of sophisticated 2D graphics, and its anticipated use of Java 3D graphics, Lava is a Java 2, Swing Applet. Therefore, in order to run on present Windows and Unix Platforms, it needs the Java 2 Plug-in for the Browser. The Applet itself arranges to download and install the plug-in for you (when you first run it) if it detects that you do not already have it. After that, you will be able to run Lava, or other Java 2 Applets seamlessly. At the time of this writing, however, there does not seem to be a Java 2 Plug-in for the MAC Platform. So MAC users will have to wait until their Browsers support Java 2, or until there is a Plug-in available. But that shouldnt be too long.
Another advantage of an Applet reader is that it requires no software on your machine (aside from a Browser, of course). WorkBooks open in your Browser. You read them, and then they are gone. A disadvantage of an Applet Reader is that it requires a minute or two (depending on your connection) to fire up. Once started, it is quite peppy but, being a fully functional symbolic algebra and graphics language, it requires a little time to start up. If you open a new WorkBook in Lava, no restart is required, so that happens instantly. In coming weeks, we will post a number of new Lava WorkBooks at our Lava page. Our translator translates Mathwright WorkBooks instantly to Lava. We will appreciate your comments.
2] LISPing Java: The eruption of Lava (A Technical Overview)
Lisper is a collection of Java classes that define a LISP environment which enables the Lava Applet or the Lava Application to do interactive computer algebra and graphics. Lisper itself remains in the background, but provides runtime support for all of Lavas Mathematical operations. Lisper is code-compatible with Mathwrights LISP interpreter, which means that we may instantly translate any Mathwright WorkBook to a Lava WorkBook. All of the mathematical functionality is transferred. The Lava user interface, being somewhat more flexible, and the computational power of Lava being deeper, there is usually some tweaking required after translation.
The classes that Lisper provides for Lava presently comprise 194 primitive LISP functions. These are essentially all of the Mathematical functions in Mathwright, now rendered in Java. The Expert System, carried over directly from Mathwright, is 80K of pure LISP code, for example. Among the capabilities that Lisper provides to Lava are:
| Function definitions (functions of one or several variables, single or vector valued) and variable assignments | |
| Five number types, including rational and unlimited precision decimals or integers | |
| Expansion of algebraic expressions, and comparison of different forms | |
| Derivative calculations, including iterated partial derivatives to any order | |
| Vectors, vector manipulation, vector-valued functions, and differentiation of vectors | |
| Automatic equation solving with explanations (linear, quadratics, cubics, etc.) | |
| Rewriting rules that apply functional identities to simplify expressions (trigonometric, exponential, and logarithmic, for example) with explanations at each step. | |
| Scripted explorations with sprites and graphics in which gadgets such as buttons, scroll bars and checkboxes control interactions on the screen. | |
| Graphing functions and curves with 16 million colors, arbitrary penwidth. Interactive zoom-in, zoom-out, and tracing. | |
| Definition of geometric or Logo sprites that may be transformed by arbitrary affine transformations, as well as .gif and .jpeg sprites that may be rotated and translated as they move. | |
| Wallpaper background for Graph2D windows. · Factoring integers and polynomial functions of one variable with rational coefficients. | |
| Forward and Backward chaining with Unification Pattern Matching. |
Some example Command-line calculations in Lava:
1] The five number types and reading/writing modes
There are 5 number types (With 3D graphics, there will also be a Quaternion number type.):
| Long (long) This is a 64-bit signed integer | |
| Double (double) This is a 64-bit floating point type | |
| BigInt (BigInteger) This is the "infinite precision" integer type | |
| BigDec (BigDecimal) This is the "infinite precision" floating point type | |
| Rational (Rational) This is the exact rational (fraction) type with 64 bit integers (longs) in the numerator and the denominator. |
There are 5 Reading Modes for numbers. These may be set using checkboxes on the Textfield menu to communicate the mode to Lava.
| Long, | |
| Decimal, | |
| BigInt, | |
| BigDecimal, and | |
| Rational |
Number type-setting functions may also be used to force numbers to be read in the type indicated for calculations. A number raised to a long power is a BigNumber (unlimited precision). In Biginteger mode,
2^long(10000) gives:
1995063116880758384883742162683585083823496831886192454852008949852943883022194663191996168403619459789933112942320
9124271556491349413781117593785932096323957855730046793794526765246551266059895520550086918193311542508608460618104
6855090748660896248880904898948380092539416332578506215683094739025569123880652250966438744410467598716269854532228
68538161694315775629640762836880760732228535091641476183956381458969463899410840960536267821064621427333394036525565
64953060314268023496940033593431665145929777327966577560617258203140799419817960737824568376228003730288548725190083
446458145465055792960141483392161573458813925709537976911927780082695773567444412306201875783632550272832378927071037
380286639303142813324140162419567169057406141965434232463880124885614730520743199225961179625013099286024170834080760
593232016126849228849625584131284406153673895148711425631511108974551420331382020293164095759646475601040584584156607
204496286701651506192063100418642227590867090057460641785695191145605506825125040600751984226189805923711805444478807
290639524254833922198270740447316237676084661303377870603980341319713349365462270056316993745550824178097281098329131
4403571877524768509857276937926433221599399876886660808368837838027643282775172273657572744784112294389733810861607423
2532919748131201976041782819656974758981645312584341359598627841301281854062834766490886905210475808826158239619857701
2240704433058307586903931960460340497315658320867210591330090375282341553974539439771525745529051021231094732161075347
4825740775273986348298498340756937955646638621874569499279016572103701364433135817214311791398222983845847334440270964
18285100507292774836455057863450110085298781238947392869954083434615880704395911898581514577917714361969872813145948378
32020814749821718580113890712282509058268174362205774759214176537156877256149045829049924610286300815355833081301019876
75856234343538955409175623400844887526162643568648833519463720377293240094456246923254350400678027273837755376406726898
63624103749141096671855705075909810024678988017827192595338128242195402830275940844895501467666838969799688624163631337
639390337345580140763674187771105538422573949911018646821969658165148513049422236994771476306915546821768287620036277725
772378136533161119681128079266948188720129864366076855163986053460229787155751794738524636944692308789426594821700805112
032236549628816903573912136833839359175641873385051097027161391543959099159815465441733631165693603112224993796999922678
1732358023111862644575299135758175008199839236284615249881088960232244362173771618086357015468484058622329792853875623486
5564405369626220189635710288123615675125433383032700290976686505685571575055167275188991941297113376901499161813151715440
0772865057318955745092033018530484711381831540732405331903846208403642176370391155063978900074285367219628090347797453332
0468368795868580237952218629120080742819551317948157624448298518461509704888027274721574688131594750409732115080498190455
803416826949787141316063210686391511681774304792596709376
In BigDouble reading mode,
1.005 ^ 200 returns: 2.711517122929317 (since 200 is read as a BigDouble), and a double to a bigdouble power is a double, but
1.005 ^ long(200) returns the exact answer:
2.71151712292937479854899397016290412652651892864411079520031671964003264340274456721329365784757691147666100581037
5684732378108536732604601258470790763638451088983895523161501985631641801197795841778086132512422265559938985999011
5533296979322147399348051950653655651513151299802189268289802820371481475467065895588897543079813304775092633169980
07613817489136065440330345011099089410024333665326201346344332661117568574734808872400274808070840733451211604885052
61425012343399978124481338653181858458664738000002948355052936009960680132009533303271088738971696194962612835865911
6202034056186676025390625
2] Mathematical functions (* means the system can differentiate the function.) Users may define also symbolic functions and derivatives. All derivative calculations are done recursively and using the chain rule.
Unless otherwise indicated, these functions expect Double arguments and return Double values. The functions always convert their arguments if necessary:
| Abs | |
| Acos (*) | |
| Asin (*) | |
| Atan (*) | |
| Ceil | |
| Cos (*) | |
| Div (Quotient of integer division, returns Long) | |
| Exp (*) | |
| Cosh (*) | |
| Floor | |
| Length (Reports the length of a vector or list, returns Long) | |
| Ln (*) | |
| Maximum | |
| Minimum | |
| Radian | |
| Random (Returns Long between 0 and 32767) | |
| Rem (Remainder of integer division, returns Long) | |
| Rnd (Round. up returns Long) | |
| Sin (*) | |
| Sinh (*) | |
| Sqrt (*) | |
| Tan (*) | |
| Tanh (*) | |
| Trunc |
3] Symbolic expression expansions and differentiation (used in Rational mode):
Lisper expands and simplifies symbolic expressions, e.g. in exact (rational) mode, the command to calculate
(x+y/2+z/3+w/4)^10 yields:
(X^10)+5*(X^9)*Y+45/4*(X^8)*(Y^2)+15*(X^7)*(Y^3)+105/8*(X^6)*(Y^4)+63/8*(X^5)*(Y^5)+105/32*(X^4)*(Y^6)+15/16*(X^3)*(Y^7)+
45/256*(X^2)*(Y^8)+5/256*X*(Y^9)+1/1024*(Y^10)+10/3*(X^9)*Z+15*(X^8)*Y*Z+30*(X^7)*(Y^2)*Z+35*(X^6)*(Y^3)*Z+105/4*(X^5)*(Y^4)*Z+
105/8*(X^4)*(Y^5)*Z+35/8*(X^3)*(Y^6)*Z+15/16*(X^2)*(Y^7)*Z+15/128*X*(Y^8)*Z+5/768*(Y^9)*Z+5*(X^8)*(Z^2)+20*(X^7)*Y*(Z^2)+35*(X^
6)*(Y^2)*(Z^2)+35*(X^5)*(Y^3)*(Z^2)+175/8*(X^4)*(Y^4)*(Z^2)+35/4*(X^3)*(Y^5)*(Z^2)+35/16*(X^2)*(Y^6)*(Z^2)+5/16*X*(Y^7)*(Z^2)+5/2
56*(Y^8)*(Z^2)+40/9*(X^7)*(Z^3)+140/9*(X^6)*Y*(Z^3)+70/3*(X^5)*(Y^2)*(Z^3)+175/9*(X^4)*(Y^3)*(Z^3)+175/18*(X^3)*(Y^4)*(Z^3)+35/1
2*(X^2)*(Y^5)*(Z^3)+35/72*X*(Y^6)*(Z^3)+5/144*(Y^7)*(Z^3)+70/27*(X^6)*(Z^4)+70/9*(X^5)*Y*(Z^4)+175/18*(X^4)*(Y^2)*(Z^4)+175/27*(
X^3)*(Y^3)*(Z^4)+175/72*(X^2)*(Y^4)*(Z^4)+35/72*X*(Y^5)*(Z^4)+35/864*(Y^6)*(Z^4)+28/27*(X^5)*(Z^5)+70/27*(X^4)*Y*(Z^5)+70/27*(X^
3)*(Y^2)*(Z^5)+35/27*(X^2)*(Y^3)*(Z^5)+35/108*X*(Y^4)*(Z^5)+7/216*(Y^5)*(Z^5)+70/243*(X^4)*(Z^6)+140/243*(X^3)*Y*(Z^6)+35/81*(X^
2)*(Y^2)*(Z^6)+35/243*X*(Y^3)*(Z^6)+35/1944*(Y^4)*(Z^6)+40/729*(X^3)*(Z^7)+20/243*(X^2)*Y*(Z^7)+10/243*X*(Y^2)*(Z^7)+5/729*(Y^3)*
(Z^7)+5/729*(X^2)*(Z^8)+5/729*X*Y*(Z^8)+5/2916*(Y^2)*(Z^8)+10/19683*X*(Z^9)+5/19683*Y*(Z^9)+1/59049*(Z^10)+5/2*(X^9)*W+45/4*(X
^8)*Y*W+45/2*(X^7)*(Y^2)*W+105/4*(X^6)*(Y^3)*W+315/16*(X^5)*(Y^4)*W+315/32*(X^4)*(Y^5)*W+105/32*(X^3)*(Y^6)*W+45/64*(X^2)*(Y
^7)*W+45/512*X*(Y^8)*W+5/1024*(Y^9)*W+15/2*(X^8)*Z*W+30*(X^7)*Y*Z*W+105/2*(X^6)*(Y^2)*Z*W+105/2*(X^5)*(Y^3)*Z*W+525/16*(X^
4)*(Y^4)*Z*W+105/8*(X^3)*(Y^5)*Z*W+105/32*(X^2)*(Y^6)*Z*W+15/32*X*(Y^7)*Z*W+15/512*(Y^8)*Z*W+10*(X^7)*(Z^2)*W+35*(X^6)*Y*(Z^2
)*W+105/2*(X^5)*(Y^2)*(Z^2)*W+175/4*(X^4)*(Y^3)*(Z^2)*W+175/8*(X^3)*(Y^4)*(Z^2)*W+105/16*(X^2)*(Y^5)*(Z^2)*W+35/32*X*(Y^6)*(Z^2
)*W+5/64*(Y^7)*(Z^2)*W+70/9*(X^6)*(Z^3)*W+70/3*(X^5)*Y*(Z^3)*W+175/6*(X^4)*(Y^2)*(Z^3)*W+175/9*(X^3)*(Y^3)*(Z^3)*W+175/24*(X^2
)*(Y^4)*(Z^3)*W+35/24*X*(Y^5)*(Z^3)*W+35/288*(Y^6)*(Z^3)*W+35/9*(X^5)*(Z^4)*W+175/18*(X^4)*Y*(Z^4)*W+175/18*(X^3)*(Y^2)*(Z^4)*
W+175/36*(X^2)*(Y^3)*(Z^4)*W+175/144*X*(Y^4)*(Z^4)*W+35/288*(Y^5)*(Z^4)*W+35/27*(X^4)*(Z^5)*W+70/27*(X^3)*Y*(Z^5)*W+35/18*(X
^2)*(Y^2)*(Z^5)*W+35/54*X*(Y^3)*(Z^5)*W+35/432*(Y^4)*(Z^5)*W+70/243*(X^3)*(Z^6)*W+35/81*(X^2)*Y*(Z^6)*W+35/162*X*(Y^2)*(Z^6)*W+
35/972*(Y^3)*(Z^6)*W+10/243*(X^2)*(Z^7)*W+10/243*X*Y*(Z^7)*W+5/486*(Y^2)*(Z^7)*W+5/1458*X*(Z^8)*W+5/2916*Y*(Z^8)*W+
5/39366*(Z^9)*W+45/16*(X^8)*(W^2)+45/4*(X^7)*Y*(W^2)+315/16*(X^6)*(Y^2)*(W^2)+315/16*(X^5)*(Y^3)*(W^2)+
1575/128*(X^4)*(Y^4)*(W^2)+315/64*(X^3)*(Y^5)*(W^2)+315/256*(X^2)*(Y^6)*(W^2)+45/256*X*(Y^7)*(W^2)+45/4096*(Y^8)*(W^2)+
15/2*(X^7)*Z*(W^2)+105/4*(X^6)*Y*Z*(W^2)+315/8*(X^5)*(Y^2)*Z*(W^2)+525/16*(X^4)*(Y^3)*Z*(W^2)+525/32*(X^3)*(Y^4)*Z*(W^2)+
315/64*(X^2)*(Y^5)*Z*(W^2)+105/128*X*(Y^6)*Z*(W^2)+15/256*(Y^7)*Z*(W^2)+35/4*(X^6)*(Z^2)*(W^2)+105/4*(X^5)*Y*(Z^2)*(W^2)+
525/16*(X^4)*(Y^2)*(Z^2)*(W^2)+175/8*(X^3)*(Y^3)*(Z^2)*(W^2)+525/64*(X^2)*(Y^4)*(Z^2)*(W^2)+105/64*X*(Y^5)*(Z^2)*(W^2)+
35/256*(Y^6)*(Z^2)*(W^2)+35/6*(X^5)*(Z^3)*(W^2)+175/12*(X^4)*Y*(Z^3)*(W^2)+175/12*(X^3)*(Y^2)*(Z^3)*(W^2)+175/24*(X^2)*(Y^3)*
(Z^3)*(W^2)+175/96*X*(Y^4)*(Z^3)*(W^2)+35/192*(Y^5)*(Z^3)*(W^2)+175/72*(X^4)*(Z^4)*(W^2)+175/36*(X^3)*Y*(Z^4)*(W^2)+
175/48*(X^2)*(Y^2)*(Z^4)*(W^2)+175/144*X*(Y^3)*(Z^4)*(W^2)+175/1152*(Y^4)*(Z^4)*(W^2)+35/54*(X^3)*(Z^5)*(W^2)+
35/36*(X^2)*Y*(Z^5)*(W^2)+35/72*X*(Y^2)*(Z^5)*(W^2)+35/432*(Y^3)*(Z^5)*(W^2)+35/324*(X^2)*(Z^6)*(W^2)+35/324*X*Y*(Z^6)*(W^2)+
35/1296*(Y^2)*(Z^6)*(W^2)+5/486*X*(Z^7)*(W^2)+5/972*Y*(Z^7)*(W^2)+5/11664*(Z^8)*(W^2)+15/8*(X^7)*(W^3)+105/16*(X^6)*Y*(W^3)+
315/32*(X^5)*(Y^2)*(W^3)+525/64*(X^4)*(Y^3)*(W^3)+525/128*(X^3)*(Y^4)*(W^3)+315/256*(X^2)*(Y^5)*(W^3)+105/512*X*(Y^6)*(W^3)+
15/1024*(Y^7)*(W^3)+35/8*(X^6)*Z*(W^3)+105/8*(X^5)*Y*Z*(W^3)+525/32*(X^4)*(Y^2)*Z*(W^3)+175/16*(X^3)*(Y^3)*Z*(W^3)+
525/128*(X^2)*(Y^4)*Z*(W^3)+105/128*X*(Y^5)*Z*(W^3)+35/512*(Y^6)*Z*(W^3)+35/8*(X^5)*(Z^2)*(W^3)+175/16*(X^4)*Y*(Z^2)*(W^3)+
175/16*(X^3)*(Y^2)*(Z^2)*(W^3)+175/32*(X^2)*(Y^3)*(Z^2)*(W^3)+175/128*X*(Y^4)*(Z^2)*(W^3)+35/256*(Y^5)*(Z^2)*(W^3)+175/72*(X^4)*
(Z^3)*(W^3)+175/36*(X^3)*Y*(Z^3)*(W^3)+175/48*(X^2)*(Y^2)*(Z^3)*(W^3)+175/144*X*(Y^3)*(Z^3)*(W^3)+175/1152*(Y^4)*(Z^3)*(W^3)+
175/216*(X^3)*(Z^4)*(W^3)+175/144*(X^2)*Y*(Z^4)*(W^3)+175/288*X*(Y^2)*(Z^4)*(W^3)+175/1728*(Y^3)*(Z^4)*(W^3)+35/216*(X^2)*(Z^5)*
(W^3)+35/216*X*Y*(Z^5)*(W^3)+35/864*(Y^2)*(Z^5)*(W^3)+35/1944*X*(Z^6)*(W^3)+35/3888*Y*(Z^6)*(W^3)+5/5832*(Z^7)*(W^3)+105/128*
(X^6)*(W^4)+315/128*(X^5)*Y*(W^4)+1575/512*(X^4)*(Y^2)*(W^4)+525/256*(X^3)*(Y^3)*(W^4)+1575/2048*(X^2)*(Y^4)*(W^4)+315/2048*X*
(Y^5)*(W^4)+105/8192*(Y^6)*(W^4)+105/64*(X^5)*Z*(W^4)+525/128*(X^4)*Y*Z*(W^4)+525/128*(X^3)*(Y^2)*Z*(W^4)+525/256*(X^2)*(Y^3)*
Z*(W^4)+525/1024*X*(Y^4)*Z*(W^4)+105/2048*(Y^5)*Z*(W^4)+175/128*(X^4)*(Z^2)*(W^4)+175/64*(X^3)*Y*(Z^2)*(W^4)+525/256*(X^2)*(Y^2)
*(Z^2)*(W^4)+175/256*X*(Y^3)*(Z^2)*(W^4)+175/2048*(Y^4)*(Z^2)*(W^4)+175/288*(X^3)*(Z^3)*(W^4)+175/192*(X^2)*Y*(Z^3)*(W^4)+
175/384*X*(Y^2)*(Z^3)*(W^4)+175/2304*(Y^3)*(Z^3)*(W^4)+175/1152*(X^2)*(Z^4)*(W^4)+175/1152*X*Y*(Z^4)*(W^4)+175/4608*(Y^2)*(Z^4)*
(W^4)+35/1728*X*(Z^5)*(W^4)+35/3456*Y*(Z^5)*(W^4)+35/31104*(Z^6)*(W^4)+63/256*(X^5)*(W^5)+315/512*(X^4)*Y*(W^5)+315/512*(X^3)
*(Y^2)*(W^5)+315/1024*(X^2)*(Y^3)*(W^5)+315/4096*X*(Y^4)*(W^5)+63/8192*(Y^5)*(W^5)+105/256*(X^4)*Z*(W^5)+105/128*(X^3)*Y*Z*
(W^5)+315/512*(X^2)*(Y^2)*Z*(W^5)+105/512*X*(Y^3)*Z*(W^5)+105/4096*(Y^4)*Z*(W^5)+35/128*(X^3)*(Z^2)*(W^5)+105/256*(X^2)*Y*(Z^2)*
(W^5)+105/512*X*(Y^2)*(Z^2)*(W^5)+35/1024*(Y^3)*(Z^2)*(W^5)+35/384*(X^2)*(Z^3)*(W^5)+35/384*X*Y*(Z^3)*(W^5)+35/1536*(Y^2)*(Z^3)*
(W^5)+35/2304*X*(Z^4)*(W^5)+35/4608*Y*(Z^4)*(W^5)+7/6912*(Z^5)*(W^5)+105/2048*(X^4)*(W^6)+105/1024*(X^3)*Y*(W^6)+315/4096*
(X^2)*(Y^2)*(W^6)+105/4096*X*(Y^3)*(W^6)+105/32768*(Y^4)*(W^6)+35/512*(X^3)*Z*(W^6)+105/1024*(X^2)*Y*Z*(W^6)+105/2048*X*(Y^2)
*Z*(W^6)+35/4096*(Y^3)*Z*(W^6)+35/1024*(X^2)*(Z^2)*(W^6)+35/1024*X*Y*(Z^2)*(W^6)+35/4096*(Y^2)*(Z^2)*(W^6)+35/4608*X*(Z^3)*
(W^6)+35/9216*Y*(Z^3)*(W^6)+35/55296*(Z^4)*(W^6)+15/2048*(X^3)*(W^7)+45/4096*(X^2)*Y*(W^7)+45/8192*X*(Y^2)*(W^7)+15/16384*
(Y^3)*(W^7)+15/2048*(X^2)*Z*(W^7)+15/2048*X*Y*Z*(W^7)+15/8192*(Y^2)*Z*(W^7)+5/2048*X*(Z^2)*(W^7)+5/4096*Y*(Z^2)*(W^7)+
5/18432*(Z^3)*(W^7)+45/65536*(X^2)*(W^8)+45/65536*X*Y*(W^8)+45/262144*(Y^2)*(W^8)+15/32768*X*Z*(W^8)+15/65536*Y*Z*(W^8)+
5/65536*(Z^2)*(W^8)+5/131072*X*(W^9)+5/262144*Y*(W^9)+5/393216*Z*(W^9)+1/1048576*(W^10)
(Easy for Lava to say!)
· Dif This is the partial differentiation operator. It calculates iterated partial derivatives or expressions or vectors. e.g. the second-order partial with respect to x and y is calculated at the command line:
dif((x+y/2+z/3+w/4)^10,x,y)
45*(X^8)+180*(X^7)*Y+315*(X^6)*(Y^2)+315*(X^5)*(Y^3)+1575/8*(X^4)*(Y^4)+315/4*(X^3)*(Y^5)+315/16*(X^2)*(Y^6)+45/16*X*(Y^7)+
45/256*(Y^8)+120*(X^7)*Z+420*(X^6)*Y*Z+630*(X^5)*(Y^2)*Z+525*(X^4)*(Y^3)*Z+525/2*(X^3)*(Y^4)*Z+315/4*(X^2)*(Y^5)*Z+105/8*X*(Y^6)*Z+
15/16*(Y^7)*Z+140*(X^6)*(Z^2)+420*(X^5)*Y*(Z^2)+525*(X^4)*(Y^2)*(Z^2)+350*(X^3)*(Y^3)*(Z^2)+525/4*(X^2)*(Y^4)*(Z^2)+105/4*X*(Y^5)*
(Z^2)+35/16*(Y^6)*(Z^2)+280/3*(X^5)*(Z^3)+700/3*(X^4)*Y*(Z^3)+700/3*(X^3)*(Y^2)*(Z^3)+350/3*(X^2)*(Y^3)*(Z^3)+175/6*X*(Y^4)*(Z^3)+
35/12*(Y^5)*(Z^3)+350/9*(X^4)*(Z^4)+700/9*(X^3)*Y*(Z^4)+175/3*(X^2)*(Y^2)*(Z^4)+175/9*X*(Y^3)*(Z^4)+175/72*(Y^4)*(Z^4)+280/27*
(X^3)*(Z^5)+140/9*(X^2)*Y*(Z^5)+70/9*X*(Y^2)*(Z^5)+35/27*(Y^3)*(Z^5)+140/81*(X^2)*(Z^6)+140/81*X*Y*(Z^6)+35/81*(Y^2)*(Z^6)+
40/243*X*(Z^7)+20/243*Y*(Z^7)+5/729*(Z^8)+90*(X^7)*W+315*(X^6)*Y*W+945/2*(X^5)*(Y^2)*W+1575/4*(X^4)*(Y^3)*W+1575/8*(X^3)*
(Y^4)*W+945/16*(X^2)*(Y^5)*W+315/32*X*(Y^6)*W+45/64*(Y^7)*W+210*(X^6)*Z*W+630*(X^5)*Y*Z*W+1575/2*(X^4)*(Y^2)*Z*W+525*(X^3)*
(Y^3)*Z*W+1575/8*(X^2)*(Y^4)*Z*W+315/8*X*(Y^5)*Z*W+105/32*(Y^6)*Z*W+210*(X^5)*(Z^2)*W+525*(X^4)*Y*(Z^2)*W+525*(X^3)*(Y^2)*
(Z^2)*W+525/2*(X^2)*(Y^3)*(Z^2)*W+525/8*X*(Y^4)*(Z^2)*W+105/16*(Y^5)*(Z^2)*W+350/3*(X^4)*(Z^3)*W+700/3*(X^3)*Y*(Z^3)*W+175*
(X^2)*(Y^2)*(Z^3)*W+175/3*X*(Y^3)*(Z^3)*W+175/24*(Y^4)*(Z^3)*W+350/9*(X^3)*(Z^4)*W+175/3*(X^2)*Y*(Z^4)*W+175/6*X*(Y^2)*(Z^4)*W+
175/36*(Y^3)*(Z^4)*W+70/9*(X^2)*(Z^5)*W+70/9*X*Y*(Z^5)*W+35/18*(Y^2)*(Z^5)*W+70/81*X*(Z^6)*W+35/81*Y*(Z^6)*W+10/243*(Z^7)*W+
315/4*(X^6)*(W^2)+945/4*(X^5)*Y*(W^2)+4725/16*(X^4)*(Y^2)*(W^2)+1575/8*(X^3)*(Y^3)*(W^2)+4725/64*(X^2)*(Y^4)*(W^2)+945/64*X*
(Y^5)*(W^2)+315/256*(Y^6)*(W^2)+315/2*(X^5)*Z*(W^2)+1575/4*(X^4)*Y*Z*(W^2)+1575/4*(X^3)*(Y^2)*Z*(W^2)+1575/8*(X^2)*(Y^3)*Z*
(W^2)+1575/32*X*(Y^4)*Z*(W^2)+315/64*(Y^5)*Z*(W^2)+525/4*(X^4)*(Z^2)*(W^2)+525/2*(X^3)*Y*(Z^2)*(W^2)+1575/8*(X^2)*(Y^2)*(Z^2)*
(W^2)+525/8*X*(Y^3)*(Z^2)*(W^2)+525/64*(Y^4)*(Z^2)*(W^2)+175/3*(X^3)*(Z^3)*(W^2)+175/2*(X^2)*Y*(Z^3)*(W^2)+175/4*X*(Y^2)*(Z^3)*
(W^2)+175/24*(Y^3)*(Z^3)*(W^2)+175/12*(X^2)*(Z^4)*(W^2)+175/12*X*Y*(Z^4)*(W^2)+175/48*(Y^2)*(Z^4)*(W^2)+35/18*X*(Z^5)*(W^2)+
35/36*Y*(Z^5)*(W^2)+35/324*(Z^6)*(W^2)+315/8*(X^5)*(W^3)+1575/16*(X^4)*Y*(W^3)+1575/16*(X^3)*(Y^2)*(W^3)+1575/32*(X^2)*(Y^3)*
(W^3)+1575/128*X*(Y^4)*(W^3)+315/256*(Y^5)*(W^3)+525/8*(X^4)*Z*(W^3)+525/4*(X^3)*Y*Z*(W^3)+1575/16*(X^2)*(Y^2)*Z*(W^3)+
525/16*X*(Y^3)*Z*(W^3)+525/128*(Y^4)*Z*(W^3)+175/4*(X^3)*(Z^2)*(W^3)+525/8*(X^2)*Y*(Z^2)*(W^3)+525/16*X*(Y^2)*(Z^2)*(W^3)+
175/32*(Y^3)*(Z^2)*(W^3)+175/12*(X^2)*(Z^3)*(W^3)+175/12*X*Y*(Z^3)*(W^3)+175/48*(Y^2)*(Z^3)*(W^3)+175/72*X*(Z^4)*(W^3)+
175/144*Y*(Z^4)*(W^3)+35/216*(Z^5)*(W^3)+1575/128*(X^4)*(W^4)+1575/64*(X^3)*Y*(W^4)+4725/256*(X^2)*(Y^2)*(W^4)+
1575/256*X*(Y^3)*(W^4)+1575/2048*(Y^4)*(W^4)+525/32*(X^3)*Z*(W^4)+1575/64*(X^2)*Y*Z*(W^4)+1575/128*X*(Y^2)*Z*(W^4)+
525/256*(Y^3)*Z*(W^4)+525/64*(X^2)*(Z^2)*(W^4)+525/64*X*Y*(Z^2)*(W^4)+525/256*(Y^2)*(Z^2)*(W^4)+175/96*X*(Z^3)*(W^4)+
175/192*Y*(Z^3)*(W^4)+175/1152*(Z^4)*(W^4)+315/128*(X^3)*(W^5)+945/256*(X^2)*Y*(W^5)+945/512*X*(Y^2)*(W^5)+
315/1024*(Y^3)*(W^5)+315/128*(X^2)*Z*(W^5)+315/128*X*Y*Z*(W^5)+315/512*(Y^2)*Z*(W^5)+105/128*X*(Z^2)*(W^5)+
105/256*Y*(Z^2)*(W^5)+35/384*(Z^3)*(W^5)+315/1024*(X^2)*(W^6)+315/1024*X*Y*(W^6)+315/4096*(Y^2)*(W^6)+105/512*X*Z*(W^6)+
105/1024*Y*Z*(W^6)+35/1024*(Z^2)*(W^6)+45/2048*X*(W^7)+45/4096*Y*(W^7)+15/2048*Z*(W^7)+45/65536*(W^8)
A later article will discuss graphics capabilities. They are too numerous to describe here.
Visit our demonstration page: Lava We will be adding WorkBooks frequently to the list.
James E. White, Editor
If you came here from the old building,