# I need help plotting this inverse Laplace Transform

6 views (last 30 days)
Caleb Truscott on 12 Jan 2022
Edited: Caleb Truscott on 13 Jan 2022
I am trying to plot an inverse Laplace transform of a function but I keep getting the error "Error using plot. Data must be numeric, datetime, duration or an array convertible to double."
Below is my code:
m=1;
c=6;
k=6;
G = 100.*65.*9.81;
syms s pi t
f1=(1/((s^2+4*pi^2)*(m*s^2+c*s+k))); %first term
pf1=partfrac(f1,s);
f2=(1/(3*(s^2+(6*pi)^2)*(m*s^2+c*s+k))); %second term
pf2=partfrac(f2,s);
f3=(1/(5*(s^2+(10*pi)^2)*(m*s^2+c*s+k))); %third term
pf3=partfrac(f3,s);
f4=(1/(7*(s^2+(14*pi)^2)*(m*s^2+c*s+k))); %fourth term
pf4=partfrac(f4,s);
LF1=ilaplace(f1) %inverse laplace transform of first term
LF1 = LF2=ilaplace(f2) %inverse laplace transform of second term
LF2 = LF3=ilaplace(f3) %inverse laplace transform of third term
LF3 = LF4=ilaplace(f4) %inverse laplace transform of fourth term
LF4 = t = [0;0.1;10];
Xss = LF1 - LF2 + LF3 - LF4;
plot(t,Xss)
Error using plot
Data must be numeric, datetime, duration or an array convertible to double.
Paul on 12 Jan 2022
Don't use a sym variable name pi. Better is to use a sym constant, i.e., replace all uses of pi with
Pi = sym(pi);
comment out this line:
% t = 0:.1:10

Paul on 12 Jan 2022
Replace all instances of pi with Pi, defined as
Pi = sym(pi);
which is a good habit to get into regardless.
Then you can stay in the sym world if you want and use fplot()
fplot(Xss,[0 10])
Caleb Truscott on 13 Jan 2022
Hi thank you it works:
m=1;
c=6;
k=6;
G = 100.*65.*9.81;
Pi = sym(pi);
syms s pi t
f1=(1/((s^2+4*Pi^2)*(m*s^2+c*s+k))); %first term
pf1=partfrac(f1,s);
f2=(1/(3*(s^2+(6*Pi)^2)*(m*s^2+c*s+k))); %second term
pf2=partfrac(f2,s);
f3=(1/(5*(s^2+(10*Pi)^2)*(m*s^2+c*s+k))); %third term
pf3=partfrac(f3,s);
f4=(1/(7*(s^2+(14*Pi)^2)*(m*s^2+c*s+k))); %fourth term
pf4=partfrac(f4,s);
x1=ilaplace(f1) %inverse laplace transform of first term
x1 = x2=ilaplace(f2) %inverse laplace transform of second term
x2 = x3=ilaplace(f3) %inverse laplace transform of third term
x3 = x4=ilaplace(f4) %inverse laplace transform of fourth term
x4 = %t = 0:0.1:10
Xss = x1 - x2 + x3 - x4;
fplot(Xss,[0 10])
xlabel('Time (s)')
ylabel('x (m)')
legend('Xss(t)')
title('Lateral Displacement') 