Está en la página 1de 15

Libro: Elementos de electromagnetismos tercera edicin de Matthew Sadiku

EJERCICIO 2.10, CAPTULO 3


Transformacin de coordenadas cilndricas a esfricas
2 2 2
Exprese el campo vectorial H=xy ax + x yz ay + xyz az en coordenadas
cilndricas y esfricas

Script:
clc
clear all
close all
plot3(0,0,0);
hold on
%---------------------------------------------------------------------
-----
%declaro las variables simblicas
syms x y z theta phi r rho
%---------------------------------------------------------------------
-----
%la ecuacin del campo vectorial en coordenadas rectangulares
%fprintf es para mandar a imprimir el mensaje de abajo y la ecuacin
fprintf('La funcin del campo H en coordenadas rectangulares\n')
H=[x*y^2*z, x^2*y*z, x*y*z^2]
%---------------------------------------------------------------------
-----
%pasar las variables a coordenadas cilndricas
%---------------------------------------------------------------------
-----
%en la variable c1 se sustituye con el comando subs la matriz h que se
%encuentra mas arriba
c1=subs(H(1),x,rho*cos(phi));
%hacemos lo mismo pero esta vez con la variable c1 la sustituimos con
subs
%ismo
c1=subs(c1,y,rho*sin(phi));
% hacemos lo mismo para las variables c2 y c3
c2=subs(H(2),x,rho*cos(phi));
c2=subs(c2,y,rho*sin(phi));
c3=subs(H(3),x,rho*cos(phi));
c3=subs(c3,y,rho*sin(phi));
% mandamos todas las variables encontradas a una sola matriz llamada
Hrc
Hrc=[c1;c2;c3]
%matriz de rectangulares a cilndricas
%armamos la matriz de transformacin
rec_to_cl=[cos(phi), sin(phi), 0;...
-sin(phi), cos(phi), 0;...
0, 0, 1]
%
%campo vectorial en cilndricas
fprintf('La funcion del campo H en coordenadas cilndricas\n')
% hacemos el producto entre las dos matrices creadas obteniendo as el
% resultado
Hc=simplify(rec_to_cl*Hrc)
%
%pasar las variables a coordenadas esf?ricas
%
e1=subs(H(1),x,r*sin(theta)*cos(phi));
e1=subs(e1,y,r*sin(theta)*sin(phi));
e1=subs(e1,z,r*cos(theta));

e2=subs(H(2),x,r*sin(theta)*cos(phi));
e2=subs(e2,y,r*sin(theta)*sin(phi));
e2=subs(e2,z,r*cos(theta));

e3=subs(H(3),x,r*sin(theta)*cos(phi));
e3=subs(e3,y,r*sin(theta)*sin(phi));
e3=subs(e3,z,r*cos(theta));

Hre=[e1;e2;e3]
%
%matriz de rectangulares a esfericas
rec_to_esf=[sin(theta)*cos(phi), sin(theta)*sin(phi), cos(theta);...
cos(theta)*cos(phi), cos(theta)*sin(phi),
-sin(theta);...
-sin(phi), cos(phi), 0];

%campo vectorial a esf?ricas


fprintf('La funcion del campo H en coordenadas esfericas\n')
He=simplify(rec_to_esf*Hre)

% para graficar
x1=linspace(-2,2,20);
y1=linspace(-2,2,20);
z1=linspace(-2,2,20);
fx=x1.*(y1.^2).*z1;
fy=(x1.^2).*y1.*z1;
fz=x1.*y1.*(z1.^2);
quiver3(x1,y1,z1,fx,fy,fz,4);
%
title('CAMPO VECTORIAL','fontsize',16,'FontWeight','bold')
xlabel('x','fontsize',16,'FontWeight','bold')
ylabel('y','fontsize',16,'FontWeight','bold')
zlabel('z','fontsize',16,'FontWeight','bold')
grid on

Resultados (COMMANT WINDOW)


La funcin del campo H en coordenadas rectangulares

H=
[ x*y^2*z, x^2*y*z, x*y*z^2]

Hrc =
rho^3*z*cos(phi)*sin(phi)^2
rho^3*z*cos(phi)^2*sin(phi)
rho^2*z^2*cos(phi)*sin(phi)
rec_to_cl =

[ cos(phi), sin(phi), 0]
[ -sin(phi), cos(phi), 0]
[ 0, 0, 1]

La funcin del campo H en coordenadas cilndricas

Hc =
-2*rho^3*z*(cos(4*phi)/8 - 1/8)
(rho^3*z*sin(4*phi))/4
(rho^2*z^2*sin(2*phi))/2

Hre =
r^4*cos(phi)*cos(theta)*sin(phi)^2*sin(theta)^3
r^4*cos(phi)^2*cos(theta)*sin(phi)*sin(theta)^3
r^4*cos(phi)*cos(theta)^2*sin(phi)*sin(theta)^2

La funcion del campo H en coordenadas esfericas

He =
r^4*cos(phi)*cos(theta)*sin(phi)*sin(theta)^2*(cos(theta)^2 +
2*cos(phi)*sin(phi)*sin(theta)^2)

r^4*cos(phi)*cos(theta)^2*sin(phi)*sin(theta)^3*(2*cos(phi)*sin(phi) 1
r^4*cos(phi)*cos(theta)*sin(phi)*sin(theta)^3*(2*cos(phi)^2 - 1)

FIGURA 1 Campo vectorial del vector H


CAMPO VECTORIAL

2
z

-2
6
4 6
2 4
2
0 0
-2 -2
y x

EJERCICIO 3.32, CAPITULO 3


Libro: Elementos de electromagnetismos tercera edicin de Matthew Sadiku

Script:
%ejercicio 3.32 a)
clc
clear all
close all
plot3(0,0,0);
hold on
%declaro las variables a utilizar
syms x y z theta phi r rho dphi drho dz
%la ecuacion del campo vectorial en coordenadas rectangulares
fprintf('La funcion del campo D en coordenadas cilindricas\n')
D=[2*rho*z^2,0,rho*(cos(phi))^2]
%
%diferencial de superficie es
ds=[rho*dphi*dz,drho*dz,rho*drho*dphi];
%---------------------------------------------------------------------
-----
%para la superficie 1 (plano)

%mediante lo aprendido en clase armamos nuestra matriz ds con los


datos del
%formulario pero como el producto ente el Ds y ds me va a dar 0 ente
las
%dos primeras componentes nos va a quedar solo la componente yz como a
%continuacin se muestra

Ds=[0,0,1];
fprintf('el diferencial de superficie\n')
ds_D=[ds(1)*Ds(1),ds(2)*Ds(2),ds(3)*Ds(3)]

if Ds(3)==1
f1=int(int(dot(D,ds_D),rho,0,5),phi,0,2*pi);
f1=subs(f1,drho,1);
f1=subs(f1,dphi,1);
fprintf('flujo en la cara S1 superior\n')
f1=subs(f1,dz,1)
end
%---------------------------------------------------------------------
-----
%para la superficie 2 (plano)

% la cara dos al tratarse del mismo concepto de la primera se procede


a
% realizarse como en el punto a
Ds=[0,0,-1];
ds_D=[ds(1)*Ds(1),ds(2)*Ds(2),ds(3)*Ds(3)]
if abs(Ds(3))==1
f2=int(int(dot(D,ds_D),rho,0,5),phi,0,2*pi);
f2=subs(f2,drho,1);
f2=subs(f2,dphi,1);
fprintf('flujo en la cara S2 inferior\n')
f2=subs(f2,dz,1)
end
%---------------------------------------------------------------------
-----
% para la superficie 3 (cilindro)

% al igual que a las 2 primeras superficies el producto punto entre


las dos
% ultimas componentes va a ser cero quedandome solo la componente
radial
% como se muestra a continuacion
Ds=[1,0,0];
ds_D=[ds(1)*Ds(1),ds(2)*Ds(2),ds(3)*Ds(3)]
if abs(Ds(1))==1
f3=int(int(dot(D,ds_D),phi,0,2*pi),z,-1,1);
f3=subs(f3,drho,1);
f3=subs(f3,dphi,1);
f3=subs(f3,dz,1);
fprintf('flujo en la cara lateral S3\n')
f3=subs(f3,rho,5)
end
%---------------------------------------------------------------------
-----
%el flujo total
fprintf('flujo total\n')
ft=f1+f2+f3
%---------------------------------------------------------------------
-----
%graficas
plot3(0,0,0);
hold on
%grafica en el cilindro
phio=linspace(0,2*pi,30);
zzo=linspace(-1,1,30);
[to,po]=meshgrid(phio,zzo);
xo=5*cos(to);
yo=5*sin(to);
zo=po;
surf(xo,yo,zo,'EdgeColor','none');
alpha 0.24
mesh(xo,yo,zo);
%lineas vectoriales
g1=2*xo.*zo.^2;
g2=0*yo;
g3=xo.*(cos(yo)).^2;
quiver3(xo,yo,zo,g1,g2,g3,4);
%
%grafica en la parte superior
phio=linspace(0,2*pi,30);
rro=linspace(0,5,30);
[to,po]=meshgrid(phio,rro);
xo=po.*cos(to);
yo=po.*sin(to);
zo=1+xo*0;
surf(xo,yo,zo,'EdgeColor','none');
alpha 0.24;
mesh(xo,yo,zo);
%
%lineas vectoriales
g1=2*xo.*zo.^2;
g2=0*yo;
g3=xo.*(cos(yo)).^2;
quiver3(xo,yo,zo,g1,g2,g3,4);
%grafica en la parte inferior
phio=linspace(0,2*pi,30);
rro=linspace(0,5,30);
[to,po]=meshgrid(phio,rro);
xo=po.*cos(to);
yo=po.*sin(to);
zo=-1+xo*0;
surf(xo,yo,zo,'EdgeColor','none');
alpha 0.24;
mesh(xo,yo,zo);
%
%lineas vectoriales
g1=2*xo.*zo.^2;
g2=0*yo;
g3=xo.*(cos(yo)).^2;
quiver3(xo,yo,zo,g1,g2,g3,4);

%
grid on
title('CAMPO VECTORIAL A TRAVES DEL
CILINDRO','fontsize',16,'FontWeight','bold')
xlabel('x','fontsize',16,'FontWeight','bold')
ylabel('y','fontsize',16,'FontWeight','bold')
zlabel('z','fontsize',16,'FontWeight','bold')
view([-89,16]);

Resultados (COMMANT WINDOW)


La funcin del campo D en coordenadas cilndricas
D=

[ 2*rho*z^2, 0, rho*cos(phi)^2]

el diferencial de superficie

ds_D =

[ 0, 0, dphi*drho*rho]

flujo en la cara S1 superior

f1 =

(125*pi)/3

ds_D =

[ 0, 0, -dphi*drho*rho]

flujo en la cara S2 inferior

f2 =

-(125*pi)/3

ds_D =

[ dphi*dz*rho, 0, 0]
flujo en la cara lateral S3

f3 =

(200*pi)/3

flujo total

ft =

(200*pi)/3

FIGURA 2 FLUJO EN EL CILINDRO

CAMPO VECTORIAL A TRAVES DEL CILINDRO

0
z

-1
10
5
-2 0
6 4 2 -5
0 -2 -4 -6 -10
x
y

EJERCICIO 3.39, CAPTULO 3


Teorema de Stokes

Halle el flujo del rotacional del campo


1
F = 2 cos a R + R sin cos a +cos a a travs del hemisferio
R
R=4, z 0 .


F
1. Seleccionar el sistema esfrico para hallar el rotacional de

%% PASO 1
%R=x teta=y fi=z identificacion de variables
syms x y z dx dy dz %se delaran las variables a ocupar

disp('Funcion del campo a traves del hemisferio R=4 z<=0')


F = [(1/x^2)*cos(y),x*sin(y)*cos(z),cos(y)] %Funcion declarada como
vector
disp('Flujo del rotacional del campo en vector')
R = curl(F) %Sacar el flujo rotacional de un vector
disp('Flujo rotacional de campo en sus componentes')
disp('R=x teta=y fi=z')
G = R(1)*dx + R(2)*dy + R(3)*dz %Flujo rotacional compuesto en funcion

Command Window._

Funcion del campo a traves del hemisferio R=4 z<=0

F=

[ cos(y)/x^2, x*cos(z)*sin(y), cos(y)]

Flujo del rotacional del campo en vector

R=

x*sin(y)*sin(z) - sin(y)

sin(y)/x^2 + cos(z)*sin(y)

Flujo rotacional de campo en sus componentes

R=x teta=y fi=z

G=

dz*(sin(y)/x^2 + cos(z)*sin(y)) - dx*(sin(y) - x*sin(y)*sin(z))


2. Describir la superficie y hallar el diferencial respectivo
%% PASO 2

%Funcion diferencial en la direccion radial


ds = (x^2)*sin(y);

%Datos de la superficie
angulo = linspace(0,2*pi,50); %Angulo fi
phi = linspace(0,pi/2,50); %Angulo teta
ra = 4; %Radio
%linespace indica los limites y la cantidad de muestras que se van a
tomar
%entre las lineas

%Construccin de malla
[phi,angulo] = meshgrid(phi,angulo);
ra = meshgrid(ra);

%meshgrid te ayuda a contruir la malla solo ayuda a sacar datos

figure(1) %Grafica 1
%La conversin se realiza despus de construir la malla
[X,Y,Z] = sph2cart(angulo,phi,ra);
mesh(X,Y,Z) %Grafica construida
title('Coordenas Esfericas')

R=4


0
2

0 2

Se escoge el diferencial en direccin radial ya que el hemisferio nicamente varia en esa


direccin.


dS=R2 sin dd

3. Selecciono solo la direccin radial del


F

%% LITERAL 3
%Solo se ocupa la componente radial
disp('Componente radial del flujo rotacional')
Gx = R(1)*dx

Command Window._

Componente radial del flujo rotacional

Gx =

-dx*(sin(y) - x*sin(y)*sin(z))


F
4. Se plantea la integral de flujo de rotacional del a travs de la superficie descrita en el
paso 2.
%% LITERAL 4
%Funcion flujo de rotacion sin integrar
disp('Funcion a evaluar el flujo en la superficie')
SFR = R(1)*ds

%Valor del flujo de rotacion


FR=int(int(SFR,y,0,pi/2),z,0,2.*pi);
disp('Flujo de rotacion evaluado en los limites')
disp(' 0<fi<2*pi :::: 0<teta<pi/2')
pretty(FR)

Command Window._

Funcion a evaluar el flujo en la superficie

SFR =

-x^2*sin(y)*(sin(y) - x*sin(y)*sin(z))

Flujo de rotacion evaluado en los limites

0<fi<2*pi :::: 0<teta<pi/2

2 2

pi x

- ------

EJERCICIO 3.37, CAPTULO 3

Teorema de Green y Teorema Fundamental de Integrales de Lnea

Sea F = sen a + 2 a . Evalue


F
dl cuando:
a) L es contorno de la figura
Aplicamos Teorema de Green

dM dN
1. Analizar si F es conservativo =
dy dx
Para realizar el respectivo anlisis se necesita que transformar en campo
vectorial al sistema rectangular.

[] [ ] []
ax cos sen 0 a
ay = sen cos 0 . a
az 0 0 1 az

fprintf('La funcion del campo F en coordenadas cilindricas\n')


F=[rho*sin(phi),rho^2,0]
cil_to_rec=[cos(phi), -sin(phi) 0;...
sin(phi), cos(phi) 0;...
0,0,1];
Fr=cil_to_rec*F';
F1=subs(Fr(1),rho,sqrt(x^2+y^2));
F1=subs(F1,phi,atan(y/x));
F2=subs(Fr(2),rho,sqrt(x^2+y^2));
F2=subs(F2,phi,atan(y/x));
F3=subs(Fr(3),rho,sqrt(x^2+y^2));
F3=subs(F3,phi,atan(y/x));
fprintf('La funcion del campo F en coordenadas rectangulares\n')
Fr=[F1,F2,F3];
Fr1=Fr;
Fr=simplify(Fr)

Command Window._

La funcion del campo F en coordenadas cilindricas

F=

[ rho*sin(phi), rho^2, 0]

La funcion del campo F en coordenadas rectangulares

Fr =
[ -(y*conj((x^2 + y^2)^(1/2))^2 - x*conj((x^2 + y^2)^(1/2))*sin(conj(atan(y/x))))/(x*(y^2/x^2 +
1)^(1/2)), (x*conj((x^2 + y^2)^(1/2))^2 + y*conj((x^2 + y^2)^(1/2))*sin(conj(atan(y/x))))/
(x*(y^2/x^2 + 1)^(1/2)), 0]

Nota: No se resolver el ejercicio a travs del teorema de Green ya que al


realizar la transformacin a sistema rectangular el resultado es muy extenso.

Teorema Fundamental de Integrales de lnea


1. Analizar el sistema en el que se va a trabajar (sistema cilndrico)

2. Describir curvas en sistema cilndrico y diferenciales de lnea

c 1 0 2=0 dl=d a

c 2 0 =2 dl=d a
2

c 3 0 2 = dl=d a
2


F
3. Transformar de acuerdo a cada curva descrita en el paso 2 y plantear las
integrales de lnea para cada una.
%INTEGRALES DE LINEA
%diferencial de linea
dl=[drho,rho*dphi,dz];
%parte c1
dl1=[1,0,0];
fprintf('diferencial de linea para C1\n')
dl_1=[dl(1)*dl1(1),dl(2)*dl1(2),dl(3)*dl1(3)]
%
F1=dot(F,dl_1);
f1=int(F1,rho,0,2);
f1=subs(f1,drho,1);
f1=subs(f1,phi,0);
f1=vpa(f1,4)
%
%parte c2
dl2=[0,1,0];
fprintf('diferencial de linea para C2\n')
dl_2=[dl(1)*dl2(1),dl(2)*dl2(2),dl(3)*dl2(3)]
%
F2=dot(F,dl_2);
f2=int(F2,phi,0,pi/2);
f2=subs(f2,rho,2);
f2=subs(f2,dphi,1);
f2=vpa(f2,4)
%parte c3
dl3=[1,0,0];
fprintf('diferencial de linea para C3\n')
dl_3=[dl(1)*dl3(1),dl(2)*dl3(2),dl(3)*dl3(3)]
%
F3=dot(F,dl_3);
f3=int(F3,rho,2,0);
f3=subs(f3,phi,pi/2);
f3=subs(f3,drho,1);
f3=vpa(f3,4)

Command Window._

diferencial de linea para C1


dl_1 =
[ drho, 0, 0]
f1 =
0.0
diferencial de linea para C2
dl_2 =
[ 0, dphi*rho, 0]
f2 =
12.57
diferencial de linea para C3
dl_3 =
[ drho, 0, 0]
f3 =
-2.0

4. Sumatoria de las curvas para encontrar el F


dl

F
dl =c 1+ c 2+c 3

%integral de linea c1+c2+c3


fprintf('diferencial de linea \n')
linea=f1+f2+f3

Command Window._

diferencial de linea
linea =
10.566370614367770031094551086426

También podría gustarte