Clear Filters
Clear Filters

Trying to do a Laplace transform on a discontinuous function

2 views (last 30 days)
I am trying to write code to solve g(t).
I rewrote the function as g(t) = 4 + 5*(t-2)*e^(t-2)*u(t-2).
syms t
oldVal = sympref("HeavisideAtOrigin",4);
eqn = 4 + 5*(t-2)*exp(t-2)*heaviside(t)
eqn = 
L = laplace(eqn)
L = 
Though this runs, it doesn't seem right to me.
What am I doing wrong?
  1 Comment
Paul on 5 Sep 2023
Edited: Paul on 5 Sep 2023
Recheck the code for eqn. It doesn't match how g(t) was rewritten.
Also, the sympref isn't really necessary. Try different values of HeavisideAtOrigin and see if you get different results for L.

Sign in to comment.

Answers (1)

Star Strider
Star Strider on 5 Sep 2023
I initially wanted to see if piecewise would work. It didn’t.
This is the result I get using heaviside to define the areas of interest, and then combine them into one expression —
syms s t
g_1(t) = 4*(heaviside(t)-heaviside(sym(t-2)))
g_1(t) = 
g_2(t) = heaviside(sym(t-2))*(4+5*(t-2)*exp(t-2))
g_2(t) = 
G(s) = laplace(g_1) + laplace(g_2)
G(s) = 
G(s) = simplify(G,500)
G(s) = 
fplot(g_1, [-1 5])
ylim([0 50])
fplot(g_2, [-1 5])
ylim([0 50])
fplot(g_1+g_2, [-1 5])
ylim([0 50])
The time-domain function appears to be reasonable, so I assume the Laplace transform is as well.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!