📄 exm05835_3.m
字号:
%exm05835_3.m
clc
yt1=exm05835_2(1);
%"零阶"法计算卷积
t2=3;t4=11;T=0.01;
tu=0:T:t2;N2=length(tu);
th=0:T:t4;N4=length(th);
u=exp(-tu);h=th.*exp(-th/2);
tx=0:T:(t2+t4);Nx=length(tx);
yt3=T*conv(u,h);
%把计算结果与理论值比较
t=tx;yyt1=eval(vectorize(char(yt1)));%例5.8.3.5-2第(1)步的计算结果
[dy,kd]=max(abs(yyt1(1:N2)-yt3(1:N2)));
dy13(1)=dy/abs(yyt1(kd));
[dy,kd]=max(abs(yyt1(N2+1:N4)-yt3(N2+1:N4)));
dy13(2)=dy/abs(yyt1(N2+kd));
[dy,kd]=max(abs(yyt1(N4+1:Nx)-yt3(N4+1:Nx)));
dy13(3)=dy/abs(yyt1(N4+kd));
%不同区间段的误差及图示
disp('与理论结果的相对误差')
disp([blanks(4),'[0,3]段 [3,11]段 [11,14]段']),disp(dy13)
%填色
kt3=find(tx==3);
tt=[tx(1:kt3),3,0];ttt=[3,tx(kt3:end),14,3];
yy=[yt3(1:kt3),0,0];yyy=[0,yt3(kt3:end),0,0];
shg,clf
fill(tt,yy,'g'),hold on,fill(ttt,yyy,'m')
text(1,0.2,'\fontsize{16}\fontname{隶书}正确区'),
text(3.5,0.2,'\fontsize{16}\fontname{隶书}含截断误差区')
set(gca,'Xtick',[0,3,11,14]),grid
plot(t,yyt1,'b',t,yt3,'r','LineWidth',2)
legend('理论卷积','数值卷积')
title('数值卷积中的误差影响')
xlabel('\rightarrow t')
hold off
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -