huang@deakin.OZ.AU (W Huang) (02/18/91)
As I am interested in symbolic and exact computation, I have written my software, named SymbMath, to do symbolic and exact computation. I wish that I would find the financial aid for extending, developing and commercializing the software. Do you know who has any financial support for that ? I will give you my software for demonstration if you are interested. Thank you. Yours, huang E-mail address is huang@deakin.oz.au ---------------------------------------------------------------------------- SymbMath by Weiguang HUANG Department of Chemistry, Deakin University, VIC. 3217, Australia 1. Introduction SymbMath, an abbreviation for Symbolic Mathematics, is an expert system that can solve symbolically mathematical problems. Symbolic mathematics is also called Computer Algebra, Symbolic Manipulation, Algebraic Manipulation, Symbolic Computation, or Algebraic Computation. SymbMath performs symbolic, formula as well as exact numeric computation. It can manipulate complicated formulas and return answers in terms of symbols, formulas and exact numbers, not just floating-point numbers. There are a number of software for symbolic computation, e.g. MACSYMA, Reduce, MAPLE, Mathematica, MicroCalc, etc. [1-3]. But MACSYMA runs on the special mainframe. Mathematica runs on the microcomputer Apple Macintosh with 4 MBytes of RAM. MicroCalc is available for IBM PC. MicroCalc provides graphical or numerical answers, and recongises special symbols as constants (e.g. a, b, c, h) and variables (e.g. x, y, z), but outputs formula only for derivatives. SymbMath runs on IBM-PC under MS-DOS and accepts any symbol as constants or variables, output two-dimensional display. SymbMath is growing although it has the limit feature now. If you are interested or have any problem, please write to author. 2. Capabilities Its capabilities include facilities to provide analytical or numerical answers for: 1. differentiation: derivaties, high order derivaties, partial derivatives, 2. integration: indefinite integration, definite integration, double integration, triple integration, multipble integration, infinite integration, parameter integration, iterated integration, line integration, 3. solution of polynomial equation, 4. manipulation of expressions: simplification, factorisation, expansion, substitution, evaluation, 5. calculation: exact or floating-point numerical computation of the integer, fration, real and complex number, even with different units, 6. the user-defining new functions, about 20 built-in mathematical standard functions, 7. chemical calculation: calculation of the molecular weight by entering the symbols of the chemical elements, 8. others such as greatest common divisor, limits, extrama, Taylor series, etc. SymbMath has on-line help, and allows users to edit the help file as they like. 3. Programming It can be used as an interpreter, the program is run in a batch file. For example, on the MS-DOS prompt, the program MYPRO.PRO runs as follows A:\> SymbMath<MYPRO.PRO 4. Exapmles Students can use SymbMath as an investigative tool to learn mathematical rules such as the differentiation and integration rules. In following examples, an expression beginning with "->" is the input expression, and an expression without "->" is the output expression, where "->" is the SymbMath prompt, similar to the MS-DOS prompt "A:\>". 4.1 Chain Rule Example 1 : set f1=x^2+y^3, then put f1 into sin(f1)+cos(2*f1). ->f1=x^2+y^3 2 3 x + y ->z=sin(f1)+cos(2*f1) ->z 2 3 2 3 sin(x + y ) + cos(2 (x + y )) Exapmle 2: after example 1, differentiate the last function with respect to x. ->diff(#,x) 2 3 2 3 2 x*cos(x + y ) - 4 x*sin(2 (x + y )) where special symbol "#" stands for the last function, e.g. after example 1, "#" is sin(x^2+y^3)+cos(2*(x^2+y^3)). Exapmle 3: save result to f2. ->f2=# 2 3 2 3 2 x*cos(x + y ) - 4 x*sin(2 (x + y )) 4.2 Integration Example 4: find the definite integral of y=exp(1-x) with respect to x taken from x=0 to x=infinity. ->inte(exp(1-x),x,0,inf) e Example 5: find the line integral by ->x=2*t ->y=3*t ->z=4*t ->u=x+y ->v=x-y ->w=x+y+z ->inte(u*diff(u,t)+v*diff(v,t)+w*diff(w,t)) 2 107 t /2 4.3 Calculation It can mainipulate units as well as numbers, be used as a symbolic calculator, and do exact computation. SymbMath contains many built-in algorithms for performing numerical calculations. Example 6: ->sin(pi/4) -1/2 2 Example 7: set units converter from minute to second units, then calcutae numbers with different units. ->minute=60*second ->v=2*meter/second ->t=2*minute ->d0=10*meter ->v*t+d0 250 meter 4.4 User-defining Function and Evaluation Example 8: define a new function z=sqrt(x^+y^), then evaluate z when x=1 and y=2, and when x=3 and y=4. ->z=sqrt(x^2+y^) ->subs(x=1,y=2,z) sqrt(5) ->subs(x=3,y=4,z) 5 Note that after evaluation, x and y should be cleared from memery by x=x, y=y before differentiation of the new function. Otherwise all of x and y still are 3 and 4 until new values assigned. 4.5 Solution of Equation Example 9: solve a+b*x+x^2=0, save the root to x, find the value of x when a=3 and b=4. ->solve(a+b*x+x^2) x = 2 1/2 2 1/2 -b/2 + ((b/2) - a) , -b/2 - ((b/2) - a) ->x=# ->a=3,b=4,x 3, 4, -1, -3 4.6 Chemical Calculation Example 10: calculate the weight percetage of the element C in the molecule CH4. ->chemical=on ->numerical=on ->C/(C+H*4)*100*% 74.868 % References [1] Buchberger, B., Collins, G.E., and Loos, R., 1983, Computer Algebra (New York: Springer-Verlag), pp. 4-7. [2] Oman, P., 1990, IEEE Software, Vol. 7, pp. 93-95, pp. 98. [3] Calmet, J., 1987, Int. J. Math. Educ. Sci. Technol., Vol. 18, No. 5, pp 663-680.