数学建模社区-数学中国
标题:
经济均衡问题及其应用 (一):根据供需函数 确定市场的清算价格
[打印本页]
作者:
浅夏110
时间:
2020-6-15 15:05
标题:
经济均衡问题及其应用 (一):根据供需函数 确定市场的清算价格
经济均衡问题及其应用
/ w4 u3 P4 y- T# e. s7 U3 a" c. m
在市场经济活动中,当市场上某种产品的价格越高时,生产商越是愿意扩大生产 能力(供应能力),提供更多的产品满足市场需求;但市场价格太高时,消费者的消费欲望(需求能力)会下降。反之,当市场上某种商品的价格越低时,消费者的消费欲望 (需求能力)会上升,但生产商的供应能力会下降。如果生产商的供应能力和消费者的 需求能力长期不匹配,就会导致经济不稳定。在完全市场竞争的环境中,我们总是认为 经济活动应当达到均衡(equilibrium),即生产和消费(供应能力和需求能力)达到平衡,不再发生变化,这时该商品的价格就是市场的清算价格。
% K( Z/ m4 ?" ~
4 P' C# F' ?; R r; g
下面考虑两个简单的单一市场及双边市场的具体实例,并介绍经济均衡思想在拍 卖与投标问题、交通流分配问题中的应用案例.
/ g$ d; Y; s* g; m& H
6 V: C: s4 {8 \( A; `6 l
1.1 单一生产商、单一消费者的情形
' ~) A5 w" w5 c5 V" Q
例 1 假设市场上只有一个生产商(记为甲)和一个消费者(记为乙)。对某种商 品,他们在不同价格下的供应能力和需求能力如表 1 所示。举例来说,表中数据的含义 是:当单价低于 2 万元但大于或等于 1 万元时,甲愿意生产 2t 产品,乙愿意购买 8t 产 品;当单价等于或低于 9 万元但大于 4.5 万元时,乙愿意购买 2t 产品,甲愿意生产 8t 产品;依次类推。那么的市场价格应该是多少?
0 ]8 K8 ~( Q/ Z
. P2 i- l6 O; X+ Y0 J5 m
; e3 S2 w1 ] m
" _/ x; \$ w# H4 T# @* @
(1)问题分析
% R6 c1 z4 ]' ` d8 [+ _9 a
3 J! t f4 z( ]0 O
仔细观察一下表 1 就可以看出来,这个具体问题的解是一目了然的:清算价格显 然应该是 3 万元/t,因为此时供需平衡(都是 6t)。为了能够处理一般情况,下面通过 建立优化模型来解决这个问题。
, }$ R( a! Q3 o
* O3 O4 O u3 L8 z* P/ z% p6 Z% h: X
这个问题给人的第一印象似乎没有明确的目标函数,不太像是一个优化问题。不过,我们可以换一个角度来想问题:假设市场上还有一个虚拟的经销商,他是甲乙进行 交易的中介。那么,为了使自己获得的利润大,他将总是以可能的低价格从甲购买 产品,再以可能的高价格卖给乙,直到进一步的交易无利可图为止。例如,开始的2t 产品他将会以 1 万元的单价从甲购买,以 9 万元的单价卖给乙;接下来的 2t 产品他 会以 2 万元的单价从甲购买,再以 4.5 万元的单价卖给乙;再接下来的 2t 产品他只能以 3 万元的单价从甲购买,再以 3 万元的单价卖给乙(其实这次交易他已经只是保本,但 我们仍然假设这笔交易会发生,例如他为了使自己的营业额尽量大);最后,如果他继 续购买甲的产品卖给乙,他一定会亏本,所以他肯定不会交易。因此,市场清算价格就 是 3 万元。根据这个想法,我们就可以建立这个问题的线性规划模型。
5 q. E% l$ d( y9 |) t! H5 e+ T
) N" T3 y, { Y+ f
(2)模型建立
* T1 ]+ e l. z: z8 r
3 E& k/ ]0 v& x* V4 x$ i
决策变量:设甲以 1 万元,2 万元,3 万元,4 万元的单价售出的产品数量(单位:t)分别是
,乙以 9 万元,4.5 万元,3 万元,2.25 万元的单价购买的产品数量(单位:t)分别是
。
5 d& G2 \, y3 M. @
' ]) G9 |* |) I1 A- J
目标函数:就是虚拟经销商的总利润,即
( 1 )
' ?& f( S3 y. L
# b; h$ }( t! z7 K- ?9 T
约束条件:
, e8 H9 C3 T4 t9 M( [! ^% T
8 l+ N: O# K( M) Y+ T
供需平衡
( 2 )
8 O1 S+ l0 U8 F+ g. B
. V8 Y4 w- X5 F4 h# k: u1 Y
供应限制
( 3 )
0 @ G2 W( P- d# b; ^1 F# K
E) s6 k. D) ]$ ?- j
消费限制
( 4 )
% s+ m9 w, R* U) {
) e, M" d1 j) u+ z. `
非负限制
( 5 )
% s) \9 I" g. d! h
! ~4 q% P! o9 S2 w% K* @6 O
(3)模型求解
- d8 G7 o: `4 B* |9 K
% }! L: R, @6 l* B, E; B- Q
式(1)~(5)是一个线性规划模型,可以用 LINGO 求解,对应的 LINGO 程序 如下:
9 j0 o, Z* Y3 t$ `" L
5 q" D% o' H" c& ~ N
model:
5 ]% h6 V2 \$ q. P1 D
sets:
+ b4 P1 L0 E/ a1 ^# H: D: [; y" q
gx/1..4/:c1,c2,x,y;
. d6 k' q: L9 {( G5 X
endsets
: ], g$ z; I- f. P2 ~
data:
+ J* |) b, `; `3 n) i
c1=1 2 3 4;
S4 \" N* y8 J
c2=9,4.5,3,2.5;
$ C; V u3 g) O5 w
enddata
2 z- r f: {" V9 C
max=@sum(gx:c2*y-c1*x);
, b9 }' @5 O9 j
@sum(gx:x)=@sum(gx:y);
; q2 P0 j. j0 i% ] w7 ]9 x
@for(gx
bnd(0,x,2);@bnd(0,y,2));
: g1 F( V h9 f6 j2 b5 q( d& ?
end
( p6 s- M( }1 H8 A3 ? V+ j
求解这个模型,得到如下解答:
/ X+ q7 A* T/ K& T
8 j" N0 W; |5 n0 G
# E* X* e( w* p" F+ H6 U4 F( m
9 b$ G0 e J8 {8 v* o. l
(4)结果解释
- B8 G8 D1 D" u1 L
; H+ l# Q7 t. P4 D; W3 z$ S
可以看出,最优解为
。但你肯定觉得这还是没有解决问题,甚至认为这个模型错了,因为这个解法没有包括 3 万元单价的2t 交易量。虽然容易验证
, 也是最优解,但在一般情况下是难以保证一定求出这个解的。 那么如何才能确定清算价格呢?请仔细思考一下供需平衡约束(2)的对偶价格 (dual prices)的含义。对偶价格又称影子价格,表示的是对应约束的右端项的价值。 供需平衡约束目前的右端项为 0,影子价格为-3,意思就是说如果右端项增加一个很 小的量(即甲的供应量增加一个很小的量),引起的经销商的损失就是这个小量的 3 倍。 可见,此时的销售单价就是 3 万元,这就是清算价格。
& Q, ]$ c8 u4 V% e& O6 Y
, Q& Y( K6 J3 z6 M+ Y
(5)模型扩展
# _: K$ q& s: J1 j% E4 O
, N' Y2 T' n2 g* t2 L! X: P9 T
一般地,可以假设甲的供应能力随价格的变化情况分为K 段,即价格位于区间
时,供应量多为
, 我们把这个函数关系称为供应函数(这里它是一个阶梯函数)。同理,假设乙的消费能力随价格的变化情况分为L段,即价格位于区间
时,消费量多为
.
q_{2} > \cdots > q_{L}> q_{L+1} =0; 0=d_{0} < d_{1} < \cdots .我们把这个函数关系称为需求函数(这里它也是一个阶梯函数)。
7 D, v9 Q. a) W
# m) k% l7 o2 E
设甲以
的价格售出的产品数量为 (
),乙以
的价格购入的产品数量为 (
)。记
,则可以建立如下所示的线性规划模型:
. [9 s$ A1 K4 A2 x' g- ]
" b; T6 _3 U3 C+ \* z2 }6 P: b
& ], \3 ?* ~4 v0 D
9 S. z4 a7 E2 @) Q
2 I, Q4 I$ k# c$ o/ P5 x
$ Z* r. h4 K; l
2 两个生产商、两个消费者的情形
: f! b1 H5 q8 D) q
例 2 假设市场上除了例 1 中的甲和乙外,还有另一个生产商(记为丙)和另一个 消费者(记为丁),他们在不同价格下的供应能力和需求能力如表 2 所示。此外,从甲 销售到丁的每吨产品的运输成本是 1.5 万元,从丙销售到乙的每吨产品的运输成本是 2 万元,而甲、乙之间没有运输成本,丙、丁之间没有运输成本。这时,市场的清算价格 应该是多少?甲和丙分别生产多少?乙和丁分别购买多少?
) Q% J# x: R, r# H
% k1 Z& Z O. z& P
' C1 G+ o6 M# @8 y @$ M, D" {6 T
& Z% o! H3 P' U8 n
(1)问题分析
$ h/ G8 e% z8 }# [3 I+ T$ u. f
* Q! d6 E5 c# t% c
首先,我们看看为什么要考虑从甲销售到丁的产品的运输成本和从丙销售到乙的 产品的运输成本。如果不考虑这些运输成本,我们就可以认为甲乙丙丁处于同一个市场 上,因此可以将两个生产商(甲和丙)的供应函数合并成一个供应函数,合并后就可以 认为市场上仍然只有一个供应商。类似地,乙和丁的需求函数也可以合并成一个需求函 数,合并后就可以认为市场上仍然只有一个消费者。这样,就回到了例 1 的情形。
9 j1 f( x8 A n1 f1 u
% {, Z5 ?" g; {% G
也就是说,考虑运输成本在经济学上的含义,应当是认为甲乙是一个市场(地区 或国家),而丙丁是另一个市场(地区或国家)。运输成本也可能还包括关税等成本,由 于这个成本的存在,两个市场的清算价可能是不同的。
( q% P% e: D4 t" w; S
& m0 ^, E9 `0 Y* {/ W
仍然按照例 1 的思路,可以建立这个问题的线性规划模型。
6 R5 e8 ]. d& k, Q1 Y' K: H" ~
4 W7 b' H( R: I) I- e
(2)模型的建立和求解
, a! E' S/ n" H8 J& \7 |. V
8 ?: H. O. d( ?4 R; k9 U
设甲以 1,2,3,4(万元)的单价售出的产品数量(单位:t)分别是
;
1 ~! b5 K; [$ Y0 Z
& C5 U( ]; F% `' H) m6 }
乙以 9,4.5,3,2.25(万元)的单价购买的产品数量(单位 t)分别是
;
9 k- |$ _" S- p M! N8 H. P
; c$ y( t" F5 Y- R
丙以 2,4,6,8(万元)的单价售出的产品数量(单位:t)分别是
,
/ n* _6 Z; `, \5 @7 T3 n" R$ r# @
0 H! ?3 y0 W) y6 N" |3 @) o+ ^
丁以 15,8,5,3(万元)的单价购买的产品数量(单位:t)分别是
。此外, 假设 AX 和 AY 分别是甲向乙和丁的供货量,BX 和BY 分别是丙向乙和丁的供货量。 这些决策变量之间的关系参见示意图 1。
. v+ ~ `3 }- s- b6 a% g% L2 m; W
7 C5 H- Y. j" e( M6 w
1 ]& O) B$ H) [- u" n" D
* X7 k, |% m4 D% ~; l
目标函数仍然是虚拟经销商的总利润,约束条件仍然是四类(供需平衡、供应限制、 需求限制和非负限制),不过这时应注意供需平衡约束应该是包括图 1 所示的决策变量 之间的关系:
* N6 N9 M" T; u; d
- ~ U+ L% _2 C% I9 i! `( t
" l; t7 }( P. O- s$ a
$ z* R0 ]- w3 O. X; x1 | g
" d/ z* |6 n" b# Y" w2 U
9 A+ z( l2 N' Q1 o
此外的其它约束实际上只是一个简单的变量上界约束。
& Q8 |3 g- Z5 Z! W# _
5 x+ h: b8 |- e% d, _
下面直接给出 LINGO 程序:
6 E: W' w$ X1 Y2 J9 Z" j
% U& m$ h+ W( {5 E7 b/ h! [
model:
, j6 A! C) }/ y6 C; h0 z
sets:
5 p! J+ [; R. o% [ u7 Y
num1/1..4/:c1,c2,c3,c4,d1,d2,A,B,X,Y;
: W8 R3 R! P8 q5 L5 v* e3 L
num2/1,2/:AXY,BXY;
$ p4 \, B1 T3 p: p
endsets
- ^0 y7 s; @' m* y
data:
/ A7 H2 m4 p1 Y: _) I
c1=9 4.5 3 2.25;
+ S# N+ h5 D: Z1 p0 W" @4 y% d
c2=15 8 5 3;
8 K6 O( t" q- _0 n
c3=1 2 3 4;
- M% ]7 ^& i4 j u
c4=2 4 6 8;
" N* K3 Z) P3 }$ w
d1=1 3 4 4;
Y0 y1 y$ p/ C" @# d9 @
d2=1 2 3 4;
1 z0 r4 [: T, t B n, w" A
enddata
8 \, X# y0 e- A2 V5 [! }
max=@sum(num1:c1*x+c2*y-c3*A-c4*B)-2*BXY(1)-1.5*AXY(2);
. K T5 `1 H% K: ^* n" _
@sum(num1:A)-@sum(num2:AXY)=0;
# H# p( j: O; t) W: w
@sum(num1:B)-@sum(num2:BXY)=0;
0 D3 q0 o( ?% ^* ^+ A8 N' P/ v
AXY(1)+BXY(1)-@sum(num1:X)=0;
5 \) p* I9 @( Q
AXY(2)+BXY(2)-@sum(num1:Y)=0; @for(num1
bnd(0,A,2);@bnd(0,X,2);@bnd(0,B,d1);@bnd(0,Y,d2));
+ p e7 w; ~* C5 q
end
( P7 C! U* z# s$ F# S# w, N
求解这个模型,得到如下解答:
9 X2 `4 Q7 \2 R/ @$ E* c. h2 {$ L
h) Z3 x6 X) D5 {2 q# R1 l( N" e4 Q
6 ^5 E( @2 R& \: | ]
+ g1 |7 z( n8 K3 j# ?
6 [) ]: o% E$ l3 U! ?; Z1 n9 U
0 I. Z5 T8 j' b* p" r1 @$ {2 k
(3)结果解释
( z2 P- U( ^( s0 x) n- ^0 c- @
9 ?: Z) o3 `" s# s$ Q% }/ Q
可以看到,最优解为
4 t; ?5 X% C b9 T; q
$ t: U5 }! F* Q5 y, r
也就是说,甲将向丁销售2t产品,丙不会向乙销售。
3 Y5 Z7 O) b$ M" w3 z
G2 e& P" K! ~6 I1 S. G; w0 U
也就是说,甲将向丁销售2t产品,丙不会向乙销售。 那么如何才能确定清算价格呢?与例1类似,约束(2)是针对生产商甲的供需平 衡条件,目前的右端项为0,影子价格为-3,意思就是说如果右端项增加一个很少的 量(即甲的供应量增加一个很少的量),引起的经销商的损失就是这个小量的3.5倍。 可见,此时甲的销售单价就是3万元,这就是甲面对的清算价格。 完全类似地,可以知道生产商丙面对的清算价格为4.5。自然地,乙面对的清算价 格也是3,丁面对的清算价格也是4.5,因为甲乙位于同一个市场,而丙丁也位于同一 个市场。这两个市场的清算价之差正好等于从甲、乙到丙、丁的运输成本(1.5),这 是非常合理的。
) s0 C' p {, J6 n7 N
" f# b1 y$ P) `* Y
(4)模型扩展
) }7 D, B, \/ B% _, n4 n! e
$ M4 L, u( `" Q( p4 x$ ]- d
可以和1.1一样,将上面的具体模型一般化,即考虑供应函数和需求函数的分段数 不是固定为4,而是任意有限正整数的情形。 很自然地,上面的方法很容易推广到不仅仅是2个市场,而是任意有限个市场的情 形。理论上看这当然没有什么难度,只是这时变量会更多,数学表达式变得更复杂一些。
- s! P) s: e- P9 B0 B
————————————————
3 U* I5 ?% @) b) s# X
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
/ U! }9 R' Y0 h( _; G& ?
原文链接:https://blog.csdn.net/qq_29831163/java/article/details/89401964
( J9 s; _+ A: }3 }) s
2 k, U; V+ G. y# J# b
1 s) ~7 B' [9 u. }2 a, l; E( P5 i
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5