44
Disciplina Processamento de Sinais Curso Análise e Desenvolvimento de Sistemas Conceitos Fundamentais de MatLab/Octave e-mail : [email protected] Prof. Responsáveis Wagner Santos C. de Jesus

Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

  • Upload
    dangnga

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Disciplina Processamento de SinaisCurso Análise e Desenvolvimento de Sistemas

Conceitos Fundamentais de MatLab /Octave

e-mail : [email protected]

Prof. ResponsáveisWagner Santos C. de Jesus

Page 2: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

2

Introdução Octave/Matlab

O programa GNU Octave é umalinguagem de alto nível, direcionada paracálculo numérico.Que fornece umainterface de linha de comando convenientepara resolver problemas numéricoslineares e não lineares, e para realizaroutros experimentos numéricos usandouma linguagem que é bastante compatívelcom o Matlab. Também pode ser utilizadacomo linguagem de programação.

Page 3: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Histórico do Octave

O Octave originalmente foi criado por voltade 1988, com o propósito de ser umsoftware de apoio a um livro de graduaçãoem projetos de reator químico, escrito porJames B. Rawlings da Universidade deWisconsin-Madison e John G. Ekerdt daUniversidade do Texas. Originalmente foiidealizado como ferramenta muitoespecializada relacionado à criação dereatores químicos. Posteriormente, apósconstatar as limitações dessa abordagem,optou-se pela construção de umaferramenta mais flexível.

3

James B. RawlingsCollege of Engineering

Page 4: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Conceito de linguagem Científica

Computação científica (ou ciência computacional ) é ocampo de estudo interessado na construção de modelosmatemáticos e técnicas de soluções numéricas utilizandocomputadores para analisar e resolver problemascientíficos e de engenharia. De forma prática, é a aplicaçãode simulação computacional outras formas de computaçãopara problemas em diversas disciplinas científicas.

4http://www.gnu.org/software/octave/

Page 5: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Aplicabilidade do Octave

O programa Octave possui uma grande quantidade deferramentas para a resolução de problemas de:

• Álgebra linear,• Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios, • Integra equações diferenciais ordinárias e algébricas.

5

Page 6: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Interface do Octave

6

Page 7: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Exemplo de Linguagens Científicas

• Fortran; • MATLAB;• GNU Octave;• PDL (Perl Data Language)• C++

7

Page 8: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Modelos de Aplicações

8

Aplicação Comercial

Aplicação Cientifica

E SP

EP

S

Page 9: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Ambiente

• Console e Gráfico• Interativo e Programado• Interação com Java e outras Linguagens• Linguagem Interpretada• Estrutura bem definida

9

Page 10: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Tipos de Dados

• Reais (Números Fracionários);• Inteiros (Positivos e negativos);• Caracteres (Letras,Dígitos,Símbolos,Sinais

de Pontuação);• Lógicos (0 e 1)

10

Page 11: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

OperadoresMatLab/Octave

11

Page 12: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Operadores Aritméticos

(+) – Adição(-) – Subtração(*) – Multiplicação(/) – DivisãoMod() – Modulo (Resto da divisão)(^) - Potência

12

Page 13: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Operadores Relacionais

< Menor <= Menor ou igual > Maior

>= Maior ou igual== Igual

~= ou !=Diferente de

13

Page 14: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Operadores Lógicos

&& - And (e)| | - Or (ou)! - Not (não)

14

Page 15: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Comandos interativos do ambiente

15

Page 16: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Comandos para gerenciamento do ambiente

16

cd troca o diretório de trabalho atual

dir lista o conteúdo do diretório atual

delete exclui arquivo

type mostra o conteúdo do arquivo texto

what lista arquivos “.m”, “.mat” e “.mex”.

Page 17: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Salvando os dados da memória

17

save salva os dados no arquivos binário “matlab.mat”.

save X salva a matriz X no arquivo o binário “x.mat”.

save arql X Y Z salva as matrizes X, Y e Z no arquivo binário “arq1.mat”.

save arq2.sai X Y Z -ascii salva as matrizes X., Y e Z no arquivo texto “arq2.sai” com 8 dígitos.

Save arq3.sai X Y Z -ascii -double

salva as matrizes X., Y e Z no arquivo texto “arq3.sai” com 16 dígitos.

Page 18: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Recuperando dados da memória

18

save load

save X load x

save arq1 X Y Z load arq1

save arq2.sai X Y Z -ascii load arq2.sai

save arq3.sai X Y Z -ascii -double load arq3.sai

Page 19: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Instruções de Limpeza

clc – Limpa a janela decomandos.clear ou clear all – Liberatodas as variáveis alocadas namemória.

19

Page 20: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Identificadores Booleano

São True, False massão interpretados como(1), (0).

20

Page 21: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Estruturas Básicas Programação

21

Page 22: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Estruturas Básicas

• = - Atribuição;• If - Condição;• for/while - Repetição

22

Page 23: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Tipos de atribuição

Sintaxe:

<varm> = <valor>;

Exemplo:

Str = ‘Morango’;x = 100;

23

Page 24: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Exemplo de Lista

lista = [45 6 7];Ou Matrizlista = [34 5 6;9 4 3;7 6 5];

24

Page 25: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Comando de Saída

Para realizar a saída padrão dedados sem formatação usa-se ainstrução disp().

Sintaxe:

disp(<Valor>|<String>);

25

Page 26: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Estrutura Condicional

if <condição><Instruções>

[else] ou [elseif <condição>]<Instruções>

end

26

Page 27: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Exemplo Prático do if

a = 2;if a == 3

disp('Valor Igual a Tres');else

disp('Valor Diferente de Tres');end

27

Page 28: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Exemplo de if usando operador (OU).

a = 's';if a == 'S' | a == 's'

disp('Confirmaçao realizada!!!');else

disp('Confirmaçao nao realizada!!!');end

28

Page 29: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Exemplo de if usando operador (E)

a = 5;if a >= 18 & a <= 25

disp('Idade para servico militar');else

disp('Idade Fora do servico Militar');end

29

Page 30: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Exemplo de if usandooperador (Não)

idade = 20;if ~(idade>=18)

disp('Nao pode assistir filme adulto !!!'); else

disp('Pode assistir filme adulto !!!'); end

30

Page 31: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Estruturas de repetiçãofor/while

31

Page 32: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Comando for

Realiza estrutura de repetição dentro de umintervalo.Sintaxe:for <varm>=<Inicial>:[<passo>]:<final>

<Instruções>end

32

Page 33: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Exemplo de implementação da Instrução for (Crescente)

for i = 1:5,disp(i);

end

33

Page 34: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Exemplo de implementação da Instrução for (Decrescente)

for i = 5:-1:1,disp(i);

end34

Page 35: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Comando break

Realiza a saída de um laçodevolvendo o controle para aspróximas instruções.

35

Page 36: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Exemplo de uso instrução break

for i = 1:9999,if i == 3025

disp('Achei o valor');break;

endend

36

Page 37: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Comando while

Realiza estrutura de repetição Mediante auma condição.Sintaxe:while <condição>,

<Instruções>end

37

Page 38: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Exemplo do comando While

a = 1;while a <= 5,

a = a + 1;disp(a);

end38

Page 39: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Entrada de Dados

39

Page 40: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Input(): Leitura do teclado

Sintaxe:

<Varm> = Input(<String>[,’s’]);

Identificação do caractere ‘S’ determinaque será feita a leitura de uma string,caso esse parâmetro seja omitido o valorserá numérico.

40

Page 41: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Programa para realizar a soma de dois números

a = input(‘Primeira parcela : ');b = input(‘Segunda parcela : ');c = a + b;disp(c);

41

Page 42: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Comportamento da Memória com MatLab

42

Page 43: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Comando (who)

Your variables are:

ans m x

»

Onde ans ultimo valor pego na memóriaresultado da operação de um array. As variáveism e x são variáveis criadas na memória.

43

Page 44: Conceitos Fundamentais de MatLab/Octave · • Álgebra linear, • Encontra as raízes de equações não lineares, • Integrar funções ordinárias, • Manipular polinômios,

Para eliminar uma variável de memória basta usar a instrução clear.

Sintaxe:

clear <nome_variável>ou clear

44