Numerical volume integral with keeping parameters

1 次查看(过去 30 天)
HI ,
I wanted to calculate the magnetic potential of a bar magnet by numerical integration of the potential of a point source over the volume of the magnet. Below is my source code but I always get an error message.
Thank you for your help
a=0.0025; L=0.005; phis=0;
r1=0; r2=a; phi1=0; phi2=2*pi; z1=-L/2; z2=L/2;
%Function
f=@(r,phi,z,R,Z) (sin(phis-phi).*r)/(R.^2-2.*r.*R.*cos(phis-phi)+r.^2+(Z-z).^2).^(3/2);
[R,Z] = meshgrid(-0.05:s:0.05); mp=zeros(size( R ));
for k = 1:numel( R )
g = @(r,phi,z) f(r,phi,z,R(k),Z(k));
mp(k) = triplequad(g,r1,r2,phi1,phi2,z1,z2);
end
surf(R,Z,mp)

回答(1 个)

Mike Hosea
Mike Hosea 2013-9-11
Well, for starters, you need to change / to ./ in the definition of f. Second, however, you will need to use integral3 instead of triplequad.
  2 个评论
dont panic
dont panic 2013-9-11
Thank you for your answer but I am using Matlab 2011a and as far as I can see matlab 2011a has no such ability. (but i might as well be wrong as i am new but the funktion browser had no entry for integral3 ) Is there a possibility to solve the problem with Matlab 2011a ?
thanks in advance
Mike Hosea
Mike Hosea 2013-9-11
Sorry, on second thought, you may not need INTEGRAL3. When I ran this, all I got were answers that numerically were not distinguishable from zero, and there is a singularity when R=0 and Z=0. There must be something wrong with your formulation.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by