Ich versuche, eine Gewinnfunktion der Form zu maximieren (a-bc^x1) Py - (Px X1) wo a-bc^x1 ist eine spillman Produktionsfunktion (y = a-bc^x1). Ich konvertiere die Produktionsfunktion in eine Umsatzfunktion, indem ich die Produktionsfunktion mit dem Einheitspreis der Ware multipliziere, ausgedrückt als Py. Px * x1 ist die Kostenfunktion, die eingegeben wird x1 multipliziert mit Px; Px ist der Stückpreis von x1.Wie verwende ich constrOptim, um eine nichtlineare Zielfunktion (Spillman) mit linearer Ungleichheitsbedingung zu erstellen?
Die oben wird von einem Budget von 5000. So Px eingeschränkt * X1 < = 5000 und X1> = 0, Einheitspreise Py und Px sind 100 und 200 jeweils neu zu schreiben ich die Einschränkung als = x1 < = 25. Ich habe meine Zielfunktion wie unten
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)
}
Mein challange kommen bei der Codierung ui, ci und Theta aufgebaut, die ich einen Versuch gemacht haben, wie folgt;
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
Ich erhalte eine Antwort von 25,00000, -9,89082 die seltsam ist, weil ich nur einen Wert für x1 erwarten. Könnte mir jemand helfen, das Problem in meinem Setup zu identifizieren?
Ich benutze 'ConstrOptim', für die 'xans & pars' erwarte ich einen einzelnen Wert, da ich nur einen Parameter x1 schätze. Bitte schauen Sie sich meine Einschränkung 0 <= x1 <= 25 an, dies sollte nur einen Wert für x1 ergeben –