matlab 拉普拉斯变换

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(T==0)=[];
plot(T,subs(ft,T))

不过,由于t<0时的函数为指数函数,取值范围很大,绘图效果不好。如果画t=0~10之间的图像,可以用

T=linspace(eps,10,100);
plot(T,subs(ft,T))

追问

非常感谢,另还有几个疑问请帮忙解答
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的值。

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-04-29

拉普拉斯变换法:求解常系数线性常微分方程的一个重要方法

第2个回答  2015-06-10
拉式变化以后的变量为t,但是t你并没有说明
相似回答