Thank you very much for your suggestions and comments!
I have some questions in the following:
1. I certainly agree that if put in arrays then the computation time can be greatly reduced, but I have to admit I'm not very proficient with handling arrays in Maple, and I really want to learn what you have done there. I guess this has something to do with what I mentioned in the reply to Carl, I'm always confused with Maple's looping process and how it assigns values to arrays. e.g. in your line
for i to N do for j to N do M[i, j, .. ] := Vector([fsolve(Dt(-Pi+2*Pi*(i-1)/(N-1), -Pi+2*Pi*(j-1)/(N-1)), w, complex)]) end do end do
you didn't call the third index of M (what does .. mean here? Isn't .. supposed to be between two numbers as a range?) or any index for the Vector, but it seems Maple automatically knows what to put in there.
2. I don't know how to properly use the matrix after it's been populated.
allReP := [seq(plots:-surfdata(Array(map(Re, M[.. , .. , i]), datatype = float), -Pi .. Pi, -Pi .. Pi, axes = box, color = clist[i], glossiness = .8, lightmodel = light1, style = patchcontour), i = 1 .. 6)]
This line contains a lot of things that I don't know how to use properly. So if I remove the syntax for coloring and making axes ... seq is the same as calling a loop through i=1..6? How does it know the increment is one? So you are extracting the rank 2 tensors from the rank 3 tensor M into arrays sequentially from i=1..6 and then plot with surfdata ... so what's the difference between surfdata and matrixplot? What is map? It seems to be the same as eval?
3. Yes I think sort is important here because I need the six surfaces to belong to the corresponding solutions. My eigen surfaces do not cross so a simple sort would do. I don't know why you said there is a crossing of eigenvalues since they actually repel each other with a small gap, and never crossed. However, the fact that they don't cross this time doesn't mean they won't next time, so that's why I tried to solve for it in x and y first and then plot in x and y. In this event I think maybe it's not possible to reduce computation time by using the previous method.
4. And about the floating simplify thing, I know that Maple is good for rationals and symbolics, while Matlab is for numbers. But I don't want to use Matlab for the reason I said in 3: it's hard to determine if everything in the first surface actually corresponds to the first solution if I don't first solve it in x and y. I only did the floating thing because I couldn't get the solve to work, and by changing things to floats I have observed some unreliable success in going through solve.