使用 MATLAB 进行拉普拉斯逆变换
本教程将讨论如何在 MATLAB 中使用 ilaplace()
函数求拉普拉斯逆变换。
在 MATLAB 中使用 ilaplace()
函数求拉普拉斯逆变换
我们使用逆拉普拉斯变换将拉普拉斯域函数转换为时域函数。在 Matlab 中,我们可以使用 ilaplace()
函数将拉普拉斯域函数转换为时域函数。ilaplace()
函数不包括三个输入变量。第一个变量是必选的,即拉普拉斯域函数,第二个变量是可选的,即拉普拉斯域的自变量。默认情况下,Matlab 会使用变量 s 作为自变量,第三个变量是时域的变换变量。默认情况下,Matlab 将使用变量 t 作为转换变量。例如,让我们在 Matlab 中使用 ilaplace()
函数求函数的拉普拉斯逆变换。请参阅下面的代码。
syms s
fun = 1/s^2;
Output = ilaplace(fun)
输出:
Output =
t
在上面的代码中,如你所见,我们只向 ilaplace()
函数提供了该函数。但是如果你想改变转换变量,你需要将该变量作为第二个参数传递给 ilaplace()
函数。例如,让我们用 x 替换转换变量 t。请参阅下面的代码。
syms s
fun = 1/s^2;
Output = ilaplace(fun,x)
输出:
Output =
x
在上面的代码中,如你所见,转换变量 t 更改为 x。现在考虑另一个示例,我们将更改自变量和转换变量。请参阅下面的代码。
syms a s
Fun = 1/(s-a);
Output = ilaplace(Fun)
输出:
Output =
exp(a*t)
在上面的代码中,我们只为 ilaplace()
函数提供了函数,因此它将使用自变量和转换变量的默认值。现在让我们更改这两个变量,取而代之的是,我们将使用 a
作为自变量,使用 x 作为转换变量。请参阅下面的代码。
syms a s
Fun = 1/(s-a);
Output = ilaplace(Fun,a,x)
输出:
Output =
-exp(s*x)
在上面的代码中,如你所见,输出和输出中的变量都发生了变化。所以,如果我们改变自变量,结果就会改变。我们还可以使用 ilaplace()
函数找到矩阵或数组的拉普拉斯逆变换。我们可以将自变量和变换变量定义为与拉普拉斯域函数矩阵维数相同的矩阵。如果矩阵的参数是非标量,ilaplace()
函数将按元素进行操作。例如,让我们找出矩阵的逆拉普拉斯变换。请参阅下面的代码。
syms a b c d w x y z
Matrix = [1/x 1; sin(y) i*z];
var = [w x; y z];
tVars = [a b; c d];
Output = ilaplace(Matrix,var,tVars)
输出:
Output =
[ dirac(a)/x, dirac(b)]
[ ilaplace(sin(y), y, c), dirac(1, d)*1i]
矩阵的输出也将出现在相同维度的矩阵中。假设我们想找到多项式的拉普拉斯逆变换,并且不想在 Matlab 中写出整个方程。在这种情况下,我们只能写出分子和分母的多项式系数。然后,使用 poly2sym()
函数,我们可以将多项式系数转换为符号多项式。poly2sym()
函数除了两个输入参数,第一个参数是多项式系数向量,第二个参数是我们要添加到多项式表达式中的符号。例如,让我们找出多项式表达式的拉普拉斯逆变换。请参阅下面的代码。
syms s t;
numerator=[1 1];
denominator=[1 3 5];
numS=poly2sym(numerator,s);
denS=poly2sym(denominator,s);
Fun=numS./denS
Output = ilaplace(Fun,s,t)
NumericOutput = vpa(Output)
输出:
Fun =
(s + 1)/(s^2 + 3*s + 5)
Output =
exp(-(3*t)/2)*(cos((11^(1/2)*t)/2) - (11^(1/2)*sin((11^(1/2)*t)/2))/11)
NumericOutput =
exp(-1.5*t)*(cos(1.6583123951776999245574663683353*t) - 0.30151134457776362264681206697006*sin(1.6583123951776999245574663683353*t))
Fun
是上面输出中的多项式表达式,变量 Output
是它的逆拉普拉斯变换。如你所见,变量 Output
包含未解决的幂和除法。为了得到简化的数字结果,我们可以使用函数 vpa()
将结果转换为数字形式。在此示例中,数值结果存储在变量 NumericOutput
中。
相关文章
如何在 Matplotlib Pyplot 中显示网格
发布时间:2024/02/04 浏览次数:142 分类:Python
-
本文演示了如何在 Python Matplotlib 中在一个图上画一个网格。使用 grid()函数来绘制网格,并解释了如何改变网格颜色和线条类型。
在 Matplotlib 中的图中添加文字
发布时间:2024/02/04 浏览次数:180 分类:Python
-
本教程展示了我们如何使用 plt.text()方法在 Matplotlib 中为图或轴添加文字。
如何在 Matplotlib 中的多个线条之间进行填充
发布时间:2024/02/04 浏览次数:208 分类:Python
-
`fill_between()` 每次只能填充两条线之间的区域,但是我们可以选择一对行来填充多个线条之间的区域。
如何在 Matplotlib 中画一条任意线
发布时间:2024/02/04 浏览次数:166 分类:Python
-
本教程讲解了我们如何在 Matplotlib 中使用 matplotlib.pyplot.plot()、matplotlib.pyplot.vlines()、matplotlib.pyplot.hlines()方法和 matplotlib.collection.LineCollection 绘制任意线条。
Pandas 在 Matplotlib 柱状图上绘制多列图
发布时间:2024/02/04 浏览次数:189 分类:Python
-
在本教程中,我们将探讨如何使用 `DataFrame` 对象的 `plot()` 方法在柱状图上绘制多列。
如何在 Matplotlib 中绘制数据列表的直方图
发布时间:2024/02/04 浏览次数:178 分类:Python
-
本教程介绍了如何使用 plt.hist()方法从数据列表中绘制直方图。我们可以使用 plt.hist()方法从数据列表中绘制直方图。
Matplotlib 中的叠加条形图
发布时间:2024/02/04 浏览次数:182 分类:Python
-
本教程展示了如何使用 plt.bar()方法将某些数据集的条形图堆叠在另一个数据集上。我们在 Matplotlib 中使用 matplotlib.pyplot.bar()方法生成条形图。
在 Python Matplotlib 中生成反向色彩图
发布时间:2024/02/04 浏览次数:136 分类:Python
-
本教程解释了如何反转 Python Matplotlib Plot 的 Colormap。
设置 Matplotlib 网格间隔
发布时间:2024/02/04 浏览次数:250 分类:Python
-
本教程将介绍我们如何在 Matplotlib 绘图中设置网格间距,并对主要网格和次要网格应用不同的样式。