OCTAVE
Este material é um auxílio de consulta rápida, o conhecimento aqui
5.1) Criar vetor.
> va=1:1:10
a = 1 2 3 4 5 6 7 8 9 10
apresentado deve ser fundamentado pelas atividades de aula e principalmente > vb=linspace(1,10,5)
pelas bibliografias fornecidas. Cada disciplina demanda parte do vb = 1.0 3.25 5.50 7.75 10.00
conhecimento aqui resumido, devendo o aluno estar apto a distinguí-la
5.2) Criar matriz
1) Introdução > ma=[1,2,3;4,5,6;7,8,9;10,11,12]
ma =
1.1) Movimentar entre as pastas do sistema, dentro ou fora do octave 1 2 3
"cd caminho" vai ao diretório especificado pelo caminho 4 5 6
"ls" lista um caminho especificado ou a pasta atual 7 8 9
"pwd" lista o caminho atual 10 11 12
5.3) Criar matrizes padronizada
1.2) Para acessar o octave via terminal linux digite: > zeros(2,2) # matriz nula
$ octave ans =
0 0
1.3) Ativando o diário de atividades. Sempre ao iniciar uma tarefa. 0 0
diary Diario01.txt > ones(2,2) # matriz zero
diary on ans =
1.4) Para acessar ajuda de qualquer função do octave 1 1
> help sum 1 1
> eye(2,2) # matriz identidade
1.5) Lista as variáveis usadas ans=
> whos 1 0
0 1
1.6) Salve e carregue suas variáveis. Sempre ao finalizar uma tarefa. N indica o > nan(2,2) # matriz nula
número do exercício. ans =
save Variaveis01.txt NaN NaN
load Variaveis01.txt NaN NaN
> rand(2,2) # matriz aleatorio
2) Nomes de variáveis ans =
0.21680 0.97528
2.1) Adotamos uma letra minúscula como prefixo do nome da variável para indicar 0.57017 0.97381
seu tipo.
ttexto = 'Texto Livre' # para texto. 5.4) Acessar ou alterar elemento da matriz. Referência matricial ou linear.
enumero = 1.123 # um escalar inteiro ou decimal. > mA(2,2)
vvetor = [1,2,3,4,5,6] # para vetor. ans = 5
mmatriz = [1.1,2.2;3.3,4.4;5.5,6.6] # para matriz. > mA(3)
aarquivo = dados # para arquivo. ans = 7
sf = 1+2*x # para análise simbolica. Em que x é variável simbólica do modelo 5.5) Obter tamanho da matriz e vetor
matemático e deve vir sem prefixo. > lin = size(mmatriz,1) #obtem a 1 dimensão linha
lin = 3
3) Modelos e Operações matemáticas > col = size(mmatriz,2) #obtem a 2 dimensão coluna
col = 2
3.1) Escrevendo modelo matemático como funções em linha. > [lin,col]=size(mmatriz) # obtem a linha e a coluna
f=@(<arg1>,...,<argN>) <expressão> lin = 3
> f=@(x) 2*x; col = 2
> f(2) > tam = size(vvetor,2) #obtem o tamanho do vetor
ans = 4 col = 6
3.2) Escrevendo modelo matemático como texto e calcula valor 5.6) Retira parte da matriz. A(inicioL:fimL,inicioC:fimC). Use “end” para acessar
> tf='1+2*x'; a ultima linha ou coluna. Use “:” para acessar a toda a linha ou coluna.
> x=2; B=mA(2:3,1:2)
> eval(tf) B =
ans = 5 4 5
7 8
3.3) Operações básicas. “+” Soma; “-” Subtração; “*” Multiplicação; “/” Divisão;
“^” ou “**” Potenciação; “.” Aplica a operação termo a termo na matriz, exemplo 5.7) Construção e acesso a matriz de textos. Numero de caracteres corresponde as
A.*B; “ ' ” transpõe a matriz. "++" incrementa a variável; "- -" decrementa a número de colunas. A matriz de texto é "mt" e próxima letra é minúscula.
variável. > mtNomes=['joao';'maria']
vtNomes =
3.4) Operações matemáticas. abs(x); sin(x); asin(x); cos(x); joao
acos(x); atan(x); tan(x); exp(x); ceil(x); retorna o maior maria
numero inteiro (menor que o passado como parâmetro log(x); Retorna o > mtNomes(2,:)
logaritmo na base e log10(x); Retorna o logaritmo na base 10 floor(x); maria
retorna o maior numero inteiro (nao menor que o passado como parâmetro
round(x); Retorna o long mais próximo do parâmetro passado sqrt(x); raiz 5.8) Comando de estatistica. Se arg for matriz retorna a funcao para cada coluna.
quadrada. pi valor de pi=3,14... [vlr pos]=min(arg) # retorna o min valor e sua posicao
[vlr pos]=max(arg) # retorna o max valor e sua posicao
4) Operadores de comparação sum(arg) # retorna a soma dos elementos
prod(arg) # retorna o produto dos elementos
< # menor que. Ex: 1 < 2 ~= // operador log. diferente
> # maior que ~ // negação do teste
<= # menor ou igual a & // operador lógico e 5.9) Comando de pesquisa.
>= // maior ou igual a | //operador lógico ou [i j]=find(arg == 3) # localiza valor igual a 3 em arg
== // operador lógico igual
x = randn(2,3) exemplo de matriz
Teste 1 Teste 2 & | == xind = (x >= 1)|(x < -0.2) Cria indice na condição.
xc = x(xind) Seleciona valores bons.
true true true true true
> finite([-1,0,1,inf,NaN,NA]) # retorna ind. de
true false false true false ans = [1 1 1 0 0 0] valores validos
false true false true false
> finite([-1,0,1,inf,NaN,NA])
false false false false true
6) Matemática Simbólica
6.1) Iniciar pacote de análise matemática simbólica
Formulário Octave. Prof. Dr. Catalunha - Versão atualizada em 21/02/2011 às 16:24 hs Página 1 de 3
> symbols; # codigo
case {2,3}
6.2) Declarar variável simbólica # codigo
> x=sym('x'); otherwise
> y=sym('y'); # codigo
6.3) Declarar modelo matemático. Pode ser lido direto com input. endswitch
> sf = 1+2*x; ou
> sg = x+y; switch (texto)
case 'bananeira'
6.4) Substituir valor de variável num modelo matemático, transformando-o para # codigo
decimal. case {'palmeira','figueira'}
> ey = subs(sf,x,1) # codigo
eY = 3.0 otherwise
> ez = subs(sg,{x,y},{2,2}) # codigo
ez = 4.0 endswitch
Formulário Octave. Prof. Dr. Catalunha - Versão atualizada em 21/02/2011 às 16:24 hs Página 2 de 3
fprintf(aarq,"#.4f\n",vVetor); > f=@(x) 1/x;
fprintf(aarq,"fim\n"); > quad(f,3.0,3.6)
fprintf(aarq,"mmatriz\n"); ans = 0.18232
for i=1:size(mmatriz,1)
fprintf(aarq,"#.4f ",mmatriz(i,:)); 9.2) Integral dupla
fprintf(aarq,"\n"); > g=@(x,y) x.**2+2*y;
endfor > dblquad(g,0,1,0,2)
fclose(aarq); ans = 4.6667
endfunction
10) Ajuste polinomial
7.16) Le dados em um arquivo de texto. 10.1) Use polyfit(vX,vY,n) em que n é o grau do polinómio. A saída é cn … c0.
function > vx=[0.0,1.0] ;
[ttexto,enumero,vvetor,mmatriz,mtTexto]=LeArqEntrada(ta > vy=[1.0,3.0] ;
rquivo) > polyfit(vx,vy,1)
aarq = fopen (tarquivo, "r"); ans =
while(!feof(aarq)) 2.0000 1.0000 # y= 2*x + 1 OU y= 1 + 2*x
linha=fgetl(aarq);
switch (linha) 11) Raiz de função
case "ttexto"
ttexto=fgetl(aarq); 11.1) Encontrar raiz de uma função
case "enumero" > f=@(x) x**3-3*x+1;
linha=fgetl(aarq); > fzero(f,2)
enumero=str2num(linha); ans = 1.5321
case "vvetor"
lin=1; 12) Mínimo de função
while(!strcmp(linha=fgetl(aarq),"fim"))
vTemp(lin++)=str2num(linha); 12.1) Encontrar o mínimo de uma função
end > f=@(x) x**3-3*x+1;
vvetor=vTemp; > [x,y]=fminsearch(f,0.5)
case "mmatriz" x = 1
lin=1; y = -1
while(!strcmp(linha=fgetl(aarq),"fim"))
mTemp(lin++,:)=str2num(linha);
end
mmatriz=mTemp; endswitch 13) EDO
case "mtTexto"
mtTemp='';
while(!strcmp(linha=fgetl(aarq),"fim"))
mtTemp=[mtTemp;linha] 14) Banco de dados
end
mtTexto=mtTemp;
endswitch
endwhile
fclose(aarq);
endfunction
8) Gerar Graficos
8.1) De Pontos. Considere os dados vX, vY, vXt, vYt. plot(x,y,formato). Em que
formato='<estiloDoPonto><corDoPonto>;<legenda>;' . Sendo: estiloDoPonto=-,
+,*,o,x,^. corDoPonto=k(preto), w(branco), r(vermelho), g(verde), b(azul),
m(magenta), c(ciano). legenda=texto.
> plot(vx,f(vx),'r;orig;',vxt,vyt,'b;transf;')
> grid on
> title('Titulo do Grafico')
> xlabel('Nome do EixoX')
> ylabel('Nome do EixoY')
> axis([0,10,0,50])
> print('nomeArquivo.png','-dpng')
8.2) De função em linha. Plotando uma funcao. fplot(<funcao>,
[xmin,xmax,ymin,ymax]). As demais configurações seguem o exemplo do gráfico
de pontos.
fplot(f,[-2,2,0,4])
9) Integração
9.1) Integral simples.
Formulário Octave. Prof. Dr. Catalunha - Versão atualizada em 21/02/2011 às 16:24 hs Página 3 de 3