[SciPy-User] solving integration, density function
David Baddeley
david_baddeley at yahoo.com.au
Tue Dec 21 15:22:07 EST 2010
For your 2nd function, you should be able to use the linearity of integration
and integrate the two terms separately, giving you the sum of two error
functions. For a general case when you can't / don't want to find an analytic
solution, the stuff for numeric integration is in scipy.integrate, as Josef
mentioned.
cheers,
David
----- Original Message ----
From: Johannes Radinger <JRadinger at gmx.at>.
To: SciPy Users List <scipy-user at scipy.org>
Sent: Wed, 22 December, 2010 3:33:16 AMSubject: Re: [SciPy-User] solving
integration, density function
-------- Original-Nachricht --------
> Datum: Tue, 21 Dec 2010 09:18:15 -0500
> Von: Skipper Seabold <jsseabold at gmail.com>
> An: SciPy Users List <scipy-user at scipy.org>
> Betreff: Re: [SciPy-User] solving integration, density function
> On Tue, Dec 21, 2010 at 7:48 AM, Johannes Radinger <JRadinger at gmx.at>
> wrote:
> >
> > -------- Original-Nachricht --------
> >> Datum: Tue, 21 Dec 2010 13:20:47 +0100
> >> Von: Gregor Thalhammer <Gregor.Thalhammer at gmail.com>
> >> An: SciPy Users List <scipy-user at scipy.org>
> >> Betreff: Re: [SciPy-User] solving integration, density function
> >
> >>
> >> Am 21.12.2010 um 12:06 schrieb Johannes Radinger:
> >>
> >> > Hello,
> >> >
> >> > I am really new to python and Scipy.
> >> > I want to solve a integrated function with a python script
> >> > and I think Scipy should do that :)
> >> >
> >> > My task:
> >> >
> >> > I do have some variables (s, m, K,) which are now absolutely set, but
> in
> >> future I'll get the values via another process of pyhton.
> >> >
> >> > s = 400
> >> > m = 0
> >> > K = 1
> >> >
> >> > And have have following function:
> >> > (1/((s*K)*sqrt(2*pi)))*exp((-1/2*(((x-m)/s*K))^2) which is the
> density
> >> function of the normal distribution a symetrical curve with the mean
> (m) of
> >> 0.
> >> >
> >> > The total area under the curve is 1 (100%) which is for an
> integration
> >> from -inf to +inf.
> >> > I want to know x in the case of 99%: meaning that the integral (-x to
> >> +x) of the function is 0.99. Due to the symetry of the curve you can
> also set
> >> the integral from 0 to +x equal to (0.99/2):
> >> >
> >> > 0.99 = integral((1/((s*K)*sqrt(2*pi)))*exp((-1/2*(((x-m)/s*K))^2)),
> -x,
> >> x)
> >> > resp.
> >> > (0.99/2) =
> integral((1/((s*K)*sqrt(2*pi)))*exp((-1/2*(((x-m)/s*K))^2)),
> >> 0, x)
> >> >
> >> > How can I solve that question in Scipy/python
> >> > so that I get x in the end. I don't know how to write
> >> > the code...
> >>
> >>
> >> --->
> >> erf(x[, out])
> >>
> >> y=erf(z) returns the error function of complex argument defined
> as
> >> as 2/sqrt(pi)*integral(exp(-t**2),t=0..z)
> >> ---
> >>
> >> from scipy.special import erf, erfinv
> >> erfinv(0.99)*sqrt(2)
> >>
> >>
> >> Gregor
> >>
> >
> >
> > Thank you Gregor,
> > I only understand a part of your answer... I know that the integral of
> the density function is a error function and I know that the argument "from
> scipy.special import erf, erfinv" is to load the module.
> >
> > But how do I write the code including my orignial function so that I can
> modify it (I have also another function I want to integrate). how do i
> start? I want to save the whole code to a python-script I can then load e.g.
> into ArcGIS where I want to use the value of x for further calculations.
> >
>
> Are you always integrating densities? If so, you don't want to use
> integrals probably, but you could use scipy.stats
>
> erfinv(.99)*np.sqrt(2)
> 2.5758293035489004
>
> from scipy import stats
>
> stats.norm.ppf(.995)
> 2.5758293035489004
> Skipper
The second function I want to integrate is different, it is a combination of two
normal distributions like:
0.99 =
integrate(0.6*((1/((s1*K)*sqrt(2*pi)))*exp((-1/2*(((x-m)/s1*K))^2))+0,4*((1/((s2*K)*sqrt(2*pi)))*exp((-1/2*(((x-m)/s2*K))^2)))
and here again I know s1, s2, m and K and want to get x in the case when the
integral is 0.99. What do I write into the script I want create?
I think it is better if I can explain it with a graph but I don't know if I can
just attach pictures to the mail-list-mail.
/j
_______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
--
Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief!
Jetzt De-Mail-Adresse reservieren: http://portal.gmx.net/de/go/demail
_______________________________________________
SciPy-User mailing list
SciPy-User at scipy.org
http://mail.scipy.org/mailman/listinfo/scipy-user
More information about the SciPy-User
mailing list