{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# SBM-ML模型\n", "\n", "参考文献:命令控制与可交易环境政策下的碳排放强度减排效应\n", "\n", "## 原理\n", "\n", "目标函数:$\\omega^{t}=\\max \\sum_{k=1}^{K} a_{k}^{t}$\n", "\n", "s.t. 对第 1 个省区:\n", "\n", "$\\sum_{k=1}^{K} z_{k}^{1, t} \\times y_{k}^{t} \\geqslant y_{1}^{t}+a_{1}^{t}$\n", "\n", "$\\sum_{k=1}^{K} z_{k}^{1, t} \\times u_{k}^{t}=u_{1}^{t} $\n", "\n", "$\\sum_{k=1}^{K} z_{k}^{1, t} \\times$\n", "\n", "$e_{k}^{t}=e_{1}^{t} $\n", "\n", "$\\sum_{k=1}^{K} z_{k}^{1, t} \\times x_{k, n}^{t} \\leqslant x_{1, n}^{t}, n=1,2 $\n", "\n", "$z_{k}^{1, t} \\geqslant 0, k=1, \\cdots, K$\n", "\n", "……\n", "\n", "对第 K 个省区:\n", "\n", "$\\sum_{k=1}^{K} z_{k}^{K . t} \\times y_{k}^{t} \\geqslant y_{K}^{t}+a_{K}^{t} $\n", "\n", "$\\sum_{k=1}^{K} z_{k}^{K, t} \\times u_{k}^{t}=u_{K}^{t} $\n", "\n", "$\\sum_{k=1}^{K} z_{k}^{K . t} \\times$\n", "\n", "$e_{k}^{t}=e_{K}^{t} $\n", "\n", "$\\sum_{k=1}^{K} z_{k}^{K, t} \\times x_{k, n}^{t} \\leqslant x_{K, n}^{t}, n=1,2$\n", "\n", "$z_{k}^{K, t} \\geqslant 0, k=1, \\cdots, K$\n", "\n", "$a_{k}^{t}$ 为 $t$ 期第 $k$ 个省区的潜在产出增量, $\\omega^{t}$ 为 $t$ 期最大潜在产出增量总和。非能源投入与合意产出的不等式约束代表这两个变量具有强可处置性,能源投入与非合意产出的等式约束代表它们是弱可处置的,决策单元的权重 $z$ 的非负性约束说明模型满足规模报酬不变假设。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## matlab 程序\n", "\n", "``` matlab\n", "clc;clear;\n", "data = xlsread('C:\\Users\\Administrator\\Desktop\\数据.xlsx');\n", "x = data(2:4,:) ; y = data(5:6,:);\n", "t = 10; % 年份\n", "k = 12; % 省份\n", "LB = [-1000000*ones(k,1);zeros(k*k,1)]; UB = [];\n", "\n", "for i = 1:t\n", " f = -[ones(1,k),zeros(1,k*k)]'; % 目标函数\n", " \n", " for j = 1:k\n", " xx(:,j) = x(:,i+(j-1)*t);\n", " yy(:,j) = y(:,i+(j-1)*t);\n", " end\n", " \n", " Aeq = []; beq = []; A = []; b = [];\n", " for j = 1:k\n", " Aeq = [Aeq ; zeros(2,k*j),[xx(3,:);yy(2,:)],zeros(2,k*(k-j))];\n", " beq = [beq ; xx(3,j) ; yy(2,j)];\n", " \n", " A = [A; zeros(2,k*j),xx(1:2,:),zeros(2,k*(k-j))];\n", " a = zeros(1,k); a(1,j)=1;\n", " A = [A; a,zeros(1,k*(j-1)),-yy(1,:),zeros(1,k*(k-j))];\n", " b = [b; xx(1:2,j)];\n", " b = [b; -yy(1,j)];\n", " end\n", " w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);\n", "end\n", "\n", "```" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }