Solution to equations involving Plasma dispersion function
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
add a comment |
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
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
add a comment |
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
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
complex-analysis numerical-methods special-functions
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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.
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
answered Aug 24 '13 at 5:32
vagobertovagoberto
1344
1344
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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