单纯形法C语言程序(共14页).doc
《单纯形法C语言程序(共14页).doc》由会员分享,可在线阅读,更多相关《单纯形法C语言程序(共14页).doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上实验:编制线性规划计算程序一、实验目的:(1)使学生在程序设计方面得到进一步的训练,掌握Matlab (C或VB)语言进行程序设计中一些常用方法。(2)使学生对线性规划的单纯形法有更深的理解.二、实验用仪器设备、器材或软件环境 计算机, Matlab R2009a三、算法步骤、计算框图、计算程序等本实验主要编写如下线性规划问题的计算程序:其中初始可行基为松弛变量对应的列组成.对于一般标准线性规划问题:求解上述一般标准线性规划的单纯形算法(修正)步骤如下:对于一般的标准形式线性规划问题(求极小问题),首先给定一个初始基本可行解。设初始基为B,然后执行如下步骤: (1).
2、解,求得,(2).计算单纯形乘子w, ,得到,对于非基变量,计算判别数,可直接计算令 ,R为非基变量集合若判别数 ,则得到一个最优基本可行解,运算结束;否则,转到下一步(3).解,得到;若,即的每个分量均非正数,则停止计算,问题不存在有限最优解,否则,进行步骤(4).确定下标r,使;、计算框图为:开始 初始可行基B 是 否 得到最优解是否 不存在有限最优解确定下标r,使得 3计算程序(Matlab):A=input(A=);b=input(b=);c=input(c=);format rat %可以让结果用分数输出m,n=size(A);E=1:m;E=E; F=n-m+1:n;F=F;D=E
3、,F; %创建一个一一映射,为了结果能够标准输出X=zeros(1,n); %初始化Xif(nm) %判断是否为标准型 fprintf(不符合要求需引入松弛变量) flag=0;else flag=1; B=A(:,n-m+1:n); %找基矩阵 cB=c(n-m+1:n); %基矩阵对应目标值的c while flag w=cB/B; %计算单纯形乘子,cB/B=cB*inv(B),用cB/B的目的是,为了提高运行速度。 panbieshu=w*A-c %计算判别数,后面没有加分号,就是为了计算后能够显示出来。 z,k=max(panbieshu); % k作为进基变量下标 。 fprint
4、f(b./(BA(:,%d)为,k); b./(BA(:,k) if(z0.) flag=0; %所有判别数都小于0时达到最优解。 fprintf( 已找到最优解!n); xB=(Bb); f=cB*xB; for i=1:n mark=0; for j=1:m if (D(j,2)=i) mark=1; X(i)=xB(D(j,1); %利用D找出xB与X之间的关系。 end end if mark=0 X(i)=0; %如果D中没有X(i),则X(i)为非基变量,所以X(i)0。 end end fprintf(基向量为:); X fprintf(目标函数值为:) ; f else if(
5、BA(:,k)0) & (b1(i)/(A(i,k)+eps) run danchunxinA=3 3 1 0 0;4 -4 0 1 0;2 -1 0 0 1b=30 16 12c=-3 -1 0 0 0运行后的结果为:panbieshu = 3 1 0 0 0 b./(BA(:,2)为;ans = 10 4 6 x(1)进基,x(4)退基panbieshu = 0 4 0 -3/4 0 b./(BA(:,2)为;ans = 5 -16 12 x(2)进基,x(3)退基panbieshu = 0 0 -2/3 -1/4 0 b./(BA(:,2)为;ans = -1/0 16 1/0 已找到最
6、优解!基向量为:X = 7 3 0 0 1 目标函数值为:f = -24 4) 窗口输入: run danchunxinA=1 -1 1 1 0;-2 1 -2 0 1b=5 10c=-3 1 0 0 0运行后的结果为:panbieshu = 3 -1 0 0 0 b./(BA(:,2)为;ans = 5 -5 x(1)进基,x(4)退基panbieshu = 0 2 -3 -3 0 b./(BA(:,2)为;ans = -5 -10 此问题不存在最优解!五:心得体会:通过本次实验对单纯形了解更深刻,此次实验中inf表示为一个无穷大的数。本次做的只是最简单的线性规划问题,面对以后更大的、更复杂
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单纯 语言 程序 14
限制150内