clear all; close all; syms T; syms k; syms k1; syms k2; syms i; A=3; H=40; syms t; y1=t*3*exp(-3*t); y2=3*exp(-3*t); fy1=int(y1,k*T,k*T+T); fy2=int(y2,k*T,k*T+T); a=ceil((k*T-T)/0.5)*A/T; b=ceil(k*T/0.5)*A; c=ceil(k*T/0.5)*A/T; for T=0.05:0.05:5 k2=ceil(H*0.5/(A*T)); y1=t*3*exp(-3*t); y2=3*exp(-3*t); if(T>=0.5) fy1=int(y1,k*T,k*T+T); fy2=int(y2,k*T,k*T+T); a=ceil((k*T-T)/0.5)*A/T; b=ceil(k*T/0.5)*A; c=ceil(k*T/0.5)*A/T; k1=1; i=T/0.05; S(i)=symsum((a*(fy1-k*T)+b*fy2+c*(fy1-k*T)),k,k1,k2); else k1=ceil(0.5/T); fy1=int(y1,k*T,k*T+T); fy2=int(y2,k*T,k*T+T); a=ceil((k*T-T)/0.5)*A/T; b=ceil(k*T/0.5)*A; c=ceil(k*T/0.5)*A/T; i=T/0.05; S(i)=symsum((a*(fy1-k*T)+b*fy2+c*(fy1-k*T)),k,k1,k2); disp(S(i)); end; end; plot(i,S(i))
略加修改,具体修改不为见程序注释
clear all;
close all;
syms T;
syms k;
syms k1;
syms k2;
syms i;
A=3;
H=40;
syms t;
y1=t*3*exp(-3*t);
y2=3*exp(-3*t);
fy1=int(y1,k*T,k*T+T);
fy2=int(y2,k*T,k*T+T);
a=ceil((k*T-T)/0.5)*A/T;
b=ceil(k*T/0.5)*A;
c=ceil(k*T/0.5)*A/T;
for T=0.05:0.05:1
k2=ceil(H*0.5/(A*T));
y1=t*3*exp(-3*t);
y2=3*exp(-3*t);
if(T>=0.5)
fy1=int(y1,k*T,k*T+T);
fy2=int(y2,k*T,k*T+T);
a=ceil((k*T-T)/0.5)*A/T;
b=ceil(k*T/0.5)*A;
c=ceil(k*T/0.5)*A/T;
k1=1;
i=round(T/0.05); % 此行增加round函数,保证i为整数
S(i)=symsum((a*(fy1-k*T)+b*fy2+c*(fy1-k*T)),k,k1,k2);
else
k1=ceil(0.5/T);
fy1=int(y1,k*T,k*T+T);
fy2=int(y2,k*T,k*T+T);
a=ceil((k*T-T)/0.5)*A/T;
b=ceil(k*T/0.5)*A;
c=ceil(k*T/0.5)*A/T;
i=round(T/0.05); % 此行增加round函数,保证i为整数
S(i)=symsum((a*(fy1-k*T)+b*fy2+c*(fy1-k*T)),k,k1,k2);
disp(S(i));
end;
end
I = round(0.05:0.05:1); % 绘图x轴修改
plot( I,double(S) ) % 绘图S转换为double量,符号量不能绘图
xlim([0.05 1])
结果:
这个程序怎么了呀,有报错呢还是运算的结果和预期的不一样?
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632