怎么用MATLAB数学建模?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-21

【求解答案】阿珍应选择产品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函数)。另外,要说明的是期望效用函数失去了保序性,不具有序数性。



首先,我们需要根据题目给出的信息,计算出每个产品在不同获利情况下的效用值。然后,我们可以使用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算出
    答:l k S j i k j i l k j i k l k j l i j i k l k S C X . 7 , , 2 , 1 , ; 2 , 1 , , 0 , , = = ≥ j i k X j i k 整数 (1) 利用LINGO 软件包对整数线性规划模型(1)进行编程并运行程序可有如下结果输出【3】: 输出有428 行,前4 行为 Global ...
  • 建模的基本数学工具有哪些?
    答:00MATLAB 本工具箱主要包含三部分内容 (支持平台MATLAB5.3或5.2,Symbolic math,optim,spline,stats)1. MATLAB常用数学建模工具的中文帮助 2. 贡献MATLAB数学建模工具(打*号)3. 中国大学生数学建模竞赛历年试题MATLAB程序 安装步骤 1. 将MATHMODL.zip解压缩至matlab11\toolbox\;2. 启动Matlab,利用Path...
  • 100分悬赏 解决matlab数学建模问题
    答:t=0:5:1000;应该修改为 t=0:1/(50*10^6):Nmax/(50*10^6);文中已经写了采样频率为50MHz,t=0:5:1000的意思是每5s取一个观察值,而信号中心频率为2.5MHz,显然不合理。Nmax为采样点数,如果你要清晰的观察信号y,Nmax取100左右就可以了。但是Nmax太小的话,t的值太小,不能显示exp(...
  • ...生数学建模大赛A题凸轮边缘曲线图用Matlab如何绘制
    答:针对问题一将油管压力稳定在100MPa的情况 第一问:首先我们对附件3的数据用matlab进行了曲线拟合,打算用积分取反得到压力与密度的关系式。然后拟合发现三次、四次的拟合效果最好,但是matlab无法对其取反,最终选择了二次表达式;求取了压力与密度关系式后,我们建立了压力总偏移量最小为目标函数的单目标...
  • 用matlab求此数学建模问题
    答:第三问从matlab的实验情况看就是单位时间的停工损失,除以维修时间,得到的结果从大到小排列,对应编号就是维修顺序。具体要说明应该是数学证明,不是程序的问题,刚调了程序有些头昏,你自己看看有没有什么证明,或者改天我搞清了再加上 目前有思路但没有具体证明,如两个机器,对应时间和单位时间损失为...
  • 用matlab 数学建模求线性方程根{2x1+x2-x3=5 3x1-2x2+2x3=5 5x1-3x...
    答:A=[2 1 -3;3 -2 2;5 -3 -1];B=[5;5;16];x=A\B;x就是x1 x2 x3三个元素组成的向量[x1;x2;x3]
  • 数学建模怎么建立模型?
    答:能否对模型结果作出细致精当的分析,决定了你的模型能否达到更高的档次。还要记住,不论哪种情况都需进行误差分析,数据稳定性分析。6、模型检验 把数学上分析的结果翻译回到现实问题,并用实际的现象、数据与之比较,检验模型的合理性和适用性。7、模型应用 取决于问题的性质和建模的目的。
  • 用数学建模的方法设计一个污水均流池
    答:约束条件就24* v=定积分结果+a*b*3*0.75,然后该正正该给值就给值lingo接下就出来了。关于拟合你做散点研究一下用那个拟合好,拟合后就可以用MATLAB直接输出表达式,直接那表达式积分。这个模型方法应该很多,既然做数模你应该是学数的,好好想想可以完善一下模型。数学模型 一般是实际事物的一种...
  • lingo和matlab在数学建模中,如何选择使用?
    答:matlab数值计算强大 编程方便 lingo做规划首选 .MATLAB的概况 MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处 理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来...
  • 2002年数学建模B题 “彩票中的数学”中关于用MATLAB或LINGO求解非线性...
    答:使用两个程序的具体步骤:在Matlab环境下,使用“File/set path…”添加路径“\...”根据你的实际问题,修改一系列的参数和文件如下6步 1) the parameters are given by the requirement of the function fmincom.m A,B,Aeq,Beq,LB,UB,X0 2) 'obj_fun.m' 是目标函数...