#include #include "iterativo.h" double x=0, y=0, z=0; double mu0=4.*M_PI*1.E-7; double radius=0.155; // 15.5 cm double distanza=0.155; // 15.5 cm double current=1.; // 1 A void setPoint(double xset, double yset, double zset) { x=xset; y=yset; z=zset; } double intBx(double theta) { double rx = x-radius*cos(theta); double ry = y-radius*sin(theta); double r = sqrt(rx*rx+ry*ry+z*z); return z*cos(theta)/pow(r,3); } double intBy(double theta) { double rx = x-radius*cos(theta); double ry = y-radius*sin(theta); double r = sqrt(rx*rx+ry*ry+z*z); return z*cos(theta)/pow(r,3); } double intBz(double theta) { double rx = x-radius*cos(theta); double ry = y-radius*sin(theta); double r = sqrt(rx*rx+ry*ry+z*z); return (radius-y*sin(theta)-x*cos(theta))/pow(r,3); } double Bx(double xset, double yset, double zset) { setPoint(xset,yset,zset); return mu0*current* /* integrale di intBx */ /(4*M_PI); } double By(double xset, double yset, double zset) { setPoint(xset,yset,zset); return mu0*current* /* integrale di intBy */ /(4*M_PI); } double Bz(double xset, double yset, double zset) { setPoint(xset,yset,zset); return mu0*current* /* integrale di intBz */ /(4*M_PI); }