Você está na página 1de 14

Programação em Octave-Online 1

Este documento pretende explicar os primeiros passos no uso do octave online.


A ideia é que o aluno siga os passos aqui apresentados e veja os resultados
simultaneamente com a leitura deste texto.

1 ENTRAR NO SISTEMA
Em primero lugar, accesse o link abaixo (usando o Google Chrome, Internet
Explorer, Mozilla Firefox):

https : //octave − online.net/

No Google Chrome aparecerá algo similar a figura 1:

Figure 1: Entrando no link do octave online (no Google Chrome).

Este é o ambiente básico de programação do Octave Online. Existem 3 áreas


neste ambiente:
1. V ars
Do lado esquerdo aparece uma coluna com os nomes das variáveis exis-

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 SOMA DE DOIS NÚMEROS


Na linha de comandos >> você pode fazer contas. Por exemplo, execute o
seguinte comando: >> 2+3[enter]. O resultado aparece na figura 2. O resultado

Figure 2: Resutado de 2+3.

é armazenado na variável ans. Experimente executar


>> ans + ans
O resultado será
ans = 10
O valor 10 estará guardado na variável ans. Portanto, ans guarda o valor do
último comando executado. O nome da variável ans vem do inglês answer que
significa resposta.

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.

4 EXPRESSÕES ARITMÉTICAS COM VARIÁVEIS


Se a variável b está na lista de V ars e vale 5, então é possı́vel fazer contas com
ela:
>> b + 4, resposta: ans = 9
>> −b, resposta: ans = −5
>> b + b, resposta: ans = 10
>> 3 ∗ b, resposta: ans = 15
>> b + b/2, resposta: ans = 7.5000
Alguns operadores aritméticos são:
• +: soma
• ∗: produto
• −: resta (ou oposição)
• /: divisão

5 INCREMENTO DE UMA VARIÁVEL


Execute o seguinte comando:
>> i = 1
Na coluna V ars aparecerá a variável i. O comando >> i = i + 3 somará 3 ao
valor da variável i. O resultado deste comando será: i = 4. Se executarmos por
segunda vez o comando >> i = i + 3 o resultado será: i = 7.
Verifique o resultado da seguinte sequência de comandos:
>> j = 4;
>> j = j + 1;
>> j = j + 1;
>> j = j + 1;
>> j = j + 1;
>> j
O resultado será
j = 8.

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.

7 COMPONENTES DE UMA MATRIZ


Na linguagem matemática, a matriz definida em (1) tem os seguintes compo-
nentes:
a11 = 1, a12 = 2, a13 = 3, a14 = 4
a21 = 5, a22 = 6, a23 = 7, a24 = 8
a31 = 9, a32 = 0, a33 = 8, a34 = 7
No octave é possı́vel ter acesso ao componente aij pondo na linha de comando
A(i, j). Assim, por exemplo:
>> A(1, 1)
ans = 1
>> A(3, 2)
ans = 0
>> A(2, 4)
ans = 8

8 LINHAS E COLUNAS DE UMA MATRIZ


No octave é possı́vel selecionar linha ou coluna de uma matriz. Por exemplo, a
linha 1 da matriz definida em (1) pode obter-se com o comando:
>> A(1, :)
ans =
1234
e a linha 3 com o comando:
>> A(3, :)
ans =

4
9087
Por sua vez, a coluna 2 é obtida com o comando:
>> A(:, 2)
2
6
0

9 DEFINIÇÃO DE UM VETOR COLUNA


Um vetor coluna é uma matriz com uma coluna e uma ou mais linhas. Por
exemplo, para criar o vetor v ∈ R3×1
 
4
v=3 (2)
10

executar na linha de comandos:


>> v = [4; 3; 10]
cujo resultado será:
v=
4
3
10

10 DEFINIÇÃO DE UM VETOR LINHA


Um vetor linha (ou vetor deitado) é uma matriz com uma linha e uma ou mais
colunas. Por exemplo, para criar o vetor w ∈ R1×4
 
w = 1 −2 3 −4 (3)

executar na linha de comandos:


>> w = [1 − 2 3 − 4]
cujo resultado será:
w=
1 −2 3 −4

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

12 A TRANSPOSTA DE UMA MATRIZ


Seja a seguinte matriz definida no Octave:
>> A = [1 2 3 4; 5 6 7 8; 9 0 8 7];
A transposta de A é obtida com o comando:
>> A0
cujo resultado é
ans =
159
260
378
487
A transposta de um vetor coluna é um vetor linha. A transposta de um vetor
linha é um vetor coluna. Experimente executar a seguinte sequência de coman-
dos:
>> v = [1; 2; 3]
>> w = [1 2 3]
>> v 0
>> w0

13 COMBINAÇÃO LINEAR DE MATRIZES


E VETORES
Sejam as seguintes matrizes, vetores definidos no Octave:
>> A = [1 2; 3 4; 5 6; 7 8];
>> B = [9 0; 1 − 2; 3 − 4; 5 − 6];

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

15 RESOLUÇÃO DE UM SISTEMA LINEAR


“NO CHUTE”
Seja o seguinte sistema linear

12x1 + 3x2 − 4x3 = 11


24x1 − x2 − 6x3 = 29 (4)
−12x1 − 17x2 + 14x3 = 45

O sistema (4) pode escrever-se como Ax = b onde


   
12 3 −4 11
A =  24 −1 −6 e b = 29 .
−12 −17 14 35

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.

16 RESOLUÇÃO DE UM SISTEMA LINEAR


COM O ALGORITMO DE ELIMINAÇÃO
Seja o sistema linear (4). Seja as seguintes definições no octave (copiar e colar
na linha de comandos >> o seguinte texto):

A=[12 3 −4;24 −1 −6;−12 −17 1 4 ]


b=[11;29;45]
MA=[A b ]
Na área de resultados aparecerá
A=

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

12x1 + 3x2 − 4x3 = 11


− 7x2 + 2x3 = 7 (5)
6x3 = 42

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.

3. Resolver os sistema triangular com o algoritmo da substituição reversa.


Exemplo:
Seja o seguinte sistema linear

− 2x1 + 3x2 − 4x3 − 5x4 + 6x5 − 2x6 = −4


4x1 − 9x2 + 10x3 + 9x4 − 18x5 + 3x6 = −1
− 6x1 + 3x2 − 12x3 − 10x4 + 10x5 − 12x6 = −27
8x1 − 12x2 − 4x3 + 50x4 − 7x5 − 9x6 = 26
− 14x1 + 24x2 − 18x3 − 95x4 + 6x5 + 28x6 = −69
2x1 + 6x2 + 26x3 − 51x4 − 16x5 + 32x6 = −1
(6)
De modo que a Matriz Aumentada M A = [A b] é:
 
−2 3 −4 −5 6 −2 −4
 4
 −9 10 9 −18 3 −1 
 −6 3 −12 −10 10 −12 −27
MA =   (7)
 8
 −12 −4 50 −7 −9 26 

−14 24 −18 −95 6 28 −69
2 6 26 −51 −16 32 −1

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:

− 2x1 + 3x2 − 4x3 − 5x4 + 6x5 − 2x6 = −4


− 3x2 + 2x3 − x4 − 6x5 − x6 = −9
− 4x3 + 7x4 + 4x5 − 4x6 =3
(8)
− 5x4 − 3x5 + 3x6 = −5
− 6x5 + 5x6 = −1
− 2x6 = −2

14