Second Order Laplace solving doesn't work ('Unable to find explicit solution')

I'm trying to solve an ODE using Laplace method, but I'm stuck on solving the equation
Here's my code:
syms t x(t) s X(s);
% PARAMETERS (tried to do symbolically but it was more diffcult)
m = 1;
k = 0.5;
xi = 1.2;
c = xi*2*sqrt(k*m)
c = 1.6971
f0 = 1;
w = 0.1;
dx = diff(x, t, 1);
ddx = diff(x, t, 2);
% INITIAL CONDITIONS
x0 = 0;
dx0 = 0;
newton = m*ddx+ c*dx +k*x;
f = f0*cos(w*t);
lteqn = laplace(newton, t, s)
lteqn = 
lefteqn = subs(lteqn,{laplace(x(t), t, s), x(0),dx(0)},{X(s), x0, dx0})
lefteqn = 
F_s = laplace(f, t, s);
simplify(solve(lefteqn == F_s, X(s)))
Warning: Unable to find explicit solution. For options, see help.
ans = Empty sym: 0-by-1
I can't believe MATLAB cannot solve this easy equation. I think I'm missing something.
Thank you guys

 Akzeptierte Antwort

Aquatris
Aquatris am 13 Aug. 2024
Bearbeitet: Aquatris am 13 Aug. 2024
Not sure the underlying reason behind it but you are defining the X as a function of s and solve function seems to be having trouble solving it. Define X as a standalone and it has no trouble
syms t x(t) s X;
% PARAMETERS (tried to do symbolically but it was more diffcult)
m = 1;
k = 0.5;
xi = 1.2;
c = xi*2*sqrt(k*m)
c = 1.6971
f0 = 1;
w = 0.1;
dx = diff(x, t, 1);
ddx = diff(x, t, 2);
% INITIAL CONDITIONS
x0 = 0;
dx0 = 0;
newton = m*ddx+ c*dx +k*x;
f = f0*cos(w*t);
lteqn = laplace(newton, t, s);
lefteqn = subs(lteqn,{laplace(x(t), t, s), x(0),dx(0)},{X, x0, dx0});
F_s = laplace(f, t, s);
simplify(solve(lefteqn == F_s, X))
ans = 

Weitere Antworten (1)

Do you want to analytically solve the ODE like this?
syms s t X
%% original parameters
m = 1;
k = 0.5;
xi = 1.2;
c = xi*2*sqrt(k*m);
f0 = 1;
w = 0.1;
%% Test parameters -> should return x(t) = 1/2·(sin(t) - t·e^(-t))
% m = 1;
% k = 1;
% xi = 1;
% c = xi*2*sqrt(k*m);
% f0 = 1;
% w = 1;
%% Main
eqn = m*s^2*X + c*s*X + k*X == laplace(f0*cos(w*t), t, s);
X = solve(eqn, X);
x = ilaplace(X, s, t)
x = 

1 Kommentar

Thanks a lot, anyway i need the solution function of s, i have to draw Bode diagram

Melden Sie sich an, um zu kommentieren.

Produkte

Version

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by