DSolve ile ODE'yi çözmede problem

Sep 02 2020

Ekli kodla ikinci dereceden doğrusal olmayan bir ODE'yi çözmeye çalışıyorum. DSolve için belgelere baktıktan sonra neyi yanlış yaptığımı bilmiyorum. Üst seviyede Shift+ yaptığımda Enter, Mathemeatica sadece girdiğim kodu döndürüyor.

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]

Yanıtlar

2 MichaelE2 Sep 02 2020 at 06:30

Bunun yardımcı olup olmayacağını bilmiyorum, ancak değişkenleri kutupsal koordinatlara değiştirirseniz, bir ODE'nin DSolveişleyebileceği bir şey elde ederiz :

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]]]}}
*)

(Simetri yorumlarımla bağlantı kurmak için, değişkenlerin değişimi sistemin altında değişmez olduğunu gösterir t -> t + t0, bu kutupsal koordinatlarda bir dönüşdür.)