怎么用MATLAB数学建模?

某企业考虑两种生产方案:产品A可以0.3的概率获利5万元,以0.2的概率获利8万元,以0.5的概率获利9万元;产品B肯定可以获利8万元。决策者阿强的效用函数为线性:
￵{"emojiDesc":"","emojiUrl":"","hasSourceImage":false,"hashCode":133320119,"height":31,"srcPath":"/storage/emulated/0/Android/data/com.tencent.wework/files/imagecache/imagemsg2/7/707bcac4c7d451f02d8f4249b1da99c3.0","thumbPath":"/storage/emulated/0/Android/data/com.tencent.wework/files/imagecache/imagemsg2/7/707bcac4c7d451f02d8f4249b1da99c3.0","width":88}￰
;决策者阿珍的效用函数为:

￵{"emojiDesc":"","emojiUrl":"","hasSourceImage":false,"hashCode":146964034,"height":76,"srcPath":"/storage/emulated/0/Android/data/com.tencent.wework/files/imagecache/imagemsg2/b/b806bb54c6c944e6b008376f44366d7a.0","thumbPath":"/storage/emulated/0/Android/data/com.tencent.wework/files/imagecache/imagemsg2/b/b806bb54c6c944e6b008376f44366d7a.0","width":379}￰

用MATLAB画出两个决策者的效用曲线,并编程求出两位决策者应该做何选择(要求最后输出的结果为“阿珍应选择产品xx”、“阿强应选择产品xx”)。

【求解答案】阿珍应选择产品A;阿强应选择产品B。

【求解思路】该题型属于经济学的不确定情况下消费者行为的问题。

1、题中的决策者可以认为是消费者;

2、运用预期效用函数来计算,即

3、比较E的大小,选择E值大的。就是决策者应选择的产品。

4、用matlab实现上述要求,可以这样书写其程序。

1)创建一个x从0到10的数组

2)创建u1(x),u2(x)效用函数

3)用plot绘图函数,绘制决策者的效用函数曲线

4)用xlabel和ylabel函数,标注坐标轴的名称

5)用legend函数,标注图例的名称

6)根据题意,创建p=[0.3,0.2,0.5];x=[5,8,9];数组

7)运用for循环语句,求出产品A和产品B的E值

8)运用if条件语句,分别判断产品A和产品B的最大E值

9)最后运用if条件语句,判断决策者阿强和决策者阿珍所选择的产品

【matlab代码及其解】

x=0:0.1:10;

u1=x;

u2=0.2*x.^2.*(x>=0 & x<=5)+(-10+4*x+0.2*x.^2).*(x>=5 & x<=10);

figure(1)

plot(x,u1,'r'),hold on

plot(x,u2,'g'),hold on

xlabel('x','FontSize',10);

ylabel('u(x)','FontSize',10);

legend('决策者阿强的效用函数u_1(x)','决策者阿珍的效用函数u_2(x)')

title('效用函数曲线') 

p=[0.3,0.2,0.5];x=[5,8,9];

%决策者阿强选择产品A

E11=0;

for i=1:3

u1=x(i);

E11=E11+p(i)*u1;

end

%决策者阿强选择产品B

E12=8; 

%决策者阿珍选择产品A

E21=0;

for i=1:3

if and(x(i)>=0,x(i)<=5)

u2=0.2*x(i)^2;

E21=E21+p(i)*u2;

else

u2=-10+4*x(i)+0.2*x(i)^2;

E21=E21+p(i)*u2;

end

end

%决策者阿珍选择产品B

E22=8; 

if E11>E12

disp('决策者阿强选择产品A')

else

disp('决策者阿强选择产品B')

end 

if E21>E22

disp('决策者阿珍选择产品A')

else

disp('决策者阿珍选择产品B')

end

【求解过程】

【本题知识点】

1、效用。效用是指消费者在商品和劳务的消费中获得的满足感。效用的大小取决于商品满足人们欲望和需求的能力,也取决于消费者对商品的需求程度以及消费者对其满足程度的主观心理评价。

2、效用函数。效用函数通常是用来表示消费者在消费中所获得的效用与所消费的商品组合之间数量关系的函数,以衡量消费者从消费既定的商品组合中所获得满足的程度。

效用函数的定义是设f是定义在消费集合X上的偏好关系,如果对于X中任何的x,y,xfy当且仅当u(x)≥u(y),则称函数u:X→R是表示偏好关系f的效用函数。

3、总效用。总效用是指消费者在一定时间内,连续消费一定数量商品所得到的总的满足感,用TU表示。

效用函数 TU=U(X)

4、边际效用。边际效用是指在一定的时间内,消费者每增加一个单位商品消费所得到的效用增加量,用MU表示。

边际效用函数  MUx=ΔTUΔ/X

5、期望效用函数理论。期望效用函数理论, 是20世纪50年代,冯·诺依曼和摩根斯坦在公理化假设的基础上,运用逻辑和数学工具,建立了不确定条件下对理性人选择进行分析的框架。

该理论是将个体和群体合而为一的。阿罗和德布鲁将其吸收进瓦尔拉斯均衡的框架中,成为处理不确定性决策问题的分析范式,进而构筑起现代微观经济学并由此展开的包括宏观、金融、计量等在内的宏伟而又优美的理论大厦。

如果某个随机变量X以概率Pi取值xi,i=1,2,…,n,而某人在确定地得到xi时的效用为u(xi),那么,该随机变量给他的效用便是:

U(X) = E[u(X)] = P1u(x1) + P2u(x2) + ... + Pnu(xn)

其中,E[u(X)]表示关于随机变量X的期望效用。因此U(X)称为期望效用函数,又叫做冯·诺依曼—摩根斯坦效用函数(VNM函数)。另外,要说明的是期望效用函数失去了保序性,不具有序数性。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-08-20
首先,我们需要根据题目给出的信息,计算出每个产品在不同获利情况下的效用值。然后,我们可以使用MATLAB的绘图功能来画出两个决策者的效用曲线。
假设阿强和阿珍的效用函数分别为 u_A(x) 和 u_B(x) ,其中 x 为获利金额。对于产品A,我们可以列出如下效用函数:
u_A(5) = 0.3
u_A(8) = 0.2
u_A(9) = 0.5
对于产品B,其效用函数为 u_B(8) = 1。
现在我们可以使用MATLAB来画出这两个效用曲线。首先,我们需要定义这些效用值,然后使用 MATLAB 的 plot 函数来绘制这些曲线。
以下是MATLAB代码的示例:
matlab% 定义阿强的效用函数
prob_A_profit_5 = 0.3;
prob_A_profit_8 = 0.2;
prob_A_profit_9 = 0.5;
profit_A = [5 8 9];
utility_A = [prob_A_profit_5 prob_A_profit_8 prob_A_profit_9];

% 定义阿珍的效用函数
profit_B = 8;
utility_B = [1];

% 绘制阿强的效用曲线
x_A = linspace(min(profit_A), max(profit_A));
y_A =interp1(profit_A, utility_A, x_A, 'linear');
plot(x_A, y_A, 'r', 'LineWidth', 2);
hold on;

% 绘制阿珍的效用曲线
x_B = linspace(min(profit_B), max(profit_B));
y_B = interp1(profit_B, utility_B, x_B, 'linear');
plot(x_B, y_B, 'b', 'LineWidth', 2);
xlabel('Profit (万元)');
ylabel('Utility');
legend('阿强', '阿珍');
title('决策者的效用曲线');
grid on;
这段代码会生成一个图,显示了阿强和阿珍的效用曲线。
接下来,我们需要编写一个函数来找到最大化每个决策者效用的产品选择。我们可以使用 MATLAB 的 fminsearch 函数来找到这个最优解。以下是相应的 MATLAB 代码:
matlab% 阿强的最优产品选择
profit_A = [5 8 9]; % 产品A的获利金额
utility_A = [0.3 0.2 0.5]; % 阿强在产品A不同获利情况下的效用值
profit_B = 8; % 产品B的获利金额
utility_B = [1]; % 阿强在产品B的获利情况下的效用值

% 将阿强的效用函数转化为可计算的形式
util_func_A = @(x) max(interp1(profit_A, utility_A, x));
util_func_B = @(x) max(interp1(profit_B, utility_B, x));

% 为fminsearch函数设置初始猜测值,这里假设阿强和阿珍的初始猜测值均为8万元
x0 = 8;
[x, fval] = fminsearch(@(x) util_func_A(x), x0);
utility_max_A = max(interp1(profit_A, utility_A, x));
if utility_max_A > max(utility_B) % 如果阿强的最优选择带来的效用大于阿珍的最优选择带来的效用,则选择产品A;否则选择产品B。
disp('阿强应选择产品A');
else
disp('阿强应选择产品B');
end