Professional Documents
Culture Documents
g
(t)
L
Seguindo o mtodo de resoluo dado em [1], temos, supondo que a soluo tem a forma
pt +k
:
(t )=e
g pt +k
pt +k
p e
=
e
L
Como e pt +k 0 para todo t, temos:
g
p =
L
Logo:
g
p= i=i
L
g
Em que i a unidade imaginria, e definimos =
.
L
Assim, temos, inicialmente, duas solues:
it + k
1 (t)=e
=cos (t +k )+isen (t+ k)
it + k
2 (t )=e
=cos (t +k )isen( t+ k )
Como qualquer combinao linear dessas solues tambm soluo da equao diferencial em
questo, podemos obter uma soluo real:
(t) (t)
(t )=C 1 + 2
=Ccos ( t+ k )
2
2
Com a condio C0 .
De modo que, para que a funo obedea s condies iniciais, devemos ter:
' (0)=Csen(k)=0
Como C0 e 0 , temos:
sen(k )=0
Conclui-se que um valor de k que satisfaz as condies iniciais k =0 .
Por fim, como (0)=0 , temos:
0 =Ccos(0)=C
Logo:
(t )=0cos(t)
Com a soluo da equao diferencial em questo, podemos achar o perodo de oscilao T 0 .
Para isso, calculemos o menor valor positivo de t que satisfaz (t )=0 :
(t )=0 0cos( t)=0 cos (t )=1
Assim, temos:
2
L
T 0= =2
g
b)
sada:
{{x -> -1.76929, y -> 0.}, {x -> 0.884646, y -> -0.589743}, {x -> 0.884646, y -> 0.589743}}
Assim, as solues procuradas, com truncamento na quinta casa decimal, so (Obs.: As cores
associadas s solues sero usadas posteriormente):
A = (-1.76929 , 0.00000)
B = (0.884646 , -0.589743)
C = (0.884646 , 0.589743)
No software MatLab, escrevemos as seguintes funes, para implementar o mtodo de Newton
para a soluo do sistema dado:
matrizf1.m
function F = matrizf1(x)
F = [2-2*x(1)+x(1)^3-3*x(1)*x(2)^2, -2*x(2)+3*x(2)*x(1)^2-x(2)^3]
end
newtonf1.m
function F = newtonf1(x0,e1)
r1=[-1.7693,-0.0000];
r2=[0.8846,0.5897];
r3=[0.8846,-0.5897];
if norm((x0-r1))<e1
F=x0;
return
end
if norm((x0-r2))<e1
F=x0;
return
end
if norm((x0-r3))<e1
F=x0;
return
end
for k=1:100
J=[-2+3*x0(1)^2-3*x0(2)^2, -6*x0(1)*x0(2); 6*x0(1)*x0(2), -2+3*x0(1)^23*x0(2)^2];
T= matrizf1(x0);
S=linsolve(J,transpose(-T));
X=transpose(S+transpose(x0));
fprintf('this is k=%d', k);
if norm(X-r1)<e1 | norm(X-r2)<e1 | norm(X-r3)<e1
F=X;
break
end
x0=X;
end
F=X
end
r3=[0.8846,-0.5897];
if isnan(newtonf1(x0,e1))==[1,1] | norm((newtonf1(x0,e1))-r1)>e1 |
norm((newtonf1(x0,e1))-r2)>e1 | norm((newtonf1(x0,e1))-r3)>e1
plot(x0(1),x0(2),'g.')
end
if norm((newtonf1(x0,e1))-r1)<e1
plot(x0(1),x0(2),'b.')
end
if norm((newtonf1(x0,e1))-r2)<e1
plot(x0(1),x0(2),'r.')
end
if norm((newtonf1(x0,e1))-r3)<e1
plot(x0(1),x0(2),'m.')
end
end
figuraf1.m
function []=figuraf1(xi,xf,yi,yf,dx,dy)
intx=xi:dx:xf
inty=yi:dy:yf
hold on
for k1=0:dx:(xf-xi)
for k2=0:dy:(yf-yi)
pontof1([xi+k1,yi+k2],0.01)
end
end
end
Essas funes discretizam algum retngulo selecionado no plano cartesiano em uma malha, e
aplicam o mtodo de Newton implementado anteriormente, utilizando cada ponto da malha como
aproximao inicial. Caso o mtodo convirja para alguma das solues, as funes pintam o
ponto inicial com a cor associada soluo. Caso divirja, elas pintam esse ponto de verde.
A figura obtida ao executar a funo figuraf1.m no retngulo [-2,1] x [-1,1] discretizado numa
malha de divises de tamanho 0.025 :