R:b和lambda值的多重非线性方程的解

R:b和lambda值的多重非线性方程的解,r,equation,nonlinear-optimization,R,Equation,Nonlinear Optimization,我需要一些帮助,用R来解这六个非常愚蠢的非线性方程 sigma1^2 = b1^2 + b2^2 sigma2 = b1* b3 + b2*b4 sigma3^2 = b3^2 + b4^2 sigma4^2 = lambda1 * b1^2 + lambda2 * b2^2 sigma5 = lambda1 * b1 * b3 + lambda2 * b2 * b4 sigma6^2 = lambda1 * b3^2 + lambda2 * b4^2 我已经知道了所有的西格玛值,现在我需要知

我需要一些帮助,用R来解这六个非常愚蠢的非线性方程

sigma1^2 = b1^2 + b2^2
sigma2 = b1* b3 + b2*b4
sigma3^2 = b3^2 + b4^2
sigma4^2 = lambda1 * b1^2 + lambda2 * b2^2
sigma5 = lambda1 * b1 * b3 + lambda2 * b2 * b4
sigma6^2 = lambda1 * b3^2 + lambda2 * b4^2
我已经知道了所有的西格玛值,现在我需要知道b和λ值。 我已经尝试过的是:

library(nleqslv)
fun <- function(x) { 
  f <- c(sigma1[1,1], sigma1[1,2], sigma1[2,2], sigma2[1,1], sigma2[1,2], sigma2[2,2])                  
  f[1] <-  x[1]^2  + x[2]^2                     
  f[2] <-  x[1]*x[3]+ x[2]*x[4]                 
  f[3] <-  x[3]^2 + x[4]^2          
  f[4] <-  x[5]*x[1]^2+x[6]*x[2]^2
  f[5] <-  x[5]*x[1]*x[3]  + x[6]*x[2]*x[4]
  f[6] <-  x[5]*x[3]^2 + x[6]*x[4]^2
  return(f)
} 
startx <- c(0.01,0.02,0.02,0.01,1.5,1.7)
nleqslv(startx,fun,jacobian=TRUE,control=list(btol=.01))
库(nleqslv)

乐趣好的,我刚刚尝试了以下方法,效果很好,希望能对其他有同样问题的人有所帮助:

ini <- function(x){
  c(x[1]^2  + x[2]^2 - sigma1[1,1],
    x[1]*x[3]+ x[2]*x[4] - sigma1[1,2],
    x[3]^2 + x[4]^2 - sigma1[2,2],
    x[5]*x[1]^2+x[6]*x[2]^2 - sigma2[1,1],
    x[5]*x[1]*x[3]  + x[6]*x[2]*x[4] - sigma2[1,2],
    x[5]*x[3]^2 + x[6]*x[4]^2 - sigma2[2,2])
}
x0 <- c(0.01,0.02,0.02,0.01,1.5,1.7)
nleqslv(x0, ini, method = "Broyden")

ini你好,欣竹,你应该给我们看看你尝试了什么。在问下一个问题之前,请先阅读。对不起,我已经附上了我的代码:)向我们展示设置
sigma
的代码。这是不可复制的。