Wrong direction of E-Field lines using "Quiver Function" in a program to solve Simple Laplace Problem.

8 views (last 30 days)
This is my program to solve a simple laplace problem where a Voltage of 100V is applied at the top and all other bounderies are 0V. The Matrix outputs the correct values (in var "z"). And the potential distribution seems right. The Problem is that when I use the quiver function to plot the E-Field lines then they originate from the bottom boundary (at 0V) and end at sides and the Top. But the Fields should originate from the top at (100v) and end at the sides and the bottom. I can't figure out what went wrong so any help would be appreciated. Thanks.
u = zeros(50);
z = u;
for i =1:500
for i = 2: size(z,1)-1;
for j = 2 : size(z,1)-1
z(i,j) = (z(i-1,j)+z(i+1,j)+z(i,j-1)+z(i,j+1))/4;
% getframe
[ex,ey] = gradient(z);
axis xy

Accepted Answer

Star Strider
Star Strider on 27 Aug 2015
Note the y-axis orientation between the image plot and the quiver call. If you use contourf instead of imagesc, they match. If you want zero to start at the top of the plot for both, set the 'YDir' property for each figure if you use contourf, and the quiver plot if you use imagesc:
set(gca, 'YDir','reverse')
If you want to overplot the quiver arrows on top of the first plot, use the hold function.
Star Strider
Star Strider on 27 Aug 2015
My pleasure.
I don’t know why images start in the upper left corner, but the image convention seems to have existed before MATLAB, and follows earlier graphics conventions that I remember from the 1970s. Plots — including contour — always started in the lower left, again by convention.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!