Explicit solution can not be found using dsolve of second order differential equation

I have a second order differential equation of the form written below
I want to solve this differential equation using analytical method. For that I have written a code (see below)
%%%%%%%%%%%%%%%%
syms t y(t)
gamma=0.01;F=1;omega0=1;kappa=0.15;omega=0.15;
equation=diff(y,2)+2*gamma*diff(y)+omega0^2*(1+4*kappa*sin(2*omega*t))*y-2*F*sin(omega*t)==0;
Dy=diff(y);
conds = [y(0)==1,Dy(0)==0];
y = dsolve(equation,conds)
%%%%%%%%%%%%%%%%%
But whenever I run the code it shows explicit solution can not be found. I am new to MATLAB. Please help regarding this.

3 Comments

Why do you think I set kappa = 0 when trying the symbolic approach ?
The reason is that the equation changes from one with constant coefficients to an equation with coefficients that depend on t.
And in general, an analytical solution for such equations cannot be found.
I think it might be worth to follow Sam Chak's hint about Floquet's theory in your previous post:
Hi @Torsten But still there are some cases I mean range of omegas like 0.47-0.50, 0.86-1.1 where I get the divergent solution
This question goes deeply into theoretical results about the boundedness of solutions of differential equations of the form
xdot = A(t)*x + b(t)
I'm not able to give you an answer whether the behaviour of ode45 is correct or due to numerical instabilities.
But since the behaviour of my solution curve under
looks very regular, my guess is that x can be unbounded for certain parameter constellations.
But the rule to decide if the solution will be bounded or unbounded from the parameter values is not possible for me.
Maybe Sam Chak can elaborate a little how he came up with the value of kappa <= 0.1469.

Sign in to comment.

 Accepted Answer

Do you have a reason to believe there is an analytical solution to this?
It is simply solved numerically, as follows:
X0 = [1, 0];
tspan = [0 100];
[t, X] = ode45(@fn, tspan, X0);
plot(t,X(:,1)),grid
xlabel('t'), ylabel('x')
function dXdt = fn(t,X)
gamma=0.01;F=1;omega0=1;kappa=0.15;omega=0.15;
x = X(1); v = X(2);
dXdt = [v;
2*F*sin(omega*t)-omega0^2*(1+4*kappa*sin(2*omega*t))*x-2*gamma*v];
end

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Asked:

on 12 Sep 2022

Edited:

on 12 Sep 2022

Community Treasure Hunt

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

Start Hunting!