目录

一、简介

二、线性规划

(一)线性规划问题解的概念

(二)实例运用

三、非线性规划

(一)非线性规划问题解的概念

(二)实例运用


一、简介

规划类问题是常见的数学建模问题,利用Matlab可以简单快速的得到所要的结果。本章主要介绍如何利用Mtalab的内置命令解决线性规划和非线性规划类问题。

二、线性规划

线性规划问题主要包括以下几个要素:①决策变量;②目标函数;③约束条件。

其中,决策标量就是常用变量x,y;目标函数存在最大值和最小值两种形式;约束条件的不等号可以是小于号,也可以是大于号。

(一)线性规划问题解的概念

步骤一:化标准型。为了避免线性规划问题的形式多样性,首先就要对其化标准型。

一般线性规划问题的标准型为:

目标函数:目标函数:minz=∑j=1ncjxj

约束条件:,,,,约束条件:∑j=1naijxj≤bj,i=1,2,⋅⋅⋅⋅⋅⋅,m

步骤二:提取相关系数矩阵

matlab中规定线性规划的标准形式为:

目标函数:目标函数:minz=cTx

约束条件:约束条件:Ax≤b

其中c和x为n维列向量;b为m维列向量;A为m × n矩阵。

步骤三:运用matlab函数指令求解

基本函数调用形式为:

[x,fval]=linprog(c,A,b,Aeq,Beq,LB,UB,X0,OPTIONS);

其中,x为返回目标函数的最优解,fval返回的目标函数的最优值。

Aeq和Beq对应等式约束Ax=b;LB和UB分别是变量x的上界和下界;X0是x的初始值;OPTIONS是控制参数。

(二)实例运用

例1:

目标函数:maxz=2x1+3x2−5x3

约束条件:x1+x2+x3=7

……………… 2x1−5x2+x3≥10

……………… ,,x1,x2,x3≥0

化为标准型为:

目标函数:minz=−2x1−3x2+5x3

约束条件:x1+x2+x3=7

……………… −2x1+5x2−x3≤10

……………… ,,x1,x2,x3≥0

clc;
clear all;
c=[-2;-3;5];
A=[-2,5,-1];
b=10;
Aeq=[1,1,1];
Beq=7;
[x,favl]=linprog(c,A,b,Aeq,Beq,zeros(3,1));
disp(['x1:' num2str(x(1))])
disp(['x2:' num2str(x(2))])
disp(['x3:' num2str(x(3))])
disp(['目标函数最优值:' num2str(favl)])

结果如下图所示:

三、非线性规划

如果目标函数或约束条件包含非线性函数,就称这种规划问题为非线性问题。

(一)非线性规划问题解的概念

在matlab中,非线性规划模型的数学模型可写成以下形式:

minf(x)

Ax≤B

Aeq×x=beq

C(x)≤0

Ceq(x)=0

其中 和C(x)和Ceq(x) 是非线性向量函数。

matlab中的命令是:

[x,favl]=fmincon(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)

其中,x和favl是返回的最优解和最优值。

FUN是定义的目标函数 f(x) ;

X0是初始值;

A,B,Aeq,Beq定义了线性约束 Ax≤B , Aeq×x=beq ,如果没有,则用[]代替;

LB和UB是x的上界和下界,如果没有,则用[]代替;

NONLCON是定义的非线性向量函数 和C(x)和Ceq(x) ;

OPTIONS是优化参数。

(二)实例运用

例2:

maxz=x1+x2+x3+x4

x1≤400

1.1x1+x2≤440

1.21x1+1.1x2+x3≤484

1.331x1+1.21x2+1.1x3+x4≤532.4

,,,,xi≥0,i=1,2,3,4

注意:计算过程中别忘了先化标准型(此处过程略)

①编写M文件定义目标函数

function f = fun(x)
f=-sqrt(x(1))-sqrt(x(2))-sqrt(x(3))-sqrt(x(4));
end

②编写M文件定义所有非线性向量函数

function [C,Ceq] =NONLCON(x)
C(1)=x(1)-400;
C(2)=1.1*x(1)+x(2)-440;
C(3)=1.21*x(1)+1.1*x(2)+x(3)-484;
C(4)=1.331*x(1)+1.21*x(2)+1.1*x(3)+x(4)-532.5;
Ceq=0;
end

③编写主程序

clc;
clear all;
X0=ones(4,1);  %定义初始值
LB=zeros(4,1); %定义下界
UB=[];
A=[];
B=[];
Aeq=[];
Beq=[];
[x,favl]=fmincon('fun',X0,A,B,Aeq,Beq,LB,UB,'NONLCON');
disp(['x1:' num2str(x(1))])
disp(['x2:' num2str(x(2))])
disp(['x3:' num2str(x(3))])
disp(['x4:' num2str(x(4))])
disp(['最优解为:' num2str(favl)])

结果如下图所示:

(二)MATLAB数学建模——规划问题相关推荐

  1. MATLAB数学建模-规划模型总结| MATLAB求解

    目录 1 线性规划问题(LP) 风格1 风格2 2 非线性规划 3 动态规划 A星算法 基于dijkstra的概率路线图 4 多目标规划 帕累托最优 支配(Dominace) 不可支配解集 帕累托最优 ...

  2. 学习使用 MATLAB 数学建模一篇文章就够了

    学习中,随着学习的深入会不断补充内容,欢迎大家一起学习数学建模知识,有什么问题,大家可以评论,一起讨论学习. 需要LaTeX 数学建模模板和我收集的一些数学建模资料的可以评论留下邮箱,与君共勉 !!! ...

  3. 排课系统matlab,matlab数学建模排课

    matlab数学建模排课Tag内容描述: 1.TOMLAB课表编排问题 我们老师让我们做一个课表编排问题 题目见 我试图用基于MATLAB的一个软件TOMLAB做 因为他有一个例子 见 由于我对MAT ...

  4. 【MATLAB数学建模算法代码(六)之遗传算法】

    MATLAB数学建模算法代码(六) 遗传算法: 根据自己需要修改参数即可!!! %遗传算法主程序 %Name:genmain05.m function genmain() tic; clear clf ...

  5. 在matlab中以图像中心为旋转轴逆时针旋转30度自编程序,MATLAB数学建模习题

    MATLAB数学建模习题1 一.单项选择题(将选择答案写在答题纸上,每小题2分共20分) 1.在MATLAB命令窗口中键入命令,Vname=prod(7:9)/prod(1:3),可计算组合数 如果省 ...

  6. matlab球落点的数学建模,MATLAB数学建模:智能优化算法-人工鱼群算法

    MATLAB 数学建模: 人工鱼群算法 1. 基本原理 人工鱼群算法是一种受鱼群聚集规律而启发的优化算法. 在人工鱼群算法中, 我们假定鱼群的活动行为分为: 觅食行为, 群聚行为, 追随行为和随机行为 ...

  7. 数学建模matlab imread,《matlab数学建模方法与实践》第三章 数据的处理

    3.1数据的获取 3.1.1从Excel中读取数据 a= xlsread('路径',n(sheetn),'A(n-1):Bn(读入的数据范围)') 3.1.2从TXT中读取数据 3.1.2.1.1 同 ...

  8. Matlab中一球反弹的高度,matlab数学建模2乒乓球的弹跳和罗基斯帝模型.doc

    matlab数学建模2乒乓球的弹跳和罗基斯帝模型.doc 1乒乓球的弹跳罗基斯第模型问题罗基斯第模型一个乒乓球离球拍的高度为H0,落在球拍上反弹,设恢复系数为E,不计空气阻力.1如果E为常数,讨论球的 ...

  9. matlab数学建模方法与实践 笔记1:快速入门

    入门案例 1.导入数据 2.数据探索 3.多项式拟合 4.发布功能 5.数据类型 6.全部代码 代码在Cha2文件夹下 1.导入数据 2.数据探索 3.多项式拟合 4.发布功能 5.数据类型 6.全部 ...

最新文章

  1. ISDN,俗称一线通!
  2. Android拖动和缩放图片
  3. 微信攻城三国怎么找服务器,攻城三国怎么玩 新手FAQ常见问题答案汇总[图]
  4. 编程之美3.2 电话号码对应英语字母
  5. python 初试 2
  6. BugkuCTF-Crypto题小山丘的秘密
  7. 八皇后问题java_八皇后问题java实现
  8. HTTP/HTTPS/SOCKS5协议的区别
  9. Mat 与 IplImage之间的转换
  10. YOLOV5 + 双目测距(python)
  11. 【子网划分两个实例】通过子网数来划分子网和通过计算主机数来划分子网
  12. 如何升级win10.
  13. 《墨菲定律》——决策中的学问
  14. go语言不用complex包实现二值运算复数计算器
  15. fatal: unable to access 'https://chromium.googlesource.com/webm/libwebp/': Failed to connect to chro
  16. 基于springboot vue elementui酒店预订系统源码(毕设)
  17. App自动化测试介绍和环境搭建
  18. 面试的一般流程及其常见的问题
  19. java集合类继承关系图_java集合继承关系图
  20. 水淼·关键词网址采集器

热门文章

  1. 为什么鹅厂都是C++选手?
  2. Android系统自动升级打开,安卓系统怎么升级到Android5.0
  3. UEditor 解决拖拽视频元素改变视频尺寸时,无法保存视频尺寸问题的解决方法
  4. 微信公众号运营,需要注意哪些问题
  5. 处理win2000web服务器
  6. MFC网速及流量监控程序的实现(完)
  7. 【机器学习5】python实现单纯形法和大M法
  8. Linux ALSA 声卡驱动之一:ALSA架构简介
  9. 不坑盒子 + 智能写作(Office、WPS插件)助你高效办公,早点下班回家。
  10. Windows XP 系统分区瘦身方法