Critique of these Stieltjes Integration Functions?
- To: mathgroup at smc.vnet.net
- Subject: [mg4193] Critique of these Stieltjes Integration Functions?
- From: sfpse at u.washington.edu (Russell Brunelle)
- Date: Thu, 13 Jun 1996 23:09:25 -0400
- Organization: University of Washington, Seattle
- Sender: owner-wri-mathgroup at wolfram.com
I'd appreciate any critque you might have of these functions for computing Stieltjes integrals, or any pointers to literature where quadrature of this type of integration might be discussed. (* Functions for Computing Stieltjes Integrals (* The following functions will approximate the Stieltjes integral of the function f with respect to the function g, where both are functions of t. The range min..max is the range in which you wish there to be exactly (10^fact)+1 samplings of f and g. If g is a CDF in the probability sense, and if the random variable it represents has a finite range, then min and max could be set to the infimum and supremum of that range, respectively. If g is a CDF in the probability sense, and it has an infinite range, then sampling outside of the min/max range is done at the discretion of the NSum Mathematica function, using the Wynn-Epsilon method. *) (* At this point, a modified "Riemann sums" approach is used. The reason I am posting this to Usenet is that I would like to learn if there is some way the normal Mathematica Integrate and NIntegrate functions can be used to compute Stieltjes integrals, or if some method more advanced than the method I am using here, could be employed to get better and faster results. The results from these functions are often very crude, especially when fact is low or either (0<=t<Infinity) or (-Infinity<t<Infinity) is being considered. I can be e-mailed at sfpse at u.washington.edu if you have any suggestions, or references to the literature where quadrature of Stieltjes integrals is discussed (I have so far found no such references). (* This function is used when one only wishes to consider min<=t<=max. For example, if g were the CDF for some random variable which takes on values in the range min...max, one could calculate the mean of this random variable with the command StieltjesIntegral[t, g, {t, min, max}] *) StieltjesIntegral[f_, g_, {t_, min_:0, max_:1}, fact_:2] := With[{di=(max-min)/(10^fact)}, Sum[N[((g /. t->t0)-(g /. t->(t0-di))) (f /. t->t0)], {t0, min, max, di}]] (* StieltjesIntegralH will perform integration for 0<=t<Infinity, and StieltjesIntegralG will perform integration for -Infinity<t<Infinity. The method used may fail if there are discontinuities outside of the min..max range *) StieltjesIntegralG[f_, g_, {t_, min_:0, max_:1}, fact_:2] := With[{n=10^fact, di=(max-min)/(10^fact), tfirst=(min+max)/2}, NSum[((g /. t->((-1)^i (Floor[(i-1)/2]+1) di + tfirst))- (g /. t->(((-1)^i (Floor[(i-1)/2]+1) di + tfirst)-di)))* (f /. t->((-1)^i (Floor[(i-1)/2]+1) di + tfirst)) ,{i, 0, Infinity}, NSumTerms->(n+1), Method->Fit]] StieltjesIntegralH[f_, g_, {t_, min_:0, max_:1}, fact_:2] := With[{n=10^fact, di=(max-min)/(10^fact)}, NSum[((g /. t->t0)-(g /. t->(t0-di))) (f /. t->t0), {t0, min, Infinity, di}, NSumTerms->(n+1), Method->Fit]] ------------------------------------------------------------------- Russell D. Brunelle | Lab Ph.: (206) 685-4343 University of Washington | Fax: (206) 685-3072 Industrial Engineering | Home Ph.: (206) 526-5328 Box 352650 | E-Mail: sfpse at u.washington.edu Seattle, WA 98195-2650 | ------------------------------------------------------------------- ==== [MESSAGE SEPARATOR] ====