怎么用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

怎么用MATLAB数学建模?
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];数组 ...

MATLAB中如何进行线性方程组的求解与建模实验?
1.1.1 安装步骤: 完成MATLAB的下载和安装1.1.2 基本用法: 学习界面布局和基本操作1.2 向量与矩阵运算<\/ 1.2.1 生成<\/: 向量和矩阵的创建方法 1.2.2 操作<\/: 矩阵的复制、转置等基础操作 1.2.3 基本运算<\/: 加、减、乘、除等基本数学运算 1.3 编程与图形<\/ 1.3.1 脚本与函数: ...

数学建模-数据建模常规方法的MATLAB实现
首先,它支持与Excel的交互,有三种常见方式:1. 通过matlab直接导入Excel数据,便于数据管理与分析。2. 另一个选项是从Excel环境中访问MATLAB,灵活地在两者之间切换操作。3. 还有将MATLAB代码封装为Excel加载项,使得Excel用户也能直接利用MATLAB的计算能力。具体可以参考MathWorks的官方文档:将 MATLAB 与 ...

数学建模如何用Matlab工具箱偷懒?Matlab的Curve Fitting Tool的详细...
操作指南首先,从命令行输入"cftool"快速打开工具箱。在界面,选择X和Y数据,如果没有现成的,可以输入"load census"加载示例数据。工具箱会自动生成初步拟合,你可以根据需要更改模型进行新拟合,并通过拟合概况对比结果。通过菜单栏,你可以生成代码、调用绘图工具进行进一步编辑和标记。最后,别忘了保存到...

给定一些地区(散点)的坐标和海拔,怎么用matlab画出地形图
方法\/步骤 首先,我们选择一个区域,选择某些地点测量其相对于某水平面高度的数据,下面我们要做的是用这些数据尽量准确地绘制出该地区的地形地貌图。数据如下:下面我们通过Matlab对这些测量数据进行数据插值,并绘制出图形地貌。显然应该采用二维插值,在此采用效果更好的三次样条插值。在进行代码的编写前,...

如何学习用MATLAB建立游戏的数值模型
第七,模型应 用。通过检验,模型与实际相符后,投入 实际应用,解决实际问题。二、Matlab在数学建模中的应用举例 正因为 Matlab这一数学软件能够非 常方便、快捷、高效地解决数学建模所涉 及的众多实际问题,因此,Matlab在数学 建模中为许多建模工作者重视。 1:(包含无风险证券的投资组合问题) 金融市场...

参加数学建模比赛应该掌握MATLAB中的哪些技能?
)函数实现。方法一:编写代码,包括多个"clear"命令清除变量,然后输入脚本文件名。方法二:使用run()函数,输入脚本文件名。五、MATLAB功能 使用MATLAB,可以重温经典游戏,如扫雷、与doge互动等。此外,MATLAB在数学建模竞赛中也常用于解决问题。竞赛结束后,可利用MATLAB进行项目展示或进一步学习。

数学建模用Matlab需要哪些工具箱? ps:我不会这个软件,所以请知道的大仙...
数学建模 最重要的是用到数据处理功能 最基本的 如数据拟合工具箱 多远回归工具箱 以及常用的绘图命令 以多次参加数学建模大赛的经历告诉楼主这是最最常用的两个工具箱 从matlab的左下角的 start 可以进入工具箱界面 软件就是一个工具 具体的算法可以通过matlab 来实现 常用的预测模型 竞争模型 常微分...

做数学建模要学MATLAB的哪些内容
在进行数学建模时,熟练掌握MATLAB是非常重要的。我总结了几点关键内容,希望对你有所帮助。首先,理解并掌握矩阵的表示和操作是基础。包括加减乘除、转置、求逆等操作,这些是进行数学运算的基础。掌握矩阵操作可以帮助你更高效地处理数据。其次,学习如何使用M文件编程是必不可少的。尽管MATLAB语言与C语言...

Matlab在数学建模中的仿真是用什么工具?是simulink么?还是直接编写M文件...
首先需加载指定的仿真系统,然后在simulink窗口中添加模块,创建仿真系统,再在命令行中输入仿真指令(程序),得出仿真结果。 simulink不过simulink是基于MATLAB所以M文件什么的数据数量等还是可以用的 主要是自己编程,一般不用simulink

相似回答
大家正在搜