Problema nella risoluzione delle ODE con DSolve

Sep 02 2020

Sto cercando di risolvere un'ODE non lineare del secondo ordine con il codice allegato. Dopo aver esaminato la documentazione per DSolve, non so cosa sto facendo di sbagliato. Quando eseguo Shift+ Enteral livello superiore, Mathemeatica restituisce semplicemente il codice che ho inserito.

DSolve[
  -x Derivative[1][y][x] - x Derivative[1][y][x]^3 + 
    y[x]* (1 + Derivative[1][y][x]^2) + 
    y[x]^2 y''[x] + (x^2 - R Sqrt[x^2 + y[x]^2]) y''[x] == 0, 
  y[x], x]

Risposte

2 MichaelE2 Sep 02 2020 at 06:30

Non so se questo sarà d'aiuto, ma se cambi le variabili in coordinate polari, otteniamo un ODE in DSolvegrado di gestire:

subs = Simplify@NestList[  (* change of variables *)
     D[First@#, x] -> Dt[Last@#]/Dt[r[t] Cos[t]] &,
     y[x] -> r[t] Sin[t], 2]~Join~
   {x -> r[t] Cos[t]};

(* new ode *)
ode = -x*Derivative[1][y][x] - x*Derivative[1][y][x]^3 + 
       y[x]*(1 + Derivative[1][y][x]^2) + 
       y[x]^2*y''[x] + (x^2 - R*Sqrt[x^2 + y[x]^2])*y''[x] /. subs // 
     Together // Numerator // Simplify[#, r[t] > 0] &;
odes = FactorList[ode][[2 ;;, 1]] == 0 // Thread
(*  the process yielded a spurious factor r[t]
  {r[t] == 0, 
   r[t] (r[t] - R) r''[t] + (2 R - r[t]) r'[t]^2 + R r[t]^2 == 0}
*)
dsol = DSolve[Last@odes, r, t]
(*
{{r -> Function[{t}, 
    InverseFunction[-I (ArcTanh[(R - #1)/Sqrt[
           R^2 - 2 R #1 - C[1] #1^2]] - 
          ArcTan[(-R - C[1] #1)/(
           Sqrt[C[1]] Sqrt[R^2 - 2 R #1 - C[1] #1^2])]/Sqrt[C[1]]) &
     ][t + C[2]]]},
 {r -> Function[{t}, 
    InverseFunction[
      I (ArcTanh[(R - #1)/Sqrt[R^2 - 2 R #1 - C[1] #1^2]] - 
          ArcTan[(-R - C[1] #1)/(
           Sqrt[C[1]] Sqrt[R^2 - 2 R #1 - C[1] #1^2])]/Sqrt[C[1]]) &
     ][t + C[2]]]}}
*)

(Per connettersi con i miei commenti sulla simmetria, il cambio di variabili mostra che il sistema è invariante sotto t -> t + t0, che è una rotazione in coordinate polari.)