# Analytical method to solve a system of ODEs

BlackTulip
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:

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

The system looks like:

$$\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}$$

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

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

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.

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?

BlackTulip

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.

Thanks

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.

Thanks

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.