On Sun, Jan 11, 2009 at 6:03 AM, RON70 <ron_michae...@yahoo.com> wrote: > > Hi, I want find all roots for the following polynomial : > > a <- c(-0.07, 0.17); b <- c(1, -4); cc <- matrix(c(0.24, 0.00, -0.08, > -0.31), 2); d <- matrix(c(0, 0, -0.13, -0.37), 2); e <- matrix(c(0.2, 0, > -0.06, -0.34), 2) > A1 <- diag(2) + a %*% t(b) + cc; A2 <- -cc + d; A3 <- -d + e; A4 <- -e > fn <- function(z) > { > y <- diag(2) - A1*z - A2*z^2 - A3*z^3 - A4*z^4 > return(det(y)) > }; uniroot(fn, c(-10, 1)) > > Using uniroot function, I got only one solution of that. Is there any > function to get all four solutions? I looked at polyroot() function, but I > do not think it will work for my problem, because, my coef. are matrix, nor > number
Use curve to plot the curve of your function. Then, see where the roots are, and use uniroot with a small interval around the roots to determine their exact value. Example: f <- function(x) x^2-1 curve(f,-5,5) uniroot(f,c(-2,-0.2)) uniroot(f,c(0.2,2)) Paul ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.