syms s;
ft = ilaplace((s^3+5*s^2+9*s+7)/(s^2+3*s+2));
ezplot(ft,[-100,100]);
为什么运行不了?
原因是,像函数的分子阶次高于分母阶次,拉氏逆变换的结果中会出现Dirac函数 dirac(t) 及其一阶导函数(为一个冲击偶,在早期Maple内核中的表示为dirac(1,t),后来MuPad中的表示为dirac(t,1)),而比较蛋疼的是,MATLAB并未定义Dirac函数的导函数,所以绘图会出错。
由于Dirac函数及其导函数在除t=0之外的部分都为0,而在t=0处的值为无穷大(或负无穷),在绘图也不好体现。所以,可以考虑避免t取0(即把t=0的点剔除),以规避绘图出错。
参考代码:
T=-100:0.5:100;不过,由于t<0时的函数为指数函数,取值范围很大,绘图效果不好。如果画t=0~10之间的图像,可以用
T=linspace(eps,10,100);非常感谢,另还有几个疑问请帮忙解答
linspace(eps,10,100 ) 表示0到100每隔10取一个值,是吗?
subs(ft,T) 请问是什么意思,subs是赋值函数吗?
T(T==0)=[]; 这又是什么意思呢?是指去掉0点吗?
这种问题一般查一下帮助就能解决。
linspace(eps,10,100) 表示0(为避开9,用很小的正数eps)到10,一共取100个值。
subs(ft,T) 把ft的第一个变量即t用数据T代替。
T(T==0)=[]; 去掉T中为0的值。