Você está na página 1de 102

Universidade Federal de Uberlndia

Fa uldade de Engenharia Eltri a


Programa de Edu ao Tutorial

Ministrantes:
Fernando Eduardo Resende Mattioli
Leandro Resende Mattioli
Lu as Amaral Sales
Joo Paulo Vieira Bonif io
Rodrigo Sousa Ferreira

Maio de 2009

Pref io
O MATLAB (Matrix Laboratory) um ambiente omputa ional para omputao numri a e gr a de
alta performan e utilizado em l ulos om matrizes e vetores. Ele integra: anlises numri as, omputao
matri ial, pro essamento de sinais e gr os em um ambiente de f il uso em que os problemas e as solues
so expressos e obtidos, respe tivamente, da mesma forma omo es ritos matemati amente, sem o uso da
programao tradi ional.
O domnio desta ferramenta permite ao usurio soluo de problemas bastante omplexos, visualizao de
guras em uma, duas ou trs dimenses, simulao de ir uitos omo ltros digitais, moduladores e demoduladores de sinais, et . As apli aes so innitas.
Pretende-se, om esta apostila, in entivar e orientar o estudo da ferramenta MATLAB. Mas, muito importante ao usurio ter a ons in ia de que o aprendizado gradativo e advm da perseverana.

Boa aprendizagem!

iii

iv

Sumrio

1 Introduo ao MATLAB

1.1

Informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Desktop MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3

Operaes bsi as (+ ,- ,* , /, ^) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.4

Funes matemti as no MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5

Outras informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5.1

Nomes de variveis e funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5.2

Indeterminaes

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5.3

Ambiente de trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5.4

Nmeros omplexos

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.6

Matrizes e vetores
1.6.1

Vetores

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.6.2

Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.7

Formatos de sada

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.8

Operadores lgi os e rela ionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

1.8.1

12

1.9

Operaes rela ionais entre vetores e matrizes . . . . . . . . . . . . . . . . . . . . . . .

Polinmios

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.9.1

Funes rela ionadas polinmios . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.9.2

Polinmio ara tersti o de uma matriz

. . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.9.3

Produto de polinmios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

1.9.4

Diviso de polinmios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

1.9.5

Expanso de polinmios em fraes par iais . . . . . . . . . . . . . . . . . . . . . . . .

14

1.9.6

Avaliao de polinmios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

1.9.7

Derivada

16

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
v

SUMRIO

SUMRIO

2 Gr os

17

2.1

Gr os simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

2.2

Subgr os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

2.3

Outras funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

2.4

Plotagem em trs dimenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

2.5

Superf ies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.6

Apli ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

3 Integrao Numri a

23

3.1

Regra do trapzio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

3.2

Regra de Simpson

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

3.3

Exer ios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

4 Sistemas de Equaes
4.1

27

Diviso esquerda (\) e inversa (inv() )

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

4.1.1

Diviso esquerda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

4.1.2

Inversa

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

4.2

Diviso direita (/) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

4.3

Exer ios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

5 Matemti a Simbli a

31

5.1

Objetos simbli os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

5.2

O omando subs

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

5.3

Tipos numri os

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

5.4

Variveis reais e omplexas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

5.5

Cl ulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

5.5.1

Diferen iao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

5.5.2

Derivada de uma expresso om mais de uma varivel . . . . . . . . . . . . . . . . . .

35

5.5.3

Limite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

5.5.4

Integrao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

5.5.5

Somatrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

5.5.6

Srie de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

5.6

Comando solve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

5.7

Resolvendo equaes diferen iais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

5.8

Transformadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

5.8.1

Transformada de Fourier

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

5.8.2

Transformada inversa de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

5.8.3

Transformada de Lapla e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

5.8.4

Transformada z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

vi

SUMRIO

SUMRIO

6 Arquivos M

45

6.1

Caminho de bus a do MATLAB

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

6.2

Janela de edio e depurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

6.3

Abordagem de projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

6.4

Programao em MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

6.4.1

Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

6.4.2

Funes lgi as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

6.4.3

Estruturas de programao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

6.4.4

Funes MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

6.4.5

Variveis globais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

58

6.4.6

Variveis persistentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

58

6.4.7

Estruturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

6.4.8

Funes de manipulao de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

6.4.9

Importando dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

6.4.10 Exportando dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

6.4.11 Depurao de erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

7 Interfa es Gr as
7.1

7.2

65

Construindo interfa es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

7.1.1

Introduo

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

7.1.2

Programando a interfa e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

7.1.3

Property inspe tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

7.1.4

Menu tools

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

Programando fun ionalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

7.2.1

Funes e allba ks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

7.2.2

Estruturas Handles

74

7.2.3

Exemplos de onstrues gr as

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 Simulink

74

79

8.1

Ini iando o Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

8.2

Criando modelos no Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

8.2.1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

8.3

Prin ipais blo os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

83

8.4

Criando um subsistema

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

8.5

Asso iando funes aos modelos e blo os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

8.6

Simulando um modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

8.6.1

Simulao a partir dos menus do Simulink . . . . . . . . . . . . . . . . . . . . . . . . .

87

8.7

Simulao a partir da linha de omando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

8.8

Analisando os resultados de uma simulao . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

8.8.1

Utilizao do blo o

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

8.8.2

Comuni ando om a Workspa e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

Introduo

S ope

vii

SUMRIO

SUMRIO

viii

Lista de Figuras

1.1

Janela de omando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

A essando a aixa de dilogo Preferen es

1.3

Caixa de dilogo Preferen es

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

2.1

Gr o da funo seno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

2.2

Gr o resultante da utilizao dos argumentos da funo plot e de funes auxiliares. . . . .

19

2.3

Vrios gr os em uma mesma janela

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.4

Cir uito simpli ado de um re eptor de rdio . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

3.1

Funo f (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

3.2

Funo f (x) = a0 + a1 x + a2 x

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

5.1

Gr o da funo f (x) = x/ |x| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

Aproximao pela srie de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

6.1

Dilogo Set Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

6.2

Editor de s ripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

6.3

Diagrama esquemti o do problema da resistn ia

. . . . . . . . . . . . . . . . . . . . . . . .

48

6.4

Dilogo Import Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

6.5

Arquivo de texto om dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

6.6

Erro na funo exemplo_exportar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

6.7

Depurador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

64

7.1

A essando o GUIDE pela barra de ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . .

66

7.2

Assistente para riao de interfa es gr as do GUIDE . . . . . . . . . . . . . . . . . . . . .

66

7.3

Ambiente de desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

7.4

Barra de ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

7.5

Alguns elementos gr os posi ionados na rea de trabalho . . . . . . . . . . . . . . . . . . .

69

7.6

Property Inspe tor

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69

5.2

ix

LISTA DE FIGURAS

LISTA DE FIGURAS

7.7

Alinhamento de elementos gr os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

7.8

Editor de menus

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

7.9

Tab Order Editor

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

7.10 Callba ks asso iadas a um boto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

7.11 Exemplo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

7.12 Vizualizao da funo Callba k

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

7.13 Exemplo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

8.1

Simulink na barra de ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

8.2

Bibliote as de omponentes do Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

8.3

Janela de riao dos modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

8.4

Sistema bsi o em Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

8.5

Portas de entrada e sada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

8.6

Sistema resultante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

8.7

Parmetros da Onda Senoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

8.8

Resultados da simulao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

8.9

Oset no Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

83

Produ t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.11 Blo o Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.10 Blo o

83
84

8.12 Criando um subsistema om blo os existentes . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

8.13 Adi ionando portas em um subsistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

8.14 Menu

86

Format do Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.15 Aba Callba ks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

8.16 Ini iando uma simulao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

8.17 Parmetros da simulao:

88

Solve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.18 Parmetros da simulao: Data Import/Export . . . . . . . . . . . . . . . . . . . . . . . .
8.19 Blo o To Workspa e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.20 Blo o S ope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.21 Parmetros do blo o S ope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88
89
90
91

8.22 Efeito do parmetro AutoS ale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

8.23 Efeito do parmetro Number of Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

Captulo

Introduo ao MATLAB
1.1 Informaes
O MATLAB uma ferramenta poderosa que auxilia a engenharia e outras reas te nolgi as na soluo
de problemas matemti os. O software possui alta performan e e ombina pro essamento, visualizao
e programao de maneira f il de usar, em um ambiente simples, em que as respostas e problemas so
expressos em notao matemti a familiar.
O elemento base do MATLAB um vetor (array ) que no pre isa ser dimensionado. Isso fa ilita os l ulos
om matrizes e vetores reduzindo o tempo de pro essamento.
O MATLAB possui uma famlia de apli ativos espe  os (toolboxes ), que so olees de funes usadas para
resolver determinados problemas tais omo: otimizao, manipulao algbri a, redes neurais, pro essamento
de sinais, simulao de sistemas dinmi os, entre outros.

1.2 Desktop MATLAB


A janela de omando a rea onde os omandos e funes so digitadas (gura 1.1).
O Histri o de Comando mostra os ltimos omandos pro essados.
Utilizando as setas dire ionais para ima e para baixo do te lado vo pode a essar os omandos previamente
exe utados.

1.3 Operaes bsi as (+ ,- ,* , /, ^)


Exemplo
>> 3+56
>> ans =
2
>> 1 4/9
>> ans =
0.4444
>> 1+4/9
>> ans =

1.4. FUNES MATEMTICAS NO MATLAB

CAPTULO 1.

INTRODU O AO MATLAB

Figura 1.1: Janela de omando

1.4444
>> (1+4)/9
>> ans =
0.5556
>> 3\2
>> ans =
0.6667
>> 2^5
>> ans =
32
>> sqrt ( 2 5 )
>> ans =
5

1.4 Funes matemti as no MATLAB


abs(x)
atan(x)
osh(x)
rem(x)
tan(x)

a os(x)
atan2(x)
exp(x)
round(x)
tanh(x)

a osh(x)
atanh(x)
x (x)
sign(x)

angle(x)
eil (x)
log(x)
sin(x)
2

asin(x)
os(x)
log10(x)
sind(x)

asinh(x)
osd(x)
sqrt(x)
sinh(x)

CAPTULO 1.

INTRODU O AO MATLAB

1.5.

OUTRAS INFORMAES

Observaes

pi

uma palavra reservada do MATLAB e refere-se ao nmero ;

>>
>>

tan ( pi / 4 )
ans =

>>
>>

os ( pi / 2 )
ans =

1.0000

6 . 1 2 3 2 e 017

eps uma palavra reservada do MATLAB e refere-se um nmero muito pequeno que representa a
pre iso da mquina;

ao se olo ar um ponto-e-vrgula ( ) no nal de uma linha de omando a resposta pro essada mas
;

no mostrada.

>> b = tan ( pi / 4 ) ;
>> b
>> b =
1.0000

1.5 Outras informaes


1.5.1 Nomes de variveis e funes
O MATLAB ase sensitive, ou seja, sensvel a variveis mais ulas e mins ulas:
>> f a a = 1 0 ;
>> Fa a = 1 4 5 ;
>> whos
Name
Size
Fa a
1 x1
fa a
1 x1

Bytes
Class
8 double array
8 double array

1.5.2 Indeterminaes

0/0 ou / resultam em
5/0 resulta em
5/ resulta em 0
Inf Inf

NaN

(Not a Number)

Inf

Inf

1.5.3 Ambiente de trabalho

Para limpar a janela de omandos do MATLAB digite . Para para a janela de guras digite ;
Para veri ar as variveis da sua workspa e e seus tamanhos digite ;
Para liberar todas as variveis do MATLAB digite lear. Caso queira liberar apenas variveis espe  as,
l

lf

whos

faa lear var1 var2 ... varn ;

Com os omandos

diary(' :\ aminho\para\arquivo.txt')

efetuadas;

e diary o vo ria um dirio das operaes

1.5. OUTRAS INFORMAES

CAPTULO 1.

>> diary ( ' : \ Do uments and S e t t i n g s \ Pet


>> i = [ 1 2 3 , 4 5 6 , 7 8 9
>> i =
1
2
3
4
5
6
>> i eye ( 9 )
>> ans =
1
2
3
4
5
6
>> eye ( 9 )
>> ans =
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
>> diary o f f

INTRODU O AO MATLAB

E l t r i a \ t e s t e . txt ' )

0
0
0
0
0
0
1
0
0

0
0
0
0
0
0
0
1
0

0
0
0
0
0
0
0
0
1

Usando as reti n ias vo pode ontinuar uma expresso matemti a na linha seguinte;
>> 1 2 + 1 2 + . . .
25
>> ans =
49

Usando

d(` :\ aminho'), pode-se alterar o diretrio do MATLAB e hamando a funo pwd vo


re ebe omo resposta o diretrio atual.

>> d ( ' : \ temp ' )


>> pwd
>>ans =
: \ temp

1.5.4 Nmeros omplexos


As variveis reservadas para a unidade imaginria no MATLAB so i ou j.
Para se riar um nmero omplexo basta digitar a parte real seguida da imaginria multipli ada por i ou j .

>> z = 1 + 3 i
>>z =
1 . 0 + 3.00000000000000 i
As operaes om nmeros omplexos se omportam da mesma maneira que as om nmeros reais, existindo
as operaes: soma (+), subtrao (-), multipli ao (*), diviso (/) e poten iao (^).

>> w = 2 5 j ;
>> z + w
>> ans =
3.00000000000000 2.00000000000000 i
>> z /w
>> ans =
0.44827586206897 + 0 . 3 7 9 3 1 0 3 4 4 8 2 7 5 9 i
4

CAPTULO 1.

INTRODU O AO MATLAB

1.6.

MATRIZES E VETORES

As prin ipais funes que operam om nmeros omplexos so:

onj(z)

real(z)

imag(z)

isreal (z)

abs(z)

angle(z)

Alm delas, operaes omo sin(z), os(z), tan(z), log(z) e outras ans tambm fun ionam om valores
omplexos e, em geral, produzem omo resultados valores omplexos.

1.6 Matrizes e vetores


Como dito as matrizes so a unidade bsi a do MATLAB. Um es alar uma matriz de uma oluna e uma
linha. Um vetor uma matriz om apenas uma linha ou apenas uma oluna.

1.6.1 Vetores

Para inserir vetores linha faa: >> x = [1 2 3 4;


Para inserir vetores oluna faa: >> y = [1;2;3;4;
Para riar um vetor linha tambm podemos fazer o seguinte:
>> z = 1 : 6
>> z =
1
2

Ou ainda
>> w = 1 : 2 : 8
>> w =
1
3

De modo geral, podemos rapidamente riar um vetor om vrios elementos utilizando a notao valor_ini ial:passo:valor_nal.
Caso no seja espe i ado o passo, o MATLAB utilizar um passo unitrio.
Podemos transpor vetores linhas riados desta maneira para riar vetores oluna.
Veja ainda o que possvel:
>> [ w' w' . ^ 2 2 . ^w '
>> ans =
1
1
2
3
9
8
5
25
32
7
49
128

1.6.2 Matrizes
Para riar uma matriz e alo -la em uma varivel h vrias possibilidades.

Envolva os elementos por ol hetes [;


Separe os elementos de ada linha por espao ou vrgula;
Separe as olunas om ponto e vrgula;
5

1.6. MATRIZES E VETORES

CAPTULO 1.

INTRODU O AO MATLAB

Exemplo
>> a = [ 1 2 3 ; 4 5 6 ; 7 , 8 , 9
>> a =
1
2
3
4
5
6
7
8
9
>> [ log ( 2 ) exp (3);8+9 7 7 ^ 2
>> ans =
0.6931
20.0855
10.0000
49.0000
Ou pode-se riar uma matriz da usando-se [ e mudando de linha.
>> a = [ 1
4 5 6
7 8 9
>> a =
1
4
7

2 3

2
5
8

3
6
9

Para a essar o valor de um elemento de uma matriz digite a(i,j), onde i o nmero da linha e j o nmero da
oluna ao qual elemento perten e.

Exemplo
>> a ( 2 , 1 )
>> ans =
4
Para medir o tamanho de uma matriz usamos as funo
e o nmero de olunas:

size (); ela retorna um vetor om o nmero de linhas

Exemplo
>> b = [ 1 2 3 ; 4 5 6
>> b =
1
2
3
4
5
6
>> s i z e ( b )
>> ans =
23

1.6.2.1 Unio e agrupamento de matrizes


possvel unir duas ou mais matrizes (note que o nmero de linhas e/ou olunas deve ser ompatvel):

Exemplo
>> a = [ 1
>> a =
1
4
7

2 3;4 5 6;7 8 9
2
5
8

3
6
9
6

CAPTULO 1.

INTRODU O AO MATLAB

>> b = transp ( a )
>> b =
1
4
7
2
5
8
3
6
9
>> [ a b
>> ans =
1
2
3
4
5
6
7
8
9
>> [ a ; b
>> ans =
1
2
3
4
5
6
7
8
9
1
4
7
2
5
8
3
6
9
>> = [ a ; 8 8 8
>> =
1
2
3
4
5
6
7
8
9
8
8
8
>> = [ a [ 8 ; 8 ; 8
>> =
1
2
3
4
5
6
7
8
9

1
2
3

4
5
6

1.6.

7
8
9

8
8
8

1.6.2.2 Submatrizes de uma matriz


Exemplo
>> d = a ( 1 : 2 , 2 : 3 )
d =
2
3
5
6
>> a ( : , : )
>> ans =
1
2
3
4
5
6
7
8
9
>> a ( 2 , : )
>>ans =
4
5
6
>> a ( : , 2 )
>> ans =
2
5
8
>> a ( [ 2 3 , 2 )
>> ans =
5
8
7

MATRIZES E VETORES

1.6. MATRIZES E VETORES

CAPTULO 1.

INTRODU O AO MATLAB

1.6.2.3 Alterando uma matriz


Para alterar um elemento de uma matriz hame o elemento e iguale-o ao valor desejado.
>> a ( 2 , 3 ) = 1 0
>> a =
1
2
4
5
7
8

3
10
9

1.6.2.4 Operaes om matrizes


>> a+b
>> ans =
2
6
10
6
10
14
10
14
18
>> s = ab
>> s =
2
4
0
2
0
2
4
2
0
>> 5 a
>> ans =
5
10
15
20
25
30
35
40
45
>> a b %( o b e d e e n d o a s r e g r a s d e m u l t i p l i a o d e m a t r i z e s :

%nmero

>>

ans

de

linhas

de

'a '

14
32
50
32
77
122
50
122
194
>> a /2
>> ans =
0.5000
1.0000
2.0000
2.5000
3.5000
4.0000
>> 2\ a
>> ans =
0.5000
1.0000
2.0000
2.5000
3.5000
4.0000
>> a . b %( m u l t i p l i a o
>> ans =
9
16
21
24
25
24
21
16
9
>> a . / b
ans =
0.1111
0.2500
0.6667
1.0000
2.3333
4.0000
>> a . \ b

deve

ser

igual

ao nmero

de

linhas

elemento ,

produto

de

'b ')

1.5000
3.0000
4.5000

1.5000
3.0000
4.5000
de

elemento

por

0.4286
1.5000
9.0000

es alar )

CAPTULO 1.

>>

INTRODU O AO MATLAB

1.7.

FORMATOS DE SADA

ans

=
9.0000
4.0000
2.3333
1.5000
1.0000
0.6667
0.4286
0.2500
0.1111
>> a^2 %( s e a m a t r i z f o r q u a d r a d a e l a m u l t i p l i a d a p o r e l a mesma )
>> ans =
30
36
42
66
81
96
102
126
150
>> ans ^( 2) %( e l e v a r uma m a t r i z q u a d r a d a um nmero n e g a t i v o
%s i g n i f i a

>>

ans

multipli ar

sua

inversa

por

ela

mesma n

vezes )

=
0.6875
0.3125
0.3125
0.3125
0.6875
0.3125
0.3125
0.3125
0.6875
>> a . ^ 2
>> ans =
1
4
9
16
25
36
49
64
81

1.6.2.5 Matrizes multidimensionais


Trabalhamos, na maior parte das vezes, om matrizes unidimensionais ou bidimensionais. possvel, entretanto, que se trabalhe om matrizes multidimensionais. Para de lar-las, segue um exemplo:
>> a ( : , :
>> a =
1
4
7
>> a ( : , :
>> a ( : , :
1
4
7
>> a ( : , :
80
5
4

, 1) = [1 2 3 ; 4 5 6 ; 7 8 9
2
3
5
6
8
9
, 2 ) = [ 8 0 90 6 0 ; 5 9 7 ; 4 4 4
,1) =
2
3
5
6
8
9
,2) =
90
60
9
7
4
4

1.6.2.6 Outras funes


det()
inv()
transp()

diag()
sum()
norm()

magi ()
triu()
kron()

eye()
tril ()
pas al()

ones()
rand()
pinv()

zeros()
toeplitz()

1.7 Formatos de sada


Para formatar a sada a esse menu

File  Preferen es (gura 1.2).

Sele ione a opo Command Window e altere a opo Numeri Format (gura 1.3).
Cada uma das opes representa um formato de sada.
9

1.7. FORMATOS DE SADA

CAPTULO 1.

INTRODU O AO MATLAB

Figura 1.2: A essando a aixa de dilogo Preferen es

short :
long :

nmero om 5 dgitos
nmero om 15 dgitos para double e 8 para single

short e :
long e :

notao ienti a om 5 dgitos


notao ient a om 15 dgitos para double e 8 dgitos para single

short g :
long g :
hex :

melhor es olha entre long e long e

retorna o nmero em formato hexade imal

bank :
+

melhor es olha entre short e shot e

a sada mostrada omo dinheiro, ou seja, duas asas de imais

: retorna o sinal da entrada

rational :

transforma nmeros de imais em fraes de inteiros

Em numeri display h duas opes:

ompa t :
loose :

workspa e sem line feed (quebra de linha)

workspa e om line feed (quebra de linha)

Podemos tambm alterar o formato da sada om o omando format seguido da opo que desejamos.

Exemplo
>> 1 2 . 3 3 2 3 2 3 3 2 3
>> ans =
12.3323
>> format l o n g
>> 1 2 . 3 3 3 3
>> ans =
12.33330000000000
10

CAPTULO 1.

INTRODU O AO MATLAB

1.8.

OPERADORES LGICOS E RELACIONAIS

Figura 1.3: Caixa de dilogo Preferen es

1.8 Operadores lgi os e rela ionais


Existem seis operadores rela ionais no MATLAB. A tabela 1.1 detalha esses operadores.
Smbolo

Operador

<
<=
>
>=
==
~=

menor que
menor ou igual a
maior que
maior ou igual a
igual
no igual

Tabela 1.1: Operadores rela ionais


O resultado da omparao 1 se verdadeiro e 0 se falso. Por exemplo:
>> 2 + 2 == 4
>> ans =
1
A tabela 1.2 mostra os operadores lgi os.

Exemplo
>> (2 >4) & (5 >4)
>> ans =
11

1.9. POLINMIOS

CAPTULO 1.

Smbolo

Operador

&
|
~

e
ou
no

INTRODU O AO MATLAB

Tabela 1.2: Operadores lgi os


0
>> (2 >4) | (5 >4)
>> ans =
1
Outras funes que so teis om os operadores lgi os so

any

all .

1.8.1 Operaes rela ionais entre vetores e matrizes


Comparao entre elementos da matriz
>> A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ;
>> A>4
>> ans =
0
0
0
0
1
1
1
1
1
Para atribuir os elementos de A que satisfazem determinada omparao a uma outra varivel, faz-se:
>> B = A(A>4)
>> B =
7
5
8
6
9
Os omandos

any

all

so mais utilizados para vetores:

>> p = [ 1 2 3 4 5 ;
>> any ( p>3)
>> ans =
1
>> p = [ 1 2 3 4 5 ;
>> a l l ( p>3)
ans =
0

1.9 Polinmios
O MATLAB representa polinmios omo vetores de uma linha, ontendo os oe ientes ordenados em ordem
de res ente. Por exemplo, o polinmio p(x) = x3 12x2 + 47x 60 representado segundo o omando

>> p = [ 1 12 47 60
p =
1
12
47
60

12

CAPTULO 1.

INTRODU O AO MATLAB

1.9.

POLINMIOS

1.9.1 Funes rela ionadas polinmios

roots :
poly :
onv :

razes;
l ulo do polinmio ara tersti o e remontagem de um polinmio a partir das razes;
produto de polinmios;

de onv :

diviso de polinmios;

residue :

expanso em fraes par iais;

polyval :

avaliao de um polinmio;

polyder :

derivada de um polinmio.

1.9.1.1 Razes
Para al ular as razes de um polinmio utiliza-se o omando roots :
>> r = roots ( p )
r =
5.0000
4.0000
3.0000

1.9.1.2 Determinao dos oe ientes do polinmio pelas razes


Se forem onhe idas as razes de um polinmio, ento o omando poly retorna os oe ientes desse polinmio:
>>

ans

poly

(r)
=
12.0000
1.0000

47.0000

60.0000

Se o argumento de poly for uma matriz quadrada, ento este omando retorna os oe ientes do polinmio
ara tersti o dessa matriz (item 1.9.2).

1.9.2 Polinmio ara tersti o de uma matriz


Supondo uma matriz A = [123; 456; 789], o polinmio ara tersti o igual ao determinante da diferena
entre a matriz A e a multipli ao da varivel om a matriz identidade:

pc (x) = det(A xI)


Para as matrizes:

1 2
A= 4 5
7 8

3
1 0
6 , I = 0 1
9
0 0

0
0
1

Teremos:


1x
2

5x
pc (x) = det(A xI) = 4
7
8
13

3
6
9x




= x3 15x2 18x

1.9. POLINMIOS

CAPTULO 1.

INTRODU O AO MATLAB

Apli ando o mesmo exemplo para no MATLAB:


>> A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ;
>> poly (A)
ans =
15.0000 18.0000
1.0000

0.0000

1.9.3 Produto de polinmios


Se tivermos dois polinmios y1 e y2 e quisermos al ular o produto y1*y2, utiliza-se o omando onv :
>> y1 = [ 1 1 ;
>> y2 = [ 1 2 ;
>> onv ( y1 , y2 )
ans =
1
2
1
Esse resultado nada mais do que os oe ientes do seguinte polinmio:

(x + 1) (x 2) = x2 x 2

1.9.4 Diviso de polinmios


A diviso entre dois polinmios y1 e y2 feita om o omando de onv :
>> q =
q =
1

de onv ( y1 , y2 )

Nota-se que o MATLAB apenas retornou o quo iente da diviso desprezando o valor resto. Para se obter o
valor do resto devemos usar a seguinte sintaxe:
[q,r = de onv (y1,y2) , dessa forma o quo iente armazenado no vetor q e o resto no vetor r.
>> [ q , r = de onv ( y1 , y2 )
q =
1
r =
0
3
Dessa forma temos que o polinmio y1 igual ao produto do dividendo y2 vezes o quo iente somado ao valor
do resto.
>> y1 =
y1 =
1

onv

( q , y2 ) + r

1.9.5 Expanso de polinmios em fraes par iais


A expanso em fraes par iais omumente utilizada em vrias apli aes, tais omo as transformadas de
Lapla e e Fourier e tambm nas transformadas Z, ou em quaisquer problemas que envolvem a razo entre
polinmios.
14

CAPTULO 1.

INTRODU O AO MATLAB

1.9.

POLINMIOS

Como exemplo, onsidere a seguinte razo entre dois polinmios:

10s3 + 80s2 + 177s + 95


B(s)
=
A(s)
s3 + 8s2 + 19s + 12
Expandindo o mesmo polinmio em fraes par iais temos:

9
7
2
B(s)
=

+ 10
A(s)
s+4 s+3 s+1
No MATLAB a funo residue retorna a expanso em fraes par iais armazenando em vetores assim omo
a funo de onv.
A sintaxe da funo residue :
sendo num o vetor-linha que ontm o polinmio do numerador e analogamente,
den o vetor-linha do polinmio do denominador. Os vetores- oluna r, p e k so, respe tivamente, o resduo,
o plo e o termo direto. No por outra razo, o l ulo das fraes par iais tambm hamado de l ulo
de resduos.

[r,p,k = residue(num,dem),

>> B = [ 1 0 80 177 9 5 ;
>> A = [ 1 8 19 1 2 ;
>> [ r , p , k = residue (B, A)
r =
9.0000
7.0000
2.0000
p =
4.0000
3.0000
1.0000
k =
10
Por outro lado, a apli ao da funo residue om os argumento ontendo os vetores r, p e k, permite o
l ulo dos vetores num e den.
>> [ num , den =
>> r = [ 2 ; 1 ;
>> p = [ 4 ; 2 ;
>> k = 1 0 ;
>> [ num , den =
num =
57
10
den =
1
6

residue ( r , p , k )

residue

(r ,p , k)

72
8

De modo que:

F (s) =

1
10s2 57s + 72
2
+
+ 10 =
s1 s2
s 6s + 8

1.9.6 Avaliao de polinmios


Consideremos a funo polinomial p(x) = 2x3 + 3x2 x + 1. Para avaliar numeri amente uma expresso, ou
seja, substituir valores na varivel e obter o valor do polinmio podemos fazer de trs formas:

x um es alar:
15

1.9. POLINMIOS

CAPTULO 1.

INTRODU O AO MATLAB

>> x = 2 ;
>> f = 2 x^3+3 x^2x+1
f =
27

x um vetor varivel:
>> x = 0 : 0 . 5 : 2 ;
>> f = 2 x .^3+3 x.^2 x+1
f =
1.0000
1.5000
5.0000

13.0000

27.0000

Observao

Note que uma onveno do MATLAB olo ar um ponto na frente do operador ^


quando se tem omo argumento um vetor, para que assim ele assegure a posio.

Utilizando a funo

polyval :

>> x = 0 : 0 . 5 : 2 ;
>> p = [ 2 3 1 1 ;
>> y = polyval ( p , x )
y =
1.0000
1.5000

5.0000

13.0000

27.0000

Da mesma maneira, tem-se:


>> x = 2 ;
>> y = polyval ( p , x )
y =
27

1.9.7 Derivada
Para obter-se a derivada de um polinmio basta apli ao da funo polyder :
>> p = [ 2 3 1 1 ;
>> polyder ( p )
ans =
1
6
6
De modo que:

p = 2x3 + 3x2 x + 1

16

dp
= 6x2 + 6x 1
dx

Captulo

Gr os
2.1 Gr os simples
Nesta abordagem, visamos ser apazes de resolver o seguinte problema ao nal do estudo de gr os simples:
resolver gra amente as equaes abaixo no domnio 0 < x < 2 :

1. 1 + cos(x) = 2 cos(x/2)
2. cot(x/2) tan(x/2) = 2 csc(x)
Ini ialmente, devemos onhe er a funo que utilizaremos para plotar os gr os na tela. Trata-se da funo
Sua sintaxe : plot('vetor_dominio','vetor_valores','argumentos').

plot().

Como exemplo ini ial, pro ederemos om a plotagem da funo y = sen(x) para 0 x 2 . O pro edimento
des rito abaixo.
Ini ialmente, so es olhidos os pontos para a varivel independente x. Esses dados formam o eixo horizontal
do gr o.
>> x =

linspa e ( 0 , 2 pi , 4 0 ) ;

O seno de ada ponto es olhido al ulado, forne endo assim os dados de eixo verti al.
>> y =

sin ( x ) ;

O primeiro omando, antes da vrgula, gera o gr o apresentado abaixo. O outro omando, aps a vrgula,
habilita a malha pontilhada, para melhor visualizao do gr o.
>>

plot ( x , y ) , grid

on

A funo plot possui alguns argumentos que podem ser utilizados para adi ionar aspe tos visuais aos gr os.
As tabelas 2.1, 2.2 e 2.3 listam alguns argumentos que personalizam a visualizao dos gr os.

2.1. GRFICOS SIMPLES

CAPTULO 2.

Figura 2.1: Gr o da funo seno

Tabela 2.1: Funo plot : Opes para mar ao de pontos


Cara tere Mar ao dos pontos
o
x
+
*
s
d
v
^
<
>
p
h

ir ulo
x
mais
estrela
quadrado
diamante
triangulo (em baixo)
triangulo (em ima)
triangulo (esquerda)
triangulo (direita)
pentgono
hexgono

Tabela 2.2: Funo plot : ores


Cara tere
Cor
b
g
r

m
y
k
w

azul
verde
vermelho
iana
magenta
amarelo
preto
bran o
18

GRFICOS

CAPTULO 2.

GRFICOS

2.1. GRFICOS SIMPLES

Tabela 2.3: Funo plot : estilos das linhas


Cara teres Estilo de linha
:
-.
-

Slido
Pontilhado
Trao Ponto
Tra ejado

H outras funes rela ionadas funo plot(), que tambm personalizam os gr os gerados (tabela 2.4). A
diferena entre essas funes e os argumentos que os argumentos so utilizados quando se hama a funo
e essas funes so utilizadas fora da funo plot.
Tabela 2.4: Funes auxiliares funo plot
Des rio

Funo

Insere um ttulo no gr o atual


Colo a um nome no eixo x do gr o atual
Colo a um nome no eixo y do gr o atual
Insere um texto em uma posio do gr o determinada pelo mouse
Insere um texto na posio do gr o determinada pelos pontos X e Y

title(`texto')
xlabel(`texto')
ylabe(`texto')
gtext(`texto')
text(`texto',X,Y)

Abaixo temos um exemplo de apli ao destes argumentos.

>> x = linspa e ( 0 , 2 pi , 4 0 ) ;
>> y = sin ( x ) ;
>> z = os ( x ) ;
>> plot ( x , y , ' g : ' , x , z , ' b ' )
>> xlabel ( ' e i x o das a b s i s s a s ' )
>> ylabel ( ' e i x o das o r d e n a d a s ' )
>> t i t l e ( ' Funes SENO e COSSENO ' )
>> grid
A gura 2.2 mostra o resultado.

Figura 2.2: Gr o resultante da utilizao dos argumentos da funo plot e de funes auxiliares.
H tambm outra forma de plotar gr os, que utilizando a funo fplot() que, desenha gr os sem a
ne essidade de riar dois vetores. Para plotar a funo seno, omo j zemos, basta utilizar o seguinte
omando:
19

2.2. SUBGRFICOS

CAPTULO 2.

>>fplot ( ' s i n ' , [ 0 , 2

* pi

40)

grid

GRFICOS

on

O resultado ser absolutamente o mesmo.


Agora temos ondies de resolver os problemas propostos na parte ini ial desta seo.

2.2 Subgr os
possvel mostrar um onjunto de eixos artesianos em uma mesma gura utilizando a funo subplot(m,n,s),
onde m representa a linha, n a oluna e s a numerao do gr o. Abaixo temos um exemplo de utilizao
deste omando para plotar quatro gr os (resultado na gura 2.3).

>> x = 0 : pi / 1 0 0 : 4 pi ;
>> subplot ( 2 2 1 )
>> plot ( os ( x ) )
>> gtext ( ' o s s e n o ( x ) ' )
>>
>>
>>
>>

subplot ( 2 2 2 )
plot ( sin ( x ) )
axis ( [ 0 500 1 1 )
t i t l e ( ' seno ( x ) ' ) ;

>>
>>
>>

subplot ( 2 2 3 )
plot ( os ( x ) , sin ( x ) )
gtext ( ' s e n ( x ) . o s ( x ) ' )

>>
>>
>>

subplot ( 2 2 4 )
plot ( os ( 2 x ) , sin ( x ) )
t i t l e ( ' os (2 x ) . sen ( x ) ' )

2.3 Outras funes


Esto listadas abaixo funes que geram outros tipos de gr os que so interessantes em diversas apli aes.
bar(X,Y,C)
stairs(X,Y)

 Gr o de Barras  X,Y podem ser vetores e C o omprimento


 Gr o em Es ada  mais til em ir uitos digitais
 Plota X,Y e tambm o erro E espe i ado em ada ponto
 Traa gr o polar  R a parte real e I a parte imaginria

errorbar(X,Y,E)
ompass(R,I)

2.4 Plotagem em trs dimenses


A funo para plotagem em trs dimenses a plot3 uja forma geral :
>>

plot3

(x , y , z , )

Onde x,y,z so vetores ou matrizes e o ara tere ou string que dene a or ou estilo de linha.
20

CAPTULO 2.

GRFICOS

2.5. SUPERFCIES

Figura 2.3: Vrios gr os em uma mesma janela

>> p = 0 : pi / 5 0 : 1 0 pi
>> plot3 ( sin ( p ) , os ( p ) , p , ' r ' )
>> xlabel ( ' s i n ( p ) ' )
>> ylabel ( ' o s ( p ) ' )
>> zlabel ( ' p ' )

2.5 Superf ies


As funes mesh e surf permitem representar superf ies no MATLAB. A funo mesh plota superf ie no
modo 'armao de arame' e a funo surf preen he a armao de arame om ores. Outra funo importante
a olormap que altera a or padro do MATLAB (observe a tabela 2.5).

Exemplo
>>mat = zeros ( 1 4 ) ;
>>mesh ( mat )
>> olormap ( [ 0 1 1 )
>>surf ( mat )

21

2.6. APLICA O

CAPTULO 2.

Vermelho
0
1
1
0
0
1
1
0
0,5
0,5
1
0,49

Tabela 2.5: Mapa de ores


Verde
Azul
0
1
0
1
0
1
0
1
0,5
0
0,62
1

0
1
0
0
1
0
1
1
0,5
0
0,4
0,83

GRFICOS

Cor
Preto
Bran o
Vermelho
Verde
Azul
Amarelo
Magenta
Ciano
Cinza-mdio
Vermelho-es uro
Cobre
Azul-pis ina

2.6 Apli ao
A gura 2.4 mostra uma verso simpli ada de um re eptor de rdio. O ir uito permite a seleo de uma
estao de rdio atravs da alterao da freqn ia de ressonn ia do ir uito. A tenso na arga resistiva
varia om a freqn ia onforme a equao abaixo:

VR = q
R2 +

R

L1 2
C

V0

onde = 2f e f a frequn ia em hertz. Assuma que L = 0.1mH, C = 0.25nF, R = 50 e V0 = 10mV.

Figura 2.4: Cir uito simpli ado de um re eptor de rdio


Desenhe a tenso na arga resistiva omo funo da freqn ia. Em qual freqn ia temos o pi o de tenso
na arga resistiva? Qual a tenso na arga om essa freqn ia? Essa freqn ia tambm hamada de
freqn ia de ressonn ia do ir uito.

22

Captulo

Integrao Numri a
3.1 Regra do trapzio
Consideremos uma funo f (x) representada na gura 3.1. Sabidos os valores f (x1 ), f (x2 ), ... , f (x7 ),
quer-se al ular a seguinte integral:

Zx7

f (x) dx

x1

Figura 3.1: Funo f (x)

Tal integral representa a rea sobre a urva f (x). Pode-se aproximar a rea sobre a urva pela soma das
reas dos seis trapzios, que a rea do trapzio om base x1 x2 e alturas f (x1 ) e f (x2 ), mais a rea do
trapzio de base x2 x3 e alturas f (x2 ) e f (x3 ), e assim por diante. Obtm-se, assim:
rea = (x2 x1 )

f (x1 ) + f (x2 )
f (x3 ) + f (x2 )
+ (x3 x2 )
+
2
2

Para um deslo amento onstante em x, x2 x1 = x3 x2 = ... = h , teremos:

3.1. REGRA DO TRAPZIO

rea = h

CAPTULO 3.

INTEGRA O NUMRICA

1
1
f (x1 ) + f (x2 ) + f (x3 ) + + f (xn1 ) + f (xn )
2
2

Tomemos omo exemplo o l ulo de:

Z90

sen(x)dx

O l ulo apresentado na tabela 3.1.

Tabela 3.1: Etapas de l ulo pela integrao numri a via regra do trapzio
ngulo sen(x) Multipli ador Produto
0
15
30
45
60
75
90

Soma

0
0,2588
0,5000
0,7071
0,8660
0,9659
1,0000
-

1/2
1
1
1
1
1
1/2
-

0
0,2588
0,5000
0,7071
0,8660
0,9659
0,5000

3,7979

Para on luir o l ulo, pre iso multipli ar pelo intervalo h (deslo amento em x):

15
3, 7979 = 0, 9943
180

Para realizar o l ulo desta integral no MATLAB, utiliza-se a funo trapz. Esta funo tem dois argumentos:
um vetor x; e um vetor y, de mesmo tamanho de x ( aso y seja uma matriz, ela ter o mesmo nmero de
olunas de x).
>> a n g u l o = 0 : 1 5 : 9 0 ;
>> x=( pi a n g u l o / 1 8 0 ) ;
>> y=sin ( x ) ;
>> z=trapz ( x , y )
z =
0.9943

Ou ento, utiliza-se o deslo amento h:

>> h=pi 1 5 / 1 8 0 ;
>> z=h trapz ( y )
z =
0.9943

Fazendo o espaamento h = 5 , tem-se:


>>
>>
>>
>>

angulo = 0 : 5 : 9 0 ;
x = ( pi angle / 1 8 0 ) ;
y = sin ( x ) ;
z = trapz ( x , y )

24

CAPTULO 3.

INTEGRA O NUMRICA

3.2.

REGRA DE SIMPSON

z =
0.9994
>> h=pi 5 / 1 8 0 ;
>> z=h trapz ( y )
z =
0.9994

Como sabemos:

Z90

sen(x)dx = 1

Sendo assim, a funo trapz() retorna o resultado om erro de exatido e, omo pode-se notar nos exemplos
a ima, quanto menor o espaamento h, menor o erro, ou seja, maior a exatido:
>> a n g u l o = 0 : 0 . 0 5 : 9 0 ;
>> x = a n g u l o pi / 1 8 0 ;
>> y = sin ( x ) ;
>> trapz ( x , y )
ans =
1.0000

3.2 Regra de Simpson


A integrao pela regra de Simpson mais exata que a integrao pela rega trapezoidal. Isto porque o mtodo
de soluo diferente do anterior, omo se pode ver na gura 3.2.

Figura 3.2: Funo f (x) = a0 + a1 x + a2 x2

Para al ular a rea sobre a parbola f (x), dividiremos a rea total em duas reas:
25

3.3. EXERCCIOS

CAPTULO 3.

INTEGRA O NUMRICA

1. S1 : rea do trapzio ABDEA;


2. S2 : rea do segmento de parbola BCDGB .
Tem-se que:

segmento AB = f (x );
segmento F C = f (x );
segmento ED = f (x );
h = AE/2 = (x x )/2
1
2

S1 = 2h

f (x1 ) + f (x3 )
2

A rea S2 , rea do segmento de parbola, igual a 2/3 da rea do paralelogramo que ir uns reve a parbola
(paralelogramo HIDBH ), sendo assim, al ulada por:

S2 =



2
f (x1 ) + f (x3 )
2
AE CG = 2h f (x2 )
3
3
2

Somando as reas, obtemos:

Zx

f (x)dx = S1 + S2

h
[f (x1 ) + 4f (x2 ) + f (x3 )]
3

x0

Apli ando em uma funo de n in gnitas, tem-se:


xZn+1

f (x)dx =

h
[f (x1 ) + 4f (x2 ) + 2f (x3 ) + 4f (x4 ) + + 4f (xn ) + f (xn+1 )]
3

x1

No MATLAB, a funo quad('f ',A,B) aproxima a integral de f (x) no intervalo [A, B] usando a regra de
Simpson om um erro relativo na ordem de 103 .
Para obter o valor aproximado do integral da funo f (x) = cos(x) exp(x) em [0, 0.5] podemos usar a
funo inline para denir a funo f (x) direitamente na funo quad :
>>

ans

quad ( i n l i n e

( ' o s ( x) exp( x ) ' ) ,

=
0.0860

0,

0.5)

3.3 Exer ios


Cal ule as integrais abaixo por todos os mtodos vistos e, depois, verique o erro per entual de ada um
deles.

R2

a)

x dx

R2

b)

x2 dx

R2

x3 dx

R1h

d)

26

1
(x0,3)2 +0,01

1
(x0,9)2 +0.04

dx

e)

R5
5 dx
0

Captulo

Soluo de Sistemas de Equaes Lineares


Nesta parte estuda-se a apli ao do MATLAB soluo de sistemas de equaes lineares. A saber, referem-se
s seguinte funes/ ara teres espe iais no MATLAB:

/  diviso direita;
\  diviso esquerda;

 matriz inversa;

 ara tersti a de uma matriz.


inv()

rank()

4.1 Diviso esquerda (\) e inversa (inv())


Consideremos o seguinte sistema de equaes lineares

3x + 2y z
x + 3y + 2z

xyz

= 10
=5
= 1

Usando a notao matri ial:

3
2 1
x
1 3
2 y =
1 1 1
z
AX =
Existem duas formas de solu ionar o problema:

diviso esquerda  X = A\B


inversa  X = A-1 * B

10
5
1
B

4.2. DIVIS O DIREITA (/)

CAPTULO 4.

SISTEMAS DE EQUAES

4.1.1 Diviso esquerda


>> A = [ 3 2 1; 1 3 2 ; 1 1 1 ;
>> B = [ 1 0 5 1 ' ;
>> X = A \ B
X =
2.0000
5.0000
6.0000

4.1.2 Inversa
>> A = [ 3 2 1; 1 3 2 ; 1 1 1 ;
>> B = [ 1 0 5 1 ' ;
>> X = inv (A) B
X =
2.0000
5.0000
6.0000

4.2 Diviso direita (/)


Se o sistema for denido omo

X A =B ,
ento, a soluo pode ser dada por uma diviso direita:

X = B/A
Seja o seguinte exemplo:

x y

3
2 1


2 = 10 5 1
1 3
1 1 1

>> A = [ 3 2 1; 1 3 2 ; 1 1 1 ;
>> B = [ 1 0 5 1 ;
>> X = B/A
X =
3.0000
15.0000
34.0000

4.3 Exer ios


Determine as solues dos sistemas lineares abaixo, onsiderando dois asos: primeiro, as in gnitas arranjadas omo matriz linha; e, depois, omo matriz oluna.

x +2y
a)
x 2y

x +y

z
+z
z

= 1
= 2
= 1
28

x +y
b)
x y

x +2y

+z
z
z

=
=
=

10
5
1

CAPTULO 4.

x +2y
2x y

SISTEMAS DE EQUAES

+z
z

=
=

4.3.

EXERCCIOS

x +2y

2x 3y
d)
2x 2y

2x y

1
5

29

+z
z
z
+z

=
=
=
=

1
2
5
1

4.3. EXERCCIOS

CAPTULO 4.

30

SISTEMAS DE EQUAES

Captulo

Matemti a Simbli a (Literal)


A matemti a literal fa ilita bastante a anlise dos l ulos, simpli aes de equaes e transformadas,
bem omo para fa ilidades gr as, e esto in orporadas no ambiente MATLAB a partir dos Symboli Math
Toolboxes.
Essa Toolbox utiliza objetos simbli os para representar variveis, expresses e matrizes simbli as.
Algumas opes de uso esto itadas na tabela 5.1.
Tabela 5.1: Fa ilidades da Toolbox de Matemti a Simbli a
Cl ulo
Diferen iao, Derivao, Limites e Sries de Taylor
lgebra Linear
Matrizes Inversas, Determinantes, Auto-valores, de omposio Canni a.
Simpli aes
Mtodos de Simpli ar as equaes e funes.
Soluo de Equaes
Solues Simbli as e numri as de equaes algbri as e diferen iais.
Transformadas
Fourier, Lapla e, transformada-z, e as orrespondentes transformadas inversas
Em sua maioria, as funes utilizadas por essa toolbox usam as sintaxes e estilos naturais da linguagem
MATLAB.

5.1 Objetos simbli os


Um novo tipo de dado deve ser denido para utilizarmos essa matemti a. Internamente, o objeto simbli o
representado omo uma string.
Considere os seguintes omandos:
>>
>>

sqrt ( 2 ) %r e t o r n a
ans = 1 . 4 1 4 2

um nmero

d e i m a l em p o n t o f l u t u a n t e

De outra maneira, se onvertermos o nmero 2 para um objeto simbli o utilizando o omando sym(), e
ento retirarmos a raiz quadrada deste, teremos:
>> a = sqrt ( sym ( 2 ) )
>> a =
2^(1/2)
O Matlab retorna um valor em notao simbli a para a operao sem al ular verdadeiramente o valor
numri o. Assim, o programa guarda essa expresso simbli a na string que representa 2^(1/2).
Podemos obter o valor numri o de um objeto simbli o pelo omando

5.1. OBJETOS SIMBLICOS

CAPTULO 5.

MATEMTICA SIMBLICA

>> d o u b l e ( a )
>> ans =
1.4142
Quando riamos uma frao envolvendo objetos simbli os, o MATLAB grava em um o numerador e em
outro o denominador.
Sejam os seguintes omandos:
>> sym ( 2 ) / sym ( 5 )
>> ans =
2/5
A aritmti a utilizada pelo MATLAB para os dados simbli os tambm diferente daquele que envolve
outros tipos de dados.
Por m, onsidere:
>> 2/5 + 1/3
>> ans =
0 ,7333
Se somarmos as mesmas fraes s que agora omo dados simbli os, o MATLAB primeiro en ontra o
denominador omum para ento pro essar a soma dos nmeros fra ionrios pelos pro edimentos usuais.
>> sym ( 2 ) / sym ( 5 )
>> ans =
11/15

sym ( 1 ) / sym ( 3 )

Agora suponha que desejamos estudar a funo quadrti a:

f = ax2 + bx + c
A soluo dada por:

>> f = sym ( ' a x^2 + b x + ' )


que olo a a expresso simbli a ax2 + bx + c na varivel f
De qualquer maneira, importante notar que a Toolbox no ria variveis orrespondentes aos termos da
expresso a, b, e x. Para realizarmos as operaes matemti as ( omo integrao, diferen iao, et ) em f,
pre isaremos riar as variveis expli itamente.
Devemos fazer ento:
>>
>>
>>
>>

a
b

x

=
=
=
=

sym (
sym (
sym (
sym (

'a ' )
'b ' )
' ')
'x ' )

ou simplesmente
>> syms a b x
que uma alternativa mais enxuta ao omando sym, para ento fazer

>> f = sym ( ' a x^2 + b x + ' )

Importante

Para riar uma expresso simbli a que uma onstante, s podemos usar o omando sym.
Por exemplo, para riar uma expresso ujo valor 5, digite f = sym('5'). Note que o omando f
= 5 no dene f omo uma expresso simbli a. Se vo riar uma varivel igual a uma expresso
simbli a, e ento apli ar o omando syms a esta varivel, o MATLAB ir remover a expresso denida
previamente da varivel.
32

CAPTULO 5.

Exemplo

5.2. O COMANDO SUBS

MATEMTICA SIMBLICA

Considere:

>> syms a b
>> f = a + b
retorna
>>f =
a+b
Se vo inserir:
>> syms f
O MATLAB retornar
>> f =
f
Para determinar quais variveis simbli as esto presentes na expresso use o omando
>> f i n d s y m ( )

5.2 O omando subs


Podemos substituir uma varivel simbli a por um valor numri o usando o omando subs.

Exemplo

Para substituir o valor x = 2 na expresso simbli a

>> f = 2 x^2 3 x + 1
entre om o omando
>>

subs ( f , 2 )

Isso retornar f(2):


>>

ans

5.3 Tipos numri os


Considere o tre ho de programa abaixo:
>> t = 0 . 1
>> sym ( t , ' f ' )
retornar um simbli o om representao de oating-point

>> ' 1 . 9 9 9 9 9 9 9 9 9 9 9 9a ' 2^( 4)


A opo 'r'
>> sym ( t , ' r ' )
retorna o valor em formato rational
33

5.4. VARIVEIS REAIS E COMPLEXAS

CAPTULO 5.

MATEMTICA SIMBLICA

1/10
Veja tambm:
>> sym ( t , ' e ' )
>> ans =
1/10+ eps /40
>> sym ( t , ' d ' )
>> ans =
.10000000000000000555111512312578

5.4 Variveis reais e omplexas


Considere os omandos abaixo
>> x = sym ( ' x ' , ' r e a l ' ) ;
y = sym ( ' y ' , ' r e a l ' ) ;
ou de uma maneira mais e iente
>> syms x y

real

Criamos variveis x e y que se in luem no onjunto de propriedades matemti as dos nmeros REAIS.
Isso signi a que a expresso
>> f = x^2 + y^2
estritamente no negativa.
Desde que z seja uma varivel omplexa, poder ser operada omo tal. Assim, os omandos
>> onj ( x ) ,
>> onj ( z ) ,
>> expand ( z
para

* onj ( z ) )
*

>> z = x + i y
retornaro
x,
x i y ,
x^2+y^2

respe tivamente. O omando onj o operador do omplexo onjugado desse toolbox. Se onj(x) == x
retorna 1, ento x uma varivel real.

5.5 Cl ulos
O Toolbox de Matemti a simbli a tambm in lui funes que realizam as operaes bsi as do Cl ulo.
34

CAPTULO 5.

MATEMTICA SIMBLICA

5.5.

CLCULOS

5.5.1 Diferen iao


Primeiro riamos a expresso simbli a
>> syms x
>> f = sin ( 5 x )

O omando
>>

diff ( f )

faz a diferen iao de f em respeito a x


>>

ans
5

* os ( 5 * x )

Tomemos omo outro exemplo a linha

exp ( x ) os ( x )

>> g =

em que exp(x) denota ex , realizando a diferen iao de g:


>>
>>

diff (g)
ans =
exp ( x ) os ( x ) exp ( x ) sin ( x )

Para en ontrarmos a segunda derivada de g, fazemos


>>
>>

diff (g ,2)
ans =
2 exp ( x ) sin ( x )

5.5.2 Derivada de uma expresso om mais de uma varivel


Para derivar uma expresso que ontm mais de uma varivel simbli a, devemos espe i ar a varivel que
queremos derivar a respeito da funo. O omando di ento al ular a derivada par ial da expresso om
respeito a essa varivel. Por exemplo, dada uma expresso simbli a:
>> syms s t
>> f = sin ( s t )

O omando
>>

diff ( f

,t)

al ular a derivada par ial de f em relao a t. O resultado ser:


>>

ans =
os ( s

* t )* s

Para derivar f a respeito da varivel s, faa


>>
>>

diff ( f , s )
ans =
os ( s t )

* *t

Para al ular a segunda derivada em respeito da varivel t, faa


>>

diff

( f , t , 2)
35

5.5. CLCULOS

CAPTULO 5.

MATEMTICA SIMBLICA

Que retornar
>>

ans =
sin

* * s ^2

(s t)

Note que di (f, 2) tambm retorna essa resposta j que t est mais prximo de x do que s no alfabeto
(varivel padro).

5.5.3 Limite
O limite uma idia fundamental no Cl ulo. Lembre-se que o on eito da derivada provm dessa noo:

f (x + h) f (x)
h0
h

f (x) = lim
Considere:
>> syms h n x
>> l i m i t ( ( os ( x+h )

os ( x ) ) / h , h , 0

Que retorna
>>

ans =
sin ( x )

e
>> l i m i t ( ( 1 + x/n )^n , n , i n f )
Que retorna
>>

ans =
exp ( x )

Ilustramos dois asos utilizando noes de limite muito importantes na engenharia: a derivada da funo
trigonomtri a osseno e a funo exponen ial.

5.5.3.1 Limites laterais


Tambm podemos al ular os limites laterais de uma funo a partir do Symboli Math Toolbox.
Por exemplo, podemos al ular o limite de x/ |x|, ujo gr o mostrado na gura 5.1, ilustrando a maneira
que x se aproxima de zero pela direita e pela esquerda.
Para al ularmos

lim

x0

fazemos:
>> l i m i t ( x /

abs ( x )

, x, 0,

' left ')

Que retorna
>>

ans

1
36

x
|x|

CAPTULO 5.

MATEMTICA SIMBLICA

5.5.

CLCULOS

Figura 5.1: Gr o da funo f (x) = x/ |x|


De maneira semelhante, para o l ulo de

lim

x0+

x
|x|

pode ser dado por:


>> syms x
>> f = x / abs ( x )
>> l i m i t ( f , x , 0 ,

' right ' )

Que retornar
>>

ans

Como o limite pela direita no igual ao limite pela esquerda, aso estes no sejam espe i ados, o MATLAB
retornar NaN (not a number) omo resposta.
>>l i m i t ( x /
>> ans =

abs

( x ) , x , 0)

NaN

5.5.4 Integrao
Seja f uma expresso simbli a, ento
>> i n t ( f )
tentar en ontrar uma outra expresso simbli a, F, uja derivada di(F) = f. Ou seja, int(f ) retorna a
integral indenida (tambm hamada de anti-derivada) de f (desde que esta exista de forma integrada).
Similar diferen iao,
>> i n t ( f , v )
Usa o objeto simbli o v omo varivel de integrao.
Veja alguns exemplos:
37

5.5. CLCULOS

CAPTULO 5.

MATEMTICA SIMBLICA

>> syms x , n
>> f = x^n
Cal ulando a integral
>> i n t ( x^n )
Teremos omo resposta
>>

ans

=
x ^(n +1)/( n+1)

Em ontraste om a diferen iao, a integrao simbli a uma funo um pou o mais ompli ada. Alguns
dos motivos so:

A antiderivada, F, pode no existir em forma ompa ta;


A antiderivada pode denir uma funo no-familiar;
A antiderivada pode at existir mas o software no onsegue enxerg-la.
O MATLAB tambm pode retornar a resposta em termos da funo "erro" denida omo erf. Veja o exemplo
abaixo:
>> syms x
>> f = exp( x ^2)
>> i n t ( f )
Retornar
>>

ans

=
1/2 pi ^ ( 1 / 2 )

* erf ( x )

Isso a onte e quando no h nenhuma frmula para a integral envolvendo o Cl ulo tradi ional omo as
funes trigonomtri as ou mesmo as exponen iais.
Quando no for possvel en ontrar uma resposta para a integral da expresso de f, o MATLAB simplesmente
a devolver
>>

ans

=
int ( f )

Integrais denidas tambm so possveis. Criamos objetos simbli os a partir do omando:


>> syms x v a b
O omando int (f, a, b) usado para en ontrar

Zb

f (x) dx

38

CAPTULO 5.

MATEMTICA SIMBLICA

5.6.

COMANDO SOLVE

5.5.5 Somatrios
Podemos omputar o somatrio de nmeros simbli os, quando essas existirem, a partir do omando symsum.
Por exemplo,
>>
>>
>>
>>

syms x k
s 1 = symsum( 1 / k ^ 2 , 1 , i n f )
s 2 = symsum ( x^k , k , 0 , i n f )
s1 =
1/6 pi ^2
>> s 2 =
1/(x 1)

5.5.6 Srie de Taylor


A srie de Taylor tem a forma mostrada na equao abaixo. Esta srie utilizada para aproximar o valor de
funes analti as em um ponto x atravs de um somatrio.

(x a)n

n=0

f n (a)
n!

Podemos en ontrar a srie de Taylor de uma funao f qualquer usando os omandos onforme o exemplo
abaixo:
>> syms x
>> f = 1/(5+4 os ( x ) )
>> T = t a y l o r ( f , 8 )

Que retorna

>> T =1/9+2/81 x^2+5/1458 x ^4+49/131220 x^6


Os omandos
>> syms x
>> g = exp ( x sin ( x ) )
>> t = t a y l o r ( g , 1 2 , 2 ) ;

Geram os 12 primeiros termos no-nulos da Srie de Taylor para g em x = 2 .


Podemos imprimir as duas funes no mesmo gr o para vermos o tanto que essa srie de Taylor se aproxima
do verdadeiro valor da funo (gura 5.2).
>> xd = 1 : 0 . 0 5 : 3 ; yd = s u b s ( g , x , xd ) ;
>> e z p l o t ( t , [ 1 , 3 ) ; hold on ;
>> plot ( xd , yd , ' r . ' )
>> t i t l e ( ' T a y l o r a p p r o x i m a t i o n v s . a t u a l f u n t i o n ' ) ;
>> legend ( ' T a y l o r ' , ' F u n t i o n ' )

5.6 O omando solve usado em expresses simbli as


>> syms a b x
>> S = a x^2 + b x + ;
>> s o l v e ( S )

39

5.7. RESOLVENDO EQUAES DIFERENCIAIS

CAPTULO 5.

MATEMTICA SIMBLICA

Figura 5.2: Aproximao pela srie de Taylor


Utiliza a frmula quadrti a para al ular
>>

ans

=
[ 1 / 2 / a ( b+(b^2 4 a ) ^ ( 1 / 2 ) )
[ 1 / 2 / a ( b (b^2 4 a ) ^ ( 1 / 2 ) )

*
*

**
**

Esses so vetores simbli os ujos elementos so as solues da equao proposta. Se desejarmos resolver a
equao para uma varivel espe  a, essa deve ser espe i ada por um argumento adi ional. Por exemplo,
se queremos resolver S para b, usaremos o omando:
>> b = s o l v e ( S , b )
que retornar
>> b =
(a x^2+ ) / x

Se quisermos resolver as equaes para f (x) = g (x) devemos fazer omo no exemplo abaixo:

>> s = s o l v e ( ' o s ( 2 x)+ s i n ( x)=1 ' )


retorna um vetor om as quatro solues.
>> s =
[0
[ pi
[1/6
[5/6

* pi
* pi

5.7 Resolvendo equaes diferen iais


Podemos usar a funo dsolve para omputarmos as solues simbli as para equaes diferen ias ordinrias.
As equaes so espe i adas por expresses simbli as ontendo a letra D para denotar a diferen iao. Os
smbolos D2, D3, DN, orrespondem segunda, ter eira, n-sima diferen iao, respe tivamente.
Assim, D2y equivale matemati amente
40

CAPTULO 5.

MATEMTICA SIMBLICA

5.7.

RESOLVENDO EQUAES DIFERENCIAIS

2y
t2
As ondies ini iais podem ser dadas por equaes adi ionais. Se estas ondies no forem espe i adas,
as solues in luiro as onstantes de integrao C1, C2, et .
Podemos hamar dsolve om o nmero de variveis de sada igual ao nmero de variveis dependentes ou
olo ar a sada em uma estrutura ujos ampos ontm as solues da equao diferen ial.

Exemplo 1

O omando:

>> d s o l v e ( 'Dy=1+y^2 ' )


utiliza y omo varivel dependente e t que a varivel independente padro. A sada desse omando ser:
>>

ans =
tan ( t+C1 )

Para espe i ar as ondies ini iais, use


>> y = d s o l v e ( 'Dy=1+y^2 ' , ' y (0)=1 ' )
Isso gera
>> y =

tan ( t +1/4 pi )

Equaes no-lineares devem apresentar mltiplas solues, mesmo quando as ondies ini iais so dadas.
>>x = d s o l v e ( ' (Dx)^2+x^2=1 ' , ' x (0)=0 ' )
que resulta em
>>

x =
[ sin ( t )
[ sin ( t )

Exemplo 2

Aqui teremos uma equao diferen ial de segunda ordem om duas ondies ini iais. Os

omandos

>> y = d s o l v e ( ' D2y= o s ( 2 x) y ' , ' y (0)=1 ' , 'Dy(0)=0 ' ,


>> s i m p l i f y ( y )

'x ' );

produzem
>> ns =
4/3

* os ( x) 2/3* os ( x)^2+1/3

Para resolver as equaes diferen iais abaixo:

d3 u
=u
dt3
simplesmente digite
>> u = d s o l v e ( ' D3u=u ' , ' u (0)=1 ' , 'Du(0)= 1 ' , ' D2u ( 0 ) = p i ' , ' x ' )
Tambm podemos resolver vrias equaes diferen iais ordinrias utilizando dsolve, omo segue:
41

5.8. TRANSFORMADAS

CAPTULO 5.

* *

>> S = d s o l v e ( ' Df = 3 f +4 g ' ,

MATEMTICA SIMBLICA

* *

' Dg = 4 f +3 g ' )

As solues sero devolvidas para a estrutura S. Podemos determinar os valores de f ou g digitando:


>> f = S . f
>> f =
exp ( 3 t ) ( C1
>> g = S . g
>> g =
exp ( 3 t ) ( C1

* * * sin ( 4 * t )+C2* os ( 4 * t ) )

* * * os ( 4 * t )C2* sin ( 4 * t ) )

Se preferir en ontrar os valores de f e g j onsiderando as ondies ini iais, faa

* *

* *

>> [ f , g = d s o l v e ( ' Df=3 f +4 g , Dg =4 f +3 g ' ,


>> f =
exp ( 3 t ) sin ( 4 t )
>> g =
exp ( 3 t ) os ( 4 t )

* *
* *

*
*

' f (0) = 0 , g (0) = 1 ' )

5.8 Transformadas
5.8.1 Transformada de Fourier
F = fourier(f) a Transformada de Fourier da espresso simbli a f om a varivel independe padro x. O
Matlab retornar uma funo de w omo padro. A transformada de Fourier apli ada em uma funo de
x e retorna uma funo de w.

Exemplo 1
>> f = exp( x ^2)
>> f o u r i e r ( f )
r etornar

pi ^ ( 1 / 2 ) exp ( 1/4

*w^2)

F = fourier(f,v) faz de F uma funo do smbolo v ao invs do padronizado w.

Exemplo 2

>> f = x exp( abs ( x ) )


>> f o u r i e r ( f , u )
retorna

4 i /(1+u ^2)^2 u
F = fourier(f,u,v) faz de f uma funo de u e F uma funo de v ao invs das variveis padronizadas x e w,
respe tivamente.

Exemplo 3
>> syms x real
>> f = exp( x^2 abs ( v ) )
>> f o u r i e r ( f , v , u )

* sin ( v ) / v
42

CAPTULO 5.

MATEMTICA SIMBLICA

5.8. TRANSFORMADAS

retorna

atan ( ( u 1)/x^2)+ atan ( ( u+1)/x ^2)

5.8.2 Transformada inversa de Fourier


f = ifourier(F) a transformada inversa de Fourier de uma expresso F de w (padro). O MATLAB, por
padro, devolve uma expresso em funo de x.
A transformada inversa de Fourier fun iona de maneira semelhante a fourier().

Exemplo 1
>> syms a real
>> f = exp(w^2/(4 a ^ 2 ) )
>> F = i f o u r i e r ( f )F = s i m p l e (F)

retorna
a

*exp(x^2* a ^2)/ pi ^ ( 1 / 2 )

Exemplo 2
>> g = exp( abs ( x ) )
>> i f o u r i e r ( g )
retorna
1/(1+ t ^2)/ pi

5.8.3 Transformada de Lapla e


L = lapla e(F) a Transformada de Lapla e de F uja varivel independente, por padro, t. Tambm por
padro devolvido uma expresso uja varivel s.
Sintaxes:

lapla e(F) ou lapla e(F,t)

Exemplo 1
>> f = t ^4
>> l a p l a e ( f )
retorna
24/ s ^5

Exemplo 2

>> f = exp( a t )
>> l a p l a e ( f , x )
resulta em:
1/(x + a )

5.8.4 Transformada z
Sintaxes:

43

5.8. TRANSFORMADAS

CAPTULO 5.

>> F = z t r a n s ( f )
>> F = z t r a n s ( f , w)
>> F = z t r a n s ( f , k , w)

Exemplo 1
>> f = n^4
>> z t r a n s ( f )
retorna

z ( z ^3+11 z ^2+11 z +1)/( z 1)^5

Exemplo 2
>> g = a^z
>> s i m p l i f y ( z t r a n s ( g ) )
retorna

w/( w+a )

Exemplo 3

>> f = sin ( a n )
>> z t r a n s ( f , w)
retorna

* sin ( a ) / (w^22*w* os ( a )+1)

44

MATEMTICA SIMBLICA

Captulo

Arquivos M
6.1 Caminho de bus a do MATLAB
Antes de omear a riar arquivos M ne essrio onhe er melhor o dispositivo de bus a do MATLAB.
Quando digitamos um omando no interpretador do MATLAB, ele veri ar na seguinte ordem por aquele
nome:
1. Varivel
2. Funo ou omando pr-denido
3. Arquivo M no diretrio atual
4. Arquivo M na lista de diretrios do aminho de bus a
Como pode-se per eber a es olha do nome de variveis, funes e arquivos de fundamental importn ia
para evitar onitos e at, perda de omandos importantes uma vez que, por exemplo, uma varivel om o
nome Input seria a essada antes da funo om o mesmo nome.
Para alterar o aminho de bus a do MATLAB basta digitar na linha de omandos o omando
Uma janela ser aberta apresentando todas as opes (gura 6.1).

editpath.

Outros omandos para alterao diretrio de aminhos so:

addpath
path

 adi iona um diretrio ao aminho

 exibe a lista de aminhos


 remove um diretrio do aminho

rmpath

6.2 Janela de edio e depurao


O programa de edio e depurao do MATLAB (gura 6.2) um editor de textos que podem ser salvos
omo programas e s ripts em linguagem prpria. S ripts so sequn ias de omandos pr-estabele idos que
podem ser a essados a qualquer instante, bastando apenas digitar seu nome na linha de omandos. Desde
que o nome do arquivo no onite om nenhuma varivel ou funo o s ript ser exe utado. S ripts so
ex elentes ferramentas para a riao de blo os de digos que so exe utados om freqn ia.

6.2. JANELA DE EDI O E DEPURA O

CAPTULO 6.

ARQUIVOS M

Figura 6.1: Dilogo Set Path


Para riar um novo arquivo M h basi amente duas opes: ir ao menu
no boto

File  New  M-File ou li ar

na barra de ferramentas do MATLAB.

Ao salvar um arquivo M esteja erto sobre sua lo alizao, pois vo pre isar adi ionar o aminho do diretrio
lista de diretrios do MATLAB, aso este ainda no tenha sido adi ionado.
Como primeiro arquivo M atentemo-nos a seguinte situao:

Problema

Temos uma fonte de 120V om resistn ia interna de 50 (gura 6.3). Cal ular a resistn ia
de arga para a qual a potn ia seja mxima. Desenhar a urva de potn ia para vrios valores de potn ia.

Soluo

PL = I 2 RL

I=

V
RL + RI

Implementando o arquivo M:

1
2
3
4
5
6
7
8
9
10

'

v o l t s = 120;
Ri = 5 0 ;
Rl = 1 : 1 0 0 ;
I = v o l t s . / ( Ri + Rl ) ; % a l u l a a o r r e n t e
Pl = Rl . I . ^ 2 ; % a l u l a a p o t n i a na a r g a
plot ( Rl , Pl ) ; %p l o t a Rl ( x ) e P l ( y )
t i t l e ( ' G r f i o R e s i s t n i a x P o t n i a na a r g a ' )
grid on
xlabel ( ' R e s i s t n i a Rl ' )
ylabel ( ' P o t n i a na a r g a ' )

&

46

CAPTULO 6.

ARQUIVOS M

6.3. ABORDAGEM DE PROJETO

Figura 6.2: Editor de s ripts

6.3 Abordagem de projeto


Antes de ini iar a programar, atentemo-nos brevemente a uma abordagem de projetos para que vo tenha
onhe imento desta etapa da implementao de um software.
A abordagem Top-Down mostrada a seguir muito utilizada nas melhores asas do ramo.
1. Estabele er om lareza o problema
Estudar o problema tendo reunies om o liente, oletar informaes e dados que variam desde os
l ulos matemti os envolvidos at, prefern ias de interfa e o primeiro passo. Somente a prti a
trar ao programador a otimizao deste passo, que quando bem realizado evita impa tos futuros no
sistema.
2. Denir as entradas e as sadas requeridas
Denir as variveis de entrada e sada ajudam na visualizao do pro esso de transformao ne essrio.
3. Projetar o Algoritmo (Portugus)
Nesta etapa vo utilizar pseudo digo ou portugus para des rever o que o seu programa far.
Primeiro des reva de maneira geral e depois de omponha o quanto a har ne essrio. Conhe er a
linguagem a ser usada importante para que o pro esso de de omposio e depurao se assemelhe
ada vez mais a ela.
(a) De ompor
Cada linha do algoritmo de omposta de maneira a se pare er ada vez mais om a linguagem
que se pretende utilizar para implementar o programa.
47

6.4. PROGRAMA O EM MATLAB

CAPTULO 6.

ARQUIVOS M

Figura 6.3: Diagrama esquemti o do problema da resistn ia


O pro esso de de omposio representa tambm a des rio mais detalhada das funes do algoritmo ini ial.
(b) Renar
Renar o pro esso onsiste em es olher as melhores funes e dar-lhe agilidade e onabilidade
om isto.
4. Converter para Linguagem Es olhida (no aso MATLAB)
Implementar o programa na linguagem es olhida para que ele possa ser exe utado. A sintaxe e a
semnti a da linguagem devem ser observadas om autela.
5. Testar o Programa
Testar o programa dentro de todas as suas entradas e sadas possveis, in luindo sadas que podem gerar
mensagens de erro muito importante. Embora todas as etapas anteriores tenham sido exe utadas om
qualidade esta a etapa que ostuma demorar mais.

6.4 Programao em MATLAB


6.4.1 Operadores
6.4.1.1 Operadores Rela ionais
Retorna valor lgi o alto ou baixo (1 ou 0), baseado na relao entre as variveis itadas.
Igual
a==b

Diferente
a~=b

Maior
a>b

Menor
a<b

Maior Igual
a>=b

Menor Igual
a<=b

Erros podem o orrer ao omparar variveis devido s aproximaes, feitas pela mquina, j que realiza seus
l ulos numeri amente. Dois exemplos so mostrados abaixo:
>> a = 0 ;
>> b = sin ( pi ) ;
>> a == b
ans =
0
O que mostra que o MATLAB, devido os erros a ima men ionados, no atribui o valor exato de zero para
o seno de pi. Mas, pelo omando abaixo, mostra-se que o mdulo da diferena entre este seno e zero da
ordem de 10-15, perfeitamente utilizvel para a maior parte das situaes.
48

CAPTULO 6.

>>

ans

abs ( ab )
=
1

ARQUIVOS M

6.4. PROGRAMA O EM MATLAB

< 1 e 15

6.4.1.2 Operadores Lgi os


Os operadores que realizam operaes da lgebra booleana no MATLAB, utilizando omportamento de
urto- ir uito, so:
E
a && b

OU
a || b

EX-OU
xor(a,b)

N O
~b

Temos abaixo as tabelas verdade da lgebra booleana.

a
0
0
1
1

E
a && b
0
0
0
1

b
0
1
0
1

OU
a || b
0
1
1
1

EX-OU
xor(a,b)
0
1
1
0

N O
~a
1
1
0
0

Tabela 6.1: Tabelas verdade dos operadores E, OU, EX-OU e N O

6.4.2 Funes lgi as

 retorna 1 se for ara tere;


 retorna 1 se for um vetor sem elementos;
 retorna 1 se for (innito);
 retorna 1 se for (not a number);
 retorna 1 se for um nmero.

is har(a)

isempty(a)
isinf(a)

isnan(a)

inf

isnumeri (a)

NaN

Para maiores informaes sobre funes lgi as, re omenda-se pro urar por is* na janela de ajuda do MATLAB.

6.4.3 Estruturas de programao


6.4.3.1 If
uma estrutura utilizada em tomadas de de iso no programa o que a arreta em rami aes do mesmo.
Se a expresso de ontrole for atendida o blo o logo abaixo do if ser exe utado, seno uma possvel segunda
expresso de ontrole, em elseif, ser testada. Caso esta segunda expresso de ontrole seja atendida, o blo o
abaixo da mesma ser exe utado. Caso ontrrio, o blo o dentro de um possvel else ser exe utado. A
identao muito importante para eviden iar onde termina ada blo o.
If

if

expresso_de_ ontrole
omandos ;
e l s e i f expresso_de_ ontrole2
omandos ;

else
end

omandos ;

49

6.4. PROGRAMA O EM MATLAB

CAPTULO 6.

ARQUIVOS M

Pode-se utilizar tambm estruturas if aninhadas, tal omo a estrutura abaixo:

if

expresso_de_ ontrole
omandos ;
i f expresso_de_ ontrole
omandos ;

end

end

Segue um exemplo para ilustrar as rami aes if :

Problema

Considere a seguinte funo:

f (x, y) =

x+y

x + y 2

x2 + y

2
x + y2

x0
x0
x<0
x<0

ey0
ey<0

ey0

ey<0

Es rever um s ript que ompute o valor de f para diferentes valores de x e y .

Soluo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

'

%P r o p s i t o :

%f ( x , y )
%O b t e n d o

x =
y =

Avaliar

para
x

if

valores
valores

da

funo

de

input ( ' Entre


input ( ' Entre

%C a l u l a

os

diferentes

om o v a l o r de x :
om o v a l o r de y :

' );
' );

x >= 0 && y >= 0


fun = x + y ;
e l s e i f x >= 0 && y <0
fun = x + y ^2;
e l s e i f x < 0 && y >= 0
f u n = x^2 + y ;

else
end

f u n = x^2 + y ^ 2 ;

%E s r e v e n d o

disp ( [

&

resultado

'O v a l o r de f :

'

num2str ( f u n ) ) ;

6.4.3.2 Swit h
Tambm uma estrutura de tomada de de iso. Derivou de vrias seqn ias de if e else. Caso a expresso
se iguale a um dos asos o blo o de de laraes orrespondente ser exe utado. Existe um blo o padro
otherwise que exe utado quando nenhum dos asos atendido.
50

CAPTULO 6.

ARQUIVOS M

6.4. PROGRAMA O EM MATLAB

swit h ( expresso )
a s e expre_ ase ,
omando ;
omando ;
a s e e x p r e _ a se 2 ,
omando ;
omando ;
ase expres_ ase3 ,
omando ;
omando ;
otherwise
omando ;
omando ;

end

Exemplo

Testar se um nmero par ou mpar, utilizando swit h :

Soluo
1
2
3
4
5
6
7
8
9
10

'

v a l o r = input ( ' Entre om um nmero i n t e i r o : ' ) ;


r e s t o = mod( v a l o r , 2 ) ;
swit h ( resto )
ase (1)
disp ( ' Impar ' ) ;
ase (0)
disp ( ' Par ' ) ;
otherwise
disp ( ' I n v l i d o . Somente nmeros i n t e i r o s ! ' ) ;

end

&

6.4.3.3 Try/ at h

Esta estrutura fun iona de maneira que se o blo o de omandos dentro de try gerar algum erro o blo o dentro
de at h ser exe utado. Lembrando que o blo o dentro de try ser exe utado normalmente omo parte da
sequn ia do programa.

Exemplo
1
2
3
4
5
6
7
8
9
10

'

%I n i i a

matriz

a = [ 1 3 4 5
try
%T e n t a

e x i b i r um e l e m e n t o

i n d e x = input ( ' Fornea o n d i e do e l e m e n t o a s e r e x i b i d o :


disp ( [ ' a ( ' int2str ( i n d e x ) ' ) = ' num2str ( a ( i n d e x ) ) ) ;
at h

%Se

end

hegarmos

disp ( [

&

aqui ,

' ndi e

' );

o o r r e u um e r r o

ilegal :

'

int2str ( i n d e x ) ) ;

51

6.4. PROGRAMA O EM MATLAB

CAPTULO 6.

ARQUIVOS M

6.4.3.4 Laos
As duas estruturas de lao presentes na linguagem so for e while. Enquanto o for fun iona om in rementao
de variveis o while fun iona om teste de ondies lgi as, ou seja, o lao for se en errar quando o ontador
a abar e o lao while se en errar om o atendimento da ondio da expresso.
A estrutura do lao for mostrada abaixo:

for
end

n d i e = e x p r e s s o : [ v e t o r ou m a t r i z
Cdigo_a_ser_exe utado ;

Ao se utilizar o lao for, uma boa prti a de programao e que poupa tempo de l ulo da mquina a
pr-alo ao de vetores. Isso pode ser feito, por exemplo, riando um vetor omposto somente de zeros,
por meio da funo zeros. O exemplo abaixo demonstra a diferena entre dois laos: o primeiro no utiliza
pr-alo ao enquanto o segundo utiliza.

Exemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14

'

lear
t i %i n i i a
for t =1:5 e4

$
ontagem

de

tempo

* *

y ( t ) = sin ( 2 pi t / 1 0 ) ;
end
to % f i n a l i z a o n t a g e m d e tempo
pause %a g u a r d a uma t e l a s e r p r e s s i o n a d a
lear %l i m p a a s v a r i v e i s
ti
y = zeros ( 1 , 5 e4 ) ; %p r a l o a o do v e t o r
for t =1:1 e4
y ( t ) = sin ( 2 pi t / 1 0 ) ;
end
to

* *

&

Na janela de omandos, fazemos:


>> e x e m p l o _ p r e a l o a a o
Elapsed time i s 1.641012 se onds .
Elapsed time i s 0.001286 se onds .
Isso mostra que o l ulo utilizando a pr-alo ao, para este aso, foi mais de 800 vezes mais rpido do que
o lao que no a utilizava!
Outro exemplo de um lao for dado abaixo. Nele, implementamos o l ulo do fatorial de um nmero n.
vlido itar que j existe a funo fa torial no MATLAB, mais rpida do que a apresentada abaixo.

Exemplo
1
2
3
4
5
6

'

n = input ( ' Entre om o numero p a r a a l u l o do f a t o r i a l :


n_fatorial = 1;
for i =1:n
n_fatorial = n_fatorial i ;

end
fprintf ( ' Fatorial

&

' );

%f \n ' , n _ f a t o r i a l ) ;
52

CAPTULO 6.

ARQUIVOS M

6.4. PROGRAMA O EM MATLAB

A estrutura do lao while mostrada abaixo:

while
end

expresso
Cdigo_a_ser_exe utado ;

Para este lao, apresentamos dois exemplos.

Exemplo

Enquanto o usurio entrar om valores positivos o s ript ontinuar rodando. Ao entrar om


um valor negativo, o lao while nalizado e o programa forne e, omo sada, a mdia, o desvio padro e o
nmero de pontos utilizado para estes l ulos. Ressalta-se que o MATLAB j possui funes que al ulam
a mdia (mean ), o desvio padro (std ) e vrias outras ferramentas de estatsti a.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

'

n = 0;
sum_x = 0 ;
sum_x2 = 0 ;
x = input ( ' Entre om o p r i m e i r o v a l o r : ' ) ;
while x >= 0
n = n+1;
sum_x = sum_x+x ;
sum_x2 = sum_x2+x ^ 2 ;
x = input ( ' Entre om o v a l o r s e g u i n t e :

end

x_bar = sum_x/n ;
std_dev = sqrt ( ( n
sum_x2 sum_x ^ 2 ) / ( n
f p r i n t f ( ' Mdia : %f \n
D e s v i o Padro : %f \n
Nmero de Pontos : %f \n ' , x_bar , std_dev , n ) ;

' );

(n 1 ) ) ) ;

&

'

Exemplo

Podemos al ular o valor espe ial no MATLAB (eps ), menor valor que se pode adi ionar a um
nmero tal que o resultado da soma seja maior do que o nmero ini ial, utilizando pre iso nita.

1
2
3
4
5
6
7
8

num = 0 ;
EPS = 1 ;
while (1+EPS)>1
EPS=EPS / 2 ;
num = num + 1 ;

end

num = num 1
EPS = 2 EPS

&

A ionando este s ript na janela de omandos, obtm-se o seguinte resultado:

>> exemplo_while2
num =
52
EPS =
2 . 2 2 0 4 4 6 0 4 9 2 5 0 3 1 3e 016
O valor de EPS al ulado o mesmo de eps, pre iso do MATLAB. Neste l ulo, num = 52 o nmero de
vezes que o valor EPS foi dividido por 2.
53

6.4. PROGRAMA O EM MATLAB

CAPTULO 6.

ARQUIVOS M

6.4.3.5 Laos aninhados


Podemos utilizar laos aninhados (nested). Para demonstrar o uso de um lao dentro de outro vejamos o
exemplo abaixo, que tem omo entrada uma matriz ou vetor e retorna, na sada, o maior elemento da matriz,
informando a linha e oluna em que este elemento se en ontra.

Exemplo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

'

x = input ( ' Entre om uma m a t r i x / v e t o r :


[m n = s i z e ( x ) ;
xmax = x ( 1 , 1 ) ;
l i n h a =1; o l u n a =1;
for k = 1 :m
for l = 1 : n
i f x ( k , l ) > xmax
xmax = x ( k , l ) ;
linha = k ;
oluna = l ;

end

end

%f i m

%f i m

do

do
for

' );

if
om

end %f i m do f o r om k
disp ( [ 'O maior e l e m e n t o ' num2str ( xmax ) ' , p o s i i o n a d o
num2str ( l i n h a ) ' e o l u n a ' num2str ( o l u n a ) )

na l i n h a

'

...

&

6.4.4 Funes MATLAB


No MATLAB possvel riar funes a partir de outras pr-existentes. Arquivos om funes no devem
onter outro digo a no ser o da funo desejada e de possveis subfunes. Funes podem ter N variveis
de entrada e M variveis de sada. Os valores de N e M podem ser nulos, isto , a funo pode no re eber
dados de entrada ou mesmo no produzir uma varivel omo sada, dependendo da utilidade espe  a desta
funo.
A estrutura bsi a de uma funo mostrada abaixo:

fun tion

[ arg_out1 , arg_out2 ,

% Comentrios
% Mais

que

expliquem

. . . = nome_da_fun ao ( arg_in1 , arg_in2 ,


funo

bem omo

seus

...)

argumentos

omentrios

Cdigo e x e u t v e l
O exemplo abaixo al ula a distn ia entre dois pontos no espao artesiano de duas dimenses.

Exemplo

1
2
3
4
5

'

fun tion

d i s t = d i s t a n i a 2 d ( x1 , y1 , x2 , y2 )

%C a l u l a

%em d u a s

dimenses .

dist =

&

distn ia

sqrt ( ( x1

entre

dois

pontos

( X1 , Y1 )

x2 )^2 + ( y1 y2 ) ^ 2 ) ;
54

$
e

( X2 , Y2 )

CAPTULO 6.

ARQUIVOS M

6.4. PROGRAMA O EM MATLAB

Para se invo ar a funo a ima, o arquivo em que ela est ontida deve ter o mesmo nome da funo. Neste
aso, o arquivo distan ia2d.m .
>> d i s t a n i a 2 d ( 0 , 0 , 3 , 4 )
ans =
5
Caso o arquivo fosse dado ao arquivo da funo outro nome, omo distan ia.m, por exemplo, seria ne essrio
digitar distan ia(0,0,3,4) para invo ar a funo riada. Ou seja, omum salvar o arquivo da prin ipal funo
om o nome da prpria, para evitar possveis onfuses ao invo -la. Pode-se tambm riar um s ript que
invoque a funo, desde que os arquivos do s ript e da funo estejam, ambos, no aminho de bus a do
MATLAB.
Os omentrios adi ionados logo abaixo da denio da funo so importantes pois so a fonte de ajuda
para a dada funo no ambiente do MATLAB, omo mostra o omando abaixo:
>> help d i s t a n i a 2 d
Cal ula a distn ia
em duas d i m e n s e s .

e n t r e d o i s p o n t o s ( X1 , Y1) e ( X2 , Y2)

Temos abaixo outro exemplo de funo. Esta tem omo argumentos de entrada oordenadas artesianas e
tem omo sada as oordenadas polares dos dados de entrada.

Exemplo

1
2
3
4
5
6

'

fun tion

[ r , theta = re t2polar (x , y)

% Converte

oordenadas

% oordenadas
% vetores

polares .

a r t e s i a n a s em
Fun io n a

omo a r g u m e n t o s

de

r = sqrt ( x . ^ 2 + y . ^ 2 ) ;
t h e t a = 180/ pi
atan2 ( y , x ) ;

tambm om

entrada .

&

>> [ r , t h e t a = r e t 2 p o l a r ( [ 1 2 , [ 1 2 )
r =
1 . 4 1 4 2 1 3 5 6 2 3 7 3 0 9 5 e +000
2 . 8 2 8 4 2 7 1 2 4 7 4 6 1 9 0 e +000
theta =
45
45

6.4.4.1 Passagem por valor


O MATLAB fun iona om passagem por valor, isso signi a que enquanto a funo estiver sendo exe utada,
os valores das variveis so alterados, mas quando o programa volta para a funo que passou os valores, as
mesmas retornam ao valor original.

Exemplo

1
2
3
4
5
6

'

fun tion out = exemplo_passagem ( a , b )


f p r i n t f ( ' \n Exemplo d u r a n t e : a= %f e

b=%f %f \n ' , a , b ) ;
a = b (1)+2 a ;
b = a. b;
out = a + b ( 1 ) ;
f p r i n t f ( ' \n Exemplo d u r a n t e : a = %f e b = %f %f \n ' , a , b ) ;

&

55

6.4. PROGRAMA O EM MATLAB

CAPTULO 6.

ARQUIVOS M

S ript

1
2
3
4
5

'

&

a = 2; b = [6 4 ;
f p r i n t f ( ' \ nExemplo a n t e s : a = %f , b = %f %f \n ' , a , b ) ;
out = exemplo_passagem ( a , b ) ;
f p r i n t f ( ' \ nExemplo d e p o i s a= %f b =%f %f \n ' , a , b ) ;
f p r i n t f ( ' \ nExemplo d e p o i s : out %f \n ' , out ) ;

6.4.4.2 Argumentos op ionais

possvel riar funes sobre arregadas no MATLAB. Elas podem ter vrias variveis de entrada e sada.
Para isso pre isaremos das seguintes funes.

nargin

funo;

 funo retorna o numero de argumentos de entrada utilizados pelo usurio na hamada da

nargout

 Essa funo retorna o nmero de argumentos utilizados na hamada funo;


 Essa funo retorna uma mensagem de erro se uma funo for

narg hk(min_arg,max_arg,narg)

hamada om muitos ou pou os argumentos;


error

 Exibe mensagem de erro e interrompe a exe uo da funo que o produziu;


 Exibe mensagem de aviso e ontinua a exe uo da funo. Essa funo utilizada quando

warning

os erros de argumentos no so fatais e a exe uo pode ontinuar;

Essa funo retorna o nome atual da varivel que orresponde a um nmero de argumento
em parti ular.

inputname

O exemplo abaixo veri a a quantidade de argumentos passado para a funo polar_value e, aso o nmero
de argumentos seja maior do que 2 ou menor do que 1, esta retorna um erro. Para o aso em que h
apenas um argumento de entrada, atribudo o valor 0 para y. Caso apenas um argumento de sada esteja
sendo requerido, apenas a magnitude (mag ) retornada. Ao se requerer dois argumentos de sada, alm da
magnitude, o ngulo tambm forne ido.

1
2
3
4
5
6
7
8
9
10
11
12
13
14

'

fun tion [ mag , angle = p o l a r _ v a l u e ( x , y )


narg hk ( 1 , 2 , nargin ) ;
error ( msg ) ;
i f nargin < 2

msg =

end
if x
end

y =0;

==0 && y==0


msg = ' Os v a l o r e s s o n u l o s ' ;
warning ( msg ) ;

mag = sqrt ( x . ^ 2 + y . ^ 2 ) ;
i f nargout == 2
angle = atan2 ( y , x ) 1 8 0 / pi ;
end

&

56

CAPTULO 6.

ARQUIVOS M

6.4. PROGRAMA O EM MATLAB

6.4.4.3 Funes de funes

x = eval(`sin(pi/4)')
x = feval(`sin',pi/4)

 Exe uta a string omo se ela tivesse sido digitada na linha de omandos;
 Exe uta a funo passada omo primeiro argumento, sendo passado omo

parmetro o segundo argumento de feval


fzero(` os',[0 pi)

 En ontra o zero da funo no intervalo que foi passado omo segundo argumento;

6.4.4.4 Funes private


Dentro de algum diretrio no qual vo esteja armazenado arquivos .m vo pode riar um diretrio hamado
private. Todo arquivo .m ou funo salvos dentro de private s podem ser a essados por arquivos ou funes
no diretrio pai. Isto torna possvel a existn ia de funes om o mesmo nome.

6.4.4.5 Funes e subfunes


Pode-se riar funes que ne essitem de subfunes. Para sua ompleta operao ne essrio que hamem
outras funes. Veja a funo mystats, que re ebe omo entrada um vetor de nmeros e al ula a mdia e o
desvio padro destes dados.

1
2
3
4
5
6
7

'

fun tion [ mean , s t d e v = m y s t a t s ( x )


length ( x ) ;
mean = avg ( x , n ) ;
s t d e v = sqrt ( sum ( ( xavg ( x , n ) ) . ^ 2 ) / n ) ;
n =

fun tion mean = avg ( x , n )


mean = sum( x ) / n ;

&

Repare que a funo mystats utiliza a funo mean internamente. Ambas funes esto no mesmo arquivo.

6.4.4.6 Fun tion handle


Chama-se de ha ndle de uma funo um valor do MATLAB que promove meios de se hamar uma funo
indiretamente. Pode-se passar o handle de uma funo para se hamar outras funes. Ressalta-se que o
handle um dos tipos de dados do MATLAB.
Para se riar um handle de uma funo, usa-se a seguinte sintaxe:
h a n d l e = ( l i s t a _ d e _ a r g u m e n t o s ) funo_annima
Como exemplo, podemos fazer uma funo annima que al ula o quadrado de um dado nmero:
s q r = ( x ) x . ^ 2 ;
Para se utilizar a funo, faz-se:
s q r = ( x ) x . ^ 2 ; s q r = ( x ) x . ^ 2
sqr =
( x ) x . ^ 2
>> a = s q r ( 3 )
a =
9
57

6.4. PROGRAMA O EM MATLAB

CAPTULO 6.

ARQUIVOS M

Como sqr agora um handle, podemos pass-lo omo argumento para outras funes.
Como exemplo a funo quad que al ula a integral numri a pelo mtodo da quadratura, pode ser hamada
neste aso do seguinte modo:
>>

ans

quad ( s q r

, 0 , 1)
=
3 . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3e 001

6.4.5 Variveis globais


Muitas vezes faz-se ne essrio o uso de uma mesma varivel em mais de uma funo ou s ript. Um modo
de se lidar om isso utilizando variveis globais, as quais  am em um espao da memria que pode ser
a essado por qualquer funo que de lare esta varivel.

Exemplo

1
2
3
4
5
6
7

'

fun tion

ti 2

Start

TIC

TIC ;

prints

See

$
a

stopwat h

any

the

timer .

s t u f f ; TOC

time

required .

a l s o : TOC, CLOCK.

global TICTOC
TICTOC = lo k ;

&

Exemplo

1
2
3
4
5
6
7
8
9
10
11

'

fun tion

t = to 2

TOC Read

TOC p r i n t s

t = TOC;

See

also :

global TICTOC
i f nargout < 1
else

end

the

stopwat h

timer .

the

elapsed

time

sin e

TIC was

saves

elapsed

time

in

does

t ,

not

used .
print .

TIC , ETIME .

elapsed_time =
t =

etime ( lo k ,

etime ( lo k ,

TICTOC)

TICTOC ) ;

&

6.4.6 Variveis persistentes


So variveis que perduram entre uma hamada de funo, ou seja a mesma funo ao utiliz-las levantar
o valor previamente salvo.
58

CAPTULO 6.

ARQUIVOS M

6.4. PROGRAMA O EM MATLAB

Exemplo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

'

fun tion

find_file ( f i l e )
persistent lastDir

i f isempty ( l a s t D i r )
else
end

prompt = ' Entre om o d i r e t r i o :

prompt = [ ' Entre om o d i r e t r i o

response =

if

input ( prompt ,

';
[ ' lastDir

' :

' ;

's ' );

~isempty ( r e s p o n s e )
dirName = r e s p o n s e ;

else
end

dirName = l a s t D i r ;

dir ( s t r a t ( dirName ,

f i l e ))

l a s t D i r = dirName ;

&

6.4.7 Estruturas
Assim omo em outras linguagens de programao, possvel riar estruturas no MATLAB. So muito teis
pois podem armazenar diferentes tipos de dados no mesmo lo al.
A sintaxe bsi a para a riao de uma estrutura no MATLAB mostrada abaixo:
e s t r u t u r a = s t r u t ( ' ampo1 ' , v a l o r 1 ,

' ampo2 ' , v a l o r 2 ,

...)

Os valores podem ser vetores, lulas, strings, nmeros e et .

a r r o = s t r u t ( ' mar a ' , { ' f i a t ' , ' f o r d ' } ,

' poten ia ' , [100 2 0 0 ) ;

>> a r r o
arro =
1 x2 s t r u t a r r a y w i t h f i e l d s :
mar a
poten ia
>> a r r o ( 1 )
ans =
mar a : ' f i a t '
poten ia : [100 200
>> a r r o ( 1 ) . p o t e n i a ( 2 )
ans =
200
Similares de erto modo s estruturas, h tambm as lulas. Para maior entendimento destas, re omenda-se
a leitura da Ajuda do MATLAB no tema ell.

59

6.4. PROGRAMA O EM MATLAB

CAPTULO 6.

ARQUIVOS M

6.4.8 Funes de manipulao de arquivos


Na resoluo de problemas prti os, faz-se, muitas vezes, ne essrio importar dados que venham de arquivos
externos, bem omo exportar resultados obtidos para que estes possam ser analisados em outras ferramentas
posteriormente. Visando introduzir o leitor a algumas situaes om estas ne essidades, sero apresentadas
algumas funes do MATLAB que trabalham om arquivos externos. Para um entendimento mais renado
e detalhado, re omenda-se a leitura da Ajuda da toolbox intitulada de Data A quisition.

6.4.9 Importando dados


H vrios modos no MATLAB para se importar dados de outros arquivos. O modo mais simples, porm nem
sempre o mais e iente, manual. Basta ir em
e sele ionar o arquivo do qual deseja-se
extrair os dados. Os formatos podem ser os mais variados, desde simples arquivos de texto .txt, a tabelas
do Ex el, guras, vdeos e outros. A gura 6.4 mostra o aso em que uma tabela do Ex el foi importada via
o atalho.

File  Import Data

Figura 6.4: Dilogo Import Wizard


Para apli aes mais simples, pode-se utilizar este modo de importar arquivos, j que aps sele ionar as
olunas (neste aso de tabela), estas j so salvas omo variveis na rea de trabalho do MATLAB. Para
situaes em que ne essrio importar dados de vrios arquivos, este modo manual no mais nos serve.
Para o aso da tabela do Ex el, seria possvel utilizar a funo xlsread, que l tabelas na extenso

xls .

Suponhamos agora que temos um arquivo de texto, om nome de alpha_1.txt, om as seguintes informaes
ilustradas na gura 6.5.

Nota-se que este arquivo possui 5 olunas om 12 valores numri os ada. Como pro eder para adquirir
todos estes dados numri os do arquivo externo, suprimindo as 3 linhas de abealho? O MATLAB ofere e
algumas funes que podem realizar estas tarefas. Ser utilizada, nesta apostila, a funo textread. O leitor
interessado pode e deve pro urar por outras funes que podem possivelmente atender a mesma tarefa de
modo mais otimizado.
60

CAPTULO 6.

ARQUIVOS M

6.4. PROGRAMA O EM MATLAB

Figura 6.5: Arquivo de texto om dados


Funo t e x t r e a d :
[ V a r i v e i s = t e x t r e a d ( ' nome_do_arquivo ' , ' formato ' )
[ V a r i v e i s = t e x t r e a d ( . . . , ' p a r m e t r o s ' , ' v a l o r e s ' , . . . )
Para este aso, a sintaxe orreta para utilizar esta funo, om os parmetros desejados, seria:
[ p s i tth tth_delta i_breite i _ i n t e n s i t y = . . .
t e x t r e a d ( ' alpha_1 . t x t ' , '%f %f %f %f %f ' , . . .
' delimiter ' , ' ' , ' headerlines ' , 3);
Segue a expli ao:

So 5 olunas, ada uma delas ontendo diferentes informaes, assim sendo, faz-se ne essrio salvar

ada oluna omo uma diferente varivel. Isto apresentado do lado esquerdo da linha de programao,
em que se atribui a ada nome de varivel a respe tiva oluna do arquivo;

O formato de todos os dados no arquivo de texto de pontos utuantes, o que representado por %f
no MATLAB. Esta notao similar a outras linguagens de programao;

Para que a funo onsiga separar uma oluna de outra, pre iso espe i ar o delimitador, no aso, o
espao (mostrado na rea 'delimiter', ' ' );

Para que no sejam armazenados dados referentes ao abealho, espe i a-se na funo que h 3 linhas
deste, por meio da rea 'headerlines', 3 ;

A partir do momento em que isto feito, todos os dados que antes estavam no arquivo, agora tambm esto
no MATLAB, na forma de variveis. Para esta funo espe  a, textread, os dados so armazenados em
lulas, uja manipulao em relao a vetores se d, para este aso, de modo igual. Uma vez que os dados
j esto na rea de trabalho do MATLAB, pode-se trabalhar om eles da forma desejada (traar gr os,
efetuar l ulos e et ).
Outras funes para leitura de arquivos no MATLAB so: dlmread, texts an importdata. Todas apresentam
vantagens e desvantagens umas em relao as outras. Uma vantagem da funo textread que no ne essrio
abrir formalmente o arquivo que se deseja extrair informaes por meio da funo fopen.
Novamente ressaltado que h vrias opes e funes no MATLAB para que se trabalhe om dados. Uma
leitura mais aprofundada da Ajuda do programa se faz ne essria para que se obtenha um onhe imento
pleno do assunto.

61

6.4. PROGRAMA O EM MATLAB

CAPTULO 6.

ARQUIVOS M

6.4.10 Exportando dados


Em muitos asos, dados pro essados no MATLAB sero ainda posteriormente pro essados em outros programas. Para estes asos pre iso exportar os arquivos em extenses que possam ser lidas por outros programas.
Assim omo na linguagem C, no MATLAB a funo fprintf pode tanto imprimir um texto na tela do usurio
quanto num arquivo. Como estamos interessados em exportar dados, trabalharemos na segunda possibilidade
desta funo.
Suponhamos que temos duas variveis no MATLAB, t, om valores de tempo, e V om tenses num apa itor
para os dados tempos, de modo que queremos exportar estes dados para um arquivo de texto om duas
olunas, ada uma delas om uma das respe tivas grandezas.
t
R
C
V

=
=
=
=

0:0.001:0.1;
1 0 0 0 ; %r e s i s t n i a d e 1Kohms
10 e 6; % a p a i t n i a d e 10 mi roF
1 exp( t / (R C ) ) ;

O s ript a ima gera os valores da tenso e do tempo para a situao dada. Para exportar os dados para
um arquivo, pre iso ini ialmente abrir este arquivo no MATLAB. Para tal, utiliza-se a funo fopen. Esta
funo pode trabalhar om um arquivo pr-existente ou mesmo riar um novo.
fid =

fopen ( ' t e n s o e s . t x t

',

' wt ' ) ;

O omando a ima faz om que o identi ador de abertura de um arquivo hamado tensoes.txt seja armazenado
na varivel d. O arquivo foi aberto no modo `wt', que permite que se es reva no mesmo, no formato de
texto. Utilizando este parmetro, aso exista um texto anterior no arquivo, este ser sobres rito. Para no
sobres rever um arquivo, mas sim adi ionar novos dados ao nal do mesmo, pode-se utilizar o parmetro
`at'. O parmetro `t' em ambos os asos indi a que se es rever no formato de texto, o que importante,
pois alguns programas no operam orretamente aso isto no seja expl ito no arquivo utilizado.
Uma vez riado o identi ador de abertuda do arquivo, podemos nele es rever. A funo fprintf fun iona na
seguinte sintaxe:

fprintf ( identifi ador_do_arquivo ,

formato ,

variveis ,

...);

Para o nosso aso, podemos exportar os dados da seguinte forma:

f p r i n t f ( f i d , ' tempo
for i = 1 : length ( t )
f p r i n t f ( f i d , '%f
end
f lose ( ' a l l ' ) ;

t e n s o \n ' ) ;
%f \n ' , t ( i ) , V( i ) ) ;

importante en errar o arquivo externo no qual se trabalha no MATLAB por meio da funo f lose para se
evitar de es rever ou mesmo sobres rever informaes a identalmente no arquivo.
A funo fprintf pode ser melhor utilizada, es olhendo-se adequadamente as ags que melhor se enquadram
para exportar os dados, formatando-os de a ordo om a ne essidade. Para maior entendimento, re omenda-se
a leitura do arquivo de ajuda desta funo.
H outras funes para que se exporte dados do MATLAB. Dentre elas, ita-se: dlmread svwrite e outras.
Embora tenhamos trabalhado apenas om arquivos de texto, o MATLAB permite que se importe sons,
imagens, exporte guras (funo print ) e outros.

62

CAPTULO 6.

ARQUIVOS M

6.4. PROGRAMA O EM MATLAB

Cdigo Completo

1
2
3
4
5
6
7
8
9
10
11
12

'
t
R
C
V

=
=
=
=

0:0.001:0.1;
1 0 0 0 ; %r e s i s t n i a d e 1Kohms
10 e 6; % a p a i t n i a d e 10 mi roF
1 exp( t / (R C ) ) ;

f i d = fopen ( ' t e n s o e s . t x t ' , ' wt ' ) ;


f p r i n t f ( f i d , ' tempo t e n s o \n ' ) ;
%f o r

i = 1: length ( t )

f p r i n t f ( f i d , '% f %f

\n ' ,

t ( i ) , V( i ) ) ;

%e n d

fprintf ( fid
f lose ( ' a l l

&

, '%f %f \n ' , t , V)
' );

6.4.11 Depurao de erros


Ao se fazer programas longos, omum que existam erros de sintaxe ou de outros tipos, muitas vezes no
to fa ilmente en ontrados. Felizmente o MATLAB possui duas ferramentas que auxiliam o programador a
en ontrar problemas.

A primeira delas a prpria mensagem de erro na janela de omando do MATLAB. Esta mensagem mostra
o arquivo, a linha e a oluna em que o erro o orreu, alm de itar brevemente qual o possvel erro. A gura
6.6 ilustra um aso em que um erro o orreu:

Figura 6.6: Erro na funo exemplo_exportar


Nesta gura, pode-se observar que o erro foi en ontrado na linha 4 do arquivo exemplo_exportar.m, devido
a parnteses ou ol hetes no devidamente fe hados.
A segunda ferramenta de depurao de erros a aba Debug no editor de arquivos
6.7.

.m,

mostrada na gura

No editor, possvel mar ar os pontos de parada do programa (breakpoints ). O programa, que roda de forma
linear verti al, para em ada um dos pontos es olhidos (o que pode ser feito li ando-se na linha em que se
deseja parar e pressionando F12 ou mesmo li ando no anto esquerdo, ao lado dos nmeros das respe tivas
linhas, de modo que estas tenham a mar ao de um r ulo vermelho). O programa s vai de um breakpoint
para o outro ao se pressionar uma te la. Durante o pro esso de depurao entre estes pontos, possvel
des obrir o valor de ada varivel que j foi ini ializada ou trabalhada. Para tal, basta passar o mouse sobre
uma determinada varivel e ento seus valores sero mostrados ao lado. possvel tambm visualiz-las
melhor no Workspa e do MATLAB, j que as variveis utilizadas na funo l apare em durante a depurao
(e somente nesta etapa).
63

6.4. PROGRAMA O EM MATLAB

CAPTULO 6.

ARQUIVOS M

Figura 6.7: Depurador


Caso o depurador en ontre algum erro, o programa ser en errado e uma mensagem de erro apare er na tela
da janela de omando do MATLAB. Desta forma, pode-se inserir vrios breakpoints ao longo do programa,
de tal modo que pode-se saber entre quais blo os en ontra-se os possveis erros.

64

Captulo

Interfa es Gr as
7.1 Construindo interfa es gr as om o MATLAB
7.1.1 Introduo
A interfa e gr a um omponente essen ial de diversas apli aes de software. Ela propor iona ao usurio
uma maior fa ilidade na anlise de dados e gr os, na interpretao de resultados e na utilizao das
diversas fun ionalidades do apli ativo. Alm disso, possibilita que o programa seja interativo, no sentido de
se terem entradas e sadas de dados em dilogo om o usurio. Toda a estrutura de digos fonte omitida,
transpare endo apenas a apli abilidade da ferramenta.
A onstruo de um apli ativo que possui uma interfa e gr a segue as seguintes etapas:

Modelagem :

Programao de ompenentes :

trata-se da on epo, propriamente dita, da interfa e gr a. Diagramas e representaes


gr as da interfa e podem ser elaborados para auxiliar o desenvolvedor nesta fase do projeto.

refere-se ao posi ionamento e integrao dos diversos elementos gr os


que ompe a interfa e gr a. Deve-se onsiderar que toda a anlise de requisitos, planejamento e
modelagem tenha sido efetuada.
Programao de fun ionalidades :

refere-se programao das funes que sero exe utadas por ada

elemento gr o.

O mdulo do MATLAB responsvel pela interfa e gr a o GUIDE (Graphi User Interfa e Design Environment). Este mdulo ofere e ao desenvolvedor a possibilidade de se programar a interfa e gr a om um
alto grau de abstrao, permitindo a manipulao visual dos omponentes da interfa e e de suas propriedades.
Para a essar o GUIDE basta digitar guide na janela de omandos:
>> g u i d e
ou li ar no one GUIDE da barra de ferramentas (7.1).
Aps este omando, ser aberta a janela mostrada na gura 7.2.
Deve-se es olher entre riar um novo projeto ou abrir um projeto existente. Para riar um projeto em bran o
deve-se es olher a opo Blank GUI.

7.1. CONSTRUINDO INTERFACES

CAPTULO 7.

INTERFACES GRFICAS

Figura 7.1: A essando o GUIDE pela barra de ferramentas

Figura 7.2: Assistente para riao de interfa es gr as do GUIDE

66

CAPTULO 7.

INTERFACES GRFICAS

7.1.

CONSTRUINDO INTERFACES

Figura 7.3: Ambiente de desenvolvimento

7.1.2 Programando a interfa e


Quando se opta por ini iar um novo projeto, ser aberta a janela prin ipal do ambiente de desenvolvimento
(gura 7.3).
A barra de Menus omposta por:

File : Permite, dentre outros, riar um novo projeto, abrir um projeto existente, salvar e fe har o arquivo
existente;
Edit :

Contm as opes para refazer e desfazer aes, opiar, olar, re ortar, sele ionar e dupli ar aes
ou objetos que esto ontidos na rea de edio;
View :

Permite abrir o editor de propriedades e funes e abrir o editor de texto (editor de m-les );

Layout :

Contm opes que auxiliam no posi ionamento dos objetos;

Tools : Permite a exe uo do programa, o alinhamento de objetos, a adio de rguas e grades na


rea de edio, a insero de menus no programa, a asso iao da te la TAB aos elementos gr os e
a ongurao dos m-les do programa. Este menu ser abordado novamente no futuro;
Help :

Contm informaes sobre o ambiente de desenvolvimento.

A barra de ferramentas, lo alizada abaixo da barra de menus, ontm atalhos para as opes destes, que
permitem maior agilidade no pro esso de desenvolvimento.
esquerda da rea de edio, en ontra-se uma barra de ferramentas que ontm os elementos gr os
utilizados na onstruo das interfa es. Esta barra de ferramentas est desta ada na gura 7.4.
As funes asso iadas a ada elemento so:
67

7.1. CONSTRUINDO INTERFACES

CAPTULO 7.

INTERFACES GRFICAS

Figura 7.4: Barra de ferramentas

Push button :

Boto de a ionamento.

Radio button :
Edit text :
Slider :

Boto para edio de texto.

Boto utilizado omo barra de rolagem.

List Box :
Axes :

Boto de es olha de opo.

Caixa de lista de opes.

Eixos oordenados.

Toggle button :

Boto para ongurao de opo.

Che k box :

Boto de opo sim/no.

Stati text :

Caixa de texto estti o.

Frame :

Quadro liso, normalmente usado om fundo para agrupar omponents.

Popup menu :

Lista de opes.

A utilizao de ada elemento gr o se d da seguinte maneira:


1. Cli ar sobre o elemento na barra de ferramentas;
2. Cli ar sobre a rea de trabalho;
A gura 7.5 mostra alguns elementos gr os, posi ionados na rea de trabalho.

7.1.3 Property inspe tor


Cli ando duas vezes sobre um elemento gr o lo alizado na rea de trabalho, ser aberta uma janela que
ontm as propriedades do objeto. Estas propriedades podem ser alteradas na prpria rea de trabalho ou
diretamente o digo fonte da interfa e.
A gura 7.6 apresenta o Property Inspe tor para uma aixa de texto estti a.
As prin ipais propriedades de um objeto gr o so:

CALLBACK :

Atravs desta propriedade possvel denir uma funo que ser exe utada quando
o orrer um evento asso iado ao elemento gr o.
68

CAPTULO 7.

INTERFACES GRFICAS

7.1.

CONSTRUINDO INTERFACES

Figura 7.5: Alguns elementos gr os posi ionados na rea de trabalho

Figura 7.6: Property Inspe tor

69

7.1. CONSTRUINDO INTERFACES

CAPTULO 7.

INTERFACES GRFICAS

TAG :

o nome do elemento gr o. Esta propriedade possui grande importn ia, pois o nome do
objeto gr o utilizado em vrias funes.

BACKGROUNDCOLOR :
ENABLE :

Dene-se a or de fundo do objeto.

Habilita ou desabilita um objeto que ser utilizado.

FONTSIZE :

Es olhe o tamanho da fonte do texto es rito no objeto.

FONTWEIGHT :

Es olhe-se o estilo da fonte (normal, negrito, itli o) do texto a ser es rito.

FOREGROUNDCOLOR :

Dene-se a or do texto que o objeto ontm.

LISTBOXTOP :

Quando se utiliza o elemento gr o  List Box , esta propriedade permite denir o
nmero mximo e mnimo de opes que podero ser sele ionadas.
POSITION : Lo al onde so denidos o tamanho (altura e largura) e a posio ( oordenadas x e y) do
objeto. A origem do sistema de oordenadas o anto inferior esquerdo da rea de trabalho.
STRING :

o texto que ser es rito no ampo do objeto.

STYLE : Neste lo al pode-se mudar a fun ionalidade do objeto para qualquer outra das mostradas na
barra de ferramentas. Um boto pode virar um frame, por exemplo.
TOOLTIPSTRING :

Dene-se um texto que deve apare er quando o ursor do mouse se posi ionar
sobre o objeto. Este ampo poder onter um resumo da funo exe utada pelo elemento gr o.

VISIBLE :

Pode deixar o objeto visvel ou invisvel. Quando se li a duas vezes sobre a rea de trabalho,
veri a-se que as propriedades referentes janela apare ero no Property Inspe tor. As prin ipais so:

MENUBAR : Pode-se habilitar o menu do MATLAB que prprio para guras. Nele j esto implementadas funes omo zoom e export.
FILENAME :
NAME :

possvel alterar o nome do arquivo, bem omo a lo alizao do mesmo no omputador.

Neste ampo denido o nome da janela. o nome que apare er no topo da janela.

PAPERSIZE :

Dene-se o tamanho da janela.

RESIZE :

Permite que a janela tenha a opo de ser maximizada, independente do tamanho original
estabele ido no omando anterior. Caso esteja desabilitado, teremos a opo maximizar desabilitada.

7.1.4 Menu

tools

O Menu  Tools  possui outras opes que ajudam na onstruo das interfa es:

ALIGN OBJECTS : Permite alinhar os elementos gr os que ompe a janela durante o pro esso da
implementao. Deve-se sele ionar os objetos a serem alinhados e ajustar os parmetros de a ordo om
a ne essidade.
MENU EDITOR : Permite a riao de menus na interfa e gr a. Para um novo menu deve-se pro eder
da seguinte maneira:

1. Cli ar em New Menu


2. Para adi ionar um item ao menu, deve-se li ar em New Menu Item.
Ao sele ionar um item do menu, observa-se que suas propriedades apare em no lado direito da tela. As
prin ipais so:
70

CAPTULO 7.

INTERFACES GRFICAS

7.1.

CONSTRUINDO INTERFACES

Figura 7.7: Alinhamento de elementos gr os

Figura 7.8: Editor de menus

71

7.2. PROGRAMANDO FUNCIONALIDADES

CAPTULO 7.

INTERFACES GRFICAS

Figura 7.9: Tab Order Editor


1. Label : texto que  a es rito no elemento durante a exe uo.
2. Tag : Nome do elemento gr o.
3. CallBa k : Funo asso iada ao item do menu.

TAB ORDER EDITOR :

Aps o posi ionamento de todos os elementos gr os na janela, pode-se


ordenar a seqn ia em que eles sero a essados atravs da te la TAB. Para isto, utiliza-se o omando
TAB ORDER EDITOR, ontido na barra de ferramentas. A gura 7.9 apresenta omo se determina a
seqn ia em que sero a essados dois botes.

7.2 Programando as fun ionalidades da interfa e


Aps a modelagem da interfa e, deve-se ini iar a programao das funes que sero exe utadas pelos elementos gr os. Veri a-se que os arquivos riados no GUIDE possuem a extenso .g , sendo que ada
novo projeto salvo possui um m-le asso iado ontendo o digo referente modelagem. Alteraes nesta
parte do digo fonte devem ser realizadas om autela, uma vez que um erro pode omprometer a interfa e
gr a riada.

7.2.1 Funes e

allba ks

Pode-se adi ionar digo ao m-le riado pelo latex por meio das seguintes onstrues:

OPENING FUNCTION :

Quando se adi iona digo a uma opening fun tion observa-se que ele
exe utado antes da GUI ( interfa e gr a) se tornar visvel para o usurio. Ou seja, por meio desta
onstruo pode-se realizar um pr-pro essamento para dar mais performan e ao programa. Veri a-se
que possvel a essar todos os elementos gr os utilizados, pois eles so riados antes que esta funo
seja exe utada. Geralmente, a opening fun tion riada automati amente pelo MATLAB e se en ontra
no m-le riado pelo GUIDE.
72

CAPTULO 7.

INTERFACES GRFICAS

7.2.

PROGRAMANDO FUNCIONALIDADES

Figura 7.10: Callba ks asso iadas a um boto

OUTPUT FUNCTION :

Esta funo permite enviar argumentos da GUI para a linha de omandos


quando se en erra a exe uo do programa.
CALLBACKS : Para dar fun ionalidade GUI, deve-se programar as allba ks, que so funes asso iadas aos elementos gr os, exe utadas quando o usurio ativa um objeto espe  o. A gura 7.10
mostra as allba ks asso iadas a um boto.

Os prin ipais tipos de allba k so:

Genri as - Todos os elementos apresentam as seguintes






allba ks :

CreateF n :

funo exe utada quando o objeto riado

DeleteF n :

funo exe utada antes do objeto ser apagado

ButtonDownF n :

funo exe utada quando se li a om o boto esquerdo do mouse em uma regio


denida pelo usurio

Espe  as - Alguns elementos gr os possuem funes adi ionais:




CallBa k : a prin ipal funo utilizada na programao da interfa e gr a. Ela exe utada
quando um determinado objeto se torna ativo.

KeyPressF n :

ResizeF n :

O MATLAB exe uta esta funo quando o usurio pressiona um onjunto de te las
que esto asso iadas a um dado elemento.
funo exe utada quando o orre o redimensionamento da janela.
73

7.2. PROGRAMANDO FUNCIONALIDADES

CAPTULO 7.

INTERFACES GRFICAS

Figura 7.11: Exemplo 1

7.2.2 Estruturas Handles


Um Handle uma estrutura de que implementa funes gr as e de visualizao. Por meio de um handle,
pode-se a essar e modi ar as propriedades de um elemento gr o, a partir das linhas de digo do programa.
Trata-se de uma estrutura fundamental na programao de uma GUI, pois representa o meio de interao
do programa om as informaes que o usurio manipula.
As duas prin ipais funes de manipulao de handles utilizadas so:

get(objeto, propriedade) :

esta funo retorna o valor da propriedade espe i ada por propriedade.

set(objeto, propriedade , valor ) :

esta funo xa o parmetro valor no ampo propriedade de um

determinado objeto.

Exemplo:

Se uma janela ontm uma aixa de texto e queremos a essar o ontedo desta aixa de texto,
pro edemos da seguinte maneiras:

A = get ( handles . tagdoelemento , ' String ' )


onde 'String' representa a propriedade a ser lida pela funo get, que ser armazenada na varivel A.

7.2.3 Exemplos de onstrues gr as


Exemplo 1 : Interfa e gr a ontendo um boto que fe ha a janela quando li ado.
Considere a janela da gura 7.11.
O seguinte digo fonte deve ser adi ionado ao m-le riado pelo Matlab:
f u n t i o n p u s h b u t t o n 1 _ C al lb a k ( hObje t , e v e n t d a t a , h a n d l e s )
l o s e ( ' HelloWorld ' )
A funo lose utilizada para fe har a janela hamada Hello World . Cli ando om o boto direito do
mouse e es olhendo a opo VIEW CALLBACKS => CALLBACK (a gura seguinte indi a o ontedo do
menu), pode-se vizualisar esta parte do digo (gura 7.12).
Observe que o nome da janela deve ser HelloWorld para que o programa fun ione. A alterao deste parmetro
realizada seguindo-se os seguintes passos:
1. Abra o Property Inspe tor referente rea de trabalho;
2. Altere o ampo Name para HelloWorld.
74

CAPTULO 7.

INTERFACES GRFICAS

7.2.

PROGRAMANDO FUNCIONALIDADES

Figura 7.12: Vizualizao da funo Callba k

Figura 7.13: Exemplo 2

75

7.2. PROGRAMANDO FUNCIONALIDADES

CAPTULO 7.

INTERFACES GRFICAS

Exemplo 2: Cal uladora om operaes bsi as


Pode-se onstruir uma al uladora om o modelo da gura 7.13.
O digo fonte orrespondente exibido a seguir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

'

% Cdigo riado automati amente pelo Matlab


fun tion varargout = programa2( varargin )
gui_Singleton = 1;
gui_State = stru t ( 'gui_Name ' ,
mfilename , . . .
' gui_Singleton ' , gui_Singleton , . . .
' gui_OpeningF n ' , programa2_OpeningF n , . . .
' gui_OutputF n ' , programa2_OutputF n , . . .
' gui_LayoutF n ' , [ , . . .
' gui_Callba k ' , [ ) ;
i f nargin && is har ( varargin {1})
gui_State . gui_Callba k = str2fun ( varargin {1});

end
i f nargout

[ varargout {1: nargout } = gui_mainf n( gui_State , . . .


varargin { : } ) ;

else
end

gui_mainf n( gui_State , varargin { : } ) ;

programa2_OpeningF n( hObje t , eventdata , . . .


handles , varargin )
handles . output = hObje t ;
guidata ( hObje t , handles ) ;

fun tion

varargout = programa2_OutputF n ( hObje t , . . .


eventdata , handles )
varargout {1} = handles . output ;

fun tion

fun tion

edit1_Callba k ( hObje t , eventdata , handles )

fun tion edit1_CreateF n ( hObje t , eventdata , handles )


i f isp && i seq ual ( get ( hObje t , ' Ba kgroundColor ' ) , . . .
get (0 , ' defaultUi ontrolBa kgroundColor ' ))
set ( hObje t , ' Ba kgroundColor ' , ' white ' ) ;
end
fun tion

edit2_Callba k ( hObje t , eventdata , handles )

fun tion edit2_CreateF n ( hObje t , eventdata , handles )


i f isp && i seq ual ( get ( hObje t , ' Ba kgroundColor ' ) , . . .
get (0 , ' defaultUi ontrolBa kgroundColor ' ))
set ( hObje t , ' Ba kgroundColor ' , ' white ' ) ;
end
&

76

CAPTULO 7.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

'

INTERFACES GRFICAS

7.2.

PROGRAMANDO FUNCIONALIDADES

%Continuao : Cdigo que deve ser adi ionado pelo programador


% Funao asso iada ao boto +
fun tion pushbutton1_Callba k ( hObje t , eventdata , handles )
A = str2double ( get ( handles . edit1 , ' String ' ) ) ;
B = str2double ( get ( handles . edit2 , ' String ' ) ) ;
C = A+B;
set ( handles . text1 , ' String ' ,C)

% Funao asso iada ao boto *


fun tion pushbutton2_Callba k ( hObje t , eventdata , handles )
A = str2double ( get ( handles . edit1 , ' String ' ) ) ;
B = str2double ( get ( handles . edit2 , ' String ' ) ) ;
C = A*B;
set ( handles . text1 , ' String ' ,C)
% Funao asso iada ao boto
fun tion pushbutton3_Callba k ( hObje t , eventdata , handles )
A = str2double ( get ( handles . edit1 , ' String ' ) ) ;
B = str2double ( get ( handles . edit2 , ' String ' ) ) ;
C = AB;
set ( handles . text1 , ' String ' ,C)
% Funao asso iada ao boto /
fun tion pushbutton4_Callba k ( hObje t , eventdata , handles )
A = str2double ( get ( handles . edit1 , ' String ' ) ) ;
B = str2double ( get ( handles . edit2 , ' String ' ) ) ;
i f B==0
set ( handles . text1 , ' String ' , 'No ex i ste diviso por zero ' )
else

C = A/B;
set ( handles . text1 , ' String ' ,C)

end
&

77

7.2. PROGRAMANDO FUNCIONALIDADES

CAPTULO 7.

78

INTERFACES GRFICAS

Captulo

Introduo ao Simulink

O Simulink uma ferramenta do MATLAB muito til na modelagem, simulao e anlise de Sistemas
Dinmi os. Esse pa ote ontm funes apli veis a sistemas lineares e no-lineares, modelados de maneira
ontnua e/ou dis reta no tempo.
A fa ilidade em se trabalhar om o Simulink deve-se, dentre outros fatores, possibilidade de onstruo dos
modelos a partir de diagramas de blo os, diretamente na interfa e gr a do programa.
Uma vez denido o modelo, a simulao pode ser realizada om diferentes algoritmos de resoluo, es olhidos
a partir dos menus do SIMULINK ou da linha de omando do MATLAB. Usando os ilos pios (S opes )
ou outros visualizadores, tm-se o resultado gr o da simulao, em tempo de exe uo da mesma. Os
resultados da simulao podem ser exportados para o MATLAB, para posterior anlise ou visualizao.

8.1 Ini iando o Simulink


A modelagem no Simulink feita por meio de uma interfa e gr a intuitiva e f il de usar. Existem duas
maneiras para ini iar o Simulink:

Digitando simulink na linha de omando:


>> s i m u l i n k

Cli ando no one Simulink existente na barra de ferramentas (gura 8.1).

Figura 8.1: Simulink na barra de ferramentas


Ser aberta uma janela om um onjunto de bibliote as que apresentam diversos blo os usados na modelagem
de sistemas (gura 8.2). Cada blo o desempenha uma funo espe  a no sistema modelado.

8.1. INICIANDO O SIMULINK

CAPTULO 8.

SIMULINK

Figura 8.2: Bibliote as de omponentes do Simulink

File  New

Para riar um novo projeto, deve-se li ar no menu


. Ser aberta uma nova janela para onde os
blo os devem ser arrastados, ongurados e ligados uns aos outros para formar os sistemas modelados (gura
8.3).

Figura 8.3: Janela de riao dos modelos

80

CAPTULO 8.

SIMULINK

8.2.

CRIANDO MODELOS NO SIMULINK

8.2 Criando modelos no Simulink


8.2.1 Introduo
A gura 8.4 mostra a ordem dos modelos onstrudos.

Figura 8.4: Sistema bsi o em Simulink


Por meio da onstruo de um modelo simples, possvel entender a lgi a utilizada na riao dos modelos
em geral. Adi ione os seguintes blo os:

Bibliote a Sour e  Onda Senoidal


Bibliote a Sinks 
 Dispositivo de sada
S ope

Analisando os blo os, veri a-se que eles possuem portas lo alizadas esquerda e/ou direita, que permitem
a inter onexo dos blo os do sistema. As portas lo alizadas direita so portas de sada, enquanto as portas
lo alizadas esquerda so portas de entrada. A gura 8.5 ilustra um blo o que possui os dois tipos de portas.

Figura 8.5: Portas de entrada e sada


Para ligar os blo os, deve-se posi ionar o ursor sobre as portas de sada, li ar e arrastar o mouse at uma
porta de entrada. A gura 8.6 representa o sistema.

Figura 8.6: Sistema resultante


Com um lique duplo sobre um blo o, possvel ajustar os parmetros asso iados s funes desempenhadas
pelo mesmo. A gura 8.7 apresenta os parmetros da Onda Senoidal.

Start Simulation

Para ini iar a simulao do sistema, deve-se li ar no boto


ou, alternativamente, a essar
o menu
. Os resultados so apresentados na gura 8.8.

Simulation  Start

81

8.2. CRIANDO MODELOS NO SIMULINK

CAPTULO 8.

SIMULINK

Figura 8.7: Parmetros da Onda Senoidal

Figura 8.8: Resultados da simulao

Nota-se que o parmetro de entrada est em radianos. E, neste exemplo, a entrada o prprio tempo de
simulao.
Agora somaremos 1.5 ao valor da funo en ontrado. Para isso, utiliza-se o blo o

Sum.

Math Operations 

O sistema deve ser ongurado, de tal maneira que ele possua o aspe to da gura 8.9.
82

CAPTULO 8.

SIMULINK

8.3. PRINCIPAIS BLOCOS

Figura 8.9: Oset no Simulink


Para multipli ar o resultado por um nmero, digamos -1. Deve-se a res entar o blo o
(gura 8.10).

 Produ t

Figura 8.10: Blo o

Math Operations

Produ t

8.3 Prin ipais blo os


Conforme observado, Simulink organiza seus blo os em bibliote as de a ordo om a apli ao. As prin ipais
bibliote as so:

A bibliote a Sour es ontm blo os que geram sinais.


A bibliote a Sinks ontm blo os que exibem ou es revem os sinais.
A bibliote a Dis rete ontm blo os que des revem omponentes dis retos no tempo.
A bibliote a Continuous ontm blo os que des revem funes lineares.
A bibliote a de Math ontm blo os que des revem funes matemti as.
83

8.4. CRIANDO UM SUBSISTEMA

CAPTULO 8.

SIMULINK

A bibliote a de Dis ontinuities ontm blo os que des revem funes no-lineares.
A bibliote a Ports & Subsystems ontm blo os que permitem multiplexar e demultiplexar, en-

trada/sada de sinais externos, passar dados a outras partes do modelo, riar subsistemas e exe utar
outras funes.

8.4 Criando um subsistema


Se um modelo aumenta em tamanho e omplexidade, possvel simpli -lo atravs da riao de subsistemas.
Existem duas maneiras para riar um subsistema:

Atravs do blo o Subsystem existente na bibliote a Ports & Subsystems (gura 8.11). Neste aso,
Subsystem

aps a adio do blo o


ne essrio ongurar a funo que o subsistema deve desempenhar
- atravs de um duplo lique, ser aberta uma nova janela para onstruir o diagrama de blo o que
representa a funo do subsistema.

Figura 8.11: Blo o

Subsystem

Agrupar os blo os existentes em um subsistema (gura 8.12). Neste aso, deve-se sele ionar os blo os
que onstituiro o subsistema, in luindo as linhas que sero os pontos de entrada e sada do subsistema.
84

CAPTULO 8.

SIMULINK

8.4. CRIANDO UM SUBSISTEMA

Figura 8.12: Criando um subsistema om blo os existentes

Create Subsystem
Ports & Subsystems

Edit

Aps a seleo dos blo os, utiliza-se a opo


do menu
. Automati amente, o
Simulink ria portas de entrada e sada para o subsistema. possvel adi ionar mais portas utilizando os
blo os
e
da bibliote a
, onforme desta ado na gura 8.13.

Inport Outport

Figura 8.13: Adi ionando portas em um subsistema


85

8.5. ASSOCIANDO FUNES AOS MODELOS E BLOCOS

O menu

CAPTULO 8.

SIMULINK

Format (gura 8.14) possui algumas opes para alterar a apresentao dos blo os em um modelo.

Figura 8.14: Menu

Format do Simulink

8.5 Asso iando funes aos modelos e blo os


Pode-se asso iar aos blo os ou modelos implementados no Simulink um onjunto de omandos do MATLAB
que so exe utados quando os blo os ou modelos esto submetidos a algum evento, ou seja, tem-se a opo
de asso iar funes que so programadas pelo usurio e so exe utadas apenas sobre determinadas ondies.

Primeiramente, deve-se sele ionar o blo o que possuir uma funo asso iada. Ento, utiliza-se a aba Callba ks da opo Blo k Properties do menu Edit, onforme apresentado na gura 8.15. Observe que para
ada funo sele ionada na lista da direita, existe um espao a esquerda para o orpo da funo.

Figura 8.15: Aba


86

Callba ks

CAPTULO 8.

SIMULINK

8.6. SIMULANDO UM MODELO

8.6 Simulando um modelo


Existem duas maneiras para simular um modelo desenvolvido no Simulink, que so apresentadas a seguir.

8.6.1 Simulao a partir dos menus do Simulink


Este mtodo mais simples e interativo om o usurio, pois permite o desenvolvimento e o renamento do
modelo sem a ne essidade de utilizao de um onjunto de omandos e uma sintaxe pr-denida.
Como dito anteriormente, um modelagem no domnio do tempo pode ser representada por uma equao
diferen ial. Quando se simula a partir dos menus do Simulink possvel es olher um mtodo numri o
para soluo das equaes diferen iais, alterar parmetros de simulao tais omo pre iso, in io e m da
simulao sem utilizar omandos do MATLAB.

Ini iando a simulao


Aps a modelagem do sistema, pode-se utilizar o atalho ontido na barra de ferramentas (gura 8.16).

Figura 8.16: Ini iando uma simulao

Alterando os Parmetros de Simulao


possvel ongurar os parmetros de uma simulao atravs da opo
menu Simulation.

Configuration Parameters do

As onguraes mais importantes se en ontram em:

Solver:

ajusta o tempo de in io e m da simulao, alm de parmetros utilizados na soluo de


equaes diferen iais tais omo mtodo, passo de integrao, tolern ia (gura 8.17);
87

8.6. SIMULANDO UM MODELO

CAPTULO 8.

Figura 8.17: Parmetros da simulao:

SIMULINK

Solve

Data Import/Export: manipula as entradas e sadas que a simulao possui em relao ao workspa e
do MATLAB (gura 8.18);

Figura 8.18: Parmetros da simulao:

Sinks

Data Import/Export

To Workspa e

Existe um blo o na bibliote a


hamado
que ria uma varivel no workspa e
destinada ao armazenamento de um onjunto de dados ao qual o blo o est ligado. Atravs das propriedades do blo o pode-se denir os parmetros da varivel a ser riada;
88

CAPTULO 8.

SIMULINK

8.7.

SIMULA O A PARTIR DA LINHA DE COMANDO

Figura 8.19: Blo o

To Workspa e

Diagnosti s: rela ionado om os avisos e erros o orridos durante a simulao.


8.7 Simulao a partir da linha de omando
Pode-se simular um modelo implementado no Simulink atravs da linha de omando do MATLAB ou de
um arquivo M-File. Este mtodo de simulao permite que um parmetro seja alterado vrias vezes e
a simulao seja realizada em loop, permitindo analisar o sistema sobre vrias ondies. Os prin ipais
omandos utilizados esto apresentados a seguir:

Comando Sim: utilizado para simular um sistema modelado. Sua sintaxe :


[ t , x , y = sim ( ' model ' , timespan , o p t i o n s , ut )







model = string que ontm o nome do arquivo do diagrama de blo os;


timespan = durao da simulao, espe i ada da seguinte forma: [in io m;
options = parmetros de simulao, riados a partir do omando simset
ut = entrada externa op ional.
[t,x,y = variveis de retorno da simulao, tais omo tempo e resultado da simulao.

Comando simset: edita parmetros de simulao. Sua sintaxe bsi a :


options = simset ( ' propriedade ' , valor )




propriedade = string que ontm o nome da propriedade;


valor = novo valor a ser atribudo propriedade.

Comando simget: armazena todas as propriedades de um modelo em uma estrutura. Sua sintaxe bsi a
:

s t r u t = s i m g e t ( ' model ' )


89

8.8. ANALISANDO OS RESULTADOS DE UMA SIMULA O

CAPTULO 8.

SIMULINK

model = string que ontm o nome do arquivo do diagrama de blo os;

Comando set_param: modi a parmetros de blo os ou modelos. Sua sintaxe bsi a :


set_param ( ' o b j ' ,

' parmetro1 ' , valor1 ,

' p a r m e t r o2 ' , v a l o r 2 )

obj = diretrio do modelo ou blo o do qual se deseja obter informaes;

parmetro1 = nome do parmetro do blo o que a fonte de informao;

valor1 = valor que o parmetro1 dever assumir aps o omando.

Comando get_param: Pega parmetros de blo os e modelos. Sua sintaxe bsi a :


get_param ( ' o b j ' ,

' parmetro ' )

obj = diretrio do modelo ou blo o do qual se deseja obter informaes;

parmetro = nome do parmetro do blo o que a fonte de informao.

Existem outros omandos denidos pelo MATLAB que so utilizados para simular, onstruir e analisar
sistema modelados no Simulink. Para uma onsulta ompleta, pro ure no Captulo 10 do livro Simulink Dynami System Simulation for Matlab ontido no CD deste urso.

8.8 Analisando os resultados de uma simulao


8.8.1 Utilizao do blo o S ope
O blo o

S ope se en ontra na bibliote a Sinks e destinado a apresentar os sinais obtidos aps a simulao.

Figura 8.20: Blo o

Os prin ipais omandos da barra de ferramentas do blo o

S ope

S ope (veja a gura 8.20) so:

Impresso;
Parmetros: parmetros de apresentao dos resultados (gura 8.21);

: o ajuste automti o da es ala do gr o (gura 8.22).


AutoS ale

90

CAPTULO 8.

SIMULINK

8.8.

ANALISANDO OS RESULTADOS DE UMA SIMULA O

Figura 8.21: Parmetros do blo o

S ope

Figura 8.22: Efeito do parmetro AutoS ale

Dentre os parmetros do blo o

Number of axes :

S ope, podemos desta ar:

utilizado para apresentar mais de um gr o na mesma janela:

Zoom : na barra de ferramentas existem opes para zoom em regio do gr o, zoom no eixo x ou
zoom no eixo y ;

91

8.8. ANALISANDO OS RESULTADOS DE UMA SIMULA O

CAPTULO 8.

SIMULINK

Figura 8.23: Efeito do parmetro Number of Axis

8.8.2 Comuni ando om a Workspa e


Alternativamente, pode-se retornar variveis para o workspa e e utilizar as funes para onstruo de gr os
implementadas no MATLAB para visualizar e analisar os resultados da simulao. Auxiliam neste pro esso
o blo o
da bibliote a
ou a opo
do menu
.

To Workspa e
Configuration Parameters

Sinks

Data Import/Export

92

Format