Anda di halaman 1dari 166

A lgebra Linear Aplicada para Cursos de

Matematica e Computac~ao.

Paulo Werlang de Oliveira


Francisco Alberto Rheingantz Silveira

Faculdade de Matematica { PUCRS

Porto Alegre, janeiro de 2001.


CIP { CATALOGACA~ O NA PUBLICACA~ O

O48g Oliveira, Paulo Werlang de


A lgebra Linear Aplicada para Cursos de
Matematica e Computac~ao. /
Paulo Werlang de Oliveira, Francisco Alberto Rheingantz
Silveira. | Porto Alegre, 2001.
166 p. ; il.

1. Matematica Computacional. 2. Computac~ao


Gra ca. 3. A lgebra Linear. I. Silveira, Francisco
Alberto Rheingantz. II. Ttulo.

CDD: 004.0151
006.6
515

Elaborada pelo Setor de Processamento Tecnico da BC{PUCRS


PREFA CIO

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 Gra ca,
como interpolac~ao e ajuste de polin^omios, transformaco~es lineares e a ns, morphing
e criptogra a, 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.

Porto Alegre, janeiro de 2001.

Paulo Werlang de Oliveira


Francisco Alberto Rheingantz Silveira
Informac~oes:
Pontifcia Universidade Catolica do Rio Grande do Sul.
Faculdade de Matematica { Departamento de Matematica.
Av. Ipiranga, 6681. Predio 15. Sala 115.
Caixa Postal: 1429. Partenon.
C.E.P.: 90.619-900 { PORTO ALEGRE { RS { BRASIL
Telefone: (0xx51) 3320.35.31. { Fax: (0xx51) 3320.36.31
E-Mail: pwerlang@mat.pucrs.br, farsilveira@pucrs.br
Sumario 5
SUMA RIO
LISTA DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1 INTRODUCA~ O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 MATRIZES, VETORES E SISTEMAS LINEARES . ....... 17


2.1 De nic~oes Basicas . . . . . . . . . . . . . . . . . . . . . ....... 17
2.2 Operac~oes Matriciais e Vetoriais . . . . . . . . . . . . ....... 20
2.3 Metrica Matricial . . . . . . . . . . . . . . . . . . . . . ....... 28
2.4 Miscel^anea de Propriedades . . . . . . . . . . . . . . . ....... 30

3 SOFTWARE PARA A RESOLUCA~ O DE SISTEMAS LINEARES


E MATRIZES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1 Linguagens de Programac~ao . . . . . . . . . . . . . . . . . . . . . 32
3.2 Software de Computac~ao Algebrica . . . . . . . . . . . . . . . . . . 34
3.3 MAPLE V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.1 Caractersticas do MAPLE V . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.2 MAPLE V { Comandos Basicos . . . . . . . . . . . . . . . . . . . . . . 40

4 ME TODOS COMPUTACIONAIS PARA A RESOLUCA~ O DE


SISTEMAS LINEARES . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1 Metodos Diretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
XXIV CNMAC
6 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
4.1.1 Metodo de Eliminac~ao Gaussiana . . . . . . . . . . . . . . . . . . . . 48
4.1.2 Metodo de Castilhos . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.1.3 Fatorac~ao Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.1.4 Fatorac~ao de Strassen . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2 Metodos Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.1 O Metodo Iterativo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . 67
4.3 Resoluc~ao de Sistemas \Tipo Banda" . . . . . . . . . . . . . . . . 71
4.4 Calculo de Determinantes . . . . . . . . . . . . . . . . . . . . . . . 76
4.5 Invers~ao de Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . 79

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

ANEXO A-1 LISTAGEM DOS ALGORITMOS . . . . . . . . . . . 139


A-1.1 Algoritmo de Strassen para o Produto de Matrizes . . . . . 139
A-1.2 Algoritmo de Strassen para a Invers~ao de Matrizes . . . . . 141
A-1.3 Algoritmo de Lie . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
A-1.4 Algoritmo Basico de Gauss . . . . . . . . . . . . . . . . . . . . 144
A-1.5 Algoritmo de Castilhos . . . . . . . . . . . . . . . . . . . . . . . 146
A-1.6 Fatorac~ao Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . 147
A-1.7 Algoritmo para matrizes tridiagonais . . . . . . . . . . . . . . 148
A-1.8 Algoritmo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . 149
A-1.9 Algoritmo para Splines Cubicos . . . . . . . . . . . . . . . . . . 150
A-1.10 Algoritmo para Morphing . . . . . . . . . . . . . . . . . . . . . . 152

ANEXO A-2 O MAPLE V NA RESOLUCA~ O DE PROBLEMAS DA


GEOMETRIA ANALTICA . . . . . . . . . . . . . . . 154
A-2.1 Comandos Basicos do MAPLE V . . . . . . . . . . . . . . . . . . . 154
XXIV CNMAC
8 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
BIBLIOGRAFIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

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
a ns, morphing e criptogra a, 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 a ns, 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 de nic~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:

 Captulo 1: Fundamentac~ao Teorica


Apresentac~ao 13
S~ao abordados os seguintes topicos: operaco~es com vetores, equac~oes da
reta e do plano, combinac~ao linear e base, projec~ao de um vetor sobre
outro vetor, intersecc~ao de duas retas, intersecc~ao entre reta e plano e
entre dois planos, alem de exerccios de xaca~o.
 Captulo 2: O MAPLE V na Resoluca~o de Problemas da Geo-
metria Analtica
S~ao apresentados os comandos da biblioteca de A lgebra Linear do MAPLE
V que ser~ao utilizados na resoluca~o dos problemas propostos no primeiro
captulo.
 Captulo 3: Aplicac~oes da Geometria Analtica em Proble-
mas da Computac~ao
Aqui s~ao apresentadas duas aplicac~oes da Geometria Analtica em
Problemas da Computaca~o: C^amera Sintetica e Cobertura Convexa de
um Conjunto de Pontos do Plano.

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:

 problemas de interpolaca~o e ajuste de dados;


 modelagem geometrica computacional por \ splines cubicos";
 transformac~oes lineares planas, autovalores e autovetores;
 \ morphing " (composica~o ponderada de imagens ou objetos);
 invers~ao de matrizes;
 resoluc~ao de sistemas lineares que surgem em problemas das ci^encias e
engenharias.

Neste exame de quali caca~o a area de abrang^encia escolhida e o estudo


de metodos computacionais para a re-soluca~o de problemas envolvendo matrizes e
vetores de numeros reais, com exemplos de aplicac~oes em Matematica e Ci^encias
da Computaca~o e o tema de profundidade escolhido foi o estudo da a-ritmetica
intervalar matricial e seus respectivos metodos computacionais, com propostas de
soluc~ao para alguns problemas matriciais intervalares.
Este trabalho foi organizado da seguinte maneira:
O captulo 2 trata de matrizes, vetores e sistemas lineares de numeros
reais, apresentando as de nico~es e conceitos basicos, alem de de nir as operac~oes
usuais da aritmetica matricial e as principais propriedades que se far~ao necessarias
em captulos seguintes.
No captulo 3 e feito um estudo do software de computaca~o algebrica
MAPLE V, apresen-tando-se os principais comandos da biblioteca linalg para a res-
oluc~ao de problemas matriciais. Alem disso, s~ao feitas considerac~oes sobre outros
XXIV CNMAC
16 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
software e linguagens de programac~ao que podem ser usados para a resoluca~o de
problemas matriciais e sistemas lineares.
No captulo 4 s~ao estudados alguns dos metodos classicos para a res-
oluc~ao de problemas matriciais, como os metodos de Eliminaca~o Gaussiana e de
Castilhos, as fatorac~oes de Cholesky e de Strassen (todos estes, metodos diretos)
e um metodo iterativo, baseado na teoria do ponto xo, denominado Metodo de
Gauss-Seidel.
No captulo 5 s~ao apresentados alguns problemas de aplicac~ao para
matrizes e sistemas lineares em Matematica e Ci^encia da Computaca~o, dentre os
quais, os citados acima.
O tema de profundidade e tratado no captulo 6, onde s~ao estudados
os vetores e matrizes intervalares e s~ao vistas vers~oes intervalares dos metodos reais
estudados no captulo 4, veri cando a sua viabilidade pratica.
Finalmente, no captulo 7 s~ao apresentadas as principais conclus~oes
obtidas durante a realizac~ao deste trabalho, com sugest~oes para trabalhos futuros.

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).

2.1 De nic~oes Basicas


De nic~ao 2.1 (Vetor) Um vetor n dimensional e uma tupla ordenada constituda
de n numeros reais e denotado por
~u = (u1; u2; : : : ; un)

De nic~ao 2.2 (Matriz) Uma matriz de ordem m  n e um arranjo retangular de


numeros reais com m linhas e n colunas, denotada por
0 a11 a12 : : : a1n 1
BB a21 a22 : : : a2n C
C
Amn = (aij )mn = BB@ .. . . . .. C
. C
.. A
. .
am1 am2 : : : amn

De nic~ao 2.3 (Matriz Transposta) Seja Amn uma matriz. A matriz trans-
posta da matriz A e a matriz de nida 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
De nic~ao 2.4 (Matriz Quadrada) Diz-se que Amn e uma matriz quadrada se
e somente se m = n.

De nic~ao 2.5 (Matriz Simetrica) Diz-se que A e uma matriz simetrica se e


somente se
A0 = A.
Obs.: Note que para que uma matriz seja simetrica e necessario que ela
seja quadrada.
01 2 3 41
B C
Exemplo 2.2 A matriz A44 = BB@ 23 56 68 79 CCA e simetrica.
4 7 9 10
De nic~ao 2.6 (Matriz Anti-simetrica) Diz-se que A e uma matriz anti-simetrica
se e somente se A0 = ;A.
0 0 ;2 3 4 1
B C
Exemplo 2.3 A matriz A44 = BB@ ;23 06 ;60 ;97 CCA e anti-simetrica.
;4 ;7 9 0
Obs.: Note que para que uma matriz seja anti-simetrica e necessario
que ela seja quadrada. Alem disso, todos os elementos da diagonal principal (
akk ; k = 1::n ) devem ser nulos.
Belo Horizonte/MG.
Apresentac~ao 19
De nic~ao 2.7 (Matriz Nula) E a matriz em que todas as entradas s~ao nulas.
!
Exemplo 2.4 A matriz O24 = 00 00 00 00 e a matriz nula de ordem 2  4.

De nic~ao 2.8 (Matriz Identidade) A matriz identidade de ordem nn e de nida


por:
(
aij = 10 se i=j
se i 6= j

De nic~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

De nic~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.

De nic~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.

2.2 Operaco~es Matriciais e Vetoriais


De nic~ao 2.12 (Igualdade entre Vetores) Dois vetores ~u = (u1; u2; : : : ; un) e
~v = (v1 ; v2; : : : ; vn) s~ao iguais se e somente se u1 = v1, u2 = v2 , : : :, un = vn .
De nic~ao 2.13 (Igualdade entre Matrizes) Duas matrizes Amn e Bpq s~ao
iguais se e somente se m = p, n = q e aij = bij , para todos os ndices i; j .

De nic~ao 2.14 (Soma (Adic~ao) de Matrizes) Sejam A e B duas matrizes de


ordem mn. A soma das matrizes A e B e a matriz Cmn de nida por cij = aij +bij ,
para todos os ndices i; j .
! !
Exemplo 2.8 Dadas as matrizes A = 12 23 78 45 60 e B = 51 34 85 150 ;106 ,
!
6 5 15 4
temos C = A + B = 3 7 13 20 10 . 0

Teorema 2.1 (Propriedades da Adic~ao ) Sejam A, B , e C matrizes de ordem


m  n. Ent~ao, s~ao validas:
1. A + B = B + A;
2. (A + B ) + C = A + (B + C );
3. Existe uma matriz Omn tal que A + O = A, para qualquer matriz A;
4. Para toda matriz Amn existe uma matriz Bmn tal que A + B = O.
Belo Horizonte/MG.
Apresentac~ao 21
De nic~ao 2.15 (Multiplicac~ao por Escalar) Seja Amn uma matriz e um
numero real. Ent~ao a multiplicaca~o do numero real pela matriz A e de nida por
A = aij , para todos os ndices i; j .
! !
Exemplo 2.9 Dada a matriz A = 12 23 7 4 6 e = 3 temos 3A = 3 1 2 7 4 6 =
8 5 0! 2 3 8 5 0
!
3:1 3:2 3:7 3:4 3:6 = 3 6 21 12 18 .
3:2 3:3 3:8 3:5 3:0 6 9 24 15 0

Teorema 2.2 (Propriedades da Multiplicac~ao por Escalar) Sejam A e B ma-


trizes de ordem m  n e e dois numeros reais. Ent~ao, s~ao validas:

1. (A + B ) = ( A) + ( B );
2. ( + )A = ( A) + ( A);
3. ( : )A = :( A);
4. 1A = A.

De nic~ao 2.16 (Matriz Oposta) Seja A uma matriz de ordem m  n. A oposta


da matriz A, denotada por ;A e a matriz obtida multiplicando-se a matriz A por
;1, ou seja ;A = (;1)A.
De nic~ao 2.17 (Subtrac~ao de Matrizes) A subtrac~ao de matrizes e de nida
por meio da adic~ao e da multiplicac~ao por escalar, ou seja A ; B = A + (;1)B .

De nic~ao 2.18 (Produto de Matrizes) Sejam Amn e Bnp duas matrizes. O


produto da matriz A pela matriz B e a matriz Cmp de nida por
X
n
cij = aik bkj
k=1
para todos os ndices i; j .
XXIV CNMAC
22 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Exemplo
0 2.10
1 (Exemplo
0 1.3.12
1 de [SCH073], pag. 16.) Dadas as matrizes A 1=
1 1 2 0 1 1:0 + 1:1 + 2:2 1:1 + 1:(;1) + 2:0
B
@ 1 2 3 CA e B = B@ 1 ;1 CA temos A:B = B@ 1:0 + 2:1 + 3:2 1:1 + 2:(;1) + 3:0 C
A=
01 4 91 2 0 1:0 + 4:1 + 9:2 1:1 + 4:(;1) + 9:0
5 0
B
@ 8 ;1 CA.
22 ;3

Teorema 2.3 (Propriedades do Produto) Sejam A, B e C matrizes de ordens


compatveis e um numero real. Ent~ao, s~ao validas:

1. A(BC ) = (AB )C ;
2. A(B + C ) = AB + AC ;
3. (A + B )C = AC + BC ;
4. (AB ) = ( A)B .

Obs.: O produto de matrizes n~ao e comutativo, ou seja AB 6= BA.


Considere o seguinte exemplo.

Exemplo 2.11 (N~ao comutatividade


! do
! produto: [SCH 73], pag. 23.) Dadas
as matrizes A = 0 1 eB= 1 0 tem-se:
0 0 0 0
! ! !
AB = 00 10 : 10 0 = 0 0
0 0 0
e
! ! !
BA = 0 0 : 00
1 0 1 = 0 1 .
0 0 0

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
De nic~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

De nic~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

De nic~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

De nic~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.

Teorema 2.4 (Propriedades do Produto Escalar) Sejam ~u, ~v e w~ vetores e


e numeros reais. Ent~ao, s~ao validas:

1. ~u ~u  0;
2. ~u ~v = ~v ~u;
3. (~u + ~v) w~ = ~u w~ + ~v w~ ;
4. ( ~u) ~v = (~u ~v).

De nic~ao 2.23 (Matriz Positivo De nida) Uma matriz simetrica Ann e dita
positivo de nida se ~u0A~u > 0, para qualquer vetor ~u n~ao nulo.

De nic~ao 2.24 (Produto de Schur) Sejam A e B duas matrizes de ordem m 


n. O produto de Schur das matrizes A e B e de nido e denotado por Pmn =
Amn  Bmn onde pij = aij bij .
Belo Horizonte/MG.
Apresentac~ao 25
0 1 0 1
10 3 0 2 2 5 7 4
Exemplo 2.16 Dadas as matrizes A34 = B@ 1 8 ;5 ;1 CA e B34 = B@ 12 3 ;2 7 CA
2 50 1 0 1 9 5 13 ;9
20 15 0 8
o produto de Schur entre A e B e a matriz P34 = B
@ 12 24 10 ;7 C A
18 25 13 0
De nic~ao 2.25 (Produto de Lie) Sejam A e B duas matrizes de ordem m  n.
O produto de Lie das matrizes A e B e de nido e denotado por Lmn = Amn Bmn
onde
X
n
lij = aik bkj ; bik akj
k=1
0 1 0 1
1 2 3 1 0 ;1
Exemplo 2.17 Dadas as matrizes A33 = B@ 4 5 6 CA e B33 = B@ 3 ;5 8 CA
9 08 7 12 2 4
21 2 31
o produto de Lie entre A e B e a matriz L33 = B
@ ;24 ;58 25 CA
1 ;72 37
Obs.: O algoritmo que calcula o produto de Lie foi implementado em
MAPLE V e sua listagem encontra-se no ap^
endice.
De nic~ao 2.26 (Produto de Kronecker) Sejam Amn e Bpq duas matrizes.
O produto de Kronecker das matrizes A e B e de nido e denotado por
0 a B a B ::: a B 1
BB a1121 B a1222 B : : : a12nn B CC
Kmpnq = [Amn
Bpq ] = BB@ .. C
.C
.. .. . . . A
. .
am1 B am2 B : : : amn B
0 1
3 ;2
Exemplo 2.18 (Produto de Kronecker) Dadas as matrizes A32 = B@ 1 5 CA
7 4
e
XXIV CNMAC
26 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
!
B22 = 2 ; 1 , o produto de Kronecker entre A e B e a matriz
3 8
0 6 ;3 ;4 2 1
BB 9 24 ;6 ;16 CC
BB 2 ;1 10 ;5 CCC
K64 = [A32
B22] = B BB 3 8 15 40 C
B@ 14 C
;7 8 ;4 CA
21 56 12 32

De nic~ao 2.27 (Determinante de uma Matriz) O determinante de uma ma-


triz e uma func~ao que associa, a cada matriz quadrada Ann, um numero real (A)
calculado por:
X
(A) = sgn(p):a1j a2j a3j : : : anjn
1 2 3
8p
( do conjunto S = f1; 2; 3; : : :; ng
onde p = j1 j2j3 : : : jn s~ao todas as permutac~oes possveis
e sgn(p) e o sinal da permutaca~o p, onde sgn(p) = ; + se p e par
se p e mpar

Esta e a de nica~o formal de determinante de matrizes de ordem n  n


qualquer, porem ela n~ao e util na pratica.
Sera apresentado, no captulo 4 uma maneira viavel de se fazer o calculo
de determinantes, usando o metodo de eliminac~ao de Gauss.

Teorema 2.5 (Propriedades do Determinante)

1. Se uma linha (ou coluna) da matriz A e nula ent~ao o determinante


(A) = 0;
2. Se A e uma matriz com duas linhas (colunas) iguais ent~ao (A) = 0;
Belo Horizonte/MG.
Apresentac~ao 27
3. O determinante de uma matriz triangular e o produto dos elementos da
Y
n
diagonal principal, ou seja, (A) = aii;
i=1
4. (AB ) = (A)(B );
5. (A0 ) = (A);
6. (A;1 ) =
1 , desde que (A) 6= 0.
(A)
De nic~ao 2.28 (Matriz Singular) Diz-se que A e uma matriz singular se e so-
mente se
(A) = 0.
De nic~ao 2.29 (Matriz N~ao Singular) Diz-se que A e uma matriz n~ao singu-
6 0.
lar se e somente se (A) =
De nic~ao 2.30 (Matriz Inversa) Se Ann e uma matriz quadrada n~ao singular
ent~ao existe uma unica matriz quadrada de ordem n  n, denotada por A;1 , tal que
A:A;1 = A;1 :A = Inn. Tal matriz e dita matriz inversa de A.
Obs.: No captulo 4 sera apresentado um metodo computacional para
o calculo da inversa de uma matriz n~ao singular.
De nic~ao 2.31 (Traco de uma Matriz) Dada uma matriz quadrada Ann, o
traco de A e de nido e denotado por
X
n
(A) = aii
i=1

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.

De nic~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. jj~ujj  0, com jj~ujj = 0 se e somente se ~u = (0; 0; : : : ; 0);


2. jj ~ujj = j j:jj~ujj;
3. jj~u + ~vjj  jj~ujj + jj~vjj.

As principais normas vetoriais s~ao:


p
Norma Euclidiana: jj~ujj = ~u ~u;
Norma do Maximo: jj~ujjM = maxfju1j; ju2j; ju3j; : : : ; junjg;
Norma da Soma: jj~ujjS = ju1j + ju2j + ju3j + : : : + junj.
Teorema 2.6 (Relac~ao entre as normas vetoriais) Seja ~u um vetor n-dimensional.
Ent~ao, vale:

jj~ujjM  jj~ujj  jj~ujjS  n:jj~ujjM


Belo Horizonte/MG.
Apresentac~ao 29
Obs.: O que o teorema anterior a rma e que as tr^es normas s~ao equiv-
alentes (prova detalhada, vide [LIM 81], pag. 5). Desta forma, qualquer uma das
tr^es normas pode ser usada, escolhendo-se a mais apropriada para cada aplicaca~o.
Teorema 2.7 (Desigualdade de Cauchy-Schwarz) Sejam ~u e ~v dois vetores n di-
mensionais. Ent~ao, vale:

j~u ~vj  jj~ujj:jj~vjj


Prova: Omitida (Uma prova muito interessante para este teorema e
apresentada na pagina 150 de [KOL 97]).
De nic~ao 2.33 (Norma de uma Matriz) Uma norma matricial e uma func~ao
que associa, a cada matriz Mmn, um unico numero real n~ao negativo jjM jj que
satisfaz as seguintes propriedades:
1. jjMmn jj  0, com jjMmnjj = 0 se e somente se Mmn e a matriz
nula;
2. jj Mmn jj = j j:jjMmnjj;
3. jjMmn + Nmn jj  jjMmnjj + jjNmn jj;
4. jjMmn :Nnp jj  jjMmn jj:jjNnpjj.
As principais normas matriciais s~ao
v
u 0n 1
u
u X
m X
Norma Euclidiana: jjMmnjj = t @ jmij j A;
2
i=1 j =1

Norma do Maximo: jjMmnjjM = max


i;j jmij j;
0n 1
X
@ jmij jA.
Norma da Soma: jjMmnjjS = max
1im
j =1
XXIV CNMAC
30 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
Obs.: A tabela completa, com todos os tipos de normas matriciais
de nidas para diferentes usos, pode ser vista na pagina 65 de [LIM 81].

De nic~ao 2.34 (Dist^ancia entre Vetores) Sejam ~u e ~v dois vetores n dimen-


sionais. Ent~ao, a dist^ancia entre ~u e ~v e de nida e denotada por
d(~u;~v) = jj~u ; ~vjj

Teorema 2.8 (Propriedades da Dist^ancia entre Vetores) Sejam ~u, ~v e w~ tr^es


vetores n dimensionais. Ent~ao, s~ao validas:

1. d(~u;~v) = d(~v; ~u);


2. d(~u;~v)  d(~u; w~ ) + d(w~ ;~v);
3. ~u 6= ~v ) d(~u;~v) > 0.

De nic~ao 2.35 (Dist^ancia entre Matrizes) Sejam M e N duas matrizes de


mesma ordem. Ent~ao, a dist^ancia entre M e N e de nida e denotada por
d(M; N ) = jjM ; N jj

Obs.: As propriedades da dist^ancia entre duas matrizes s~ao as mesmas


da dist^ancia entre dois vetores sendo, desta forma, omitidas aqui.

2.4 Miscel^anea de Propriedades


Estas propriedades foram agrupadas nesta seca~o pois envolvem varias
de nic~oes e operac~oes de nidas anteriormente.

Teorema 2.9 (Propriedades da Transposta) Sejam A e B duas matrizes. Ent~ao,


s~ao validas:
Belo Horizonte/MG.
Apresentac~ao 31
1. (AB )0 = B 0A0 ;
2. (A + B )0 = A0 + B 0 ;
3. (A0)0 = A;

Teorema 2.10 (Propriedades do Traco) Sejam A e B duas matrizes e  um


numero real.
Ent~ao, s~ao validas:

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.

No proximo captulo faremos um estudo do software de computac~ao


algebrica MAPLE V, que tem uma biblioteca de algebra linear espec ca para a res-
oluc~ao de problemas envolvendo matrizes e vetores e que sera muito util para as
aplicac~oes praticas que faremos posteriormente.
XXIV CNMAC
32 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
3 SOFTWARE PARA A RESOLUCA~ O DE
SISTEMAS LINEARES E MATRIZES
Os software para a resoluc~ao de sistemas lineares e matrizes podem ser
classi cados em dois tipos basicos:

 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.

3.1 Linguagens de Programac~ao


Dentre as linguagens de programac~ao, as mais importantes a serem
citadas, s~ao:

 PASCAL XSC

 FORTRAN-SC

 C-XSC

A linguagem de programac~ao C foi desenvolvida para aplicaco~es em geral


e historicamente esta associada com o sistema operacional UNIX, que geralmente e
escrito em C.
O C-XSC e uma extens~ao do C original, que serve como uma ferramenta
para o desenvolvimento de algoritmos numericos que necessitam de alta exatid~ao
e obtenc~ao de resultados com veri caca~o automatica. Esta vers~ao proporciona um
Belo Horizonte/MG.
Apresentac~ao 33
grande numero de operadores e tipos de dados pre de nidos, que s~ao implementados
como classes do C++. Assim, o C-XSC permite a programaca~o, em alto nvel, de
aplicac~oes numericas em C e C++.
As caractersticas mais importantes do C-XSC s~ao:

 aritmeticas real, complexa e intervalar;


 matrizes e vetores din^amicos;
 de nic~ao de dados do tipo dotprecision;
 operadores matematicos pre de nidos com maxima exatid~ao;
 controle de arredondamento;
 biblioteca de rotinas para a resoluc~ao de problemas com veri caca~o
automatica dos resultados.

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 cient ca. 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 Cient ca. Ele difere das demais linguagens de programaca~o pois tem a
1 O nome provem de PASCAL eXtension for Scienti c 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].

3.2 Software de Computac~ao Algebrica


Segundo Burkhardt ([BUR 93], pag. vii), o primeiro artigo sobre difer-
enciac~ao simbolica em sistemas computacionais foi publicado por Kahrimanian e
Nolen, em 1953. Em 1960 alguns sistemas algebricos comecaram a ser desenvolvi-
dos para mainframes. No nal dos anos 70 surgiram os primeiros sistemas de com-
putac~ao algebrica para computadores pessoais, dentre os quais pode-se citar o MAPLE
V, o DERIVE, o MATLAB e o MATHEMATICA.

O MATHEMATICA e um sistema de computaca~o algebrica e sua origem


data de 1988. Ele e uma importante ferramenta em Ci^encia da Computac~ao, pois ele
serve como ambiente de pesquisa, permite o desenvolvimento de prototipos e tambem
serve como interface para o usuario. Constitudo de um nucleo basico, possui uma
vasta biblioteca de comandos, para a resoluc~ao dos mais diversos problemas das
ci^encias e engenharias.
Belo Horizonte/MG.
Apresentac~ao 35
Suas principais caractersticas s~ao:

 func~oes espec cas para Calculo Numerico, Computac~ao Algebrica e


Gra cos;
 precis~ao multipla, de nida pelo usuario;
 diferenciac~ao e integraca~o numericas e simbolicas;
 presenca de uma biblioteca com a aritmetica intervalar;
 animac~ao gra ca;
 permite a convers~ao de documentos para os formatos TEX e html;
 presenca de um Help on line;
 Palettes integradas para input/output de dados.

Para maiores detalhes sobre o MATHEMATICA, consulte a seguinte bibli-


ogra a: [ABE 92, BUR 93, WOL 91].
O MATLAB2 e um software de alta performance para visualizac~ao e calculo
numerico, integrando analise numerica, calculos matriciais, processamento de sinais
e gra cos, num ambiente matematico que n~ao requer a programac~ao tradicional.
Originalmente, o MATLAB foi desenvolvido em Fortran, mas as vers~oes mais atual-
izadas s~ao escritas em C. Suas principais caractersticas s~ao:

 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 gra cos 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

3.3.1 Caractersticas do MAPLE V

O MAPLE V e um software interativo de computac~ao algebrica e simbolica,


que permite resolver, com comandos simples, uma grande variedade de problemas
matriciais.
Suas principais caractersticas s~ao:

 Help on line;
 o software e modularizado, de forma a manipular e cientemente 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 a ca;
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 gra cas;
XXIV CNMAC
38 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
 precis~ao in nita;
 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:

[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp,


Wronskian, addcol, addrow, adj, adjoint, angle, augment, backsub,
band, basis, bezout, blockmatrix, charmat, charpoly, cholesky,
col, coldim, colspace, colspan, companion, concat, cond, copyinto,
crossprod, curl, definite, delcols, delrows, det, diag, diverge,
dotprod, eigenvals, eigenvalues, eigenvectors, eigenvects,
entermatrix, equal, exponential, extend, ffgausselim, fibonacci,
forwardsub, frobenius, gausselim, gaussjord, geneqns, genmatrix,
grad, hadamard, hermite, hessian, hilbert, htranspose, ihermite,
indexfunc, innerprod, intbasis, inverse, ismith, issimilar,
iszero, jacobian, jordan, kernel, laplacian, leastsqrs, linsolve,
matadd, matrix, minor, minpoly, mulcol, mulrow, multiply, norm,
normalize, nullspace, orthog, permanent, pivot, potential,
randmatrix, randvector, rank, ratform, row, rowdim, rowspace,
rowspan, rref, scalarmul, singularvals, smith, stackmatrix,
submatrix, subvector, sumbasis, swapcol, swaprow, sylvester,
toeplitz, trace, transpose, vandermonde, vecpotent, vectdim,
vector, wronskian]

Segundo Roque ([ROQ 95]), o uso de SCAs no ensino e aprendizado


pode trazer grandes benefcios para a melhoria da formac~ao dos pro ssionais das
areas de ci^encias exatas e engenharias.
Um dos motivos que levou o autor a escolher o MAPLE V como ferra-
menta computacional foi a sua familiaridade com o sistema, alem do uso que ele tem
feito deste software em disciplinas de A lgebra Linear e Geometria Analtica para os
alunos do curso de Bacharelado em Ci^encia da Computaca~o da PUCRS.
XXIV CNMAC
40 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
3.3.2 MAPLE V { Comandos Basicos
A seguir apresentaremos uma relac~ao de comandos do MAPLE V utiliza-
dos para calculos em problemas da A lgebra Linear.
Comando: angle
Sintaxe: angle(V1,V2);
Descric~ao: Calcula o ^angulo entre os vetores V 1 e V 2.
Exemplo: angle([1,1,0],[8,1,4]);
 pp 
Resultado: arccos 181 2 81
Comando: band
Sintaxe: band(vetor, n);
Descric~ao: Cria uma matriz n dimensional do tipo banda, com os elementos do vetor.
Exemplo: band([1,2,1],
0 1
5);
2 1 0 0 0
BB 1 2 1 0 0 CC
B C
Resultado: B BB 0 1 2 1 0 CCC
@0 0 1 2 1A
0 0 0 1 2
Comando: cholesky
Sintaxe: cholesky(M);
Descric~ao: Obtem a fatoraca~o Cholesky da matriz M .
Exemplo: cholesky([[4,2,-4,2],[2,10,4,4],[-4,4,9,3],[2,4,3,15]]);
0 2 0 0 01
B 1 3 0 0 CC
Resultado: B B@ ;2 2 1 0 CA
1 1 3 2

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 gra cos.
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 gra co 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 gra ca 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: Simpli ca 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 bibliogra a: [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, justi cando 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.

4.1 Metodos Diretos


Existem varios metodos diretos para a resoluc~ao de sistemas lineares,
dentre os quais pode-se destacar:

1. Metodo de Eliminaca~o Gaussiana


2. Metodo de Castilhos
3. Fatorac~ao Cholesky
4. Fatorac~ao de Strassen

Passemos ao estudo de cada um desses metodos.

4.1.1 Metodo de Eliminac~ao Gaussiana


O metodo de eliminac~ao Gaussiana baseia-se na seguinte ideia:
Belo Horizonte/MG.
Apresentac~ao 49
Dado um sistema linear, aplica-se sobre ele uma sequ^encia de trans-
formac~oes elementares, gerando-se um novo sistema, que tem sua matriz na forma
triangular, cuja soluca~o e imediata, por substituic~ao .
As operac~oes elementares permitidas s~ao:

 Troca de linhas de posic~ao


 Multiplicac~ao de uma linha por um valor constante n~ao nulo
 Soma de duas linhas

Este e o metodo direto mais conhecido e usado para a resoluca~o de


sistemas lineares densos de pequeno e medio porte (ordem da matriz e, no maximo,
50). Para sistemas de maior porte usam-se tecnicas especiais, que levam em conta
propriedades espec cas das matrizes envolvidas.
Vejamos, atraves de um exemplo, como se aplica este algoritmo de
eliminac~ao Gaussiana.

Exemplo 4.1 Resolver o sistema linear:


8 3x + 2y + t
>
> = 3
< 9x + 8y ; 3z + 4t = 6
>
> ;6x + 4y ; 8z = ;16
: 3x ; 8y + 3z ; 4t = 18

Convenc~ao : Indicaremos por Lk a:Li + b:Lj a substituic~ao da linha


k pela combinac~ao linear de a vezes a linha i mais b vezes a linha j .
Soluc~ao :
Colocando o sistema na forma matricial, temos:
XXIV CNMAC
50 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
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, 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 Gauss para zerar todos os elementos abaixo
de a1;1 temos:
L2 L2 ; 93 L1
0 3 2 0 1 31
BB 0 2 ;3 1 ;3 CC
B@ ;6 4 ;8 0 ;16 CA
3 ;8 3 ;4 18
L3 L3 ; ;36 L1
03 2 0 1 31
BB 0 2 ;3 1 ;3 CC
B@ 0 8 ;8 2 ;10 CA
3 ;8 3 ;4 18
L4 L4 ; 33 L1

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:

Input : (n, Aij, Bi) / i=1(1)n, j=1(1)n;

Procedure :

> 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;

> 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.

Output : (Xi) / i=1(1)n.

Neste algoritmo, s~ao dados como entrada a dimens~ao n da matriz, a


propria matriz Aij e o vetor independente Bi, para todos os ndices i; j entre 1 e n.
XXIV CNMAC
54 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
No primeiro trecho do algoritmo, a matriz dada e transformada numa
matriz triangular superior, sendo atualizados os respectivos valores do vetor coluna
Bi .
No segundo trecho, a matriz triangular superior e usada para resolver
o sistema, atraves de um processo de retro-substituic~ao.
A sada do algoritmo e o resultado do vetor X .
A listagem do algoritmo de eliminaca~o Gaussiana, implementado em
MAPLE V, encontra-se no ap^
endice.
Convem observar que esta e a vers~ao basica do algoritmo. Existem
vers~oes mais so sticadas, que levam em conta a escolha de piv^os, para diminuir os
erros de arredondamento dos calculos. Maiores detalhes podem ser encontrados em
[CLA 94].

4.1.2 Metodo de Castilhos


O metodo de Castilhos e um algoritmo recursivo, baseado na ideia do
algoritmo de eliminac~ao Gaussiana e na teoria dos determinantes.
Sua vantagem reside no fato de que a resoluca~o de um sistema de ordem
n  n recai na resoluca~o de um sistema de ordem (n ; 1)  (n ; 1) e assim por diante.
A desvantagem esta no fato de que as matrizes intermediarias tem suas
entradas crescendo muito rapidamente, devido ao calculo dos determinantes.
Algoritmo de Castilhos:

Input : (n, Aij, Bi) / i=1(1)n, j=1(1)n;

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;

Output : (Xi) / i=1(1)n.

Vejamos, atraves de um exemplo numerico, como e este algoritmo.

Exemplo 4.2 Resolver, pelo metodo de Castilhos, o seguinte sistema linear:


8 3x + 2y + t
>
> = 3
< 9x + 8y ; 3z + 4t = 6
>
> ;6x + 4y ; 8z = ;16
: 3x ; 8y + 3z ; 4t = 18

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.

4.1.3 Fatoraca~o Cholesky


A fatorac~ao Cholesky consiste, basicamente, em escrever uma matriz A
simetrica po-sitivo de nida como o produto de uma matriz triangular inferior pela
sua transposta, ou seja, A = C:C 0, onde C e uma matriz triangular inferior.

XXIV CNMAC
58 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
A Fatorac~ao de Cholesky e dada pelo seguinte algoritmo:

Input : (n, Aij) / i=1(1)n, j=1(1)n;

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:

Output : (Cij) / i=1(1)n, j=1(1)n;

A implementac~ao deste algoritmo encontra-se no ap^endice.


Obs.: Para resolver um sistema linear Ax = y usando-se a fatorac~ao
Cholesky usa-se as seguintes igualdades:
Ax = y mas A = C:C 0 e da tem-se que C:C 0x = y resulta na resoluc~ao
de dois sistemas triangulares: Cb = y e C 0x = b.
Belo Horizonte/MG.
Apresentac~ao 59
0 4 2 ;4 2 1
B 4 4C
Exemplo 4.3 Obter a fatorac~ao Cholesky da matriz positivo de nida BB@ ;24 104 9 3C
C.
A
2 4 3 15

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 certi car-se do resultado.
No ap^endice esta a implementac~ao deste algoritmo em MAPLE V.

4.1.4 Fatorac~ao de Strassen


Um algoritmo muito interessante para a multiplicac~ao de matrizes e o
algoritmo de Strassen, apresentado por Crandal (vide [CRA 94], pag. 32 { 37).
Este algoritmo e recursivo e permite fazer a multiplicac~ao de duas ma-
trizes quadradas n  n com uma complexidade da ordem de O(n )  O(n2:8), ao
log(7)
log(2)

contrario da multiplicac~ao direta, que exige uma complexidade da ordem de O(n3).


A seguir e descrito o algoritmo de Strassen, com um exemplo de aplicac~ao
para matrizes 2  2:
! !
a b e f
Sejam A = c d e B = g h duas matrizes de numeros reais.
Ent~ao, o produto das matrizes A e B pode ser computado por:
XXIV CNMAC
60 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
! ! !
a b : e f = p+s;t+v r+t
c d g h q+s p + r ; q + u , onde
p = (a + d)(e + h);
q = (c + d)e;
r = a(f ; h);
s = d(g ; e);
t = (a + b)h;
u = (c ; a)(e + f );
v = (b ; d)(g + h).
Vejamos como ca um exemplo numerico:
! !
2 ; 3 1 7
Dadas as matrizes A = 1 5 e B = ;1 0 , temos:
p = (2 + 5)(1 + 0) = 7;
q = (1 + 5)1 = 6;
r = 2(7 ; 0) = 14;
s = 5((;1) ; 1) = ;10;
t = (2 + (;3))0 = 0;
u = (1 ; 2)(1 + 7) = ;8;
v = ((;3) ; 5)((;1) + 0) = 8.
e da

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
de nidas 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 modi cado para se
determinar a inversa de uma matriz n~ao singular.
!
a b
Inverter a matriz quadrada M = c d . Isso signi ca 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.

4.2.1 O Metodo Iterativo de Gauss-Seidel


Dado o sistema linear
8
>
> a11 x1 + a12 x2 + a13 x3 + : : : + a1nxn = y1
>
< a21 x1 + a22 x2 + a23 x3 + : : : + a2nxn
> = y2
a31 x1 + a32 x2 + a33 x3 + : : : + a3nxn = y3
>
> ... ...
>
>
: an1 x1 + an2x2 + an3 x3 + : : : + annxn = yn
isola-se a variavel x1 na primeira equac~ao , a variavel x2 na segunda
equac~ao , e assim sucessivamente, ate isolarmos a variavel xn na ultima equac~ao .
Da, temos:
x1 = y1 ; a12 x2 ; a13a x3 ; : : : ; a1n xn
11

x2 = y2 ; a21 x1 ; a23a x3 ; : : : ; a2n xn


22
...

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.

Input : (L, n, Aij, Xi, Yi) / i=1(1)n, j=1(1)n;

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;

Output : (Xi) / i=1(1)n.

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

Aplicando o esquema de iterac~oes dado anteriormente, temos:


x = 93 ; y=102 ; z=5

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)

a matriz A do sistema for diagonalmente dominante, ou seja, se


X
jaiij > jaij j
i6=j
para todo 1  i  n.
Obs.: Se a matriz A do sistema original n~ao for diagonalmente domi-
nante, as vezes e possvel reordenar as linhas da matriz de tal forma que se tenha
um sistema equivalente onde a matriz e diagonalmente dominante.

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 espec co 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:

Input : (n, Aij, Yi) / i=1(1)n, j=1(1)n;

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;

Output : (Xi) / i=1(1)n.

Veremos, a seguir, um exemplo numerico de aplicac~ao deste algoritmo.


Exemplo 4.5 Resolver o sistema linear do tipo banda dado por
0 1 0 1 0 1
BB 21 1 0 0 0 0 0C B x1 CC BB ;1 CC 2
BB 2 1 0 0 0 0CCC BBB x2 CC BB C
BB 0 1 2 1 0 0 0C B x3 CC BB ;9 CCC
BB 0 0 1 2 1 0 0C CC : BBB x4 CC = BB ;11 CC
BB 00 0 1 2 1 0C CC BBB x5 CC BB ;4 CC
B@ 0
0 0 0 1 2 1A @ x6 CA B@ 3 CA
0 0 0 0 0 1 2 x7 7
Aplicando o algoritmo acima, implementado em MAPLE V, obtemos:
># Algoritmo para matrizes banda
>
> restart:
> with(linalg):
Warning, new definition for norm Warning, new definition for trace
> A:=band([1,2,1],7);

[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];

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.

> 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;

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

> for i from (n-1) by -1 to 1 do


> X[i]:=M[i]-N[i]*X[i+1];
> od;

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 a rma 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

A tecnica de ajuste de dados ocorre geralmente em problemas estatsticos,


onde e necessario determinar um modelo matematico que descreva o comportamento
dos dados tabulados, de forma a se poder fazer previs~oes futuras.
A tecnica de interpolac~ao polinomial ocorre frequentemente em proble-
mas de Computac~ao Gra ca, onde e necessario determinar um polin^omio de grau n
que passa por n + 1 pontos dados.
A tecnica dos \splines cubicos" e um re namento da interpolac~ao poli-
nomial, onde os polin^omios procurados s~ao todos de grau 3.
Transformac~oes Lineares Planas s~ao transformaco~es do plano cartesiano
nele mesmo, muito uteis em tecnicas de animac~ao da Computac~ao Gra ca.
Os Autovetores e Autovalores d~ao as direco~es e os respectivos fatores
de ampliac~ao de transformac~oes lineares.
Belo Horizonte/MG.
Apresentac~ao 83
Finalmente, Morphing e uma tecnica da Computac~ao Gra ca que per-
mite a passagem gradual de um objeto (imagem) para outro.
Veremos, a seguir, cada um destes topicos.

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:

Tabela 5.1: Valores Tabulados: Ajuste Linear y = ax + b.


x y
-2 -2
-2 0
1 4
1 6
3 5
3 13
4 10
4 12

Determinar a equac~ao de reta que melhor se ajusta ao conjunto de


pontos dados.
O modelo a ser ajustado e y = ax + b com a e b a serem determinados.
E preciso ordenar os pontos em ordem crescente de x e, para um mesmo valor de x,
em ordem crescente de y.
Montando o sistema linear associado, temos:
Belo Horizonte/MG.
Apresentac~ao 85

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

Que resulta no sistema:


! ! !
60 12 : a = 156
12 8 b 48
Cuja soluc~ao, efetuada no MAPLE V, mostrou que a = 2 e b = 3, de
modo que a equac~ao procurada e y = 2x + 3.

> # Resolucao da Equacao de Ajuste


> restart:
> with(linalg):
Warning, new definition for norm Warning, new definition for trace
> A:=matrix([[-2,1],[-2,1],[1,1],[1,1],[3,1],[3,1],[4,1],[4,1]]);

[-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]);

B := [-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

> GF:=plot(y(x),x=-4..5,y=-6..16, thickness=2, color=red):


> display(GF,GP);

O gra co da equaca~o de ajuste e dado a seguir:

Figura 5.1: Equac~ao de Ajuste: y = 2x + 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.

Teorema 5.1 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
existe um unico polin^omio p(x) = a0 + a1x + a2 x2 + : : : + an;1xn;1 + an xn de modo
que
p(xi ) = yi; 8i = 0; 1; : : : ; n

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.

># Resolucao do Polinomio Interpolador


> restart:
> with(linalg):
Warning, new definition for norm Warning, new definition for trace
> A:=vandermonde([1,2,3,4]);

[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]);

B := [-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

> GF:=plot(p(x),x=-6..6,y=-20..80, thickness=2, color=red):


> display(GF,GP);
> p(1);

-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

A seguir, e apresentado o gra co obtido no MAPLE V.

Figura 5.2: Polin^omio Interpolador: p(x) = x3 ; 2x2 + 3x ; 5

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 e ciente.
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

Tabelando a func~ao temos:

Tabela 5.2: Valores Tabulados: Func~ao de Runge.


x y
-1 0.03846153846
-0.8 0.05882352941
-0.6 0.1
-0.4 0.2
-0.2 0.5
0 1
0.2 0.5
0.4 0.2
0.6 0.1
0.8 0.05882352941
1 0.03846153846

Como a tabela possui 11 pontos, o polin^omio que interpola e de grau


10.
Resolvendo o problema, com o auxlio do MAPLE V, temos:

>
> # 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]];

P := [[-1, .03846153846], [-.8, .05882352941], [-.6, .1], [-.4, .2],

[-.2, .5], [0, 1], [.2, .5], [.4, .2], [.6, .1],

[.8, .05882352941], [1, .03846153846]]

> V:=[.03846153846,.05882352941,.1,.2,.5,1,.5,.2,.1,.05882352941,.03846153846];

V := [.03846153846, .05882352941, .1, .2, .5, 1, .5, .2, .1,

.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]

[1 , -.8 , .64 , -.512 , .4096 , -.32768 , .262144 ,

-.2097152 , .16777216 , -.134217728 , .1073741824]

XXIV CNMAC
96 Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.
[1 , -.6 , .36 , -.216 , .1296 , -.07776 , .046656 ,

-.0279936 , .01679616 , -.010077696 , .0060466176]

[1 , -.4 , .16 , -.064 , .0256 , -.01024 , .004096 ,

-.0016384 , .00065536 , -.000262144 , .0001048576]

[
[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 , .4 , .16 , .064 , .0256 , .01024 , .004096 , .0016384 ,

.00065536 , .000262144 , .0001048576]

[1 , .6 , .36 , .216 , .1296 , .07776 , .046656 , .0279936 ,

.01679616 , .010077696 , .0060466176]

[1 , .8 , .64 , .512 , .4096 , .32768 , .262144 , .2097152 ,

.16777216 , .134217728 , .1073741824]

[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]

> Potencias:=[seq(x^i, i=0..10)];

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

> GP:=pointplot(P, color=black, symbol=circle):


> GF:=plot(y(x),x=-1..1):
> GPOLI:=plot(Polinomio(x),x=-1..1,linestyle=4,color=green):
> display(GP,GF,GPOLI);

>

Belo Horizonte/MG.
Apresentac~ao 99
Cujo gra co e mostrado abaixo:

Figura 5.3: Func~ao de Runge: f (x) = 1 + 125x2

Observe que o polin^omio interpolador obtido (gra co em linhas trace-


jadas) apresenta grandes oscilac~oes para x 2 [0:2; 1:0], o que mostra que essa tecnica
pode apresentar problemas se n~ao for usada com cautela. Nesses casos, e melhor
usar a interpolac~ao por splines cubicos, que sera visto a seguir.

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 de nic~ao formal de um spline cubico.

De nic~ao 5.1 (Spline Cubico) Sejam x1 ; x2; x3 ; : : : ; xn um conjunto de n pontos


distintos com a = x1 < x2 < : : : < xn = b e sejam y1; y2 ; y3; : : : ; yn os respectivos
valores de uma func~ao f nestes pontos.
O Spline cubico que interpola estes dados e a func~ao s(x) de nida no
intervalo [a; b] que tem as seguintes propriedades:

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.

Isso signi ca que o spline cubico e constitudo de n ; 1 equac~oes cubicas,


que devem passar atraves de todos os pontos dados, com concord^ancia de tang^encia
e concavidade.
A formula para cada polin^omio cubico, de nido em [xi ; xi+1] e para
1  i  (n ; 1) e dada por:

!  '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];

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.],

[12., 4.], [13., 4.], [14., 0]), SYMBOL(CIRCLE),

COLOUR(RGB, 0, 0, 0))

> H:=vector(N-1);

H := array(1 .. 13, [])

> for i from 1 by 1 to (N-1) do


> H[i]:=X[i+1]-X[i];
> od;

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 := array(1 .. 13, [])

> 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);

B := array(1 .. 13, [])

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 := array(1 .. 13, [])

>
> 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 := array(1 .. 14, [])

>
> 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

> for i from (N-2) by -1 to 2 do


> F[i]:=(d[i]-H[i]*F[i+1])/C[i];
> od;

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

11920075 7531017 3741297 2 2542621 3


-------- - ------- x + ------- (x - 1) + ------- (x - 1)
4389058 4389058 8778116 8778116

48423 48423 2842290 2 2639467 3


-------- + ------- x + ------- (x - 2) - ------- (x - 2)
4389058 8778116 2194529 8778116

Belo Horizonte/MG.
Apresentac~ao 113

17913455 7434171 3450759 2 762869 3


--------- + ------- x + ------- (x - 3) - ------- (x - 3)
4389058 4389058 8778116 8778116

12897666 19481253 290538 2 3087173 3


--------- + -------- x + ------- (x - 4) - ------- (x - 4)
2194529 8778116 2194529 8778116

9414805 6272019 8099367 2 456837 3


-------- + ------- x - ------- (x - 5) + ------- (x - 5)
4389058 4389058 8778116 4389058

53057987 4444671 2617323 2 2728549 3


-------- - ------- x - ------- (x - 7) + ------- (x - 7)
4389058 4389058 8778116 8778116

20654798 5938341 1392081 2 370017 3


-------- - ------- x + ------- (x - 8) + ------- (x - 8)
2194529 8778116 2194529 8778116

10831379 3154179 6678375 2 4208617 3


--------- + ------- x + ------- (x - 9) - ------- (x - 9)
4389058 4389058 8778116 8778116

13250995 7039257 1486869 2 1091781 3


--------- + ------- x - ------- (x - 10) - ------- (x - 10)
4389058 8778116 2194529 8778116

XXIV CNMAC
114Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.

66665999 4065519 9222819 2 8575741 3


-------- - ------- x - ------- (x - 11) + ------- (x - 11)
4389058 4389058 8778116 8778116

11326475 849453 4126101 2 15654951 3


-------- - ------- x + ------- (x - 12) - -------- (x - 12)
2194529 8778116 2194529 8778116

113791969 7402749 30460449 2 10153483 3


--------- - ------- x - -------- (x - 13) + -------- (x - 13)
4389058 4389058 8778116 8778116

>
> display(GP,seq(GSS[K], K=1..(N-1)));
>

A listagem completa deste algoritmo encontra-se no ap^endice.


O gra co desta interpolac~ao por splines cubicos e dado a seguir:

5.4 Transformaco~es Lineares Planas


Uma transformac~ao linear plana e uma func~ao T : IR2 ;! IR2 ,
(x,y) 7;! (r,s)
que associa, a cada vetor ~u = (x; y) um unico vetor ~v = (r; s) dado por
(
r = ax + by
s = cx + dy

com as seguintes propriedades:


Belo Horizonte/MG.
Apresentac~ao 115

Figura 5.4: Splines Cubicos

1. T (~u + ~v) = T (~u) + T (~v);


2. T ( :~u) = :T (~u).

A forma matricial do problema e:


! ! !
a b : x = r
c d y s
!
onde T e a matriz de coe cientes T = a b que de ne a trans-
c d
formac~ao linear.
A seguir veremos as principais transformaco~es lineares do plano carte-
siano.

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:

Figura 5.5: Modelo Geometrico Padr~ao

Obs.: Nas transformac~oes efetuadas, a gura em negrito e a imagem do


objeto inicial (padr~ao) transformado.

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)]]);

[- 1/4 sqrt(5) + 1/4 , - 1/4 sqrt(2) sqrt(5 + sqrt(5))]


T := [ ]
[1/4 sqrt(2) sqrt(5 + sqrt(5)) , - 1/4 sqrt(5) + 1/4]

>
> 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.

Figura 5.6: Rotac~ao de ^angulo  = 35

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.

5.4.2.1 Re ex~ao em relac~ao a reta OX

A re ex~ao em relac~ao a reta OX e dada pela seguinte matriz de trans-


formac~ao linear:
!
1 0
0 ;1

Figura 5.7: Re ex~ao em relaca~o a reta OX

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

A re ex~ao em relac~ao a reta OY e dada pela seguinte matriz de trans-


formac~ao linear:
!
;1 0
0 1

Figura 5.8: Re ex~ao em relaca~o a reta OY

5.4.2.3 Re ex~ao em relac~ao a origem

A re ex~ao em relac~ao a origem e dada pela seguinte matriz de trans-


formac~ao linear:
!
;1 0
0 ;1

Belo Horizonte/MG.
Apresentac~ao 121

Figura 5.9: Re ex~ao em relac~ao a origem

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

A re ex~ao em relaca~o a reta y = ax, com a 2 IR e dada pela seguinte


matriz de transformac~ao linear:
0 1
BB 11 ; a2 2a CC
B@ +2aa2 a12+;a12 CA
1 + a2 1 + a2
No proximo exemplo foi tomado a = ;1.

Figura 5.10: Re ex~ao em relaca~o a reta y = ;x

5.4.2.5 Re ex~ao de \Householder"

A re ex~ao de \Householder" e de nida da seguinte maneira:


Belo Horizonte/MG.
Apresentac~ao 123
Dado um vetor n~ao nulo ~u, tomamos o seu versor w~ = jj~u~ujj e calculamos
a matriz de \Householder" por
H = I ; 2w~ :~w0

Esta matriz faz a re ex~ao na direc~ao do vetor perpendicular ao vetor ~u


dado inicialmente.
Vejamos um exemplo:
Exemplo 5.4 Determinar a imagem do objeto dado pela seguinte estrutura de da-
dos f(3; 2); (3; 5); (10; 5);
(7; 9); (7; 2); (3; 2)g sabendo que ele sofre uma re ex~ao de \Householder" pelo
vetor ~u = (3; 4).
# Reflexao de Householder
> 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):
> 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);

Figura 5.11: Re ex~ao de Householder em relac~ao ao vetor ~u = (3; 4)

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 de nida 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.

Figura 5.12: Contraca~o

XXIV CNMAC
126Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.

Figura 5.13: Dilataca~o

Belo Horizonte/MG.
Apresentac~ao 127
5.4.4 Cisalhamento Horizontal
O cisalhamento horizontal de fator e de nido 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.

Figura 5.14: Cisalhamento horizontal com > 0

XXIV CNMAC
128Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.

Figura 5.15: Cisalhamento horizontal com < 0

Belo Horizonte/MG.
Apresentac~ao 129
5.4.5 Cisalhamento Vertical
O cisalhamento vertical de fator e de nido 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.

Figura 5.16: Cisalhamento vertical com > 0

XXIV CNMAC
130Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.

Figura 5.17: Cisalhamento vertical com < 0

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 de nica~o formal
de autovetores e autovalores e como eles podem ser determinados.

De nic~ao 5.2 Seja T : IR2 ;! IR2 uma transformac~ao linear plana.


(x,y) 7;! (r,s)
Dizemos que ~v e um autovetor de T se ~v e n~ao nulo e existe  2 IR tal que T (~v) =
~v. Nesse caso, o numero real  e denominado autovalor de T associado a ~v.

Vejamos um exemplo:

Exemplo 5.5 O vetor ~v = (5; 2)! e um autovetor da transformac~ao linear plana


de nida pela matriz T = 42 51 pois
! ! ! !
T (~v) = T :~v = 42 51 : 52 = 30 5
12 = 6 2 = ~v.
Aqui, 6 e o autovalor associado ao autovetor ~v = (5; 2).

Veremos, a seguir, como determinar autovalores e os respectivos au-


tovetores de qualquer transformac~ao linear T .

Teorema 5.2 Seja T : IRn ;! IRn uma transformac~ao linear n dimensional.


~v 7;! ~u
Ent~ao, os autovalores de T s~ao as razes do polin^omio caracterstico p() de nido
por p() = (T ; I ) e os respectivos autovetores s~ao obtidos pela resoluc~ao do
sistema linear homog^eneo (T ; I ):~v = ~0

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 .

Exemplo 5.6 (Exemplo 2 da pag. 166 de [STE 90].) Determinar os autoval-


ores 1 autovetores da transformac~ao linear dada pela matriz T =
0 e os respectivos
7 ;2 0
B
@ ;2 6 ;2 CA.
0 ;2 5

Antes de resolver o exemplo, convem observar que esta e uma trans-


formac~ao linear do espaco tridimensional.
Soluc~ao:
Primeiro e preciso determinar o polin^omio caracterstico e calcular suas
razes.
Belo Horizonte/MG.
Apresentac~ao 133
2 3
7 ;  ;2 0
p() = (T ; I ) = 64 ;2 6 ;  ;2 75 = 162 ; 99 + 182 ; 3
0 ;2 5 ; 
cujas razes s~ao 1 = 3; 2 = 6; 3 = 9.
Fazendo Mi = T ; iI , para 1  i  3, temos:
0 1 0 1 0 1
4 ;2 0 x 0
M1 :~v = @ ;2 3 ;2 A : @ y A = @ 0 C
B C B C B A se e somente se ~v =
0 ;2 2 z 0
(x; 2x; 2x) ou seja o autovetor associado ao autovalor 1 = 3 e ~v = (1; 2; 2).
Para i = 2 temos:
0 1 0 1 0 1
1 ;2 0 x 0
M2 :~v = B@ ;2 0 ;2 CA : B@ y CA = B@ 0 CA se e somente se ~v =
0 ;2 1 z 0
(2x; x; ; 2x) ou seja o autovetor associado ao autovalor 2 = 6 e ~v = (2; 1; ;2).
Finalmente, para i = 3, temos
0 1 0 1 0 1
; 2 ;2 0 x 0
M3 :~v = B
@ ;2 ;3 ;2 CA : B@ y CA = B@ 0 CA se e somente se ~v = (2x; ;
0 ;2 ;4 z 0
2x; x) ou seja o autovetor associado ao autovalor 3 = 9 e ~v = (2; ;2; 1).

5.6 Morphing
Morphing e uma tecnica da computac~ao gra ca 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]

> polygonplot(A, view=[0..10,0..10], axes=none, scaling=constrained);

> 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

> polygonplot(B, view=[0..10,0..10], axes=none, scaling=constrained);

> for i from 0 by 1 to 100 do


> M:=evalm((1-i/100)*A+(i/100)*B):
> G[i]:=polygonplot(M, view=[0..10,0..10], scaling=constrained):
> od:
>
> display(G[0]);

> display(G[100]);

> L:=[seq(G[i], i=0..100)]:


> display(L, insequence=true);

> # Clique sobre a imagem e pressione 'play'


>
>

A seguir temos algumas imagens selecionadas da animac~ao feita no


MAPLE V .

Figura 5.18: Morphing: Frame 1

XXIV CNMAC
136Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.

Figura 5.19: Morphing: Frame 2

Figura 5.20: Morphing: Frame 3

Belo Horizonte/MG.
Apresentac~ao 137

Figura 5.21: Morphing: Frame 4

Figura 5.22: Morphing: Frame 5

XXIV CNMAC
138Algebra Linear Aplicada para Cursos de Matematica e Computac~ao.

Figura 5.23: Morphing: Frame 6

Belo Horizonte/MG.
Apresentac~ao 139
ANEXO A-1 LISTAGEM DOS ALGORITMOS

A-1.1 Algoritmo de Strassen para o Produto de


Matrizes
>
> restart:
>
> with(linalg):
>
>
> AA:=matrix([[2,8],[3,4]]);
> BB:=matrix([[5,7],[1,0]]);
> CC:=matrix([[-2,4],[4,5]]);
> DD:=matrix([[2,7],[1,1]]);
> EE:=matrix([[1,5],[-3,4]]);
> FF:=matrix([[7,4],[4,7]]);
> GG:=matrix([[1,0],[0,1]]);
> HH:=matrix([[0,1],[1,0]]);
> P:=multiply((AA+DD),(EE+HH));
> Q:=multiply((CC+DD),(EE));
> R:=multiply((AA),(FF-HH));
> S:=multiply((DD),(GG-EE));
> T:=multiply((AA+BB),(HH));
> U:=multiply((CC-AA),(EE+FF));
> V:=multiply((BB-DD),(GG+HH));
>
> M11:=evalm(P+S-T+V);
> M12:=evalm(R+T);
> M21:=evalm(Q+S);
> M22:=evalm(P+R-Q+U);

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]

> polygonplot(A, view=[0..10,0..10], axes=none, scaling=constrained);

> B:=matrix([[1,1,7,1,1],[1,10,7,6,1]]);

[1 1 7 1 1]
B := [ ]
[1 10 7 6 1]

> polygonplot(B, view=[0..10,0..10], axes=none, scaling=constrained);

> for i from 0 by 1 to 100 do


> M:=evalm((1-i/100)*A+(i/100)*B):
> G[i]:=polygonplot(M, view=[0..10,0..10], scaling=constrained):
> od:
>
> display(G[0]);

> display(G[100]);

Belo Horizonte/MG.
Apresentac~ao 153
> L:=[seq(G[i], i=0..100)]:
> display(L, insequence=true);

> # Clique sobre a imagem e pressione 'play'


>
>

XXIV CNMAC
ANEXO A-2 O MAPLE V NA RESOLUCA~ O DE
PROBLEMAS DA GEOMETRIA
ANALTICA

A-2.1 Comandos Basicos do MAPLE V


A seguir apresentaremos uma relac~ao de comandos do MAPLE V utiliza-
dos para calculos em problemas da A lgebra Linear e da Geometria Analtica.
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: 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: angle
Sintaxe: angle(V1,V2);
Descric~ao: Calcula o ^angulo entre os vetores V 1 e V 2.
Exemplo: angle([1,1,0],[8,1,4]);
 pp 
Resultado: arccos 181 2 81
Comando: normalize
Sintaxe: normalize(V1);
Descric~ao: Normaliza o vetor V 1, obtendo o seu versor.
Exemplo: normalize([2,6,9]);
2; 6; 9]
Resultado: [ 11 11 11
O MAPLE V na Resoluc~ao de Problemas da Geometria Analtica 155
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]
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: 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: solve
Sintaxe: solve(fEQ1, EQ2, : : :, EQng,fV1, V2, : : :, Vkg);
Descric~ao: Resolve o sistema de n equac~oes em k variaveis.
 ;f17
Exemplo: solve( 2*x-3*y=7, 5*x+4*y=9g, fx,yg);

Resultado: y = 23 ; x = 55 23
Comando: sqrt
Sintaxe: sqrt(N);
Descric~ao: Retorna a raz quadrada do numero N .
Exemplo: sqrt(5);
p
Resultado: 5
XXIV CNMAC
156 Geometria Analtica: Um enfoque computacional
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: 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: simplify
Sintaxe: simplify(Express~ ao)
Descric~ao: Simpli ca a express~ao dada.
Exemplo: simplify(angle([1,1,0],[8,1,4]));
Resultado: 14 
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: evalm
Sintaxe: evalm(Opera c~
ao);
Descric~ao: Avalia a operaca~o 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: multiply
Sintaxe: multiply(M,N);
Descric~ao: Multiplica as matrizes M e N .
Exemplo: multiply([[1,2,3], [4,5,6], [7,8,9]] ,
[[5,3,1], [6,4,2], [9,7,5]]);
Resultado: [[44; 32; 20]; [104; 74; 44]; [164; 116; 68]]
Belo Horizonte/MG.
O MAPLE V na Resoluc~ao de Problemas da Geometria Analtica 157
Comando: print
Sintaxe: print(Express~ ao);
Descric~ao: Imprime o resultado da express~ao.
Exemplo: print(sqrt(2)*sin(Pi/4));
Resultado: 1
Comando: with
Sintaxe: with(Biblioteca);
Descric~ao: Carrega uma biblioteca do MAPLE V.
Exemplo: with(linalg): with(plots): with(simplex);
Resultado:
Comando: restart
Sintaxe: restart;
Descric~ao: Reinicializa o MAPLE V.
Exemplo: restart;
Resultado:
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: 15 26 37 48

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

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 Scienti c 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 Scienti c 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. Di erential 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.
Bibliogra a 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/Scienti c 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 Gra ca. S~ao Paulo: IME/USP, 1990.
311 p.
[HAM 95] HAMMER, R.; HOCKS, M.; KULISCH, U.; RATZ, D. C++ Toolbox
for Veri ed Computing. Berlin: Springer-Verlag, 1995. 377 p.
[HAN 95] HANSELMAN, Duane; LITTLEFIELD, Bruce. The Student Edi-
tion of MATLAB. Englewood Cli s: Prentice-Hall, 1995. 833 p.
[HAR 95] HARRIS, Kent; LOPEZ, Robert J. Discovering Calculus with
MAPLE. New York: John Wiley, 1995. 344 p.

[HEA 98] HEAL, K. M.; HANSEN, M. L.; RICKARD, K. M. MAPLE V { Release


5: Learning Guide. New York: Springer, 1998. 284 p.
[HOH 97] 
HOHER, 
Charles Leandro; HOLBIG, Carlos Amaral; DIVERIO,
Tiaraju Asmuz. Programando em PASCAL XSC. Porto Alegre:
Sagra-Luzzatto, 1997. 94 p.
[HOL 93] HOLMES, Mark H.; ECKER, Joseph G.; BOYCE, William E.; SIEG-
MANN, William L. Exploring Calculus with MAPLE. New York:
Addison-Wesley, 1993. 258 p.
[KAI 80] KAILATH, Thomas. Linear Systems. Englewood Cli s: Prentice-
Hall, 1980. 682 p.
[KAU 80] KAUCHER, C. W. Interval Analysis in the Extended Interval Space
IR. In: Computing Supplementum, 2, (1980). p. 33 { 49.
[KLA 91] KLATTE, R.; KULISCH, U.; NEAGA, M.; RATZ, D.; ULLRICH,
CH. PASCAL XSC. Berlin: Springer-Verlag, 1991. 344 p.
XXIV CNMAC
164 Geometria Analtica: Um enfoque computacional
[KLA 93] KLATTE, R.; KULISCH, U.; WIETHOFF, A.; LAWO, C.; RAUCH,
M. C-XSC: A C++ Class Library for Extended Scienti c
Computing. Berlin: Springer-Verlag, 1993. 269 p.
[KOL 97] KOLMAN, Bernard. Introductory Linear Algebra with Appli-
cations. Upper Saddle River, NJ: Prentice-Hall, 1997. 615 p.
[KUP 95] KUPRIYANOVA, Ludmila. Inner Estimation of the United Solution
Set of Interval Linear Algebraic System. In: Reliable Comput-
ing. 1 (1) (1995). p. 15 { 31.
[KUT 96] KUTZLER, Bernhard. Introduction to DERIVE for Windows.
Hawaii: Soft Warehouse, 1996. 214 p.
[LAW 95] LAWSON, Charles L.; HANSON, Richard J. Solving Least Squares
Problems. Philadelphia: SIAM, 1995. 337 p.
[LAW 96] LAWSON, Terry; LOPEZ, Robert L. MAPLE Labs for Linear Alge-
bra. New York: John Wiley, 1996. 112 p.
[LIM 81] LIMA, Elon Lages. Curso de Analise. Volume 2. Rio de Janeiro:
IMPA, 1981. 557 p.
[MAR 80] MARKOV, Svetoslav M. Some Applications of the Extended Inter-
val Arithmetic to Interval Iterations. In: Computing Suppl., 2,
(1980). p. 69 { 84.
[MATLAB] MATLAB: High-Performance Numeric Computation and Visu-
alization Software. Reference Guide. 548 p.
[MON 98] MONAGAN, M. B.; GEDDES, K. O.; HEAL, K. M.; LABAHN, G.;
VORKOETTER, S. M. MAPLE V { Release 5: Programming
Guide. New York: Springer, 1998. 284 p.
[MOO 66] MOORE, Ramon E. Interval Analysis. Englewood Cli s: Prentice-
Hall, 1966. 145 p.
[MOR 90] MORTENSON, Michael E. Computer Graphics Handbook: Ge-
ometry and Mathematics. New York: Industrial Press, 1990.
259 p.
Belo Horizonte/MG.
Bibliogra a 165
[OLI 95] OLIVEIRA, Paulo Werlang de. Analise Intervalar. Porto Alegre:
CPGCC da UFRGS, 1995. 182 p.
[OLI 97] OLIVEIRA, P. W.; DIVERIO, T. A.; CLAUDIO, D. M. Funda-
mentos da Matematica Intervalar. Porto Alegre: SAGRA-
LUZZATTO, 1997. 93 p. il.
[OLI 98] OLIVEIRA, Paulo Werlang de. Geometria Analtica: Um En-
foque Computacional. Porto Alegre: PUCRS, 1998. 61 p.
[ORT 72] ORTEGA, James M. Numerical Analysis: A Second Course.
New York: Academic Press, 1972. 201 p.
[POP 96] POPOVA, E.; MARKOV, S. M.; ULLRICH, C. On the Solution of
Linear Algebraic Equations Involving Interval Coecients. In: It-
erative Methods in Linear Algebra II. (Eds. S. Margenov, P.
Vassilevski). IMACS Series in Computational and Applied Math-
ematics, 3, (1996). p. 216{225.
[PRE 90] PREPARATA, Franco P.; SHAMOS, Michael Ian. Computational
Geometry: An Introduction. New York: Springer, 1990. 399
p.
[RAM 84] RAMALHETE, Manuel; GUERREIRO, Jorge; MAGALHA~ ES,
Alpio. Programac~ao Linear. Lisboa: McGraw-Hill, 1984. 285
p.
[RED 96] REDFERN, Darren. The MAPLE Handbook. New York: Springer-
Verlag, 1996. 495 p.
[ROG 90] ROGERS, David F.; ADAMS, James Alan. Mathematical El-
ements for Computer Graphics. New York: McGraw-Hill,
1990. 611 p.
[ROQ 95] ROQUE, Waldir Leite. Apologia ao Ensino/Aprendizado de
Matematica Assistido por Sistemas de Computac~ao
Algebrica. In: Revista de Informatica Teorica e Aplicada. Vol.
2, Nro. 2, outubro, 1995. pp. 129 { 140.
XXIV CNMAC
166 BIBLIOGRAFIA
[ROR 84] RORRES, Chris; ANTON, Howard. Applications of Linear Alge-
bra. New York: John Wiley & Sons, 1984. 364 p.
[SAL 82] SALVETTI, Dirceu D. Topicos de Calculo Numerico.. S~ao Paulo:
IME/USP, 1982. (Livro n~ao editado).
[SCH 73] SCHNEIDER, Hans; BARKER, George Phillip. Matrices and Lin-
ear Algebra. New York: Dover, 1973. 413 p.
[SHA 93] SHARY, P. Solving Interval Linear Systems With Nonnegative Ma-
trices. In: Scienti c Computation and Mathematical Mod-
elling. S. Markov (Ed.), DATECS Publishing, So a, 1993. p. 179
{ 182.
[STE 90] STEINBRUCH, Alfredo; WINTERLE, Paulo. Introduc~ao a
A lgebra linear. S~ao Paulo: McGraw-Hill, 1990. 245 p.
[STO 52] STOLL, Robert R. Linear Algebra and Matrix Theory. New
York: McGraw-Hill, 1952. 272 p.
[STO 93] STOER, J.; BULIRSCH, R. Introduction to Numerical Analysis.
New York: Springer-Verlag, 1993.
[VAR 62] VARGA, Richard S. Matrix Iterative Analysis. Englewood Cli s:
Prentice-Hall, 1962. 322 p.
[WOL 91] WOLFRAM, Stephen. The MATHEMATICA Book. 3rd Ed. Cambridge:
Wolfram Media/Cambridge University Press, 1996. 1403 p.
[WOLFRAM] Wolfram Research, MATHEMATICA 3.0 Standard Add-on Pack-
ages. (Wolfram Media/Cambridge University Press, 1996). 516
p.