matlab如何求分段函数的积分,matlab求解分段函数及定积分的问题

博主在尝试编写一个涉及分段函数和定积分的MATLAB程序,遇到错误。程序中定义了多个变量和时间窗,并尝试用不同方法表示分段函数,但都遇到了问题。博主寻求帮助解决在计算早于、晚于时间窗提走概率以及补助金函数积分时的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写一个带时间窗的程序,但是分段函数以及求定积分的部分一直出现各种各样的错

一方面也是我自己基础比较差 可能对什么维数要统一 这类问题不敏感

求大神帮忙看看问题到底出在哪里

附上程序:

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

反复捣鼓了一两天了 还是没有解决

跑到这里来求助了

不要嘲笑我。。恩 就酱  谢谢大家啦啦啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值