大M法的简单matlab程序
题目如上:
将其化为:
min f=-50x1-40x1
-x1-x2<=-50
大M法函数代码如下:
function [ A,b,c ] = M ( a,B,C) %使用前提:化为min z,Aixj之和<=0/=0,xj>0
M=10000;
[m,n]=size(a);
x=eye(m);
A=[a,x];
b=B;
c=[C,ones(1,m)*M]; %生成含M子块并加入子块到A和c中
i=1;
[m,n]=size(A);
for i=1:m %先把M消除化出单位子块c=c-M.*A(i,:);b(m+1)=b(m+1)-M*b(i);
end
while ~isempty(find(c<0))&&i<20 %消除底行所有负数,避免陷入死循环,最大循环20次
for i=1:nif c(i)<0 %找到最左边的负数xishu=zeros(m,1)+10000000; %设置存储比值的矩阵以便找出最小值for j=1:mif A(j,i)>0xishu(j,1)=b(j,1)/A(j,i); %存储所在列的正数与该正数所在行右部行头比值endend[R,~]=find(xishu==min(xishu)); %找出比值最小值那行h=1/A(R(1),i);A(R(1),:)= A(R(1),:).*h; %比值最小值所在行的那个数化为1b(R(1))=b(R(1))*h; for z=1:m %其他行的数化为0if z~=R(1)h=A(z,i);A(z,:)=A(z,:)-A(R(1),:)*h;b(z)=b(z)-b(R(1))*h;endendh=c(1,i); %底行也化为0c(1,:)=c(1,:)-h*A(R(1),:); b(m+1)=b(m+1)-h*b(R(1));end
endi=i+1; %循环次数加1
endend
调用:
clear
clc
A=[3,-5;0,1;8,5;-1,-1];
b=[150,20,300,-50,0]';
c=[-50,40];[A,b,c]=M(A,b,c);
A
c
b
结果如下:
显然c中M未全部在人工变量x4,x5,x6下,无解
若c中有负数,则没有边界
大M法的简单matlab程序相关推荐
- matlab大津法函数,matlab 大津阈值分割【相关词_ 大津法阈值分割matlab】
阈值法 阈值分割程序 Otsu Thresholding 赞(0) 踩(0) 收藏(0) 说明:大津法实现图像阈值分割的matlab源程序代码 (Otsu Thresholding Image sou ...
- 自相关法基音提取的matlab程序,自相关函数法基音检测matlab程序
自相关函数法基音检测matlab程序 AudioFilename = 'shiyan1.wav'; FrameShift = 0.012; %(s) FrameLength = 0.024; %(s) ...
- 非线性方程的数值解法:牛顿法及牛顿下山法(含Matlab程序)
牛顿法及牛顿下山法 简介:牛顿迭代法是求解单变量非线性方程f(x)=0中最实用的方法,该方法在单根附近二阶收敛.但应用时要选用较好的初值x0近似才能保证迭代收敛.为克服这一缺点,可使用牛顿下山法.下面 ...
- matlab 牛顿法 初值,非线性方程的数值解法:牛顿法及牛顿下山法(含Matlab程序)...
牛顿法及牛顿下山法 简介:牛顿迭代法是求解单变量非线性方程f(x)=0中最实用的方法,该方法在单根附近二阶收敛.但应用时要选用较好的初值x0近似才能保证迭代收敛.为克服这一缺点,可使用牛顿下山法.下面 ...
- MATLAB幂法原点平移法,幂法及其MATLAB程序.doc
幂法及其MATLAB程序 5.2 幂法及其MATLAB程序 5.2.2 幂法的MATLAB程序 用幂法计算矩阵的主特征值和对应的特征向量的MATLAB主程序 function [k,lambda,Vk ...
- 大津阈值分割matlab实验,OTSU(大津法)分割源程序(MATLAB版)
接下来介绍OTSU方法的原理: ************************************************************************************ ...
- matlab用进退法写程序,进退法matlab程序
极小值点包含于区间 [ x(1) , x(3) ]或[ x(3) , x(1) ] (3)算法的 MATLAB 实现在 MATLAB 中编程实现的进退函数为: min JT 功能:用进退法求解.... ...
- matlab中ahp方法,AHP及matlab程序.doc
层次分析法(AHP)及matlab程序 层次分析法是一种新的定性分析与定量分析相结合的系统分析方法,是将人的主观判断用数量形式表达和处理的方法,简称AHP(The Analytic Hierarchy ...
- 小程序源码:仿各大APP种树-多玩法安装简单
这是一款仿各大APP的种树获取水果的一款微信小程序 可以对树浇水,杀虫,修剪等等 另外还有夺宝,更多小程序推荐 支持流量主模式等等 可以进行邀请好友加快树木的成长速度 小程序源码下载地址: 小程序源码 ...
最新文章
- mac mysql5.7 my_【mysql】Mac下安装mysql5.7 完整步骤,大坑已解决
- 这些MySQL配置“修改条令”,你有必要熟识默记!
- 学习python需要什么基础-自学python需要什么基础,要掌握哪些知识?
- Python爬取京东商品信息以及评论存进MySQL
- 百万数据报表读取:步骤分析以及自定义事件处理器
- ubuntu制作usb启动盘
- python默认参数只被解释一次_深入讲解Python函数中参数的使用及默认参数的陷阱...
- 一个诡异的可见性问题
- themyleaf 图片上传_javaEE --springboot #实现图片上传和回显 #单文件上传 #多文件上传 #ajax异步文件上传 (非常详细,从创建项目开始)...
- linux自动挂载usb打印机,Linux下使用Usbmount实现USB设备自动挂载
- java 假设当前时间_Java中与日期和时间相关的类和方法
- 禁止i5笔记本按Ctrl+Alt+向下键翻转屏幕
- Redis系列-Redis笔记(一)
- ios QQ下拉列表 UITableViewHeaderFooterView
- 树形DP·1771仓库选址
- Failed to decode response: zlib_decode(): data error Retrying with degraded;
- 论文查重时图片会不会被检测?
- 浅析互联网产品设计中的色彩心理学
- thinkphp使用phpoffice读取Excel并写入数据库
- 火焰焰心matlab,[转载]酒精灯火焰的温度真的是外焰最高吗?
热门文章
- 如何禁止某个linux用户访问某些文件夹及执行某些命令
- 【机器学习】欠拟合 过拟合 正则化
- python视频搬运_Python-自动下载抖音无水印高清视频
- Django2.2框架小白项目心得(一)
- kylin系统gcc编译报错fatal error:stadio.h: 没有那个文件或目录解决办法
- 使用世界银行的GDP数据进行可视化(Python,tableau,地图可视化等)
- JQuery实现的登陆注册页面表单
- python tkinter库实现华氏温度摄氏温度转换
- 会计学利用计算机思维,会计思维确定性
- 软件项目管理 7.5.项目进度模型(SPSP)