检验显示偏好弱公理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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