## Fonctions utiles -- sphérique

div(U):=diff(r^2*U[1],r)/r^2+diff(sin(theta)*U[2],theta)/(r*sin(theta))
        +diff(U[3],psi)/(r*sin(theta))$
grad(phi):=[diff(phi,r),diff(phi,theta)/r,diff(phi,psi)/(r*sin(theta))]$
rot(U):=[diff(sin(theta)*U[3],theta)/(r*sin(theta))-diff(U[2],psi)/(r*sin(theta)),
         diff(U[1],psi)/(r*sin(theta))-diff(r*U[3],r)/r,
         diff(U[2]*r,r)/r-diff(U[1],theta)/r]$
pv(U,V):=[U[2]*V[3]-U[3]*V[2],U[3]*V[1]-U[1]*V[3],U[1]*V[2]-U[2]*V[1]]$

DitCeQueCest([s]):=apply(print,append(s,[%]))$DCQ:DitCeQueCest$

## Aimant sphérique

Modèle coulombien

depends(f,[r])$DCQ("variable dépendantes : ")$

Omega:f*cos(theta)$DCQ("Omega = ")$
factor(div(grad(Omega)))$DCQ("div(grad(Omega)) = ")$

Omega:r*cos(theta)$DCQ("Omega = ")$
factor(div(grad(Omega)))$DCQ("div(grad(Omega)) = ")$
Omega:cos(theta)/r^2$DCQ("Omega = ")$
factor(div(grad(Omega)))$DCQ("div(grad(Omega)) = ")$

Omega:[alpha*r*cos(theta),beta/r^2*cos(theta)]$
grad(Omega);

M:m*[cos(theta),-sin(theta),0];

Omega:[alpha*r*cos(theta),beta/r^2*cos(theta)]$
DCQ("[Omega pour r<R,Omega pour r >R] = ")$
eq:[Omega[1]-Omega[2],grad(Omega[1])[1]+M[1]-grad(Omega[2])[1]]$
eq:flatten(ev(eq,r=R))$DCQ("continuités en R = ")$
sol:solve(eq,[alpha,beta])$DCQ("alpha et beta pour que = ")$
Omega:ev(Omega,sol)$DCQ("[Omega pour r<R,Omega pour r >R] = ")$

h:map(grad,Omega)$DCQ("[h pour r<R,Omega pour r >R] = ")$
b:[mu0*(h[1]+M),mu0*h[2]]$DCQ("[b pour r<R,Omega pour r >R] = ")$

Modèle ampérien

a:[0,0,f*sin(theta)]$DCQ("a = ")$
factor(rot(rot(a)))$DCQ("rot(rot(a)) = ")$

a:[0,0,r*sin(theta)]$DCQ("a = ")$
factor(rot(rot(a)))$DCQ("rot(rot(a)) = ")$
a:[0,0,sin(theta)/r^2]$DCQ("a = ")$
factor(rot(rot(a)))$DCQ("rot(rot(a)) = ")$

M:m*[cos(theta),-sin(theta),0];
N:[1,0,0];

a:[[0,0,alpha*r*sin(theta)],[0,0,beta/r^2*sin(theta)]]$
DCQ("[a pour r<R,a pour r >R] = ")$
eq:[a[1]-a[2],pv(rot(a[1])-mu0*M,N)-pv(rot(a[2]),N)]$
eq:flatten(ev(eq,r=R))$DCQ("continuités en R = ")$
sol:solve(eq,[alpha,beta])$DCQ("alpha et beta pour que = ")$
a:ev(a,sol)$DCQ("[a pour r<R,Omega pour r >R] = ")$

b:map('rot,a)$DCQ("[b pour r<R,Omega pour r >R] = ")$
h:[b[1]/mu0-M,b[2]/mu0]$DCQ("[h pour r<R,Omega pour r >R] = ")$

Induction magnétique à Nancy

data:[theta=float((90-48)*%pi/180),r=6400.0e+3,mu0=float(4.0e-7*%pi)];
assume(m>0,R>0)$
bNcy:ev(b[2],data)$
Bh:bNcy[2]$DCQ("B horizontal = ")$
Bv:bNcy[1]$DCQ("B vertical = ")$
Bn:sqrt(Bh^2+Bv^2)$DCQ("Norme de B = ")$
Angle:float(180/%pi*atan(Bv/Bh))$DCQ("Angle par rapport à l'horizontale = ")$

Si il y avait un aimant néodyme-fer-bore sphérique au centre de la terre,
Quel serait son rayon ?

(il n'y en pas...)

ratprint:false$
sol:float(solve(Bn=47.0e-7,m))$DCQ("m(R) =")$
plot2d([ev(m,sol,eval,R=1000*x)/1.0e+6,1],[x,100.0,200])$
sol:float(solve(ev(m,sol)-1.0e+6,R)[3])$
ev(R/1000,sol)$DCQ("Rayon en km = ")$