Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


apostila - Octave, Notas de estudo de Engenharia Civil

Programação cietífica em Octave

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 28/08/2010

Vinicius20
Vinicius20 🇧🇷

4.5

(184)

406 documentos

1 / 32

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Introdução ao Octave
Fernando Lourenço de Souza
Junho 2003
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20

Pré-visualização parcial do texto

Baixe apostila - Octave e outras Notas de estudo em PDF para Engenharia Civil, somente na Docsity!

Introdução ao Octave

Fernando Lourenço de Souza

Junho – 2003

Sumário

  • 1 Introdução
    • 1.1 Notas Sobre as diferenças entre MatLab e Octave
    • 1.2 Distribuição do Programa
    • 1.3 Ambiente de trabalho
    • 1.4 Como avaliar os possíveis erros no Octave
  • 2 Operadores Aritméticos
  • 3 Variáveis
    • 3.1 Formatos Numéricos do Octave
  • 4 Matrizes e Vetores
    • 4.1 Como criar uma Matriz
    • 4.2 Como deletar uma linha ou uma coluna de uma Matriz
    • 4.3 Como acessar os elementos da Matriz
    • 4.4 Como acrescentar linhas ou colunas numa dada Matriz
    • 4.5 Operações Matriciais
  • 5 Funções
    • 5.1 Funções elementares
    • 5.2 M-arquivos
    • 5.3 Solução de sistemas lineares Ax=b
    • 5.4 Solução de um conjunto de equações não-lineares
    • 5.5 Cálculo da integral definida em um intervalo para uma variável
  • 6 Gráficos
    • 6.1 Plotando em 2 dimensões
      • 6.1.1 Funções Especiais de Plotagem em 2 Dimensões
    • 6.2 Plotando em 3 dimensões
      • 6.2.1 Acéssórios para plotagem em 3D
    • 6.3 Como Imprimir ou Salvar os Gráficos
  • 7 Equações Diferenciais
    • 7.1 Função: lsode (f cn, x 0 , t, tcrit)
    • 7.2 Equações Diferenciais Algébricas
  • 8 Estatística

CAPÍTULO

Introdução

O octave originalmente foi concebido para ser um software companheiro, como um livro texto de graduação no projeto de um reator químico que estava sendo escrito por James B. Rawlings, da Universidade Wisconsin-Wisconsin-Madison, e John G. Ekerdt da Universidade do Texas. Claramente, o octave é agora muito mais do que apenas um pacote destinado a sala de aula.

“Embora nossos objetivos iniciais fossem um tanto vagos, nós sabíamos que teríamos que criar algo que permitiria aos estudantes a resolver problemas realísticos, e que poderia ser usado para muitas coisas à exceção dos problemas químicos do projeto do reator.” John W. Eaton

Originalmente pretendia-se usar o Octave para ensinar o projeto do reator, mas ele acabou sendo usado também nas diversas disciplinas da graduação do departamento de engenharia química e do departamento da Matemática da Universidade do Texas, que tem usado este software para ensinar equações diferenciais e também álgebra linear. Todos são incentivados a compartilhar este software com o outro sob os termos gerais de licença pública do GNU. Você também é incentivado a ajudar fazer do octave um pro- grama mais útil escrevendo e contribuindo com funções adicionais para ele, e relatando todos os problemas que você tiver. Atualmente existem excelentes programas de livre distribuição e/ou de dis- tribuição gratuita disponíveis para a realização das mais diversas atividades de pesquisa e ensino. Esses programas são desenvolvidos por milhares de pessoas no mundo inteiro e tornam-se cada vez mais de interesse da comunidade científica e do público em geral. Muitas das atividades cientificas e de ensino nos cursos de Cálculo e Física, são de- senvolvidas utilizando programas proprietários(Por exemplo: MatLab ©R). Muitos desses programas possuem similares gratuitos que podem auxiliar a reduzir os custos de tais ferramentas computacionais, ao mesmo tempo em que dá acesso irrestrito a ferramentas robustas. Um desses programas é o GNU-Octave, utilizado para cálculos numéricos. Como se pôde ver nesta apostila, o software Octave tem uma sintaxe semelhante à do MatLab ©R, oferecendo recursos suficientes à maioria dos usuários na resolução de problemas numéricos de álgebra linear, na manipulação de polinômios, integração de equações diferenciais ordinárias e equações algébrico-diferenciais, além de outros vários recursos que o software oferece.

3

4 CAPÍTULO 1. INTRODUÇÃO

Além do método interativo, o octave também aceita o modo batch, no MatLab ©R representado pelos ".m files"que ele também interpreta na sua maioria, bastando que se salve no local adequado (octave_ files), assim como foi visto no capítulo 6. As tendências de utilização de Free software tem crescido cada vez mais, como o Linux comparado com o Windows© R, ao qual muitas pessoas, empresas e Instituições Acadêmicas estão optando pelo Linux, não só por ser Free, mas também pela eficiência que esse tipo de software oferece. Sendo assim, por esses e outros motivos, o Octave é a melhor alternativa Free quando comparado com o MatLab ©R.

1.1 Notas Sobre as diferenças entre MatLab e Octave

O Octave é 95% compatível com o Matlab (o número é dos seus criadores). A maioria das diferenças é ao nível das rotinas gráficas, como veremos no Capítulo 6. Abaixo apresentamos alternativas a certos comandos que estâo presentes no MatLab e nâo estão implementadas no Octave.

MatLab Significado Octave intersect(A,B) A ∩ B intersection(A,B) unique(A) Ordenar e eliminar repetições create_set(A) setdiff(A,B) A \ (A ∩ B) complement(B,A) setxor(A,B) (A ∪ B) \ (A ∩ B) complement(intersection(A,B),union(A,B)) ismember(A,B) TRUE onde {a ∈ A e a ∈ B} t=zeros(1,length(A)); for i=1:length(B), t(find(A==B(i)))=1; end; mod(a,b) Resto da divisão inteira abs(rem(a,b))*sign(b)

Note que a diferença entre MOD (que só existe no Matlab) e REM (que existe em ambos) só aparece se a*b<0.

1.2 Distribuição do Programa

O octave é um software livre. Isto significa que todos podem usá-lo adquirindo- o e redistribuindo-o em determinadas circunstâncias. Ele é registrado e há algumas limitações em sua distribuição, mas as limitações são projetadas para assegurar-se de que outras pessoas tenham a mesma liberdade para usar e redistribuir o Octave que você tem. As circunstâncias podem ser encontradas na licença geral pública de GNU que vêm com octave e que aparece também na licença geral publica da seção GNU. O Octave está disponível em cópia de CD-ROM com várias coleções de outros softwares livres, e da fundação do software livre. O octave está também disponível na Internet no site de ftp://ftp.che.wisc.edu/pub/octave , e a informação adicional está disponível no site de http://www.che.wisc.edu/octave. Originalmente o octave foi implementado para o ambiente Linux. Todavia existe uma versão para windons, em que usa o programa cygwin para emular um ”ambiente linux ´´, onde o octave é executado.

1.3 Ambiente de trabalho

Ao executar o octave temos uma janela com a linha de comando da forma:

6 CAPÍTULO 1. INTRODUÇÃO

CAPÍTULO

Operadores Aritméticos

O Octave, assim como outros softwares de programação, possui as operações obe- decem uma precedência de acordo com a tabela abaixo:

Operador Ordem de precedência − Subtração Potenciação

  • Adição Multiplicação/Divisão ∗ Multiplicação Adição/Subtração ^ Potenciação / Divisão

Abaixo, tem-se alguns exemplos de como o Octave obedece a precedência destes operadores:

2*2^ ans = 16

Neste exemplo, pode-se verificar que primeiramente é realizado a operação de po- tenciação que precede sobre as demais, e posteriormente a multiplicação que possui precedência igual a divisão. Observe que o Octave atribui o resultado das operações realizadas em uma variável cujo nome é "ans". Esta variável "ans"pode ser guardada em uma outra variável que o programador pode escolher, por exemplo:

x=ans x = 16

fer=x fer = 16 vc=fer vc = 16

E assim sucessivamente, podendo, posteriormente, executar operações com estas var- iáveis, tais como:

7

CAPÍTULO

Variáveis

Assim como em outros programas, o Octave tem certas regras para nomear as var- iáveis. Estas variáveis devem ser nomes iniciados por letras e não podem conter espaços nem caracteres de pontuação. Além do que o Octave distingue letras maiúsculas de minúsculas. Algumas variáveis já possuem um significado predefinido no Octave (palavras chaes), não podendo estas serem utilizadas para uma outra finalidade que não seja a sua própria. Algumas destas são:

  • ans - variável usada para os resultados.
  • pi - número pi.
  • eps - menor número tal que, quando adicionado a 1, cria um número maior que 1 no computador.
  • flops - armazena o número de operações em ponto flutuante realizadas (presente nas não implementada).
  • inf - significa infinito.
  • NaN ou nan - significa não é um número, por exemplo, 0/0.
  • i e j - unidade imaginária de um número complexo.
  • nargin - número de argumentos de entrada de uma função.
  • nargout - número de argumentos de saída de uma função.
  • realmin - menor número que o computador pode armazenar em valor absoluto.
  • realmax - maior número que o computador pode armazenar em valor absoluto.

Todas as variáveis, com excessão das predefinidas, podem ser renomeadas ou atribuído a elas qualquer valor, a todo instante. Caso o usuário queira vizualizar as variáveis declaradas, apagar alguma delas, ou apagar todas elas, basta que se digite os comandos:

  • who - mostra as variáveis declaradas pelo usuário.

9

10 CAPÍTULO 3. VARIÁVEIS

  • clear palavra - apaga a variável chamada palavra.
  • clear - apaga todas as variáveis declaradas pelo usuário.

3.1 Formatos Numéricos do Octave

O Octave quando nos fornece algum resultado numérico, ele utiliza determinados critérios de apresentação deste resultado. Isto irá depender da forma de apresentação e do número de casas que estão sendo utilizados. Por exemplo:

1/ ans = 0.

  • format short, utiliza-se 4 dígitos para mostrar o resultado.

format short 1/ ans = 0.

  • format bank, utiliza-se 2 dígitos para mostrar o resultado.

format bank 1/ ans = 0.

  • format long, utiliza-se 14 dígitos para mostrar o resultado.

format long 1/ ans = 0.

  • format short e, utiliza-se 3 digitos, mais o expoente.

format short e 1/ ans = 3.33e-

  • format long e - 16 dígitos e expoente,
  • format hex - representa o número na base 16
  • format + - Mostra o símbolo + nos elementos não nulos da matriz e deixa em branco os nulos,

Obs: O Octave possui a sua própria forma interna de representar os números, portanto, utilizando-se estes comandos, só irá alterar a forma de exibição na tela.

12 CAPÍTULO 4. MATRIZES E VETORES

ans =

0 2 4 6 8 10

O Octave possui ainda funções para geração de matrizes especiais, tais como:

  • eye - matriz identidade

I=eye(3)

I = 1 0 0 0 1 0 0 0 1

  • ones - matriz cujos todos os elementos são 1

Uns=ones(3)

Uns =

1 1 1 1 1 1 1 1 1

  • zeros - matriz nula

Z=zeros(3) Z =

0 0 0 0 0 0 0 0 0

  • rand - matriz com valores aleatórios

Aleat=rand(3) Aleat =

0.00207 0.59451 0. 0.07802 0.25870 0. 0.47869 0.01718 0.

4.2. COMO DELETAR UMA LINHA OU UMA COLUNA DE UMA MATRIZ 13

4.2 Como deletar uma linha ou uma coluna de uma Matriz

Para deletar alguma linha ou coluna de uma Matriz, deve-se utilizar o seguinte comando:

C =

2 5 8 4 8 9 7 6 3 15 12 11

C(3,:)=[] C =

2 5 8 4 8 9 7 6

C(:,2)=[] C =

2 8 4 8 7 6

  • C(3,:), deleta a linha 3 da Matriz C;
  • C(:,2), deleta a coluna 2 da Matriz C resultante.

4.3 Como acessar os elementos da Matriz

Para acessar cada elemento da matriz utiliza-se a notação de matrizes B(i,j), onde ’i’ é a linha, e ’j’ é a coluna onde o elemento da matriz ’B’ está. Por exemplo:

B=[2 3 4;5 6 7] B =

2 3 4 5 6 7

B(1,2) ans = 3 B(2,2)

ans = 6

B(1,:) ans =

2 3 4

B(:,2)

4.5. OPERAÇÕES MATRICIAIS 15

4.5 Operações Matriciais

As operações matriciais são executadas de forma semelhante a que são executadas as operações escalares, como por exemplo:

A=[5 6;4 3] A =

5 6 4 3

B=[5;3] B =

5 3

C=[4 -3;7 8] C =

4 - 7 8

A+C ans =

9 3 11 11

4*B ans =

20 12

>> A*C

ans =

62 33 37 12

C^ ans =

-5 - 84 43

C.^ ans =

16 CAPÍTULO 4. MATRIZES E VETORES

>> (A*C)^

ans =

5065 2442 2738 1365

(A+C)*B ans =

54 88

As operações Matriciais podem ser resumidas em: Operador Operação Exemplo

  • Adição A + B − Subtração A − B ∗ Multiplicação A ∗ B ou k ∗ A ˆ Potenciação (Ak) Aˆk .^ Potenciação elemento a elemento (akij ) A.ˆk ’ Transposição da Matriz A A′ [v,x]=eig(A) Retorna os autovetores em v e os autovalores em x Visualização da coluna j da matriz A A(:,j) Visualização da linha i da matriz A A(i,:) Elemento aij da matriz A A(i,j)

18 CAPÍTULO 5. FUNÇÕES

  • abs(x) - valor absoluto de x.
  • acos(x) - arco cujo cosseno é x.
  • asin(x) - arco cujo seno é x.
  • atan(x) - arco cuja tangente é x.
  • cos(x) - cosseno de x.
  • exp(x) - exponencial ex.
  • gcd(x,y) - máximo divisor comum de x e y.
  • lcm(x,y) - mínimo múltiplo comum de x e y.
  • log(x) - logaritmo de x na base e.
  • log10(x) - logaritmo de x na base 10.
  • rem(x,y) - resto da divisão de x por y.
  • sin(x) - seno de x.
  • sqrt(x) - raiz quadrada de x.
  • tan(x) - tangente de x.

5.2 M-arquivos

As funções podem ser trabalhadas de duas formas, uma delas é programar a função no prompt do Octave e utilizá-la, ou programar e salvá-la em um arquivo como a ex- tensão ".m"(recurso este conhecido como programação em lote, ou script(roteiro)), ao qual deve ser feito num editor de texto puro, ou seja aquele que salva o arquivo em código ASCII. Neste segundo tipo, para que a versão Windows do Octave, reconheça es- tas funções, deve-se salvar estes programas na pasta que o programa cria no momento de instalação, cujo endereço é:

Diret{\’o}rio de instala\c{c}{~a}o\Arquivos de programas\GNU Octave 2.1. \octave_files

Neste caso, depois de ter salvado estas funções neste arquivo, para utilizá-las, basta apenas que se digite no prompt do Octave o nome e os parâmetros, ao qual foi salvo a função.

Exemplos:

function y=f2(x) b=0.01; a0=10; c=1000; y=a0exp(bx)sin(2pi/c*x) endfunction

Para que o Octave reconheça esta função, cujo programa foi feito em um outro software, ela deverá ter sido salva na pasta octave_files com extensão ".m", na qual o nome da função tem que ser "f2.m". E para executar esta função, basta digitar-se no prompt do Octave da seguinte maneira:

5.3. SOLUÇÃO DE SISTEMAS LINEARES AX=B 19

y=f2(3) y = 0.

Outro exemplo:

function X=fourier2(x,N) % Calcula a N pontos da transformada de fourier de uma sequencia(vetor x) % implementado com 1 loop ’for’

X=zeros(1,N); L=length(x); for k=0:(N-1) w= -j2pi/Nk; X(k+1)=sum(x . exp(w .* (0:(L-1)) ) ); end

Neste caso, a função deverá ser salva como "fourier2.m", e para executá-la, basta digitar:

x=fourier2(2,4) x = 2 2 2 2

5.3 Solução de sistemas lineares Ax=b

Por exemplo:

A=rand(3,3) A = 0.16808 0.53037 0. 0.84642 0.09465 0. 0.77846 0.88364 0.

b=rand(3,1) b =

x=A\b x = -1.

x=A\b, é conceitualmente equivalente a usar (A−^1 )b, o que da a resolução deste tipo de problema.