Learn R Programming

networkTomography (version 0.2)

ipfp: Function to run basic IPFP (iterative proportional fitting procedure)

Description

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

Usage

ipfp(y, A, x0, tol = .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 .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, vector of length ncol containing solution obtained by IPFP. If full, list containing solution (as x), number of iterations (as iter), and norm of Ax - y (as errNorm)

Examples

Run this code
A <- buildStarMat(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)

Run the code above in your browser using DataLab