G 01 Intro Octave OCT
G 01 Intro Octave OCT
G 01 Intro Octave OCT
UFERSA
Cálculo numérico
Prof. Matheus Menezes
Guia de Laboratório 01
Introdução ao OCTAVE
Índice
1. Introdução.................................................................................................................. 1
2. Objetivos.................................................................................................................... 1
3. Introdução ao OCTAVE................................................................................................ 2
3.1. O que é o OCTAVE............................................................................................................................................. 2
3.2. Visão Geral do Ambiente OCTAVE................................................................................................................. 2
3.3. Operações Simples............................................................................................................................................ 3
3.4.Definindo o tipo da variável............................................................................................................................. 4
3.5.Funções Pré-definidas........................................................................................................................................ 6
3.6. Vetores................................................................................................................................................................. 6
3.7. Funções................................................................................................................................................................. 7
3.8. Gráficos................................................................................................................................................................. 9
3.8.1. Inserindo mais de uma função no mesmo gráfico...................................................................................10
1. Introdução
A carga teórica aplicada nas disciplinas ministradas na universidade serve de embasamento para o
conhecimento científico. Contudo, devido a limitação de carga horária e da própria ementa das
disciplinas, a aplicação prática muitas vezes é renegada a segundo plano, deixando a formação do
aluno incompleta no que diz respeito à tecnologia aplicada para resolver vários tipos de problemas.
2. Objetivos
A presente guia de laboratório tem por objetivo apresentar alguns conceitos básicos de utilização do
programa OCTAVE, de forma a servir de embasamento para o desenvolvimento de atividades na
disciplina de cálculo numérico.
Ao fim dessa aula, é esperado que o aluno tenha noções básicas de utilização do programa,
possibilitando assim aplicar métodos numéricos para a resolução dos problemas propostos na
disciplina. Vale salientar que este conhecimento pode ter sua aplicação estendida a várias outros
componentes curriculares do curso, e posteriormente a sua utilização em desenvolvimento de
pequisas e no mercado de trabalho.
Ao concluir esta guia de laboratório, é esperado que o aluno seja capaz de:
(a) Ter uma visão geral sobre o programa OCTAVE.
(b) Executar comandos simples e usar o prompt como uma calculadora básica.
(c) Usar algumas funções pré-definidas do programa
(d) Criar um vetor a partir de suas componentes e também a criação de vetores com valores
igualmente espaçados;
(e) Criação de funções;
(f) Criação de gráficos bidimensionais simples.
3. Introdução ao OCTAVE
O Navegador de Arquivos permite que você navegue entre os diretórios de seu computador. O
Diretório Atual é definido logo acima da janela de comandos. O prompt de comandos fica localizado
na janela de comandos e permite a inserção e execução imediata de códigos. As variáveis criadas e
suas propriedades são listadas no Ambiente de Trabalho e os comandos usados recentemente ficam
acessíveis no Histórico de Comandos. Vamos falar inicialmente como operar o OCTAVE através da
sua janela de comandos.
Figura 1: Visão Geral do Ambiente OCTAVE
O prompt de comandos serve para que se possa inserir diretamente os comandos que serão
interpretados pelo OCTAVE. Para começar a utilização, no prompt de comando, digite a seguinte
expressão:
3 + 2
O resultado será:
ans = 5
Ou seja, a variável de sistema ans está armazenando o valor da última operação realizada que é igual
a 5. Agora digite a seguinte sequência de comandos:
a= 3
b= 2
c= a + b
Observe que agora estamos utilizando variáveis para armazenar os valores. A variável c tem o valor 5
armazenado, que é o resultante da operação de soma dos valores das variáveis a e b. Essas variáveis
podem ser visualizadas também na janela Ambiente de Trabalho.
Os operadores aritméticos utilizados no OCTAVE são os seguintes:
clc
Para apagar uma variável da memória, utilizamos o comando clear “nome da variável” Por
exemplo, temos que a variável c armazena o valor 5; podemos constatar esse fato digitando o
comando c . Para apagar a variável c da memória, digitamos o comando.
clear c
c = a + b
c = a + b ;
1. Nomes de variáveis começam com uma letra seguido de letras, algarismos ou sublinhados.
Por exemplo: Alpha, notas, A1, B23 e cor_1;
2. Caracteres especiais não são permitidos;
3. Caracteres acentuados não são permitidos;
4. Há diferença entre maiúsculas e minúsculas. Por exemplo, variável Teste é diferente das
variáveis TESTE, teste e TestE.
De acordo com as regras acima, os seguintes nomes de variáveis são válidos: ALPHA, X, B1, B2,
b1, matricula e Media. Porém, estes nomes de variáveis são inválidos: 5B, Nota[1], A/B,
X@Z, média.
Como você deve ter observado, ao criar uma variável, não foi necessário definir o tipo do dado. Se
você digitar no prompt, por exemplo:
t = ‘abc1’
t = abc1
O Octave irá criar automaticamente a variável t do tipo char (caractere, ou melhor, um vetor de
caracteres, mas falaremos disso adiante). Isso ocorre pois o Octave é uma linguagem fracamente tipada,
ou seja, não é preciso definir o tipo das variáveis ao declará-las, e o tipo da variável pode ser alterado
a qualquer momento. Por exemplo, ao digitar no prompt:
t = 3
t = 3
A variável t irá assumir o valor 3 e será definida como tipo double (confira na janela do ambiente de
trabalho). Então, o que devemos fazer se quisermos definir o tipo da variável t como inteiro?
Podemos ‘forçar’ o tipo digitando o comando
t = int32(t)
t = 3
d = t /2
d = 2
O valor esperado é 1.5, correto? Não se desespere. A explicação para isso é bem simples: O Octave
fez uma divisão do tipo inteira e o resultado também é atribuído a um número inteiro. (Não vamos
complicar muito agora. Falaremos sobre os conversões de dados de forma mais específica em outro momento).
Normalmente as constante numéricas são criadas considerando o valor “double precision (binary64)
floating-point format“ definido na norma IEEE 754. Para estes casos o resultado é exibido no prompt
do OCTAVE com cinco algarismos significativos.
Contudo, apesar de exibir dessa forma, o Octave trabalha internamente com uma precisão bem maior.
Por isso, é uma boa prática de programação armazenar os resultados em variáveis, no lugar de digitar
novamente os valores mostrados, para evitar erros nos resultados.
Existem dois outros resultados reconhecidos pelo Octave: Infinito (Inf) que resulta da divisão de um
número por zero, e o Not a Number (NaN) que é o resultado da divisão de zero por zero e outras
operações que geram resultados indefinidos.
Finalmente, é importante ter cuidado com os resultados de certas operações. Nem sempre o
resultado analítico coincide com o resultado numérico. Por exemplo
1-0.2-0.2-0.2-0.2-0.2
ans = 5.5511e-17
Apesar do valor resultante ser bem pequeno, não é igual a zero. Uma das prováveis razões para isso é
que a conversão do número decimal 0.2 para a base binária (que é a base que os computadores trabalham
internamente para realizar os cálculos) é uma dízima e o resultado gerado é apenas uma aproximação do
resultado analítico.
3.5.Funções Pré-definidas
O OCTAVE possui um conjunto de funções pré-definidas e prontas para uso. Por exemplo, para
encontrar o valor do cosseno de c (que já está na memória armazenando um valor), inserimos o seguinte
comando.
cos(c)
As principais funções pré-definidas são listadas a seguir, lembrando que na ajuda (help) do programa,
temos uma lista detalhada de todas as funções disponíveis.
Que tal dar uma espiada nas funções do OCTAVE? Basta ir na guia DOCUMENTAÇÃO e buscar no índice de funções.
3.6. Vetores
Um vetor é definido com suas variáveis escritas entre colchetes e separadas por espaços ou por
vírgulas. Para criar um vetor coluna separamos os elementos por ponto e vírgula. Digite a sequência
de comandos a seguir para criar os vetores (o caractere % serve para delimitar um comentário e é ignorado
pelo programa):
v1 = [1 -5 3 6] %(vetor linha)
v2 = [2 ,5 , -1] %(vetor linha)
v3 = [1; -5; 3; 6] %(vetor coluna)
Para acessar qualquer elemento do vetor, deve-se utilizar o índice do elemento, por exemplo, para
acessar o valor -5 do vetor v1, devemos utilizar v1(2), pois estamos acessando a segunda posição
deste vetor.
Um tipo de vetor bastante útil para utilização em tabelamento de funções é o vetor de índices, que
possui a seguinte forma geral:
Para criar um vetor de índices, chamado I, no intervalo [1,3], com início em 1 e fim em 3, e
utilizando ainda um espaçamento de 0.5, digite o seguinte comando:
I = 1: 0.5: 3
3.7. Funções
Onde:
function Palavra reservada que indica o inicio de uma função.
nomedafuncao o nome da função é definido pelo usuário.
x1, x2,..., xn parâmetros de entrada.
y1, y2,..., ym parâmetros de saída.
<comandos> Comandos do OCTAVE a serem executados pela função.
a = 3;
c = 4;
[z,w]=minhaF(a,c)
z
w
Uma função pode ser criada no ambiente de trabalho, ou a partir de um arquivo de texto contendo a
função e salvo no diretório de trabalho. O arquivo deve ter o mesmo nome dado à função e a
extensão “.m” para que quando essa função for chamada dentro do programa o OCTAVE possa
localizá-la sem necessidade de nenhum comando adicional.
f = inline("a+b")
f = f(a, b) = a+b
f(2,3)
ans = 5
g = @(a,b) a*b ;
g(2,3)
ans = 6
3.8. Gráficos
Para construir gráficos simples em duas dimensões no OCTAVE, utilizamos o comando plot cuja
sintaxe básica é :
plot ([x],y)
onde x e y devem ser vetores de mesma dimensão. Nessa caso, o comando plot irá traçar o gráfico
de y em função de x.
Para construir o gráfico da função y=cos(x) no intervalo de [-3,3], com espaçamento de 0.1,
utilizamos os comandos:
x = -3:0.1:3
plot (x,cos(x))
O comando grid insere linhas de grade no gráfico. Para mudar o tipo e a cor da linha do gráfico,
podemos utilizar o comando
plot (x,cos(x),”r--”)
Onde o r indica que a cor será vermelho (red em inglês) e o “--” indica que a linha será tracejada. As
tabelas a seguir mostram as cores e os tipos de linha disponíveis.
w Branco (white)
vx = -5:0.5:5
plot (vx,vx.^3 - 9*vx + 5)
Observe que utilizamos um ponto antes da exponenciação para que todos os elementos do vetor vx
sejam utilizados na operação. Uma outra forma de fazer o gráfico é definindo a função através do
comando @().
vx = -5:0.5:5
f = @(x) x.^3-9*x + 5 ;
plot (vx,f(vx))
Que tal testar a construção do gráfico utilizando outras formas de definir a função?
Existem situações em que desejamos inserir mais de uma função no mesmo gráfico. Porém, por
padrão, o OCTAVE considera a exibição apenas do último gráfico enviado. Por exemplo:
vx = -4:0.5:4
plot (vx,cos(vx));
plot (vx,sin(vx));
grid
Para que as duas funções sejam exibidas no mesmo gráfico devemos utilizar o comando hold on.
Este comando faz com que o OCTAVE “espere” pela próxima função antes de finalizar o gráfico (Ver
figura 2B). E este comando é cumulativo, ou seja, vai inserir as funções no gráfico até que você insira
o comando hold off.
vx = -4:0.5:4
plot (vx,cos(vx));
hold on
plot (vx,sin(vx));
grid
Figura 2. Exemplo de aplicação do comando hold
2A 2B