Transformada de Laplace inversa usando MATLAB
Este tutorial discutirá cómo encontrar la transformada inversa de Laplace usando la función ilaplace()
en MATLAB.
Encuentre la transformada de Laplace inversa usando la función ilaplace()
en MATLAB
Usamos la transformada de Laplace inversa para convertir la función de dominio de Laplace en una función de dominio de tiempo. En Matlab, podemos usar la función ilaplace()
para convertir una función de dominio de Laplace en una función de dominio de tiempo. La función ilaplace()
exceptúa tres variables de entrada. La primera variable es obligatoria, que es la función del dominio de Laplace, la segunda variable es opcional, que es la variable independiente del dominio de Laplace. De forma predeterminada, Matlab utilizará la variable s como variable independiente, y la tercera variable es la variable de transformación del dominio del tiempo. De forma predeterminada, Matlab utilizará la variable t como variable de transformación. Por ejemplo, encontremos la transformada inversa de Laplace de una función usando la función ilaplace()
en Matlab. Vea el código a continuación.
syms s
fun = 1/s^2;
Output = ilaplace(fun)
Producción :
Output =
t
En el código anterior, como puede ver, solo proporcionamos la función a la función ilaplace()
. Pero si desea cambiar la variable de transformación, debe pasar esa variable como segundo argumento a la función ilaplace()
. Por ejemplo, reemplacemos la variable de transformación t por x. Vea el código a continuación.
syms s
fun = 1/s^2;
Output = ilaplace(fun,x)
Producción :
Output =
x
En el código anterior, como puede ver, la variable de transformación t se cambia ax. Ahora considere otro ejemplo en el que cambiaremos la variable independiente así como la variable de transformación. Vea el código a continuación.
syms a s
Fun = 1/(s-a);
Output = ilaplace(Fun)
Producción :
Output =
exp(a*t)
En el código anterior, solo proporcionamos la función a la función ilaplace()
, por lo que usará los valores predeterminados para la variable independiente y la variable de transformación. Ahora cambiemos ambas variables y, en su lugar, usaremos a
como variable independiente y x como variable de transformación. Vea el código a continuación.
syms a s
Fun = 1/(s-a);
Output = ilaplace(Fun,a,x)
Producción :
Output =
-exp(s*x)
En el código anterior, como puede ver, se han cambiado la salida y las variables en la salida. Entonces, si cambiamos la variable independiente, el resultado cambiará. También podemos encontrar la transformada de Laplace inversa de un array o un array usando la función ilaplace()
. Podemos definir la variable independiente y de transformación como un array de la misma dimensión que el array de función de dominio de Laplace. La función ilaplace()
actuará como elemento si los argumentos del array no son escalares. Por ejemplo, encontremos la transformada de Laplace inversa de un array. Vea el código a continuación.
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)
Producción :
Output =
[ dirac(a)/x, dirac(b)]
[ ilaplace(sin(y), y, c), dirac(1, d)*1i]
La salida del array también vendrá en un array de la misma dimensión. Supongamos que queremos encontrar la transformada de Laplace inversa de un polinomio y no queremos escribir la ecuación completa en Matlab. En ese caso, podemos escribir los coeficientes polinomiales del numerador y el denominador únicamente. Y luego, usando la función poly2sym()
, podemos convertir los coeficientes del polinomio en un polinomio simbólico. La función poly2sym()
exceptúa dos argumentos de entrada, el primer argumento es el vector de coeficiente polinomial y el segundo argumento es el símbolo que queremos agregar a la expresión polinomial. Por ejemplo, encontremos la transformada de Laplace inversa de una expresión polinomial. Vea el código a continuación.
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)
Producción :
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 es la expresión polinomial en la salida anterior, y la variable Output
es su transformada de Laplace inversa. Como puede ver, la variable Output
contiene potencias y división, que no se resuelven. Para obtener un resultado numérico simplificado, podemos usar la función vpa()
para convertir el resultado en una forma numérica. En este ejemplo, el resultado numérico se almacena en la variable NumericOutput
.