首页 > 其他分享 >6.13安卓开发日记57

6.13安卓开发日记57

时间:2024-06-15 23:55:52浏览次数:32  
标签:linprog 函数 求解 6.13 安卓 问题 线性规划 工具箱 57

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

实验五: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.13,安卓,问题,线性规划,工具箱,57
From: https://www.cnblogs.com/lml66/p/18250051

相关文章

  • 6.12安卓开发日记56
    再次深入《构建之法》,我仿佛踏上了一场对软件工程领域深度探索与自我反思的旅程。这本书不仅是一份实践指南,更像是一位智者,在我耳边低语,引导我理解软件开发的本质,以及如何在这个充满挑战与机遇的行业中稳健前行。以下是我在这次重读过程中获得的新见解和深化的感悟。###1.**软......
  • 6.14安卓开发日记58
     实验三:Newton法程序设计一、实验目的掌握Hesse矩阵的计算方法和Newton法的基本思想及其迭代步骤;学会运用MATLAB编程实现常用优化算法;能够正确处理实验数据和分析实验结果及调试程序。二、实验内容(1)求解无约束优化问题:;(2)终止准则取;(3)完成Newton法(牛顿法)的MATLAB编程、调试......
  • 5.30安卓开发日记47
    ① 、实现的功能为对错题信息的增删改查Ⅰ、主页面 Ⅱ、错题录入 Ⅲ、错题查询(可根据题目搜索) Ⅳ、错题修改 Ⅴ、错题删除(选中行后右键选择删除) Ⅵ、显示详细信息 ......
  • 5.31安卓开发日记48
    Ⅶ、代码main.pyimporttkinterastkfromtkinterimportttk,messageboxfromPILimportImage,ImageTkimportmysql.connectorimportselect#数据库连接函数defcreate_connection():returnmysql.connector.connect(host='localhost',user='......
  • 5.11安卓开发日记32
    今天上数据库原理,实验二是给出数据后对数据进行多方面的查询。4、在数据库test1中进行下列查询操作,将查询语句与结果写入实验报告。(1)查询所有供应商情况,先按城市升序排列,城市相同按供应商名称降序排列。select*fromsorderbycityasc,snamedesc;(2)查询所有零件情况,先按......
  • 5.9安卓开发日记31
    今天继续进行python实验,学习到了python与java在类的定义、继承、多态等方面的异同。Python和Java都是面向对象的编程语言,它们在类的定义、继承、多态等方面有相似之处,但也存在一些显著差异。下面通过具体例子来比较这两种语言在面向对象编程上的异同,并总结Python面向对象编程的一......
  • 5.8安卓开发日记30
    今天学习python实验,本次的实验为python中的实体类,随着实验的进行,让我发现它的实体类和cc++java的实体类大同小异,只需要记住相关写法,着重记一点区别,就能很快适应python实体类的书写。【题目描述】定义一个人员类People,其属性有:姓名、性别、年龄;基于People实现学生类Student,添加......
  • 安卓签名文件打包错误 Invalid keystore format
    1.错误java.io.IOException:Invalidkeystoreformat...2.解决方案        方案1:                找到debug.keystore并删除                 路径 User\用户名\android\debug.keystore                 ......
  • 《pvz植物大战僵尸杂交版》V2.0.88整合包火爆全网,支持安卓、ios、电脑等!
    今天来给大家安利一款让人欲罢不能的游戏——《植物大战僵尸·杂交版》2.0.88版。这可不是普通的植物大战僵尸,它可是席卷了B站,火爆全网的存在!先说说这个版本,它可是网络上现存最全的植物大战僵尸杂交版整合包。里面不仅有修改工具,还有超强通关存档和高清工具,简直是玩家的福音。......
  • Deep Freeze冰点还原8.57最新版软件安装包下载+详细安装步骤
    ​冰点还原精灵(DeepFreeze)是由Faronics公司出品的一款系统还原软件,能保留您的计算机配置,确保全面的端点保护,任何更改,无论是恶意更改还是无意更改,都会在重启时撤销,这就是“重启还原”,即每次重启都会将计算机还原至所需的配置。冰点还原标准版为少于5台工作站的电脑使用环境提供......