我遇到了函数 BBsolve 和 dfsane 的问题,即我成功收敛,但在尝试求解以下非线性方程组时,我没有得到结果(par 未打印,仅:成功收敛)。
任何帮助将不胜感激!
代码可以在这里找到:
program_BLP_nash_arazas_uj<-function(){
library(matlib)
library(BB)
n<-1000
m<-1
alfa<--1
beta1<--1
beta2<-1
lambda<-0.4
gamma_1<-rep(1,n)
dim(gamma_1)<-c(n,1)
gamma_2<-1
beta1_vektor<-rep(-1,n)
dim(beta1_vektor)<-c(n,1)
beta2_vektor<-rep(1,n)
dim(beta2_vektor)<-c(n,1)
alfa_vektor<-rep(-1,n)
dim(alfa_vektor)<-c(n,1)
lf<-vector()
lf<-(rep(1L,n))
dim(lf)<-c(n,1)
kszi<-vector()
omega<-vector()
c<-vector()
ct<-(rep(1L,n))
dim(ct)<-c(n,1)
b100<-matrix(nrow=3, ncol = m)
b100_IV<-matrix(nrow = 3, ncol = m)
x<-matrix(nrow=n, ncol=3)
z<-matrix(nrow=n, ncol=3)
sf<-vector()
w<-vector()
w<-runif(n,min=0, max=1)
dim(w)<-c(n,1)
Xj<-vector()
Xj<-runif(n,min=1,max=2)
dim(Xj)<-c(n,1)
for (i in 1:m){
kszi<-rnorm(n, mean=0, sd=1)
dim(kszi)<-c(n,1)
omega<-rnorm(n, mean=0, sd=0.25)
dim(omega)<-c(n,1)
Cj<-gamma_1+gamma_2*w+lambda*kszi+omega
szamol<-function(Pj){
sf_szamlalo<-vector()
for(k in 1:n){
sf_szamlalo[k]<-exp(alfa*Pj[k]+beta1+beta2*Xj[k]+kszi[k])
}
sf_nevezo<-sum(sf_szamlalo)+1
for (l in 1:n){
sf[l]<-sf_szamlalo[l]/sf_nevezo
}
st<-t(sf)
stXlf<-st%*%lf
nevezo<-1-stXlf
nevezo_szam<-drop(nevezo)
tort<-lf/nevezo_szam
jobbold<--1/alfa*tort
G <- rep(NA, n)
t<-1:1000
G[t]<-Pj[t]-Cj[t]-jobbold[t]
G
}
p0 <- rnorm(1000)
BBsolve(par=p0, fn=szamol, control=list(M=1000, NM=FALSE))
}
}
program_BLP_nash_arazas_uj()