% PROGRAMA DIPOLO ELÉCTRICO % SE PIDEN EL VALOS DE LA CARGA % SE PIDE LA UBICACIÓN DE LA CARGA clear all; close all; clc; %%%%%%%%%% de la linea 30 a la 34 esta como comentario porque lo hice para valores y % posiciones especificos, quitando la parte de comentario (%) y poniendo % como comentario las lineas 11 a 28 se puede correr el programa para estos % valores, si no, se pueden agregar los valores y posiciones % deseados%%%%%%% disp('ingresa q1'); %se despliega en pantalla el mensaje 'ingresa q1' q1=input(''); % el usuario ingresa el valor de q1 q1=q1*10^(-6); %los valores de q1 se mostraran en micro coulombs, pero se puede modificar segun las necesidades el usario disp('ingresa q2'); %se despliega en pantalla el mensaje 'ingresa q2' q2=input(''); %el usuario ingresa q2 q2=q2*10^(-6); %los valores de q1 se mostraran en micro coulombs, pero se puede modificar segun las necesidades el usario disp('ingresa la posicion de q1'); for i=1:3 %ciclo para meter las 3 posiciones de la carga 1 en un arreglo posq1(i)= input(''); end disp('ingresa la posicion de q2'); for i=1:3 %ciclo para meter las 3 posiciones de la carga en un arreglo posq2(i)= input(''); end disp('ingresa la posicion del campo'); for i=1:3 %ciclo para meter las 3 posiciones del campo electrico puntocampo(i)= input(''); end %q1=0.35*10^(-6); %se esta declarando la carga 1 %posq1=[-4,0,0]; %se esta declarando la posicion de q1 %q2=0.55*10^(-6); %se esta declarando q2 %posq2=[3,0,0]; %se esta declarando la posicion de q2 %puntocampo=[0,0,5]; %se esta declarando la posicion del punto campo for i=1:3 %ciclo que sirve para guardar la distancia de las cargas al punto campo en 3 posiciones rprima1(i)=(puntocampo(i)-posq1(i)) %1=x 2=y 3=z rprima2(i)=(puntocampo(i)-posq2(i)) end epsilon0= 8.854*10^(-12); %se esta declarando cuanto vale epsilon0 k= 1/(4*pi*epsilon0); %se guarda epsilon0 y 1/4pi como una sola constante k raiz(1) = sqrt(rprima1(1)^2+rprima1(2)^2+rprima1(3)^2); %magnitud de r1 raiz(2) = sqrt(rprima2(1)^2+rprima2(2)^2+rprima2(3)^2); %magnitud de r2 for j=1:3 %ciclo para encontrar el campo electrico en cada carga y cordenada, y el CE total E1(j) = k*(q1/((raiz(1)^2)^(3/2)))*rprima1(j) %campo electrico para q1 E2(j) = k*(q2/((raiz(2)^2)^(3/2)))*rprima2(j) %campo electrico para q2 ET(j) = E1(j) + E2(j) %campo electrico total end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% txt = 'Et = '; for K=1:3 % buffer = num2str(ET(K)); %buffer= guarda un dato, en este caso el valor del campo en x txt = strcat(txt,buffer); %concatenar txt= campo electrico total con buffer if K == 1 txt = strcat(txt,'x'); %sirve para imprimir la posicion (x) en el resultado else if K == 2 txt = strcat(txt,'y'); %sirve para imprimir la posicion (y) en el resultado else txt = strcat(txt,'z'); %sirve para imprimir la posicion (z) en el resultado end end if (K+1) ~= 4 if ET(K+1) >= 0 txt = strcat(txt,' + '); %sirve para poner el + en el resultado end end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% x=[posq1(1) posq2(1)];% representa la posicion de las cargas en x y=[posq1(3) posq2(3)];%representa la posicion de las cargas en z q=[q1 q2]; %declara los valores de q1 y q2 xi=linspace(-10,10,33); %-10 y 10 son los limites de graficacion, 33 es el numero de vectores yi=linspace(-10,10,33); [XI YI] = meshgrid(xi,yi); %meshgrid es para ver las lineas en la grafica zi = complex(XI,YI); %vector de numeros complejos, para mostrar el comportamiento del campo z = complex(x,y); %vector en numeros reales [ZI Z]=ndgrid(zi(:),z(:)); %ngrid es para ver como se visualiza la informacion dZ = ZI-Z; Zn = abs(dZ); %valor absoluto de dz E = (dZ./Zn.^3)*(q(:)*k); %es el campo electrico representado con las flechas E = reshape(E,size(XI)); %forma y tamano de las flechas En = abs(E); %valor absoluto del E Ex = real(E); %parte del campo en x Ey = imag(E); %parte del campo en z figure; %declara figura quiver(XI,YI,Ex./En,Ey./En); %quiver da direccion a los vectores labels = {'q1','q2'}; %etiqueta las cargas hold on; %carga la imagen plot(x,y,'or'); %despliega los vectores de las cargas en x y z title(txt); %despliega el campo total (txt). xlabel('Eje X'); %le da nombre a los ejes ylabel('Eje Z'); text(x,y,labels); %etiqueta las cargas axis equal;