Learn R Programming

networkTomography (version 0.3)

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