# RE: st: convolution-trial/correction

 From "Andreas Aschbacher" To statalist@hsphsun2.harvard.edu Subject RE: st: convolution-trial/correction Date Wed, 24 Mar 2004 14:12:42 +0100 (MET)

```Dear fellows !

the following is maybe useful for someone :

clear
set obs 100
gen d =.
gen d1 =.
forvalues i = 1(1)100 {
local  j = `i' * 0.1
local f = (`j' - .1)/.1
di `j'
range x .1 `j' ` f '
di `f'
gen double y=exp(-(`j'-x)^2/2)*(0.1/(x + 0.1))
integ y x,gen(Sy)
replace d  = y  if  [_n] ==`i'
replace d1 = Sy  if  [_n] ==`i'

drop Sy y x
}
gen x = [_n]
gen x1 = x*.1
line d1 x1

please tell me any improvement for best computing of convolution-integrals.

andreas to all statalisters allover the world

Thanks Nick !
>
> clear
> set obs 100
> gen d =.
> gen d1 =.
> forvalues i = 1(1)100 {
> local  j = `i' * 0.1
> local f = (`j' - .1)/.1
> range x .1 `j' ` f '
> gen double y=exp(-(`j'-x)^2/2)*0.1/(x + 0.1)
> integ y x,gen(Sy)
> *replace d = y
> *replace d1 = Sy
> drop Sy y x
> }
>
> now I am quite near to compute convolution-integrals with Stata.
> This is necessary because of comparing results with those of
> LevenbergMarquardt
> Decomposing with -denormix- was also very useful.
> andreas
>
>
> The syntax for -range- is accessible via -help range-.
> >
> > It's usually not a good idea to change the index
> > of a loop within the loop; thus
> >
> > 	local j = `i' * 1
> >
> > You might need to -drop x- as well.
> >
> > Don't put [_n] to the left of an = sign.
> >
> > Nick
> > n.j.cox@durham.ac.uk
> >
> > > -----Original Message-----
> > > From: owner-statalist@hsphsun2.harvard.edu
> > > [mailto:owner-statalist@hsphsun2.harvard.edu]On Behalf Of Andreas
> > > Aschbacher
> > > Sent: 24 March 2004 10:41
> > > To: statalist@hsphsun2.harvard.edu
> > > Subject: Re: st: convolution-trial/correction
> > >
> > >
> > > > Dear fellows !
> > > >
> > > > /first thanks to Neil from yesterday/
> > > >
> > > > please consider the following as "Pseudocode"
> > > >
> > > > clear
> > > > set obs 100
> > > > gen d =.
> > > > gen d1 =.
> > > > forvalues i = 1(1)100 {
> > > > local i = `i' * 0.1     <-  0.1 *1,2,3,4,.....
> > > *-multplikation-operator
> > > > range x .1(.1)i          <-   range until i-value
> > >
> > > > gen double y=exp(-(`i'-x)^2/2)*0.1/(x + 0.1)    <- y as function of
> > > > i-value
> > > > integ y x,gen(Sy)    <- integrate until i-value
> > > > *save new y- and Sy- value in two columns :
> > > > replace d[_n] = y
> > > > replace d1[_n] = Sy
> > > > drop Sy y
> > > > }
> > > >
> >
> > *
> > *   For searches and help try:
> > *   http://www.stata.com/support/faqs/res/findit.html
> > *   http://www.stata.com/support/statalist/faq
> > *   http://www.ats.ucla.edu/stat/stata/
> >
>
> --
> +++ NEU bei GMX und erstmalig in Deutschland: TÜV-geprüfter Virenschutz
> +++
> 100% Virenerkennung nach Wildlist. Infos: http://www.gmx.net/virenschutz
>
> *
> *   For searches and help try:
> *   http://www.stata.com/support/faqs/res/findit.html
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>

--
+++ NEU bei GMX und erstmalig in Deutschland: TÜV-geprüfter Virenschutz +++
100% Virenerkennung nach Wildlist. Infos: http://www.gmx.net/virenschutz

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```