[R] finding root of nonlinear equation

Sherouk Moawad sheroukmoawad at yahoo.com
Tue Nov 17 21:37:38 CET 2015


Dear R experts 
I'm trying to use R to solve for the root of one nonlinear function I 
tried to use the package "rootSolve" but it didn't give any value the 
value is (numeric(0)) although I tried on changing the interval of 
root. 

I tried also the package "nleqslv" but itdidn't iterate what ever the 
guess I'm giving to the root. 

please tell me what to do? should i have to use another package or search 
in another program rather than R (like matehmatica or matlab for 
example) 


Here's the r code I've used 

>>>>>>>>>>>>> 
alpha <- 40 
beta <- 10 
n <- 20 

to1 <- c(0.26308002, 0.09350968, 0.17371400, 
0.10310227,0.15631892,0.21255328,0.12333682,0.076527274) 
to2 <-(0.31238764,0.03546888,0.41671089,0.15223569,0.68194715,0.01491989,0.37137511,0.19945158,0.23525854,0.29444296) 

tc  <- c(0,0,0.06469491,0.20090405) 

to1 <- matrix(to1) 
to2 <- matrix(to2); 
tc <- matrix(tc) 
r1 <- nrow(to1) 
r2 <- nrow(to2) 
I <- ifelse((tc>0), 1, 0) 

fn <- function(a) sum(sapply(2:4, function(j1) { 
sum(sapply(2:(j1-1), 
function(j2){ 
factorial(n-r2-I[j1]-I[j2])*factorial(r2+I[j1]+I[j2])*(j1>j2)/(((beta+sum(to1)+sum(tc)-tc[j1]-tc[j2])^(r1+alpha))*((beta+sum(to2)+tc[j1]+tc[j2])^(r2+alpha)))}))}))-sum(sapply(2:4, 
function(j1) {sum(sapply(2:(j1-1), 
function(j2){factorial(n+1-r2-I[j1]-I[j2])*factorial(r2+I[j1]+I[j2])*(j1>j2)/((n+2)*((a+beta+sum(to1)+sum(tc)-tc[j1]-tc[j2])^(r1+alpha))*((beta+sum(to2)+tc[j1]+tc[j2])^(r2+alpha)))}))}))-sum(sapply(2:4, 
function(j1) {sum(sapply(2:(j1-1), 
function(j2){factorial(n-r2-I[j1]-I[j2])*factorial(1+r2+I[j1]+I[j2])*(j1>j2)/((n+2)*((beta+sum(to1)+sum(tc)-tc[j1]-tc[j2])^(r1+alpha))*((a+beta+sum(to2)+tc[j1]+tc[j2])^(r2+alpha)))}))})) 

library(rootSolve) 
a=uniroot.all(fn,c(0,3)) 

##"a" is : numeric(0) 

library(nleqslv) 

nleqslv(5, fn) 
>>>>>>>>>> 

what ever the value i put for the guess appears as the solution of the root 
and the message is "Function criterion near zero" 

Thank you



More information about the R-help mailing list