Você está na página 1de 148
Novembro de 2012 UFJF APOSTILA DE MATLAB PETROBRAS Fernando José Ferreira Pereira João Paulo Ananias
Novembro de 2012
UFJF
APOSTILA DE MATLAB
PETROBRAS
Fernando José Ferreira Pereira
João Paulo Ananias Silva
Jonatas Marques Rodrigues
Karina Lino Miranda de Oliveira
Ricardo Viol dos Santos
Curso Introdutório de Matlab ® PRH – PB14 Este documento foi desenvolvido por bolsistas do

Curso Introdutório de Matlab ® PRH – PB14

Este documento foi desenvolvido por bolsistas do programa PRH-PB14, convênio entre a Universidade Federal de Juiz de Fora e a PETROBRAS, e constituiu-se no material didático auxiliar do curso de Matlab ® por estes ministrado.

Juiz de Fora e a PETROBRAS, e constituiu-se no material didático auxiliar do curso de Matlab
2
2

SUMÁRIO:

SUMÁRIO: Curso Introdutório de Matlab ® 2 PRH – PB14 2 1. Apresentação do MATLAB ®

Curso Introdutório de Matlab ®

2

PRH – PB14

2

1. Apresentação do MATLAB ®

6

1.1. O que é o MATLAB ® ?

6

1.2. Utilidades do MATLAB ®

7

1.3. Visão Geral do MATLAB ®

7

2. Introdução

 

11

2.1.

Operações Aritméticas

11

2.2.

Formato de Exibição

12

2.3.

Funções Matemáticas Elementares

13

2.4.

Help

14

2.5.

Números

Complexos

17

2.6.

Variáveis

em MATLAB ®

20

2.6.1.

Manipulação de Variáveis

22

2.7.

Outros Comandos

23

2.8.

Lista de Exercícios

24

3. Vetores e Matrizes

 

27

3.1.

Entrada

27

3.1.1.

Vetores Sequenciais

28

3.2.

Indexação

30

3.3.

Operações

31

3.3.1.

Transposta

31

3.3.2.

Adição e Subtração

33

3.3.3.

Multiplicação

34

3.3.4.

Exponenciação

37

3.3.4.1.

Potência

 

37

3.3.4.2.

Potência Escalar

38

3.3.5.

Divisão

39

3.3.5.1.

Determinante e Inversa

39

3.3.5.2.

Divisão Matricial à Direita

40

3
3
3.3.5.3. Divisão Matricial à Esquerda 41 3.3.5.4. Divisão Escalar 42 3.4. Lista de Exercícios 43

3.3.5.3. Divisão Matricial à Esquerda

41

3.3.5.4. Divisão Escalar

42

3.4.

Lista de Exercícios

43

4. Manipulação de Vetores e Matrizes

47

4.1.

Funções Matemáticas

47

4.2.

Geração de Matrizes

48

4.2.1.

Utilizando Conceitos de Indexação

48

4.2.2.

Concatenação

51

4.2.3.

Construções Elementares

53

4.3.

Funções Matriciais

54

4.3.1.

Informações Básicas

54

4.3.2.

Manipulação

55

4.3.3.

Informações Diversas

57

4.3.4.

Álgebra Linear

58

4.4.

Resolução de Sistemas Lineares

59

4.4.1.

Método Convencional

59

4.4.2.

Escalonamento

61

4.4.3.

Função solve

62

4.5.

Lista de Exercícios

63

5. Introdução ao Editor (Arquivos “.m”)

67

6. Programação

 

70

6.1.

Function

70

6.1.1.

Sintaxe

 

70

6.2.

Operadores

71

6.2.1. Operadores Relacionais

71

6.2.2. Operadores

Lógicos

72

6.3.

Controle de Fluxo

73

6.3.1.

FOR

 

73

6.3.1.1.

Exercícios resolvidos utilizando o laço FOR

74

6.3.2.

IF-ELSE-END

 

75

6.3.2.1.

Exercícios resolvidos utilizando o condicional IF-ELSE

76

6.3.3.

WHILE

 

77

4
4
  6.3.3.1. Exercícios resolvidos utilizando o comando WHILE 78 6.3.4. SWITCH-CASE 78 6.3.4.1.
 

6.3.3.1.

Exercícios resolvidos utilizando o comando WHILE

78

6.3.4.

SWITCH-CASE

78

6.3.4.1.

Exercícios resolvidos utilizando o comando SWITCH

80

6.4. Comandos Básicos

80

6.5. Lista de Exercícios

82

7.

Gráficos

 

84

7.1.

Gráficos Bidimensionais

84

7.1.1. Plot/Subplot/Fplot

85

7.1.2. Loglog

92

7.1.3. Semilogx

93

7.1.4. Semilogy

95

7.1.5. Polar

96

7.1.6. Bar

97

7.1.7. Hist

99

 

7.1.8. Pie

100

 

7.1.9. Stem/Stairs

102

7.2. Estilo de Linha e Símbolo

103

7.3. Gráficos Tridimensionais

109

7.3.1. Plot3

109

7.3.2. Mesh

110

7.3.3. Bar3/Bar3h

112

7.3.4. Pie3

113

7.4. Menu “Plot Tools and Dock Figure

113

7.5. Lista de Exercícios

116

Agradecimentos

120

Bibliografia

121

ANEXO 1: FORMATOS DE EXIBIÇÃO

122

ANEXO 2: RESPOSTA DOS EXERCÍCIOS

123

LISTA

DE

FIGURAS

146

LISTA

DE

GRÁFICOS

147

LISTA

DE

TABELAS

148

5
5

1. Apresentação do MATLAB ®

1. Apresentação do MATLAB ® O MATLAB ® surgiu na década de 70 em instituições de

O MATLAB ® surgiu na década de 70 em instituições de ensino e pesquisa norte-americanas, University of New Mexico e Stanford University, como um software destinado a cursos de teoria matricial, álgebra linear e análise numérica. Com o passar dos anos este software foi evoluindo com a contribuição e sugestões de inúmeros usuários, se tornando uma ferramenta padrão em cursos de inúmeras áreas do conhecimento.

Hoje mais de um milhão de cientistas e engenheiros no mundo utilizam MATLAB ® , seja para aplicações na indústria tecnológica ou acadêmicas. Isso se deve a grande variedade de aplicações que a plataforma oferece, como processamento de sinais e comunicação, processamento de imagem e vídeo, sistemas de controle, teste e medições nas mais diversas áreas, entre outras.

Para estudantes de Engenharia Elétrica o uso do MATLAB ® é muito amplo, na área de Sistemas de Potência pode-se ressaltar a importância do uso inteligente de matrizes para simular sistemas e a utilização de gráficos sempre que se deseja exibir e analisar resultados.

1.1. O que é o MATLAB ® ?

MATLAB ® (abreviatura de Matrix Laboratory) é uma linguagem e ambiente interativo de alto nível no estudo de computação numérica, visualização e programação, estes aspectos são conhecidos como cálculo numérico. Através do MATLAB ® é possível analisar dados, desenvolver algoritmos e criar modelos.

Seus mecanismos são utilizados pela facilidade de explorar funções já existentes, criar modelos próprios e rapidez na solução. O MATLAB ® interpreta elementos básicos de informação como matrizes de dimensão infinita, sendo assim, sua rapidez de processamento se justifica pela rápida iteração de elementos matriciais.

O mito sobre a dificuldade de se utilizar o MATLAB ® é desfeito comparando-o com outros tipos de linguagem de programação como C/C++ ou Java. É importante salientar que, apesar da facilidade de estudo e uso do MATLAB ® , é necessário manter um uso contínuo do mesmo a fim de firmar os aprendizados, já que a prática é tão importante quanto à teoria.

6
6

1.2. Utilidades do MATLAB ®

1.2. Utilidades do MATLAB ® O MATLAB ® oferece boas opções no estudo de Álgebra Aplicada,

O MATLAB ® oferece boas opções no estudo de Álgebra Aplicada, Processamento de Sinais, Sistemas de Controle, Estatística, entre outras. Porém grande parte das aplicações não se encontra nos comandos principais, ou seja, existem conjuntos de funções designadas para áreas específicas do conhecimento e são chamados de Toolboxes (caixas de ferramentas). A cada versão do MATLAB ® são incrementados novos Toolboxes e seus usos típicos incluem além do cálculo matemático, algoritmos próprios, gráficos apropriados daquela aplicação, e ainda a análise, exploração e visualização de dados.

O MATLAB ® apresenta versões para diversos sistemas operacionais, tais como Windows (versões superiores ao Windows 95), Linux e Macintosh.

Existem duas formas de se trabalhar no MATLAB ® :

1. Execução direta de comandos na área de trabalho, sendo esta forma recomendada para uso de recursos rápidos.

2. Criação de arquivos de comandos, esta recomendada para criação de rotinas e uso de recursos avançados.

1.3. Visão Geral do MATLAB ®

O MATLAB ® apresenta várias janelas de visualização, dentre elas: janela de comandos (Command Window), janela de variáveis (Workspace), janela de exibição de arquivos (Current Folder) e janela com histórico de comandos (Command History).

Normalmente, ao iniciar o programa, elas aparecem na janela inicial, mas podem ser acessadas pelo menu Desktop.Vejamos a janela inicial e seus componentes.

7
7
Figura 1.1 -Janela inicial MATLAB ® . Menu Principal: Comandos de configuração interfaces gráficas já
Figura 1.1 -Janela inicial MATLAB ® . Menu Principal: Comandos de configuração interfaces gráficas já

Figura 1.1 -Janela inicial MATLAB ®.

Menu Principal:

Comandos

de

configuração

interfaces gráficas já conhecidas.

do

ambiente

MATLAB ®

bem

semelhantes

a

já conhecidas. do ambiente MATLAB ® bem semelhantes a Figura 1.2 -Menu principal MATLAB ® .

Figura 1.2 -Menu principal MATLAB ®.

Alguns comandos importantes são: o primeiro item à esquerda para criação de um Script ou M-File, o menu Debug para compilar e rodar arquivos, o menu Help para conseguir ajuda de recursos do MATLAB ® , e o diretório destinado ao armazenamento de arquivos, variáveis, gráficos, entre outros.

Command Window:

Área de trabalho onde são digitados os comandos, realizadas operações e exibidos resultados. A janela de comandos está pronta para uso após a indicação do prompt ">>".

Com as setas para cima e para baixo é possível o usuário recuperar comandos já utilizados (não apenas as do próprio projeto, mas inclusive de dias anteriores).

8
8
Para agilizar a recuperação de um comando específico, basta começar a escrever o mesmo comando

Para agilizar a recuperação de um comando específico, basta começar a escrever o mesmo comando e utilizar as setas para escolher entre comandos previamente utilizados que começam com o texto escrito.

Uma coisa a se destacar é que o MATLAB ® é Case Sensitive, ou seja, letras maiúsculas são diferentes de letras minúsculas. Por exemplo, as variáveis NUM e num são duas variáveis distintas.

Para se inserir comentários, basta usarmos o caracter “%” seguido do texto desejado:

>> %PRH-PB14 - Sistemas Elétricos Industriais

Podemos limpar a janela de comandos pelo comando clc.

Workspace:

Área de exibição das variáveis criadas. Se você clicar com o botão direito sobre a barra de colunas, pode-se escolher quais informações se quer visualizar a respeito das variáveis. Por exemplo: Nome, Valor, Classe, nº de Bytes, entre outros.

exemplo: Nome, Valor, Classe, nº de Bytes, entre outros. Figura 1.3 - Menu Workspace , MATLAB

Figura 1.3 - Menu Workspace, MATLAB ® .

Na barra de ferramentas do Workspace, há as seguintes opções (da esquerda para a direita): Nova Variável – Abrir Variável – Importar Variável – Salvar – Deletar – Relacionar Variável a um Gráfico. Algumas destas opções só serão disponibilizadas no momento que você selecionar uma das variáveis criadas.

Dando um clique duplo em uma das variáveis criadas, você irá visualizar a variável no Editor. Além de poder alterá-la, esta é uma forma de se visualizar as matrizes e vetores criados na forma de tabelas:

as matrizes e vetores criados na forma de tabelas: Figura 1.4 - Exemplo de Visualização de

Figura 1.4 - Exemplo de Visualização de uma matriz pelo Editor.

9
9

Current Folder:

Área

de

exibição

de

arquivos

contidos

no

atual

diretório

selecionado para que os itens sejam salvos).

Command History:

para que os itens sejam salvos). Command History: (diretório Área de armazenamento de todos os comandos

(diretório

Área de armazenamento de todos os comandos executados previamente no MATLAB ® .

10
10

2. Introdução

2. Introdução Neste capítulo serão abordadas as funcionalidades básicas do MATLAB ® , começando pelas

Neste capítulo serão abordadas as funcionalidades básicas do MATLAB ® , começando pelas operações aritméticas básicas, constantes e funções matemáticas elementares e introduzindo o conceito de variáveis e sua manipulação. Além disso, serão apresentados e discutidos alguns comandos úteis para quem está iniciando sua aprendizagem.

2.1. Operações Aritméticas

De

início, iremos apenas trabalhar com números escalares (deixaremos

vetores e matrizes para um momento posterior) e suas operações.

OPERADOR

FUNÇÕES

DESCRIÇÃO

+

plus

Soma

-

minus

Subtração

*

times

Multiplicação

/

mrdivide

Divisão à Direita

\

mldivide

Divisão à Esquerda

^

power

Potência

Tabela 2.1 - Operadores Aritméticos.

Funções são programas configurados para realizar uma determinada tarefa. Para o caso de operações aritméticas, podemos usar os operadores ou as funções para realizar os cálculos que queremos. Considere os exemplos a seguir:

Soma:

Subtração:

>> 3+2

>> 3-2

ans =

ans =

5

1

>> plus(3,2)

>>minus(3,2)

ans =

ans =

5

1

11
11

Multiplicação:

Exponenciação:

>> 3*2

>> 3^2

ans =

ans =

6

9

>> 3*2 >> 3^2 ans = ans = 6 9 >> times(3,2) >> power(3,2) ans =

>> times(3,2)

>> power(3,2)

ans =

ans =

6

Divisãoà Direita:

9

Divisão à Esquerda:

>> 3/2

>> 2\3

ans =

ans =

1.5000

>> mrdivide(3,2)

ans =

1.5000

2.2. Formato de Exibição

1.5000

>> mldivide(2,3)

ans =

1.5000

O formato de exibição dos números é configurado pelo comando format seguido do identificador específico. O Anexo 1 apresenta uma tabela com alguns destes formatos. Iremos ilustrar sua utilização através de algumas constantes matemáticas predefinidas pelo MATLAB ® .

Dentre estas constantes, temos:

CONSTANTE

pi

eps

i

j

VALORES

VALORES

3.141592653589793

3.141592653589793
2.220446049250313e-016

2.220446049250313e-016

0

0

+ 1.0000i

+ 1.0000i

Tabela 2.2 - Constantes Matemáticas.

Em relação à tabela acima, temos que o símbolo “e-016” indica que o número 2.220446049250313 está multiplicando “10 -16 ” e que para definir números complexos, podemos usar as constantes “i” e “j”.

Vamos ver alguns formatos de exibição para estas constantes: SHORT: LONG: >> format short >>

Vamos ver alguns formatos de exibição para estas constantes:

SHORT:

LONG:

>> format short >> pi

>> format long >> pi

ans =

ans =

3.1416

3.141592653589793

>> eps

>> eps

ans =

ans =

2.2204e-016

2.220446049250313e-016

>> i

>> i

ans = 0 + 1.0000i

ans = 0 + 1.000000000000000i

2.3. Funções Matemáticas Elementares

O MATLAB ® nos fornece uma grande variedade de funções matemáticas. Dentre elas, citamos:

NOME

RETORNA

sin, sind, sinh

seno: radianos, graus e hiperbólico

asin, asind, asinh

arco-seno: radianos, graus e hiperbólico

cos, cosd, cosh

cosseno: radianos, graus e hiperbólico

acos, acosd, acosh

arco-cosseno: radianos, graus e hiperbólico

tan, tand, tanh

tangente: radianos, graus e hiperbólico

Tabela 2.3 - Funções Trigonométricas.

NOME

RETORNA

exp(x)

exponencial ( )

expm1(x)

exponencial de x menos ( )

log(x)

logaritmo natural ( ) base

log1p(x)

logaritmo natural de 1 ( )

log2(x)

logaritmo na base 2

log10(x)

logaritmo na base 10

nextpow2(x)

próxima potência de 2, tal que 2

pow2(x)

potência de 2

realpow(x,y)

potência real

sqrt(x)

raiz quadrada

Tabela 2.4 - Funções Exponenciais.

13
13
Queremos calcular seno(30º). Se usarmos apenas sin(30): >> sin(30) ans = -0.98803 Não nos é

Queremos calcular seno(30º). Se usarmos apenas sin(30):

>> sin(30)

ans =

-0.98803

Não nos é fornecido o valor conhecido de 0,5 pois a função sin é usada para calcular seno de valores em radianos. Por exemplo, seno(π/2) é igual a 1:

>> sin(pi/2)

ans =

1

Para calcular seno de valores em graus, usamos a função sind:

>> sind(30)

ans =

0.5

Todas estas funções e outras podem ser vistas diretamente no MATLAB ® . Como? Utilizando o help que será detalhado a seguir.

2.4.

Help

A melhor referência bibliográfica que você irá conseguir sobre o MATLAB ® é o próprio help dele. Por exemplo, em relação às funções, ele fornece informações em relação à utilização, sintaxe e exemplos.

ele fornece informações em relação à utilização, sintaxe e exemplos. Figura 2.1 - Help pelo Function

Figura 2.1 - Help pelo Function Browser.

14
14
Há várias formas de se obter informações das funções desejadas. Você pode apertar Shift+F1 (ou

Há várias formas de se obter informações das funções desejadas. Você pode apertar Shift+F1 (ou ir em Help -> Function Browser) e encontrar a função desejada navegando pelas pastas. Ao parar o mouse em cima de uma das funções, é mostrada uma caixa com um resumo das informações ao lado (Figura 2.1). Um clique duplo escolhe a função e a coloca no Command Window.

Outra possibilidade é ir em Help -> Product Help. Você entrará na janela do Help e pela navegação no canto esquerdo, basta ir em MATLAB -> Functions e procurar a função desejada:

em MATLAB -> Functions e procurar a função desejada: Figura 2.2 - Help Browser. Há a

Figura 2.2 - Help Browser.

Há a possibilidade de consultar o Help diretamente da janela de comandos. Por exemplo, digitando help, será impresso na tela vários tópicos de ajuda:

digitando help , será impresso na tela vários tópicos de ajuda: Figura 2.3 - Trecho da

Figura 2.3 - Trecho da Lista de Tópicos de Help.

15
15

Podemos

ver

que

as

funções

matemáticas

elementares

Podemos ver que as funções matemáticas elementares estão no tópico “ matlab\elfun ”. Podemos visualizar a

estão

no tópico

matlab\elfun”. Podemos visualizar a lista delas pelo comando help elfun:

Podemos visualizar a lista delas pelo comando help elfun : Figura 2.4 - Trecho da Lista

Figura 2.4 - Trecho da Lista de Funções da Biblioteca elfun.

Se queremos as informações sobre a função acos, por exemplo, basta digitarmos help acos: Figura
Se
queremos
as
informações
sobre
a
função
acos,
por
exemplo,
basta
digitarmos help acos:
Figura 2.5 - Informações Disponibilizadas na Janela para aços.
E,
por
fim,
para
informações
mais
detalhadas,
clicamos
no
último
link

apresentado (página de referência do Help Browser) o que nos leva à Figura 2.2.

16
16

2.5. Números Complexos

Teoria de Números Complexos

2.5. Números Complexos Teoria de Números Complexos Vamos fazer uma breve recordação de números complexos. Para

Vamos fazer uma breve recordação de números complexos. Para ilustrar os conceitos, usaremos como exemplo o número 3+j4.

Em sua forma retangular, o número complexo possui uma parte real e uma

parte imaginária (multiplicado por 1= i ou j). Em sua forma polar, ele apresenta um módulo e uma fase, dados por:

ó 3 4 3 4 5

3 4 tan 3 4 53,13º 0,927

Comumente, é apresentado como:

3 4 ⇔ 5⁄53,13º

Matematicamente:

5 ⁄ 53,13º 5⁄0,927 5 ,

Pelo Teorema de Euler:

5 , 5 cos 0,927 0,927 5 0,6 0,8 3 4

Entrada de Números Complexos

Para

inserir

números

complexos

em

sua

forma

retangular,

usamos

as

constantes “i” e “j”. Por exemplo, o número (3+j4) pode ser inserido como:

>> num = 3+4*i

num =

3.0000 + 4.0000i

>> num = 3+4*j

num =

3.0000 + 4.0000i

17
17
Ou ainda podemos inserir o número com as funções seno e cosseno específicas. Por exemplo,

Ou ainda podemos inserir o número com as funções seno e cosseno específicas. Por exemplo, sei que o módulo e a fase do número (3+j4) é 5 e 53,13º ou 0,927 rad, respectivamente:

>> 5*[cos(0.927)+j*sin(0.927)]

ans =

3.0012 +

3.9991i

>> 5*[cosd(53.13)+j*sind(53.13)]

ans =

3 +

4i

Também podemos inserir o número em sua forma exponencial 5 , :

>> 5*exp(j*0.927)

ans =

3.0012 +

3.9991i

Funções Complexas:

Pelo help elfun, podemos encontrar uma lista de funções complexas, dentre as quais destacamos:

NOME

RETORNA

abs

módulo do número complexo

angle

fase do número complexo (em radianos)

conj

conjugado complexo

imag

parte imaginária

real

parte real

Tabela 2.5 - Funções Complexas.

Considere nosso exemplo típico de (3+j4). Observe o resultado das funções acima:

>> abs(3+j*4)

ans =

5

18
18

>> angle(3+j*4)

ans =

0.9273

>> conj(3+j*4)

ans =

3 - 4i

>> imag(3+j*4)

ans =

4

>> real(3+j*4)

ans =

3

imag(3+j*4) ans = 4 >> real(3+j*4) ans = 3 Na biblioteca de funções matemáticas especializadas (

Na biblioteca de funções matemáticas especializadas (help specfun), ainda temos funções de transformações de coordenadas que se aplica a números complexos:

de coordenadas que se aplica a números complexos: Figura 2.6 - Funções de Transformação de Coordenadas

Figura 2.6 - Funções de Transformação de Coordenadas

Na forma retangular (3+j4), as coordenadas cartesianas são x=3 e y=4. Na forma polar de (3+j4), as coordenadas polares são R=5 e TH=0.927. Vamos utilizar a função cart2pol. Vá nas informações da função:

utilizar a função cart2pol. Vá nas informações da função: Figura 2.7 - Instruções de uso da

Figura 2.7 - Instruções de uso da função cart2pol.

19
19
Portanto, para obter as coordenadas polares de (3+j4), fazemos: >> [fase,modulo]=cart2pol(3,4) fase = 0.9273

Portanto, para obter as coordenadas polares de (3+j4), fazemos:

>> [fase,modulo]=cart2pol(3,4)

fase =

0.9273

modulo =

5

Agora,

vamos

fazer

o

inverso.

Com

as

coordenadas

polares,

obter

as

coordenadas cartesianas:

>> [x,y]=pol2cart(0.927,5)

x =

3.0012

y =

3.9991

2.6. Variáveis em MATLAB ®

Exceto quando fizemos a transformação de cartesiano para polar e vice- versa, não criamos nenhuma variável até o presente momento. Diferente de outras linguagens de programação, na inicialização de variáveis no MATLAB ® não precisamos informar o tipo de variável, apenas o conteúdo.

Então se queremos criar uma variável para armazenar um valor inteiro, basta criar um nome e atribuir um valor inteiro por meio do operador “=”:

>> numero = 5

numero =

5

Se queremos uma variável para armazenar um número real:

>> numero2 = 4.356

numero2 =

4.356

20
20
Se queremos uma variável para armazenar uma cadeia de caracteres (String): >> texto='ola a todos'

Se queremos uma variável para armazenar uma cadeia de caracteres (String):

>> texto='ola a todos'

texto = ola a todos

Todas as variáveis criadas são exibidas no Workspace:

Todas as variáveis criadas são exibidas no Workspace : Figura 2.8 -Janela de Variáveis. Existe uma

Figura 2.8 -Janela de Variáveis.

Existe uma variável default criada pelo MATLAB ® que armazena o valor do último comando. Esta variável se chama ans, do inglês “answer”.

>> ans

ans =

11

OBS. 1: Caracter “;”

Para inibir a exibição do resultado da operação na tela, coloque o sinal “;” no final da linha de comando. Exemplo:

>> resposta = 45-76*sind(30); >> resposta

resposta =

7

21
21

OBS. 2: Unidades Complexas

OBS. 2: Unidades Complexas Caso tenha sido definido variáveis com os nomes “ i” e “

Caso tenha sido definido variáveis com os nomes “i”e “j”, não é mais possível definir números complexos da maneira usual:

>> i=5; >> complexo=3+i*4

complexo =

23

Se isso ocorrer, você pode remover (excluir) a variável i para voltar à normalidade ou criar uma nova unidade complexa:

>> ii = sqrt(-1); >> 3+ii*4

ans =

3 +

4i

2.6.1. Manipulação de Variáveis

Existem alguns comandos de consulta manipulação de variáveis:

COMANDO

DESCRIÇÃO

who

Lista os nomes das variáveis

whos

Lista nomes e características

clear

Limpa toda a memória = Exclui todas as variáveis

clear nome_variavel

Exclui a variável especificada

save nome_arquivo nome_variavel

Salva todas as variáveis (ou as especificadas) no arquivo selecionado

load nome_arquivo.mat

Carrega as variáveis salvas

Tabela 2.6 -Comandos de Consulta e Manipulação.

22
22
Por exemplo, podemos salvar a variável a no arquivo arq1 ( save arq1 a )

Por exemplo, podemos salvar a variável a no arquivo arq1 (save arq1 a) e carregarmos posteriormente utilizando load arq1.matou load(‘arq1.mat’):

utilizando load arq1.mat ou load(‘arq1.mat’) : Figura 2.9 - Comando save. 2.7. Outros Comandos Há outros

Figura 2.9 - Comando save.

2.7. Outros Comandos

Há outros comandos no MATLAB ® em relação ao programa em si:

COMANDO

DESCRIÇÃO

pack

Com o objetivo de otimizar o uso da memória, esse comando reúne todas as variáveis em um segmento na memória RAM.

ver

Informa a versão do MATLAB ® , assim como os componentes instalados (toolboxes)

version

Informa apenas a versão do MATLAB ®

demo

Abre uma janela contendo uma série de programas demonstrativos criados em ambiente MATLAB ® . Dependendo da versão do MATLAB ® alguns vídeos introdutórios estão disponíveis.

whatsnew

Apresenta as atualizações do software

23
23
bench Executa um conjunto de funções do MATLAB ® visando avaliar o desempenho do processador

bench

Executa um conjunto de funções do MATLAB ® visando avaliar o desempenho do processador utilizado.

quit/exit

Encerra o MATLAB ®

Tabela 2.7 - Outros Comandos.

2.8. Lista de Exercícios

1) Crie as variáveis A, B e C com conteúdos quaisquer, mas não deixe que os valores sejam exibidos. Mostre na tela o nome das variáveis. Apague a variável B através de um comando. Apague a tela inteira. Mostre na tela as características das variáveis restantes. Mostre o conteúdo destas.

2) Calcule a soma, subtração, multiplicação e divisão dos números resultantes da raiz quadrada de 25 e de 2 3 . Nomeie os resultados obtidos por ‘a’, ‘b’, ‘c’ e ‘d’, respectivamente.

3)

4)

5)

Mostre os valores das variáveis da questão anterior nos formatos short, long, short e e long e.

Fazer as seguintes operações com apenas um comando

a.

c.

2

Atribua a X o valor 1,253. Obtenha os valores de u, y e z, dados por:

24
24

b.

7

4

6) Dado o número complexo Z = 3+ 4i, determinar a parte real (R), parte

6)

Dado o número complexo Z = 3+ 4i, determinar a parte real (R), parte imaginária (I), módulo (M) e ângulo (ang).

7)

Considere um triangulo de lados, a, b e c. Com ângulos ab, bc e ac:

a. Use a lei dos cossenos para calcular c, sendo:

a = 3,7

b = 5,7

ab = 79 º

b. Visualize c com a maior precisão possível.

c. Use a lei dos senos para calcular o ângulo ac. Exibi-lo em notação científica.

Equações necessárias:

Exibi-lo em notação científica. Equações necessárias: 8) Vamos treinar um pouco de comandos básicos. Abaixo há
Exibi-lo em notação científica. Equações necessárias: 8) Vamos treinar um pouco de comandos básicos. Abaixo há

8) Vamos treinar um pouco de comandos básicos. Abaixo há uma lista de comandos que devem ser executados (cada linha é um comando). Digite-os e analise o que acontece:

a = 2500/20

a = 2500/20;

format long

a = 4/3

who

format short

whos

a

= 4/3

clear

clear

who

a=10

b = 1 + 2 + 3 + 4 + 5 - 7

b = a^-1

 

x=30;

c

= a + b

y

= sind(x)

c

= a - b

x=0.524;

help sqrt

y

= sin(x)

% Complexos:

help sin

a

= 4+ i*5

help sind

real(a)

save arquivo x

imag(a)

dir

abs(a)

a

= 2^3

angle(a)

25
25

9)

Calcule os valores a seguir:

9) Calcule os valores a seguir: 26
9) Calcule os valores a seguir: 26
9) Calcule os valores a seguir: 26
9) Calcule os valores a seguir: 26
26
26

3. Vetores e Matrizes

3. Vetores e Matrizes Neste capítulo, começaremos a trabalhar com vetores e matrizes. Cabe dizer que

Neste capítulo, começaremos a trabalhar com vetores e matrizes. Cabe dizer que no capítulo anterior as variáveis com que trabalhamos já eram matrizes de dimensão 1x1, pois o MATLAB ® trabalha essencialmente com um tipo de objeto, uma matriz numérica retangular. Ou seja, até mesmo os vetores são considerados pelo MATLAB ® como matrizes onde uma das dimensões é 1.

3.1.

Entrada

Entrada de matrizes e vetores

O modo mais simplificado de entrar com vetores e matrizes no MATLAB ® é digitando-os na Janela de Comandos. Em relação à criação de matrizes, devemos lembrar que:

“[” e “]” delimitam uma matriz

“ ” ou “,” separa elementos da mesma linha, delimitando as colunas

“;” delimita linhas

Vejamos as diferentes maneiras de entrar com a matriz 3x3 abaixo:

1 2

3

4

5

6

7 8

9

Digitando linha por linha:

>> M=[1 2 3

4

7

5 6

8 9]

Digitando toda a linha de uma vez:

>> M=[1 2 3;4 5 6;7 8 9] >> M=[1,2,3;4,5,6;7,8,9]

27
27

Elementos gerados por expressões

Elementos gerados por expressões Elementos de matrizes podem ser gerados por expressões. Por exemplo: >> A=

Elementos de matrizes podem ser gerados por expressões. Por exemplo:

>> A= [3+pi, 4*log(65); 2*(3+5), sqrt(9)]

A

=

6.1416

16.6975

16.0000

3.0000

Matrizes Complexas

Para se inserir matrizes complexas, basta definir cada elemento complexo utilizando os conceitos vistos anteriormente:

>> A= [1+5*i 2+6*i; 3+7*i 4+8*i]

A

=

1.0000

+ 5.0000i

2.0000 + 6.0000i

3.0000

+ 7.0000i

4.0000 + 8.0000i

3.1.1. Vetores Sequenciais

Além das formas de definição anteriores, os vetores podem ser criados de forma sequencial. A sintaxe para isso é

V = [valor inicial : incremento : valor final]

Por exemplo:

>> V=[1:1:10]

V

=

1

2

3

4

5

6

7

8

9 10

Neste caso podemos omitir “[ ]” e, caso o incremento seja omitido, assume-se incremento 1.

>> V=1:10

V

=

1

2

3

4

5

6

7

8

9 10

28
28

Espaçamento Linear

Espaçamento Linear Vetores sequenciais ainda podem ser criados pela função linspace . Sua sintaxe é: V

Vetores sequenciais ainda podem ser criados pela função linspace. Sua sintaxe é:

V = linspace(valor inicial, valor final, quantidade)

A função linspace cria a quantidade de números fornecida entre o valor inicial e final, com uma diferença uniforme entre eles. Supunha que eu quero um vetor sequencial com 10 elementos de 1 a 10:

>> V=linspace(1,10,10)

V

=

1

2

3

4

5

6

7

8

9 10

Agora eu quero um vetor sequencial de 1 a 10, com 8 números igualmente espaçados:

>> V=linspace(1,10,8)

V

=

1.0000

2.2857

3.5714

4.8571

6.1429

7.4286

8.7143

10.0000

Espaçamento Logarítmica

Vetores sequenciais criados pela função linspace possuem espaçamentos lineares entre seus elementos. Podemos definir vetores sequenciais com espaçamentos logarítmicos pela função logspace. Sua sintaxe é:

V = logspace(valor inicial, valor final, quantidade)

Se a quantidade for omitida, a função gera 50 divisões entre 10 valor inicial e 10 valor final automaticamente.

>> V=logspace(1,2,5)

V

=

10.0000

17.7828

31.6228

56.2341 100.0000

29
29

3.2.

Indexação

O padrão de

identificação de

elementos de

matrizes segue

O padrão de identificação de elementos de matrizes segue a lógica da matemática: Nome_da_Matriz (

a

lógica

da

matemática:Nome_da_Matriz ( posição_da_linha, posição_da_coluna );

Por exemplo, queremos o elemento A 23 da matriz abaixo:

>> A=[1 2 3; 4 5 6; 7 8 9]

A =

1

2

3

4

5

6

7

8

9

>> A(2,3)

ans =

6

Podemos identificar os elementos de forma sequencial, de cima para baixo, da esquerda para direita. Ou seja, para a matriz A anterior, os elementos podem ser identificados como:

2 5 8

3 6 9

1 4 7

Então se queremos o elemento A 23 , chamamos por A(8):

>> A(8)

ans =

6

Agora que sabemos nos referir a um elemento específico de uma matriz, considere o vetor abaixo:

>> B=[1 2 3];

O quê acontece se inserirmos um valor na posição B(6)?

>> B(6)=5

 

B =

1

2

3

0

0

5

30
30
Repare que a dimensão do vetor aumentou automaticamente para acomodar o novo elemento. Os elementos
Repare que a dimensão do vetor aumentou automaticamente para acomodar
o novo elemento. Os elementos nas posições 4 e 5 não foram definidos, então o
MATLAB os define como zero.
3.3.
Operações
Os operadores aritméticos trabalham com números, vetores e matrizes.
Neste momento, iremos abordar as seguintes operações entre matrizes utilizando
operadores aritméticos:
• Transposta
• Adição e Subtração
• Multiplicação
• Divisão
• Exponenciação
3.3.1. Transposta
Transposta de uma matriz é a troca entre coluna e linhas, de maneira que a
coluna 1 se torne a linha 1, a coluna 2 se torne a linha 2, e assim sucessivamente. Se
a matriz A possui dimensões nxm, sua transposta terá dimensões mxn.
O
operador
utilizado
para
calcular
a
transposta
de
uma
matriz
é
o
apóstrofo “ ’ “. Observe os exemplos abaixo:
Vetor Linha
>> A=[1 2 3 4 5];
>> A'
ans =
1
2
3
4
5
Vetor Coluna
>> B=[1;2;3;4;5];
>> B'
ans =
1
2
3
4
5
31

.

Matriz 2x3

>> C=[1 2 3;4 5 6]; >> C'

ans =

1 4

2 5

3 6

Matriz 3x2

>> D=[1 2;3 4;5 6]; >> D'

.

ans =

1 3

2 4

5

6

.

D=[1 2;3 4;5 6]; >> D' . ans = 1 3 2 4 5 6 .

Devemos tomar cuidado com transpostas de matrizes complexas. Considere o exemplo abaixo:

>> E=[1+j*1 1-j*6; 5 -4+j*0.1; j*10 0]

E =

1.0000 + 1.0000i

1.0000 - 6.0000i

5.0000 -4.0000 + 0.1000i

0 +10.0000i

0

Se fizermos apenas E, não estaremos obtendo a transposta de E, mas sim o conjugado complexo transposto. Observe:

>> E'

ans =

1.0000

- 1.0000i

5.0000

0 -10.0000i

1.0000

+ 6.0000i -4.0000 - 0.1000i

0

Perceba que na resposta acima, além de ter feito a transposta, a parte imaginária trocou o sinal (os elementos de E’ são conjugados dos elementos de E). Para se obter a matriz transposta de uma matriz complexa, deve-se usar o operador ponto antes de apóstrofo (.’):

>> E.'

ans =

1.0000

+ 1.0000i

5.0000

0 +10.0000i

1.0000

- 6.0000i -4.0000 + 0.1000i

0

3.3.2. Adição e Subtração

Adição e Subtração Matricial:

Adição e Subtração Adição e Subtração Matricial: As operações de adição e subtração são realizadas

As operações de adição e subtração são realizadas pelos operadores “+” e “-“. Devemos lembrar que para somar e subtrair matrizes e vetores, estes precisam ter as mesmas dimensões. Para exemplificar, considere as seguintes matrizes:

4 5 6 3

1

7

2

8

9

Criando as matrizes:

10 10 10

10 10

10 10

10

10

>> A=[1 2 3; 4 5 6; 7 8 9]; >> B=[10 10 10; 10 10 10; 10 10 10]; Vamos somar as matrizes A e B:

>> A+B

 

ans =

11

12

13

14

15

16

17

18

1

Do mesmo modo, vamos subtrair B de A:

>> A-B

ans =

-9

-8

-7

-6

-5

-4

-3

-2

-1

Ambas as operações foram possíveis pois A e B são matrizes de mesma dimensão (3x3). O quê acontece ao tentar fazer estas operações com matrizes de dimensões diferentes? Nos é fornecido uma mensagem de erro:

>> A=[1 2 3; 4 5 6; 7 8 9];

33
33

>> B=[10 10 10]; >> A+B ??? Error using ==> plus Matrix dimensions must agree. >> A-B ??? Error using ==> minus Matrix dimensions must agree.

??? Error using ==> minus Matrix dimensions must agree. Estas operações também servem para matrizes complexas:

Estas operações também servem para matrizes complexas:

>> C=[1-1*j 3-3*j; 2-2*j 4-4*j]; >> D=[1+1*i 3+3*i; 2+2*i 4+4*i];

>> C-D

ans =

0

- 2.0000i

0 - 6.0000i

0

- 4.0000i

0 - 8.0000i

Adição e Subtração Escalar:

Ao fazer tais operações entre uma matriz e um escalar, estamos na verdade somando (ou subtraindo) cada elemento da matriz pelo escalar. Exemplo:

>> A=[1 2 3; 4 5 6]; >> A+1

ans =

2

3

4

5

6

7

>> A-2

ans =

-1

0

1

2

3

4

3.3.3. Multiplicação

Multiplicação Matricial:

A multiplicação é realizada pelo operador “*”. A condição matemática necessária ao multiplicar duas matrizes, é que o número de colunas da primeira deve ser igual ao número de linhas da segunda.

34
34
A matriz resultante da operação terá o mesmo número de linhas da 1ª matriz e

A matriz resultante da operação terá o mesmo número de linhas da 1ª matriz

e o mesmo número de colunas da 2ª matriz. Observe o exemplo a seguir:

1

2

4

6

 

3

1

2

3

6

5

4

5

>> A = [1 2; 3 4; 5 6]; >> B = [1 2 3;4 5 6];

A multiplicação A 3x2 *B 2x3 resulta em uma matriz 3x3:

>> A*B

 

ans =

9

12

15

19

26

33

29

40

51

A multiplicação B 2x3 * A 3x2 resulta em uma matriz 2x2:

>> B*A

ans =

22

28

49

64

Se tentarmos multiplicar duas matrizes em que o critério matemático não é respeitado, nos é mostrado uma mensagem de erro:

>> C = [1 2 3; 4 5 6]; >> D = [2;3;4;5]; >> C*D ??? Error using ==> mtimes Inner matrix dimensions must agree.

Lembramos que o mesmo é aplicável no caso de vetores.

Multiplicação por Escalar:

Qualquer matriz pode ser multiplicada por um escalar, o que significa que todos os elementos dela são multiplicados pelo escalar. Por exemplo:

>> C = [1 2 3; 4 5 6]; >> D = pi*C

35
35

D =

3.1416

6.2832

9.4248

12.5664

15.7080

18.8496

Multiplicação Escalar:

12.5664 15.7080 18.8496 Multiplicação Escalar: Preste atenção no nome dado à multiplicação acima. Uma

Preste atenção no nome dado à multiplicação acima. Uma é multiplicação POR ESCALAR e a outra é multiplicação ESCALAR, também chamada de ponto a ponto ou em conjunto. Seu operador é representado por “.*” e significa que estamos multiplicando elemento por elemento de duas matrizes.

Considere os exemplos abaixo:

A 3X2 .*B 3X2 :

>> A=[1 1; 1 1; 1 1]; >> B=[2 3; 4 5; 6 7]; >> A.*B

ans =

2

4

6

3

5

7

A 2x2 .*B 2x1 :

>> A=[3 4;5 6]; >> B=[1 2]; >> A.*B ??? Error using ==> times Matrix dimensions must agree.

Perceba que a condição para que a multiplicação ponto a ponto seja possível é que ambas as matrizes tenhas as mesmas dimensões.

36
36

3.3.4. Exponenciação

3.3.4.1.

Potência

3.3.4. Exponenciação 3.3.4.1. Potência O operador de potência é “ ^ ”. Vejamos alguns exemplos: •

O operador de potência é “^”. Vejamos alguns exemplos:

Matriz elevada a escalar:

>> A=[2 3;4 6]; >> A^3

ans =

128

256

192

384

>> B=[2 3 4 6]; >> B^2 ??? Error using ==> mpower Matrix must be square.

Percebemos que a condição necessária para esta operação é que a matriz seja quadrada, pois B^2 = B*B, o que implica que o número de colunas de B deve ser igual ao número de linhas de B.

Escalar elevado à matriz: é utilizado em Álgebra Linear, onde os cálculos consideram autovalores e autovetores. Envolve conceitos teóricos que não serão estudados neste material.

>> A=[2 3;4 6]; >> 2^A

ans =

64.7500

95.6250

127.5000 192.2500

Matriz elevada à matriz: não funciona, sendo indicado um erro.

>> A=[2 3;4 6]; >> B=[2 2;1 1]; >> A^B ??? Error using ==> mpower At least one operand must be scalar.

37
37

3.3.4.2. Potência Escalar

3.3.4.2. Potência Escalar O operador de potência escalar é “ .^ ”. Vejamos alguns exemplos: •

O operador de potência escalar é “.^”. Vejamos alguns exemplos:

Elemento de matriz a escalar:

>> A=[2 3 4 6]; >> A.^2

ans =

4 9

16

36

Não há necessidade da matriz ser quadrada neste caso.

Escalar a elemento de Matriz:

>> A=[2 3 4 6]; >> 2.^A

ans =

4 8

16

64

Elemento de matriz a elemento de matriz:

>> A=[2 3 4 6]; >> B=[2 2 2 2]; >> A.^B

ans =

4 9

16

36

>> A=[2 3 4 6]; >> B=[2 2;2 2]; >> A.^B ??? Error using ==> power Matrix dimensions must agree.

O critério neste último caso é que as matrizes tenham as mesmas dimensões.

38
38

3.3.5. Divisão

3.3.5. Divisão Podemos fazer quatro operações de divisão: divisão matricial à direita, divisão matricial à

Podemos fazer quatro operações de divisão: divisão matricial à direita, divisão matricial à esquerda, divisão escalar à direita e divisão escalar à esquerda. Veremos cada uma delas e suas características neste tópico, mas antes introduziremos dois conceitos importantes que serão necessários: determinante e inversa de uma matriz.

3.3.5.1. Determinante e Inversa

Considere uma matriz A quadrada de dimensão n (nxn). Ela será invertível quando existir uma matriz B de dimensão n tal que A*B = B*A = I, onde I é uma matriz identidade de dimensão n (matriz de dimensão n onde todos os elementos da diagonal principal são “1”s enquanto os demais são nulos). Neste caso, B=A -1 é a matriz inversa de A.

Por exemplo:

2 1

3

1 0.2

0.6

0.2

0.4

1

0

0

1

Qual o critério para que uma matriz seja invertível além dela ser quadrada? Ela deve ser não-singular, ou seja, possuir determinante ≠ 0.

Para encontrar a determinante de uma matriz, utilizamos a função det. Por exemplo:

>> A=[-2 1;3 1]; >> det(A)

ans =

-5

>> B=[-2 -1 1;5 3 -1;3 1 -3]; >> det(B)

ans =

0

Há várias formas de se obter a inversa de uma matriz. Podemos fazer por uma operação de exponenciação ou pela função inv:

>> A=[-2 1;3 1]; >> A^-1

39
39

ans =

-0.2000

0.2000

0.6000

0.4000

>> inv(A)

ans =

-0.2000

0.2000

0.6000

0.4000

inv(A) ans = -0.2000 0.2000 0.6000 0.4000 No caso da matriz B anterior, observe o que

No caso da matriz B anterior, observe o que é exibido ao calcular a inversa de B:

>> B=[-2 -1 1;5 3 -1;3 1 -3]; >> inv(B) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 3.700743e-018.

ans =

1.0e+016 *

-0.9007

-0.2252

-0.2252

1.3511

0.3378

0.3378

-0.4504

-0.1126

-0.1126

Como determinante é zero, a matriz não aceita inversa. Mas mesmo assim, o MATLAB fornece uma resposta para o comando inv(B), porém avisando que a matriz B tende a ser singular. Repare que a resposta exibida está com uma precisão muito pequena

3.3.5.2. Divisão Matricial à Direita

Para esta operação, utilizamos o operador “/”. A divisão matricial à direita entre B e A (B/A) equivale matematicamente a multiplicar a matriz B pela inversa de A:

1

Portanto, temos como condições para esta operação:

A deve ser invertível

O nº de colunas de B deve ser igual à dimensão de A

Observe o exemplo a seguir:

2 1 1

3

10 3

40
40

>> A=[-2 1;3 1]; >> B=[10 3]; >> B/A

ans =

-0.2000

3.2000

>> B*inv(A)

ans =

-0.2000

3.2000

3.2000 >> B*inv(A) ans = -0.2000 3.2000 É possível fazermos A/B? Vamos tentar com a função

É possível fazermos A/B? Vamos tentar com a função inv:

>> A*inv(B) ??? Error using ==> inv Matrix must be square.

Sabemos que somente matrizes quadradas podem ser invertíveis. Mas vamos tentar com o operador “/”:

>> A/B

ans =

-0.1560

0.3028

Se não é possível inverter a matriz B, como é feito a divisão acima? A questão para essa dúvida é que a equivalência mostrada na expressão (1) é matemática, mas não significa que o método de cálculo empregado pelo MATLAB para resolver ambas é o mesmo.

3.3.5.3. Divisão Matricial à Esquerda

Para esta operação, utilizamos o operador “\”. A divisão matricial à esquerda entre B e A (A\B) equivale matematicamente a multiplicar a inversa de A pela matriz B:

\

2

Portanto, temos como condições para esta operação:

A deve ser invertível

41
41
• A dimensão de A deve ser igual ao número de linhas de B Observe

A dimensão de A deve ser igual ao número de linhas de B

Observe o exemplo a seguir:

2 1 1

3

2

5

>> A=[-2 1;3 1]; >> B=[2;-5];

>> A\B

ans =

-1.4000

-0.8000

>> inv(A)*B

ans =

-1.4000

-0.8000

É possível fazermos B\A? Vamos tentar tal como anteriormente:

>> inv(B)*A ??? Error using ==> inv Matrix must be square.

>> B\A

ans =

-0.6552

-0.1034

Como no caso anterior, a equivalência da expressão (2) é matemática, mas o algoritmo de cálculo para cada comando é diferente.

3.3.5.4. Divisão Escalar

Tal como multiplicação escalar, esta operação entre A e B é uma operação ponto a ponto, ou seja, elemento por elemento e necessita que A e B sejam matrizes de mesma dimensão.

Temos duas divisões escalares: à direita e à esquerda.

42
42

Observe os exemplos:

10

20

40

2 6

30

4

8

4 8 matrizes

matrizes

>> A=[10 20;30 40]; >> B=[2 4;6 8]; >> A./B

ans =

5

5

5

5

>> B.\A

ans =

5

5

5 5

3.4. Lista de Exercícios

1)

Aprendemos

seguintes matrizes:

2

diversas

1

3

maneiras

de

criar

e

vetores.

4

4 5 6

7

8

9

54

8

2

3

1 8

5

1

3 0

4

9

3 2 30

1

0

4

6

8

10 12

14 16

5 1 3 0 4 9 3 2 30 1 0 4 6 8 10 12

Crie

as

200 180 160 140 120 100 80

2)

Crie dois vetores ‘x’ e ‘y, sendo que o primeiro contém 6 elementos de 0 a 5 e o segundo é formado pelos elementos abaixo (em ordem):

i. Elemento 1: Raiz quadrada de 4;

ii. Elemento 2: Soma dos números 3 e -2

iii. Elemento 3: -1 elevado ao quadrado

iv. Elemento 4: Multiplicação dos primeiros 2 número primos

v. Elemento 5: Subtração de i. por ii.

43
43

vi. Elemento 6: Divisão de iv. por i.

vii. Elemento 9: vale 1.

Elemento 6: Divisão de iv. por i. vii. Elemento 9: vale 1. 3) Gerar os seguintes

3)

Gerar os seguintes vetores:

 

a. Y começa em -3.4, vai até 8, passo 0.32

 

b. Z começa em 10, vai até 1, passo -1.23

c. X começa em 0, vai até 15², passo 10*pi

4)

Modifique a dimensão das matrizes abaixo de tal forma que as seguintes operações possam ser realizadas:

a. X = B*A

 

b. Y = X*(C^2)

 

Sendo ‘A’, ‘B’ e ‘C’ as matrizes:

 

A = [3 2; 1 0; 5 -5]

 

B = [-10 4; 0 -1; 1 6]

C = [1 2 0; 0 2 1; 3 3 3]

5)

Utilizando as matrizes ‘A’ e ‘B’ declaradas abaixo, faça com que uma matriz ‘Z’ surja da multiplicação elemento por elemento delas.

A = [1 2 3; 1 2 3; 1 2 3]

 

B = [1 -1 3; 4 0 0; -4 -2 1]

6)

Considere

as

seguintes

tabelas

com

dados

de

uma

montadora

de

automóveis:

Tabela A - Quantidade de Carros Produzidos por Mês:

 

PRODUÇÃO EM

PRODUÇÃO EM

JANEIRO

FEVEREIRO

CARRO 1

100

120

CARRO 2

200

180

Tabela B – Custo de Produção (em milhares) por Carro:

 

CUSTO EM

CUSTO EM

JANEIRO

FEVEREIRO

CARRO 1

$10.0

$9.8

CARRO 2

$6.0

$6.1

Tabela C – Quantidade de Peças Utilizadas na Produção de um Carro:

44
44
  CARRO 1 CARRO 2 PEÇA 1 25 28 PEÇA 2 42 55 Crie três
 

CARRO 1

CARRO 2

PEÇA 1

25

28

PEÇA 2

42

55

Crie três matrizes para representar as tabelas. Faça o que se pede utilizando a operação elementar necessária:

a. Armazene na matriz M1 o custo de produção total (quantidade de carros * custo individual) em cada mês.

 

CUSTO TOTAL

CUSTO TOTAL

EM JANEIRO

EM FEVEREIRO

CARRO 1

   

CARRO 2

   

b. Armazene na matriz M2 a quantidade total de peças gastas de cada tipo em cada mês.

 

QTDE TOTAL

QTDE TOTAL EM FEVEREIRO

EM JANEIRO

PEÇA 1

   

PEÇA 2

   

7) Utilizando as operações de divisão pela direita e pela esquerda, obtenha as matrizes ‘X’ e ‘Y’, resultantes de A/B e B\A, sendo ‘A’ e ‘B’ as matrizes do exercício de número 4. Compare com os resultados obtidos por suas expressões matemáticas equivalentes (A*inv(B) e inv(B)*A).

8)

Quando

se

tem

uma

matriz

A

complexa,

as

seguintes

operações

proporcionam os mesmos resultados? Porque ?

 

X

= A’ e Y = A.’

 

9)

Obtenha a transposta da matriz complexa X abaixo:

 

X = [(1+j) (1-5j); (6+2j) (1-2j); (3+3j) (1)]

10)Crie uma matriz quadrada de dimensão 3 onde os elementos (em ordem sequencial de índices) são múltiplos de 2 através da operação de potência escalar (escalar elevado a matriz).

11)Crie uma matriz quadrada de dimensão 4 de tal forma que o elemento de índice (a,b) na diagonal principal seja igual a (2*b+a*i), onde i é unidade complexa. Com essa matriz, calcule os valores de:

i. B: transposta de A

ii. C: soma das matrizes A e B

45
45
iii. D: inversa de A iv. E: conjugado da transposta de A v. F: multiplicação

iii. D: inversa de A

iv. E: conjugado da transposta de A

v. F: multiplicação escalar de B e E

vi. G: A elevado a um número fracionário qualquer

vii. H: elementos de D elevado ao cubo

46
46

4. Manipulação de Vetores e Matrizes

4.1. Funções Matemáticas

de Vetores e Matrizes 4.1. Funções Matemáticas Todas as funções matemáticas vistas no capítulo 2 se

Todas as funções matemáticas vistas no capítulo 2 se aplicam a matrizes e vetores de quaisquer dimensões. Dependendo da função escolhida, ela pode atuar sobre toda a matriz ou apenas em seus elementos. Veremos a seguir algumas funções matemáticas aplicadas a matrizes (em caso de dúvida, já sabemos que basta consultar o help do MATLAB).

FUNÇÕES

OPERADOR

EXEMPLO

plus

A+B

plus(A,B)

minus

A-B

minus(A,B)

mtimes

A*B

mtimes(A,B)

times

A.*B

times(A,B)

mpower

A^esc

mpower(A,esc)

power

A.^esc

power(A,esc)

mrdivide

A/B

mrdivide(A,B)

rdivide

A./B

rdivide(A,B)

mldivide

A\B

mldivide(A,B)

ldivide

A.\B

ldivide(A,B)

Tabela 4.1 - Funções de Operação Aritmética.

NOME

RETORNA

sin, sind, sinh

seno: radianos, graus e hiperbólico

cos, cosd, cosh

cosseno: radianos, graus e hiperbólico

sqrt(x)

raiz quadrada

abs

módulo do número complexo

angle

fase do número complexo (em radianos)

Tabela 4.2 - Outras Funções Matemáticas.

Considere o exemplo abaixo:

>> A=[30 45;90 180; 270 260]; >> sind(A)

ans =

0.5000

0.7071

1.0000

0

-1.0000

-0.9848

47
47

>> B=[1 4 9 16 25 36 49]; >> sqrt(B)

ans =

1 2

3

4

5

6

7

4.2. Geração de Matrizes

sqrt(B) ans = 1 2 3 4 5 6 7 4.2. Geração de Matrizes Existem métodos

Existem métodos de geração de matrizes e vetores a partir de outras, como também funções matriciais específicas para a geração de matrizes usuais. Por exemplo, uma matriz identidade de dimensão 50. Dificilmente, você irá inserir 2500 elementos, onde a diagonal é 1 e o resto é 0 utilizando as formas de inserção de matriz estudadas no capítulo 3. Neste tópico, iremos abordar este assunto.

4.2.1. Utilizando Conceitos de Indexação

Posição de Linha e Coluna:

Lembre-se que posso me referir a um elemento de matriz pela sua posição de nº de linha e nº de coluna:

>> A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]

A =

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

>> A(2,2)

ans =

6

Podemos extrair matrizes menores de matrizes maiores utilizando esse tipo de indexação. Observe:

Quero criar um vetor igual a [7 8], a partir de A. Perceba que [7 8] é a 2ª linha, colunas 3 e 4. Então:

>> v1=A(2,[3 4])

v1 =

7

8

48
48
• Quero criar uma matriz [2 3 4;6 7 8;10 11 12] a partir de

Quero criar uma matriz [2 3 4;6 7 8;10 11 12] a partir de A. Perceba que se trata das linhas 1, 2 e 3, coluna 2, 3 e 4. Logo:

>> m1 = A([1 2 3],[2 3 4])

m1 =

2

3

4

6

7

8

10

11

12

Podemos fazer o mesmo item acima utilizando dois-pontos (“:”). Lembre-se que, em vetores sequenciais, usamos dois pontos sem o valor de acréscimo para representar uma sequência de 1 em 1:

>> m1 = A(1:3,2:4)

m1 =

2

3

4

6

7

8

10

11

12

No caso acima, ainda temos mais uma alternativa. Se você utilizar a palavra “end”, ele seleciona até a última linha ou coluna. Como eu solicitei da coluna 2 até a última coluna (4), eu posso usá-lo:

>> m1 = A(1:3,2:end)

m1 =

2

3

4

6

7

8

10

11

12

Usar “:” sozinho onde deveria estar linha ou coluna significa “todos os elementos da linha ou da coluna”. Por exemplo, quero pegar a 1ª linha e depois a 3ª coluna:

>> linha1 = A(1,:)

linha1 =

1 2

3

4

>> coluna3 = A(:,3)

coluna3 =

3

7

11

15

49
49
• A utilização de “:” permite também apagar uma linha ou coluna . Quero apagar

A utilização de “:” permite também apagar uma linha ou coluna. Quero apagar a linha 1 e a coluna 2:

>> A(1,:)=[]

A

=

5

6

7

8

9

10

11

12

13

14