在写一个带时间窗的程序,但是分段函数以及求定积分的部分一直出现各种各样的错
一方面也是我自己基础比较差 可能对什么维数要统一 这类问题不敏感
求大神帮忙看看问题到底出在哪里
附上程序:
p1=zeros(8,1);
p2=zeros(8,1);
mot=zeros(8,1);
mot_c=zeros(8,1);
T=zeros(8,2); %时间窗组合
a=zeros(8,1); %时间窗起点
b=zeros(8,1); %时间窗终点
D=96; %最晚取箱时间
d=12; %时间窗弹性时间
for x=1:8
T(x,1)=(x-1)*12+1;
T(x,2)=x*12;
end
a=T(:,1);
b=T(:,2);
t=1:97;%为了取t=0时的mot值
for x=1:8
mot=@(t)(-2/a(x,1)*abs(t-(a(x,1)-d))).*(t>0 & t
0.*((t>=a(x,1)-d & tb(x,1) & t<=b(x,1)+d))+...
2.5*a(x,1).*(t>=a(x,1) & t<=b(x,1))+(-2/a(x,1)*abs(t-(b(x,1)+d))).*(t>b(x,1)+d & t
------------------------------------------ (这里尝试了这两种表达方法 好像都有错)
if t>0 & t
mot=@(t)(-2/a(x,1).*abs(t-(a(x,1)-d)));
elseif (t>=a(x,1)-d & tb(x,1) & t<=b(x,1)+d)
mot=0;
elseif t>=a(x,1) & t<=b(x,1)
mot=2.5.*a(x,1);
elseif t>b(x,1)+d & t
mot=@(t)-2/a(x,1).*abs(t-(b(x,1)+d));
end
-----------------------------------------------------
K=min(feval(mot,0),feval(mot,D)); %取正构造
fun1=@(t)(exp(-0.25.*a(x,1))-exp(-0.25.*b(x,1))).*(mot-K); %补助金函数
p0=quad(fun1,0,D);
p1(x,1)=quad(fun1/p0,0,a(x,1)); %早于时间窗提走的概率
p2(x,1)=quad(fun1/p0,b(x,1),D); %晚于时间窗提走的概率
mot_c(x,1)=quad(fun*mot/quad(fun,0,D),max(0,a(x,1)-d),min(b(x,1)+d,D));
end
反复捣鼓了一两天了 还是没有解决
跑到这里来求助了
不要嘲笑我。。恩 就酱 谢谢大家啦啦啦