【问题标题】:How do I use constrOptim to set up a non linear objective function (spillman) with linear inequality constraint?如何使用 constrOptim 设置具有线性不等式约束的非线性目标函数(spillman)?
【发布时间】:2016-06-17 09:37:05
【问题描述】:

我正在尝试最大化 (a-bc^x1)Py -(PxX1) 形式的利润函数 其中 a-bc^x1 是溢出生产函数 (y=a-bc^x1)。我通过将生产函数乘以以 Py 表示的商品单价,将生产函数转换为收入函数。 Px*x1 是输入 x1 乘以 Px 的代价函数; Px 是 x1 的单价。

以上是受限于5000的预算。所以Px*X1 =0, 单价 Py 和 Px 分别为 100 和 200,我将约束重写为 0

    fn=function(x){
      x1=x[1]
      a=3474;b=1325;c=0.93575;Py=100;Px=200
      -(a-b*(c^x1))*(Py)-(a-b)-(x1*Px)

}

我的挑战是在编写ui、ci和theta时遇到的,我做了如下尝试;

A=matrix(c(1,0,-1,0),ncol=2,byrow=TRUE)
B=c(0,-25)
xinit=c(1,1)
xans2=constrOptim(theta=xinit, f=fn, grad=NULL, ui=A, ci=B,method = "Nelder-Mead")
xans2$par

我得到的答案是 25.00000,-9.89082,这很奇怪,因为我只期望 x1 有一个值。有人可以协助确定我的设置中的问题吗?

【问题讨论】:

    标签: r optimization linear-algebra linear-programming


    【解决方案1】:

    来自?optim

    为了优化,包含组件的列表:

    par:找到的最佳参数集。

    value:par对应的fn的值。

    您要的是xans2$par,它会根据您在函数中输入的内容为您提供找到的最佳参数集。

    xans2$value 给出与这些参数对应的fn 的值。

    如果您正在寻找单个值,我猜这就是您想要的。

    xans2$value
    [1] -329360
    

    【讨论】:

    • 我正在使用“ConstrOptim”,对于“xans&pars”,我期望一个值,因为我只估计一个参数 x1。请查看我的约束 0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多