Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Analytical method to solve a system of ODEs

  1. Aug 29, 2012 #1
    Hello All,

    I am new to this community but by reviwwing the questions and answers posted in this forum I was encouraged to share my question with you and I hope you can help me.

    I have a system of 4th order ordinary differential equations for several functions which I call them:

    [tex]y_1,y_2, ..., y_n[/tex] and all of them are single variable functions e.g. [tex]y_1 = f(x)[/tex]

    The system looks like:

    [tex]\left\{y_1', y_1'', y_1''', y_1^{(4)}, y_2', y_2'', y_2''', y_2^{(4)}, ... y_n', y_n'', y_n''', y_n^{(4)}\right\}^{T}=\left[A\right] \left\{y_1, y_1', y_1'', y_1''', y_2, y_2', y_2'', y_2''', ... y_n, y_n', y_n'', y_n'''\right\}^{T}[/tex]

    Where [tex]\left[A\right][/tex] is the coefficient matrix.

    In short form this equation can be written as:
    [tex]\left\{Y'\right\} = \left[A\right] \left\{Y\right\}[/tex]

    Now, my question is that if the eigenvalue method is accurate enough to solve this system of equation or I should use a different method to solve such system of ODEs.

    I am waiting for your valuable comments.
  2. jcsd
  3. Aug 30, 2012 #2


    User Avatar
    Science Advisor

    Hey BlackTulip and welcome to the forums.

    Have you checked the properties of A? Is it ill-conditioned?

    If it is ill-conditioned then it means that the product of the eigen-values for one are close to zero if I recall correctly (and you should verify all things for yourself).

    The other thing I guess to check is whether the set of eigenvectors forms a basis.

    Have you come across how to check the condition of a matrix and how to use that for getting solutions to a variety of linear systems problems?
  4. Aug 31, 2012 #3
    Thank you Chiro for your comments.

    I used cond() function in Matlab to check if A is ill-conditioned. The condition number of A is not close to 1. Normally it is around 30. But in some cases it is around 1000.

    I checked the product of the eigenvalues of A and in most cases it is not close to zero.

    To check if the eigenvectors form a basis I used rref() function and in all cases it gave me identity matrix which implies that the eigenvectors are all linearly independents.

    Taking all these into account do you think the method that I use to solve the system of ODE is an appropriate one?

    I am curious to know if any of the cases that you mentioned occur what would be the best method to solve the system of ODEs analytically.

  5. Aug 31, 2012 #4


    User Avatar
    Science Advisor

    The above sounds good.

    There is one thing that is always good for checking whether a solution (i.e. analytic) is good: you compare it against a stable numerical solution.

    If you are a bit unsure about whether an analytic solution is valid, it's always a good idea to run a numerical solution using something like Runge-Kutta or some other valid scheme and then see how the two compare.

    Any kind of thing like this is always useful and if you ever get in a situation where you are unsure and need some verification, this is always a good thing to think about.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook