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()
함수에 두 번째 인수로 전달해야 합니다. 예를 들어, 변환 변수 t를 x로 바꾸자. 아래 코드를 참조하십시오.
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
변수에 저장됩니다.