Escolar Documentos
Profissional Documentos
Cultura Documentos
Matematica e Computac~ao.
CDD: 004.0151
006.6
515
Este mini-curso tem por objetivo principal reunir alguns dos conceitos
mais importantes da A lgebra Linear para os alunos de cursos de graduaca~o em areas
exatas, como Matematica, Informatica e Engenharias.
O material aqui relacionado vem sendo utilizado na disciplina de A lgebra
Linear e Geometria Analtica do currculo do curso de Bacharelado em Informatica
da PUCRS desde o primeiro semestre letivo de 1998.
A diferenca fundamental de um curso tradicional e sua vis~ao computa-
cional, com utilizac~ao do software de computac~ao algebrica MAPLE V, bem como o
uso dos conceitos matematicos desenvolvidos em problemas da Computac~ao Graca,
como interpolac~ao e ajuste de polin^omios, transformaco~es lineares e ans, morphing
e criptograa, numa vis~ao computacional e pratica, proporcionando aprendizado de
conceitos de A lgebra Linear e do software MAPLE V.
A pesquisa desenvolvida para a realizac~ao deste mini-curso teve o apoio
da FAPERGS { Fundac~ao de Amparo a Pesquisa do Estado do Rio Grande do Sul.
Os agradecimentos devem tambem ser debitados aos professores Paulo
Winterle e Francisco Leal Moreira, por suas inumeras e frutferas discuss~oes e con-
tribuic~oes.
1 INTRODUCA~ O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 APLICACO~ ES . . . . . . . . . . . . ................... 82
5.1 Ajuste de Dados . . . . . . . . . . ................... 84
5.2 Interpolac~ao Polinomial . . . . . ................... 89
5.3 \Splines Cubicos" . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.4 Transformac~oes Lineares Planas . . . . . . . . . . . . . . . . . . . 114
5.4.1 Rotac~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.4.2 Re
ex~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.4.2.1 Re
ex~ao em relac~ao a reta OX . . . . . . . . . . . . . . . . . . . . 119
5.4.2.2 Re
ex~ao em relac~ao a reta OY . . . . . . . . . . . . . . . . . . . . 120
5.4.2.3 Re
ex~ao em relac~ao a origem . . . . . . . . . . . . . . . . . . . . . 120
5.4.2.4 Re
ex~ao em relac~ao a uma reta qualquer passando pela origem . . . 122
Belo Horizonte/MG.
Sumario 7
5.4.2.5 Re
ex~ao de \Householder" . . . . . . . . . . . . . . . . . . . . . . . 122
5.4.3 Homotetia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.4.4 Cisalhamento Horizontal . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4.5 Cisalhamento Vertical . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.5 Autovalores e Autovetores . . . . . . . . . . . . . . . . . . . . . . . 131
5.6 Morphing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Belo Horizonte/MG.
Sumario 9
LISTA DE FIGURAS
Figura 5.1 Equac~ao de Ajuste: y = 2x + 3 . . . . . . . . . . . . . . . . . . 88
Figura 5.2 Polin^omio Interpolador: p(x) = x3 ; 2x2 + 3x ; 5 . . . . . . . . 93
Figura 5.3 Func~ao de Runge: f (x) = 1 + 125x2 . . . . . . . . . . . . . . . . 99
Figura 5.4 Splines Cubicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Figura 5.5 Modelo Geometrico Padr~ao . . . . . . . . . . . . . . . . . . . . 116
Figura 5.6 Rotac~ao de ^angulo = 35 . . . . . . . . . . . . . . . . . . . . . 118
Figura 5.7 Re
ex~ao em relac~ao a reta OX . . . . . . . . . . . . . . . . . . 119
Figura 5.8 Re
ex~ao em relac~ao a reta OY . . . . . . . . . . . . . . . . . . 120
Figura 5.9 Re
ex~ao em relac~ao a origem . . . . . . . . . . . . . . . . . . . 121
Figura 5.10 Re
ex~ao em relac~ao a reta y = ;x . . . . . . . . . . . . . . . . 122
Figura 5.11 Re
ex~ao de Householder em relac~ao ao vetor ~u = (3; 4) . . . . . 124
Figura 5.12 Contrac~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Figura 5.13 Dilatac~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Figura 5.14 Cisalhamento horizontal com > 0 . . . . . . . . . . . . . . . . 127
Figura 5.15 Cisalhamento horizontal com < 0 . . . . . . . . . . . . . . . . 128
Figura 5.16 Cisalhamento vertical com > 0 . . . . . . . . . . . . . . . . . 129
Figura 5.17 Cisalhamento vertical com < 0 . . . . . . . . . . . . . . . . . 130
Figura 5.18 Morphing: Frame 1 . . . . . . . . . . . . . . . . . . . . . . . . . 135
XXIV CNMAC
10 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Figura 5.19 Morphing: Frame 2 . . . . . . . . . . . . . . . . . . . . . . . 136
Figura 5.20 Morphing: Frame 3 . . . . . . . . . . . . . . . . . . . . . . . 136
Figura 5.21 Morphing: Frame 4 . . . . . . . . . . . . . . . . . . . . . . . 137
Figura 5.22 Morphing: Frame 5 . . . . . . . . . . . . . . . . . . . . . . . 137
Figura 5.23 Morphing: Frame 6 . . . . . . . . . . . . . . . . . . . . . . . 138
Belo Horizonte/MG.
Sumario 11
LISTA DE TABELAS
Tabela 4.1 Sequ^encia de vetores calculados pelo Metodo de Gauss-Seidel . 70
Tabela 5.1 Valores Tabulados: Ajuste Linear y = ax + b. . . . . . . . . . . 84
Tabela 5.2 Valores Tabulados: Funca~o de Runge. . . . . . . . . . . . . . . . 94
XXIV CNMAC
APRESENTACA~ O
Desde 1996, professores das disciplinas de A lgebra Linear e Geometria
Analtica da FAMAT/PUCRS tem usado o software MAPLE V, mostrando aos alunos
aplicac~oes para varios problemas vistos em aula. No XXI CNMAC foi ministrado
o minicurso Geometria Analtica: Um Enfoque Computacional e agora, dando con-
tinuidade ao projeto, estamos submetendo este minicurso. O mesmo visa o estudo
e a resoluc~ao de problemas classicos de A lgebra Linear ministrados a alunos de
graduac~ao, tais como, interpolac~ao/ajuste de polin^omios, transformac~oes lineares e
ans, morphing e criptograa, numa vis~ao computacional e pratica, proporcionando
aprendizado de conceitos de A lgebra Linear e do software MAPLE V.
Ementa:
Matrizes e vetores, interpolac~ao e ajuste de dados, transformaco~res lin-
eares e ans, morphing de imagens planas, MAPLE V: comandos para matrizes e
vetores e bibliotecas linalg, simplex, plots.
\A lgebra Linear Aplicada para Cursos de Matematica e Com-
putac~ao" e um livro elaborado com a intenca~o de servir como material de apoio ao
ensino da disciplina Algebra Linear e Geometria Analtica, do currculo do Curso de
Bacharelado em Informatica da PUCRS.
Por ser um material didatico, houve a preocupaca~o em expor os conteudos
de maneira simples, porem sem perda do rigor matematico. Cada captulo e estru-
turado a partir de denic~oes basicas, seguidas de exemplos. Apos, s~ao apresentados
os resultados mais complexos e, nalmente, cada captulo e concludo com uma lista
de exerccios de xac~ao.
A distribuic~ao dos captulos e dada abaixo:
XXIV CNMAC
14 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Belo Horizonte/MG.
Apresentac~ao 15
1 INTRODUCA~ O
S~ao varios os problemas da Matematica e da Ci^encia da Computac~ao
cuja soluc~ao envolve a resoluc~ao de sistemas de equac~oes lineares e matrizes, tais
como:
Belo Horizonte/MG.
Apresentac~ao 17
2 MATRIZES, VETORES E SISTEMAS
LINEARES
Neste captulo ser~ao apresentados, de maneira resumida, os principais
conceitos sobre matrizes, vetores e sistemas lineares. Para maiores detalhes, vide
[KOL 97], [SCH 73], [LAW 95] (pag. 233 { 239), [KAI 80] (pag. 645 { 670) e
[STO 52] (pag. 1 { 104).
Denic~ao 2.3 (Matriz Transposta) Seja Amn uma matriz. A matriz trans-
posta da matriz A e a matriz denida por A0nm onde a0ij = (aji), ou seja
0 a11 a21 : : : am1 1
BB a12 a22 : : : am2 CC
A0 nm = BB@ ... ... ... ... CCA
a1n a2n : : : amn
XXIV CNMAC
18 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
0 1
1 2 3 4
Exemplo 2.1 Dada a matriz A34 = B@ 5 6 7 8 CA, sua transposta e A0 43 =
01 5 91 9 10 11 12
B
B 2 6 10 CC
B
@ 3 7 11 CA.
4 8 12
Denic~ao 2.4 (Matriz Quadrada) Diz-se que Amn e uma matriz quadrada se
e somente se m = n.
Denic~ao 2.9 (Matriz Diagonal) Diz-se que A e uma matriz diagonal se aij =
6 j.
0 sempre que i =
02 0 0 01
B C
Exemplo 2.5 A matriz A44 = BB@ 00 50 04 00 CCA e uma matriz diagonal.
0 0 0 1
Denic~ao 2.10 (Matriz Triangular Superior) Diz-se que A e uma matriz tri-
angular superior se aij = 0 sempre que i > j .
02 5 8 71
B C
Exemplo 2.6 A matriz A44 = BB@ 00 50 ;44 ;20 CCA e uma matriz triangular supe-
0 0 0 1
rior.
Denic~ao 2.11 (Matriz Triangular Inferior) Diz-se que A e uma matriz tri-
angular inferior se aij = 0 sempre que i < j .
XXIV CNMAC
20 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
0 4 0 0 0 1
B CC
Exemplo 2.7 A matriz A44 = BB@ 93 ;56 04 0
0 CA e uma matriz triangular in-
p
;1 2 1
ferior.
1. (A + B ) = (A) + (B );
2. ( + )A = (A) + (A);
3. (: )A = :(A);
4. 1A = A.
1. A(BC ) = (AB )C ;
2. A(B + C ) = AB + AC ;
3. (A + B )C = AC + BC ;
4. (AB ) = (A)B .
Note que este exemplo tambem mostra que o produto de duas matrizes
n~ao nulas pode resultar numa matriz nula.
Belo Horizonte/MG.
Apresentac~ao 23
Denic~ao 2.19 (Matriz Idempotente) Seja Ann uma matriz quadrada. Diz-
se que A e uma matriz idempotente se A2 = A.
01 0 0 2 1
B CC
Exemplo 2.12 (Matriz idempotente) A matriz A = BB@ 00 10 0
1
3
4 CA e idempo-
0 1 0 0 2 1 0 1 0 0 2 1 00 10 0
0
0
0
21
B 0 1 0 3 CC BB 0 1 0 3 CC BB 0 1 0 3C
tente pois A2 = A:A = B
B@ 0 0 1 4 CA : B@ 0 0 1 4 CA = B@ 0 0 1 4A
CC.
0 0 0 0 0 0 0 0 0 0 0 0
Denic~ao 2.20 (Matriz Nilpotente) Seja Ann uma matriz quadrada. Diz-se
que A e uma matriz nilpotente se existe um inteiro k tal que Ak = O, ou seja, o
produto de k matrizes A resulta na matriz nula.
00 1 0 31
B C
Exemplo 2.13 (Matriz nilpotente) A matriz A = BB@ 00 00 30 04 CCA e nilpotente
0 0 1 0 3 1 0 0 1 0 3 1 00 0 0 1 0 0 0 3 1 0 0 1 0 3 1
B 0 0 3 0 CC BB 0 0 3 0 CC BB 0 0 3 0 CC BB 0 0 3 0 CC
pois A4 = A:A:A:A = B
B@ 0 0 0 4 CA : B@ 0 0 0 4 CA : B@ 0 0 0 4 CA : B@ 0 0 0 4 CA =
00 0 0 01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B
B 0 0 0 0C C
B
@ 0 0 0 0 CA.
0 0 0 0
Denic~ao 2.21 (Matriz Raiz Quadrada) Seja Ann uma matriz quadrada. Diz-
se que B e a matriz raiz quadrada de A se B 2 = A.
Exemplo 2.14 (Matriz raiz quadrada: (exemplo 7.8.6 da pag. 356 de [SCH 73]).)
XXIV CNMAC
24 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
3 ;1 ! 5 ;3 !
B = ; 12 23 e a raiz quadrada da matriz A = ; 32 25 pois
3 ;1 ! 3 ;1 ! 5 ;3 !
2 2 2 2
B 2 = ; 12 23 : ; 12 23 = ; 32 25 = A.
2 2 2 2 2 2
Denic~ao 2.22 (Produto Escalar) O produto escalar e uma func~ao que asso-
cia, a cada par de vetores n-dimensionais um unico numero real dado por:
X
n
~u ~v = ui vi
i=1
Exemplo 2.15 O produto escalar entre os vetores ~u = (1; 3; 2; ;4) e ~v = (9; ;3; 5; 1)
e
~u ~v = 1:9 + 3:(;3) + 2:5 + (;4):1 = 6.
1. ~u ~u 0;
2. ~u ~v = ~v ~u;
3. (~u + ~v) w~ = ~u w~ + ~v w~ ;
4. (~u) ~v = (~u ~v).
Denic~ao 2.23 (Matriz Positivo Denida) Uma matriz simetrica Ann e dita
positivo denida se ~u0A~u > 0, para qualquer vetor ~u n~ao nulo.
Exemplo 2.19 0 4 7 0 81
B 9 ;5 ;1 2 CC X4
O traco da matriz A = B
B@ 3 6 4 4 CA e (A) = aii = 4+(;5)+4+1 = 4.
i=1
;1 0 2 1
XXIV CNMAC
28 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
2.3 Metrica Matricial
Segundo Varga [VAR 62] os conceitos de norma e dist^ancia s~ao muito
importantes na analise numerica iterativa, pois permitem decidir qual de dois metodos
iterativos apresenta maior velocidade de converg^encia.
No captulo 4 sera estudado um metodo iterativo para a resoluc~ao de
problemas matriciais, sendo, desta forma, necessario o estudo de normas e dist^ancias
para vetores e matrizes.
A seguir ser~ao apresentados os resultados mais importantes desta teoria.
Denic~ao 2.32 (Norma de um Vetor) Uma norma vetorial e uma func~ao que
associa, a cada vetor ~u, um unico numero real n~ao negativo jj~ujj que satisfaz as
seguintes propriedades:
1. (A) = (A);
2. (A + B ) = (A) + (B );
3. (AB ) = (BA);
4. (A0) = (A);
5. (A0A) 0;
Teorema 2.11 (Propriedades da Inversa) Sejam A e B duas matrizes. Ent~ao,
s~ao validas:
1. (A + B );1 = A;1 + B ;1 ;
2. (AB );1 = B ;1 A;1 ;
3. (A);1 = 1 A;1, com 6= 0;
4. (A;1 );1 = A;
5. (A;1 ) = (1A) , desde que (A) 6= 0.
linguagens de programac~ao ;
software de computac~ao algebrica (SCAs).
Faremos, a seguir, uma breve descrica~o de cada um destes tipos, apre-
sentando os software/linguagens mais frequentemente utilizados.
PASCAL XSC
FORTRAN-SC
C-XSC
Para maiores detalhes sobre esta linguagem de programac~ao vide [KLA 93,
HAM 95].
O FORTRAN e uma linguagem de programac~ao que surgiu em 1954 para
resolver pro-blemas da computac~ao cientca. Com o desenvolvimento da Analise
Numerica e da Artimetica Computacional, ela foi sendo constantemente modern-
izada e, atualmente, existe uma extens~ao do FORTRAN, chamada de FORTRAN-SC.
Esta vers~ao tem a caracterstica de permitir o facil manuseio de arrays din^amicos,
alem de proporcionar notaca~o matematica para formulas complicadas (atraves do
uso de func~oes e operadores universais) com o objetivo de reduzir o esforco de pro-
gramac~ao necessario para escrever programas aplicativos que surgem em problemas
da Analise Numerica.
O PASCAL XSC1 e uma linguagem de programac~ao voltada para a Com-
putaca~o Cientca. Ele difere das demais linguagens de programaca~o pois tem a
1 O nome provem de PASCAL eXtension for Scientic Computation.
XXIV CNMAC
34 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
capacidade de ser portavel a diversas plataformas (PCs, estac~oes de trabalho, su-
percomputadores), alem de possuir diversas ca-ractersticas adicionais, dentre as
quais pode-se citar:
operadores universais;
sobrecarga de procedimentos;
arrays din^amicos;
aritmetica de alta exatid~ao;
modulos numericos para a resoluc~ao de sistemas lineares e invers~ao de
matrizes;
aritmetica intervalar.
Para maiores detalhes sobre o PASCAL XSC leia as seguintes refer^encias:
[KLA 91, HOH 97].
Help on line;
bibliotecas de func~oes matematicas e estatsticas;
comandos para controle de cor e som e animaca~o;
arquivos com demonstrac~oes para o usuario;
2 O nome MATLAB provem de MATrix LABoratory.
XXIV CNMAC
36 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
func~oes matematicas avancadas;
manipulac~ao de arquivos de dados;
programac~ao.
Detalhes de utilizaca~o do MATLAB podem ser vistos em [MATLAB] e
exemplos de aplicac~ao em [HAN 95].
O DERIVE foi desenvolvido pela Soft Warehouse para resolver problemas
basicos da Matematica. Ele e um programa matematico computacional, que fun-
ciona como um assistente matematico para o aprendizado e inclui comandos basicos
para gracos de func~oes , calculo, algebra, geometria analtica, trigonometria e ma-
trizes. Seu uso acabou sendo pouco difundido, devido a interface pouco amigavel,
que e feita atraves de janelas com pouca interatividade.
Maiores detalhes sobre este software podem ser encontrados em [KUT 96].
Belo Horizonte/MG.
Apresentac~ao 37
3.3 MAPLE V
Help on line;
o software e modularizado, de forma a manipular ecientemente a memoria
disponvel na maquina;
exist^encia de 24 bibliotecas de func~oes matematicas e estatsticas, den-
tre as quais pode-se citar:
combinat { biblioteca para Matem atica Discreta;
diffalg { biblioteca para A lgebra Diferencial;
finance { biblioteca para Matem atica Financeira;
geometry { biblioteca para Geometria;
linalg { biblioteca de A lgebra Linear;
logic { biblioteca para L ogica e A lgebra Booleana;
Matlab { biblioteca para interface com o MATLAB;
plots { biblioteca gr aca;
simplex { biblioteca para Programa c~ao Linear.
stats { biblioteca para Estatstica;
student { biblioteca para o C alculo;
interatividade com o usuario, atraves de edica~o de comandos in line;
realizac~ao de computaco~es simbolicas, numericas e gracas;
XXIV CNMAC
38 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
precis~ao innita;
permite a convers~ao de documentos para os formatos TEX e html, o
que auxilia na edic~ao de textos e na criaca~o de paginas na internet;
Palettes integradas para input/output de dados;
arquivos com demonstraco~es para o usuario;
func~oes matematicas e estatsticas, basicas e avancadas;
manipulac~ao de arquivos de dados;
programac~ao.
Belo Horizonte/MG.
Apresentac~ao 39
Como ja foi dito, ele possui uma biblioteca, denominada linalg, com
os seguintes comandos:
Belo Horizonte/MG.
Apresentac~ao 41
Comando: convert
Sintaxe: convert(Express~ao, Tipo);
Descric~ao: Converte uma express~ao de um determinado tipo para outro.
Exemplo: convert([[1,2,3,4],[5,6,7,8]],
! array);
Resultado: 1 2 3 4
5 6 7 8
Comando: crossprod
Sintaxe: crossprod(V1,V2);
Descric~ao: Calcula o produto vetorial entre os vetores V 1 e V 2.
Exemplo: crossprod([1,2,3],[4,5,6]);
Resultado: [;3; 6; ;3]
Comando: det
Sintaxe: det(M);
Descric~ao: Calcula o determinante da matriz M .
Exemplo: det([[4,2,-4,2],[2,10,4,4],[-4,4,9,3],[2,4,3,15]]);
Resultado: 144
Comando: diag
Sintaxe: diag(e1, e2, ... , en);
Descric~ao: Cria uma matriz diagonal com os elementos e1 ; e2; : : : ; en.
Exemplo: diag(1,2,1,3,4);
0 1
1 0 0 0 0
BB 0 2 0 0 0 CC
B C
Resultado: B BB 0 0 1 0 0 CCC
@0 0 0 3 0A
0 0 0 0 4
Comando: display
Sintaxe: display(ObjetosGraficos);
Descric~ao: Mostra uma sequ^encia de objetos gracos.
Exemplo: display(GP,GF);
XXIV CNMAC
42 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Comando: dotprod
Sintaxe: dotprod(V1,V2);
Descric~ao: Calcula o produto escalar entre os vetores V 1 e V 2.
Exemplo: dotprod([1,2,3],[4,5,6]);
Resultado: 32
Comando: evalf
Sintaxe: evalf(E);
Descric~ao: Avalia, em ponto
utuante, o resultado da express~ao E .
Exemplo: evalf(sqrt(5));
Resultado: 2:236067978
Comando: evalm
Sintaxe: evalm(Opera c~
ao);
Descric~ao: Avalia a operac~ao matricial realizada no argumento.
Exemplo: evalm([[1,2,3], ! [4,5,6]] - [[5,3,1], [6,4,2]]);
Resultado: ;4 ;1 2
;2 1 4
Comando: for from to by do od;
Sintaxe: for variavel from inicio to fim by passo do comando od;
Descric~ao: Estrutura de repetica~o do MAPLE V.
Exemplo: for i from 3 to 11 by 2 do print(i) od;
3
5
Resultado: 7
9
11
Comando: if then else fi;
Sintaxe: if (condic~
ao) then comando1 else comando2 fi;
Descric~ao: Desvio condicional do MAPLE V.
Exemplo: if (3>2) then print(Maior) else print(Menor) fi;
Resultado: Maior
Belo Horizonte/MG.
Apresentac~ao 43
Comando: inverse
Sintaxe: inverse(M);
Descric~ao: Obtem a matriz inversa de M .
Exemplo: inverse([[1,1,-1,0],[0,1,0,2],[0,0,1,1],[1,1,-1,1]]);
0 0 ;1 1 1 1
B 2 1 0 ;2 CC
Resultado: B B@ 1 0 1 ;1 CA
;1 0 0 1
Comando: linalg
Sintaxe: with(linalg):
Descric~ao: Carrega a biblioteca de A lgebra Linear do MAPLE V.
Exemplo: with(linalg):
Comando: linsolve
Sintaxe: linsolve(M,V);
Descric~ao: Resolve o sistema cuja matriz e M e o vetor e V .
Exemplo: linsolve([[1,2,3],[3,1,2],[2,3,1]], [10,11,12]);
Resultado: [ 13 ; 13 ; 7 ]
6 6 6
Comando: matadd
Sintaxe: matadd(M1,M2);
Descric~ao: Soma as matrizes M 1 e M 2.
Exemplo: matadd([[1,2,3], ! [4,5,6]], [[5,3,1], [6,4,2]]);
Resultado: 6 5 4
10 9 8
Comando: matrix
Sintaxe: matrix([[L1],[L2],...,[Ln]]);
Descric~ao: Cria uma matriz dada por n linhas.
Exemplo: matrix([[1,1,-1,0],[0,1,0,2],[0,0,1,1],[1,1,-1,1]]);
0 1 1 ;1 0 1
B 0 1 0 2 CC
Resultado: B B@ 0 0 1 1 CA
1 1 ;1 1
XXIV CNMAC
44 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Comando: multiply
Sintaxe: multiply(M,N);
Descric~ao: Multiplica as matrizes M e N .
Exemplo: multiply([[1,2,3], [4,5,6], [7,8,9]] ,
0 1
[[5,3,1], [6,4,2], [9,7,5]]);
44 32 20
Resultado: B
@ 104 74 44 CA
164 166 68
Comando: nops
Sintaxe: nops(Lista);
Descric~ao: Obtem o numero de elementos pertencentes a lista L.
Exemplo: nops([[1,2,3],[4,5,6],[7,8,9],[10,11,12]]);
Resultado: 4
Comando: normalize
Sintaxe: normalize(V1);
Descric~ao: Normaliza o vetor V 1, obtendo o seu versor.
Exemplo: normalize([2,6,9]);
Resultado: [ 2 ; 6 ; 9 ]
11 11 11
Comando: op
Sintaxe: op(Objeto);
Descric~ao: Mostra o conteudo do objeto.
Exemplo: op([[1,2,3],[4,5,6],[7,8,9],[10,11,12]]);
Resultado: [1; 2; 3]; [4; 5; 6]; [7; 8; 9]; [10; 11; 12]
Comando: plot
Sintaxe: plot(funcao, variavel=a..b);
Descric~ao: Plota o graco de uma funca~o com a variavel no intervalo [a; b].
Exemplo: plot(sin(x), x=0..2*Pi);
Comando: plots
Sintaxe: with(plots):
Descric~ao: Carrega a biblioteca graca do MAPLE V.
Exemplo: with(plots):
Belo Horizonte/MG.
Apresentac~ao 45
Comando: pointplot
Sintaxe: pointplot([[x1,y1],[x2,y2], ... , [xn,yn]]);
Descric~ao: Plota o conjunto de n pontos dados.
Exemplo: pointplot([[1,2],[1,4],[3,4],[3,2],[5,2]]);
Comando: polygonplot
Sintaxe: polygonplot([[x1,y1],[x2,y2], ... , [xn,yn]]);
Descric~ao: Plota uma poligonal unindo os n pontos dados.
Exemplo: polygonplot([[1,2],[1,4],[3,4],[3,2],[5,2]]);
Comando: print
Sintaxe: print(Express~ ao);
Descric~ao: Imprime o resultado da express~ao.
Exemplo: print(sqrt(2)*sin(Pi/4));
Resultado: 1
Comando: randmatrix
Sintaxe: randmatrix(m,n);
Descric~ao: Gera uma matriz de numeros aleatorios com m linhas e n colunas.
Exemplo: randmatrix(4,4);
0 17 ;11 ;1 2 1
B 0 1 0 1 CC
Resultado: B B@ 10 30 11 ;41 CA
14 12 ;10 21
Comando: restart
Sintaxe: restart;
Descric~ao: Reinicializa o MAPLE V.
Exemplo: restart;
Comando: scalarmul
Sintaxe: scalarmul(V1,A);
Descric~ao: Multiplica o vetor V 1 pelo escalar A.
Exemplo: scalarmul([1,2,3], 5);
Resultado: [5; 10; 15]
XXIV CNMAC
46 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Comando: seq
Sintaxe: seq(f, i = m..n);
Descric~ao: Cria uma sequ^encia de valores da funca~o f para os valores de i entre m e n.
Exemplo: seq( i*i, i=1..5 );
Resultado: 1; 4; 9; 16; 25
Comando: simplify
Sintaxe: simplify(Express~ ao)
Descric~ao: Simplica a express~ao dada.
Exemplo: simplify(angle([1,1,0],[8,1,4]));
Resultado: 14
Comando: solve
Sintaxe: solve(fEQ1, EQ2, : : :, EQng,fV1, V2, : : :, Vkg);
Descric~ao: Resolve o sistema de n equaco~es em k variaveis.
;f17
Exemplo: solve( 2*x-3*y=7, 5*x+4*y=9g, fx,yg);
55
Resultado: y = 23 ; x = 23
Comando: sqrt
Sintaxe: sqrt(N);
Descric~ao: Retorna a raz quadrada do numero N .
Exemplo: sqrt(5);
p
Resultado: 5
Comando: trace
Sintaxe: trace(M);
Descric~ao: Calcula o traco da matriz M .
Exemplo: trace([[8,2,4,2],[4,1,1,4],[8,4,0,3],[8,8,6,2]]);
Resultado: 11
Belo Horizonte/MG.
Apresentac~ao 47
Comando: transpose
Sintaxe: transpose(M);
Descric~ao: Obtem a transposta da matriz M .
Exemplo: transpose([[8,2,4,2],[4,1,1,4],[8,4,0,3],[8,8,6,2]]);
08 4 8 81
B 2 1 4 8 CC
Resultado: B B@ 4 1 0 6 CA
2 4 3 2
Comando: vandermonde
Sintaxe: vandermonde([e1, e2, ... , en]);
Descric~ao: Cria a matriz de Vandermonde com os elementos e1 ; e2; : : : ; en.
Exemplo: vandermonde([1,2,1,3,4]);
0 1
1 1 1 1
BB 1 2 4 8 16 CC 1
B C
Resultado: B BB 1 1 1 1 1 CCC
@ 1 3 9 27 81 A
1 4 16 64 256
Comando: vector
Sintaxe: vector(N, [C1, C2, : : :, CN]);
Descric~ao: Cria um vetor de dimens~ao N , com as coordenadas C 1, : : :, CN .
Exemplo: vector(3,[1,1,-1]);
Resultado: [1; 1; ;1]
Comando: with
Sintaxe: with(Biblioteca);
Descric~ao: Carrega uma biblioteca do MAPLE V.
Exemplo: with(linalg): with(plots): with(simplex);
Para outros comandos, ou maiores detalhes sobre o software MAPLE V
consulte a seguinte bibliograa: [MON 98, HEA 98, ELL 97, CHA 91, RED 96].
XXIV CNMAC
48 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
4 ME TODOS COMPUTACIONAIS PARA A
RESOLUCA~ O DE SISTEMAS LINEARES
Apresentaremos, neste captulo alguns dos principais metodos computa-
cionais para a resoluc~ao de sistemas lineares, justicando o emprego de cada um.
Comecaremos com os metodos diretos e depois discutiremos os metodos iterativos.
Convem observar que um metodo e dito direto se ele produz a soluc~ao
apos um numero nito de passos, enquanto que um metodo e dito iterativo se a
soluc~ao for encontrada como o limite de uma sequ^encia de passos.
Belo Horizonte/MG.
Apresentac~ao 51
03 2 0 1 31
BB 0 2 ;3 1 ;3 CC
B@ 0 8 ;8 2 ;10 C
A
0 ;10 3 ;5 15
XXIV CNMAC
52 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
L3 L3 ; 82 L2
03 2 0 1 31
BB 0 2 ;3 1 ;3 CC
B@ 0 0 4 ;2 2 CA
0 ;10 3 ;5 15
L4 L4 ; ;210 L2
03 2 0 1 31
BB 0 2 ;3 1 ;3 CC
B@ 0 0 4 ;2 2 CA
0 0 ;12 0 0
L4 L4 ; 12 4 L3
03 2 0 1 31
BB 0 2 ;3 1 ;3 CC
B@ 0 0 4 ;2 2 CA
0 0 0 ;6 6
Que resulta no seguinte sistema, triangular superior:
8 3x + 2y + 0z + t = 3
>
>
< 2y ; 3z + t = ;3
>
> 4z ; 2t = 2
: ;6t = 6
Da ultima equac~ao tiramos que t = ;1, que substitudo na penultima
da z = 0. Substituindo-se os valores de z e t na segunda equac~ao obtemos y = ;1
e, nalmente, substituindo y , z e t na primeira equac~ao temos o valor de x = 2.
A seguir, e apresentado o algoritmo de eliminac~ao Gaussiana. Para
maiores detalhes vide [CLA 94], pag. 71.
Belo Horizonte/MG.
Apresentac~ao 53
Algoritmo de Eliminaca~o Gaussiana:
Procedure :
> X[n]:=B[n]/A[n,n];
> for k from (n-1) by (-1) to 1 do
> X[k]:=B[k]:
> for i from (k+1) by 1 to n do
> X[k]:=X[k]-A[k,i]*X[i]:
> od;
> X[k]:=X[k]/A[k,k];
> od.
Procedure :
Belo Horizonte/MG.
Apresentac~ao 55
> for k from 1 by 1 to (n-1) do
> for i from (k+1) by 1 to n do
> for j from (k+1) by 1 to n do
> A[i,j]:=A[k,k]*A[i,j]-A[i,k]*A[k,j]:
> od:
> B[i]:=A[k,k]*B[i]-A[i,k]*B[k]:
> od:
> for l from (k+1) by 1 to n do
> A[l,k]:=0:
> od:
> od;
> X[n]:=B[n]/A[n,n];
> for k from (n-1) by (-1) to 1 do
> X[k]:=B[k]:
> for i from (k+1) by 1 to n do
> X[k]:=X[k]-A[k,i]*X[i]:
> od;
> X[k]:=X[k]/A[k,k];
> od;
Soluc~ao :
XXIV CNMAC
56 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Colocando o sistema na forma matricial, temos:
0 3 2 0 1 1 0x1 0 31
BB 9 8 ;3 4 CC BB y CC BB 6 CC
B@ ;6 4 ;8 0 CA : B@ z CA = B@ ;16 CA
3 ;8 3 ;4 t 18
Tomando a matriz estendida, de ordem 4 5, temos:
0 3 2 0 1 31
BB 9 8 ;3 4 6 CC
B@ ;6 4 ;8 0 ;16 CA
3 ;8 3 ;4 18
Aplicando o algoritmo de Castilhos obtemos a seguinte matriz de ordem
3 4:
0 "3 2
# "
3 0
# " # 1
3 1
# "
3 3
BB 9 8 9 ;3 9 4 CC 9 6
BB C
BB " # " # " # " # CCC 0 6 ;9 3 ;9 1
BB 3 2 3 0 3 1 3 3 C B 24 ;24 6 ;30 C
BB ;6 4 ;6 ;8 ;6 0 ;6 ;16 CCC = @ ;30 9 ; 15 45
A
BB C
B@ " 3 # " # " # " # CC
2 3 0 3 1 3 3 A
3 ;8 3 3 3 ;4 3 18
" #
a b
Onde c d = ad ; bc representa o determinante da matriz quadrada
!
a b .
c d
Aplicando novamente o algoritmo de Castilhos obtemos a seguinte ma-
triz de ordem 2 3:
Belo Horizonte/MG.
Apresentac~ao 57
0" # " # " #1
6 ;9 6 3 6 ;9
BB 24 ;24 24 6 24 ;30 C CC !
BB C 72 ; 36 36
BB " # " # " # CC = ;216 0 0
@ 6 ;9 6 3 6 ;9 A
;30 9 ;30 15 ;30 45
Finalmente, aplicando mais uma vez o algoritmo de Castilhos obtemos
a seguinte matriz de ordem 1 2, cuja soluca~o e imediata :
" # " #!
72 ;36 72 36 = ; 7776 7776
;216 0 ;216 0
Cuja soluc~ao e t = ;1.
A parte de retrosubstituic~ao e analoga a da eliminaca~o gaussiana e,
desta forma, sera omitida aqui.
XXIV CNMAC
58 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
A Fatorac~ao de Cholesky e dada pelo seguinte algoritmo:
Procedure :
> s:=0:
> for k from 1 by 1 to n do
> for i from 1 by 1 to (k-1) do
> s:=0:
> for j from 1 by 1 to (i-1) do
> s:=s+A[i,j]*A[k,j]:
> od:
> A[k,i]:=(A[k,i]-s)/A[i,i]:
> C[k,i]:=A[k,i]:
> s:=0:
> for j from 1 by 1 to (k-1) do
> s:=s+A[k,j]*A[k,j]:
> od:
> od:
> A[k,k]:=sqrt(A[k,k]-s):
> C[k,k]:=A[k,k]:
> od:
0 2 0 0 0 1
B 1 3 0 0 CC
Aplicando o algoritmo descrito acima, obtem-se a matriz C = B
B@ ;2 2 1 0 CA,
1 1 3 2
0 4 2 ;4 2 1 0 2 0 0 0 1 0 2 0 0 0 10
B 2 10 4 4 CC BB 1 3 0 0 CC BB 1 3 0 0 CC
de tal forma que B
B@ ;4 4 9 3 CA = B@ ;2 2 1 0 CA : B@ ;2 2 1 0 CA .
2 4 3 15 1 1 3 2 1 1 3 2
Fica, a cargo do leitor, efetuar os calculos para certicar-se do resultado.
No ap^endice esta a implementac~ao deste algoritmo em MAPLE V.
Belo Horizonte/MG.
Apresentac~ao 61
! ! !
2 ;3 : 1 7 = 7 + (;10) ; 0 + 8 14 + 0
! 1 5 ;1 0 6 + ( ;10) 7 + 14 ; 6 + (;8) =
5 14
;4 7
XXIV CNMAC
62 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Convem observar que o ganho, em termos de complexidade, n~ao e muito
grande, pois o numero total de multiplicaco~es cai de n3 para n2:8, porem a vantagem
deste algoritmo e a sua recursividade, que permite efetuar os calculos para matrizes
denidas em blocos, conforme sera mostrado no exemplo a seguir:
0 2 8 5 71 0 1 5 7 41
B 3 4 1 0 CC BB ;3 4 4 7 CC
Multiplicar as matrizes BB@ ;2 4 2 7 CA : B@ 1 0 0 1 CA
4 5 1 1 0 1 1 0
Neste caso, e preciso partir as matrizes em blocos, como abaixo:
0 2 8 5 71 0 1 5 7 41
BB 3 4 1 0 CC BB ;3 4 4 7 CC
B@ ;2 4 2 7 CA : B@ 1 0 0 1 CA
4 5 1 1 0 1 1 0
Agora, temos:
!
A= 3 4 2 8
!
B = 51 70
!
C = ;24 45
!
D = 21 71
!
E = ;13 54
!
F = 74 47
Belo Horizonte/MG.
Apresentac~ao 63
!
G = 10 01
!
H = 01 10
Da,
!
P = (A + D)(E + H ) = ;;266 84
44 ;
!
; 33
Q = (C + D)E = ;13 49 ;44
!
R = A(F ; H ) = 38 62 ;
33 37
!
S = D(G ; E ) = 213 ;;318 ;
!
T = (A + B )H = 154 74 ;
!
U = (C ; A)(E + F ) = ;369 ;80
20 ;
!
V = (B ; D)(G + H ) = ;13 ;31 .
!
P + S ; T + V = ;;178 49
31
!
R + T = 53 69
37 41
!
Q+S = ;12 13
;10 41
XXIV CNMAC
64 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
e
!
P + R ; Q + U = 499 22 52
De modo que a matriz produto e:
0 ;17 49 53 69 1 0 ;17 49 53 69 1
BB ;8 31 37 41 CC BB ;8 31 37 41 CC
B@ ;12 13 9 22 CA = B@ ;12 13 9 22 CA
;10 41 49 52 ;10 41 49 52
Obs.: No ap^endice A-1 esta a listagem deste algoritmo, executado em
MAPLE V .
Baseando-se na mesma ideia, o algoritmo pode ser modicado para se
determinar a inversa de uma matriz n~ao singular.
!
a b
Inverter a matriz quadrada M = c d . Isso signica determinar
! ! ! !
; 1 e f ;
uma matriz M = g h tal que M:M = c d : g h = 0 1 .
1 a b e f 1 0
O algoritmo ca:
P = a1 ;
Q = c:P ;
R = b:P ;
S = c:R;
T = (S ; d);
U = T1 ;
f = R:U ;
g = Q:U ;
Belo Horizonte/MG.
Apresentac~ao 65
V = R:g;
e = (P ; V );
h = (;U );
XXIV CNMAC
66 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Um exemplo numerico e dado a seguir:
!
Determinar a inversa da matriz M = 41 31 .
P = a1 = 14
Q = c P = 14
R = b P = 43
S = c R = 34
T = (S ; d) = ; 41
U = T1 = ;4
f = R U = ;3
g = Q U = ;1
V = R g = ; 43
e = (P ; V ) = 1
h = (;U ) = 4
!
Assim, a inversa e M ;1 = 1 ;3 .
;1 4
O problema de invers~ao de matrizes n~ao singulares de ordem qualquer
sera tratado na sec~ao 4.5.
Belo Horizonte/MG.
Apresentac~ao 67
4.2 Metodos Iterativos
A resoluc~ao de um sistema linear A:X = Y por um metodo iterativo
presume a obtenc~ao do vetor soluca~o X como o limite de uma sequ^encia de aprox-
imac~oes X [k] que convergem para X .
O metodo de Gauss-Seidel apresentado a seguir e um exemplo de metodo
iterativo para o calculo da soluc~ao de sistemas lineares. Convem salientar que os
metodos iterativos geralmente se aplicam para matrizes esparsas de grande ordem.
XXIV CNMAC
68 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
x = yn ; an1x1 ; an2x2 ; : : : ; an(n;1) x(n;1)
n
ann
Dada uma aproximac~ao inicial X [0] = (x1; x2 ; x3 ; : : : ; xn ), calculamos
X usando o seguinte esquema de iterac~oes :
[1]
X
yi ; aij x[jk]
i6=j
x[ik+1] = aii
desde que aii 6= 0.
O algoritmo a seguir implementa o esquema iterativo de Gauss-Seidel
descrito acima.
Procedure :
> repeat(L);
> for i from 1 by 1 to n do
> S:=0;
> for j from 1 by 1 to n do
> if j=i then S:=S+0 else S:=S+A[i,j]*X[j] fi;
> od;
> X[i]:=(Y[i]-S)/A[i,i];
> od;
Belo Horizonte/MG.
Apresentac~ao 69
O algoritmo necessita, como entrada, a ordem da matriz n, a matriz
Aij , o vetor independente Yi, uma aproximaca~o inicial para a soluca~o Xi e o numero
maximo de iterac~oes L.
O algoritmo consiste, basicamente, em isolar o elemento Xi na i-esima
linha do sistema dado pela matriz Aij e iterar estas equaco~es, obtendo, a cada
passo, uma nova aproximac~ao para o vetor soluca~o Xi , que e encontrado no limite
das iterac~oes.
Maiores detalhes a respeito do algoritmo podem ser encontradas em
[CLA 94], pag. 102.
Vejamos, a seguir, um exemplo numerico de aplicac~ao deste algoritmo.
0 1 0 1 0 1
10 21 15 x 93
Exemplo 4.4 Resolver o sistema B@ 18 8 1 CA : B@ y CA = B@ 198 CA.
0 31 4 z 28
y = 198 ; x= 8
8;z
z = 28 ;4 y=3
Tomando X [0] = (x0 ; y0; z0 ) = (0; 0; 0) temos a seguinte tabela com os
valores de X [k], que foram calculados com o auxlio do MAPLE V:
Assim, X = klim
!1
X [k] = (8; 24; 5)0.
Como o metodo apresentado e iterativo, faz-se necessaria uma analise
da converg^encia da sequ^encia de iterac~oes para a soluca~o exata. Segundo Cunha
([CUN 93], pag. 60), o metodo de Gauss-Seidel apresenta converg^encia garantida se
XXIV CNMAC
70 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Tabela 4.1: Sequ^encia de vetores calculados pelo Metodo de Gauss-Seidel
k X [k ]
0 (0,0,0)
1 (9.300000000, 24.60468750, 4.949609375)
2 (7.970773438, 24.00675549, 4.999437042)
3 (7.999673484, 24.00007547, 4.999993711)
4 (7.999996352, 24.00000084, 4.999999930)
5 (7.999999959, 24.00000001, 4.999999999)
6 (7.999999959, 24.00000001, 4.999999999)
7 (8.000000000, 24.00000000, 5.000000000)
8 (8.000000000, 24.00000000, 5.000000000)
9 (8.000000000, 24.00000000, 5.000000000)
10 (8.000000000, 24.00000000, 5.000000000)
Belo Horizonte/MG.
Apresentac~ao 71
4.3 Resoluc~ao de Sistemas \Tipo Banda"
Dizemos que um sistema AX = Y e do tipo banda se a sua matriz for
da forma
0 1
BB aa1121
a12
a22
0
a23
0
0
0
0
:::
:::
0
0 CC
BB 0 a32 a33 a34 0 ::: 0 CC
BB CC
BB 0 0 a43 a44 a45 : : : 0 CC
B@ ...
... ... ... ... ... ... CA
0 0 0 0 0 an(n;1) ann
Estes sistemas ocorrem frequentemente em problemas de interpolac~ao
por \splines cubicos", que ser~ao vistos na sec~ao 5.3.
Veremos, agora, um metodo especco para a resoluca~o de sistemas cuja
matriz e do tipo banda.
Seja AX = Y um sistema linear cuja matriz e do tipo banda. O vetor
soluc~ao X pode ser calculado pelo seguinte algoritmo:
Procedure :
> X:=vector(n);
> M:=vector(n);
> N:=vector(n);
> M[1]:=Y[1]/A[1,1];
> N[1]:=A[1,2]/A[1,1];
> for i from 2 to (n-1) by 1 do
> M[i]:=(Y[i]-A[i,i-1]*M[i-1])/(A[i,i]-A[i,i-1]*N[i-1]);
> N[i]:=A[i,i+1]/(A[i,i]-A[i,i-1]*N[i-1]);
> od;
XXIV CNMAC
72 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
> X[n]:=(Y[n]-A[n,n-1]*M[n-1])/(A[n,n]-A[n,n-1]*N[n-1]);
> for i from (n-1) by -1 to 1 do
> X[i]:=M[i]-N[i]*X[i+1];
> od;
[2 1 0 0 0 0 0]
[ ]
[1 2 1 0 0 0 0]
[ ]
[0 1 2 1 0 0 0]
[ ]
Belo Horizonte/MG.
Apresentac~ao 73
A := [0 0 1 2 1 0 0]
[ ]
[0 0 0 1 2 1 0]
[ ]
[0 0 0 0 1 2 1]
[ ]
[0 0 0 0 0 1 2]
> Y:=[2,-1,-9,-11,-4,3,7];
> n:=nops(Y);
n := 7
> X:=vector(n);
X := array(1 .. 7, [])
> M:=vector(n);
M := array(1 .. 7, [])
> N:=vector(n);
N := array(1 .. 7, [])
> M[1]:=Y[1]/A[1,1];
M[1] := 1
> N[1]:=A[1,2]/A[1,1];
N[1] := 1/2
XXIV CNMAC
74 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
M[2] := -4/3
N[2] := 2/3
M[3] := -23/4
N[3] := 3/4
M[4] := -21/5
N[4] := 4/5
M[5] := 1/6
N[5] := 5/6
M[6] := 17/7
N[6] := 6/7
Belo Horizonte/MG.
Apresentac~ao 75
> X[n]:=(Y[n]-A[n,n-1]*M[n-1])/(A[n,n]-A[n,n-1]*N[n-1]);
X[7] := 4
X[6] := -1
X[5] := 1
X[4] := -5
X[3] := -2
X[2] := 0
X[1] := 1
XXIV CNMAC
76 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
4.4 Calculo de Determinantes
O calculo de determinantes de matrizes de ordem n n qualquer pode
ser obtido atraves da propriedade 3 de teorema 2.5, que arma que se uma matriz
e triangular ent~ao o seu determinante e calculado pelo produto dos elementos da
diagonal principal.
Usando este fato, basta aplicarmos o metodo de eliminac~ao gaussiana ou
a fatorac~ao Cholesky para transformarmos a matriz original numa matriz triangular
ou no produto de duas matrizes triangulares.
Convem observar que o metodo de eliminac~ao gaussiana n~ao afeta o
valor do determinante da matriz, pois apenas efetuamos operac~oes elementares sobre
linhas da matriz.
Vejamos, atraves de exemplos numericos, como calcular o determinante
usando cada um dos dois metodos citados anteriormente.
0 3 2 0 1 1
B 8 ;3 4 CC
Exemplo 4.6 Calcular o determinante da matriz BB@ ;96 4 ;8 0 CA.
3 ;8 3 ;4
Soluc~ao :
Aplicando o algoritmo de Gauss para zerar todos os elementos abaixo
de a1;1 temos:
L2 L 2 ; 3L 1
0 3 2 0 11
BB 0 2 ;3 1 CC
B@ ;6 4 ;8 0 CA
3 ;8 3 ;4
L3 L 3 + 2L 1
Belo Horizonte/MG.
Apresentac~ao 77
03 2 0 11
BB 0 2 ;3 1 C C
B@ 0 8 ;8 2 C A
3 ;8 3 ;4
L4 L4 ; L1
03 2 0 11
BB 0 2 ;3 1 C C
B@ 0 8 ;8 2 C A
0 ;10 3 ;5
L3 L 3 ; 4L 2
03 2 0 11
BB 0 2 ;3 1 C C
B@ 0 0 4 ;2 C A
0 ;10 3 ;5
XXIV CNMAC
78 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
L4 L4 + 5L2
03 2 0 11
BB 0 2 ;3 1 CC
B@ 0 0 4 ;2 CA
0 0 ;12 0
L4 L4 ; 3L3
03 2 0 11
BB 0 2 ;3 1 CC
B@ 0 0 4 ;2 CA
0 0 0 ;6
Assim o determinante da matriz A e 3:2:4:(;6) = ;144.
0 4 2 ;4 2 1
B C
Exemplo 4.7 Calcular o determinante da matriz BB@ ;24 104 49 43 CCA.
2 4 3 15
Soluc~ao :
0 4 2 ;Pela fatorac~ao Cholesky sabemos que
4 2 1 0 2 0 0 0 1 0 2 0 0 0 10
B
B 2 10 4 4 C CC = BBB 1 3 0 0 CCC : BBB 1 3 0 0 CCC .
B
@ ;4 4 9 3 A @ ;2 2 1 0 A @ ;2 2 1 0 A
2 4 3 15 1 1 3 2 1 1 3 2
Mas, pelas propriedades do determinante, temos:
(A) = (C:C 0) = (C ):(C 0) = (C ):(C ) = ((C ))2 .
Como (C ) = 2:3:1:2 = 12 segue que (A) = 122 = 144.
Belo Horizonte/MG.
Apresentac~ao 79
4.5 Invers~ao de Matrizes
A invers~ao de matrizes de ordem n n qualquer e feita com base no
algoritmo de eliminac~ao gaussiana, so que ao inves de resolvermos o sistema AX = Y
resolveremos o sistema AM = I , onde a matriz M a ser encontrada e a inversa de
A.
Colocando a matriz na forma ampliada, temos (AjI ) que, por elim-
inac~ao gaussiana, deve ser transformada em (I jA;1).
Vejamos, atraves de um exemplo numerico, como isso e feito.
0 1 1 ;1 0 1
B C
Exemplo 4.8 Inverter a matriz M = BB@ 20 30 ;21 41 CCA.
1 1 ;1 1
XXIV CNMAC
80 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Soluc~ao:
Tomando a matriz estendida, temos:
0 1 1 ;1 0 1 0 0 0 1
BB 2 3 ;2 4 0 1 0 0 CC
B@ 0 0 1 1 0 0 1 0 CA
1 1 ;1 1 0 0 0 1
L2 L 2 ; 2L 1
L4 L4 ; L1
0 1 1 ;1 0 1 0 0 0 1
BB 0 1 0 4 ;2 1 0 0 CC
B@ 0 0 1 1 0 0 1 0 CA
0 0 0 1 ;1 0 0 1
L3 L3 ; L4
0 1 1 ;1 0 1 0 0 0 1
BB 0 1 0 4 ;2 1 0 0 CC
B@ 0 0 1 0 1 0 1 ;1 CA
0 0 0 1 ;1 0 0 1
L2 L2 ; 4L4
0 1 1 ;1 0 1 0 0 01
BB 0 1 0 0 2 1 0 ;4 C
CC
B@ 0 0 1 0 1 0 1 ;1 A
0 0 0 1 ;1 0 0 1
L1 L1 ; L2 + L3
Belo Horizonte/MG.
Apresentac~ao 81
01 0 0 0 0 ;1 1 3 1
BB 0 1 0 0 2 1 0 ;4 C
C
B@ 0 0 1 01 0 1 ;1 C
A
0 0 0 1 ;1 0 0 1
0 1 1 ;1 0 1
B 2 3 ;2 4 CC
Assim, a inversa da matriz M = B
B@ 0 0 1 1 CA e a matriz M ;1 =
0 0 ;1 1 3 1 1 1 ;1 1
B
B 2 1 0 ;4 C C
B
@ 1 0 1 ;1 CA.
;1 0 0 1
XXIV CNMAC
82 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
5 APLICACO~ ES
Neste captulo ser~ao apresentadas algumas aplicaco~es de matrizes em
problemas da Ci^encia da Computac~ao e da Matematica.
Ser~ao tratados os seguintes problemas:
Ajuste de Dados
Interpolac~ao Polinomial
\Splines Cubicos"
Transformac~oes Lineares Planas
Autovalores e Autovetores
Morphing
XXIV CNMAC
84 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
5.1 Ajuste de Dados
Um problema que frequentemente ocorre nas Ci^encias e Engenharias e
o da determinac~ao de um modelo matematico que melhor se ajusta a um conjunto
de pontos tabelados. A resoluca~o deste problema e feita, geralmente, usando-se o
metodo dos Mnimos Quadrados, que sera descrita a seguir, porem com abordagem
matricial.
Dada a tabela:
i xi p(xi ) yi
1 ;2 ;2a + b ;2
2 ;2 ;2a + b 0
3 1 a+b 4
4 1 a+b 6
5 3 3a + b 5
6 3 3a + b 13
7 4 4a + b 10
8 4 4a + b 12
O sistema, na forma matricial, ca:
0 ;2 1
1 0 ;2 1
BB ;2 1CCC BB 0 CC
BB 1 1C B C
BB CC ! BBB 4 CCC
BB 1 1C a B 6C
BB 3 1C CC : b = BBB 5 CCC
BB 31C CC BB 13 CC
B@ 4
1A B@ 10 CA
4 1 12
XXIV CNMAC
86 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Este sistema n~ao tem soluca~o pois ele tem mais equaco~es (8) do que
incognitas (2). A soluc~ao, pelo metodo dos mnimos quadrados, consiste em multi-
plicar, em ambos os lados, pela matriz transposta e resolver o sistema reduzido.
Da, o sistema ca:
0 ;2 1
1 0 ;2 1
BB ;2 1 CC BB 0 CC
B CC B C
! BBB 1 1 CC ! ! BBB 4 CCC
;2 ;2 1 1 3 3 4 4 : BB 1 1 CC : a = ;2 ;2 1 1 3 3 4 4 : BB 6 CC
1 1 1 1 1 1 1 1 B BB 3 1 CC b 1 1 1 1 1 1 1 1 B BB 5 CCC
BB 3 1 CC BB 13 CC
@ 4 1 CA @ 10 A
4 1 12
[-2 1]
[ ]
[-2 1]
[ ]
Belo Horizonte/MG.
Apresentac~ao 87
[ 1 1]
[ ]
[ 1 1]
A := [ ]
[ 3 1]
[ ]
[ 3 1]
[ ]
[ 4 1]
[ ]
[ 4 1]
> AT:=transpose(A);
[-2 -2 1 1 3 3 4 4]
AT := [ ]
[ 1 1 1 1 1 1 1 1]
> M:=evalm(AT&*A);
[60 12]
M := [ ]
[12 8]
> B:=vector([-2,0,4,6,5,13,10,12]);
> Y:=evalm(AT&*B);
Y := [156, 48]
> X:=linsolve(M,Y);
X := [2, 3]
XXIV CNMAC
88 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
> with(plots):
> GP:=pointplot({[-2,-2],[-2,0],[1,4],[1,6],[3,5],[3,13],[4,10],[4,12]},
color=black, symbol=circle):
> y:=x-> 2*x+3;
y := x -> 2 x + 3
Belo Horizonte/MG.
Apresentac~ao 89
5.2 Interpolac~ao Polinomial
Dado um conjunto de n + 1 pontos do plano cartesiano
P = f(x0 ; y0); (x1 ; y1); (x2; y2); : : : ; (xn;1 ; yn;1); (xn ; yn)g
o problema de interpolac~ao polinomial consiste em determinar um polin^omio de grau
n que passa por todos esses pontos.
A soluc~ao deste problema recai na resoluc~ao de um sistema linear, cuja
matriz e denominada \Matriz de Vandermonte" ( vide [DAV 75], pag. 24 { 55.), que
sera discutido a seguir.
Prova:
Considere o polin^omio p(x) = a0 + a1 x + a2 x2 + : : : + an;1 xn;1 + anxn ,
que tem n + 1 constantes a0 ; a1; : : : ; an para serem determinadas.
A condic~ao p(xi ) = yi; 8i = 0; 1; : : : ; n leva ao seguinte sistema de
equac~oes lineares:
8
>
> a0 + a1x0 + a2 x20 + : : : + an;1xn0 ;1 + anxn0 = y0
> n;1
< a0 + a1x1 + a2 x12 + : : : + an;1x1n;1 + anx1n = y1
2 n
>
a0 + a1x2 + a2 x2 + : : : + an;1x2 + anx2 = y2
>
> ...
>
>
: a0 + a1 xn + a2 x2n + : : : + an;1 xnn;1 + an xnn = yn
XXIV CNMAC
90 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Cujo modelo matricial e:
0 1 0 1 0 1
BB 11 x0 x20 xn0 CC BB a0 CC BB y0 CC
BB x1 x21 xn1 CC BB a1 CC BB y1 CC
BB 1 x2 x22 xn2 CC : BB a2 CC = BB y2 CC
B@ ... ... ... CA B@ ... CA B@ ... CA
1 xn x2n xnn an yn
Este sistema tem uma unica soluca~o pois o determinante da matriz
0 1
BB 11 x0 x20 xn0 CC
BB x1 x21 xn1 CC
BB 1x2 x22 xn2 CC
B@ ... ... ... CA
1 xn x2n xnn
e dado por
Y
n
= (xi ; xj ) 6= 0
i>j
uma vez que xi 6= xj , por hipotese. (A deduc~ao detalhada encontra-se na pag. 25
de [DAV 75]).
Assim, existe um unico polin^omio de grau n que passa pelos n+1 pontos
distintos dados.
A seguir e apresentado um exemplo numerico mostrando como os calculos
devem ser efetuados.
Exemplo 5.1 Determinar o polin^omio que interpola os pontos P = f(1; ;3); (2; 1); (3; 13); (4; 39)g
Soluc~ao :
Belo Horizonte/MG.
Apresentac~ao 91
Aqui, n = 3 pois #P = 4. Assim, o polin^omio tera grau 3 e sera do
tipo
p(x) = a0 + a1x + a2 x2 + a3x3 .
Tabelando os pontos, temos:
i xi p(xi) yi
0 1 a0 + a1 + a2 + a3 ;3
1 2 a0 + 2a1 + 4a2 + 8a3 1
2 3 a0 + 3a1 + 9a2 + 27a3 13
3 4 a0 + 4a1 + 16a2 + 64a3 39
O sistema, na forma matricial, ca:
01 1 1 11 0a 1 0 ;3 1
BB 1 2 4 8 CC BB a01 CC BB 1 CC
B@ 1 3 9 27 CA : B@ a CA = B@ 13 CA
2
1 4 16 64 a3 39
A resoluc~ao deste sistema, efetuada no MAPLE V, mostrou que a0 = ;5,
a1 = 3, a2 = ;2 e a3 = 1, de modo que o polin^omio procurado e p(x) = x3 ; 2x2 +
3x ; 5.
[1 1 1 1]
[ ]
[1 2 4 8]
A := [ ]
[1 3 9 27]
XXIV CNMAC
92 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
[ ]
[1 4 16 64]
> B:=vector(4,[-3,1,13,39]);
> X:=linsolve(A,B);
X := [-5, 3, -2, 1]
> with(plots):
> GP:=pointplot({[1,-3],[2,1],[3,13],[4,39]}, color=black, symbol=circle):
> p:=x-> -5+3*x-2*x^2+x^3;
2 3
p := x -> -5 + 3 x - 2 x + x
-3
> p(2);
1
> p(3);
13
> p(4);
39
> p(x);
2 3
Belo Horizonte/MG.
Apresentac~ao 93
-5 + 3 x - 2 x + x
XXIV CNMAC
94 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Existem situac~oes onde a interpolaca~o polinomial n~ao e t~ao eciente.
Veja o exemplo abaixo:
Exemplo 5.2 (Func~ao de Runge: [CLA 94], pag. 198.) Interpolar a func~ao y =
f (x) = 1+251 x no intervalo [;1; 1].
2
>
> # Exemplo: Polinomio de Runge
>
> restart:
Belo Horizonte/MG.
Apresentac~ao 95
> with(linalg):
Warning, new definition for norm Warning, new definition for trace
> with(plots):
> y:=x->1/(1+25*x^2);
1
y := x -> ---------
2
1 + 25 x
> P:=[[-1,.03846153846],[-.8,.05882352941],[-.6,.1],[-.4,.2],[-.2,.5],[0,1],
[.2,.5],[.4,.2],[.6,.1],[.8,.05882352941],[1,.03846153846]];
[-.2, .5], [0, 1], [.2, .5], [.4, .2], [.6, .1],
> V:=[.03846153846,.05882352941,.1,.2,.5,1,.5,.2,.1,.05882352941,.03846153846];
.05882352941, .03846153846]
> M:=vandermonde([-1,-.8,-.6,-.4,-.2,0,.2,.4,.6,.8,1]);
M :=
[1 , -1 , 1 , -1 , 1 , -1 , 1 , -1 , 1 , -1 , 1]
XXIV CNMAC
96 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
[1 , -.6 , .36 , -.216 , .1296 , -.07776 , .046656 ,
[
[1 , -.2 , .04 , -.008 , .0016 , -.00032 , .000064 ,
-5 -6 -6]
-.0000128 , .256 10 , -.512 10 , .1024 10 ]
[1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]
[
[1 , .2 , .04 , .008 , .0016 , .00032 , .000064 , .0000128 ,
-5 -6 -6]
.256 10 , .512 10 , .1024 10 ]
[1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1]
Belo Horizonte/MG.
Apresentac~ao 97
> S:=linsolve(M,V);
[ -6 -5
S := [1., .2 10 , -16.8552038, -.1000410292 10 , 123.3597309,
-5 -5
.3446644452 10 , -381.4338348, -.313 10 , 494.9095218,
-6 ]
.462697509 10 , -220.9417526]
2 3 4 5 6 7 8 9 10
Potencias := [1, x, x , x , x , x , x , x , x , x , x ]
> H:=dotprod(S,Potencias);
-6 _ _2 -5 _3
H := 1. + .2 10 x - 16.8552038 x - .1000410292 10 x
_4 -5 _5 _6
+ 123.3597309 x + .3446644452 10 x - 381.4338348 x
-5 _7 _8 -6 _9
- .313 10 x + 494.9095218 x + .462697509 10 x
_10
- 220.9417526 x
> Polinomio:=x->1.+.2e-6*x-16.8552038*x^2+.1000410292e-5*x^3+123.3597309*x^4+
.3446644452e-5*x^5-381.4338348*x^6-.313e-5*x^7+494.9095218*x^8+
.462697509e-6*x^9-220.9417526*x^10;
XXIV CNMAC
98 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
-6 2
Polinomio := x -> 1. + .2 10 x - 16.8552038 x
-5 3 4 -5 5
+ .1000410292 10 x + 123.3597309 x + .3446644452 10 x
6 -5 7 8
- 381.4338348 x - .313 10 x + 494.9095218 x
-6 9 10
+ .462697509 10 x - 220.9417526 x
> Polinomio(x);
-6 2 -5 3
1. + .2 10 x - 16.8552038 x + .1000410292 10 x
4 -5 5 6
+ 123.3597309 x + .3446644452 10 x - 381.4338348 x
-5 7 8 -6 9
- .313 10 x + 494.9095218 x + .462697509 10 x
10
- 220.9417526 x
>
Belo Horizonte/MG.
Apresentac~ao 99
Cujo graco e mostrado abaixo:
XXIV CNMAC
100Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
5.3 \Splines Cubicos"
\Splines Cubicos" s~ao casos particulares de tecnicas de interpolac~ao
polinomial, onde o conjunto total de pontos e reagrupado de forma a se obter
polin^omios de grau 3 para interpolar os pontos dados. A resoluc~ao do problema
dos splines recai na resoluc~ao de um sistema cuja matriz e do tipo \banda".
A seguir temos a denic~ao formal de um spline cubico.
1. s(xi ) = yi; 8 1 i n;
2. s(x), s0(x) e s00 (x) s~ao contnuas em [a; b];
3. em cada subintervalo [xi ; xi+1 ]; 8 1 i (n ; 1) o polin^omio s(x) e
de grau 3;
4. s00(a) = s00 (b) = 0.
! 'i !
( y i+1 ; yi ) 'i+1 Hi 'i Hi ('i+1 ; 'i) (x ; x )3
si(x) = yi+ Hi ; 6 ; 3 ( x; xi )+
2 (x ; x 2
i) +
6 Hi i
Belo Horizonte/MG.
Apresentac~ao 101
onde
Hi = xi+1 ; xi e 'i e obtido como soluc~ao do seguinte sistema linear:
0 1 0 1 0 1
B
B
2(H1 + H2)
H2
H2
2(H2 + H3) H3
0 :::
:::
0
0 C B
CC BB '3
'2 CC BB bb23 ; ; b2
b1 CC
B
B CC : BB '4 CC BB CC
B
B 0 H 3 2( H 3 + H4 ) ::: 0
CC BB .. CC = BB 4 ; b3
b CC
B .
.. .
.. ... ... .
.. CA B@ ... CA
@ A @ .
0 0 0 Hn;2 2(Hn;2 + Hn;1) 'n;1 bn;1 ; bn;2
yi+1 ; yi
e bi = 6 Hi
XXIV CNMAC
102Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
O algoritmo para a resoluca~o deste sistema e dado na pag. 216 de
[CLA 94] e foi adaptado para ser implementado no MAPLE V, conforme e mostrado
no exemplo a seguir:
Exemplo 5.3 Interpolar, por splines cubicos, o seguinte conjunto de pontos do
plano cartesiano:
f(0; 3); (1; 1); (2; 0); (3; 1); (4; 3); (5; 5); (7; 5); (8; 4); (9; 4); (10; 5); (11; 5); (12; 4); (13; 4); (14;
A soluc~ao e:
>
> # SPLINES CUBICOS
>
> restart:
>
> with(linalg):
Warning, new definition for norm Warning, new definition for trace
>
> with(plots):
>
> X:=[0,1,2,3,4,5,7,8,9,10,11,12,13,14];
> Y:=[3,1,0,1,3,5,5,4,4,5,5,4,4,0];
Y := [3, 1, 0, 1, 3, 5, 5, 4, 4, 5, 5, 4, 4, 0]
>
> N:=nops(X);
Belo Horizonte/MG.
Apresentac~ao 103
N := 14
>
> V:=[seq([X[i],Y[i]],i=1..N)];
V := [[0, 3], [1, 1], [2, 0], [3, 1], [4, 3], [5, 5], [7, 5],
[8, 4], [9, 4], [10, 5], [11, 5], [12, 4], [13, 4], [14, 0]]
>
> GP:=pointplot(V, color=black, symbol=circle);
GP := PLOT(POINTS([0, 3.], [1., 1.], [2., 0], [3., 1.], [4., 3.],
[5., 5.], [7., 5.], [8., 4.], [9., 4.], [10., 5.], [11., 5.],
COLOUR(RGB, 0, 0, 0))
> H:=vector(N-1);
H[1] := 1
H[2] := 1
H[3] := 1
XXIV CNMAC
104Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
H[4] := 1
H[5] := 1
H[6] := 2
H[7] := 1
H[8] := 1
H[9] := 1
H[10] := 1
H[11] := 1
H[12] := 1
H[13] := 1
> op(H);
[1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1]
Belo Horizonte/MG.
Apresentac~ao 105
> C:=vector(N-1);
> C[2]:=2*(H[1]+H[2]);
C[2] := 4
>
> for i from 3 by 1 to (N-1) do
> C[i]:=2*(H[i-1]+H[i])-(H[i-1]*H[i-1])/C[i-1];
> od;
C[3] := 15/4
56
C[4] := --
15
209
C[5] := ---
56
1198
C[6] := ----
209
3176
C[7] := ----
599
XXIV CNMAC
106Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
12105
C[8] := -----
3176
45244
C[9] := -----
12105
168871
C[10] := ------
45244
630240
C[11] := ------
168871
2352089
C[12] := -------
630240
8778116
C[13] := -------
2352089
>
> B:=vector(N-1);
Belo Horizonte/MG.
Apresentac~ao 107
>
> for i from 1 by 1 to (N-1) do
> B[i]:=6*(Y[i+1]-Y[i])/H[i];
> od;
B[1] := -12
B[2] := -6
B[3] := 6
B[4] := 12
B[5] := 12
B[6] := 0
B[7] := -6
B[8] := 0
B[9] := 6
B[10] := 0
XXIV CNMAC
108Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
B[11] := -6
B[12] := 0
B[13] := -24
>
> d:=vector(N-1);
>
> d[2]:=B[2]-B[1];
d[2] := 6
>
> for i from 3 by 1 to (N-1) do
> d[i]:=(B[i]-B[i-1])-H[i-1]*d[i-1]/C[i-1];
> od;
d[3] := 21/2
d[4] := 16/5
d[5] := -6/7
-2460
d[6] := -----
209
Belo Horizonte/MG.
Apresentac~ao 109
-1134
d[7] := -----
599
10095
d[8] := -----
1588
3496
d[9] := ----
807
-80976
d[10] := ------
11311
-689322
d[11] := -------
168871
745127
d[12] := ------
105040
-60920898
d[13] := ---------
2352089
XXIV CNMAC
110Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
>
> F:=vector(N);
>
> F[1]:=0;
F[1] := 0
> F[N]:=0;
F[14] := 0
> F[N-1]:=d[N-1]/C[N-1];
-30460449
F[13] := ---------
4389058
8252202
F[12] := -------
2194529
-9222819
F[11] := --------
4389058
Belo Horizonte/MG.
Apresentac~ao 111
-2973738
F[10] := --------
2194529
6678375
F[9] := -------
4389058
2784162
F[8] := -------
2194529
-2617323
F[7] := --------
4389058
-8099367
F[6] := --------
4389058
581076
F[5] := -------
2194529
3450759
F[4] := -------
4389058
XXIV CNMAC
112Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
5684580
F[3] := -------
2194529
3741297
F[2] := -------
4389058
>
> for K from 1 by 1 to (N-1) do
> AA:=(Y[K+1]-Y[K])/H[K] - F[K+1]*H[K]/6 - F[K]*H[K]/3;
> BB:=F[K]/2;
> GG:=(F[K+1]-F[K])/(6*H[K]);
> SS:=x-> Y[K] + AA*(x-X[K]) + BB*(x-X[K])^2 + GG*(x-X[K])^3;
> SS(x);
> GSS[K]:=plot(SS(x), x=X[K]..X[K+1]):
> od;
>
18803331 1247099 3
3 - -------- x + ------- x
8778116 8778116
Belo Horizonte/MG.
Apresentac~ao 113
XXIV CNMAC
114Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
>
> display(GP,seq(GSS[K], K=1..(N-1)));
>
XXIV CNMAC
116Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Para visualizar estas transformac~oes , usaremos o seguinte modelo geometrico,
que tem uma estrutura de dados bem simples:
5.4.1 Rotac~ao
Uma rotac~ao de ^angulo no plano e dada pela seguinte matriz de
transformac~ao linear:
!
cos() ; sin )
sin() cos()
A seguir, vemos a implementaca~o em MAPLE V de uma rotac~ao de =
3 :
5
Belo Horizonte/MG.
Apresentac~ao 117
># Rotacao
>
> restart:
>
> with(linalg):
Warning, new definition for norm Warning, new definition for trace
> with(plots):
>
> Objeto:=transpose(matrix([[3,2],[3,5],[10,5],[7,9],[7,2],[3,2]]));
[3 3 10 7 7 3]
Objeto := [ ]
[2 5 5 9 2 2]
>
> GO:=polygonplot(Objeto):
>
> A:=3*Pi/5;
A := 3/5 Pi
>
> T:=matrix([[cos(A), -sin(A)],[sin(A), cos(A)]]);
>
> Imagem:=evalm(T&*Objeto):
>
> GI:=polygonplot(Imagem, view=[-20..20, -20..20], thickness=2,
linestyle=1, scaling=constrained):
> display(GO,GI);
XXIV CNMAC
118Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Belo Horizonte/MG.
Apresentac~ao 119
5.4.2 Re
ex~ao
Uma re
ex~ao e uma transformaca~o linear do plano que inverte os obje-
tos em relac~ao a uma reta ou em relac~ao a origem do sistema de coordenadas.
Veremos, a seguir, cada um destes tipos de re
ex~ao.
XXIV CNMAC
120Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
5.4.2.2 Re
ex~ao em relac~ao a reta OY
Belo Horizonte/MG.
Apresentac~ao 121
XXIV CNMAC
122Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
5.4.2.4 Re
ex~ao em relac~ao a uma reta qualquer passando pela origem
[3 3 10 7 7 3]
Objeto := [ ]
[2 5 5 9 2 2]
> GO:=polygonplot(Objeto):
> u:=vector([3,4]);
u := [3, 4]
> w:=normalize(u);
w := [3/5, 4/5]
XXIV CNMAC
124Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
> I2:=matrix([[1,0],[0,1]]);
[1 0]
I2 := [ ]
[0 1]
> H:=evalm(I2-2*w&*transpose(w));
[ -24]
[7/25 ---]
[ 25 ]
H := [ ]
[-24 -7 ]
[--- -- ]
[25 25 ]
> Imagem:=evalm(H&*Objeto):
> GI:=polygonplot(Imagem, view=[-20..20, -20..20], thickness=2,
linestyle=1, scaling=constrained):
> display(GO,GI);
Belo Horizonte/MG.
Apresentac~ao 125
5.4.3 Homotetia
Uma homotetia nada mais e do que uma mudanca de escala na gura.
Ela e denida pela seguinte matriz de transformac~ao linear:
!
0
0
onde 0 < e o fator de escala. Se 0 < < 1 ent~ao ocorre uma
contrac~ao e se > 1 ocorre uma dilatac~ao da imagem.
XXIV CNMAC
126Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Belo Horizonte/MG.
Apresentac~ao 127
5.4.4 Cisalhamento Horizontal
O cisalhamento horizontal de fator e denido pela seguinte matriz de
transformac~ao linear:
!
1
0 1
onde 2 IR e o deslocamento efetuado.
Se > 0 o deslocamento e para a direita e se < 0 o deslocamento e
para a esquerda.
XXIV CNMAC
128Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Belo Horizonte/MG.
Apresentac~ao 129
5.4.5 Cisalhamento Vertical
O cisalhamento vertical de fator e denido pela seguinte matriz de
transformac~ao linear:
!
1 0
1
onde 2 IR e o deslocamento efetuado.
Se > 0 o deslocamento e para cima e se < 0 o deslocamento e para
baixo.
XXIV CNMAC
130Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Belo Horizonte/MG.
Apresentac~ao 131
5.5 Autovalores e Autovetores
Em certas transformac~oes lineares, existem vetores que ao serem trans-
formados n~ao mudam de direc~ao. Estes vetores, por serem especiais, recebem o
nome de autovetores da transformac~ao linear. Veremos, a seguir, a denica~o formal
de autovetores e autovalores e como eles podem ser determinados.
Vejamos um exemplo:
Prova:
XXIV CNMAC
132Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Seja T : IRn ;! IRn uma transformaca~o linear n dimensional e
~v 7;! ~u
seja
~v 2 IRn um autovetor desta transformac~ao linear. Como ~v e um autovetor de T
podemos escrever T (~v) = T :~v = ~v pois sabemos que existe um numero real que
satisfaz a equac~ao vetorial.
Da, tem-se que T :~v = ~v portanto T :~v ; ~v = ~0.
Mas ~v = I:~v e ent~ao T :~v ; I~v = ~0 portanto (T ; I ):~v = ~0
A equac~ao
(T ; I ):~v = ~0
e um sistema linear homog^eneo com n equac~oes e n incognitas, que tera soluca~o n~ao
trivial se e somente se (T ; I ) = 0.
A equac~ao (T ; I ) = 0 e denominada equac~ao caracterstica da
transformac~ao linear T e o calculo do determinante gera um polin^omio de grau n
cujas razes ser~ao os n autovalores desta transformaca~o linear. Substituindo-se os
autovalores na equac~ao (T ; I ):~v = ~0 e resolvendo-se o sistema linear homog^eneo,
encontra-se os respectivos autovetores de T .
5.6 Morphing
Morphing e uma tecnica da computac~ao graca muito utilizada para
fazer animac~oes, pois ela permite a passagem gradual de um objeto para outro,
atraves do uso de uma equac~ao vetorial parametrizada, dada por:
O(t) = (1 ; t)A + tB
XXIV CNMAC
134Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
onde A e B s~ao os objetos inicial e nal, respectivamente, e 0 t 1 e o par^ametro
que controla a mudanca, gradualmente.
Os objetos A e B podem ser quaisquer elementos de um espaco vetorial:
vetores, matrizes, func~oes , etc...
Em geral, uma equaca~o do tipo pA + qB , com p + q = 1, e dita uma
composic~ao ponderada dos objetos A e B .
No exemplo implementado a seguir, usamos como objeto inicial a gura
de uma casa, sob a estrutura de dados do tipo matriz, onde a primeira linha contem
os valores das abscissas e a segunda linha, as ordenadas dos pontos que constituem
a poligonal que forma a casa. O objeto nal, da mesma maneira, e a gura de uma
bandeira.
> # Morphing
>
> restart:
> with(linalg):
Warning, new definition for norm Warning, new definition for trace
> with(plots):
>
> A:=matrix([[1,1,4,7,7],[1,7,10,7,1]]);
[1 1 4 7 7]
A := [ ]
[1 7 10 7 1]
> B:=matrix([[1,1,7,1,1],[1,10,7,6,1]]);
[1 1 7 1 1]
B := [ ]
[1 10 7 6 1]
Belo Horizonte/MG.
Apresentac~ao 135
> display(G[100]);
XXIV CNMAC
136Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Belo Horizonte/MG.
Apresentac~ao 137
XXIV CNMAC
138Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Belo Horizonte/MG.
Apresentac~ao 139
ANEXO A-1 LISTAGEM DOS ALGORITMOS
XXIV CNMAC
140Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
>
> A:=matrix([[2,8,5,7],[3,4,1,0],[-2,4,2,7],[4,5,1,1]]);
> B:=matrix([[1,5,7,4],[-3,4,4,7],[1,0,0,1],[0,1,1,0]]);
> PP:=multiply(A,B);
>
Belo Horizonte/MG.
Apresentac~ao 141
A-1.2 Algoritmo de Strassen para a Invers~ao de
Matrizes
> % Este algoritmo funciona somente para matrizes 2x2 !
>
> restart:
>
> with(linalg):
>
>
> A:=matrix([[a,b],[c,d]]);
>
> A_1:=inverse(A);
>
> AA:=matrix([[a]]);
> BB:=matrix([[b]]);
> CC:=matrix([[c]]);
> DD:=matrix([[d]]);
>
> P:=inverse(AA);
> Q:=multiply(CC,P);
> R:=multiply(BB,P);
> S:=multiply(CC,R);
> T:=evalm(S-DD);
> U:=inverse(T);
> f:=multiply(R,U);
> g:=multiply(Q,U);
> V:=multiply(R,g);
> e:=evalm(P-V);
> h:=evalm(-U);
>
> op(A_1);
>
XXIV CNMAC
142Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Belo Horizonte/MG.
Apresentac~ao 143
A-1.3 Algoritmo de Lie
> # Algoritmo que calcula o Produto de LIE
>
> restart:
>
> with(linalg):
>
> a:=matrix([[1,2,3],[4,5,6],[9,8,7]]);
> b:=matrix([[1,0,-1],[3,-5,8],[2,2,4]]);
>
> m:=matrix(3,3);
>
> for i from 1 by 1 to 3 do
> for j from 1 by 1 to 3 do
> s:=0;
> for k from 1 by 1 to 3 do
> p:=a[i,k]*b[k,j]-b[i,k]*a[k,j];
> s:=s+p;
> od;
> m[i,j]:=s;
> od;
> od;
> op(m);
XXIV CNMAC
144Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
A-1.4 Algoritmo Basico de Gauss
># Algoritmo basico de Gauss
>
> restart:
> with(linalg):
> A:=matrix([[3,2,0,1],[9,8,-3,4],[-6,4,-8,0],[3,-8,3,-4]]);
> B:=[3,6,-16,18];
> n:=nops(B);
> for k from 1 by 1 to (n-1) do
> for i from (k+1) by 1 to n do
> M[i,k]:=-A[i,k]/A[k,k];
> for j from (k+1) by 1 to n do
> A[i,j]:=A[i,j]+M[i,k]*A[k,j];
> od;
> A[i,k]:=0;
> B[i]:=B[i]+M[i,k]*B[k];
> od;
> od;
> op(A);
> op(B);
> X[n]:=B[n]/A[n,n];
> for k from (n-1) by (-1) to 1 do
> X[k]:=B[k]:
> for i from (k+1) by 1 to n do
> X[k]:=X[k]-A[k,i]*X[i]:
> od;
> X[k]:=X[k]/A[k,k];
> od;
> op(X);
> op(A);
> op(B);
> linsolve(A,B);
>
Belo Horizonte/MG.
Apresentac~ao 145
>
XXIV CNMAC
146Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
A-1.5 Algoritmo de Castilhos
># Algoritmo de Castilhos
>
> restart:
> with(linalg):
> A:=matrix([[3,2,0,1],[9,8,-3,4],[-6,4,-8,0],[3,-8,3,-4]]);
> B:=[3,6,-16,18];
> linsolve(A,B);
> n:=nops(B);
> for k from 1 by 1 to (n-1) do
> for i from (k+1) by 1 to n do
> for j from (k+1) by 1 to n do
> A[i,j]:=A[k,k]*A[i,j]-A[i,k]*A[k,j]: od:
> B[i]:=A[k,k]*B[i]-A[i,k]*B[k]: od:
> for l from (k+1) by 1 to n do
> A[l,k]:=0: od:
> od;
> op(A);
> op(B);
> X:=vector(n);
> X[n]:=B[n]/A[n,n];
> for k from (n-1) by (-1) to 1 do
> X[k]:=B[k]:
> for i from (k+1) by 1 to n do
> X[k]:=X[k]-A[k,i]*X[i]:
> od;
> X[k]:=X[k]/A[k,k];
> od;
> op(X);
>
Belo Horizonte/MG.
Apresentac~ao 147
A-1.6 Fatorac~ao Cholesky
> # Fatoracao Cholesky para matrizes positivo-definidas
>
> restart:
>
> with(linalg):
>
> A:=matrix([[4,2,-4,2],[2,10,4,4],[-4,4,9,3],[2,4,3,15]]);
>
> n:=4;
> # fatoracao CHOLESKY
>
> s:=0:
> C:=diag(0,0,0,0);
>
> for k from 1 by 1 to n do
> for i from 1 by 1 to (k-1) do
> s:=0:
> for j from 1 by 1 to (i-1) do
> s:=s+A[i,j]*A[k,j]: od:
> A[k,i]:=(A[k,i]-s)/A[i,i]: C[k,i]:=A[k,i]:
> s:=0:
> for j from 1 by 1 to (k-1) do
> s:=s+A[k,j]*A[k,j]: od:
> od:
> A[k,k]:=sqrt(A[k,k]-s): C[k,k]:=A[k,k]:
> od:
> op(C);
> evalm(C&*transpose(C));
>
>
XXIV CNMAC
148Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
A-1.7 Algoritmo para matrizes tridiagonais
># Algoritmo para matrizes banda - tridiagonais
>
> restart:
> with(linalg):
> A:=matrix([[2,-3,0,0,0,0],[1,-1,1,0,0,0],[0,5,2,4,0,0],
[0,0,3,3,1,0],[0,0,0,1,1,10],[0,0,0,0,1,2]]);
> Y:=vector([-4,2,32,26,69,17]);
> n:=6;
> X:=vector(n);
> M:=vector(n);
> N:=vector(n);
> M[1]:=Y[1]/A[1,1];
> N[1]:=A[1,2]/A[1,1];
> for i from 2 to (n-1) by 1 do
> M[i]:=(Y[i]-A[i,i-1]*M[i-1])/(A[i,i]-A[i,i-1]*N[i-1]);
> N[i]:=A[i,i+1]/(A[i,i]-A[i,i-1]*N[i-1]);
> od;
> X[n]:=(Y[n]-A[n,n-1]*M[n-1])/(A[n,n]-A[n,n-1]*N[n-1]);
> for i from (n-1) by -1 to 1 do
> X[i]:=M[i]-N[i]*X[i+1];
> od;
>
Belo Horizonte/MG.
Apresentac~ao 149
A-1.8 Algoritmo de Gauss-Seidel
> # Algoritmo de Gauss-Seidel:
>
> restart:
> with(linalg):
> A:=matrix([[10,1/2,1/5],[1/8,8,1],[0,1/3,4]]);
> Y:=vector(3,[93,198,28]);
> NMAX:=3;
> X:=vector(3,[0,0,0]);
> op(X);
>
> for l from 1 by 1 to 25 do
> for i from 1 by 1 to NMAX do
> s:=0:
> for j from 1 by 1 to NMAX do
> if i=j then s:=s+0 else s:=s+A[i,j]*X[j] fi:
> od:
> X[i]:=(Y[i]-s)/A[i,i]:
> od;
> evalf((op(X),15));
> od;
>
XXIV CNMAC
150Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
A-1.9 Algoritmo para Splines Cubicos
>
> # SPLINES CUBICOS
>
> restart:
>
> with(linalg):
>
> with(plots):
>
> X:=[0,1,2,3,4,5,7,8,9,10,11,12];
> Y:=[3,1,0,1,3,5,5,4,4,5,5,4];
>
> N:=nops(X);
>
> V:=[seq([X[i],Y[i]],i=1..N)];
>
> GP:=pointplot(V, color=black, symbol=circle);
> H:=vector(N-1);
> for i from 1 by 1 to (N-1) do
> H[i]:=X[i+1]-X[i];
> od;
> op(H);
> C:=vector(N-1);
> C[2]:=2*(H[1]+H[2]);
>
> for i from 3 by 1 to (N-1) do
> C[i]:=2*(H[i-1]+H[i])-(H[i-1]*H[i-1])/C[i-1];
> od;
>
> B:=vector(N-1);
>
> for i from 1 by 1 to (N-1) do
Belo Horizonte/MG.
Apresentac~ao 151
> B[i]:=6*(Y[i+1]-Y[i])/H[i];
> od;
>
> d:=vector(N-1);
>
> d[2]:=B[2]-B[1];
>
> for i from 3 by 1 to (N-1) do
> d[i]:=(B[i]-B[i-1])-H[i-1]*d[i-1]/C[i-1];
> od;
>
> F:=vector(N);
>
> F[1]:=0;
> F[N]:=0;
> F[N-1]:=d[N-1]/C[N-1];
> for i from (N-2) by -1 to 2 do
> F[i]:=(d[i]-H[i]*F[i+1])/C[i];
> od;
>
> for K from 1 by 1 to (N-1) do
> AA:=(Y[K+1]-Y[K])/H[K] - F[K+1]*H[K]/6 - F[K]*H[K]/3;
> BB:=F[K]/2;
> GG:=(F[K+1]-F[K])/(6*H[K]);
> SS:=x-> Y[K] + AA*(x-X[K]) + BB*(x-X[K])^2 + GG*(x-X[K])^3;
> SS(x);
> GSS[K]:=plot(SS(x), x=X[K]..X[K+1]):
> od;
>
>
> display(GP,seq(GSS[K], K=1..(N-1)));
>
XXIV CNMAC
152Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
A-1.10 Algoritmo para Morphing
> # Morphing
>
> restart:
> with(linalg):
Warning, new definition for norm Warning, new definition for trace
> with(plots):
>
> A:=matrix([[1,1,4,7,7],[1,7,10,7,1]]);
[1 1 4 7 7]
A := [ ]
[1 7 10 7 1]
> B:=matrix([[1,1,7,1,1],[1,10,7,6,1]]);
[1 1 7 1 1]
B := [ ]
[1 10 7 6 1]
> display(G[100]);
Belo Horizonte/MG.
Apresentac~ao 153
> L:=[seq(G[i], i=0..100)]:
> display(L, insequence=true);
XXIV CNMAC
ANEXO A-2 O MAPLE V NA RESOLUCA~ O DE
PROBLEMAS DA GEOMETRIA
ANALTICA
Resultado: 15 26 37 48
XXIV CNMAC
158 Geometria Analtica: Um enfoque computacional
Comando: for from to by do od;
Sintaxe: for variavel from inicio to fim by passo do comando od;
Descric~ao: Estrutura de repetica~o do MAPLE V.
Exemplo: for i from 3 to 11 by 2 do print(i) od;
3
5
Resultado: 7
9
11
Belo Horizonte/MG.
O MAPLE V na Resoluc~ao de Problemas da Geometria Analtica 159
Lista de Smbolos
X
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Somatorio.
Y
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Produtorio.
8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Para todo.
9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Existe.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Produto escalar.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Produto de Schur.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Produto de Lie.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Produto de Kronecker.
# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cardinal de um conjunto.
IR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conjunto dos numeros reais.
IIIR . . . . . . . . . . . . . . . . . . . . . . . . Conjunto dos intervalos de numeros reais.
IN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conjunto dos numeros naturais.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A^ ngulo (em radianos).
. . . . . . . . . . . . . . . . . Constante Pi, cujo valor aproximado e 3.14159265.
sgn(x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sinal do numero x.
jxj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modulo do numero real x.
~u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vetor n dimensional.
jj~ujj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Norma do vetor ~u.
d(~u;~v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dist^ancia entre os vetores ~u e ~v.
Amn, A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Matriz real de ordem m n.
XXIV CNMAC
160 Geometria Analtica: Um enfoque computacional
A0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transposta da matriz A.
(A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Traco da matriz A.
(A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Determinante da matriz A.
; ; : : : ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Constantes reais.
Belo Horizonte/MG.
BIBLIOGRAFIA
[ABR 63] ABREU, Carlos F. Geometria Analtica. Rio de Janeiro: Ao Livro
Tecnico, 1963.
[ANT 87] ANTON, Howard; RORES, Chris. Elementary Linear Algebra:
Applications Version. New York: John Wiley, 1987.
[BOU 97] BOULOS, Paulo; CAMARGO, Ivan. Introduc~ao a Geometria
Analtica no Espaco. S~ao Paulo: Makron Books do Brasil, 1997.
[FEI 83] FEITOSA, Miguel O. Calculo Vetorial e Geometria Analtica.
Exerccios Propostos e Resolvidos. S~ao Paulo, Editora Atlas, 1983.
[FOL 97] FOLEY, James; Van DAM, Andries; FEINER, Steven; HUGHES,
John. Computer Graphics: Principles and Practice. New York:
Addison-Wesley, 1997.
[MOR 90] MORTENSON, Michael. Computer Graphics Handbook: Geometry
and Mathematics. New York: Industrial Press, 1990.
[PRE 85] PREPARATA, Franco; SHAMOS Michael. Computational Geometry:
An Introduction. New York: Springer-Verlag, 1985.
[STE 87] STEINBRUCH, Alfredo; WINTERLE, Paulo. Algebra Linear. S~ao
Paulo: McGraw-Hill, 1987.
[WIN 87] STEINBRUCH, Alfredo; WINTERLE, Paulo. Geometria Analtica.
S~ao Paulo: McGraw-Hill, 1987.
[ABE 92] ABEL, Martha L.; BRASELTON, James P. MATHEMATICA by Exam-
ple. Boston: Academic Press, 1992. 654 p.
[ALE 83] ALEFELD, G.; HERZBERGER, J. Introduction to Interval
Computations. New York: Academic Press, 1983. 334 p.
[ARG 97] ARGE, Erlend; BRUASET, Are Magnus; LANGTANGEN; Hans
Petter. Modern Software Tools for Scientic Computing.
Boston: Birkhauser, 1997. 380 p.
162 Geometria Analtica: Um enfoque computacional
[BAR 87] BARTELS, Richard H.; BEATTY, John C.; BARSKY, Brian A. An
Introduction to Splines for use in Computer Graphics and
Geometric Modeling. Los Altos: M. Kaufmann, 1987. 476 p.
[BRA 95] BRAUN, Rudiger; MEISE, Reinhold. Analysis mit MAPLE. Wies-
baden: Vieweg, 1995. 267 p.
[BUR 93] BURKHARDT, Werner. First Steps in MATHEMATICA . London:
Springer-Verlag, 1993. 100 p.
[CHA 91] CHAR, B. W.; GEDDES, K. O.; GONNET, G. H.; LEONG, B. L.;
MONAGAN, M. B.; WATT, S. M. MAPLE V: Language Refer-
ence Manual. New York: Springer, 1991. 267 p.
[CLA 92] CLAUDIO, Dalcidio Moraes, et. al. Introduc~ao a Teoria dos Inter-
valos. Porto Alegre: CPGCC da UFRGS, 1992. 41p. (Relatorio
de Pesquisa Nro. 172.)
[CLA 94] CLAUDIO, Dalcidio Moraes, MARINS, Jussara Maria. Calculo
Numerico Computacional: Teoria e Pratica. S~ao Paulo: At-
las, 1994. 464 p.
[CRA 94] CRANDALL, Richard E. Projects in Scientic Computation.
New York: Springer-Verlag, 1994. 470 p.
[COO 96] COOMBES, Kevin R.; HUNT, Brian R.; LIPSMAN, Ronald L.; OS-
BORN, John E.; STUCK, Garrett J. Dierential Equations
with MAPLE. New York: John Wiley, 1996. 232 p.
[CUN 93] CUNHA, Cristina. Metodos Numericos para as Engenharias e
Ci^encias Aplicadas. S~ao Paulo: UNICAMP, 1993. 265 p.
[DAV 75] DAVIS, Philip. Interpolation & Approximation. New York:
Dover, 1975. 393 p.
[ELL 97] ELLIS, Wade; JOHNSON, Eugene; LODI, Ed; SCHWALBE, Daniel.
MAPLE V in der mathematischen Anwendung. Bonn: Thom-
son, 1997. 186 p.
Belo Horizonte/MG.
Bibliograa 163
[FOL 97] FOLEY, James D. Computer Graphics: Principles and Prac-
tice. Reading: Addison-Wesley, 1997. 1175 p.
[FORTRAN] FORTRAN-SC: A FORTRAN Extension for Engineer-
ing/Scientic Computation with Access to ACRITH. Lan-
guage Reference and User's Guide. 396 p.
[GOM 90] GOMES, Jonas de Miranda; VELHO, Luiz Carlos. Conceitos
Basicos de Computac~ao Graca. S~ao Paulo: IME/USP, 1990.
311 p.
[HAM 95] HAMMER, R.; HOCKS, M.; KULISCH, U.; RATZ, D. C++ Toolbox
for Veried Computing. Berlin: Springer-Verlag, 1995. 377 p.
[HAN 95] HANSELMAN, Duane; LITTLEFIELD, Bruce. The Student Edi-
tion of MATLAB. Englewood Clis: Prentice-Hall, 1995. 833 p.
[HAR 95] HARRIS, Kent; LOPEZ, Robert J. Discovering Calculus with
MAPLE. New York: John Wiley, 1995. 344 p.