(二)MATLAB数学建模——规划问题
目录
一、简介
二、线性规划
(一)线性规划问题解的概念
(二)实例运用
三、非线性规划
(一)非线性规划问题解的概念
(二)实例运用
一、简介
规划类问题是常见的数学建模问题,利用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数学建模——规划问题相关推荐
- MATLAB数学建模-规划模型总结| MATLAB求解
目录 1 线性规划问题(LP) 风格1 风格2 2 非线性规划 3 动态规划 A星算法 基于dijkstra的概率路线图 4 多目标规划 帕累托最优 支配(Dominace) 不可支配解集 帕累托最优 ...
- 学习使用 MATLAB 数学建模一篇文章就够了
学习中,随着学习的深入会不断补充内容,欢迎大家一起学习数学建模知识,有什么问题,大家可以评论,一起讨论学习. 需要LaTeX 数学建模模板和我收集的一些数学建模资料的可以评论留下邮箱,与君共勉 !!! ...
- 排课系统matlab,matlab数学建模排课
matlab数学建模排课Tag内容描述: 1.TOMLAB课表编排问题 我们老师让我们做一个课表编排问题 题目见 我试图用基于MATLAB的一个软件TOMLAB做 因为他有一个例子 见 由于我对MAT ...
- 【MATLAB数学建模算法代码(六)之遗传算法】
MATLAB数学建模算法代码(六) 遗传算法: 根据自己需要修改参数即可!!! %遗传算法主程序 %Name:genmain05.m function genmain() tic; clear clf ...
- 在matlab中以图像中心为旋转轴逆时针旋转30度自编程序,MATLAB数学建模习题
MATLAB数学建模习题1 一.单项选择题(将选择答案写在答题纸上,每小题2分共20分) 1.在MATLAB命令窗口中键入命令,Vname=prod(7:9)/prod(1:3),可计算组合数 如果省 ...
- matlab球落点的数学建模,MATLAB数学建模:智能优化算法-人工鱼群算法
MATLAB 数学建模: 人工鱼群算法 1. 基本原理 人工鱼群算法是一种受鱼群聚集规律而启发的优化算法. 在人工鱼群算法中, 我们假定鱼群的活动行为分为: 觅食行为, 群聚行为, 追随行为和随机行为 ...
- 数学建模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 同 ...
- Matlab中一球反弹的高度,matlab数学建模2乒乓球的弹跳和罗基斯帝模型.doc
matlab数学建模2乒乓球的弹跳和罗基斯帝模型.doc 1乒乓球的弹跳罗基斯第模型问题罗基斯第模型一个乒乓球离球拍的高度为H0,落在球拍上反弹,设恢复系数为E,不计空气阻力.1如果E为常数,讨论球的 ...
- matlab数学建模方法与实践 笔记1:快速入门
入门案例 1.导入数据 2.数据探索 3.多项式拟合 4.发布功能 5.数据类型 6.全部代码 代码在Cha2文件夹下 1.导入数据 2.数据探索 3.多项式拟合 4.发布功能 5.数据类型 6.全部 ...
最新文章
- ISDN,俗称一线通!
- Android拖动和缩放图片
- 微信攻城三国怎么找服务器,攻城三国怎么玩 新手FAQ常见问题答案汇总[图]
- 编程之美3.2 电话号码对应英语字母
- python 初试 2
- BugkuCTF-Crypto题小山丘的秘密
- 八皇后问题java_八皇后问题java实现
- HTTP/HTTPS/SOCKS5协议的区别
- Mat 与 IplImage之间的转换
- YOLOV5 + 双目测距(python)
- 【子网划分两个实例】通过子网数来划分子网和通过计算主机数来划分子网
- 如何升级win10.
- 《墨菲定律》——决策中的学问
- go语言不用complex包实现二值运算复数计算器
- fatal: unable to access 'https://chromium.googlesource.com/webm/libwebp/': Failed to connect to chro
- 基于springboot vue elementui酒店预订系统源码(毕设)
- App自动化测试介绍和环境搭建
- 面试的一般流程及其常见的问题
- java集合类继承关系图_java集合继承关系图
- 水淼·关键词网址采集器