检验显示偏好弱公理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用matlab程序检验显示偏好弱公理

显示偏好弱公理(WARP)

如果(x1,x2)被直接显示偏好于(y1,y2),且(x1,x2)和(y1,y2)不同,那么,(y1,y2)就不可能被直接显示偏好于(x1,x2)

分析:给出在不同价格下消费者选择的消费束。检验该消费者的行为是否符合显示偏好弱公理。检验时我们最初认为消费者的行为符合显示偏好弱公理。若观察到不符合条件的数据,则否定原假设

1、输入过程

需要输入的数据有:

价格水平数n

每组消费束的价格与购买量p1,p2,x1,x2

定义n行4列的矩阵(实际功能为数组)a,a(i,1)到a(i,4)分别n=input('input n:');

•for i=1:n

• a(i,1:4)=input('input p1,p2,x1,x2:');

• a(i,5)=a(i,1)*a(i,3)+a(i,2)*a(i,4);

•end

•存储第i个价格水平下的p1,p2,x1,x2

2、定义判断变量flag

设置一个变量flag, flag=1表示符合, flag=0表示不

符合

我们为其赋予初值1,flag=1

3、形成矩阵

矩阵第i行第j列的数据为价格水平i下消费束j的价格,定义矩阵matr,则有:

matr(i,j)=a(i,1)*a(j,3)+a(i,2)*a(j,4);

for i=1:n

for j=1:n

matr(i,j)=a(i,1)*a(j,3)+a(i,2)*a(j,4);

end

end

4、比较判断过程

由于每次比较都会涉及上下三角矩阵中对应元素,所以我们将游标定义在上三角矩阵中,取遍上三角矩阵中的所有元

素。其中游标i指向行(取遍各个价格水平),范围为1~n-1。

游标j指向列,范围为i+1~n,即可取遍整个上三角形区域

for i=1:n

for j=i+1:n

if (matr(i,j)<=matr(i,i)) && (matr(j,i)<=matr(i,i))

flag=0;

break;

end

end

end

5、输出结果

判断flag的值

若flag=1则输出True

若flag=0则输出False

if flag==0

msgbox('False');

else msgbox('True');

end

相关文档
最新文档