首页 > 其他分享 >6.15

6.15

时间:2024-06-13 15:33:00浏览次数:30  
标签:linprog 函数 求解 线性规划 6.15 问题 工具箱

今天完成工程数学作业实验五

实验五:MATLAB最优化工具箱的使用

一、实验目的

通过一个农业生产计划优化安排的实例求解,培养学生解决实际线性规划问题的初步能力;熟悉线性规划的建模过程;掌握Matlab优化工具箱中线性规划函数的调用。

通过一个投资组合优化问题的实例求解,培养学生解决实际二次规划问题的初步能力;熟悉线性规划的建模过程;掌握Matlab优化工具箱中线性规划函数的调用。

二、实验内容

1、某村计划在100公顷的土地上种植a、b、c三种农作物。可以提供的劳力、粪肥和化肥等资源的数量,种植每公顷农作物所需这三种资源的数量,以及能够获得的利润如表所示。

种植投入产出表

 

用  工

粪肥(吨)

化肥(千克)

利润(元)

a

450

35

350

1500

b

600

25

400

1200

c

900

30

300

1800

可提供资源

63000

3300

33000

 

其中一个劳动力干一天为1个工。现在要求为该村制定一个农作物的种植计划,确定每种农作物的种植面积,使得总利润最大。

2、求解从一点(0,0,0)到超平面的最短距离,

其中,,。

通过建模构造二次规划问题,求解以上问题的最优解和最优值。

 

三、算法步骤、代码、及结果

1. 算法步骤

①、

 

 

 

②、

 

2. 代码

①、% 定义目标函数的系数(注意:linprog求最小值,故目标函数取负)

f = [-1500, -1200, -1800];

 

% 定义不等式约束的系数矩阵A和右侧向量b

A = [1 1 1; 450 600 900; 35 25 30; 350 400 300];

b = [100; 63000; 3300; 33000];

 

% 定义决策变量的下界(非负)

lb = [0, 0, 0];

 

% 调用linprog函数求解

options = optimoptions('linprog','Algorithm','dual-simplex');

[x, fval] = linprog(f, A, b, [], [], lb, [], options);

 

% 输出结果

fprintf('最优解为:\n');

disp(x);

fprintf('最大总利润为: %d元\n', -fval); % 注意fval取负

②、% 定义参数

A = [1 2 -1; -1 1 -1];

b = [4; 2];

 

% 构建二次规划模型

Q = eye(3);

c = [];

lb = [0, 0, 0];

ub = [];

 

% 使用 linprog 函数求解

options = optimoptions(@linprog, 'Algorithm', 'interior-point');

[x, fval] = linprog(c, [], [], A, b, lb, ub, [], options);

 

% 输出结果

disp("最优解:");

disp(x);

disp("最优值:");

disp(-fval);

 

 

  1. 结果

①、 

 

②、 

 

 

四、心得体会

 

线性规划应用案例

理论联系实践:通过解决农业生产计划的优化问题,我深刻理解了线性规划理论在实际问题中的应用。将抽象的数学概念转化为具体的生产计划,让我认识到数学模型在解决实际问题中的强大作用。

模型构建能力:建立线性规划模型的过程中,我学会了如何将复杂的现实问题抽象为一系列数学关系式。特别是如何根据资源限制和目标函数(本例中为总利润最大化)来准确设置决策变量、目标函数和约束条件,这一过程锻炼了我的逻辑思维和问题分析能力。

工具箱应用:掌握了Matlab优化工具箱中linprog函数的使用,从安装配置到调用参数的设置,如算法选择(双单纯形算法),这不仅提升了我的编程技能,也让我感受到现代软件工具对优化问题求解效率的显著提升。

结果分析:通过观察最优解和最优值,我直观地理解了线性规划解决方案对实际问题决策的指导意义。例如,通过对比不同作物的种植面积分配,我能够评估不同方案对总利润的影响,这对实际农业生产具有重要的经济意义。

二次规划应用案例

模型升级:虽然实验中二次规划部分的代码存在一些误导(实际上应使用quadprog函数而非linprog解决二次规划问题),但这一环节让我意识到了从线性规划到二次规划问题复杂度的提升,以及模型选择对问题解决的重要性。

算法理解:通过尝试理解并应用不同的求解算法(如内点法),我深入学习了不同优化算法的适用场景和性能差异,这对于选择合适的求解策略至关重要。

综合能力提升:二次规划的探索,虽然因代码问题未能直接呈现结果,但这个过程锻炼了我的自学能力和问题解决能力。它促使我去查阅资料,学习如何正确使用Matlab工具箱中的其他函数,如quadprog,来解决非线性优化问题。

实践经验:整个实验过程,从理论学习到实际操作,再到结果的分析与讨论,为我提供了宝贵的实践经验。这种理论与实践相结合的学习方式,极大地增强了我的专业技能和问题解决信心。

综上所述,这次实验不仅巩固了我的理论知识,更重要的是提高了我在面对实际问题时的模型构建、工具应用和结果分析能力。我相信,这些宝贵的经验和技能将在未来的学习和工作中发挥重要作用。

标签:linprog,函数,求解,线性规划,6.15,问题,工具箱
From: https://www.cnblogs.com/zzqq1314/p/18245974

相关文章

  • CentOS7下安装著名商业漏洞扫描工具Nexpose_6.6.156
    Nexpose简单介绍Nexpose是Rapid7出品,一款著名的、极佳的商业漏洞扫描工具。跟一般的扫描工具不同,Nexpose自身的功能非常强大,可以更新其漏洞数据库,以保证最新的漏洞被扫描到。漏洞扫描效率非常高,对于大型复杂网络,可优先考虑使用;可以给出哪些漏洞可以被MetasploitExploit,哪些漏......
  • api分享103.216.155.x
    在日常生活中,我们有很多类似api场景,比如电脑需要调用手机里面的信息,这个时候会拿一个数据线将电脑和手机连接起来,电脑和手机连接数据线的接口就是我们所说的api接口。常见web接口是http/https协议的接口,API是处理系统之间数据传输的媒介。在API调用过程中,客户端会通过API发送请求,A......
  • 虚拟化103.216.154.x
    虚拟化是一种资源管理,将计算机的各种实体资源,如果服务器、网络、内存、存储等,予以抽象、转换后呈现出来,打破实体结构间的补课切割障碍,使用户可以比原来组态更好的方式应用这些资源,这些资源的新虚拟部分是不受现有资源架设方式,地域或者物理组态所限制。一般所指的虚拟化资源包括计算......
  • Uncaught AssertionError: Assertion failed. See https://openlayers.org/en/v6.15.1
    openlayers点击具体错误Cannotfitemptyextentprovidedas geometry.这个错误信息意味着OpenLayers在尝试使用一个空的范围作为几何图形时出现了问题。范围(extent)表示几何图形覆盖的边界框或区域,它由四个坐标值组成:最小经度、最小纬度、最大经度和最大纬度。当范围没有......
  • Windows服务器定时重启设置教程 103.216.155.x
    Windows系统的任务计划程序,可以添加计划任务,设置任务开始时间及执行的间隔,实现应用的自动执行。例如:实现定时重启、关机等常见的功能。如何使用参考以下步骤1、新建一个文本文件,将文件后缀改为bat,然后添加如下代码shutdown-r-f-t 0该命令的作用是立即强制重启机器。在文件中单......
  • 2023.6.15 08.数据库安全管理
    08.数据库安全管理⽤户账户管理访问权限系统访问权限回收在讨论安全时,我们需要考虑整个服务器主机安全(⽽不仅仅是MySQL服务)需要抵御攻击,窃听,扫描,破解等。MySQL对所有连接数据库⽤户进⾏了ACL访问控制,减少服务器被内部不规范操作导致故障。MySQL还⽀持客户端和......
  • 2023.6.15每日一题
    原题链接:A-CodeforcesRound666(Div.1)-CB-EducationalCodeforcesRound82(RatedforDiv.2)-CA.MonsterInvaders-2300题目大意在一款RPG当中,有两种类型的怪物,普通怪物血量为\(1\),boss的血量为\(2\)。我们有三种攻击手段:手枪,对一个怪物造成1点伤害,......
  • 2023.6.15 07.数据库存储过程
    07.数据库存储过程存储过程MySQL存储过程是⼀组预编译的SQL语句,可以在MySQL数据库中定义和存储,并在需要时执⾏。存储过程可以接受参数、执⾏条件判断、循环、异常处理等操作,使得开发⼈员可以把⼀系列操作组合成⼀个可重复使⽤的单元,从⽽提⾼代码的复⽤性和可维护......
  • (2023.6.15)linux下can的调试工具交叉编译
    //源码包路径:https://public.pengutronix.de/software/libsocketcan/libsocketcan-0.0.11.tar.bz2https://public.pengutronix.de/software/socket-can/canutils/v4.0/canutils-4.0.6.tar.bz2//编译命令./configure--host=arm-linux-gnueabihf--prefix=/home/fangzeli/work/......
  • 6.15-多周期MIPS CPU数据通路(1)
    单周期MIPS关键路径LW指令时间延迟问题由于系统采用单周期实现所以整个系统的时钟周期取决于最慢那一条指令的时间延迟,以LW指令为例,涉及到指令存储器以及数据存储器的......