#!/usr/bin/env python # coding: utf-8 # # BCC 模型 # ## 原理 # $$ # \max \mu Y_0-\mu _0\\ # \text{s}.\text{t}.\left\{ \begin{array}{c} # \omega X_i-\mu Y_i+\mu _0\ge 0,\quad i&=1,...,n\\ # \quad \omega X_0=1\\ # \omega \ge 0,\mu \ge 0\\ # \end{array} \right.\tag{1} # $$ # # 转换为对偶模型: # # $$ # \min Z^{0} \\ # \left\{\begin{array}{l} # \sum_{j=1}^{n} X_{j}^{0} \lambda_{j} \leq Z^{0} X_{0}^{0} \\ # \sum_{j=1}^{n} Y_{j}^{0} \lambda_{j} \geq Y_{0}^{0} \\ # \sum_{j=1}^{n} \lambda_{j}<1 \\ # \lambda_{j} \geq 0, j=1,2, \cdots n # \end{array}\right.\tag{2}$$ # ## matlab 程序 # ```matlab # clc; clear; # # % 1.添入数据 # x = [ ]; y = [ ]; % 其中 x 表示输入变量,y 表示输出变量 # # % 2.确定参数 # n = size(x,1); % 输入变量 x 的行数 # m = size(x,2); % 输入变量 x 的列数 # s = size(y,2); % 输出变量 y 的列数 # # % 3.线性规划 # A = [-x, y, ones(n,1)]; % 约束矩阵 # b = zeros(n,1); % 约束增广矩阵 # LB = zeros(m+s+1,1); UB = []; % 带估计参数取值范围,均 ≥0 # for i=1:n # f = [zeros(1,m), -y(i,:), 1]; % 目标函数 min # Aeq = [x(i,:), zeros(1,s+1)]; # beq = 1; % 约束等式 # w(:,i) = linprog(f,A,b,Aeq,beq,LB,UB); # E(i,i) = y(i,:)*w(m+1:m+s,i); # theta(i) = E(i,i); # end # w % 权重向量 # theta % 输出相对效率值 # # ```