Você está na página 1de 9

Campos vetoriais e integrais de linha com Matlab

Informações:
• O objetivo desse trabalho é saber o conceito de Integral de Linha, saber diferenciar o caso
escalar do caso vetorial. Também saber o conceito de Campo vetorial ( saber fazer o desenho)
, saber o conceito de campo escalar, saber o conceito do campo divergente e rotacional (
matematicamente por enquanto) e saber o conceito de campo conservativo. E saber utilizar
software para resolver problemas.
• Em ambos os exercícios devem conter as definições.
1. Escolha 4 campos vetoriais : 2 do IR2 e 2 do IR3 e desenhe seus campos de direções. O
desenho deve conter todas as informações necessárias. Dica: Você pode usar as funções quiver e
quiver3.
2. Edite a função IntLin no fim do script para que ela retorne o valor da integral de linha. Sua
função precisa saber reconhecer se a função é escalar ou vetorial. Escolha 8 exemplos de testes ( 4
de integral escalar e 4 de integral vetorial ) para testar seu código. Em ambas as situações deve
conter exemplo de IR2 e IR3 .
3 . Edite a função div no fim do script para que a função retorne o campo divergente do campo
vetorial dado. Ilustre seu exemplo com os campos do Exercício 1.
4 . Edite a função rot no fim do script para que a função retorne o campo rotacional de um
campo vetorial dado. Sua função deve saber calcular o rotacional de um campo do IR2 .
5 . Edite a função camp para que ela devolva a função potencial do campo dado caso o campo
for conservativo e retorne uma mensagem ’Esse campo não é conservativo’ caso contrário. Utilize
sua função em 2 exemplos conservativos e 2 não conservativos. Deve conter exemplos de IR2 e IR3 .

SOLUÇÃO: Para resolver o problema, foi utilizado o pacote de variáveis simbólicas, como é
sugerido no enunciado a partir dos exemplos fornecidos. Para dado campo vetorial F~ (x, y, z) e
Γ(t) = x(t),y(t),z(t), o programa interpreta o divergente do campo, o seu rotacional, caso seja
conservativo integra sua função potencial tal que:

∇f = F~
além de realizar a integral de linha:
Z Z I2
d~Γ
F~ (x, y, z) · d~Γ = F~ (x(t), y(t), z(t)) · dt
Γ I1 t
para um campo vetorial, e
Z
F (x, y, z) · Γ(t) dt
Γ
para um campo escalar
e plotar gráfico do campo vetorial com a trajetória Γ.

1
CÓDIGO: Implementação de código no MATLAB para obter solução do problema.

1 syms x y z t % definindo as váriáveis simbólicas


2

3 %% Definição do problema - Dados de entrada


4 % O campo vetorial - para um campo bidimensional, mantenha a última
5 % componente nula e as variáveis independentes de z.
6 F(x,y,z) = [x;y;z]*(-1/(x^2+y^2+z^2)^(1/2)); % Exemplo para campo vetorial
7 %F(x,y,z) = cos(x*y^2); % Exemplo para campo escalar
8 % A curva como função de t
9 gamma(t) = [cos(t) sin(t) 0]; % definindo a curva
10 % Intervalo de integração
11 I = [0 2*pi]; % definindo o intervalo
12

13 %% Chamando funções
14 % Cálculo da integral de linha
15 v = IntLin(F,gamma,I)
16 if length(F(rand(),rand(),rand())) == 3 % Funções para campos vetoriais
17 % Visualização
18 p = visualizacao(F,gamma,I)
19 % Divergente do campo
20 d(x,y,z) = div(F)
21 % Rotacional do campo
22 r(x,y,z) = rot(F)
23 % Função potencial do campo
24 c = camp(F)
25 end
26 %% Definição de funções
27 % Função para cálculo da integral de linha
28 function v = IntLin(fun,curva,intervalo)
29 syms x y z t
30 X = sum(curva.*[1 0 0]);
31 Y = sum(curva.*[0 1 0]);
32 Z = sum(curva.*[0 0 1]);
33 DcurvaDt = diff(curva,t);
34

35 if length(fun(rand(),rand(),rand())) == 3
36 integrando = DcurvaDt*fun(X,Y,Z);
37 elseif length(fun(rand(),rand(),rand())) == 1
38 drdt = sqrt(sum(DcurvaDt.^2));
39 integrando = fun(X,Y,Z)*drdt;
40 end
41 v=double(int(integrando,intervalo));
42 end
43

44 % Função para cálculo do divergente


45 function d = div(F)
46 syms x y z t
47 d = divergence(F,[x y z]);
48 end
49

50 % Função para cálculo do rotacional


51 function r = rot(F)
52 syms x y z t
53 r = curl(F,[x y z]);
54 end
55

56 % Função para cálculo da função potencial (se houver)


57 function c = camp(F)
58 syms x y z t
59 r(x,y,z) = rot(F);

2
60 aux = sqrt(sum(r.^2));
61 if (aux ~=0)
62 display("Não é possível encontrar uma função potencial para um campo não conservativo");
63 c = Inf;
64 else
65 c = potential(F, [x y z]);
66 end
67 end
68

69 function p = visualizacao(F,gamma,I)
70 syms x y z t
71 % Visualização dos Campos
72 if (sum(F.*[0;0;1])==0) && (sum(gamma.*[0 0 1])==0) && (sum(F(x,y,rand()))==sum(F(x,y,rand())))
73 % Se F(3)=gamma(3)=0 e F(x,y,z1)=F(x,y,z2) para z1 != z2
74 % então o campo é bidimensional
75 X = -1:.2:1;
76 Y = -1:.2:1;
77 U = zeros(length(X),length(X));
78 V = zeros(length(X),length(X));
79 for i = 1:length(X)
80 for j = 1:length(Y)
81 aux = double(F(X(i),Y(j),0));
82 U(i,j) = aux(1);
83 V(i,j) = aux(2);
84 end
85 end
86 [X,Y]=meshgrid(X,Y);
87 figure
88 quiver(X,Y,U,V,'blue')
89 % Linha
90 hold on;
91 xlim([X(1,1) X(end,end)])
92 ylim([Y(1,1) Y(end,end)])
93 X=0;
94 Y=0;
95 n=100;
96 dt=(I(2)-I(1))/(n-1);
97 for i = 1:n
98 t_aux = I(1)+dt*(i-1);
99 aux = gamma(t_aux);
100 X(i) = aux(1);
101 Y(i) = aux(2);
102 end
103 plot(X,Y,'red')
104 scatter(X(1),Y(1),'red','filled')
105 scatter(X(end),Y(end),'red','^','filled')
106 xlabel("x")
107 ylabel("y")
108 title("Campo Vetorial Bidimensional")
109 daspect([1 1 1])
110 pbaspect([1 1 1])
111 hold off
112 else % Gráfico do campo tridimensional
113 X = -1:.4:1;
114 Y = -1:.4:1;
115 Z = -1:.4:1;
116 U = zeros(length(X),length(Y),length(Z));
117 V = zeros(length(X),length(Y),length(Z));
118 W = zeros(length(X),length(Y),length(Z));
119 for i = 1:length(X)
120 for j = 1:length(Y)
121 for k = 1:length(Z)

3
122 aux = double(F(X(i),Y(j),Z(k)));
123 U(i,j,k) = aux(1);
124 V(i,j,k) = aux(2);
125 W(i,j,k) = aux(3);
126 end
127 end
128 end
129 [X,Y,Z]=meshgrid(X,Y,Z);
130 figure
131 quiver3(X,Y,Z,U,V,W,'blue')
132 hold on;
133 X=0;
134 Y=0;
135 Z=0;
136 n=30;
137 dt=(I(2)-I(1))/n;
138 for i = 1:n
139 t_aux = I(1)+dt*(i-1);
140 aux = gamma(t_aux);
141 X(i) = aux(1);
142 Y(i) = aux(2);
143 Z(i) = aux(2);
144 end
145 plot3(X,Y,Z)
146 xlabel("x")
147 ylabel("y")
148 ylabel("z")
149 title("Campo Vetorial Tridimensional")
150

151 daspect([1 1 1])


152 pbaspect([1 1 1])
153 hold off
154 end
155 p=true;
156 end

4
RESOLUÇÃO DAS QUESTÕES UTILIZANDO O CÓDIGO
(1) Plotar dois campos vetoriais bidimensionais e dois campos vetoriais tridimensionais.

F~ (x, y) = sin(x2 + y)î + cos(x − y 2 )ĵ

Figure 1: Campo vetorial para o primeiro exemplo

F~ (x, y) = xy î + (x + y)ĵ

Figure 2: Campo vetorial para o segundo exemplo

F~ (x, y, z) = y î + z ĵ + xk̂

5
Figure 3: Campo vetorial para o terceiro exemplo

x y z
F~ (x, y, z) = − î − 2 ĵ − 2 k̂
(x2 y22
+ +z )1/2 2 2
(x + y + z ) 1/2 (x + y + z 2 )1/2
2

Figure 4: Campo vetorial para o quarto exemplo

6
(2) Utilizando a função IntLin para calcular as integrais de linha definidas.
Em campos escalares:
Z
y 3 · dΓ tal que Γ = [t3 , t] e 0 ≤ t ≤ 2
Γ
Resultado para a integral de linha:
v = 32.3154
Z
xyz · dΓ tal que Γ = [2 sin(t), t, −2 cos(t)] e 0 ≤ t ≤ π
Γ
Resultado para a integral de linha:
v = 7.0248
Z
xyeyz · dΓ tal que Γ = [t, t2 , t3 ] e 0 ≤ t ≤ 1
Γ
Resultado para a integral de linha:
v = 1.2095
Z
(x2 + y 2 + z 2 ) · dΓ tal que Γ = [t, cos(2t), sin(2t)] e 0 ≤ t ≤ 2π
Γ
Resultado para a integral de linha:
v = 198.9353
Em campos vetoriais:

F~ (x, y, z) = xy î + 3y 2 ĵ

~Γ(t) = 11t4 î + t3 ĵ

0≤t≤1
Resultado para a integral de linha:
v = 45

F~ (x, y, z) = (x + y)î + (y − z)ĵ + z 2 k̂

~Γ(t) = t2 î + t3 ĵ + t2 k̂

0≤t≤1
Resultado para a integral de linha:
v = 1.1333

F~ (x, y, z) = sin(x)î + cos(y)ĵ + xz k̂

~Γ(t) = t3 î − t2 ĵ + tk̂

0≤t≤1

7
Resultado para a integral de linha:
v = -0.1818

F~ (x, y, z) = xî + y ĵ − xy k̂

~Γ(t) = cos(t)î + sin(t)ĵ + tk̂

0≤t≤π
Resultado para a integral de linha:
v = 0

(3) Divergente dos campos vetoriais representados no exercício (1).

F~ (x, y) = sin(x2 + y)î + cos(x − y 2 )ĵ


Resultado para o divergente:
d(x, y, z) = 2*y*sin(- y^2 + x) + 2*x*cos(x^2 + y)

F~ (x, y) = xy î + (x + y)ĵ
Resultado para o divergente:
d(x, y, z) = y + 1

F~ (x, y, z) = y î + z ĵ + xk̂
Resultado para o divergente:
d(x, y, z) = 0
x y z
F~ (x, y, z) = − î − ĵ − k̂
(x2 + y 2 + z 2 )1/2 (x2 + y 2 + z 2 )1/2 (x2 + y 2 + z 2 )1/2
Resultado para o divergente:
d(x, y, z) = x^2/(x^2 + y^2 + z^2)^(3/2) - 3/(x^2 + y^2 + z^2)^(1/2)
+ y^2/(x^2 + y^2 + z^2)^(3/2) + z^2/(x^2 + y^2 + z^2)^(3/2)

(4) Exercício apenas pede edição da função rot que está explicitada no código. Essa função é
utilizada no próximo exercício.

(5) Determinar a função potencial de dois campos conservativos e aferir que outros dois são
não-conservativos.
Campos conservativos:

F~ (x, y, z) = xî + y ĵ + z k̂
Resultado para a função potencial do campo:
c(x, y, z) = x^2/2 + y^2/2 + z^2/2

F~ (x, y) = 2xy 3 î + (1 + 3x2 y 2 )ĵ


Resultado para a função potencial do campo:
c(x, y, z) =x^2*y^3 + y

8
Campos não-conservativos:

F~ (x, y) = sin(xy)î + cos(x + y)ĵ


Resultado para o rotacional:
r(x, y, z) =[0;0; - sin(x + y) - x*cos(x*y)]

F~ (x, y, z) = xy î + xz ĵ + yz k̂
Resultado para o rotacional:
r(x, y, z) =[z-x;0;z-x]

Você também pode gostar