reducing # of parameters by rescaling

Dec 2009
I'm looking to get better at rescaling differential equations to reduce the number of parameters. I know there is no general methodology, but there are rules of thumb. It's much easier when the differential equation has a physical basis so you can work by scaling the parameters to be dimensionless but when it's just a straight up ODE without units it's much harder.

\(\displaystyle \dot{x} = axy - bz\)
\(\displaystyle \dot{y} = cx - dy\)
\(\displaystyle \dot{z} = ex + fz\)

a,b,c,d,e,f are the 6 parameters and the only constraint is that b*e > 0.

This system can be simplified to have only two parameters d,f. How might this be done?

Note: I got this system from James Meiss's (Differential Dynamical Systems 2007) who got it from Sprott (1994).
Sep 2008
Hi forcesofodin.

I had never tried to rescale (or nondimensionalize?) a system of equations like this before, I guess I had only seen this done on a single equation, but then again, I'm not a DE person. However, I looked at a couple examples on the web to reacquaint myself with what you're supposed to do (all the examples I could find were also just for a single ODE), and then I played around a bit with the system you have, and I think I can get it down to two parameters.

The original system is

\(\displaystyle \begin{align*} \frac{\mathrm{d}\mathbf{x}}{\mathrm{d}\mathbf{t}} &= a\mathbf{xy} - b\mathbf{z}\\ \frac{\mathrm{d}\mathbf{y}}{\mathrm{d}\mathbf{t}} &= c\mathbf{x} - d\mathbf{y}\\ \frac{\mathrm{d}\mathbf{z}}{\mathrm{d}\mathbf{t}} &= e\mathbf{x} + f\mathbf{z} \end{align*}\)

so we should define new variables with scaling factors. I'll use the corresponding Greek letters, and use scaling factors subscripted by s. So, we'll have the following substitutions:

\(\displaystyle \begin{align*} \mathbf{t} &= t_s\mathbf{\tau}, \quad & \mathbf{x} &= x_s\mathbf{\xi}\\ \mathbf{y} &= y_s\mathbf{\upsilon}, \quad & \mathbf{z} &= z_s\mathbf{\zeta} \end{align*}\)

which, after substituting into the original system, and dividing each equation by the corresponding coefficient of the derivative term, results in the following scaled system:

\(\displaystyle \begin{align*} \frac{\mathrm{d}\mathbf{\xi}}{\mathrm{d}\mathbf{\tau}} &= (at_sy_s)\mathbf{\xi\upsilon} &-& ((bt_sz_s)/x_s)\mathbf{\zeta}\\ \frac{\mathrm{d}\mathbf{\upsilon}}{\mathrm{d}\mathbf{\tau}} &= ((ct_sx_s)/y_s)\mathbf{\xi} &-& (dt_s)\mathbf{\upsilon}\\ \frac{\mathrm{d}\mathbf{\zeta}}{\mathrm{d}\mathbf{\tau}} &= ((et_sx_s)/z_s)\mathbf{\xi} &+& (ft_s)\mathbf{\zeta} \end{align*}\)

Now, the trick is to try and set certain of the coefficients in the new system to 1 and then derive the consequences of that. The way I approached the problem was to first look for the least complicated coefficient, set that to 1, then look for the next least complicated coefficient, set that to 1, and so on, until I run up against the limit of free parameters to play with (or, put another way, until "stuff doesn't work any more"). Of course, after each step, I'll want to solve for the consequences of that step, thereby building up the resulting expressions for the scaling factors.

So, first let me choose to set

\(\displaystyle ft_s = 1 \quad\Rightarrow\quad t_s = \frac{1}{f}\).

The coefficient of \(\displaystyle \mathbf{\xi\upsilon}\) in the top equation contains \(\displaystyle t_s\) and also is simple compared to the other ones, since it only contains one other scaling factor, \(\displaystyle y_s\). Hence, we substitue for \(\displaystyle t_s\) and solve for \(\displaystyle y_s\), giving

\(\displaystyle at_sy_s = 1 \quad\Rightarrow\quad y_s = \frac{f}{a}\).

Now notice that the coefficient of \(\displaystyle \mathbf{\xi}\) in the second equation contains, among the scaling factors, only \(\displaystyle t_s, x_s\) and \(\displaystyle y_s\), so we can set this to 1 and get an expression for \(\displaystyle x_s\). We get

\(\displaystyle \frac{ct_sx_s}{y_s} = 1 \quad\Rightarrow\quad x_s = \frac{f^2}{ac}\).

(Remember that I'm always substituting the previous expressions into the next one.) Finally, the last scaling factor, \(\displaystyle z_s\) occurs in two coefficients, but of course we can only use one of these to set to 1 before running out of available parameters (or running into my wall of "where stuff stops working"), and since both expressions are equally attractive, I'll just choose one:

\(\displaystyle \frac{et_sx_s}{z_s} = 1 \quad\Rightarrow\quad z_s = \frac{ef}{ac}\).

Now, if I take all the resulting expressions for the scaling factors and substitute them back into the scaled set of equations, I'll have all the coefficients go to 1 which I have so set, and I'll end up with some coefficients which are expressions in terms of the original parameters a, b, c, d, e, and f. Doing this, I end up with the following system:

\(\displaystyle \begin{align*} \frac{\mathrm{d}\mathbf{\xi}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi\upsilon} &-& \frac{be}{fc}\mathbf{\zeta}\\ \frac{\mathrm{d}\mathbf{\upsilon}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi} &-& \frac{d}{f}\mathbf{\upsilon}\\ \frac{\mathrm{d}\mathbf{\zeta}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi} &+& \mathbf{\zeta} \end{align*}\)

If now I define the parameters

\(\displaystyle \alpha = \frac{be}{fc}, \qquad \beta = \frac{d}{f},\)

then the system becomes

\(\displaystyle \begin{align*} \frac{\mathrm{d}\mathbf{\xi}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi\upsilon} &-& \alpha\mathbf{\zeta}\\ \frac{\mathrm{d}\mathbf{\upsilon}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi} &-& \beta\mathbf{\upsilon}\\ \frac{\mathrm{d}\mathbf{\zeta}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi} &+& \mathbf{\zeta} \end{align*}\)

which is a system with only two parameters, as you sought.

I hope I didn't make any mistakes in my substitutions --- it wouldn't be a bad idea to go back and make sure of that. I hope this helps out in some way at least, and please let me know if you figure out some better method, I'd be interested to learn more about rescaling and nondimensionalization.

Best of luck!
Dec 2009
This is excellent work right down to the writing style and presentation! I checked your solution by substituting them into the coefficients that should equal 1, and indeed they do.

I kept hitting a brick wall where ' "stuff doesn't work anymore" ' as you said when I was trying to make it so that the spots where d and f were in the original equation became the spots not set to 1 in the new equation (coefficient of \(\displaystyle \eta\) in equation 2 and 3 respectively). The way you worked it out is less restrictive, and right off the bat you eliminate one of the unknowns (\(\displaystyle t_s = \frac{1}{f}\)). Then \(\displaystyle a t_s y_s\) is solvable for \(\displaystyle y_s\) and then you can solve for \(\displaystyle x_s\) and \(\displaystyle z_s\) using the coefficient of \(\displaystyle \xi\) in the second and third equations respectively.

However doing it the way I wanted to do it should work if I could only be more clever about it. I keep getting inconsistencies (where my 'solution' doesn't work) which must be from me accidentally reusing equations i've already used when substituting in the terms I've "solved for". In getting all but the d and f spot to be equal to 1, you have no equation where you can immediately solve for one of the variables, so you must solve in pairs, which is hard.

I also keep getting that \(\displaystyle t_{s}^2\) is a multiple of b*e, or \(\displaystyle (be)^3\). The appearance of these terms coupled with how the b*e > 0 condition is necessary for those terms to be real valued actually gives me some (logically unjustified) hope despite the inconsistencies I keep getting when trying to solve for the other variables. It makes sense that if each of the equations has the \(\displaystyle t_s\) term multiplied by at least one other term \(\displaystyle x_s\),\(\displaystyle y_s\), and/or \(\displaystyle z_s\) that there would be a variable whose solution involves square roots.

The only reason I want it in this specific way is that it also tells me which value of d and f (not the original d and f but the ones in the rescaled ODE) make the ODE a chaotic system (d = 1, f = 0.3). I'm supposed to use the system I have chosen (there were several others) through the rest of the book, applying the techniques I learn on the way to study "my system". It reminds me of when I took Java programming for 2 semesters. I had this game (think zork interface with final fantasy gameplay) I was coding throughout the course and every new thing we learned was exciting because I saw how I could make my game better using the new material. I personalized the results and that made them much easier to remember and apply.

Of course I can always find the appropriate parameter values for chaos myself. Presumably they must be values which give a Lyaponuv exponent \(\displaystyle \lambda \, > \, 0\) where \(\displaystyle |x_{1}(t) - x_{2}(t)|\) ~ \(\displaystyle e^{\lambda t} |x_{1}(0) - x_{2}(0)|\) so that different solutions diverge exponentially in time. But I'll learn about that much later in the book.
Sep 2008
Hello forcesofodin!

I am glad you found my post helpful. In return, I have to say it is very refreshing to interact over a problem with someone who exhibits genuine interest in gaining knowledge and understanding the solution! (Often, I have frittled away more hours than I care to admit answering the questions of those who are merely seeking to pass a homework assignment.)

I think I can help you out again, but since it is apparent that you are assimilating this nondimensionalization problem into the bigger (and better) problem of understanding a certain dynamial system, I will try to be a bit more succinct in this post. (Could be hope in vain, my obsession with completeness usually prevails!)

It did bother me a bit that my solution made no mention of the condition

\(\displaystyle be \ > \ 0\)

but at the time I thought this was maybe just an artifact of some analysis external to the problem of nondimensionalizing the system; your comments make it clear that of the possibly many ways to whittle down the number of parameters to two, the good one(s) will incorporate this condition into the process. Hence I was irked into trying my hand at it again.

Here are the scaled equations again, for convenience:

\(\displaystyle \begin{align*} \frac{\mathrm{d}\mathbf{\xi}}{\mathrm{d}\mathbf{\tau}} &= (at_sy_s)\mathbf{\xi\upsilon} &-& ((bt_sz_s)/x_s)\mathbf{\zeta}\\ \frac{\mathrm{d}\mathbf{\upsilon}}{\mathrm{d}\mathbf{\tau}} &= ((ct_sx_s)/y_s)\mathbf{\xi} &-& (dt_s)\mathbf{\upsilon}\\ \frac{\mathrm{d}\mathbf{\zeta}}{\mathrm{d}\mathbf{\tau}} &= ((et_sx_s)/z_s)\mathbf{\xi} &+& (ft_s)\mathbf{\zeta} \end{align*}\)

This time I started by looking at the terms containing \(\displaystyle b\) and \(\displaystyle e\). You'll notice that if we set them both equal to 1, so that they are both equal to one another---I assume this is what you did at some point---we have the following relationship:

\(\displaystyle \displaystyle \frac{bt_sz_s}{x_s} = \frac{et_sx_s}{z_s} \quad \Rightarrow \quad x_s = \sqrt{\frac{b}{e}}z_s\)

Note that I am really only analyzing the ratio of the factors \(\displaystyle x_s\) and \(\displaystyle z_s\) in the above. I will also want to apply the full assumption that the two coefficients were equal not only to each other but also to 1 by expressing \(\displaystyle t_s\) in terms of either \(\displaystyle x_s\) or \(\displaystyle z_s\). The choice is clear since \(\displaystyle x_s\) occurs in one other coefficient. I now have additionally:

\(\displaystyle \displaystyle \frac{et_sx_s}{z_s} = 1 \quad \Rightarrow \quad t_s = \frac{1}{\sqrt{be}}\)

Now I set the coefficient of \(\displaystyle \mathbf{\xi\upsilon}\) to 1 to conclude that

\(\displaystyle at_sy_s = 1 \quad \Rightarrow \quad y_s = \frac{\sqrt{be}}{a}\)

and thereafter set the coefficient of \(\displaystyle \mathbf{\xi}\) in the middle equation to 1 to derive the consequence

\(\displaystyle \frac{ct_sx_s}{y_s} = 1 \quad \Rightarrow \quad x_s = \frac{be}{ac}\)

At this point, I can use the relation between \(\displaystyle x_s\) and \(\displaystyle z_s\) above to conclude that

\(\displaystyle z_s = \sqrt{\frac{e}{b}}x_s \quad \Rightarrow \quad z_s = \frac{e\sqrt{be}}{ac}\)

The final steps are the same as in my first post; I substitute back in all the relations I have derived, smile at all the coefficients turned to 1's, and proceed to Baptize the heathen expressions for the coefficients in the original \(\displaystyle d\) and \(\displaystyle f\) spots. The steps follow:

\(\displaystyle \begin{align*} \frac{\mathrm{d}\mathbf{\xi}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi\upsilon} &-& \mathbf{\zeta}\\ \frac{\mathrm{d}\mathbf{\upsilon}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi} &-& \frac{d}{\sqrt{be}}\mathbf{\upsilon}\\ \frac{\mathrm{d}\mathbf{\zeta}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi} &+& \frac{f}{\sqrt{be}}\mathbf{\zeta} \end{align*}\)


\(\displaystyle \alpha = \frac{d}{\sqrt{be}}, \qquad \beta = \frac{f}{\sqrt{be}}\)

I finally end up with the system

\(\displaystyle \begin{align*} \frac{\mathrm{d}\mathbf{\xi}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi\upsilon} &-& \mathbf{\zeta}\\ \frac{\mathrm{d}\mathbf{\upsilon}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi} &-& \alpha\mathbf{\upsilon}\\ \frac{\mathrm{d}\mathbf{\zeta}}{\mathrm{d}\mathbf{\tau}} &= \mathbf{\xi} &+& \beta\mathbf{\zeta} \end{align*}\)

The advantage here is apparent: we have the condition

\(\displaystyle be \ > \ 0\)

built in to the system, and now you are free to vary the parameters in the correct place for system K from the Sprott paper.

I hope this is first of all correct, and secondly, helps you out with your studies.

Again, best of luck in your class.
Dec 2009
After many attempts of starting with the first coefficient then the second, I realized what you did. Must focus on b and e. Which is helpful because that tells us to use those two coefficients first. I did something really similar to you, but instead of setting them equal I multiplied
\(\displaystyle (bt_{s}\,\frac{z_{s}}{x_{s}})(et_{s}\,\frac{x_{s}}{z_{s}})\) \(\displaystyle =\) \(\displaystyle 1*1\) \(\displaystyle =\) \(\displaystyle 1\) \(\displaystyle \Rightarrow\) \(\displaystyle t_{s}^{2} = \frac{1}{be}\) \(\displaystyle \Rightarrow t_{s} =\) \(\displaystyle \frac{1}{\sqrt{be}}\)

I then solved for \(\displaystyle y_{s}\) using the first coefficient, then \(\displaystyle x_{s}\) using the third ( \(\displaystyle ct_{s}\frac{x_{s}}{y_{s}} \, = \, 1\) ). Finally I solved for z_{s} using the second one. It's really hard not to use the same equation twice, and to be honest I was surprised this worked at first. Took me a while to realize that by multiplying the two equations I really just created a new fourth equation, and the choice of which of the multiplied coefficients it would replace was optional.

This problem was a huge time sink for me, but then again I learned a lot and I owe you much thanks. It's great to have such a quality new member on this site.

I feel that I could repeat this reduction process on any ODE system I encounter in the future (given quite a few trials and ERRORS haha). It makes it much simpler to look at how the dynamics change as the parameter is varied (an important thing to examine in any model).

P.S. - This isn't for a class, I'm just trying to work through this excellent differential equation text by James D. Meiss (Differential Dynamical Systems) as something to keep me mathematically occupied over the summer. I'd really like to learn some other things (topology, algebraic geometry, differential geometry, measure theoretic probability, quantum mechanics) but I figure it's best to learn one thing at time well than it is to learn many things not-so-well...even if it takes forever :)
Sep 2008
Hi there.

Glad to hear you got the same solution!

I admire anyone who has the enthusiasm and self-motivation to push through math texts on their own. I'm myself trying to go back and do some refreshing this summer. If you are interested in dynamical systems then I'd suggest going through a topology and a measure theory book as well, although maybe this is covered in Meiss's text? If you tell me your background, I might be able to recommend some suitable texts.

Algebraic geometry is a beautiful but hard field, on the other hand. Especially in its modern form, I find it difficult to approach without solid foundations. You might be better prepared than I was, though.

A while back I went through a book called A First Course in Chaotic Dynamical Systems by Robert L. Devaney. It might be too elementary for your tastes, but since you mentioned having experience in programming, it could provide a nice mental break from Meiss, since it has pretty pictures, easy but informative exercises, and best of all, programming projects.

Anyhow, I'm glad to have joined this forum, though I'm starting to spend too much time here lately. Hope to discuss more topics with you in the future.