1
$\begingroup$

I bid you a good day.

I want Mathematica to plug this assumed solution into the left hand side of a differential equation. Then collect terms of powers of $\alpha$.

$\psi (x,y)=\alpha f_1(y)e^{i x}+\alpha ^2 f_2(y)e^{2 i x}$

$u=\frac{\partial\psi} {\partial y}$

$v=-\frac{\partial\psi} {\partial x}$

The left hand side of the differential equation is: $u \frac{\partial u}{\partial x}+v \frac{\partial u}{\partial y}$

Here is my code that accomplishes this:

    ψ[{x, y}] = y +
  (α^1) (f1[y]).Exp[1*I*x] +
  (α^2) (f2[y]).Exp[2*I*x] + (α^2) (g2[y]);

u = D[ψ[{x, y}], y];

v = -D[ψ[{x, y}], x];

Collect[Distribute[u D[u, x]] + Distribute[v D[u, y]], α]

This give the result

$ \alpha f_1'(y)(ie^{i x})+\alpha^2 [f_1'(y).(ie^{i x})*f_1'(y).(e^{i x})+f_2'(y)e^{2 i x}-f_1(y)(ie^{i x})*f_1''(y).(e^{i x})]$

which is the desired result.

I would like to know if Mathematica can lexicographically scan each term and compare the $e^{m i x}$ terms? I only posted $\psi$ up to the second order so each $e^{m i x}$ terms in $\alpha^2 $ have the same order but when you calculate the third or higher orders, there will be terms that are of the form $e^{m i x}e^{n i x}$ where $m \neq n$. I want to conjugate the lower order term of $e^{m i x} and $e^{n i x}$.

For example, when calculating the third order terms, one term that arises is $f_1'(y).(ie^{i x})*f_2'(y).(2ie^{2 i x})$. I would like to Mathematica to identify that $f_1'(y).(ie^{i x})$ is the lower order term and then apply the rule

$\Re(A)\Re(B)=\Re[\frac12A(B+\bar B)]$

where $A=f_2'(y).(2ie^{2 i x})$ and $B=f_1'(y).(ie^{i x})$.

To restate the question: Can Mathematica lexicographically search an expression and compare terms in the expression?

Thank you for any assistance.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.