|
[Date Index]
[Thread Index]
[Author Index]
Bug in FullSimplify[] confirmed by Wolfram Research
- To: mathgroup at smc.vnet.net
- Subject: [mg7747] Bug in FullSimplify[] confirmed by Wolfram Research
- From: "James H. Steiger" <steiger at unixg.ubc.ca>
- Date: Mon, 7 Jul 1997 04:41:20 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Mathematica's FullSimplify[] function has a bug which causes incorrect
evaluation of expressions whose simplification path involves the
Beta function and its relatives.
The existence of the bug was verified by Dave Withoff of Wolfram
Research in an email exchange [TS13750].
I discovered the bug while using Mathematica to generate some
results in the Binomial Distribution. A portion of my original letter
to Wolfram Research, together with the Tech Support response, is shown
below.
Note that the bug can affect results that have no apparent connection
with the Beta function, because such expressions may, upon
simplification, reduce to an expression involving the Beta function.
This demonstrates that FullSimplify is not reliable, and any results
generated with it should be checked carefully.
**************** Portions of original correspondence with WRI *****
************ My Note to Wolfram ***********************************
Recently, using Mathematica 3.0, I
had an experience which struck me as
anomalous.
I began by defining the CDF of the Binomial
probability distribution in terms
of Beta and Gamma functions
In[1]:=
BinomialCDF[N_, p_, x_] :=
1 - Beta[p, x + 1, N - x] Gamma[N + 1]/(Gamma[x + 1] Gamma[N - x])
Then I try a sample calculation:
In[2]:=
BinomialCDF[26,7/10,17]
Out[2]=
1 - 28120950 Beta[7/10, 18, 9]
The numerical answer, given below, agrees with the output of all other
programs I have tried, including Mathematica. It is correct.
In[3]:= N[%]
Out[3]= 0.372596
Yet, trying Mathematica's FullSimplify[] function produces
a rather surprising result.
In[4]:= BinomialCDF[26,7/10,17]
Out[4]= 1 - 28120950 Beta[7/10, 18, 9]
In[5]:= FullSimplify[%]
Out[5]= 1
Mathematica's FullSimplify function "simplifies"
Beta[7/10,18,9] to 0, although it clearly is not 0.
Can anybody explain this result? I have been puzzling over it.
Unless there is some obvious explanation which I cannot grasp
(I am not a mathematician) it would seem to indicate a VERY serious bug.
Note that, if one substitutes .7 for 7/10, one obtains the correct
answer! Note also that if one simply changes the 7/10 to 1/2,
one obtains a correct answer, identical to the one obtained with
the value .5!!
In[29]:=BinomialCDF[26,1/2,17]
Out[29]= 1 - 28120950 Beta[1/2, 18, 9]
In[30]:=FullSimplify[%]
Out[30]=64574877/67108864
In[31]:=N[%]
Out[31]=0.962241
*********************** Response from WRI
*********************************************
Hello,
Thank you for taking the time to report this error. You are correct
in observing that there is an error in the transformation of the
Beta function in FullSimplify. I was not previously aware of this
error, and have forwarded this example to the people in our development
group so that this can be investigated.
The only currently available workaround is to avoid using FullSimplify
for expressions that contain Beta functions.
We apologize for any difficulties caused by this error.
Dave Withoff
Wolfram Research
********************************************
Mr. Withoff's suggestion, though helpful, really will not solve the problem,
because
the user cannot be expected to know how the expression submitted to
"FullSimplify" will simplify!
For example, try loading
<<Statistics`DiscreteDistributions`
then see that
FullSimplify[CDF[BinomialDistribution[26,7/10],17]]
returns the value 0, instead of the correct answer, which is
9314893730914103398579569
--------------------------
25000000000000000000000000
or
0.372596
Unless the user is aware of the connection between the CDF of the
Binomial Distribution and the Beta function, he/she would not know
to avoid using FullSimplify[].
FullSimplify does have an option, ExcludedForms, that can be useful
in solving such problems.
Of course the question remains, are there other widely used functions
that FullSimplify does not handle properly?
Professor James H. Steiger Department of Psychology
(steiger at unixg.ubc.ca) 2136 West Mall
Office: 604-822-2706 University of British Columbia
Fax: 604-822-6923 Vancouver, B.C., Canada V6T 1Z4
Prev by Date:
Re: How to define an auto-Collect function (fwd)
Next by Date:
Re: nested * and ** (rules for commutative quantities)
Previous by thread:
Re: How to define an auto-Collect function (fwd)
Next by thread:
2-D Graphics Options
|