필터 지우기
필터 지우기

How to apply sum function for simulating charges around a circle?

조회 수: 1 (최근 30일)
Rodrigo Ayala
Rodrigo Ayala 2021년 3월 9일
댓글: Rodrigo Ayala 2021년 3월 9일
I'm trying to model electric potential energy of protons arranged in a circle, graphically is(the next plot was made manually in geogebra 3d),
For :
Asumming k=1, q1=1, q2=2 , mathematically can been described as:
The thing is that i want to generalize this into a summation function in matlab for n charges separated in the circle, mathematically it will be:
I try the next code, but it doesn't work. Any suggestions? I can't understand how the sum function works exactly:
[x,y,t]=meshgrid(-15:0.5:15,-15:0.5:15, 0:pi/8:pi/2);
r=5;
z=sum(1./sqrt((x-r*cos(t)).^2+(y-r*sin(t).^2)), 3);
surf(x(:,:,1),y(:,:,1),z);

답변 (2개)

Matt J
Matt J 2021년 3월 9일
편집: Matt J 2021년 3월 9일
xs=linspace(0,10,500);
[x,y,t]=meshgrid(xs,xs, 0:pi/8:pi/2);
r=5;
z=sum(1./ ( (x-r*cos(t)).^2 + (y-r*sin(t)).^2 ), 3);
surf(x(:,:,1),y(:,:,1),z,'EdgeColor','none','FaceAlpha',0.3,'FaceColor','g');
  댓글 수: 6
Matt J
Matt J 2021년 3월 9일
편집: Matt J 2021년 3월 9일
Is the same r being used in the geogebra drawing? Also, you've presented different versions of your equations in different places, some with sqrt()'s and some without. Including or removing sqrt would affect the sharpness of the peaks.
Here's what we get with r=1 and including the sqrt():
r=1;
xs=linspace(0,1.5*r,500);
[y,x,t]=ndgrid(xs,xs, 0:pi/8:pi/2);
z=sum(1./ sqrt( (x-r*cos(t)).^2 + (y-r*sin(t)).^2 ), 3);
surf(x(:,:,1),y(:,:,1),z,'EdgeColor','none','FaceAlpha',0.3);
zlim([0,30]); view([-45,30])
axis vis3d
grid off
Rodrigo Ayala
Rodrigo Ayala 2021년 3월 9일
Oh thanks, that is the expect output!

댓글을 달려면 로그인하십시오.


Walter Roberson
Walter Roberson 2021년 3월 9일
It would only take a small modification to the z = formula I showed there.

카테고리

Help CenterFile Exchange에서 Axis Labels에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by