数学建模--数学规划模型

第1部分_数学规划问题概述

什么是数学规划

约束条件下求极值
在这里插入图片描述

数学规划的一般形式

在这里插入图片描述
1.线性表达式 2.出现平方项,非线性表达式 3整数规划.

数学规划的分类

在这里插入图片描述
目前只能求解线性,非线性需要智能算法:退火等。
0-1规划问题,比较常见。

第2部分_Matlab中线性规划的标准型

线性规划的标准型

需要手动去找到这些数据,然后再使用matlab。

在这里插入图片描述
AX<=b 如果方向不对,或者符号不是小于等于。
符号要转换为小于等于。(不能是小于)然后再写矩阵或向量

Ps.
在这里插入图片描述
也可以对数据进行放松,即取x>=0.0001

在这里插入图片描述

matlab 求解线性规划的命令

在这里插入图片描述
返回结果为最小值的横坐标x,纵坐标fval

第3部分_求解线性规划的三个小例题 code1.m

详见数学规模模型代码 code1.m

第4部分_线性规划的典型例题_生产决策问题 code2.m

详见数学规模模型代码 code2.m

第5部分_线性规划的典型例题_投料问题 code3.m

详见数学规模模型代码 code3.m

第6部分_Matlab中线性(整数规划)的求解 code7.m

在这里插入图片描述
在这里插入图片描述

第7部分_整数规划的典型例题_背包问题 code8.m

在这里插入图片描述

第8部分_整数规划的典型例题_指派问题 code9.m

在这里插入图片描述

第9部分_整数规划的典型例题_钢管切割问题 code10.m

钢管切割。求解代码详见数学规划模型代码

		//每根钢管的长度
        double length = 6.9;
        //截取的钢管的长度
        double[] Glength = {2.9,2.1,1};
        int countI = (int)(length/Glength[0]);
        int countJ = (int)(length/Glength[1]);
        int countK = (int)(length/Glength[2]);
        int count = 0;//记录方案的个数
        for (int i = 0; i <= countI; i++) {
            for (int j = 0; j <= countJ; j++) {
                for (int k = 0; k <= countK; k++) {
                    if(2.9*i+2.1*j+k>=6 && 2.9*i+2.1*j+k <=6.9){
                        count++;

                        System.out.println("根数:"+i+"_"+j+"_"+k+"," +
                                "料头长度"+(6.9-i-j-k)+",总计长度:"+(Glength[0]*i+Glength[1]*j+Glength[2]*k));
                    }
                }
            }
        }
        System.out.println("方案的个数:"+count);
/*
根数:0_0_6,料头长度0.9,总计长度:6.0
根数:0_1_4,料头长度1.9,总计长度:6.1
根数:0_2_2,料头长度2.9,总计长度:6.2
根数:0_3_0,料头长度3.9,总计长度:6.3
根数:1_0_4,料头长度1.9,总计长度:6.9
根数:1_1_1,料头长度3.9,总计长度:6.0
根数:2_0_1,料头长度3.9,总计长度:6.8
方案的个数:7
*/

第10部分_Matlab中非线性规划的标准型

在这里插入图片描述
第二行:非线性不等式约束,非线性等式约束。
在这里插入图片描述

在这里插入图片描述

第11部分_fmincon函数的用法 -代码code4/code4.m

在这里插入图片描述
在这里插入图片描述

x0: 求解局部最优解。初始值x0的选取非常的关键。(通过蒙特卡洛模拟得到蒙特卡洛解,然后将这个解作为初始值。)

option 选项,内点法最好。 数学建模中可以四种都使用,可以看看哪种方法的效果是最好的。
指定算法的方法 详见 code4/code4.m

@fun 表示目标函数(它是求解的函数z ,要求它的最大值或最小值),编写独立的m文件存储目标的函数

@nonlfun 表示非线性部分的约束,编写m文件 存储约束条件
在这里插入图片描述

第12部分_求解非线性规划的三个小例题

第13部分_非线性规划的典型例题_选址问题

code5/code5.m

第14部分_非线性规划的典型例题_飞行管理问题

code6.m

第15部分_最大最小化模型 code11.m Fun.m

最不利的条件,寻求最有利的策略。
在这里插入图片描述
在这里插入图片描述

第16部分_多目标规划问题 code12.m

m
在这里插入图片描述
消除量纲
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_30081043/article/details/107355009