ipfp: Function to run IPFP (iterative proportional fitting...

Description Usage Arguments Value Examples

Description

Use IPFP starting from x0 to produce vector x s.t. Ax = y within tolerance. Need to ensure that x0 > 0.

Usage

1
2
ipfp(y, A, x0, tol = sqrt(.Machine$double.eps), maxit = 1000,
  verbose = FALSE, full = FALSE)

Arguments

y

numeric constraint vector (length nrow)

A

constraint matrix (nrow x ncol)

x0

numeric initial vector (length ncol)

tol

numeric tolerance for IPFP; defaults to sqrt(.Machine$double.eps)

maxit

integer maximum number of iterations for IPFP; defaults to 1e3

verbose

logical parameter to select verbose output from C function

full

logical parameter to select full return (with diagnostic info)

Value

if not full, a vector of length ncol containing solution obtained by IPFP. If full, a list containing solution (as x), the number of iterations (as iter), and the L2 norm of Ax - y (as errNorm)

Examples

1
2
3
4
5
6
7
A <- matrix(c(1,0,0, 1,0,0, 0,1,0, 0,1,0, 0,0,1), nrow=3)
x <- rgamma(ncol(A), 10, 1/100)
y <- A %*% x
x0 <- x * rgamma(length(x), 10, 10)
ans <- ipfp(y, A, x0, full=TRUE)
print(ans)
print(x)

Example output

$x
[1] 1002.3407  841.9348  824.3197  710.5676 1054.0687

$iter
[1] 0

$errNorm
[1] 2.273737e-13

[1]  922.6441  921.6313  779.0315  755.8558 1054.0687

ipfp documentation built on May 1, 2019, 10:13 p.m.

Related to ipfp in ipfp...