diff options
Diffstat (limited to 'src/input/huang.input.pamphlet')
-rw-r--r-- | src/input/huang.input.pamphlet | 564 |
1 files changed, 564 insertions, 0 deletions
diff --git a/src/input/huang.input.pamphlet b/src/input/huang.input.pamphlet new file mode 100644 index 00000000..ddaf6a78 --- /dev/null +++ b/src/input/huang.input.pamphlet @@ -0,0 +1,564 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input huang.input} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +\section{License} +<<license>>= +--Copyright The Numerical Algorithms Group Limited 1996. +@ +<<*>>= +<<license>> + +-- this is here strictly for documentation purposes, nothing is executed +-- +-- 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 +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} |