最近在编写代码时,论文提及到使用R中的constrOptim.nl来求解约束条件下的非线性方程组。查看相关文档发现constrOptim.nl求解的似乎是用于未知数是一维的情况,请问,如何求解未知数是向量或者矩阵形式的非线性方程组?
例如,优化问题为
min z=(1-x1^2)+100(x2-x1^2)^2
s.t: x1^2+x^2<=4
x1/x2>=2
R语言实现为
library(alabama)
obj.f<-function(x){
x1<-x[1]
x2<-x[2]
(1-x1^2)+100(x2-x1^2)^2
}
hin.f<-function(x){
x1<-x[1]
x2<-x[2]
c(-x1^2-x2^2+4,x1/x2-2)
}
#par为参数初值,obj.f为将要求解的目标函数,gr.f为目标函数的梯度,hin.f为不等式约束
constrOptim.nl(par=c(1,0.3),obj.f,gr.f,hin.f)
这里求出来的x[1],x[2],x[3]都是一维的,请问如果我的x[1],x[2],x[3]都是向量或者 矩阵应该如何利用constrOptim.nl求解?(就像线性方程一样y=xb+e,b都是向量)
如何利用R语言求解(未知数是矩阵形式的)非线性方程组?
Cloud2016 好耶,已经收藏学习啦,谢谢楼主耐心解答太感谢啦
Cloud2016 太谢谢楼主分享给我的链接啦,我认真学习了,已经解决论文中的问题