Académique Documents
Professionnel Documents
Culture Documents
Steven J. Leon
University of Massachusetts, Dartmouth
Este Material Suplementar contm Aplicaes referentes ao livro-texto que podem ser usadas
como apoio para o livro lgebra Linear com Aplicaes, Oitava Edio, 2010. Este material
de uso exclusivo de professores e estudantes da matria.
Material Suplementar: Aplicaes traduzidas do material original:
Applications to accompany Linear Algebra with Applications, Eigth Edition
Portuguese translation copyright 2010 by LTC __ Livros Tcnicos e Cientficos Editora
Ltda. Translated by permission of Pearson Education, Inc., publishing as Prentice Hall.
Copyright 2009 by Pearson Education, Inc. All Rights Reserved.
Obra publicada pela LTC
lgebra Linear com Aplicaes, Oitava Edio
Direitos exclusivos para a lngua portuguesa
Copyright 2010 by
LTC Livros Tcnicos e Cientficos Editora Ltda.
Uma editora integrante do GEN | Grupo Editorial Nacional
Capa do livro: Leonardo Queiroz
Editorao Eletrnica do material suplementar:
Sumrio
Aplicao 1...................................................................................................1
Aplicao 2...................................................................................................8
Aplicao 3.................................................................................................10
Aplicao 4.................................................................................................22
Aplicao 5.................................................................................................29
Aplicao 6.................................................................................................33
Aplicao 7.................................................................................................40
Aplicao 8.................................................................................................48
Aplicao 9.................................................................................................49
Aplicao 10...............................................................................................56
Aplicao 1
Programao Linear
ATENO Este um arquivo muito grande. Se voc est vendo uma figura estranha, acione
EDIT/EXECUTE. Para o professor: a figura mencionada no Projeto 1 muito difcil de ser gerada por estudantes no computador ela pode ser feita mo.
PLANO DE FUNDO: Estes grficos foram usados no Plano de Fundo deste projeto.
> with(plots):with(linalg):
Warning, new definition for norm
Warning, new definition for trace
>
> s1:=spacecurve([t,6,0],t=0..4,color=green):
> s2:=spacecurve([3,t,0], t = 0..7, color=red):
> s3:=spacecurve( [t, 7-t, 0], t=0..4, color=black): display(s1,s2,s3,axes=normal, orientation=
[-90,0],scaling=constrained);m1:=plot3d([x,y,0],x=0..1,y=0..6,color=red):m2:=plot3d([x,t*(7-x),0],
x=1..3,t=0..1,color=red):display(s1,s2,s3,m1,m2,axes=normal,orientation=[-90,0],scaling=
constrained);profit:=plot3d([x, y, 3*x+4*y], x=0..3, y=0..6):display(m1,m2,profit,axes=normal,
orientation=[-90,10],scaling=constrained);
>
2 Aplicao 1
normal);
display(m1,m2,profit,wall,axes=normal,orientation=[-90,10]);
Programao Linear 3
> profit:=plot3d([x,y,3*x+4*y],x=0..3,y=0..6 ):grad:=spacecurve([3*t,4*t, 0],t=0..1.5,color=
black,thickness=3):display(m1,m2,profit,grad,scaling=constrained,view=[0..5,0..5,0..5]);
A curva lucro cresce de forma to abrupta, que este grfico no tem muita utilidade.
> q1:=spacecurve([t,-t,0],t=0..4):q2:=spacecurve([t,-t+2,0],t=0..4): q3:=spacecurve([t, -t+4, 0],
t= 0..4):q4:=spacecurve([t,-t+6,0],t=0..4):q5:=spacecurve([t,-t+7,0],t=0..4,color=black,
thickness=1):display(grad,m1,m2,q1,q2,q3,q4,q5,orientation=[-90,0],scaling=constrained);
>
> m1:=plot3d([x,y,0],x=0..1,y=0..6,color=red,style=patchnogrid):m2:=plot3d([x,t*(7-x),0],x=1..3,
t=0..1,color=red,style=patchnogrid):s1:=spacecurve([1,6,27*t],t=0..1,color=black,thickness=3,
style=patch):display(s1,profit,m1,m2);
4 Aplicao 1
Programao Linear 5
> A:=matrix([[-3,1,1,0,0,3], [1,-3,0,1,0,4], [4,7,0,0,1,40],[2,-3,0,0,0,0] ]);
A := matrix([[-3, 1, 1, 0, 0, 3], [1, -3, 0, 1, 0, 4], [4, 7, 0, 0, 1, 40],
[2, -3, 0, 0, 0, 0]])
> A:=pivot(A,1,2);
A := matrix([[-3, 1, 1, 0, 0, 3], [-8, 0, 3, 1, 0, 13], [25, 0, -7, 0, 1,
19], [-7, 0, 3, 0, 0, 9]])
> A:=pivot(A,3,1);
A := matrix([[0, 1, 4/25, 0, 3/25, 132/25], [0, 0, 19/25, 1, 8/25, 477/25],
[25, 0, -7, 0, 1, 19], [0, 0, 26/25, 0, 7/25, 358/25]])
SUGESTES/RESPOSTAS AO PROJETO
Projeto Parte 1: Maximize P = 2x + 3y sujeito s restries:
3x - y < or = 4
x + y < or = 2
x,y > or = 0.
Ateno para a rotina built-in do Maple:
> with(simplex):
> cnsts := {3*x-y <= 4, x+y <= 2
}:
obj := 2*x+3*y;maximize(obj,cnsts union {x>=0,y>=0,z>=0});
Warning, new definition
Warning, new definition
Warning, new definition
Warning, new definition
Warning, new definition
obj := 2*x+3*y
{y = 2, x = 0, z = z}
for
for
for
for
for
basis
display
maximize
minimize
pivot
> n1:=implicitplot(3*x-y<=4,x=0..10,y=0..10,color=gray):n2:=implicitplot(x+y<=2,x=0..10,y=
0..10,color=red):vectorgrad:=plot([2*t,3*t,t=0..1],color=green):display(n1,n2,vectorgrad,axes=
normal,scaling=constrained,title="STAY ABOVE GRAY, BELOW RED");
6 Aplicao 1
> restart:with(plots):with(linalg):constr1:=evalm(t*[x,3*x-4,0]);
Warning, new definition for norm
Warning, new definition for trace
constr1 := vector([t*x, t*(3*x-4), 0])
grad:=spacecurve([2*t,3*t,0],t=0..0.5,color=green,thickness=3):display(constr1,constr2,grad,
axes=normal,scaling=constrained,orientation=[-90,0]);
Programao Linear 7
> objective:=plot3d(2*x+3*y,x=0..3/2,y=0..2,color=blue,style=wireframe):display(constr1,
constr2,objective,axes=normal,scaling=constrained);
>
Novamente, a funo lucro cresce de forma muito rpida para fornecer uma boa viso.
Aplicao 2
O Modelo Econmico De Leontief
Sugestes/Respostas Ao Projeto
Projeto Parte 1: Resolva o sistema de equaes no Plano de Fundo
> with(linalg):with(plots):
Warning, new definition for norm
Warning, new definition for trace
> E:=matrix([[.4,.3,.1],[.2,.5, .2],[.4,.2,.7]]);
E := matrix([[.4, .3, .1], [.2, .5, .2], [.4, .2, .7]])
> Id:=matrix([[1,0,0],[0,1,0],[0,0,1]]);
Id := matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
> evalm(Id-E);
matrix([[.6, -.3, -.1], [-.2, .5, -.2], [-.4, -.2, .3]])
> rref(%);
matrix([[1, 0, -.4583333334], [0, 1, -.5833333333], [0, 0, 0]])
> soln:=[.458*t,.583*t, t];
soln := [1000.000000, 1272.925764, 2183.406114]
O vetor de sada [15,0,20] sem eletricidade! Embora esta seja sua resposta, o cenrio
auspicioso, mas no realista!
Aplicao 3
Vislumbres Do Espao 4-D
Vises da Esfera
Erro no texto: Na Parte 1 do Projeto aplicamos a matriz de projeo P a uma esfera
tridimensional. Fixamos um ponto de vista para a projeo da esfera.
E permitimos algum ngulo da esfera (em coordenadas esfricas) variar.
Desta forma, obtemos rotaes da esfera como vista de um plano particular.
> restart:with(plots):Q:=matrix([[cos(t),-sin(t),0],[cos(f)*sin(t),cos(f)*cos(t),-sin(f)]]):
> t:=Pi/4;f:=Pi/4;Q:=matrix([[-cos(t),sin(t),0],[-cos(f)*sin(t),-cos(f)*cos(t),sin(f)]]):sph:=[sin(v)*
cos(u),sin(v)*sin(u),cos(v)]:
t := 1/4*Pi
f := 1/4*Pi
> evalm(Q&*sph);
vector([-1/2*2^(1/2)*sin(v)*cos(u)+1/2*2^(1/2)*sin(v)*sin(u),
-1/2*sin(v)*cos(u)-1/2*sin(v)*sin(u)+1/2*2^(1/2)*cos(v)])
> animate([-1/2*2^(1/2)*sin(v)*cos(u)+1/2*2^(1/2)*sin(v)*sin(u), -1/2*sin(v)*cos(u)-1/2*sin(v)*
sin(u)+1/2*2^(1/2)*cos(v),v=0..2*Pi],u=0..2*Pi,scaling=constrained,color=black,title="ANIMA
TE ME");
1/2*sin(v)*sin(Pi/6)+1/2*2^(1/2)*cos(v),v=0..2*Pi],scaling=constrained,color=black):m2:=
plot([-1/2*2^(1/2)*sin(v)*cos(Pi/2)+1/2*2^(1/2)*sin(v)*sin(Pi/2), -1/2*sin(v)*cos(Pi/2)-1/2*
sin(v)*sin(Pi/2)+1/2*2^(1/2)*cos(v),v=0..2*Pi],scaling=constrained,color=black):display(m1,m2,
title="STILL FRAME");
> Q:=matrix([[cos(t),-sin(t),0],[cos(f)*sin(t),cos(f)*cos(t),-sin(f)]]):
> t:=Pi/2;f:=Pi/2;Q:=matrix([[-cos(t),sin(t),0],[-cos(f)*sin(t),-cos(f)*cos(t),sin(f)]]):sph:=[sin(v)*
cos(u),sin(v)*sin(u),cos(v)]:
t := 1/2*Pi
f := 1/2*Pi
> evalm(Q&*sph);
vector([sin(v)*sin(u), cos(v)])
> animate([sin(v)*sin(u), cos(v),v=0..2*Pi],u=0..2*Pi,scaling=constrained,title="ANIMATE ME");
12 Aplicao 3
> m1:=plot([sin(v)*sin(Pi/4), cos(v),v=0..2*Pi], scaling=constrained,color=black):m2:=plot([
> Q:=matrix([[cos(t),-sin(t),0],[cos(f)*sin(t),cos(f)*cos(t),-sin(f)]]):
> t:=Pi/2;f:=0;Q:=matrix([[-cos(t),sin(t),0],[-cos(f)*sin(t),-cos(f)*cos(t),sin(f)]]):sph:=[sin(v)*
cos(u),sin(v)*sin(u),cos(v)]:
t := 1/2*Pi
f := 0
> evalm(Q&*sph);
vector([sin(v)*sin(u), -sin(v)*cos(u)])
> animate([sin(v)*sin(u), -sin(v)*cos(u),v=0..2*Pi],u=0..2*Pi,scaling=constrained,color=blue,
title="ANIMATE ME");
color=blue,title="ANIMATE ME");
Mais vistas: uma rotao de uma esfera em 4-D mas somente para diverso!
> restart:with(linalg):sphere:=[sin(u)*sin(v)*cos(w),sin(u)*sin(v)*sin(w),sin(u)*cos(v),cos(u)]:t:
=Pi/2;f:=Pi/6;p:=0;
Warning, new definition for norm
Warning, new definition for trace
t := 1/2*Pi
f := 1/6*Pi
p := 0
14 Aplicao 3
Definindo matrizes de rotao em relao a t, f, p:
> rot_t:=matrix([[cos(t),-sin(t),0,0],[sin(t),cos(t),0,0],[0,0,1,0],[0,0,0,1]]):
> rot_f:=matrix([[1,0,0,0],[0,cos(f),-sin(f),0],[0,sin(f),cos(f),0],[0,0,0,1]]):
> rot_p:=matrix([[1,0,0,0],[0,1,0,0],[0,0,cos(p),-sin(p)],[0,0,sin(p),cos(p)]]):
> pft:=evalm(rot_p&*rot_f&*rot_t);
pft := matrix([[0, -1, 0, 0], [1/2*3^(1/2), 0, -1/2, 0], [1/2, 0,
1/2*3^(1/2), 0], [0, 0, 0, 1]])
> proj:=matrix([[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,0]]):
> M:=evalm(proj&*pft);
M := matrix([[0, -1, 0, 0], [1/2*3^(1/2), 0, -1/2, 0], [1/2, 0,
1/2*3^(1/2), 0], [0, 0, 0, 0]])
> evalm(M&*sphere);
>
vector([-sin(u)*sin(v)*sin(w), 1/2*3^(1/2)*sin(u)*sin(v)*cos(w)1/2*sin(u)*cos(v), 1/2*sin(u)*sin(v)*cos(w)+1/2*3^(1/2)*sin(u)*cos(v), 0])
>
> animate3d([-sin(u)*sin(v)*sin(w), 1/2*3^(1/2)*sin(u)*sin(v)*cos(w)-1/2*sin(u)*cos(v), 1/2*sin(u)*
sin(u)*sin(v)*cos(w)+1/2*3^(1/2)*sin(u)*cos(v)], u=0..2*Pi,w=0..2*Pi,v=0..2*Pi,title="ANIMATE
ME");
1/2*sin(u)*sin(Pi/4)*cos(w)+1/2*3^(1/2)*sin(u)*cos(Pi/4)], u=0..2*Pi,w=0..2*Pi,title="STILL
FRAME");
16 Aplicao 3
1/2*sin(u)*cos(v), 1/4*sin(u)*sin(v)*cos(w)+1/4*3^(1/2)*sin(u)*cos(v)-1/2*3^(1/2)*cos(u)],w=
0..2*Pi,u=0..2*Pi,v=0..2*Pi,title="ANIMATE ME");
1/4*sin(u)*sin(Pi/4)*cos(w)+1/4*3^(1/2)*sin(u)*cos(Pi/4)-1/2*3^(1/2)*cos(u)],w=0..2*Pi,u=0..2*Pi,
title="STILL FRAME");
sin(u)*sin(v)*cos(w)+1/4*3^(1/2)*sin(u)*cos(v)-1/2*3^(1/2)*cos(u)],u=0..2*Pi,v=0..2*Pi,w=0..2*Pi,
title="ANIMATE ME");
18 Aplicao 3
sin(u)*sin(v)*cos(w)+1/4*3^(1/2)*sin(u)*cos(v)-1/2*3^(1/2)*cos(u)],v=0..2*Pi,w=0..2*Pi,u=0..2*Pi,
axes=normal,title="ANIMATE ME");
1/2*2^(1/2)*cos(u)],u=0..2*Pi,v=0..Pi,w=0..Pi,axes=normal,title="ANIMATE ME");
2^(1/2)*cos(u)],u=0..2*Pi,w=0..2*Pi,v=0..2*Pi,axes=normal,title="ANIMATE ME");
20 Aplicao 3
title="STILL FRAME");
Aplicao 4
O Mtodo dos Mnimos Quadrados
PLANO DE FUNDO: Estas ilustraes foram usadas no Plano de Fundo deste Projeto.
Resolva
> with(linalg):with(plots):
Warning, new definition for norm
Warning, new definition for trace
> A:=matrix( [[1,2], [1,4], [1, 2.5], [1,5] ]);
A := matrix([[1, 2], [1, 4], [1, 2.5], [1, 5]])
> At:=transpose(A);
At := matrix([[1, 1, 1, 1], [2, 4, 2.5, 5]])
> evalm(inverse(At&*A)&*At&*[3,5,3.5,6]);
vector([1.000000001, .9999999989])
> line:=plot( [x,x+1,x=0..5],color=black):point1:=plot([.1*cos(t)+2,.1*sin(t)+3,t=0..2*Pi],color=
red):point2:=plot([.1*cos(t)+4,.1*sin(t)+5,t=0..2*Pi],color=green):point3:=plot([.1*cos(t)+2.5,.1*
sin(t)+3.5,t=0..2*Pi],color=blue):point4:=plot([.1*cos(t)+5,.1*sin(t)+6,t=0..2*Pi],color=brown):
display(line,point1,point2,point3,point4,scaling=constrained);
0..2*Pi],color=black,thickness=3):point2:=plot([.1*cos(t)+2,.1*sin(t)+17,t=0..2*Pi],color=
black,thickness=3):point3:=plot([.1*cos(t)+0,.1*sin(t)-4,t=0..2*Pi],color=black,thickness=3):
point4:=plot([.1*cos(t)+3,.1*sin(t)+1,t=0..2*Pi],color=black,thickness=3):point5:=plot([.1*
cos(t)+4,.1*sin(t)+4,t=0..2*Pi],color=black,thickness=3):display(line,point1,point2,point3,
point4,point5,scaling=constrained);
24 Aplicao 4
xyz
124
2 3 -1
359
618
4 7 12
> A:=matrix( [[1,1,2],[1,2,3],[1,3,5],[1,6,1],[1,4,7]]);At:=transpose(A);
A := matrix([[1, 1, 2], [1, 2, 3], [1, 3, 5], [1, 6, 1], [1, 4, 7]])
At := matrix([[1, 1, 1, 1, 1], [1, 2, 3, 6, 4], [2, 3, 5, 1, 7]])
> evalm(inverse(At&*A)&*At&*[4,-1,9,8,12]);
vector([-722/245, 386/245, 293/245])
0..Pi,color=red,thickness=3):
> point2:=plot3d([.1*sin(f)*cos(t)+2,.1*sin(f)*sin(t)+3,.1*cos(f)-1],t=0..2*Pi,f=0..Pi,color=
red ):point3:=plot3d([.1*sin(f)*cos(t)+3,.1*sin(f)*sin(t)+5,.1*cos(f)+9],t=0..2*Pi,f=0..Pi,color=red ):
point4:=plot3d([.1*sin(f)*cos(t)+6,.1*sin(f)*sin(t)+1,.1*cos(f)+8],t=0..2*Pi,f=0..Pi,color=red ):
point5:=plot3d([.1*sin(f)*cos(t)+4,.1*sin(f)*sin(t)+7,.1*cos(f)+11],t=0..2*Pi,f=0..Pi,color=red):
display(planeplot,point1,point2,point3,point4,point5,axes=normal);
Sugestes/Respostas ao Projeto
Projeto Parte 1: Para a tabela de pontos direita encontre a melhor aproximao por regresso
linear, utilizando os mtodos ilustrados na Demonstrao. Trace um grfico de sua linha resultante, juntamente com os pontos. Encontre o coeficiente de correlao. Quando um ponto de dados
muito incomum, ele pode ser chamado de valor discrepante. Voc v alguns bvios valores
discrepantes aqui?
> with(linalg):with(plots):
> A:=matrix([[1,1],[1,2],[1,0],[1,-1],[1,-3]]);
A := matrix([[1, 1], [1, 2], [1, 0], [1, -1], [1, -3]])
> A := matrix([[1, 1], [1, 2], [1, 0], [1, -1], [1, -3]]);
A := matrix([[1, 1], [1, 2], [1, 0], [1, -1], [1, -3]])
> At:=transpose(A);
At := matrix([[1, 1, 1, 1, 1], [1, 2, 0, -1, -3]])
26 Aplicao 4
> evalm(inverse(At&*A)&*At&*[-1,1,2.5,3,20]);
vector([4.331081081, -3.844594595])
> line:=plot([x,4.331081081-3.844594595*x,x=-5..5],color=black):
> display(line,scaling=constrained);
Projeto Parte 2: Para a tabela de pontos que representam [x,y,z], encontre a melhor aproximao
por ajuste linear (plano), utilizando os mtodos ilustrados na Demonstrao. Trace um grfico de
seu plano resultante. Ou inclua no grfico os pontos como na demonstrao anterior, ou coloque-os
em sua impresso Maple com lpis ou caneta.
> with(stats):with(linalg):with(plots):
> B:=matrix([[1,0,2],[1,1,3],[1,2,5],[1,3,1],[1,4,7]]);
B := matrix([[1, 0, 2], [1, 1, 3], [1, 2, 5], [1, 3, 1], [1, 4, 7]])
Esta matriz representa a tabela de pontos coincidentes com [x,y,z]. Com esta matriz, bem como as suas
transposta e inversa, vamos tentar encontrar a melhor aproximao por ajuste linear.
> Bt:=transpose(B);
Bt := matrix([[1, 1, 1, 1, 1], [0, 1, 2, 3, 4], [2, 3, 5, 1, 7]])
> evalm(inverse(Bt&*B)&*Bt&*[1,-1,4,4,1]);
vector([164/105, 169/210, -8/21])
Este o vetor resultante, que ser representado graficamente como um plano, que mostra a melhor
aproximao por ajuste linear para os pontos de dados.
> planeplot:=plot3d(164/105+(169/210)*x+(-8/21)*y,x=0..5,y=0..8,color=yellow):
> display(planeplot);
>
> C:=matrix([[1,1,1],[1,2,4],[1,0,0],[1,-1,1],[1,-3,9]]);
C := matrix([[1, 1, 1], [1, 2, 4], [1, 0, 0], [1, -1, 1], [1, -3, 9]])
Mais uma vez estamos usando os pontos dados e colocando-os em uma matriz. Vamos agora tentar
encontrar a parbola que melhor se ajusta atravs dos pontos de dados da matriz, a sua transposta e a sua
inversa.
> Ct:=transpose(C);
Ct := matrix([[1, 1, 1, 1, 1], [1, 2, 0, -1, -3], [1, 4, 0, 1, 9]])
> evalm(inverse(Ct&*C)&*Ct&*[3,3,4,4,10]);
vector([2293/679, -1247/1358, 561/1358])
Depois de avaliar, obtemos esse vetor, que ser desenhado como a parbola que melhor se ajusta atravs
dos pontos.
> parabola:=plot(2293/679-(1247/1358)*x+(561/1358)*x^2,x=-5..5,color=red):
> display(parabola);
28 Aplicao 4
Aplicao 5
Sequncias De Fibonacci (Uma Relao De Recorrncia)
PLANO DE FUNDO: Estas ilustraes foram usadas no Plano de Fundo deste Projeto.
Resolva
> with(plots):with(linalg):
Warning, the name changecoords has been redefined
> restart:v := array(1..40):
30 Aplicao 5
> evalf(%);
Sugestes/Respostas ao Projeto
Projeto Parte 1: Encontre os autovetores e os autovalores da matriz A =. Faa isso mo, em primeiro lugar encontrando as razes da equao caracterstica. Agora use o Maple para encontrar
os autovetores e autovalores. Voc pode tentar o comando evalf no Maple para certificar-se de que
os resultados do Maple so os mesmos que os calculados mo. Diagonalize A para encontrar o
k-simo termo da sequncia de Fibonacci, seguindo o processo descrito no plano de fundo. (Se
voc no pode usar o Maple para encontrar o k-simo termo, encontre alguns termos grandes e
generalize.) Qual a inclinao do autovetor com o maior autovalor? D uma outra explicao
para a relao f(k +1)/f(k) se aproximar da relao urea. Encontre o e-nsimo termo da sequncia
de Fibonacci.
> restart:with(linalg):A:=matrix([[1,1],[1,0]]): eigenvectors(A);evalf(%);
Warning, new definition for norm
Warning, new definition for trace
[1/2+1/2*5^(1/2), 1, {vector([1/2+1/2*5^(1/2), 1])}] [1/2-1/2*5^(1/2), 1,
{vector([1/2-1/2*5^(1/2), 1])}]
[1.618033989, 1., {vector([1.618033989, 1.])}] [-.6180339890, 1.,
{vector([-.6180339890, 1.])}]
> J := jordan(A, P): print(P);P:=evalf(matrix([[-1/10*5^(1/2)+1/2, 1/10*5^(1/2)+1/2],
[-1/5*5^(1/2), 1/5*5^(1/2)]]));J:=matrix([[r1,0],[0,r2]]);
matrix([[1/10*5^(1/2)+1/2, -1/10*5^(1/2)+1/2], [1/5*5^(1/2),
-1/5*5^(1/2)]])
P := matrix([[.2763932022, .7236067978], [-.4472135956, .4472135956]])
J := matrix([[r1, 0], [0, r2]])
32 Aplicao 5
> simplify(evalm(P&*J^50&*inverse(P)&*[1,0]));
vector([.2763932022*r1^50+.7236067978*r2^50,
-.4472135956*r1^50+.4472135956*r2^50])
O segundo termo representa o 50o termo da Sequncia de Lucas. O k-simo termo encontrado
de forma anloga.
Projeto Parte 3: Quando tentamos isso com a relao de recorrncia dada por dn = 2 d(n-1) - d(n-2),
os autovetores no formam uma base e esse procedimento no funciona.
> with(linalg):A:=matrix([[2,-1],[1,0]]);
A := matrix([[2, -1], [1, 0]])
> J:=jordan(A,'P'):print(J);print(P);
matrix([[1, 1], [0, 1]])
matrix([[1, 1], [1, 0]])
> eigenvalues(A);eigenvectors(A);
1/2+1/2*5^(1/2) 1/2-1/2*5^(1/2)
[1/2+1/2*5^(1/2), 1, {vector([1/2+1/2*5^(1/2), 1])}] [1/2-1/2*5^(1/2), 1,
{vector([1/2-1/2*5^(1/2), 1])}]
O autovetor [1,1] tem multiplicidade 2 e no pode formar uma base. De fato, a soluo d(n) =
(1.5)n.
Aplicao 6
Modelos Populacionais e Processos de Markov
PLANO DE FUNDO: Este trabalho foi utilizado na explicao do Plano de Fundo deste Projeto.
> with(linalg):with(plots):
Warning, the protected names norm and trace have been redefined and unprotected
> A:=matrix([[.5,.6,.2],[.4,0,0],[0,.2,0]]);
> evalm(A&*A);
> A3:=evalm(A&*A&*A);
> evalm(A3&*A3);
34 Aplicao 6
Sugestes/Respostas ao Projeto
Projeto Parte 1: Para as matrizes dadas, determine a estabilidade.
(1.) A:=matrix([[.6,.6,.1],[.8,0,0],[0,.3,0]]);
(2.) B:=matrix([[.2,.59,.1],[.7,0,0],[0,.3,0]]);
(3.) C:=matrix([[.559,.6,.1],[.7,0,0],[0,.3,0]]);
> with(linalg):
> A:=matrix([[.6,.6,.1],[.8,0,0],[0,.3,0]]);
B:=matrix([[.2,.59,.1],[.7,0,0],[0,.3,0]]);
C:=matrix([[.559,.6,.1],[.7,0,0],[0,.3,0]]);
>
> eigenvectors(A);
36 Aplicao 6
> result_of_many_A_applications:=evalm((1.1)^t*c1*eig1+(.9)^t*c2*eig2);
result_of_many_A_applications := vector([200.0000001*1.1^t+799.9999999*.9^t,
600.0000000*1.1^t+400.0000000*.9^t])
> restart:with(linalg):with(plots):eig1:=[-.4472135955, -1.341640786];eig2:=[.8944271910,
.4472135955];origvec2:=[600,200];origvec:=evalm(c1*eig1+c2*eig2);
Warning, new definition for norm
Warning, new definition for trace
eig1 := [-.4472135955, -1.341640786]
eig2 := [.8944271910, .4472135955]
origvec2 := [600, 200]
origvec := vector([-.4472135955*c1+.8944271910*c2, -1.341640786*c1+
.4472135955*c2])
> B:=matrix([[-.4472135955,.8944271910,600], [-1.341640786,.4472135955,200]]);
B := matrix([[-.4472135955, .8944271910, 600], [-1.341640786, .4472135955,
200]])
> rref(B);
matrix([[1, 0, 89.4427192], [0, 1, 715.5417529]])
> c1:=89.4427;c2:=715.54;check:=evalm(c1*eig1+c2*eig2);
c1 := 89.4427
c2 := 715.54
check := vector([599.9984407, 199.9992418])
> result_of_many_A_applications:=evalm((1.1)^t*c1*eig1+(.9)^t*c2*eig2);
>
>
result_of_many_A_applications := vector([39.99999146*1.1^t+639.9984322*.9^t, -119.9999743*1.1^t+319.9992161*.9^t])
> with(plots):m2:=plot([t*.3162277661, t*.9486832979,t=0..2000],color=blue,thickness=3):
>
38 Aplicao 6
> u:=[-.659966, -.754248];
u := [-.659966, -.754248]
> evalm(M^10000&*[.7,.3]);
vector([.466667, .533333])
> evalm(M^10000&*[.4,.6]);
vector([.466667, .533333])
> evalm(M^10000&*[1,0]);
vector([.466667, .533333])
Escalonando u;
> .66+.75;
1.41
> u1:=-1/1.41*u;
u1 := [.468061, .534928]
Ento, 47% das pessoas com a doena esto no Grupo 1 e 53% no Grupo 2.
Para diverso:
> A:=evalm(P&*Diag&*inverse(P));
A := matrix([[1.250000000, -.7500000000], [-.7500000000, 1.250000000]])
>
> evalf(eigenvectors(A));
[.5000000000, 1., {vector([.7071067810, .7071067810])}] [2.000000000, 1.,
{vector([-.7071067810, .7071067810])}]
> eigval1:= 2:eigval2:=1/2:
> eigvec1:=normalize([-.7069, .7069]);eigvec2:=normalize([.7069, .7069]);
eigvec1 := vector([-.7071067812, .7071067812])
eigvec2 := vector([.7071067812, .7071067812])
>
>
> Digits:=4:result:=array(1..5):
die:=rand(-10..10):
for i from 1 to 5 do x:=die():y:=die(): result[i]:=evalf(evalm(eigval1^t*dotprod([x,y],eigvec1)*
eigvec1+ eigval2^t*dotprod([x,y],eigvec2)*eigvec2)):od;
:= vector([-5.500*2.^t+1.500*.5000^t, 5.500*2.^t+1.500*.5000^t])
:= vector([-.9998*2.^t+9.001*.5000^t, .9998*2.^t+9.001*.5000^t])
:= vector([.9998*2.^t-7.000*.5000^t, -.9998*2.^t-7.000*.5000^t])
:= vector([-6.000*2.^t+.9998*.5000^t, 6.000*2.^t+.9998*.5000^t])
:= vector([6.000*2.^t, -6.000*2.^t])
thickness=3):m1:=plot([-7.000*2.^t-3.000*.5000^t, 7.000*2.^t-3.000*.5000^t,t=-10..10],color=
yellow,thickness=3):m2:=plot([-4.000*2.^t-6.000*.5000^t, 4.000*2.^t-6.000*.5000^t,t=-10..10],color=
red,thickness=3):m3:=plot([-5.000*2.^t+2.000*.5000^t, 5.000*2.^t+2.000*.5000^t,t=-10..10],
color=blue,thickness=4):m4:=plot([-1.500*2.^t+2.500*.5000^t, 1.500*2.^t+2.500*.5000^t,t=10..10],color=green,thickness=3):m5:=plot([-4.000*2.^t+1.001*.5000^t, 4.000*2.^t+1.001*.5000^t,t=10..10],color=cyan,thickness=3): :display(m00,m01,m2,m3,m4,m5,scaling=constrained,view=[15..15,-15..15],axes=normal);
Aplicao 7
Equaes Diferenciais com Autovetores
Sugestes/Respostas ao Projeto
ATENO Este um arquivo muito grande. Se voc est vendo uma figura estranha, acione
EDIT/EXECUTE.
Os seguintes comandos (no documentados) foram usados para o resultado do Projeto Parte 3.
Os restantes comandos Maple mostram como gerar uma srie de retratos de fase.
Primeiro observe as muitas coisas que o Maple pode fazer com Equaes Diferenciais!
> restart:with(DEtools);with(plots):with(linalg):
[DEnormal, DEplot, DEplot3d, DEplot_polygon, DFactor, Dchangevar, GCRD,
LCLM, PDEchangecoords, RiemannPsols, abelsol, adjoint, autonomous,
bernoullisol, buildsol, buildsym, canoni, chinisol, clairautsol,
constcoeffsols, convertAlg, convertsys, dalembertsol, de2diffop, dfieldplot,
diffop2de, eigenring, endomorphism_charpoly, equinv, eta_k, eulersols,
exactsol, expsols, exterior_power, formal_sol, gen_exp, generate_ic,
genhomosol, hamilton_eqs, indicialeq, infgen, integrate_sols, intfactor,
kovacicsols, leftdivision, liesol, line_int, linearsol, matrixDE,
matrix_riccati, moser_reduce, mult, newton_polygon, odeadvisor, odepde,
parametricsol, phaseportrait, poincare, polysols, ratsols, reduceOrder,
regular_parts, regularsp, riccati_system, riccatisol, rightdivision,
separablesol, super_reduce, symgen, symmetric_power, symmetric_product,
symtest, transinv, translate, untranslate, varparam, zoom]
Warning, new definition for adjoint
Warning, new definition for norm
Warning, new definition for trace
> restart:with(linalg):with(plots):A:=matrix([[4,3],[3,7]]);
Warning, new definition for norm
Warning, new definition for trace
A := matrix([[4, 3], [3, 7]])
> t:=trace(A);eigenvectors(A);
t := 11
[11/2+3/2*5^(1/2), 1, {vector([-1/2+1/2*5^(1/2), 1])}] [11/2-3/2*5^(1/2),
1, {vector([-1/2-1/2*5^(1/2), 1])}]
> dd:=det(A);t^2-4*dd;evalf(eigenvectors(A));
dd := 19
45
[8.854101967, 1., {vector([1., 1.618033989])}] [2.145898033, 1.,
{vector([1., -.6180339890])}]
> Di:=matrix([[8.85^k,0],[0,2.14^k]]);
Di := matrix([[8.85^k, 0], [0, 2.14^k]])
evalf(evalm(P&*Di&*inverse(P)&*[.6,1]));evalf(evalm( P&*Di&*inverse(P)&*[.6,1]));evalf(
evalm( P &*Di&*inverse(P)&*[-1.6,1]));evalf(evalm(P&*Di&*inverse(P)&*[5,1]));evalf(evalm(
P &*Di&*inverse(P)&*[-2,-1]));evalf(evalm(P&*Di&*inverse(P)&*[.5,-3])); evalf(evalm(P&*
Di&*inverse(P)&*[1,0]));
>
vector([1.000000000*8.85^k+.9999999994*2.14^k, 1.618033989*8.85^k.6180339885*2.14^k])
vector([1.170820394*8.85^k-.1708203935*2.14^k, 1.894427190*8.85^k+
.1055728092*2.14^k])
vector([.6130495171*8.85^k-.130495170e-1*2.14^k,
.9919349549*8.85^k+.80650451e-2*2.14^k])
vector([.6130495171*8.85^k-.130495170e-1*2.14^k,
.9919349549*8.85^k+.80650451e-2*2.14^k])
vector([.49844720e-2*8.85^k-1.604984472*2.14^k, .80650451e2*8.85^k+.9919349549*2.14^k])
vector([1.829179608*8.85^k+3.170820393*2.14^k, 2.959674775*8.85^k1.959674775*2.14^k])
vector([-1.000000000*8.85^k-.9999999994*2.14^k, -1.618033989*8.85^k+
.6180339885*2.14^k])
vector([-1.203444186*8.85^k+1.703444186*2.14^k, -1.947213595*8.85^k1.052786405*2.14^k])
vector([.2763932023*8.85^k+.7236067977*2.14^k, .4472135954*8.85^k.4472135954*2.14^k])
> m1:=plot([1.000000000*8.85^k+.9999999994*2.14^k, 1.618033989*8.85^k-
.6180339885*2.14^k ,k=-4..4],color=black):
> m2:=plot([1.170820394*8.85^k-.1708203935*2.14^k, 1.894427190*8.85^k+.1055728092*
2.14^k,k=-4..4],color=blue):
> m3:=plot([.6130495171*8.85^k-.130495170e-1*2.14^k, .9919349549*8.85^k+.80650451e-2-
*2.14^k ,k=-4..4]):
> m4:=plot([.6130495171*8.85^k-.130495170e-1*2.14^k, .9919349549*8.85^k+.80650451e-2-
*2.14^k,k=-4..4]):
> m5:=plot([.49844720e-2*8.85^k-1.604984472*2.14^k, .80650451e-2-
*8.85^k+.9919349549*2.14^k,k=-4..4],color=green):
> m6:=plot([1.829179608*8.85^k+3.170820393*2.14^k, 2.959674775*8.85^k-
1.959674775*2.14^k,k=-4..4],color=black):
> m7:=plot([-1.000000000*8.85^k-.9999999994*2.14^k, -1.618033989*8.85^k+.6180339885*
2.14^k,k=-4..4]):
> m8:=plot([-1.203444186*8.85^k+1.703444186*2.14^k, -1.947213595*8.85^k-
1.052786405*2.14^k,k=-4..4]):
42 Aplicao 7
> m9:=plot([.2763932023*8.85^k+.7236067977*2.14^k, .4472135954*8.85^k-
.4472135954*2.14^k,k=-4..4]):
> eig1:=plot([k, 1.618033989*k ,k=-10..10],color=blue,thickness=3):eig2:=plot([-1.618033989*k,
1*k,k=-10..10],color=blue,thickness=3):
> display(m1,m2,m3,m4,m5,m6,m7,m8,m9,eig1,eig2,view=[-10..10,-10..10]);
[x(t),y(t)],t=-4..4,[[x(0)=1,y(0)=1]],stepsize=.05, \
scene=[x(t),y(t)],linecolour=sin(t*Pi/2),method=classical[foreuler]);
[x(t),y(t)],t=-4..4,[[x(0)=1,y(0)=1],[x(0)=-1,y(0)=-1],[x(0)=-1,y(0)=1],[x(0)=1,y(0)=-1],
[x(0)=0,y(0)=1]],stepsize=.05, \
scene=[x(t),y(t)],linecolour=sin(t*Pi/2),method=classical[foreuler],linecolor=black);
A := matrix([[-2, 0], [0, -5]])
eigenvectors(A)
> with(linalg):with(DEtools):with(plots):A:=matrix([[0,1],[1,0]]);eigenvectors(A);
phaseportrait([D(x)(t)=y(t),D(y)(t)=-x(t)],\
[x(t),y(t)],t=-10..10,[[x(0)=1,y(0)=0 ]],stepsize=.05, \
scene=[x(t),y(t)],method=classical[foreuler],linecolor=black);
Warning, new definition for adjoint
Warning, new definition for norm
Warning, new definition for trace
Warning, new definition for adjoint
A := matrix([[0, 1], [1, 0]])
[-1, 1, {vector([1, -1])}] [1, 1, {vector([1, 1])}]
> A:=matrix([[1,0],[0,-1]]);eigenvectors(A);phaseportrait([D(x)(t)=x(t),D(y)(t)=-y(t)],\
44 Aplicao 7
> restart:with(DEtools):with(plots):with(linalg):A:=matrix([[1,-2],[2,1]]);t:=trace(A):dd:=
det(A):t^2-4*dd;eigenvectors(A);
Warning, new definition for adjoint
Warning, new definition for norm
Warning, new definition for trace
A := matrix([[1, -2], [2, 1]])
-16
[1+2*I, 1, {vector([1, -I])}] [1-2*I, 1, {vector([1, I])}]
> restart:with(DEtools):with(plots):phaseportrait([D(x)(t)=x(t)-2*y(t),D(y)(t)=2*x(t)+y(t)],\
> A:=matrix([[-1,2],[2,1]]);eigenvectors(A);phaseportrait([D(x)(t)=-x(t)+2*y(t),
D(y)(t)=2*x(t)+y(t)],\
[x(t),y(t)],t=-1..1,[[x(0)=1,y(0)=1 ],[x(0)=-1,y(0)=2 ],[x(0)=2,y(0)=-2 ],[x(0)=-1 ,y(0)=
2 ],[x(0)=2,y(0)=1 ],[x(0)=1,y(0)=1] ,[x(0)=2 ,y(0)=1],[x(0)=-3 ,y(0)=-1]],stepsize=.05, \
scene=[x(t),y(t)],method=classical[foreuler],linecolor=black);
A := matrix([[-1, 2], [2, 1]])
eigenvectors(A)
>
with(DEtools):with(linalg):A:=matrix([[0,1],[0,2]]);eigenvectors(A);phaseportrait([D(x)(t)=
y(t),D(y)(t)=2*y(t)],\
[x(t),y(t)],t=-1..1,[[x(0)=1,y(0)=1 ],[x(0)=-1,y(0)=2 ],[x(0)=2,y(0)=-2 ],[x(0)=-1 ,y(0)=2 ],
[x(0)=2,y(0)=1 ],[x(0)=1,y(0)=1] ,[x(0)=2 ,y(0)=1],[x(0)=-3 ,y(0)=-1]],stepsize=.05, \
scene=[x(t),y(t)],method=classical[foreuler],linecolor=black);
>
>
Warning, new definition for adjoint
Warning, new definition for norm
Warning, new definition for trace
A := matrix([[0, 1], [0, 2]])
[2, 1, {vector([1, 2])}] [0, 1, {vector([1, 0])}]
> with(DEtools):with(plots):with(linalg):A:=matrix([[0,1],[-10,-7]]):eigenvectors(A);
46 Aplicao 7
> A:=matrix([[-2,-3],[3,1]]);eigenvectors(A);
A := matrix([[-2, -3], [3, 1]])
[-1/2+3/2*I*3^(1/2), 1, {vector([1, -1/2-1/2*I*3^(1/2)])}] [-1/23/2*I*3^(1/2), 1, {vector([1, -1/2+1/2*I*3^(1/2)])}]
> phaseportrait([D(x)(t)=-2*x(t)-3*y(t),D(y)(t)= 3*x(t)-2*y(t)],\
[x(t),y(t)],t=-40..40,[[x(0)=1,y(0)=1],[x(0)=-1,y(0)=-1],[x(0)=-1,y(0)=-1],[x(0)=1,y(0)=-1],
[x(0)=0,y(0)=1]],stepsize=.05, \
scene=[x(t),y(t)],linecolour=sin(t*Pi/2),method=classical[foreuler],linecolor=black);
> with(linalg):A:=matrix([[0,1],[-10,-7]]);
A := matrix([[0, 1], [-10, -7]])
> eigenvectors(A);
[-2, 1, {vector([1, -2])}] [-5, 1, {vector([1, -5])}]
> a:=phaseportrait([D(x)(t)= y(t),D(y)(t)= -10*x(t)-7*y(t)],\
[x(t),y(t)],t=-.2..0.2,[[x(0)=2,y(0)=2],[x(0)=-1,y(0)=-2 ],[x(0)=-2,y(0)=2],[x(0)=1,y(0)=-2],
[x(0)=1.5,y(0)=1]],stepsize=.5, \
scene=[x(t),y(t)],method=classical[foreuler],color=black,linecolor=black):b:=plot([-exp(5*t)+2*exp(-2*t), 5*exp(-5*t)-4*exp(-2*t),t=-1..1],color=red,thickness=4):display(a,b);
Aplicao 8
Uma Pequena Teoria dos Grafos com
o Polinmio Caracterstico
A maior parte deste projeto autoexplicativa e/ou exige demonstraes.
Sugestes/Respostas ao Projeto
Projeto Parte 1: Clculo das potncias da matriz de adjacncia.
> with(linalg):A:=matrix([[1,1,0,1],[1,0,0,0],[0,0,0,0],[1,0,0,0]]);
A := matrix([[1, 1, 0, 1], [1, 0, 0, 0], [0, 0, 0, 0], [1, 0, 0, 0]])
> evalm(A^2);
matrix([[3, 1, 0, 1], [1, 1, 0, 1], [0, 0, 0, 0], [1, 1, 0, 1]])
> evalm(A^3);
matrix([[5, 3, 0, 3], [3, 1, 0, 1], [0, 0, 0, 0], [3, 1, 0, 1]])
> evalm(A^50);
matrix([[750599937895083, 375299968947541, 0, 375299968947541],
[375299968947541, 187649984473771, 0, 187649984473771], [0, 0, 0, 0],
[375299968947541, 187649984473771, 0, 187649984473771]])
Aplicao 9
A Transformao de Lorentz-Einstein
ATENO Este um arquivo muito grande. Se voc est vendo uma figura estranha, acione
EDIT/EXECUTE/WORKSHEET.
PLANO DE FUNDO: Estes grficos foram usados no Plano de Fundo deste Projeto.
> restart:with(linalg):A:=matrix([[1,-.5],[0,1]]);
Warning, new definition for norm
Warning, new definition for trace
A := matrix([[1, -.5], [0, 1]])
> evalm(A&*[x,y]);
vector([x-.5*y, y])
> with(plots):m1:=plot3d([x,y,0],x=0..1,y=0..1):m2:=plot3d([x-.5*y,y,0],x=0..1,y=0..1):
display(m2, orientation=[-90,0],scaling=constrained,axes=normal);
> with(linalg):evalm(inverse(A)&*[x,y]);
vector([x+.5*y, y])
> plot3d([x+.5*y, y,0],x=0..1,y=0..1,orientation=[-90,0],scaling=constrained,axes=normal);
Embora esta no seja uma resposta completa ao projeto, explicamos alguns passos. A matriz A
para a transformao direta construda com
v = 0.4 c.
50 Aplicao 9
> with(linalg):v:=.5*c;k:=1/sqrt(1-v^2/c^2);A:=matrix([[k,-k*v],[-k*v/c^2,k]]):c:=1:
Warning, new definition for norm
Warning, new definition for trace
v := .5*c
k := 1.154700538
A matriz A agora aplicada s coordenadas (x,t) do plano e aos vetores da base [1,0] e [0,1].
> evalm(A&*[x,t]);
vector([1.154700538*x-.5773502690*t, -.5773502690*x+1.154700538*t])
> evalm(A&*[1,0]);
vector([1.154700538, -.5773502690])
> evalm(A&*[0,1]);
vector([-.5773502690, 1.154700538])
.5773502690*t, 1.154700538*t,t=0..1],color=blue):display(m1,m2,axes=normal,
scaling=constrained);
(Alis, se quisermos completar o diagrama, nos movemos em 3 dimenses. Somente assim o Maple
pode fazer o sombreamento.)
A Transformao de Lorentz-Einstein 51
> evalm(u*[1.154700538, -.5773502690] + v*[-.5773502690, 1.154700538]);
vector([1.154700538*u-.5773502690*v, -.5773502690*u+1.154700538*v])
> plot3d([1.154700538*u-.5773502690*v, -.5773502690*u+1.154700538*v,0],u=0..1,v=0..1,
orientation=[-90,0],scaling=constrained,axes=normal);
Agora calculamos as projees dos vetores vermelho e azul eles podem ser facilmente vistos
como [0, 1,15] e [1,15, 0]. Colocamos pequenos crculos nas pontas desses vetores para efeito
dramtico.
> n1:=plot([.02*cos(t)+1.15, .02*sin(t)-.577,t=0..2*Pi],color=black,thickness=4):
n2:=plot([.02*cos(t)-.577, .02*sin(t)+1.15,t=0..2*Pi],color=black,thickness=4):n3:=
plot([.02*cos(t)+1.15, .02*sin(t), t=0..2*Pi],color=black,thickness=4):
> n4:=plot([.02*cos(t), .02*sin(t)+1.15,t=0..2*Pi],color=black,thickness=4):display(m1,m2,n1,
n2,n3,n4, scaling=constrained);
> display(m1,m2,n1,n2,n3,n4, scaling=constrained);
52 Aplicao 9
Vemos que parece que o sistema mvel de (vermelho, azul) ou (x,t) encolheu, quando medido
pelas projees sobre os eixos (pretos), (x,t).
1.154700539*t, t=0..1],color=blue):display(m1,m2);
E parece, olhando para as projees, que o sistema estacionrio (vermelho, azul) ou (x,t) encolheu quando medido por suas projees sobre a referncia (x,t).
scaling=constrained,orientation=[-90,0],axes=normal);
A Transformao de Lorentz-Einstein 53
E REVERSA;
> evalm(B&*[xprime,tprime]);
vector([1.154700539*xprime+.5773502696*tprime, .5773502696*xprime+
1.154700539*tprime])
Observamos simplesmente uma troca de sinal nessas comparaes. Tentemos os mesmos clculos
com variveis genricas:
> v:='v':k:='k':c:='c': k:=1/sqrt(1-v^2/c^2);A:=matrix([[k,-k*v],[-k*v/c^2,k]]): B:=inverse(A);
k := 1/(1-v^2/c^2)^(1/2)
B := matrix([[1/((c^2-v^2)/c^2)^(1/2), 1/((c^2-v^2)/c^2)^(1/2)*v], [1/
((c^2-v^2)/c^2)^(1/2)*v/c^2, 1/((c^2-v^2)/c^2)^(1/2)]])
> direct:=evalm(A&*[x,t]);reverse:=evalm(B&*[xprime,tprime]);
direct := vector([1/(1-v^2/c^2)^(1/2)*x-1/(1-v^2/c^2)^(1/2)*v*t, -1/(1-v^2/
c^2)^(1/2)*v/c^2*x+1/(1-v^2/c^2)^(1/2)*t])
reverse := vector([1/((c^2-v^2)/c^2)^(1/2)*xprime+1/((c^2-v^2)/
c^2)^(1/2)*v*tprime, 1/((c^2-v^2)/c^2)^(1/2)*v/c^2*xprime+1/((c^2-v^2)/
c^2)^(1/2)*tprime])
54 Aplicao 9
(Simplificando isto mo, encontramos o mesmo padro que vimos quando k era uma constante especificada. As transformaes DIRETA e REVERSA realmente se assemelham.)
O caso em que v = 0.
> restart:with(linalg):v:=0;k:=1/sqrt(1-v^2/c^2);A:=matrix([[k,-k*v],[-k*v/c^2,k]]):
Warning, new definition for norm
Warning, new definition for trace
v := 0
k := 1
> evalm(A&*[x,t]);evalm(A&*[1,0]):
vector([x, t])
> inverse(A);
matrix([[1, 0], [0, 1]])
> B:=matrix([[1,-v],[0,1]]);
B := matrix([[1, 0], [0, 1]])
> evalm(B&*[x,t]);
vector([x, t])
> evalm(A&*[1,0]);
>
vector([1, 0])
> evalm(A&*[0,1]);
vector([0, 1])
> with(plots):m1:=plot([1.00*t,0*t,t=0..1],color=red,thickness=3):m2:=plot([0*t, 1.000*t,t=0..1],
color=blue,thickness=3):display(m1,m2,axes=normal);
A Transformao de Lorentz-Einstein 55
Nota: estas equaes deveriam ser muito mais simplificadas do que o Maple se preocupa em fazer. Na
forma simplificada elas se assemelham s transformaes diretas.
Aplicao 10
Imagens Fractais
A explicao, embora breve, dada no projeto. Aqui mostramos os passos em Maple.
> with(plots):with(linalg):
Warning, new definition for norm
Warning, new definition for trace
> Triangl:=linalg[matrix](3,6,[[.5,0,0,.5,1,1],[.5,0,0,.5,50,1],[.5,0,0,.5,50,50]]);
Triangl := matrix([[.5, 0, 0, .5, 1, 1], [.5, 0, 0, .5, 50, 1], [.5, 0, 0,
.5, 50, 50]])
> Square:=linalg[matrix](4,6,[[.5,0,0,.5,1,1],[.5,0,0,.5,50,1],[.5,0,0,.5,1,50],[.5,0,0,.5,50,50]]);
Square := matrix([[.5, 0, 0, .5, 1, 1], [.5, 0, 0, .5, 50, 1], [.5, 0, 0,
.5, 1, 50], [.5, 0, 0, .5, 50, 50]])
> Fern:=linalg[matrix](4,6,[[0,0,0,.16,0,0],[.85,.04,-.04,.85,0,1.6],[.2,-.26,.23,.22,0,1.6],
[-1.5,.28,.26,.24,0,.44]]);
Fern := matrix([[0, 0, 0, .16, 0, 0], [.85, .4e-1, -.4e-1, .85, 0, 1.6],
[.2, -.26, .23, .22, 0, 1.6], [-1.5, .28, .26, .24, 0, .44]])
> Dragon:=linalg[matrix](2,6,[[.824074, .281482, -.212346, .864198, -1.882290,
Imagens Fractais 57
> k:=krand();
> newx:=m1[k,1]*x+m1[k,2]*y+m1[k,5];
> newy:=m1[k,3]*x+m1[k,4]*y+m1[k,6];
> x:=newx;
> y:=newy;
> if i > 10 then
> s:=s union{[x,y]};
> fi;
>
> od;
>
> plot([op(s)], style=POINT, symbol=POINT,color=black);
>
>
>
> end;
Warning, `krand` is implicitly declared local
ifs_frac := proc (m1::matrix, NumIterat::integer, Rank::integer)
local x, y, s, i, k, newx, newy, krand; x := 0; y := 0; s := {};
for i to NumIterat do krand := rand(1 .. Rank); k := krand(); newx :=
m1[k,1]*x+m1[k,2]*y+m1[k,5]; newy := m1[k,3]*x+m1[k,4]*y+m1[k,6];
x := newx; y := newy; if 10 < i then s := `union`(s,{[x, y]}) fi od;
plot([op(s)],style = POINT,symbol = POINT,color = black) end
>
>
> ifs_frac(Triangl,1000,3);
58 Aplicao 10
> ifs_frac(Fern,3000,4);
> ifs_frac(Square,1000,4);
> ifs_frac(Dragon,1000,2);