In [1]:
using ApproxFun
setplotter("PyPlot");

Piecewise function sampling


In [2]:
f = abs(Fun(sin,[-5,5]))
r = ApproxFun.sample(f,10000)
ApproxFun.plot(f/sum(f))                           # Requires Gadfly or PyPlot
ApproxFun.hist(r;normed=true,bins=-5.:.1:5);


Jacobi singularity sampling


In [3]:
x=Fun(identity)
f = exp(x)*sqrt(1-x^2)
r = ApproxFun.sample(f,10000)
ApproxFun.plot(f/sum(f))                           # Requires Gadfly or PyPlot
PyPlot.plt[:hist](r;normed=true,bins=-1.:.05:1.);



In [4]:
x=Fun(identity)
f = exp(x)/sqrt(1-x^2)
r = ApproxFun.sample(f,10000)
ApproxFun.plot(f/sum(f);axis=[0.,5.])                           # Requires Gadfly or PyPlot
ApproxFun.hist(r;normed=true,bins=-1.:.05:1.);



In [5]:
x=Fun(identity)
f = exp(x)*(1-x)^0.123*(1+x)^(-0.234)
r = ApproxFun.sample(f,10000)
ApproxFun.plot(f/sum(f))                           # Requires Gadfly or PyPlot
ApproxFun.hist(r;normed=true,bins=-1.:.05:1.);


Heavy-tail sampling


In [6]:
f=Fun(x->(1+sech(x))/(1+x^2),[-Inf,Inf])
r=ApproxFun.sample(f,10000)

ApproxFun.plot(-15.:.01:15.,f/sum(f))
ApproxFun.hist(r;bins=-15.:.5:15.,normed=true);



In [7]:
f=Fun(x->(exp(-x)+1)/(1+x^2),[0,Inf])
r=ApproxFun.sample(f,10000)

ApproxFun.plot(0:.05:15,f/sum(f))
ApproxFun.hist(r;bins=0.:.2:15,normed=true);