我正在尝试解决最大化函数s.t. 14个约束和15个变量。 其中一些是线性的,一些不是。它们都是方程式(没有不等式)。
我尝试使用&fsolve'和'解决',使用lagrange(最终得到29个方程式和30个变量) - 这样做并没有那么好......
我转到了fmincon。我在一个名为objectfun.m的文件中设置了一个带有目标函数的脚本:
function f = objectfun(x,I,rho)
% SWAPPING VARIABLE NAMES FOR READABILITY:
w = x(1);
t = x(2);
beta = x(3);
r = x(4);
% VALUE FUNCTION TO BE MINIMIZES:
f = -(rho*w*(1-t)+beta+I*(1+(1-t)*r));
我已经设置了另一个约束:
function [c, ceq] = confun(x,...
Bs,Bu,sigma_s,sigma_u,rho,c_bar,I,A,alpha)
% SWAPPING VARIABLE NAMES FOR READABILITY:
w = x(1);
t = x(2);
beta = x(3);
r = x(4);
vum = x(5);
vsm = x(6);
ms = x(7);
cstar = x(8);
zs = x(9);
zu = x(10);
H = x(11);
K = x(12);
Y = x(13);
L = x(14);
mu = x(15);
% INEQUILITY CONSTRAINTS:
c = [];
% EQUALITY CONSTRAINTS:
ceq = [ms-Bs*vsm^sigma_s; % 1
mu-Bu*vum^sigma_u; % 2
(1+r*(1-t))*cstar-(1-rho)*w*(1-t); % 3
zs-cstar/c_bar; % 4
zu-1+zs; % 5
H-(cstar^2)/(2*c_bar); % 6
I-K-H; % 7
A*(K^alpha)*(L^(1-alpha))-Y; % 8
L-(zs+rho*zu+ms+rho*mu); % 9
w-(1-alpha)*A*(K/L)^alpha; % 10
r-alpha*A*(K/L)^(alpha-1); % 11
t*Y-beta*(1+ms+mu); % 12
vum-rho*w*(1-t)-beta; % 13
vsm-w*(1-t)-beta]; % 14
主要剧本:
%% Parameters:
Bs =0.0;
Bu =0.0;
sigma_s = 1.5;
sigma_u = 1.5;
rho = 0.33;
c_bar = 6;
I = 3;
A = 1;
alpha = 0.33;
%% Numeric Solution:
x0 = 0.5*ones(length(var_names),1);
objective = @(x)objectfun(x,I,rho);
constraints = @(x)confun(x,...
Bs,Bu,sigma_s,sigma_u,rho,c_bar,I,A,alpha);
options = optimoptions(@fmincon);
[s,fval] = fmincon(objective,x0,[],[],[],[],[],[],constraints,options);
问题: 解决方案是胡说八道。我多次查看方程式 - 让我们假设他们的好处! (请...... [=]
提前致谢!!!
答案 0 :(得分:0)
您可以执行以下操作: