lteqn =
Second Order Laplace solving doesn't work ('Unable to find explicit solution')
Afficher commentaires plus anciens
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)
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(s), x0, dx0})
F_s = laplace(f, t, s);
simplify(solve(lefteqn == F_s, X(s)))
I can't believe MATLAB cannot solve this easy equation. I think I'm missing something.
Thank you guys
Réponse acceptée
Plus de réponses (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)
1 commentaire
Matteo Millone
le 13 Août 2024
Catégories
En savoir plus sur Numeric Solvers dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

