unuran.cmv-class {Runuran} | R Documentation |
The class "unuran.cmv" provides am interface to UNU.RAN objects for continuous multivariate distributions. The interface might be changed in future releases. Do not use unnamed arguments!
Create a new instance of an "unuran.cmv" object using
new ("unuran.cmv", dim=1, pdf=NULL, mode=NULL, center=NULL, ll=NULL, ur=NULL)
.
mode
is implicitly used. If the mode
is not given either, the origin is used. (numeric vector –
optional)pdf
. The domain is only set if both vertices
are not NULL
. Otherwise, the domain is unbounded by default.
(numeric vectors)The user is responsible that the given informations are consistent. It depends on the chosen method which information must be given / are used. It is important, that the mode is contained in the (closure of the) domain.
Josef Leydold and Wolfgang H"ormann unuran@statmath.wu-wien.ac.at.
J. Leydold and W. H"ormann (2000-2007): UNU.RAN User Manual, see http://statmath.wu-wien.ac.at/unuran/.
## Create discrete distribution with given probability density function mvpdf <- function (x) { exp(-sum(x^2)) } mvdist <- new("unuran.cmv", dim=2, pdf=mvpdf) ## Make generator (using method HITRO) mvunr <- unuran.new(mvdist, "hitro") ## Draw sample of size 100 x <- unuran.sample(mvunr, 100) ## make scatter plot of random sample plot(x) ## now we draw a sample from the same density but restricted to ## the rectangle [0,1]x[0,1] mvdist <- new("unuran.cmv", dim=2, pdf=mvpdf, mode=c(0,0), ll=c(0,0), ur=c(1,1)) mvunr <- unuran.new(mvdist, "hitro") x <- unuran.sample(mvunr, 100) plot(x) ## draw a sample from the same density but restricted to ## the the first quadrant mvdist <- new("unuran.cmv", dim=2, pdf=mvpdf, mode=c(0,0), ll=c(0,0), ur=c(Inf,Inf)) mvunr <- unuran.new(mvdist, "hitro") x <- unuran.sample(mvunr, 100) plot(x) ## draw a sample from the same density but restricted to ## the rectangle [1,2]x[1,2] ## (Don't forget to provide a starting point for the HITRO method by ## setting 'center' mvdist <- new("unuran.cmv", dim=2, pdf=mvpdf, center=c(1.1,1.1), ll=c(1,1), ur=c(2,2)) mvunr <- unuran.new(mvdist, "hitro") x <- unuran.sample(mvunr, 100) plot(x)