Here is the details of the code to plot.

Clear[x, y, ψ1, ψ2, ψ3, ψ4, eqn, eqnWithInitial,v, j];
eqn = Thread[
       I D[{ψ1[x, y, t], ψ2[x, y, t], ψ3[x, y, t], ψ4[
            x, y, t]}, 
          t] == {v (-I D[ψ3[x, y, t], x] - D[ψ3[x, y, t], y]) + 
          2 Δ ψ4[x, y, t], 
         v (-I D[ψ4[x, y, t], x] - D[ψ4[x, y, t], y]), 
         v (-I D[ψ1[x, y, t], x] + D[ψ1[x, y, t], y]), 
         v (-I D[ψ2[x, y, t], x] + D[ψ2[x, y, t], y]) + 
          2 Δ ψ1[x, y, t]}];
eqnWithInitial = 
       Thread[{ψ1[x, y, 0], ψ2[x, y, 0], ψ3[x, y, 
           0], ψ4[x, y, 0]} == {1, 1, 1, 
           1} (x + I*y) Exp[-(x^2 + y^2)]], 
       Thread[{ψ1[-5, y, t], ψ2[-5, y, t], ψ3[-5, y, 
           t], ψ4[-5, y, t]} == {ψ1[5, y, t], ψ2[5, y, 
           t], ψ3[5, y, t], ψ4[5, y, t]}], 
       Thread[{ψ1[x, -5, t], ψ2[x, -5, t], ψ3[x, -5, 
           t], ψ4[x, -5, t]} == {ψ1[x, 5, t], ψ2[x, 5, 
           t], ψ3[x, 5, t], ψ4[x, 5, t]}]];

v = 1;
Δ = 1;
tMax = 8;

solution = 
      First @ NDSolve[
        eqnWithInitial, {ψ1[x, y, t], ψ2[x, y, t], ψ3[x, y,
           t], ψ4[x, y, t]}, {x, -5, 5}, {y, -5, 5}, {t, 0, tMax}, 
        Method -> {"MethodOfLines", 
          "SpatialDiscretization" -> {"TensorProductGrid", 
            "DifferenceOrder" -> "Pseudospectral"}}];

Ψ1[x_, y_, t_] = ψ1[x, y, t] /. solution;
Ψ2[x_, y_, t_] = ψ2[x, y, t] /. solution;
Ψ3[x_, y_, t_] = ψ3[x, y, t] /. solution;
Ψ4[x_, y_, t_] = ψ4[x, y, t] /. solution; 

myrotorz1[x_?NumericQ, y_?NumericQ, t_?NumericQ] = 
  I/2 * (-Conjugate[D[Ψ1[x, y, t], y]] * D[Ψ1[x, y, t], x] + 
    D[Ψ1[x, y, t],y] * Conjugate[D[Ψ1[x, y, t], x]] + 
    Conjugate[D[Ψ1[x, y, t], x]] * D[Ψ1[x, y, t], y] - 
    D[Ψ1[x, y, t], x] * Conjugate[D[Ψ1[x, y, t], y]]);

Here is something that may be reasonable as R. M. suggested

NIntegrate[myrotorz1[x, y, 0], {x, -5, 5}, {y, -5, 5},Method -> "Trapezoidal"]

(Debug) During evaluation of In[18]:= NIntegrate::ncvi: NIntegrate failed to converge to prescribed accuracy after 9 iterated refinements in y in the region {{-5.,5.},{-5.,5.}}. NIntegrate obtained 0.012104690946256463` and 0.8391566465710514` for the integral and error estimates. >>

(Debug) Out[18]= 0.0121047

My point is to plot for myrotorz1[x, y, t] as a function of t but takes too much time. Any tips would be greatly appreciated.

Plot[NIntegrate[myrotorz1[x, y, t], {x, -5, 5}, {y, -5, 5},Method -> "Trapezoidal"], {t, 0, 4}]
  • $\begingroup$ See this answer to the pitfalls question. -- The hint contained in the error message is that the symbols x and y do not have numerical values. $\endgroup$
    – Michael E2
    Oct 16, 2015 at 10:17
  • $\begingroup$ Your definition for myrotorz1 is has syntax errors. Perhaps this is because of an error introduced in transferring your code to this site, but it needs to corrected before we can help you further. $\endgroup$
    – m_goldberg
    Oct 16, 2015 at 21:44
  • $\begingroup$ @m_goldberg, you are right. I have made the correction. $\endgroup$
    – user34056
    Oct 17, 2015 at 9:40
  • $\begingroup$ I don't get the error you indicated in the first post. I get only NIntegrate::slwcon (slow convergence). I'm using V10.2. -- What error are you getting? $\endgroup$
    – Michael E2
    Oct 17, 2015 at 12:30
  • $\begingroup$ @MichaelE2 slow convergence plus suppressed the output $\endgroup$
    – user34056
    Oct 17, 2015 at 13:55

1 Answer 1


Nothing much can be said without knowing the form of myrotorz1[x, y, t] I would first include NumericQ to the function. But for a simple function you can do it easily. Considering a simple function, I will do the following.

f[x_, y_, t_] := x^2 + y^2 + t^2
data[t_] := NIntegrate[f[x, y, t], {x, 0, 1}, {y, 0, 1}]
toplot = ParallelTable[data[t], {t, 0, 10}] // ListPlot
  • $\begingroup$ it's a follow up question and given on the link above. $\endgroup$
    – user34056
    Oct 16, 2015 at 10:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.