Without trying to figure this out in detail, let me suggest that
you not do f(a=1, b= .....) if you mean
f(1, ....)
They are different.
Next,
If you do this:
f(1/100, 1/10, c)
and then
limit(%,c,1)
you get ((5000 * (999900 - 20398 * log(10)))/9898020099)
which is 0.48...
I think that the commercial macsyma does slightly different things,
f(0.01,0.1,1);
gives 0.0118
RJF
but some programs, perhap
willisb@unk.edu wrote:
>
> In base 2, the numbers 1/100 and 1/10 have repeating binary
> representations;
> they are not base 2 floating point numbers. Your problem is not with
> maxima, but with rounding errors. Try
>
> (C2) f(1/100,1/10,1);
> Division by 0
> #0: f(a=1.1,b=1/10,c=1)
> -- an error. Quitting. To debug this try DEBUGMODE(TRUE);)
> (C3)
> Division by 0
> #0: f(a=1/100,b=1/10,c=1)
> -- an error. Quitting. To debug this try DEBUGMODE(TRUE);)
> (C4) f(0.01,0.1,1);
> (D4) 0.07492989580642
> (C5)
>
>
>
>
>
> fedor@ms2.inr.ac.ru@www.ma.utexas.edu on 03/05/2002 08:53:12 AM
>
> Sent by: maxima-admin@www.ma.utexas.edu
>
>
> To: maxima@www.ma.utexas.edu
> cc:
>
> Subject: [Maxima] Strange behaviour in case 0/0
>
>
> Hello,
>
> It is not yet a good bug report, because I've not yet got a simple
> function to lead to such results. For now I observe strange behaviour
> of maxima in case of expression of the form 0/0. Let us take the
> following function:
>
> f(a,b,c):= (((a^2-1)*b^4+(1-a^4)*b^2+a^4-a^2)*c^4*LOG(c)
> +((1-a^2)*b^4*LOG(b)+a^4*LOG(a)*b^2-a^4*LOG(a))*c^4
> +((a^4-1)*b^4*LOG(b)-a^4*LOG(a)*b^4+a^4*LOG(a))*c^2
> +(a^2-a^4)*b^4*LOG(b)+a^4*LOG(a)*b^4-a^4*LOG(a)*b^2)
> /((((a^2-1)*b^2-a^4+a^2)*c^2+(a^2-a^4)*b^2+a^6-a^4)
> *((b^2-1)*c^4+(1-b^4)*c^2+b^4-b^2));
>
> It is easy to notice, that for c=1 it has the form of 0/0 (but the
> limit c->1 is finit). If I ask maxima to calculate, say:
>
> (C30) f(0.01,0.1,1);
>
> I get:
>
> (D30) 0.07492989580642
>
> which is in no sence correct. (The correct limit for c->1 is
> 0.48137500492202). And no words about division by zero! Funny, for
> other parameters I can get this message:
>
> (C34) f(0.1,0.5,1);
>
> Division by 0
> #0: f(a=0.1,b=0.5,c=1)
> -- an error. Quitting. To debug this try DEBUGMODE(TRUE);)
>
> Let me not again -- denomenator of this expression is exactly zero for
> c=1.
>
> Fedor
>
> --
> Fedor Bezrukov http://www.inr.ac.ru/~fedor/
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>
>
>
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>