Skip to main content
improved wording
Source Link
bbgodfrey
  • 62.1k
  • 18
  • 92
  • 160

The small oscillations in x gradually die away with increasing t. a is not includedplotted, because it is not needed in subsequent calculations. Next, compute and plot f, which appears in ode4ode4.

f = ((7.41193*10^6)^2 - ((3/2 + 1/2*((Sqrt[3/2]  Exp[-x[t] Sqrt[2/3]] 
  (1 - Exp[-x[t] Sqrt[2/3]]))/(3/4 (1 - Exp[-x[t] Sqrt[2/3]])^2))^2 + 
  1/2 ((Exp[-Sqrt[8/3] x[t]] (1 -  Exp[Sqrt[2/3] x[t]] 
  (1 - Exp[-Sqrt[2/3] x[t]]))/(3/4 (1 - Exp[-x[t] Sqrt[2/3]])^2))))^2 - 1/4)
  /(\[Tau][t])^2);

Plot[f /. sol123, {t, 0, 145}, AxesLabel -> {t, "x,\[Tau]"}, 
  LabelStyle -> {10, Bold, Black}]

For larger values of t, f is strictly negative and oscillates between -10^-1710^17 and -10^-3010^30. The analysis below focuses on t < 100. As seen in the plot just above, f is approximately constant for t < 20, and ode4 produces solutions oscillating at a frequency Sqrt[f /. sol123 /. t -> 0], i.e., 7.41193*10^6. It is for this reason that NDSolve takes seemingly forever to solve ode4. On the other hand, ode4 can be solved approximately using the WKB approximation, if desired, for t < 100, except near f = 0. Here There, an approximate symbolic solution exists:

The small oscillations in x gradually die away with increasing t. a is not included, because it is not needed in subsequent calculations. Next, compute and plot f, which appears in ode4.

f = ((7.41193*10^6)^2 - ((3/2 + 1/2*((Sqrt[3/2]  Exp[-x[t] Sqrt[2/3]] 
  (1 - Exp[-x[t] Sqrt[2/3]]))/(3/4 (1 - Exp[-x[t] Sqrt[2/3]])^2))^2 + 
  1/2 ((Exp[-Sqrt[8/3] x[t]] (1 -  Exp[Sqrt[2/3] x[t]] 
  (1 - Exp[-Sqrt[2/3] x[t]]))/(3/4 (1 - Exp[-x[t] Sqrt[2/3]])^2))))^2 - 1/4)
  /(\[Tau][t])^2);

Plot[f /. sol123, {t, 0, 145}, AxesLabel -> {t, "x,\[Tau]"}, 
  LabelStyle -> {10, Bold, Black}]

For larger values of t, f is strictly negative and oscillates between -10^-17 and -10^-30. The analysis below focuses on t < 100. As seen in the plot just above, f is approximately constant for t < 20, and ode4 produces solutions oscillating at a frequency Sqrt[f /. sol123 /. t -> 0], i.e., 7.41193*10^6. It is for this reason that NDSolve takes seemingly forever to solve ode4. On the other hand, ode4 can be solved approximately using the WKB approximation, if desired, for t < 100, except near f = 0. Here, an approximate symbolic solution exists:

The small oscillations in x gradually die away with increasing t. a is not plotted, because it is not needed in subsequent calculations. Next, compute and plot f, which appears in ode4.

f = ((7.41193*10^6)^2 - ((3/2 + 1/2*((Sqrt[3/2] Exp[-x[t] Sqrt[2/3]] 
  (1 - Exp[-x[t] Sqrt[2/3]]))/(3/4 (1 - Exp[-x[t] Sqrt[2/3]])^2))^2 + 
  1/2 ((Exp[-Sqrt[8/3] x[t]] (1 -  Exp[Sqrt[2/3] x[t]] 
  (1 - Exp[-Sqrt[2/3] x[t]]))/(3/4 (1 - Exp[-x[t] Sqrt[2/3]])^2))))^2 - 1/4)
  /(\[Tau][t])^2);

Plot[f /. sol123, {t, 0, 145}, AxesLabel -> {t, "x,\[Tau]"}, 
  LabelStyle -> {10, Bold, Black}]

For larger values of t, f is strictly negative and oscillates between -10^17 and -10^30. The analysis below focuses on t < 100. As seen in the plot just above, f is approximately constant for t < 20, and ode4 produces solutions oscillating at a frequency Sqrt[f /. sol123 /. t -> 0], i.e., 7.41193*10^6. It is for this reason that NDSolve takes seemingly forever to solve ode4. On the other hand, ode4 can be solved approximately using the WKB approximation, if desired, for t < 100, except near f = 0. There, an approximate symbolic solution exists:

Source Link
bbgodfrey
  • 62.1k
  • 18
  • 92
  • 160

Solving this system of ODEs does not seem feasible, either symbolically or numerically. However, it is feasible to provide approximate solutions for t < 100.

For convenience, simultaneously solve the first three ODEs numerically.

ode1 = x''[t] + 3  x'[t] Sqrt[(x'[t])^2/6 + (1 - Exp[-x[t]  
  Sqrt[2/3]])^2/4] + Sqrt[3/2] Exp[-x[t] Sqrt[2/3]]  (1 - Exp[-x[t]  
  Sqrt[2/3]]) == 0;
ode1IC = {x'[0] == -0.008226306418212731, x[0] == 5.630991866033891};

ode2 = a'[t]/a[t] == Sqrt[(x'[t])^2/6 + (1 - Exp[-x[t] Sqrt[2/3]])^2/4];
ode2IC = a[0] == 1;

ode3 = \[Tau]'[t] == 1/a[t];
ode3IC = \[Tau][149.4517772937791] == 0;

sol123 = NDSolve[{ode1, ode2, ode3, ode1IC, ode2IC, ode3IC}, 
  {x[t], \[Tau][t]}, {t, 0, 500}] // Flatten

Plot[Evaluate[{x[t], \[Tau][t]} /. sol123], {t, 0, 500}, PlotRange -> All, 
  AxesLabel -> {t, "x,\[Tau]"}, LabelStyle -> {10, Bold, Black}]

enter image description here

The small oscillations in x gradually die away with increasing t. a is not included, because it is not needed in subsequent calculations. Next, compute and plot f, which appears in ode4.

f = ((7.41193*10^6)^2 - ((3/2 + 1/2*((Sqrt[3/2]  Exp[-x[t] Sqrt[2/3]] 
  (1 - Exp[-x[t] Sqrt[2/3]]))/(3/4 (1 - Exp[-x[t] Sqrt[2/3]])^2))^2 + 
  1/2 ((Exp[-Sqrt[8/3] x[t]] (1 -  Exp[Sqrt[2/3] x[t]] 
  (1 - Exp[-Sqrt[2/3] x[t]]))/(3/4 (1 - Exp[-x[t] Sqrt[2/3]])^2))))^2 - 1/4)
  /(\[Tau][t])^2);

Plot[f /. sol123, {t, 0, 145}, AxesLabel -> {t, "x,\[Tau]"}, 
  LabelStyle -> {10, Bold, Black}]

enter image description here

For larger values of t, f is strictly negative and oscillates between -10^-17 and -10^-30. The analysis below focuses on t < 100. As seen in the plot just above, f is approximately constant for t < 20, and ode4 produces solutions oscillating at a frequency Sqrt[f /. sol123 /. t -> 0], i.e., 7.41193*10^6. It is for this reason that NDSolve takes seemingly forever to solve ode4. On the other hand, ode4 can be solved approximately using the WKB approximation, if desired, for t < 100, except near f = 0. Here, an approximate symbolic solution exists:

FindRoot[f /. sol123, {t, 36}][[1, 2]]
(* 36.7625 *)
Series[f /. sol123, {t, %, 1}] // Normal
(* -0.015625 - 7.44662*10^12 (-36.7625 + t) *)

The constant term is neglibile and can be ignored, allowing ode4 to be solved in terms of Airy functions.

as = DSolveValue[u''[t] + %[[2]] u[t] == 0, u[t], t] /. {C[1] -> 1, C[2] -> 0}
(* AiryAi[2.62237*10^-9 (-2.73757*10^14 + 7.44662*10^12 t)] *)

(The second solution, deleted here, grows exponentially for large t.)

Plot[as, {t, 36.7625 - .002, 36.7625 + .002}, AxesLabel -> {t, u}, 
  LabelStyle -> {10, Bold, Black}]

enter image description here

The WKB approximation, which I shall not take the time to apply here in detail, is described in https://en.wikipedia.org/wiki/WKB_approximation. From it, the amplitude of the oscillations varies as f^(-1/4) for t < 36.5. Evaluating f at t = 0 and t = 36.5 indicates that the amplitude of oscillations in u grows by about a factor of

((f /. sol123 /. t -> 36.5)/(f /. sol123 /. t -> 0))^(-1/4)
(* 2.28105 *)