Finding roots of differential equations

9 visualizaciones (últimos 30 días)
stevesy55
stevesy55 el 19 de Mzo. de 2017
Comentada: Star Strider el 7 de Mzo. de 2024
How can I find the roots/zeros of a differential equation such as
  5 comentarios
John D'Errico
John D'Errico el 20 de Mzo. de 2017
Editada: John D'Errico el 20 de Mzo. de 2017
Your question is fairly ambiguous, and can be interpreted in several ways.
Most logical to me would be to assume that since a differential equation implicitly defines a function y(t), then you are asking to solve for the roots of y(t), thus the set of values t such that y(t)=0.
So you need to explain what you are asking. As well, do the parameters B and C have known values? Are there known initial conditions on the differential equation? Is u(t) known?
stevesy55
stevesy55 el 20 de Mzo. de 2017
Sorry for not explaining correctly, I'm new to differential equations, laplace and MATLAB.
The constant B = 7 and C = 0, there are no known initial conditions and u(t) is unknown. I need to find the roots, do a partial fraction expansion, an inverse Laplace transform and plot the function f(t). I then need to plot the poles and zeros of the differential equation.
I know some of the commands required are "roots", "residue", "ilaplace" and "plot".

Iniciar sesión para comentar.

Respuesta aceptada

Star Strider
Star Strider el 20 de Mzo. de 2017
If I understand your Question correctly, you have to transform your equation from the time domain into Laplace space (assume all initial conditions are 0), then solve for the roots in s-space. Any book on signal processing or differential equations will tell you how to do the transformation, and will have tables of Laplace transforms.
The transfer function, H(s), will then be given by:
H(s) = U(s)/Y(s)
The ‘roots’ of that function will be the zeros of the numerator. In this second-order system, this becomes a straightforward application of the quadratic formula. If you do not have numerical values for ‘B’ and ‘C’, you will necessarily get only a symbolic result.
  83 comentarios
Vignesh Ramakrishnan
Vignesh Ramakrishnan el 7 de Mzo. de 2024
Editada: Vignesh Ramakrishnan el 7 de Mzo. de 2024
@Star Strider, I am not talking of using the Laplace domain(which is restricted to linear and time-invariant systems) here. Say I have the above non-linear differential system(which I am using to model a pendulum with some weird damping), for which, say a,b are chosen and fixed for obtaining the solution's equilibria by checking the zero crossing when I run this through ode45, and place all this in a loop where a,b are varied, that should be a rough equivalent of a 'root locus'. Something like
for a=0:0.1:10
for b=0:0.1:10
y_roots=roots(ddy(t,a,b));
end
end
Is there an easier way to pull this off?
Star Strider
Star Strider el 7 de Mzo. de 2024
Probably the easiest way to detect zero crossings is to use an Events location and function. That should automatically record the times.
I leave the rest of that to you.

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by