[問題] 非線性規劃 主副程式變數使用問題已回收
恩..試了好久 還是不行 只好上來求助
程式主要是在有限制條件下做非線性規劃的動作
這是執行檔: 檔名:DMN_DEA Measure.m
clc;
clear;
----資料輸入部分(略)---
----以下是限制條件為線性----
for i=1:K
A=[X_vk_B(:,i),zeros(v,1),zeros(v,c),X_vk_B,zeros(v,K);
Y_rk_I(:,i),zeros(r,1),zeros(r,c),-Y_rk_I,zeros(r,K);
zeros(r,1),zeros(r,1),zeros(r,c),zeros(r,K),Y_minus_one;
zeros(m,1),Y_mk_F(:,i),zeros(m,c),zeros(m,K),-Y_mk_F];
B=[X_vk_B(:,i);-Y_rk_I(:,i);Y_minus_one(:,i);-Y_mk_F(:,i)];
Aeq=[];
Beq=[];
lb=[0;0; 0.1 ;zeros(K,1);zeros(K,1)];
ub=[[];[];0.3;[];[]];
x0=zeros(2+2*K+c,1);
[result(i,:),fval(i)]=fmincon(@DMNDEA,x0,A,B,Aeq,Beq,lb,ub,@DMN_confun);
end
2.目標函數的m檔 --檔名:DMNDEA.m
function f=DMNDEA(bet_B, bet_d)
wB=1/2;
wF=1/2;
f=-wB * bet_B- wF* bet_d;
return
end
3.非線性限制條件的m檔-- 檔名:DMN_confun.m
function [nceq,ceq]=DMN_confun(bet_B,bet_d,u,z_B,z_F)
---中間(略)---
bet_B=zeros(1,1); bet_B(:,:)=NaN;
bet_d=zeros(1,1); bet_d(:,:)=NaN;
% Nonlinear inequality constraints
nceq=[X_ck_BF.*u*z_B-(1-bet_B)*X_ck_BF(:,i).*u(:,i)
X_ck_BF.*(ones(c,K)-u)*z_F-(1-bet_d)*(ones(c,1)-u(:,i)).*X_ck_BF(:,i)];
% Nonlinear equality constraints
ceq= [];
return
end
問題1: 程式跑出來是這個訊息 Input argument "bet_d" is undefined.
可是我 bet_B 也是這樣寫 為什麼他只說有 bet_d 問題?
(改過其他命名 也是一樣....)
問題2: bet_B, bet_d ,u ,z_B ,z_F 都是未知數 (且皆為矩陣形式)
那還要定義他們嗎? 那應該在哪個程式定義呢? 一開始定義NaN可以嗎?
因為他們都是矩陣形式
所以我在執行檔寫迴圈 那目標函數跟非線性限制式還要寫成迴圈形式嗎?
(實在不太懂主副程式怎麼用>"<..)
不好意思 內文有點長 問題有點多 請各位幫忙 謝謝大家!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.126.147.48
推
08/12 17:21, , 1F
08/12 17:21, 1F
→
08/12 17:22, , 2F
08/12 17:22, 2F
→
08/12 17:23, , 3F
08/12 17:23, 3F
→
08/12 17:24, , 4F
08/12 17:24, 4F
→
08/12 17:25, , 5F
08/12 17:25, 5F
→
08/12 17:40, , 6F
08/12 17:40, 6F
→
08/12 17:42, , 7F
08/12 17:42, 7F
→
08/12 17:46, , 8F
08/12 17:46, 8F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 5 篇):