Prog Octave 1
Prog Octave 1
Prog Octave 1
1 ENTRAR NO SISTEMA
Em primero lugar, accesse o link abaixo (usando o Google Chrome, Internet
Explorer, Mozilla Firefox):
1
tentes. V ars significa lista de variáveis. Inicialmente aparece a variável
ans. Em breve veremos o que significa a variável ans.
2. >>
No lado inferior aparece a linha de comandos. Do lado do sı́mbolo >>
aparece um cursor piscando. Isto significa que o entorno esta aguardando
comandos. Para executar um comando é necessário digitar o comando e
logo apertar ENTER.
3. Area de apresentação dos resultados
Esta área está acima da linha de comandos >> e do lado da coluna V ars.
Nesta área se mostram os resultados dos comandos executados.
2
3 ATRIBUIÇÃO DE UM VALOR A UMA VARIÁVEL
Uma variável é um espaço de memória que tem um nome. Para atribuir o valor
5 a uma variável de nome b fazemos:
>> b = 5
aparecerá na área de resultados:
b=5
Para que não apareça na área de resultados deve-se usar o ponto e vı́rgula no
final do comando:
>> b = 7;
o comando anterior não mostrará nada na área de resultados.
3
6 DEFINIÇÃO DE UMA MATRIZ
Seja a seguinte matriz A ∈ R3×4 :
1 2 3 4
A = 5 6 7 8 (1)
9 0 8 7
Neste exemplo a matriz A é uma matriz de três linhas e quatro colunas. Para
criar a matriz A no octave, executar
>> A = [1 2 3 4; 5 6 7 8; 9 0 8 7]
cujo resultado será:
A=
1234
5678
9087
Observe que o ponto e vı́rgula ; serve para separar as linhas da matriz.
4
9087
Por sua vez, a coluna 2 é obtida com o comando:
>> A(:, 2)
2
6
0
11 COMPONENTES DE UM VETOR
Na linguagem matemática, o vetor coluna definido em (2) tem os seguintes com-
ponentes:
v1 = 4, v2 = 3, v3 = 10
5
Analogamente, o vetor linha definido em (3) tem os seguintes componentes:
w1 = 1, w2 = −2, w3 = 3, w4 = −4
No octave, o componente vi pode ser obtido com o comando v(i). Assim, por
exemplo:
>> v(1)
ans = 4
>> v(2)
ans = 3
>> v(3)
ans = 10
Identicamente, o componente wi em octave escreve-se w(i). Por exemplo:
>> w(3)
ans = 3
>> w(2)
ans = −2
6
>> a = [1; 2; 3; 4];
>> b = [5; −6; 7; −8];
A combinação linear de vetores 3a − 2b calcula-se em octave da seguinte forma:
>> 3 ∗ a − 2 ∗ b
e o resultado é:
ans =
−7
18
−5
28
A combinação linear de matrizes 3A − 2B é:
>> 3 ∗ A − 2 ∗ B
cujo resultado é:
ans =
−15 6
7 16
9 26
11 36
14 PRODUTO DE MATRIZES
Sejam as seguintes matrizes e vetores definidos no Octave:
>> A = [1 2 3 4; 5 6 7 8; 9 0 8 7];
>> B = [1 2; 3 4; 5 6; 7 8];
>> w = [1; 2; 3; 4];
>> v = [1 2 3];
O produto AB (matriz×matriz) pode ser calculado com o comando:
>> A ∗ B
cujo resultado é:
ans =
50 60
114 140
98 122
O produto Aw (matriz×vetor) se obtem fazendo:
>> A ∗ w
cujo resultado é:
ans =
30
70
61
O produto vA (vetor×matriz) pode-se obter com:
>> v ∗ A
cujo resultado é:
7
ans =
38 14 41 41
Resolver o sistema linear (4) nada mais é do que responder a seguinte questão:
Qual é o x de modo que o produto Ax é igual a b. Para tentar com diferentes
vetores x no octave, primeiro executa-se:
>> A = [12 3 − 4; 24 − 1 − 6; −12 − 17 14];
>> b = [11; 29; 45];
Agora podemos tentar os seguintes produtos Ax onde x assume os seguintes
valores:
Tentativa 1:
>> x = [1; 1; 1];
>> A ∗ x
ans =
11
17
15
Tentativa 2:
>> x = [1; 2; 3];
>> A ∗ x
ans =
6
4
−4
Tentativa 3:
>> x = [3; 2; 1];
>> A ∗ x
ans =
38
64
8
−56
Tentativa 4:
>> x = [3; 1; 7];
>> A ∗ x
ans =
11
29
45
Portanto a solução do sistema (4) é x1 = 3, x2 = 1 e x3 = 7.
12 3 −4
24 −1 −6
−12 −17 14
b=
11
29
45
MA =
12 3 −4 11
24 −1 −6 29
−12 −17 14 45
A matriz M A se denomina Matriz Aumentada. As primeiras colunas de M A
são de A e a última coluna de M A é b. A primeira linha de M A, identificada
por (L1) é:
12 3 − 4 11
A segunda linha de M A, identificada por (L2) é:
24 − 1 − 6 29
A terceira linha de M A, identificada por (L3) é:
−12 − 17 14 45
Passo 1.
9
Definir pivot = M A(1, 1).
Definir multiplicador = − Mpivot
A(2,1)
.
Substituir (L2) por multiplicador×(L1)+(L2).
Definir multiplicador = − Mpivot
A(3,1)
.
Substituir (L3) por multiplicador×(L1)+(L3).
O passo 1 pode ser executado no octave da seguinte forma (copiar e colar na
linha de comandos >> o seguinte texto):
p i v o t=MA( 1 , 1 ) ;
m u l t i p l i c a d o r=−MA( 2 , 1 ) / p i v o t ;
MA( 2 , : ) = m u l t i p l i c a d o r ∗MA( 1 , : ) +MA( 2 , : ) ;
m u l t i p l i c a d o r=−MA( 3 , 1 ) / p i v o t } ;
MA( 3 , : ) = m u l t i p l i c a d o r ∗MA( 1 , : ) +MA( 3 , : ) ;
MA
Na área de resultados aparecerá
MA =
12 3 −4 11
0 −7 2 7
0 −14 10 56
Agora a segunda linha de M A, identificada por (L2) é:
0 −7 2 7
A terceira linha de M A, identificada por (L3) é:
0 − 14 10 56
Passo 2.
Definir pivot = M A(2, 2).
Substituir (L3) por − Mpivot
A(3,2)
×(L2)+(L2).
O passo 2 pode ser executado no octave da seguinte forma (copiar e colar na
linha de comandos >> o seguinte texto):
p i v o t=MA( 2 , 2 ) ;
m u l t i p l i c a d o r=−MA( 3 , 2 ) / p i v o t ;
MA( 3 , : ) = m u l t i p l i c a d o r ∗MA( 2 , : ) +MA( 3 , : ) ;
MA
Na área de resultados aparecerá
MA =
12 3 −4 11
0 −7 2 7
0 0 6 42
10
Com esta matriz M A podemos identificar o seguinte sistema triangular equiv-
alente ao sistema (4):
11
17 Resumo
Para resolver um sistema linear Ax = b podemos proceder da seguinte forma:
1. Criar uma Matriz Aumentada M A = [A b]
2. Escalonar M A com o algoritmo de escalonamento usando comandos oc-
tave.
O código octave que faz o escalonamento de (6) é (copiar e colar o texto abaixo
na linha de comandos >>):
12
MA = [
−2 3 −4 −5 6 −2 −4
4 −9 10 9 −18 3 −1
−6 3 −12 −10 10 −12 −27
8 −12 −4 50 −7 −9 26
−14 24 −18 −95 6 28 −69
2 6 26 −51 −16 32 −1
];
p i v o t = MA( 1 , 1 ) ;
mult = −MA( 2 , 1 ) / p i v o t ;
MA( 2 , : ) = mult ∗MA( 1 , : ) +MA( 2 ,:);
mult = −MA( 3 , 1 ) / p i v o t ;
MA( 3 , : ) = mult ∗MA( 1 , : ) +MA( 3 ,:);
mult = −MA( 4 , 1 ) / p i v o t ;
MA( 4 , : ) = mult ∗MA( 1 , : ) +MA( 4 ,:);
mult = −MA( 5 , 1 ) / p i v o t ;
MA( 5 , : ) = mult ∗MA( 1 , : ) +MA( 5 ,:);
mult = −MA( 6 , 1 ) / p i v o t ;
MA( 6 , : ) = mult ∗MA( 1 , : ) +MA( 6 ,:);
p i v o t = MA( 2 , 2 ) ;
mult = −MA( 3 , 2 ) / p i v o t ;
MA( 3 , : ) = mult ∗MA( 2 , : ) +MA( 3 ,:);
mult = −MA( 4 , 2 ) / p i v o t ;
MA( 4 , : ) = mult ∗MA( 2 , : ) +MA( 4 ,:);
mult = −MA( 5 , 2 ) / p i v o t ;
MA( 5 , : ) = mult ∗MA( 2 , : ) +MA( 5 ,:);
mult = −MA( 6 , 2 ) / p i v o t ;
MA( 6 , : ) = mult ∗MA( 2 , : ) +MA( 6 ,:);
p i v o t = MA( 3 , 3 ) ;
mult = −MA( 4 , 3 ) / p i v o t ;
MA( 4 , : ) = mult ∗MA( 3 , : ) +MA( 4 ,:);
mult = −MA( 5 , 3 ) / p i v o t ;
MA( 5 , : ) = mult ∗MA( 3 , : ) +MA( 5 ,:);
mult = −MA( 6 , 3 ) / p i v o t ;
MA( 6 , : ) = mult ∗MA( 3 , : ) +MA( 6 ,:);
p i v o t = MA( 4 , 4 ) ;
mult = −MA( 5 , 4 ) / p i v o t ;
MA( 5 , : ) = mult ∗MA( 4 , : ) +MA( 5 ,:);
mult = −MA( 6 , 4 ) / p i v o t ;
MA( 6 , : ) = mult ∗MA( 4 , : ) +MA( 6 ,:);
p i v o t = MA( 5 , 5 ) ;
mult = −MA( 6 , 5 ) / p i v o t ;
MA( 6 , : ) = mult ∗MA( 5 , : ) +MA( 6 ,:);
MA
Este código imprimirá na área de resultados:
13
MA =
−2 3 −4 −5 6 −2 −4
0 −3 2 −1 −6 −1 −9
0 0 −4 7 4 −4 3
0 0 0 −5 −3 3 −5
0 0 0 0 −6 5 −1
0 0 0 0 0 −2 −2
A matriz M A resultante representa o seguinte sistema triangular equivalente:
14