Você está na página 1de 17

CC2014_CurvasCPolaresEx24.

wxmx 1 / 17

1 CC 2014 - Curvas planas em coordenadas polares


Exercício 24

Vamos começar por iniciar a package draw

(%i1) load(draw);
set_draw_defaults(
dimensions =[400,400],
proportional_axes = xy,
user_preamble="set grid polar",
nticks=500,
axis_top=false,axis_bottom=false,
axis_left=false, axis_right=false,
grid =true,
xaxis = true,
xaxis_type = solid,
xaxis_width = 1,
xaxis_color = black,
xtics_axis = true,
yaxis = true,
yaxis_width = 1,
yaxis_type = solid,
yaxis_color = black,
ytics_axis = true,
line_width = 2
)$
;; loading #P"/Users/zeliarocha/.maxima/binary/binary-sbcl/share/draw/grcommon.fasl"
;; loading #P"/Users/zeliarocha/.maxima/binary/binary-sbcl/share/draw/gnuplot.fasl"
;; loading #P"/Users/zeliarocha/.maxima/binary/binary-sbcl/share/draw/vtk.fasl"
;; loading #P"/Users/zeliarocha/.maxima/binary/binary-sbcl/share/draw/picture.fasl"
(%o1) /Applications/Maxima.app/Contents/Resources/maxima/share/maxima/5.30.0/share/draw/draw.lisp

1.1 Definicção da curva

Definição da trajetória em coordenadas polares.

(%i3) rho_24(t):=sin(t)^2;
2
(%o3) rho_24 t := sin t

Calculo dos pontos inicial, intermédio e final.

(%i4) rho_24(-%pi);rho_24(0);rho_24(%pi);
(%o4) 0
(%o5) 0
(%o6) 0

Passagem ás coordenadas cartesianas.

(%i7) C_24(t):=[rho_24(t)*cos(t),rho_24(t)*sin(t)];
(%o7) C_24 t := [ rho_24 t cos t , rho_24 t sin t ]

Calculo dos pontos inicial, intermédio e final.

(%i8) C_24(-%pi);C_24(0);C_24(%pi);
(%o8) [ 0 , 0 ]
(%o9) [ 0 , 0 ]
(%o10) [ 0 , 0 ]

1.2 a) Representação do traço da curva em coordenadas polares

Representação do traço da trajetória usando a package draw com o comando polar.


CC2014_CurvasCPolaresEx24.wxmx 2 / 17

(%i11) wxdraw2d(
xrange=[-1,1], yrange=[-1,1],
polar(rho_24(t),t,-%pi,%pi));

(%t11)

(%o11)

Representação da trajetória usando a package draw com o comando parametric.

(%i12) wxdraw2d(
xrange=[-1,1], yrange=[-1,1],
parametric(C_24(t)[1],C_24(t)[2],t,-%pi,%pi));

(%t12)

(%o12)

Representação da trajetória usando o wxplot2d com a opção "set polar".


CC2014_CurvasCPolaresEx24.wxmx 3 / 17

(%i13) wxplot2d(rho_24(t),[t,-%pi,%pi],[x,-1,1],[y,-1,1],
[gnuplot_preamble, "set size ratio 1; set zeroaxis;"],
[gnuplot_preamble, "set grid polar;"],[gnuplot_preamble, "set polar; set zeroaxis"]);

(%t13)

(%o13)

Representação da trajetória usando o plot2d com a opção parametric.

(%i14) wxplot2d([parametric, C_24(t)[1],C_24(t)[2],[t,-%pi,%pi],[nticks,300]],[x,-1,1],[y,-1,1],


[gnuplot_preamble, "set size ratio 1; set zeroaxis;"],
[gnuplot_preamble, "set grid polar;"]);

(%t14)

(%o14)

1.3 b)
- Determine o modo como a curva é percorrida.
- Esta curva apresenta dois laços. Pretendemos calcular
o comprimento e a área por eles definida.

Representação de rho(t), para t em [-%pi.%pi].


CC2014_CurvasCPolaresEx24.wxmx 4 / 17

(%i15) wxplot2d([rho_24(t)],[t,-%pi,%pi],
[y,-2,2]);

(%t15)

(%o15)

O laço de baixo é percorrido para t em [-‰pi,0] e o de cima para t em [0,%pi].


A curva passa na origem (0,0) para t = -‰pi, 0, %pi.
A função rho(t) é simétrica.

(%i16) C_24(-%pi);C_24(0);C_24(%pi);
(%o16) [ 0 , 0 ]
(%o17) [ 0 , 0 ]
(%o18) [ 0 , 0 ]

Observemos a variação das componentes cartesianas da curva. Tal permite compreender


em que sentido a curva é percorrida.

(%i19) wxplot2d([C_24(t)[1],C_24(t)[2]],[t,-%pi,%pi],
[y,-2,2],[legend,"X","Y"]);

(%t19)

(%o19)

A curva começa na origem, continua para a esquerda e para baixo, para X e Y negativos, ou seja,
começa a percorrer o laço de baixo em sentido anti-horário,
atinge o ponto de intersecção com o eixo dos yy (onde X=0), continua até voltar à origem. Depois começa a percorrer o
laço de cima pela direita (com X e Y positivos) no sentido anti-horário até intersptar o eixo dos yy (onde X=0) e continua
para valores de X negativos até regressar à origem.

Animação da curva para confirmar de que modo é percorrida e em que sentido.


CC2014_CurvasCPolaresEx24.wxmx 5 / 17

(%i20) tmin:-%pi$ tmax:%pi$ numt:20$


lista_tempos:makelist(tmin+k*(tmax-tmin)/numt, k, 0, numt)$
with_slider_draw(
u, lista_tempos,
xrange = [-1,1], yrange = [-1,1],
polar(rho_24(t), t , tmin, tmax),
point_size = 2, point_type=filled_circle, color=red,
points([C_24(u)])
);

(%t24)

(%o24)

(%i25) C_24(t);
2 3
(%o25) [ cos t sin t , sin t ]

Calculemos o vetor velocidade V_24(t), a rapidez V_esc_24(t),


os vetores unitários tangente e normal e a curvatura.
CC2014_CurvasCPolaresEx24.wxmx 6 / 17

(%i26) vetor_unit(u):=(1/(sqrt(u.u)))*u;
define(V_24(t),diff(C_24(t), t));
define(v_esc_24(t), trigsimp(sqrt(V_24(t).V_24(t))));
define(T_24(t),trigsimp(vetor_unit(V_24(t))));
define(dT_24(t), trigsimp(diff(T_24(t), t)));
define(N_24(t),trigsimp(vetor_unit(dT_24(t))));
define(k_24(t),trigsimp((1/(v_esc_24(t)))*(sqrt(dT_24(t).dT_24(t)))));
1
(%o26) vetor_unit u := u
u . u
2 3 2
(%o27) V_24 t := [ 2 cos t sin t − sin t , 3 cos t sin t ]
2 4
(%o28) v_esc_24 t := 4 sin t − 3 sin t
2 2
3 cos t − 1 sin t 3 cos t sin t
(%o29) T_24 t := [ , ]
2 4 2 4
4 sin t − 3 sin t 4 sin t − 3 sin t
5 4 2
9 cos t − 9 cos t 9 cos t + 6 cos t − 3 sin t
(%o30) dT_24 t := [ − ,− ]
2 2 4 2 2 4
3 sin t −4 4 sin t − 3 sin t 3 sin t −4 4 sin t − 3 sin t
5 4 2
9 cos t − 9 cos t 9 sin t − 24 sin t + 16
(%o31) N_24 t := [ − ,−
2 2 4 4 2
3 sin t −4 4 sin t − 3 sin t 9 sin t − 36 sin t + 36
4 2 5 3
9 sin t − 24 sin t + 16 9 sin t − 24 sin t + 12 sin t
]
2 2 4 4 2
3 sin t −4 4 sin t − 3 sin t 9 sin t − 36 sin t + 36
4 2
9 cos t + 18 cos t +9
(%o32) k_24 t :=
4 2 2 4
9 cos t + 6 cos t +1 4 sin t − 3 sin t

Façamos a representação da velocidade escalar.

(%i33) wxplot2d(v_esc_24(t),[t,-%pi,%pi],
[y,0,2],[legend,"rapidez"]);

(%t33)

(%o33)

A rapidez anula-se para t=-%pi, 0, e %pi.


Logo estes pontos são singulares, os vetores velocidade são nulos, e nesses pontos não definem
a direcção das respectivas tangentes (embora as tangentes posssam existir).

(%i34) v_esc_24(-%pi);v_esc_24(0);v_esc_24(%pi);
(%o34) 0
(%o35) 0
(%o36) 0
CC2014_CurvasCPolaresEx24.wxmx 7 / 17

(%i37) V_24(-%pi);V_24(0);V_24(%pi);
(%o37) [ 0 , 0 ]
(%o38) [ 0 , 0 ]
(%o39) [ 0 , 0 ]

A rapidez é simétrica em relação ao eixo vertical, logo os dois laços


sáo percorridos com a mesma velocidade escalar, na mesma amplitude de intervalos de tempo.
Os comprimentos dos dois laços são iguais.

`s(t1)´ - comprimento da traço da curva entre t0 e t1 é dado pelo integral da velocidade escalar entre t0 e t1

(%i40) define(s(t0,t1), integrate(v_esc_24(t),t,t0,t1));


Is sin t positive or negative? positive;
t1
2 4
(%o40) s t0 , t1 := 4 sin t − 3 sin t dt
t0

O comando integrate não dá resposta.


Para se obter valores aproximados de integrais, pode-se usar o comando romberg:

Calculo do comprimento do laço de baixo.

(%i41) romberg(v_esc_24(t), t, -%pi, 0);


(%o41) 2.760347711823759

Calculo do comprimento do laço de cima.

(%i42) romberg(v_esc_24(t), t, 0, %pi);


(%o42) 2.760347711823759

Como vemos os laços têm o mesmo comprimento.

O comprimento do arco de uma curva em coordenadas polares pode ser calculado a partir da coordenada rho(t)

através do integral entre t0 e t1 de sqrt(rho'(t)^2+rho(t)^2).

(%i43) define(d_rho_24(t),diff(rho_24(t),t));
(%o43) d_rho_24 t := 2 cos t sin t

(%i44) S_CoorPol(t):=sqrt(d_rho_24(t)^2+rho_24(t)^2);
2 2
(%o44) S_CoorPol t := d_rho_24 t + rho_24 t

(%i45) define(s_24(t0,t1),integrate(S_CoorPol(t),t,t0,t1));
Is sin t positive or negative? positive;
t1
4 2 2
(%o45) s_24 t0 , t1 := sin t + 4 cos t sin t dt
t0

(%i46) float(s_24(-%pi,0));
0.0
4 2 2
(%o46) sin t + 4.0 cos t sin t dt
− 3.141592653589793

O comando integrate não permite calcular o valor. Tentemos o comando romberg.

(%i47) romberg(S_CoorPol(t),t,-%pi,0);
(%o47) 2.760347711823758

(%i48) romberg(S_CoorPol(t),t,0,%pi);
(%o48) 2.760347711823759
CC2014_CurvasCPolaresEx24.wxmx 8 / 17

Calculemos agora a área definida pelos laços.

Area da região do plano "varrida" pelos segmentos de reta que unem o gráfico polar à origem ou seja a
area do setor angular definido pela trajetória em coordenadas polares [rho(t),t] entre os instantes
t0 e t1 é dada pelo integral entre t0 e t1 de 1/2*(rho(t))^2

(%i49) define(a_24(t0,t1), trigsimp(integrate(1/2*rho_24(t)^2, t,t0,t1)));


sin 4 t1 − 8 sin 2 t1 + 12 t1 − sin 4 t0 + 8 sin 2 t0 − 12 t0
(%o49) a_24 t0 , t1 :=
64

(%i50) a_24(-%pi,0);a_24(0,%pi);

(%o50)
16

(%o51)
16

(%i52) float(a_24(-%pi,0));float(a_24(0,%pi));
(%o52) .5890486225480862
(%o53) .5890486225480862

Como vemos os laços definem a mesma área.

1.4 c) Determine um valor de t0 tal que


o comprimento da trajetória entre 0 e t0 seja 1/2 do comprimento do laço.

Façamos outra vez a representação da velocidade escalar.

(%i54) wxplot2d(v_esc_24(t),[t,-%pi,%pi],
[y,0,2],[legend,"rapidez"]);

(%t54)

(%o54)

Verificamos que t0 corresponde ao ponto de mínimo que existe entre 1 e 2 (suspeitamos que se trata de %pi/2).

Determinemos a derivada da rapidez e os seus zeros.

(%i55) define(d_v_esc_24(t),diff(v_esc_24(t),t));
3
8 cos t sin t − 12 cos t sin t
(%o55) d_v_esc_24 t :=
2 4
2 4 sin t − 3 sin t
CC2014_CurvasCPolaresEx24.wxmx 9 / 17

(%i56) solve(d_v_esc_24(t)=0,t);
solve: using arc-trig functions to get a solution.
Some solutions will be lost.
2 2 π
(%o56) [ t = − asin , t = asin ,t=0,t= ]
3 3 2

(%i57) romberg(v_esc_24(t),0,%pi/2);romberg(v_esc_24(t),%pi/2,%pi);
(%o57) 1.380173694385117
(%o58) 1.380173694385117

Resposta t0=%pi/2

Outras verificações

(%i59) romberg(v_esc_24(t),-%pi,-%pi/2);romberg(v_esc_24(t),-%pi/2,0);
(%o59) 1.380173694385117
(%o60) 1.380173694385117

1.5 d) Determine t1 tal que a área do setor angular entre 0 e t1


seja 1/3 da area do laço.

(%i61) define(a_24(t0,t1), ratsimp(integrate(1/2*rho_24(t)^2, t,t0,t1)));


sin 4 t1 − 8 sin 2 t1 + 12 t1 − sin 4 t0 + 8 sin 2 t0 − 12 t0
(%o61) a_24 t0 , t1 :=
64

(%i62) wxplot2d(1/2*rho_24(t)^2,[t,-%pi,%pi]);

(%t62)

(%o62)

O gráfico anterior não permite dar resposta.

O valor que procuramos é a raiz t da equação a_24(0,t)=a_24(0,%pi)/3, ou seja, o zero da função


f(t)=a_24(0,t)-a_24(0,%pi)/3 .
CC2014_CurvasCPolaresEx24.wxmx 10 / 17

(%i63) wxplot2d(a_24(0,t)-a_24(0,%pi)/3,[t,-%pi,%pi]);

(%t63)

(%o63)

Vemos que tal valor t1 está entre 1 e 2.

(%i64) solve(a_24(0,t)-a_24(0,%pi)/3=0,t);
sin 4 t − 8 sin 2 t − 4 π
(%o64) [ t = − ]
12

O comando solve não dá resposta. Tentemos comandos de resolução numérica

(%i65) t1:find_root(a_24(0,t)-a_24(0,%pi)/3,t,1,2);
(%o65) 1.369085246111657

O método de Newton permite resolver numéricamente equações.

(%i66) load(newton1);
(%o66) /Applications/Maxima.app/Contents/Resources/maxima/share/maxima/5.30.0/share/numeric/newton1.mac

(%i67) t1_0:float(newton(a_24(0,t)-a_24(0,%pi)/3,t,1,10^(-8)));
(%o67) 1.369085246150904

(%i68) t1_1:float(newton(a_24(0,t)-a_24(0,%pi)/3,t,2,10^(-8)));
(%o68) 1.36908524611166

(%i69) float(a_24(0,t1_0)-a_24(0,%pi)/3);
−11
(%o69) 1.807975991141575 10

(%i70) float(a_24(0,t1_1)-a_24(0,%pi)/3);
−15
(%o70) 1.443289932012704 10

Resposta t1=1.36908524611166
CC2014_CurvasCPolaresEx24.wxmx 11 / 17

(%i71) wxdraw2d(
xrange=[-1,1], yrange=[-1,1],
color=red,
polar(rho_24(t),t,0,t1),
point_size = 2, point_type=filled_circle, color=red,
points([[0,0], C_24(t1)]),
polygon([[0,0], C_24(t1)]),
color=green,
polar(rho_24(t),t,t1,%pi));

(%t71)

(%o71)

A área do setor angular delimitado a vermelho é um terço da área total do laço.

1.6 e) Represente no mesmo gráfico os traços de C_24(t), N.C_24(t) e M.C_24(t).

(%i72) N:matrix([-1,0],[0,-1]);M:matrix([1,0],[0,-1]);

−1 0
(%o72)
0 −1

1 0
(%o73)
0 −1

(%i74) N_24:N.C_24(t);
NC_24(t):=[N_24[1,1],N_24[2,1]];
NC_24(t);
2
− cos t sin t
(%o74)
3
− sin t

(%o75) NC_24 t := [ N_241 , 1 , N_242 , 1 ]


2 3
(%o76) [ − cos t sin t , − sin t ]

(%i77) M_24:M.C_24(t);
MC_24(t):=[M_24[1,1],M_24[2,1]]$
MC_24(t);
2
cos t sin t
(%o77)
3
− sin t

2 3
(%o79) [ cos t sin t , − sin t ]
CC2014_CurvasCPolaresEx24.wxmx 12 / 17

(%i80) wxdraw2d(
/*xrange=[-1,1], yrange=[-1,1], */
color=green,
parametric(NC_24(t)[1],NC_24(t)[2],t,-%pi,%pi)
);

(%t80)

(%o80)

(%i81) wxdraw2d(
/*xrange=[-1,1], yrange=[-1,1], */
color=red,
parametric(MC_24(t)[1],MC_24(t)[2],t,-%pi,%pi)
);

(%t81)

(%o81)
CC2014_CurvasCPolaresEx24.wxmx 13 / 17

(%i82) wxdraw2d(
/*xrange=[-1,1], yrange=[-1,1], */
color=green,
parametric(NC_24(t)[1],NC_24(t)[2],t,-%pi,%pi),
color=red,
parametric(MC_24(t)[1],MC_24(t)[2],t,-%pi,%pi),
color=blue,
parametric(C_24(t)[1],C_24(t)[2],t,-%pi,%pi)
);

(%t82)

(%o82)

Ambas as transformações são simetrias da curva original, pois as imagens da curva coincidem com a mesma.

Experimentemos com outras matrizes

(%i83) P:matrix([1,1],[0,-1]);

1 1
(%o83)
0 −1

(%i84) P_24:P.C_24(t);
PC_24(t):=[P_24[1,1],P_24[2,1]]$
PC_24(t);
3 2
sin t + cos t sin t
(%o84)
3
− sin t

3 2 3
(%o86) [ sin t + cos t sin t , − sin t ]
CC2014_CurvasCPolaresEx24.wxmx 14 / 17

(%i87) wxdraw2d(
xrange=[-2,2], yrange=[-2,2],
color=blue,
parametric(C_24(t)[1],C_24(t)[2],t,-%pi,%pi),
color=green,
parametric(PC_24(t)[1],PC_24(t)[2],t,-%pi,%pi)
);

(%t87)

(%o87)

Agora a imagem da curva original e da sua transformada não coincidem.

Vamos agora rodar a curva de vários ângulos.

Comecemos por definir a matriz de rotação em torno da origem de ãngulo t.

(%i88) rot(t):=matrix([cos(t),-sin(t)],[sin(t),cos(t)]);

cos t − sin t
(%o88) rot t :=
sin t cos t

(%i89) R4:rot(%pi/4);

1 1

2 2
(%o89)
1 1

2 2

Rotação da curva de um ângulo de %pi/4

(%i90) R4_24:R4.C_24(t);
R4C_24(t):=[R4_24[1,1],R4_24[2,1]]$
R4C_24(t);
2 3
cos t sin t sin t

2 2
(%o90)
3 2
sin t cos t sin t
+
2 2

2 3 3 2
cos t sin t sin t sin t cos t sin t
(%o92) [ − , + ]
2 2 2 2
CC2014_CurvasCPolaresEx24.wxmx 15 / 17

(%i93) wxdraw2d(
xrange=[-1,1], yrange=[-1,1],
color=blue,
parametric(C_24(t)[1],C_24(t)[2],t,-%pi,%pi),
color=green,
parametric(R4C_24(t)[1],R4C_24(t)[2],t,-%pi,%pi)
);

(%t93)

(%o93)

Rotação da curva de um ângulo de %pi/2

(%i94) Rpi2:rot(%pi/2);

0 −1
(%o94)
1 0

(%i95) Rpi2_24:Rpi2.C_24(t);
Rpi2C_24(t):=[Rpi2_24[1,1],Rpi2_24[2,1]]$
Rpi2C_24(t);
3
− sin t
(%o95)
2
cos t sin t

3 2
(%o97) [ − sin t , cos t sin t ]
CC2014_CurvasCPolaresEx24.wxmx 16 / 17

(%i98) wxdraw2d(
xrange=[-1,1], yrange=[-1,1],
color=blue,
parametric(C_24(t)[1],C_24(t)[2],t,-%pi,%pi),
color=green,
parametric(Rpi2C_24(t)[1],Rpi2C_24(t)[2],t,-%pi,%pi)
);

(%t98)

(%o98)

1.7 Animação da curva com os vetores unitários tangente e normal

Note como evitamos a passagem pelos pontos singulares da trajetoria.


Com efeito o vetor tangente não está definido nesses pontos.
CC2014_CurvasCPolaresEx24.wxmx 17 / 17

(%i99) tmin:-%pi$ tmax:%pi$

numt:20$lista_tempos:makelist(tmin+k*(tmax-tmin)/numt+0.0001, k, 0, numt)$
with_slider_draw(
u, lista_tempos,
xrange = [-1.5,1.5], yrange = [-1.5,1.5],
parametric(C_24(t)[1],C_24(t)[2], t , -%pi, %pi),
point_size = 2,point_type=filled_circle,color=red,
points([C_24(u)]),
color=green,head_length = .1, head_angle = 12, /* em graus */
vector(C_24(u),T_24(u)/3),
color=black,
vector(C_24(u),N_24(u)/3)
);

(%t103)

(%o103)

Você também pode gostar