Finding roots of differential equations

8 ビュー (過去 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 Center および File ExchangeCalculus についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by