怎么用MATLAB数学建模?

作者&投稿:宫帜 (若有异议请与网页底部的电邮联系)
~

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

数学建模:酒店最优化问题.用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 ...

用matlab求此数学建模问题
答:第三问从matlab的实验情况看就是单位时间的停工损失,除以维修时间,得到的结果从大到小排列,对应编号就是维修顺序。具体要说明应该是数学证明,不是程序的问题,刚调了程序有些头昏,你自己看看有没有什么证明,或者改天我搞清了再加上 目前有思路但没有具体证明,如两个机器,对应时间和单位时间损失为...

...生数学建模大赛A题凸轮边缘曲线图用Matlab如何绘制
答:针对问题一将油管压力稳定在100MPa的情况 第一问:首先我们对附件3的数据用matlab进行了曲线拟合,打算用积分取反得到压力与密度的关系式。然后拟合发现三次、四次的拟合效果最好,但是matlab无法对其取反,最终选择了二次表达式;求取了压力与密度关系式后,我们建立了压力总偏移量最小为目标函数的单目标...

求会用数学建模MATLAB的大神们看看这个问题,怎么做程序才行啊?
答:利用matlab中的非线性曲线拟合。自己编写要拟合的函数,根据以上提供的电压方程编写如下(保存为fcn_.m):function y = fcn_(beta0,t)V0 = beta0(2);t0 = beta0(1);y = 10-(10-V0).*exp(-t/t0);end 让后根据以上提供数据,利用nlinfit进行拟合 t = [0.5 1 2 3 4 5 7 9];V...

数学建模 线性规划 关于植树的问题 利用MATLAB求解
答:设挖坑,栽树,浇水男生x1,x2,x3人,女生y1,y2,y3人 设浇玩水才算载好一棵树 max 25x3 + 15y3 0 <= x1 + x2 + x3 <= 30 0 <= y1 + y2 + y3 <= 20 20x1 + 10y1 >= 30x2 + 20y2 >= 25x3 + 15y3 >= 0 matlab:f = [0 0 -25 0 0 -15];A = [1 1 1 0...

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' 是目标函数...

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

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(...

用数学建模的方法设计一个污水均流池
答:约束条件就24* v=定积分结果+a*b*3*0.75,然后该正正该给值就给值lingo接下就出来了。关于拟合你做散点研究一下用那个拟合好,拟合后就可以用MATLAB直接输出表达式,直接那表达式积分。这个模型方法应该很多,既然做数模你应该是学数的,好好想想可以完善一下模型。数学模型 一般是实际事物的一种...