我打算用nleqslv包來求解一個非線性方程組。這是下面的R腳本。爲什麼nleqslv函數返回NULL輸出?
library("nleqslv")
require(nleqslv)
x <- c(1.4,1.6,1.8,2)
NMfun1 <- function(g) {
y <- numeric(3)
y[1] <- -(4/g[1])-(4*log(g[2]))-sum(log(x))+sum((g[2]*x)^g[1]*log(g[2]*x))+2*sum(g[3]*(g[2]*x)^g[1]*log(g[2]*x)*exp(-(g[2]*x)^g[1])*(1-g[3]*exp(-(g[2]*x)^g[1]))^(-1))
y[2] <- -(4*g[1]/g[2])+sum(g[2]*x*(g[2]*x)^(g[1]-1))+2*sum(g[1]*g[3]*x*(g[2]*x)^(g[1]-1)*exp(-(g[2]*x)^g[1])*(1-g[3]*exp(-(g[2]*x)^g[1]))^(-1))
y[3] <- (4/(g[3]-1))-2*sum(exp(-(g[2]*x)^g[1])*(1-g[3]*exp(-(g[2]*x)^g[1]))^(-1))
y
}
gstart <- matrix(runif(3*100,min=0,max=1), nrow=100, ncol=3)
ans <- nleqslv(gstart,NMfun1, method="Newton", global="dbldog")
ans$g
我相信我沒有在我的代碼中做正確的事情,因爲我在運行代碼後總是得到NULL。 我需要你的幫助。謝謝
請修改您的標題! –
請使用SO https://stackoverflow.com/editing-help指定的格式設置,這有助於其他人瞭解問題並幫助您解決問題。 –
那麼來到stackoverflow。你應該選擇一個標題來解釋你的問題。 –