I have the following differential expression:

f = 
  {h''[t] + 0.25 alpha''[t] + 0.1 h'[t] + 0.2 h[t] + 0.1 q alpha[t], 
   0.25 h''[t] + 0.5 alpha''[t] + 0.1 alpha'[t] + (k0 - 0.04 q) alpha[t] + 
     e2 (alpha[t])^3}

Where k0, e2 are simple constants, and q is a parameter. I would like to change my time variable t, with a new variable:

tau -> t omega /n

Where omega and n are to be considered as constants. In order to obtain a differential equation of the following form:

$\qquad f(\omega^2 x'',\, \omega\, x',\, x, n\, \tau,\, q)=0$

If I try replacing in the simple manner,

f /. t -> (n tau)/omega

I get in turn:

{0.1 q alpha[(n tau)/omega] + 0.2 h[(n tau)/omega] + 
   0.1 Derivative[1][h][(n tau)/omega] + 0.25 (alpha^′′)[(n tau)/omega] + 
   (h^′′)[(n tau)/omega], 
 (k0 - 0.04 q) alpha[(n tau)/omega] + e2 alpha[(n tau)/omega]^3 + 
    0.1 Derivative[1][alpha][(n tau)/omega] + 0.5 (alpha^′′)[(n tau)/omega] + 
    0.25 (h^′′)[(n tau)/omega]}

Yet in this way I'm afraid Mathematica can't tell omega and n are constants.

I found that it is possible to declare "constants" in Dt. Yet I would have to apply it before introducing the change of variables.


Following Kuba's comment I tried implementing the following instruction:

dChange[f, tau == t omega/n, t, tau, {h[t], alpha[t]}]

having defined dChange from this question.

My problem is solved, thanks to Kuba.

  • 5
    $\begingroup$ Try dChange[ f, tau == t omega/n, t, tau, { h[t], alpha[t] } ] from change of variables in differential expressions $\endgroup$
    – Kuba
    Jan 7 '16 at 15:10
  • $\begingroup$ Thank you, I'll try as you have kindly suggested me. $\endgroup$ Jan 7 '16 at 15:12
  • 1
    $\begingroup$ Feedback appreciated if you find anything is not ok. Good luck. $\endgroup$
    – Kuba
    Jan 7 '16 at 15:26
  • 2
    $\begingroup$ I gave you the code to use. You've put something different, with incorrect syntax. $\endgroup$
    – Kuba
    Jan 7 '16 at 15:38
  • 1
    $\begingroup$ @Kuba's code works for me on the f given at the beginning of your Q. I get the error on the code following your "I get in turn," but that code has been miscopied. (You may also find this this meta Q&A helpful for copying the input form of code.) $\endgroup$
    – Michael E2
    Jan 7 '16 at 15:46