Anterior

Procedimientos numéricos

Integral elíptica

Las componentes del campo By y Bz se expresan de la siguiente forma en términos de la integrales elípticas completas de primera y segunda especie

B y = μ 0 i 2a 1 π (2(y/a)) 3/2 ( z a )( 2m K(m)+ 2m 22m 2m E(m)   ) B z = μ 0 i 2a 1 π (2(y/a)) 3/2 ( m 22m 2m E(m)+( y a ) 2m K(m)( y a ) 2m 22m 2m E(m) ) m= 2 1+b = 4(y/a) 1+ (z/a) 2 + (y/a) 2 +2(y/a)

public class Aplicacion {
  public static void main(String[] args) {
//en la espira
          if (Math.abs(y-1.0)<0.01 && Math.abs(z)<0.01){
System.out.println("infinito");
return;
}
double By, Bz;
double m=2.0/(1.0+(z*z+y*y+1)/(2*y));
//en el eje de la espira if(Math.abs(y)<0.01){
By=0.0;
Bz=1.0/Math.pow((z*z+1), 1.5);
}else{
//fuera del eje de la espira Bz=(m*Math.sqrt(2*m)*Eliptica.segunda(Math.PI/2, Math.sqrt(m)) /(2-2*m)+y*Math.sqrt(2*m)*Eliptica.primera(Math.PI/2, Math.sqrt(m))- y*(2-m)*Math.sqrt(2*m)*Eliptica.segunda(Math.PI/2, Math.sqrt(m))/(2-2*m)) /(Math.PI*2*y*Math.sqrt(2*y));
By=z*(-Math.sqrt(2*m)*Eliptica.primera(Math.PI/2, Math.sqrt(m))+ (2-m)*Math.sqrt(2*m)*Eliptica.segunda(Math.PI/2, Math.sqrt(m))/(2-2*m)) /(Math.PI*2*y*Math.sqrt(2*y));
}
System.out.println("By: "+String.valueOf((double)Math.round(By*1000)/1000)); System.out.println(" Bz: "+String.valueOf((double)Math.round(Bz*1000)/1000));
double angulo=Math.atan2(Bz, By);
if(angulo<0) angulo+=2*Math.PI;
double modulo=Math.sqrt(By*By+Bz*Bz);
System.out.println("B: "+String.valueOf((double)Math.round(modulo*1000)/1000)); System.out.println("fi: "+String.valueOf((double)
Math.round(angulo*1800/Math.PI)/10)+"º"); } }
Anterior