[scilab-Users] intg: results differ substantially from those from Wolfram Alpha, which are correct?

Serge Steer Serge.Steer at inria.fr
Tue May 24 16:51:38 CEST 2011


Le 24/05/2011 09:34, Ginters Bušs a écrit :
> ----- Message d'origine -----
> De : Ginters Bušs
> Date : 20/05/2011 13:09:
>
>     Dear all,
>
>     Let's integrate:
>
>     function y=f(x, a,
>     sigma),y=(1/sqrt(2*%pi))*log(abs(a+sigma*x))*exp(-(x^2)/2),endfunction
>
>     out=intg(-1e+2,1e+2,list(f,1,.1))
>
>     out=8.605D-49
>
>     but Wolfram Alpha gives out= -0.111
>
>     which is a totally different answer.
>
>     I've noticed that intg and integrate incline to give values close
>     to zero when boundaries tend to infinity. So, I trust Wolfram
>     Alpha more. How to get around the apparent mistakes in intg,
>     integrate (particularly, I'm interested in indefinite integrals)?
>
>     Gin.
>
>
>
>
> On Sat, May 21, 2011 at 1:20 PM, Samuel GOUGEON
> <Samuel.Gougeon at univ-lemans.fr <mailto:Samuel.Gougeon at univ-lemans.fr>>
> wrote:
>
>      Hello,
>     The following thread on Bugzilla may also feed the present discussion:
>     http://bugzilla.scilab.org/show_bug.cgi?id=5728
>     Regards
>     Samuel
>
>
> Thanks. I like your insistance in that discussion, Sam.
>
> Although a "known-limitation-of-current-algorithm" might be a correct
> description of the current algorithm, it nevertheless does not help
> much when one wants the algorithm to give the correct solution and
> observes that a guy like Wolfram has apparently has done something
> about this issue: for y given function, Scilab's intg/integrate gives
> ok value for bounds (-50,50), but screws up for (-100,100) and larger
> bounds, which I consider still pretty narrow. On the contrary, Wolfram
> Alpha
>
> http://www.wolframalpha.com/input/?i=integration&a=*C.integration-_*Calculator.dflt-&f2=%281%2Fsqrt%282*pi%29%29*log%28abs%281%2B.1*x%29%29*exp%28-%28x
> <http://www.wolframalpha.com/input/?i=integration&a=*C.integration-_*Calculator.dflt-&f2=%281%2Fsqrt%282*pi%29%29*log%28abs%281%2B.1*x%29%29*exp%28-%28x>^2%29%2F2%29&x=0&y=0&f=Integral.integrand_%281%2Fsqrt%282*pi%29%29*log%28abs%281%2B.1*x%29%29*exp%28-%28x^2%29%2F2%29&f3=-infinity&f=Integral.rangestart_-infinity&f4=%2Binfinity&f=Integral.rangeend_%2Binfinity&a=*FVarOpt.1-_**-.***Integral.variable---.**Integral.rangestart-.*Integral.rangeend---
>
> gives ok values for bounds (-50,50), (-100,100), (-1000,1000) and it
> allows to directly use infinite bounds and get ok result (interim
> bounds like (-1e9,1e9) are not ok). I consider this a superior
> solution. If Wolfram can, why shouldn't Scilab try? The status quo
> might hurt Scilab's reputation in the domain in long run.
>
> Gin.

WolframAlpha is based on a symbolic computation engine that furnishes
much more tools for integration. In particular it is possible for it
doing serie expansion near the infinity.

If one remarks that for x>35 and x<-35 the function evaluates to zero it
it possible to reduce the integration interval and obtain a good result
-->intg(-35,35,myfun)
 ans  =
 
  - 0.0050776 

but without symbolic computation facilities it is difficult to
automatically determine that such integration interval reduction can be
done...

Serge Steer
INRIA
 



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20110524/29a91914/attachment.htm>


More information about the users mailing list