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!