Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*** a ***/
- %let limit1=0;
- %let limit2=1;
- %let seed=573392;
- data integral1;
- call streaminit(&seed);
- do i=1 to 10000;
- x=&limit1+rand("UNIFORM")*(&limit2-&limit1);
- y1=exp(x)/(1+exp(x**2));
- y2=&limit2-&limit1;
- y=y1/y2;
- sum+y;
- int1=sum/i;
- diff2+(y-int1)**2;
- var=diff2/(i-1);
- stde=sqrt(var/i);
- output;
- end;
- run;
- /*** b ***/
- %let abeta=5;
- %let bbeta=1;
- data integral3;
- call streaminit(&seed);
- do i=1 to 10000;
- x=rand("BETA",&abeta,&bbeta) ;
- y1=exp(x)/(1+exp(x**2));
- y2=PDF("BETA",x,&abeta,&bbeta);
- y=y1/y2;
- sum+y;
- int1=sum/i;
- diff2+(y-int1)**2;
- var=diff2/(i-1);
- stde=sqrt(var/i);
- output;
- end;
- run;
- /*** c ***/
- %let abeta=2;
- %let bbeta=2;
- data integral4;
- call streaminit(&seed);
- do i=1 to 10000;
- x=rand("BETA",&abeta,&bbeta) ;
- y1=exp(x)/(1+exp(x**2));
- y2=PDF("BETA",x,&abeta,&bbeta);
- y=y1/y2;
- sum+y;
- int1=sum/i;
- diff2+(y-int1)**2;
- var=diff2/(i-1);
- stde=sqrt(var/i);
- output;
- end;
- run;
- /*** d ***/
- %let h=0.5;
- data integral5;
- call streaminit(&seed);
- do i=1 to 10000;
- x=rand("TRIANGLE",&h) ;
- y1=exp(x)/(1+exp(x**2));
- y2=(x <= &h)*2*x/&h + (x>&h) * 2*(1-x)/(1-&h); **(...) je logièki izraz sa rezultatom 0 ili 1;
- y=y1/y2;
- sum+y;
- int1=sum/i;
- diff2+(y-int1)**2;
- var=diff2/(i-1);
- stde=sqrt(var/i);
- output;
- end;
- run;
- /*** e ***/
- %let h=0.77;
- data integral6;
- call streaminit(&seed);
- do i=1 to 10000;
- x=rand("TRIANGLE",&h) ;
- y1=exp(x)/(1+exp(x**2));
- y2=(x <= &h)*2*x/&h + (x>&h) * 2*(1-x)/(1-&h); **(...) je logièki izraz sa rezultatom 0 ili 1;
- y=y1/y2;
- sum+y;
- int1=sum/i;
- diff2+(y-int1)**2;
- var=diff2/(i-1);
- stde=sqrt(var/i);
- output;
- end;
- run;
- /*** f ***/
- %let m=0.77;
- %let s=0.385;
- /** Truncated normal na intervalu (0,1) ***/
- data _NULL_;
- probn1=probnorm((&limit1-&m)/&s);
- probn2=probnorm((&limit2-&m)/&s);
- probn=probn2-probn1;
- call symput("probn",probn);
- put probn1 probn2 probn;
- run;
- data integral2;
- call streaminit(&seed);
- do while (i<10000);
- x=rand("NORMAL",&m,&s) ;
- if x>= &limit1 and x <= &limit2 then do;
- i+1;
- y1=exp(x)/(1+exp(x**2));
- y2=pdf('NORMAL',x,&m,&s)/&probn;
- y=y1/y2;
- sum+y;
- int1=sum/i;
- diff2+(y-int1)**2;
- var=diff2/(i-1);
- stde=sqrt(var/i);
- output;
- end;
- end;
- run;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement