Plotting a function with difference between 2 vectors?

3 views (last 30 days)
I want to plot where is the magnitude of the distance between 2 vectors: :
If I would implement this idea in Matlab:
[r1,r2] = meshgrid(linspace(-1,1,100));
phi = 1./(r1-r2);
mesh(r1,r2,phi)
what's nor really any kind of potential. Instead
[r1,r2] = meshgrid(linspace(-1,1,100));
phi = 1./sqrt((r1.^2+r2.^2));
mesh(r1,r2,phi)
is drawing the shape I sougth. Where does this difference originate from?

Accepted Answer

Cris LaPierre
Cris LaPierre on 8 May 2021
Edited: Cris LaPierre on 8 May 2021
The shape is caused by where you can divide by 0. The difference is that, in the first case, this occurs along the diagonal line r1-r2=0. In the second case, the only time you divide by 0 is when r1=r2=0, hence the peak at a single point, (0,0).
  1 Comment
Niklas Kurz
Niklas Kurz on 9 May 2021
Edited: Niklas Kurz on 9 May 2021
yea, I guess u have to think about meshgrid(r1,r2) as a "vectorspace" spaned by the unit vecots r1 and r2 and not as indivdual vectors like I did.

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!