home *** CD-ROM | disk | FTP | other *** search
- Here are some problems that Maple and Mathematica cannot
- solve, but SymbMath can do.
- The following examples came from news on the sci.math.symbolic
- newsgroup in 1991, and were run in Maple V, Mathematica 2.0, or
- SymbMath 2.1.
-
- ************************ Example 1 ******************************
- Maple:
- > int(exp(-a * x^2), x=0..infinity);
-
- infinity
- /
- | 2
- | exp(- a x ) dx
- |
- /
- 0
-
- # unevaluated.
- # Declare 'a' non-negative:
-
- > signum(a) := 1;
-
- signum(a) := 1
-
- # The same integral is now evaluated fully:
-
- > int(exp(-a * x^2), x=0..infinity);
-
- 1/2
- Pi
- 1/2 -----
- 1/2
- a
-
- SymbMath :
- Input:
- inte(exp(-a*x^2), x from 0 to inf)
- assume(sqrt(a) > 0)
- inte(exp(-a*x^2), x from 0 to inf)
- Output:
- 1/2*a^(-0.5)*sqrt(pi)*erf(inf*sgn(sqrt(a)))
- assumed
- 1/2*a^(-0.5)*sqrt(pi)
-
- ************************** Example 2 *********************************
- Maple:
- # Despite the fact that 'n' is declared non-negative...
- > signum(n) := 1;
- signum(n) := 1
-
- # ...this simple proper definite integral (that any freshman calculus
- # student can evaluate!) is left unevaluated:
- > int(x^n, x=0..1);
-
- 1
- /
- | n
- | x dx
- |
- /
- 0
-
-
- SymbMath :
- Input:
- assume(n > -1)
- inte(x^n, x from 0 to 1)
- Output:
- assumed
- 1/(1 + n)
-
- ************************** Example 3 *****************************
- Maple:
- > int(x^n, x=eps..1);
-
- (n + 1)
- 1 eps
- ----- - ----------
- n + 1 n + 1
-
- # ...but the one-sided limit...
-
- > limit(", eps=0, right);
-
- (n + 1)
- 1 eps
- limit ----- - ----------
- eps -> 0+ n + 1 n + 1
-
- # ...remains unevaluated...
-
- > simplify(");
-
- (n + 1)
- - 1 + eps
- limit - ----------------
- eps -> 0+ n + 1
-
-
- # ...no matter what we do!
-
- > eval(");
-
- (n + 1)
- - 1 + eps
- limit - ----------------
- eps -> 0+ n + 1
-
- SymbMath:
- Input:
- assume(n > -1)
- inte(x^n, x from eps to 1)
- subs(eps=0 to last)
- Output:
- assumed
- 1/(1 + n) - eps^(1 + n)/(1 + n)
- 1/(1 + n)
-
-
- *************************** Example 4 ***************************
- Maple:
- > 0^n;
- 0
-
- # Maple flags the error only when 'n' is replaced by the constant 0:
-
- > 0^0;
- Error, 0^0 is undefined
-
- SymbMath:
- Input:
- assume(n > 0)
- 0^n
- 0^-n
- 0^0
- Output:
- assumed
- 0
- discont
- undefined
-
- **************************** Example 5 ******************************
- Maple:
- > int(x^k, x);
-
- (k + 1)
- x
- --------
- k + 1
-
- SymbMath:
- Input:
- inte(x^k*d(x))
- subs(k=-1 to last)
- Output:
- constant + x^(1 + k)/(1 + k)
- discont
-
- **************************** Example 6 *****************************
- Maple:
- # The following limit is left unevaluated:
- > limit(x^k/exp(x), x=infinity);
-
- k
- x
- limit ------
- x -> infinity exp(x)
-
-
- # We might ask if Maple knows this result for specific (constant) values
- # of the symbolic parameter 'k'. The answer is a QUALIFIED "yes".
- # Maple knows the result for 'k' equal to 10^8...
-
- > limit(x^(10^8)/exp(x), x=infinity);
-
- 0
-
-
- # ...and Maple knows the result for 'k' equal to 10^9...
-
- > limit(x^(10^9)/exp(x), x=infinity);
-
- 0
-
- # ...BUT, Maple seems to FORGET the result when 'k' equals 10^10...
-
- > limit(x^(10^10)/exp(x), x=infinity);
-
- 10000000000
- x
- limit ------------
- x -> infinity exp(x)
-
- SymbMath:
- Input:
- lim(x=inf, x^k/exp(x))
- lim(x=inf, x^(10^10)/exp(x))
- lim(x=inf, x^(10^10000)/exp(x))
- Output:
- 0
- 0
- 0
-
- ****************************** Example 7 ****************************
- Maple:
- > int(x^m * exp (-b * x), x=0..infinity);
-
- infinity
- /
- | m
- | x exp(- b x) dx
- |
- /
- 0
-
-
- # As expected, the integral remains unevaluated. Now declare the signs
- # of the symbolic parameters:
-
- > signum(b) := 1;
-
- signum(b) := 1
-
- > signum(m) := 1;
-
- signum(m) := 1
-
-
- # Upon attempting to compute the integral a second time...
-
- > int(x^m * exp (-b * x), x=0..infinity);
-
- infinity
- /
- | m
- | x exp(- b x) dx
- |
- /
- 0
-
- # ...THE INTEGRAL CONTINUES TO REMAIN UNEVALUATED, despite the fact that
- # the signs of the parameters 'b' and 'm' were declared PRIOR to the second
- # attempt at computation.
-
- SymbMath:
- Input:
- inte(x^n*exp(-a*x), x from 0 to inf)
- Output:
- inte(x^n*exp(-a*x), x, 0, inf)
-
-
- ************************ Example 8 *********************************
- Mathematica:
- In[1]:= Integrate[1/x,{x,-1,1}]
- Out[1]= -Log[-1]
-
- Maple:
- has the same problem.
-
- SymbMath:
- Input:
- inte(1/x, x from -1 to 1)
- inte(1/x, x from -1 to 2)
- Output:
- 0
- ln(2)
-
-
- *************************** Example 9 *******************************
- Maple:
- has a problem for int(tan(x), x=0..pi).
-
- SymbMath:
- Input:
- inte(tan(x), x from 0 to pi)
- Output:
- 0
-
- **************************** Example 10 ****************************
- Mathematica:
- cannot evaluate integral of sgn(x).
-
- Maple:
- # cannot evaluate inegral of signum(x) by int(). Help with a procedure:
- # Load the procedure into Maple:
-
- > read `pvint.txt`;
-
- pvint := proc(f,x,a,b,s)
- local i1,i2,eps;
- signum(eps) := 1;
- i1 := int(f,x = a .. s-eps);
- i2 := int(f,x = s+eps .. b);
- simplify(i1+i2);
- limit(",eps = 0,right)
- end
-
-
- > pvint(signum(x), x, -1, 1, 0);
-
- - eps 1
- / /
- | |
- limit | signum(x) dx + | signum(x) dx
- eps -> 0+ | |
- / /
- -1 eps
-
- # Maple refuses to evaluate this P.V. integral:
-
- > simplify(");
-
- - eps 1
- / /
- | |
- limit | signum(x) dx + | signum(x) dx
- eps -> 0+ | |
- / /
- -1 eps
-
- > eval(");
-
- - eps 1
- / /
- | |
- limit | signum(x) dx + | signum(x) dx
- eps -> 0+ | |
- / /
- -1 eps
-
- SymbMath:
- Input:
- inte(sgn(x), x from -1 to 1)
- inte(sgn(x), x from -1 to 2)
- Output:
- 0
- 1
-
- ************************* Example 11 ********************************
- Implicit diff. gives 1+y'[x](1+1/y[x])==0; y'[x]==-y[x]/(y[x]+1).
-
- Mathematica:
- given this eq. as input to DSolve says that built-in
- procedure can't solve it.
-
- MACSYMA:
- (c1) depends(y,x)$
-
- (c2) ode2(diff(y,x) = -y/(y+1),y,x);
-
- (d2) - log(y) - y = x + %c
-
- (c3) method;
-
- (d3) separable
-
-
- SymbMath:
- solve the differential equation by integration inte() or by dsolve().
- Input:
- d(y)/d(x)*(1+1/y) === -1
- inte(last*d(x))
- Expand=On
- dsolve(d(y)/d(x) === -y/(y+1), y)
- Output:
- (1 + 1/y)*d(y)/d(x) === -1
- y + ln(y*sgn(y)) === constant - x
- Expand = On
- -y - ln(y*sgn(y)) === constant + x
-
-
- ************************* Example 12 ********************************
- Mathematica:
- y'[x] = y[x]^(1/2)
- y[0] = 0
-
- DSolve could not handle it. (It rarely solves anything!!), and the
- RungeKutta package only gave me the solution
-
- y[x]=0
-
- Obviously, there is another solution viz.
-
- y[x] = (x/2)^2
-
- SymbMath:
- Input:
- dsolve(d(y)/d(x) === sqrt(y), y)
- (last/2)^2
- Output:
- 2*sqrt(y) === constant + x
- y === 1/4*(constant + x)^2
-
- ************************* Example 13 ********************************
- Maple:
- > sqrt(x*x);
- x
-
- Mathematica:
- Sqrt[a^2] evaluates to Sqrt[a^2].
-
- SymbMath:
- Input:
- sqrt(x^2)
- assume(a > 0)
- sqrt(a^2)
- assume(b <0 )
- sqrt(b^2)
- Output:
- x*sgn(x)
- assumed
- a
- assumed
- -b
-
- ********************** Example 14 **********************************
- Maple and Mathematica cannot find the integrals of abs(x).
-
- SymbMath:
- Input:
- inte(abs(x), x from -1 to 1)
- inte(abs(x)^5*d(x))
- Output:
- 1
- constant + 1/6*abs(x)^6*sgn(x)
-
- ---------------------------------------------------------------------
-
- The following problems are taken from Swokowski's Calculus
- book. They cause Mathematica to fail because of a singularity in
- the interior of the interval of integration:
-
- Section 10.4 Problems 3, 12, 15, 16, 23, 29.
-
- The comments "INTEGRAL IS DIVERGENT" and "Principal Value" come from
- Macsyma. Mma gives no indication that anything is amiss.
-
- ************************ Problem3 *********************************
- Mathematica:
- In[4]:= Integrate[1/x^2,{x,-3,1}]
-
- 4
- Out[4]= -(-) (* INTEGRAL IS DIVERGENT *)
- 3
-
- SymbMath:
- Input:
- inte(1/x^2, x from -3 to 1)
- Output:
- inf
-
- ************************** Problem12 ***************************
- Mathemtica:
- In[6]:= Integrate[x^(-4/3),{x,-1,1}]
-
- Out[6]= -6 (* INTEGRAL IS DIVERGENT *)
-
- SymbMath:
- Input:
- inte(x^(-4/3), x from -1 to 1)
- Output:
- inf
-
- **************************** Problem15 ************************
- Mathematica:
- In[7]:= Integrate[1/x,{x,-1,2}]
-
- Out[7]= -Log[-1] + Log[2]
-
- Maple:
- has the same problem.
-
- Macsyma:
- (c7) integrate(1/x,x,-1,2);
- Principal Value
- (d7) log(2)
-
- SymbMath:
- Input:
- inte(1/x, x from -1 to 2)
- Output:
- ln(2)
-
-
- ********************** Problem16 ************************************
- Mathematica:
- In[8]:= Integrate[1/(x^2-x-2),{x,0,4}]
-
- -Log[-2] Log[2] Log[5]
- Out[8]= -------- + ------ - ------
- 3 3 3
-
- Macsyma:
- (c8) integrate(1/(x^2-x-2),x,0,4);
- Principal Value
- log(5)
- (d8) - ------
- 3
-
-
- SymbMath:
- Input:
- inte(1/(x^2-x-2), x from 0 to 4)
- Output:
- -1/3*ln(2) + 1/3*ln(2/5)
-
- ***************************** Problem23 **********************
- Mathematica:
- In[10]:= Integrate[(1/x^2)Cos[1/x],{x,-1,2}]
-
- 1
- Out[10]= Sin[-1] - Sin[-] (* INTEGRAL IS DIVERGENT *)
- 2
-
- SymbMath:
- Input:
- y=1/x^2*cos(1/x)
- inte(y, x from -1 to 0-zero) + inte(y, x from 0+zero to 2)
- Output:
- y = x^(-2)*cos(1/x)
- sin(-1) - sin(1/2) + 2*sin(inf)
-
- ************************** Problem29 ********************************
- Mathematica:
- In[12]:= Integrate[1/(x-4)^2,{x,0,Infinity}]
-
- 1
- Out[12]= -(-) (* INTEGRAL IS DIVERGENT *)
- 4
-
- SymbMath:
- Input:
- y=1/(x-4)^2
- inte(y, x from 0 to 4-zero) + inte(y, x from 4+zero to inf)
- Output:
- y = (-4 + x)^(-2)
- inf