Você está na página 1de 31

OCTAVE

Raffael Russo
Jonas Rocha Lima Amaro

Sumrio
1.
2.
3.
4.

Introduo
Caractersticas
Concluso
Referncias

Introduo

Histria e motivao

Concebida em 1988, por James B. Rawlings e John G. Ekerdt

Homenagem a Octave Levenspiel

Inicialmente feita para problemas de reatores qumicos

Desenvolvida por John W. Eaton

Primeira verso estvel em 1994

Usada para educao, pesquisa e indstria

Interoperabilidade e Performance

Octave uma linguagem simples. Foi desenvolvida para que os alunos dispendessem mais
tempo resolvendo o problema do que aprendendo a linguagem.

uma linguagem interpretada bastante compatvel com MatLab, possuindo muitas funes

semelhantes;
Aceita facilmente expanso e adaptao atravs do carregamento mdulos, dinamicamente,
escritos em C, C++ e Fortran.

Interoperabilidade e Performance

Comparao entre aspectos de R, Matlab e Octave

Eliminao Gaussiana

Mtodo Gradiente Conjugado

Interoperabilidade e Performance

Comparao entre aspectos de R, Phyton e Octave:

Usurios de Octave

Exemplo de cdigo
function ord_vetor = bubble_sort(vetor)
n = length(vetor);
for i = (n+1):-1:3
for j = 1:(i-2)
if vetor(j)>vetor(j+1)
aux = vetor(j);
vetor(j) = vetor(j+1);
vetor(j+1) = aux;
end
endfor
endfor
ord_vetor = vetor;
endfunction

Caractersticas

Conceitos e Paradigma

Linguagem de programao de alto nvel, destinada ao tratamento de problemas para


computao numrica.
Interface com o programador era efetuado atravs de linha de comando at recentemente. A
mais nova verso possui uma interface grfica.
Paradigma:
Orientado Vetor: generaliza operaes em escalares para aplicar transparncia a vetores e
matrizes
Imperativa: paradigma de programao que descreve a computao como aes,
enunciados ou comandos que mudam o estado (variveis) de um programa.

Tipos nativos
A linguagem possui os chamados Built-in Data Types que incluem escalares reais e complexos,
ranges, matrizes, strings de caractres e vetores que contm todos os tipos de dados. Tambm
possvel definir novos tipos de dados escrevendo cdigo em C++.

Nmeros Reais:
Notao simples: x = 1.981
Nmeros Complexos:
Notao: a + bi
Matrizes:
Notao: A=[linha_1; linha_2; linha_n]
Strings:
txt='Meu texto.' ou txt=Meu texto.

Notao cientfica: x = 1981e-3


z = 10 + 1.981i
Exemplo: A=[1 2 3; 4 5 6; 7 8 9]

Variveis
Variveis permitem dar nomes a valores e se referir a eles mais tarde.

Variveis que foram declaradas como global podem ser acessadas do corpo de uma funo
sem terem sido passadas como parmetro formal. (Ex: global c = 2)
Variveis que foram declaradas como persistent no escopo de uma funo iro reter o seu
contedo em memria entre chamadas subsequentes damesma funo.

A diferena entre persistent variables e global variables que a primeira local no escopo de uma
funo e nao visveis em outro lugar.

Declaraes e definies de variveis

O tipo da varivel inferido no ato da atribuio;


A varivel pode mudar de tipo na execuo do script
Amarrao de tipo feito em tempo de

Ou seja, pode se escrever:

Declarao e definies de subprogramas


Igualmente como as variveis,
octave permite definies de
funo em tempo de execuo
Porm o carregamento de
scripts em arquivo s efetuada
na primeira vez que o arquivo
carregado

Constantes
Constantes matemticas tais
como: , e, i, Inf so constantes pr
definidas da linguagem
Porm o nome delas no
reservado, possvel criar uma
varivel chamada pi com valor 1000

Passagem de parmetros
Em Octave a passagem de argumentos de funo feita por valor, o que significa que cada argumento,
numa chamada de funo, avaliado e atribuido a uma localizao temporria de memria antes de
ser passado funo.

Funes
Para definir uma funo de forma externa preciso criar um ficheiro .m com o nome da funo, tal
como se faz para criar um programa. Ou seja, para criar a funo quadrado,deve-se criar um novo
documento quadrado.m, onde ser definida a funo.
No entanto pode-se definir uma funo diretamente na linha de comando em sesses interativas de
Octave.
A estrutura genrica utiliza para definir uma funo a seguinte:
function [resultados] = nome_da_funo(argumentos)
corpo...
endfunction

Funes
Octave permite a definio de funes que retornam mais de um valor. A sintaxe para definir uma
funo que retorna mltiplos valores :
function [ret-list] = name (arg-list)
body
Endfunction
Em que ret-list uma lista (separada por vrgulas) de nomes de variveis que tero os valores
retornados pela funo.
suportado tambm funes aninhadas.

Operadores
Em Octave temos os operadores artimticos usuais: +; - ; /; ^ ou **;
Alm disso pode-se acrescentar um ponto final . antes de cada operado e a operao ser efetuada
elemento a elemento.
H os operadores: \ que diviso esquerda ( x \ y equivale a inverse(x)*y)
que aplica o conjugado-complexo da transposta

Operadores

Operadores
H operadores usuais de comparao: >; >=; <; <=; != ou ~= ou <>; ==
Operadores booleanos elemento a elemento: &; | e o unrio ! (ou ~)
E Short-Circuit Boolean Operators: &&; ||
Alm dos operadores de incremento usuais: ++; - -

Precedncia de Operadores
Segue em ordem decrescente de precedncia
Exponenciao ^; **; .^; .**
Soma unria, inverso, incremento, decremento e not +; -; ++; - -; ! ou ~
Transposta ; .
Multiplicao e diviso *; /;\; .\ ; .* ; ./
Adio e subtrao +; Relacionais <; <=; ==; >=; >; != ou ~= ou <>
Ou e E elemento-elemento | ; &
Ou e E lgico || ; &&
Assignment =;
Separadores de estado ; ,

Comandos
Octave possui o comando help:

Este comando pode ser usado com um argumento para printar uma mensagem breve sobre o
estilo-de-uso, ou mostrar informaes diretas de uma verso online de um manual.

Erros e Excees
H duas classes de erros que Octave produz quando encontra um input que no consegue entender, ou
quando no consegue executar uma ao:

Parse Error: ocorre se Octave no consegue entender algo que foi digitado
Run-time Errors ou Evaluation Errors: Ocorrem em tempo de evaluation, quando o programa est
rodando ou sendo avaliado.

Um erro pode ser detectado e tratado usando-se try...catch.


A funo lasterror retorna uam estrutura contendo informao sobre o ltimo erro ocorrido (com
mensagem, identificador, nome da funo onde ocorreu o erro, pilha, file, linha e coluna).

Erros e Excees
Warnings no abortam o programa corrente.
Um exemplo de warning quando um nmero dividido por zero. Nesse caso o Octave lanar um
warning e atribuir o valor Inf ao resultado.
(Inf: escalar, matriz ou N-dimensional array cujos elementos sao a representao IEEE para infinito
positivo)

Orientao a objetos
Octave suporta orientao objetos, permitindo implementao de herana, agregao, criao de
construtores, classes.
No entanto no o objetivo da linguagem.

Vetorizao

Concluso

Concluso
Com isso vemos que Octave uma linguagem muito til, dinmica, que tem diversas aplicaes e um
potencial de abrangncia bem grande.

Referncias
1.
2.

<http://www.gnu.org/software/octave/about.html> Acesso em
<14/05/2016>
http://profs.sci.univr.it/~caliari/pdf/octave.pdf