首页 > 解决方案 > 用于非线性方程求解的 BBsolve 不打印结果

问题描述

我遇到了函数 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()    

标签: rfunctionequation-solvingnonlinear-equation

解决方案


推荐阅读