Solution to equations involving Plasma dispersion function












1














I am trying to solve an equation involving a complex argument for the plasma dispersion function as:
$z = x + iota y$,



$ x = omega / sqrt2 k v_{Ti} $



$ y = nu_i /sqrt{2} k v_{Ti} $



$S[z] = -iota sqrt{pi} Exp[-z^2] Erfc[-iota z]$;



I have reduced the equation to a system of equations corresponding to real part and imaginary part as:



$(x - beta)(c_1^2 + c_2^2) + nu_e(d_2c_2 - d_1c_1)=0$,



$gamma(c_1^2 + c_2^2) + nu_e(d_2c_1 - d_1c_2)=0$



I am not able to find how should i solve this system for omega and gamma to obtain plots for $omega$ v/s k and $gamma$ v/s k? $c_1, c_2, d_1, d_2$ are all functions of S(z). $beta, nu_e, nu_i, v_{Ti}$ are the parameters whose values are known.










share|cite|improve this question




















  • 2




    Welcome to MSE! Can you please format your question using MathJax. It improves readability and may get more responses. Regards
    – Amzoti
    Jan 29 '13 at 21:46












  • That looks a lot better, but there is still no $omega$ in your reduced equations?
    – mrf
    Jan 29 '13 at 23:22
















1














I am trying to solve an equation involving a complex argument for the plasma dispersion function as:
$z = x + iota y$,



$ x = omega / sqrt2 k v_{Ti} $



$ y = nu_i /sqrt{2} k v_{Ti} $



$S[z] = -iota sqrt{pi} Exp[-z^2] Erfc[-iota z]$;



I have reduced the equation to a system of equations corresponding to real part and imaginary part as:



$(x - beta)(c_1^2 + c_2^2) + nu_e(d_2c_2 - d_1c_1)=0$,



$gamma(c_1^2 + c_2^2) + nu_e(d_2c_1 - d_1c_2)=0$



I am not able to find how should i solve this system for omega and gamma to obtain plots for $omega$ v/s k and $gamma$ v/s k? $c_1, c_2, d_1, d_2$ are all functions of S(z). $beta, nu_e, nu_i, v_{Ti}$ are the parameters whose values are known.










share|cite|improve this question




















  • 2




    Welcome to MSE! Can you please format your question using MathJax. It improves readability and may get more responses. Regards
    – Amzoti
    Jan 29 '13 at 21:46












  • That looks a lot better, but there is still no $omega$ in your reduced equations?
    – mrf
    Jan 29 '13 at 23:22














1












1








1







I am trying to solve an equation involving a complex argument for the plasma dispersion function as:
$z = x + iota y$,



$ x = omega / sqrt2 k v_{Ti} $



$ y = nu_i /sqrt{2} k v_{Ti} $



$S[z] = -iota sqrt{pi} Exp[-z^2] Erfc[-iota z]$;



I have reduced the equation to a system of equations corresponding to real part and imaginary part as:



$(x - beta)(c_1^2 + c_2^2) + nu_e(d_2c_2 - d_1c_1)=0$,



$gamma(c_1^2 + c_2^2) + nu_e(d_2c_1 - d_1c_2)=0$



I am not able to find how should i solve this system for omega and gamma to obtain plots for $omega$ v/s k and $gamma$ v/s k? $c_1, c_2, d_1, d_2$ are all functions of S(z). $beta, nu_e, nu_i, v_{Ti}$ are the parameters whose values are known.










share|cite|improve this question















I am trying to solve an equation involving a complex argument for the plasma dispersion function as:
$z = x + iota y$,



$ x = omega / sqrt2 k v_{Ti} $



$ y = nu_i /sqrt{2} k v_{Ti} $



$S[z] = -iota sqrt{pi} Exp[-z^2] Erfc[-iota z]$;



I have reduced the equation to a system of equations corresponding to real part and imaginary part as:



$(x - beta)(c_1^2 + c_2^2) + nu_e(d_2c_2 - d_1c_1)=0$,



$gamma(c_1^2 + c_2^2) + nu_e(d_2c_1 - d_1c_2)=0$



I am not able to find how should i solve this system for omega and gamma to obtain plots for $omega$ v/s k and $gamma$ v/s k? $c_1, c_2, d_1, d_2$ are all functions of S(z). $beta, nu_e, nu_i, v_{Ti}$ are the parameters whose values are known.







complex-analysis numerical-methods special-functions






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








edited Jun 28 '16 at 15:12









J. M. is not a mathematician

60.8k5150289




60.8k5150289










asked Jan 29 '13 at 21:45









user60149user60149

62




62








  • 2




    Welcome to MSE! Can you please format your question using MathJax. It improves readability and may get more responses. Regards
    – Amzoti
    Jan 29 '13 at 21:46












  • That looks a lot better, but there is still no $omega$ in your reduced equations?
    – mrf
    Jan 29 '13 at 23:22














  • 2




    Welcome to MSE! Can you please format your question using MathJax. It improves readability and may get more responses. Regards
    – Amzoti
    Jan 29 '13 at 21:46












  • That looks a lot better, but there is still no $omega$ in your reduced equations?
    – mrf
    Jan 29 '13 at 23:22








2




2




Welcome to MSE! Can you please format your question using MathJax. It improves readability and may get more responses. Regards
– Amzoti
Jan 29 '13 at 21:46






Welcome to MSE! Can you please format your question using MathJax. It improves readability and may get more responses. Regards
– Amzoti
Jan 29 '13 at 21:46














That looks a lot better, but there is still no $omega$ in your reduced equations?
– mrf
Jan 29 '13 at 23:22




That looks a lot better, but there is still no $omega$ in your reduced equations?
– mrf
Jan 29 '13 at 23:22










1 Answer
1






active

oldest

votes


















1














The most simple and usually best way to solve for this is via the Newton-Rhapson Method, which works even for complex variables; so, you do not need to separate the real and imaginary part.



For example, suppose you want to solve for the roots of a complex function $W(x,y)$, given by
$$W(x,y) = -y^2 - x + frac x{ysqrtbeta} S(xi),,$$



where $xi = (x-1)/y sqrtbeta$, $beta$ and $y$ are real numbers and $x$ is the complex variable.



Then, for $y=y_0$, we will look for $x=x(y_0)$. Choose $x=z_n$ as an initial seed for the Newton's method.
$$z_{n+1} = -frac{ W(z_n, y_0) }{ W'(z_n,y_0) },,$$



where $W'(x,y) = partial W/partial x$. Iterate until $n=N$ where the last equation converges, so that $x(y_0) = z_{N}$.



Now, choose $y=y_1$ and suppose $x=z_n=x(y_0)$ is a good seed. Through the Newton Method you now have $x=x(y_1)$.



Iterate this procedure until some $y_M$.



In the software Mathematica, I have implemented this code:



rama[s_,ys_]:=
(
data={};
xn=s;

Table[
xn=x/.FindRoot[W[x,yn],{x,xn+0. I}];
AppendTo[data,{yn, Re[xn],Im[xn]}];
,{yn,ys,0.02,-0.001}];

Export["data.dat", data]
)


You need to choose the first seed $x=s$ and $y=y_s$. Then, the code will find the solutions $x=x(y)$ for $0.02<y<y_s$ in steps of $-0.001$, and the results will be saved in a file with columns $y$ $Re(x)$ $Im(x)$. FindRoot is a function of Mathematica which uses (I hope) the Newton Method.



P.D.: $W(x,y)=0$ represents the dispersion relation of electromagnetic waves propagating along a background magnetic field in a plasma of electrons and protons, where $beta$ is the beta-parameter, $y$ is the normalized wave-number and $x=x(y)$ is the normalized complex frequency.






share|cite|improve this answer





















    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "69"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f290092%2fsolution-to-equations-involving-plasma-dispersion-function%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    The most simple and usually best way to solve for this is via the Newton-Rhapson Method, which works even for complex variables; so, you do not need to separate the real and imaginary part.



    For example, suppose you want to solve for the roots of a complex function $W(x,y)$, given by
    $$W(x,y) = -y^2 - x + frac x{ysqrtbeta} S(xi),,$$



    where $xi = (x-1)/y sqrtbeta$, $beta$ and $y$ are real numbers and $x$ is the complex variable.



    Then, for $y=y_0$, we will look for $x=x(y_0)$. Choose $x=z_n$ as an initial seed for the Newton's method.
    $$z_{n+1} = -frac{ W(z_n, y_0) }{ W'(z_n,y_0) },,$$



    where $W'(x,y) = partial W/partial x$. Iterate until $n=N$ where the last equation converges, so that $x(y_0) = z_{N}$.



    Now, choose $y=y_1$ and suppose $x=z_n=x(y_0)$ is a good seed. Through the Newton Method you now have $x=x(y_1)$.



    Iterate this procedure until some $y_M$.



    In the software Mathematica, I have implemented this code:



    rama[s_,ys_]:=
    (
    data={};
    xn=s;

    Table[
    xn=x/.FindRoot[W[x,yn],{x,xn+0. I}];
    AppendTo[data,{yn, Re[xn],Im[xn]}];
    ,{yn,ys,0.02,-0.001}];

    Export["data.dat", data]
    )


    You need to choose the first seed $x=s$ and $y=y_s$. Then, the code will find the solutions $x=x(y)$ for $0.02<y<y_s$ in steps of $-0.001$, and the results will be saved in a file with columns $y$ $Re(x)$ $Im(x)$. FindRoot is a function of Mathematica which uses (I hope) the Newton Method.



    P.D.: $W(x,y)=0$ represents the dispersion relation of electromagnetic waves propagating along a background magnetic field in a plasma of electrons and protons, where $beta$ is the beta-parameter, $y$ is the normalized wave-number and $x=x(y)$ is the normalized complex frequency.






    share|cite|improve this answer


























      1














      The most simple and usually best way to solve for this is via the Newton-Rhapson Method, which works even for complex variables; so, you do not need to separate the real and imaginary part.



      For example, suppose you want to solve for the roots of a complex function $W(x,y)$, given by
      $$W(x,y) = -y^2 - x + frac x{ysqrtbeta} S(xi),,$$



      where $xi = (x-1)/y sqrtbeta$, $beta$ and $y$ are real numbers and $x$ is the complex variable.



      Then, for $y=y_0$, we will look for $x=x(y_0)$. Choose $x=z_n$ as an initial seed for the Newton's method.
      $$z_{n+1} = -frac{ W(z_n, y_0) }{ W'(z_n,y_0) },,$$



      where $W'(x,y) = partial W/partial x$. Iterate until $n=N$ where the last equation converges, so that $x(y_0) = z_{N}$.



      Now, choose $y=y_1$ and suppose $x=z_n=x(y_0)$ is a good seed. Through the Newton Method you now have $x=x(y_1)$.



      Iterate this procedure until some $y_M$.



      In the software Mathematica, I have implemented this code:



      rama[s_,ys_]:=
      (
      data={};
      xn=s;

      Table[
      xn=x/.FindRoot[W[x,yn],{x,xn+0. I}];
      AppendTo[data,{yn, Re[xn],Im[xn]}];
      ,{yn,ys,0.02,-0.001}];

      Export["data.dat", data]
      )


      You need to choose the first seed $x=s$ and $y=y_s$. Then, the code will find the solutions $x=x(y)$ for $0.02<y<y_s$ in steps of $-0.001$, and the results will be saved in a file with columns $y$ $Re(x)$ $Im(x)$. FindRoot is a function of Mathematica which uses (I hope) the Newton Method.



      P.D.: $W(x,y)=0$ represents the dispersion relation of electromagnetic waves propagating along a background magnetic field in a plasma of electrons and protons, where $beta$ is the beta-parameter, $y$ is the normalized wave-number and $x=x(y)$ is the normalized complex frequency.






      share|cite|improve this answer
























        1












        1








        1






        The most simple and usually best way to solve for this is via the Newton-Rhapson Method, which works even for complex variables; so, you do not need to separate the real and imaginary part.



        For example, suppose you want to solve for the roots of a complex function $W(x,y)$, given by
        $$W(x,y) = -y^2 - x + frac x{ysqrtbeta} S(xi),,$$



        where $xi = (x-1)/y sqrtbeta$, $beta$ and $y$ are real numbers and $x$ is the complex variable.



        Then, for $y=y_0$, we will look for $x=x(y_0)$. Choose $x=z_n$ as an initial seed for the Newton's method.
        $$z_{n+1} = -frac{ W(z_n, y_0) }{ W'(z_n,y_0) },,$$



        where $W'(x,y) = partial W/partial x$. Iterate until $n=N$ where the last equation converges, so that $x(y_0) = z_{N}$.



        Now, choose $y=y_1$ and suppose $x=z_n=x(y_0)$ is a good seed. Through the Newton Method you now have $x=x(y_1)$.



        Iterate this procedure until some $y_M$.



        In the software Mathematica, I have implemented this code:



        rama[s_,ys_]:=
        (
        data={};
        xn=s;

        Table[
        xn=x/.FindRoot[W[x,yn],{x,xn+0. I}];
        AppendTo[data,{yn, Re[xn],Im[xn]}];
        ,{yn,ys,0.02,-0.001}];

        Export["data.dat", data]
        )


        You need to choose the first seed $x=s$ and $y=y_s$. Then, the code will find the solutions $x=x(y)$ for $0.02<y<y_s$ in steps of $-0.001$, and the results will be saved in a file with columns $y$ $Re(x)$ $Im(x)$. FindRoot is a function of Mathematica which uses (I hope) the Newton Method.



        P.D.: $W(x,y)=0$ represents the dispersion relation of electromagnetic waves propagating along a background magnetic field in a plasma of electrons and protons, where $beta$ is the beta-parameter, $y$ is the normalized wave-number and $x=x(y)$ is the normalized complex frequency.






        share|cite|improve this answer












        The most simple and usually best way to solve for this is via the Newton-Rhapson Method, which works even for complex variables; so, you do not need to separate the real and imaginary part.



        For example, suppose you want to solve for the roots of a complex function $W(x,y)$, given by
        $$W(x,y) = -y^2 - x + frac x{ysqrtbeta} S(xi),,$$



        where $xi = (x-1)/y sqrtbeta$, $beta$ and $y$ are real numbers and $x$ is the complex variable.



        Then, for $y=y_0$, we will look for $x=x(y_0)$. Choose $x=z_n$ as an initial seed for the Newton's method.
        $$z_{n+1} = -frac{ W(z_n, y_0) }{ W'(z_n,y_0) },,$$



        where $W'(x,y) = partial W/partial x$. Iterate until $n=N$ where the last equation converges, so that $x(y_0) = z_{N}$.



        Now, choose $y=y_1$ and suppose $x=z_n=x(y_0)$ is a good seed. Through the Newton Method you now have $x=x(y_1)$.



        Iterate this procedure until some $y_M$.



        In the software Mathematica, I have implemented this code:



        rama[s_,ys_]:=
        (
        data={};
        xn=s;

        Table[
        xn=x/.FindRoot[W[x,yn],{x,xn+0. I}];
        AppendTo[data,{yn, Re[xn],Im[xn]}];
        ,{yn,ys,0.02,-0.001}];

        Export["data.dat", data]
        )


        You need to choose the first seed $x=s$ and $y=y_s$. Then, the code will find the solutions $x=x(y)$ for $0.02<y<y_s$ in steps of $-0.001$, and the results will be saved in a file with columns $y$ $Re(x)$ $Im(x)$. FindRoot is a function of Mathematica which uses (I hope) the Newton Method.



        P.D.: $W(x,y)=0$ represents the dispersion relation of electromagnetic waves propagating along a background magnetic field in a plasma of electrons and protons, where $beta$ is the beta-parameter, $y$ is the normalized wave-number and $x=x(y)$ is the normalized complex frequency.







        share|cite|improve this answer












        share|cite|improve this answer



        share|cite|improve this answer










        answered Aug 24 '13 at 5:32









        vagobertovagoberto

        1344




        1344






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Mathematics Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            Use MathJax to format equations. MathJax reference.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f290092%2fsolution-to-equations-involving-plasma-dispersion-function%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Wiesbaden

            Marschland

            Dieringhausen