线性规划——北海数学建模课程笔记

本文为北海的数模课程学习笔记,课程出自微信公众号:数学建模BOOM。 

 问题分析

 代码求解

clc,clear;
a=(0:0.001:0.05);     % a矩阵的元素是不同风险率,从0到0.05等差取值,相邻两个数相差0.001
f=[-0.05,-0.27,-0.19,-0.185,-0.185];      % 目标函数的系数向量(这里列出的都是同一变量的系数,所以不需要分行)
% 用zeros(4,1)先构造4行一列的全是0的矩阵,也就是对x_0无约束;
% 再构造对角矩阵diag([0.025,0.015,0.055,0.026]),对角线上元素为约束条件中变量的系数
A=[zeros(4,1),diag([0.025,0.015,0.055,0.026])];
Aep=[1,1.01,1.02,1.045,1.065];
bep=1;
LB=zeros(1,5);            %写为行向量和列向量都可以没有特别要求
Q=zeros(1,length(a));     % 初始化保存最优解的矩阵Q,因为现在还没求出最优解,元素全设为0
XX=[];     % 定义个空矩阵,用来存不同风险率下的最优解
% 利用矩阵Q存储风险率a(i)下最大的收益;for循环中i在变化,风险率a(i)不同,求出对应的最优解存在矩阵Q内
for i=1:length(a)     % length求出矩阵a的元素个数,有多少个元素,就循环多少次 
    b=a(i)*ones(4,1);     % b是约束条件的常数项矩阵,4行1列,每个元素值都是常数a(i)
    [x,y]=linprog(f,A,b,Aep,bep,LB);     % 调用linprog函数
    Q(i)=-y;     % 负负得正,就是所需求的最大值了
    XX=[XX;x'];     %表格中的数值为在对应风险下对不同项目投资的金额(x)
    %x'是求x向量的转置(将行向量转化为列向量)
end
plot(a,Q,'*r');
xlabel('风险率')
ylabel('最大收益')
%Q为收益表格 XX为投资方案表格

运行结果 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值