matlab求市场清算价格不停,经济管理中的优化问题_含LINGO或MATLAB程序_摘自《数学建模算法与程序》(司守奎2007)...

第二十九章经济与金融中的优化问题

本章主要介绍用LINGO软件求解经济、金融和市场营销方面的几个优化问题的案例。

§1 经济均衡问题及其应用

在市场经济活动中,当市场上某种产品的价格越高时,生产商越是愿意扩大生产能力(供应能力),提供更多的产品满足市场需求;但市场价格太高时,消费者的消费欲望(需求能力)会下降。反之,当市场上某种商品的价格越低时,消费者的消费欲望(需求能力)会上升,但生产商的供应能力会下降。如果生产商的供应能力和消费者的需求能力长期不匹配,就会导致经济不稳定。在完全市场竞争的环境中,我们总是认为经济活动应当达到均衡(equilibrium),即生产和消费(供应能力和需求能力)达到平衡,不再发生变化,这时该商品的价格就是市场的清算价格。

下面考虑两个简单的单一市场及双边市场的具体实例,并介绍经济均衡思想在拍卖与投标问题、交通流分配问题中的应用案例。

1.1 单一生产商、单一消费者的情形

例1 假设市场上只有一个生产商(记为甲)和一个消费者(记为乙)。对某种商品,他们在不同价格下的供应能力和需求能力如表1所示。举例来说,表中数据的含义是:当单价低于2万元但大于或等于1万元时,甲愿意生产2t产品,乙愿意购买8t产品;当单价等于或低于9万元但大于4.5万元时,乙愿意购买2t产品,甲愿意生产8t 产品;依次类推。那么,市场的清算价格应该是多少?

表1 不同价格下的供应能力和需求能力

生产商(甲)消费者(乙)单价(万元/t)供应能力(t)单价(万元/t)需求能力(t)

1 2

2 4

3 6

4 8 9 2 4.

5 4 3

6 2.25 8

(1)问题分析

仔细观察一下表1就可以看出来,这个具体问题的解是一目了然的:清算价格显然应该是3万元/t,因为此时供需平衡(都是6t)。为了能够处理一般情况,下面通过建立优化模型来解决这个问题。

这个问题给人的第一印象似乎没有明确的目标函数,不太像是一个优化问题。不过,我们可以换一个角度来想问题:假设市场上还有一个虚拟的经销商,他是甲乙进行交易的中介。那么,为了使自己获得的利润最大,他将总是以可能的最低价格从甲购买产品,再以可能的最高价格卖给乙,直到进一步的交易无利可图为止。例如,最开始的2t产品他将会以1万元的单价从甲购买,以9万元的单价卖给乙;接下来的2t产品他会以2万元的单价从甲购买,再以4.5万元的单价卖给乙;再接下来的2t产品他只能以3万元的单价从甲购买,再以3万元的单价卖给乙(其实这次交易他已经只是保本,但我们仍然假设这笔交易会发生,例如他为了使自己的营业额尽量大);最后,如果他继续购买甲的产品卖给乙,他一定会亏本,所以他肯定不会交易。因此,市场清算价格就是3万元。根据这个想法,我们就可以建立这个问题的线性规划模型。

(2)模型建立

决策变量:设甲以1万元,2万元,3万元,4万元的单价售出的产品数量(单位:

-708-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab可以通过Lindo API接口调用Lingo解器进行优化问题解。下面是一个简单的例子。 首先,需要确保已经安装了Lingo和Lindo API,并且将Lindo API添加到系统环境变量。然后,在Matlab,可以按照以下步骤进行操作: 1. 定义优化问题Matlab,可以使用优化工具箱的“optimproblem”函数定义优化问题。例如,假设我们需要最小化目标函数“2x + 3y”,并且有以下约束条件: ``` x + y >= 10 x >= 0 y >= 0 ``` 可以这样定义优化问题: ``` % 定义变量 x = optimvar('x', 'LowerBound', 0); y = optimvar('y', 'LowerBound', 0); % 定义目标函数和约束条件 f = 2*x + 3*y; c1 = x + y >= 10; % 创建优化问题对象 problem = optimproblem('Objective', f, 'Constraints', c1); ``` 2. 定义Lindo API选项 在Matlab,可以使用“optimoptions”函数定义Lindo API选项。例如: ``` % 定义Lindo API选项 options = optimoptions('linprog', 'LindoLibrary', 'LindoAPI'); ``` 这里使用了“linprog”选项,因为Lingo是一种线性规划解器。如果需要使用Lindo API调用其他解器,需要相应地修改选项。 3. 调用Lindo API解器 在Matlab,可以使用“linprog”函数调用Lindo API解器优化问题。例如: ``` % 调用Lindo API解器 [x, fval, exitflag, output] = linprog(problem, [], [], [], [], [], [], options); ``` 其,第一个参数是优化问题对象,后面的参数为空表示不需要输入其他信息。解结果包括最优解“x”、最优目标值“fval”、解器退出标志“exitflag”和输出信息“output”。 需要注意的是,Lindo API接口的具体使用方法可能因版本而异,需要参考Lindo API文档进行详细操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值