MATLAB 投资问题

news2024/9/24 7:23:08

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页:小嗷犬的个人主页
🍊个人网站:小嗷犬的技术小站
🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。


本文目录

    • 投资问题
    • 模型建立
    • MATLAB 求解


投资问题

设有一笔资金 10 万,未来 5 年内可以投资 4 个项目:

  • 项目 1:每年初投资,次年年末回收本利 115%;
  • 项目 2:第 3 年初投资,第 5 年末回收本利 125%,投资额不能超过 3 万;
  • 项目 3:第 2 年初投资,第 5 年末回收本利 140%,投资额不能超过 4 万;
  • 项目 4:每年初投资,当年年末回收本利 106%。

要使 5 年后收益最大化,请问 5 年内应如何投资?


模型建立

考虑每个项目的可投资时段,可得到下表:

第 i 年初12345
项目 1 ✓ \checkmark ✓ \checkmark ✓ \checkmark ✓ \checkmark
项目 2 ✓ \checkmark
项目 3 ✓ \checkmark
项目 4 ✓ \checkmark ✓ \checkmark ✓ \checkmark ✓ \checkmark ✓ \checkmark

表中的对号 ✓ \checkmark 表示该项目在该年初可以投资,空白表示该项目在该年初不可以投资。

x i j x_{ij} xij 表示项目 i i i 在第 j j j 年初投资的金额, i = 1 , 2 , 3 , 4 i=1,2,3,4 i=1,2,3,4 j = 1 , 2 , 3 , 4 , 5 j=1,2,3,4,5 j=1,2,3,4,5
可得出以下优化模型:

min ⁡ f ( x ) = 1.15 x 14 + 1.25 x 23 + 1.4 x 32 + 1.06 x 45  s.t.  { x 11 + x 41 = 10 x 12 + x 32 + x 42 = 1.06 x 41 x 13 + x 23 + x 43 = 1.15 x 11 + 1.06 x 42 x 14 + x 44 = 1.15 x 12 + 1.06 x 43 x 45 = 1.15 x 13 + 1.06 x 44 x 23 ≤ 3 x 32 ≤ 4 x i j ≥ 0 \begin{align*} \min f(x)=1.15x_{14}+1.25x_{23}+1.4x_{32}+1.06x_{45} \end{align*} \\ \begin{align*} \text { s.t. } \left\{ \begin{array}{c} x_{11} + x_{41} = 10 \\ x_{12} + x_{32} + x_{42} = 1.06x_{41} \\ x_{13} + x_{23} + x_{43} = 1.15x_{11} + 1.06x_{42} \\ x_{14} + x_{44} = 1.15x_{12} + 1.06x_{43} \\ x_{45} = 1.15x_{13} + 1.06x_{44} \\ x_{23} \leq 3 \\ x_{32} \leq 4 \\ x_{ij} \geq 0 \end{array} \right. \end{align*} minf(x)=1.15x14+1.25x23+1.4x32+1.06x45 s.t.  x11+x41=10x12+x32+x42=1.06x41x13+x23+x43=1.15x11+1.06x42x14+x44=1.15x12+1.06x43x45=1.15x13+1.06x44x233x324xij0


MATLAB 求解

% 创建优化问题
prob = optimproblem('ObjectiveSense','max');

% 创建优化变量
x = optimvar('x',4,5,'LowerBound',0);

% 设置优化目标
prob.Objective = 1.15*x(1,4)+1.25*x(2,3)+1.4*x(3,2)+1.06*x(4,5);

% 添加约束
prob.Constraints.cons1 = x(1,1)+x(4,1)==10;
prob.Constraints.cons2 = x(1,2)+x(3,2)+x(4,2)==1.06*x(4,1);
prob.Constraints.cons3 = x(1,3)+x(2,3)+x(4,3)==1.15*x(1,1)+1.06*x(4,2);
prob.Constraints.cons4 = x(1,4)+x(4,4)==1.15*x(1,2)+1.06*x(4,3);
prob.Constraints.cons5 = x(4,5)==1.15*x(1,3)+1.06*x(4,4);
prob.Constraints.cons6 = x(2,3)<=3;
prob.Constraints.cons7 = x(3,2)<=4;

% 检查优化问题
show(prob)

% 求解优化问题
[sol,fval] = solve(prob);

fval
sol.x

结果:

fval =
   14.4215

ans =
    2.6087    3.8348         0    4.4100         0
         0         0    3.0000         0         0
         0    4.0000         0         0         0
    7.3913         0         0         0         0

即 5 年内应按下表进行投资:

第 i 年初12345
项目 12.60873.834804.41000
项目 2003.000000
项目 304.0000000
项目 47.39130000

最终收益为 14.4215 − 10 = 4.4215 ( 万元 ) 14.4215 - 10 = 4.4215(万元) 14.421510=4.4215(万元)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/710560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【子序列+状压DP】ABC308 E MEX

这应该算是很套路的题&#xff0c;照理说是要做出来的 E - MEX (atcoder.jp) 题意&#xff1a; 思路&#xff1a; 首先&#xff0c;三元组很容易让我们联想到枚举中间那个元素&#xff0c;但是在这道题中不是这么搞的 可以注意到&#xff0c;题目是要我们统计所有子序列&qu…

WinSCP脚本实现将jar包一键上传Ubuntu并docker部署

准备 首先&#xff0c;在Ubuntu写一个.sh脚本用于自动更新jar包的docker容器和镜像&#xff0c;然后在Windows写一个.bat脚本用于上传jar包并运行.sh脚本。 deploy.sh # Kill容器 docker kill demo# 删除容器 docker rm demo# 删除镜像 docker rmi my/demo# 构建镜像 docker b…

Spring事务@Transactional常见的8种失效场景(通俗易懂)

前言&#xff1a;在日常的开发过程中&#xff0c;多多少少会遇到Spring事务失效导致的一些事故&#xff0c;本篇主要通过具体的案例分析来讲解常见的8种失效的场景&#xff0c;让阅读者通俗易懂的明白每一种事务失效的原因&#xff0c;知其然并知其所以然&#xff01; 目录 一…

Java——《面试题——Git篇》

全文章节 Java——《面试题——基础篇》 Java——《面试题——JVM篇》 Java——《面试题——多线程&并发篇》 Java——《面试题——Spring篇》 Java——《面试题——SpringBoot篇》 Java——《面试题——MySQL篇》​​​​​​ Java——《面试题——SpringCloud》 Java——…

初识操作系统以及Linux常用指令(上)

目录 一&#xff1a;操作系统简介 二&#xff1a;Linux简介 Linux是什么 Linux的作用 非图形化的Linux界面 Linux环境的搭建 三&#xff1a;Linux下的文件结构 ⭐Linux组织文件的结构为多叉树 文件路径 Linux下的隐藏文件 四&#xff1a;Linux基础指令 创建用户相…

实践:devops之云主机模式持续部署(ci-cd)

实践&#xff1a;devops之云主机模式持续部署(ci-cd) 目录 推荐文章 https://www.yuque.com/xyy-onlyone/aevhhf?# 《玩转Typora》 0、流程分析 2条Jenkins pipeline CI pipeline CD pipeline 标准规范 项目规范与总体设计 公司里面要使用流水线要做持续集成CI/CD的项目越来…

02-基础入门-数据包拓展

基础入门-数据包拓展 基础入门-数据包拓展1、http/https数据包&#xff08;1&#xff09;HTTP协议是什么&#xff1f;&#xff08;2&#xff09;HTTP原理&#xff08;3&#xff09;HTTP特点&#xff08;4&#xff09;URI和URL的区别&#xff08;5&#xff09;HTTP报文组成&…

IP路由协议(RIP、IGRP、OSPF、IS-IS、BGP)

文章目录 1、路由分类2、RIP协议1&#xff09;RIP的工作原理2&#xff09;RIP路由表的更新过程3&#xff09;RIP路由表的更新原则4&#xff09;RIP的特性5&#xff09;RIP协议的版本 4、IGRP协议1&#xff09;IGRP路由表的更新2&#xff09;IGRP的度量标准 5、OSPF协议1&#x…

Java【动态规划】斐波那契数列模型, 图文详解 + 代码

文章目录 一、第 N 个泰波那契数1, 题目2, 思路分析2.1, 状态表示2.2, 状态转移方程2.3, 初始化2.4, 填表顺序2.5, 返回值 3, 代码 二、三步问题1, 题目2, 思路分析2.1, 状态表示2.2, 状态转移方程2.3, 初始化2.4, 填表顺序2.5, 返回值 3, 代码 三、1, 题目2, 思路分析2.1, 状态…

Redis 高可用和优化

目录 一&#xff1a;Redis 高可用 二&#xff1a; Redis 持久化 1、持久化的功能 2、Redis 提供两种方式进行持久化 3、 RDB 持久化 &#xff08;1&#xff09;触发条件 &#xff08;1.1&#xff09;手动触发 &#xff08;1.2&#xff09;自动触发 &#xff08;1.3&am…

软件测试岗位之大厂到底有多累?

今天给大家分享两个朋友的故事&#xff0c;他们分别在国内两家顶尖的互联网大厂&#xff0c;一个在头条&#xff0c;一个在蚂蚁。 头条的故事 头条的主人公&#xff0c;在入职后的一年里&#xff0c;晚上十点半下班是比较早了&#xff0c;基本上都是十一点半左右下班&#xff…

Redmi4X刷入Ubuntu touch真正成为一台远程无需人操作的云服务器(就是配置垃圾)

前言 前几天把高一买的手机相册和文件拷贝到了电脑上&#xff0c;寻思这旧手机还能干嘛&#xff0c;搜了一下有做监控的&#xff0c;行车记录仪的&#xff0c;最后决定还是做Linux服务器香啊。用了一天时间参考网上的教程做完了&#xff0c;自己再做一下总结和一些弯路记录。 …

ctemplate

参考安装 原理&#xff1a; 如何使用&#xff1f; // test_ctemplate.cc #include <iostream> #include <string> #include <ctemplate/template.h>int main() {std::string in_html "./test.html";std::string value "一行白鹭上青天&q…

一、设计模式的作用和六大原则

文章目录 引言1.设计模式1.1 设计模式的目的1.2 设计模式六大原则1.2.1 单一职责原则&#xff08;类、方法和接口&#xff0c;保持职责单一性&#xff0c;如:Activity和Adapter分成两个类&#xff09;1.2.2. 开闭原则&#xff08;扩展开放&#xff0c;修改关闭&#xff1b;如&a…

python 数字进制

python 数字进制 1、数学中进制对应代码2、Python进制转换函数 1、数学中进制对应代码 十六进制&#xff1a; 0x11 八进制&#xff1a; 0o11 二进制&#xff1a; 0b11 十进制&#xff1a; 11&#xff08;啥都不加默认为十进制&#xff09; #!/usr/bin/python # -*- coding: UTF…

第133页的gtk+编程例子——编写计算器应用

第133页的gtk编程例子——编写计算器应用 以下gtk编程例子是来自书籍《实用技术&#xff1a;开发Linux应用——用GTK和GDK开发Linux图形用户界面应用》第133页的内容——编写计算器应用 例子程序是在gtk2.0编译的&#xff0c;已经修改许多地方才能在gtk3.0编译通过&#xff0c…

数学建模——插值(上)

本文是面向数学建模准备的&#xff0c;是介绍性文章&#xff0c;没有过多关于原理的说明&#xff01;&#xff01;&#xff01; 插值方法简介 插值问题 已知区间[a,b]上有系列观测值(xi,yi),i0,1,2,…,n&#xff0c;求一条曲线把这些点依次连接起来&#xff0c;称为插值&#…

在idea中高并发下的分布式锁以及解决方法

案例:1.互联网秒杀 2.抢优惠卷 3.接口幂 引入pom文件 <packaging>war</packaging><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.8.RELEA…

分布式软件架构——客户端缓存

浏览器的客户端缓存 当万维网刚刚出现的时候&#xff0c;浏览器的缓存机制差不多就已经存在了。在 HTTP 协议设计之初&#xff0c;人们便确定了服务端与客户端之间“无状态”&#xff08;Stateless&#xff09;的交互原则&#xff0c;即要求客户端的每次请求是独立的&#xff…

MySQL环境搭建(Windows电脑)

MySQL环境搭建-Windows电脑篇 软件获取&#xff1a; 搜索gzh【李桥桉】&#xff0c;需要win电脑安装包&#xff0c;回复【win-MS】。 搜索gzh【李桥桉】&#xff0c;需要mac电脑安装包&#xff0c;回复【mac-MS】。 注意&#xff1a;确保电脑为64位系统&#xff08;不是的话需要…