对于我的论文的一部分,我必须编写一个程序,它解决了这个非线性方程组:
其中$ \ Lambda $是一个对角矩阵,其中$ \ lambda_1 $和$ \ lambda_2 $作为对角线条目。因此,我们得到六个具有六个未知参数的方程:
我尝试使用rootSolve包并找到了它的介绍文档,它为我提供了一些示例,但没有对其步骤进行太多解释。我一直在尝试根据示例对此进行编码,但现在我已经失去了如何对此进行建模。 有关此软件包的更多信息的任何提示或来源都会有所帮助! 提前谢谢!
到目前为止我做了什么:
i)试图以非矩阵形式解决系统,我扩展了' B'另一行的矩阵用作lampda和lampda2,分别是我代码中的x5和x6!作为一个错误,我得到矩阵是单数的,这是不可能的。这些值是任意选择的。
model <- function(x) {
F1 <- x[1]^2+x[2]^2
F2 <- x[1]*x[3]+x[2]*x[4]
F3 <- x[3]^2+x[4]^2
F4 <- x[5]*x[1]^2+x[6]*x[2]^2
F5 <- x[5]*x[1]*x[3]+x[6]*x[2]*x[4]
F6 <- x[5]*x[3]^2+x[6]*x[4]^2
F7 <- x[5] (edit: is this how you model free-variables?)
F8 <- x[6]
c(F1 = 3, F2 = 23, F3 = 21, F4=2, F5=1, F6=4, F7, F8)
}
multiroot(f = model, start = c(1, 1, 1, 2,2,2,3,3))
ii)试图对矩阵形式进行建模,这里的误差是返回的导数的数量不等于初始条件中的导数。
f3 <- function(x){
X<-matrix(ncol=2,nrow=3)
Y1<-matrix(c(1,2,3,4),nrow=2,ncol=2)
Y2<-matrix(c(6,5,4,9),nrow=2,ncol=2)
X[1:2,]%*%t(X[1:2,])-Y1,
X[1:2,]%*%(X[3,]*diag(2))%*%t(X[1:2,])-Y2,
)
}
multiroot(f3, start<-c(1,1,1,1,2,2))