Finding roots of differential equations

조회 수: 9 (최근 30일)
stevesy55
stevesy55 2017년 3월 19일
댓글: Star Strider 2024년 3월 7일
How can I find the roots/zeros of a differential equation such as
  댓글 수: 5
John D'Errico
John D'Errico 2017년 3월 20일
편집: John D'Errico 2017년 3월 20일
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 2017년 3월 20일
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".

댓글을 달려면 로그인하십시오.

채택된 답변

Star Strider
Star Strider 2017년 3월 20일
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
Vignesh Ramakrishnan
Vignesh Ramakrishnan 2024년 3월 7일
편집: Vignesh Ramakrishnan 2024년 3월 7일
@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 2024년 3월 7일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Calculus에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by