首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用optim() -两个方程两个未知数R

使用optim() -两个方程两个未知数R
EN

Stack Overflow用户
提问于 2015-09-22 03:54:14
回答 1查看 622关注 0票数 0

我正在尝试使用optim()来求解& maxim。下面的方程系统:

代码语言:javascript
运行
复制
model <- function(z) {
    q1 <- z[1]
    q2 <- z[2]
    return ((10-2*(q1+q2))*q1-k1*q1)
    return ((10-2*(q2+q1))*q2-k2*q2)
}

参数/变量的定义如下:

代码语言:javascript
运行
复制
A <- rep(0,2)
lowerb <- rep(0,2)
upperb <- rep(6,2) 
k1 <- 3
k2 <- 2

其余部分如下所示:

代码语言:javascript
运行
复制
optim(A, model, gr=NULL, method="L-BFGS-B", lower = lowerb, upper = upperb, control = list(fnscale = -1, trace = 1))$par

我没有收到错误,但是,最大值应该是在q1=1和q2=1,5,而不是像R现在所说的那样在1,75和0。由于我需要将其应用于更复杂的方程系统,因此我首先使用了一个简单的方程,它可以很容易地手动计算。

感谢您的帮助!非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-04-26 00:52:47

代码语言:javascript
运行
复制
k1 <- 3
k2 <- 2
q2 <- 0
q2 <- 0 
for (i in 1:20) {
  #For 1
  objective1 <- function(q) ((10-2*(q+q2))*q-k1*q)
  result1 <- optimize(objective1, c(0,10), maximum = TRUE)
  q1 <- result1$maximum 
  #For 2
  objective2 <- function(q) ((10-2*(q1+q))*q-k2*q)
  result2 <- optimize(objective2, c(0,10), maximum = TRUE)
  q2 <- result2$maximum 
  }
q1
q2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32703454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档