自定义算符o_plus:当x+y属于[-1,1]时,o_plus(x,y)=x+y;x+y大于1时,o_plus(x,y)=1;x+y小于-1时,o_plus(x,y)=-1。例如函数y=o_plus(x,0)的图像如图1所示:
matlab编程如下
其中,phi函数的图像如下图2所示:
积分范围示意图如下图3所示:(代码中令b=pi)
所得结果不同,如下图4:
正常情况下,二重积分的结果与积分次序无关,所得结果不同是由于引入了自定义算符吗?哪种积分顺序是对的,应该如何计算呢?(或是我积分方式不对?)被积函数满足什么条件才能实现二重积分结果与积分顺序无关呢?
syms x y a b%所用变量
uy1=acos(y);
uy2=2*pi-acos(y);
phi=o_plus(int(cos(a)-y,a,uy1,uy2),1);%phi为y的函数
intexp=matlabFunction(phi*x*y);%phi*x*y为被积函数,转化为函数句柄
B31_mf=@(b) integral(@(y) integral(@(x) intexp(x,y),y,b),0,b,'ArrayValued',true);%二重积分的积分顺序为:先x后y,积分范围由b控制,(函数句柄)
B41_mf=@(b) integral(@(x) integral(@(y) intexp(x,y),0,x),0,b,'ArrayValued',true);%二重积分的积分顺序为:先y后x,积分范围由b控制,(函数句柄)
disp(B31_mf(pi))
disp(B41_mf(pi))
function output=o_plus(a,b)%o_+算符
output=min(max(a + b, -1), 1);
end