Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

ODE change of vars

  1. Apr 15, 2008 #1
    Hey,

    I'm reading the paper:

    http://arxiv.org/abs/hep-ph/9907218

    They have an ODE (eqn 7):

    [tex]-\frac{1}{r^2}\frac{d}{d\phi}e^{-4kr\phi}\frac{dy_n}{d\phi}+m^2e^{-4kr\phi}y_n=m^2_ne^{-2kr\phi}y_n[/tex]

    They then make a change of variables:
    [tex]z_n=\frac{m_n}{k}e^{kr\phi}[/tex]
    [tex]f_n=e^{-2kr\phi}y_n[/tex]

    Then the ODE becomes:

    [tex]z_n^2\frac{d^2f_n}{dz_n^2}+z_n\frac{df_n}{dz_n}+(z_n^2-[4+\frac{m^2}{k^2}])f_n=0[/tex]

    My question is regarding this change of variables:

    How do you 'know' how to change the variables so that the ODE comes out as this tiday Bessel function. Is this an art almost, or is there some kind of technique??

    Looking foward to gaining some insight here.

    Richard
     
  2. jcsd
  3. Apr 16, 2008 #2
    I use the following "cheating" technique in my research:
    Solve the equation in Mathematica. Look at the arguments of Bessel function etc that is gives and make the necessary substitutions :)
    This method works for your equation, Mathematica 6 gives the solution (f_n) in terms of BesselJ functions of the argument (z_n).
     
  4. Apr 16, 2008 #3
    Nice. I like it. I like it a lot. Thanks avalonme. I'll try it first thing tomorrow. Its been bugging me for about a week now.

    Rich
     
  5. Apr 16, 2008 #4
    say, did you try this avalonme? Also do you use DSolve? I plugged in the above formula and get exponential solutions, not the bessel function soltn I was expecting.
     
  6. Apr 16, 2008 #5
    That's what I did: you can directly copy this to Mathematica 6.

    Cell[CellGroupData[{Cell[BoxData[
    RowBox[{
    RowBox[{"DSolve", "[",
    RowBox[{
    RowBox[{
    RowBox[{
    RowBox[{
    RowBox[{"-",
    FractionBox["1",
    SuperscriptBox["r", "2"]]}],
    RowBox[{"D", "[",
    RowBox[{
    RowBox[{
    RowBox[{"Exp", "[",
    RowBox[{
    RowBox[{"-", "4"}], "k", " ", "r", " ", "\[Phi]"}], "]"}],

    RowBox[{
    RowBox[{"y", "'"}], "[", "\[Phi]", "]"}]}], ",",
    "\[Phi]"}], "]"}]}], "+",
    RowBox[{
    SuperscriptBox["m", "2"],
    RowBox[{"Exp", "[",
    RowBox[{
    RowBox[{"-", "4"}], "k", " ", "r", " ", "\[Phi]"}], "]"}],
    RowBox[{"y", "[", "\[Phi]", "]"}]}]}], "\[Equal]",
    RowBox[{
    SuperscriptBox["mn", "2"],
    RowBox[{"Exp", "[",
    RowBox[{
    RowBox[{"-", "2"}], " ", "k", " ", "r", " ", "\[Phi]"}],
    "]"}],
    RowBox[{"y", "[", "\[Phi]", "]"}]}]}], ",",
    RowBox[{"y", "[", "\[Phi]", "]"}], ",", "\[Phi]"}], "]"}], "[",
    RowBox[{"[", "1", "]"}], "]"}]], "Input",
    CellChangeTimes->{{3.4173143524375*^9, 3.417314453640625*^9}, {
    3.417314484921875*^9, 3.417314486453125*^9}}],

    Cell[BoxData[
    RowBox[{"{",
    RowBox[{
    RowBox[{"y", "[", "\[Phi]", "]"}], "\[Rule]",
    RowBox[{
    RowBox[{
    SuperscriptBox["\[ExponentialE]",
    RowBox[{"2", " ", "k", " ", "r", " ", "\[Phi]"}]], " ",
    RowBox[{"BesselJ", "[",
    RowBox[{
    RowBox[{"-",
    FractionBox[
    SqrtBox[
    RowBox[{
    RowBox[{"4", " ",
    SuperscriptBox["k", "2"]}], "+",
    SuperscriptBox["m", "2"]}]], "k"]}], ",",
    FractionBox[
    RowBox[{"mn", " ",
    SqrtBox[
    RowBox[{
    SuperscriptBox["\[ExponentialE]",
    RowBox[{"2", " ", "k", " ", "r", " ", "\[Phi]"}]], " ",
    SuperscriptBox["r", "2"]}]]}],
    RowBox[{"k", " ", "r"}]]}], "]"}], " ",
    RowBox[{"C", "[", "1", "]"}], " ",
    RowBox[{"Gamma", "[",
    RowBox[{"1", "-",
    FractionBox[
    SqrtBox[
    RowBox[{
    RowBox[{"4", " ",
    SuperscriptBox["k", "2"]}], "+",
    SuperscriptBox["m", "2"]}]], "k"]}], "]"}]}], "+",
    RowBox[{
    SuperscriptBox["\[ExponentialE]",
    RowBox[{"2", " ", "k", " ", "r", " ", "\[Phi]"}]], " ",
    RowBox[{"BesselJ", "[",
    RowBox[{
    FractionBox[
    SqrtBox[
    RowBox[{
    RowBox[{"4", " ",
    SuperscriptBox["k", "2"]}], "+",
    SuperscriptBox["m", "2"]}]], "k"], ",",
    FractionBox[
    RowBox[{"mn", " ",
    SqrtBox[
    RowBox[{
    SuperscriptBox["\[ExponentialE]",
    RowBox[{"2", " ", "k", " ", "r", " ", "\[Phi]"}]], " ",
    SuperscriptBox["r", "2"]}]]}],
    RowBox[{"k", " ", "r"}]]}], "]"}], " ",
    RowBox[{"C", "[", "2", "]"}], " ",
    RowBox[{"Gamma", "[",
    RowBox[{"1", "+",
    FractionBox[
    SqrtBox[
    RowBox[{
    RowBox[{"4", " ",
    SuperscriptBox["k", "2"]}], "+",
    SuperscriptBox["m", "2"]}]], "k"]}], "]"}]}]}]}],
    "}"}]], "Output",
    CellChangeTimes->{{3.417314442578125*^9, 3.417314453890625*^9},
    3.417314487515625*^9}]
    }, Open ]]
     
  7. Apr 16, 2008 #6
    Thanks. When I saw the result it put a huge smile on my face! This is great. One extra (and important) piece in a big puzzle I'm trying to put together.

    I compared my short code against yours and the only difference was that I took the derivative of the first term in the expression by hand before putting into mathematica. Hmmmm, I thought I could differentiate...

    Incidently I checked out your homepage. I'm in high energy at Baylor in Texas, but a guy I share an office with is into Plasma physics. Some nice papers you have out.

    Richard
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?