Docsity
Docsity

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

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


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Apostila para Programação em MATLAB, Notas de estudo de Matlab

UFPE - Professor Geraldo Leite Torres

Tipologia: Notas de estudo

2012

Compartilhado em 10/01/2012

gilton-monteiro-10
gilton-monteiro-10 🇧🇷

5

(1)

1 documento

1 / 138

Toggle sidebar

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

Não perca as partes importantes!

bg1
Introdu¸ao ao MATLAB
&
MATLABCompiler
Geraldo Leite Torres
Professor Adjunto, PhD
Laborat´
orio Digital de Sistemas de Potˆ
encia
DEESP CTG UFPE
DISTRIBUIC¸ ˜
AO RESTRITA
c
2001, 2005 GERALDO L. TORRES
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Apostila para Programação em MATLAB e outras Notas de estudo em PDF para Matlab, somente na Docsity!

Introdu¸c˜ao ao MATLAB

&

MATLAB

Compiler

Geraldo Leite Torres Professor Adjunto, PhD [email protected]

Laborat ´orio Digital de Sistemas de Pot ˆencia

DEESP I CTG I UFPE

DISTRIBUIC¸ ˜AO RESTRITA ©^ c 2001, 2005 GERALDO L. TORRES

ii

  • Cap´ıtulo 1 Introdu¸c˜ao ao Matlab
    • 1.1. Um Breve Hist´orico
    • 1.2. Para Executar o Matlab
    • 1.3. Para Sair do Matlab
    • 1.4. O Help On-Line
    • 1.5. Vari´aveis
    • 1.6. Formas de Intera¸c˜ao
    • 1.7. Fun¸c˜oes Matem´aticas Comuns
    • 1.8. Aritm´etica
    • 1.9. Opera¸c˜oes com Vetores
    • 1.10. Formatos de Sa´ıda
    • 1.11. Plotagem Simples
    • 1.12. Os Arquivos-M
    • 1.13. P-code
    • 1.14. Operadores Relacionais e L´ogicos
  • Cap´ıtulo 2 Algebra Linear e Matrizes´
    • 2.1. Matrizes
    • 2.2. Manipula¸c˜ao de Matrizes
    • 2.3. Gerando Matrizes Especiais
    • 2.4. Opera¸c˜oes com Matrizes e Vetores
    • 2.5. Normas e N´umeros Condicionadores
    • 2.6. Equa¸c˜oes Lineares
      • 2.6.1. Sistema Quadrado
      • 2.6.2. Sistema Sobredeterminado
      • 2.6.3. Sistema Subdeterminado
    • 2.7. Inversa, Falsa-Inversa e Determinante
    • 2.8. Fatoriza¸c˜ao LU
    • 2.9. Fatoriza¸c˜ao Cholesky
    • 2.10. Fatoriza¸c˜ao QR iv CONTE ´UDO
    • 2.11. Decomposi¸c˜ao em Valores Singulares
    • 2.12. Autovalores e Autovetores
    • 2.13. M´etodos Iterativos para Equa¸c˜oes Lineares
    • 2.14. Matrizes Esparsas
  • Cap´ıtulo 3 Gr´aficos 2-D, 3-D e Imagens
    • 3.1. Gr´aficos 2-D
    • 3.2. Personalizando Gr´aficos
      • 3.2.1. Eixos e Anota¸c˜oes
      • 3.2.2. Caracteres Especiais
    • 3.3. M´ultiplos Gr´aficos Numa Figura
    • 3.4. Gr´aficos 3-D
    • 3.5. Gr´aficos Especializados para Exibi¸c˜ao de Dados
    • 3.6. Gravando e Imprimindo Figuras
    • 3.7. Manipula¸c˜ao de Gr´aficos
  • Cap´ıtulo 4 Programa¸c˜ao em Matlab
    • 4.1. Operadores L´ogicos e Relacionais
    • 4.2. Al´em de Vetores e Matrizes
      • 4.2.1. C´elulas
      • 4.2.2. Estruturas
    • 4.3. La¸cos for
    • 4.4. La¸cos while
    • 4.5. Estruturas if-else-end
    • 4.6. Comando switch
    • 4.7. Estrutura try catch
    • 4.8. Arquivos-M
      • 4.8.1. Editando Arquivos-M
    • 4.9. Comandos I/O
    • 4.10. Classes e Objetos
      • 4.10.1. Identificadores de Fun¸c˜oes
  • Cap´ıtulo 5 M´etodos Num´ericos
    • 5.1. An´alise de Dados
    • 5.2. Polinˆomios
    • 5.3. Interpola¸c˜ao de Dados
    • 5.4. Equa¸c˜oes N˜ao-Lineares e Otimiza¸c˜ao
    • 5.5. Transformada R´apida de Fourier
    • 5.6. Integra¸c˜ao
    • 5.7. Equa¸c˜oes Diferenciais Ordin´arias
  • Cap´ıtulo 6 Arquivos-MEX
    • 6.1. Introdu¸c˜ao
    • 6.2. Usando Arquivos-MEX
    • 6.3. Localiza¸c˜ao dos Arquivos-MEX
    • 6.4. Requisitos do Compilador
    • 6.5. Testando a Configura¸c˜ao no UNIX CONTE ´UDO v
      • 6.5.1. Selecionando um Compilador
    • 6.6. Testando a Configura¸c˜ao no Windows
      • 6.6.1. O Compilador Lcc
      • 6.6.2. Selecionando um Compilador
      • 6.6.3. Construindo o Arquivo-MEX no Windows
  • Cap´ıtulo 7 Matlab Compiler
    • 7.1. Introdu¸c˜ao
    • 7.2. Arquivos Encapsuladores (Wrapper)
    • 7.3. Aplica¸c˜oes Stand-Alone
    • 7.4. Bibliotecas Compartilhadas
    • 7.5. Produtos Builder
      • 7.5.1. Matlab Builder for COM
      • 7.5.2. Matlab Builder for Excel
    • 7.6. Compilando uma Aplica¸c˜ao Stand-Alone
    • 7.7. Compilando uma Biblioteca Compartilhada
    • 7.8. Testando Componentes na M´aquina de Desenvolvimento
    • 7.9. Preparando Componentes para Outras M´aquinas
    • 7.10. Limita¸c˜oes e Restri¸c˜oes
      • 7.10.1. Compilando Matlab e Toolboxes
      • 7.10.2. C´odigo Matlab
      • 7.10.3. Aplica¸c˜oes Stand-Alone
    • 7.11. Compiladores Suportados
    • 7.12. O Processo de Compila¸c˜ao
    • 7.13. Arquivos de Entrada e de Sa´ıda
      • 7.13.1. Execut´avel Stand-Alone
      • 7.13.2. Biblioteca Compartilh´avel C
      • 7.13.3. Biblioteca Compartilh´avel C++
    • 7.14. Processo de Distribui¸c˜ao
      • 7.14.1. Portando o C´odigo Gerado para uma Plataforma Diferente
      • 7.14.2. Trabalhando com o MCR
      • 7.14.3. Distribuindo uma Aplica¸c˜ao Stand-Alone num Driver de Rede
    • 7.15. Trabalhando com mcc
      • 7.15.1. Usando Arquivos de Encapsulamento (Wrapper)
      • 7.15.2. Chamando Fun¸c˜oes Matlab do C ou C++
      • 7.15.3. Chamando uma Fun¸c˜ao da Linha de Comando
      • 7.15.4. Usando Arquivos-MAT em Aplica¸c˜oes Independentes
      • 7.15.5. Executando as Aplica¸c˜oes
      • 7.15.6. Passando Argumentos Para e De uma Aplica¸c˜ao
  • Cap´ıtulo A C´alculo de Fluxo de Potˆencia
    • A.1. Introdu¸c˜ao
    • A.2. Formula¸c˜ao B´asica
    • A.3. Solu¸c˜ao pelos M´etodos de Gauss e de Gauss-Seidel
    • A.4. O M´etodo de Newton-Raphson
    • A.5. Programa de Fluxo de Potˆencia em Matlab

2 CAP´ITULO 1. INTRODUC¸ ˜AO AO MATLAB

tempo real. Na pr´atica, isto permite utilizar o MATLAB em aplica¸c˜oes industriais e processos, onde o programa controla de forma on-line as vari´aveis envolvidas. Al´em dos avan¸cos acima citados, ao longo do tempo foram incorporadas ao MATLAB ferramentas para tratar de ´areas espec´ıficas do conhecimento, os chamados toolboxes. Esses toolboxes s˜ao organizados de forma modular, permitindo assim que o usu´ario compre e acople ao seu sistema apenas aqueles de seu interesse particular. Alguns exemplos de toolboxes s˜ao:

  • Simulink^ : E uma extens˜´ ao a MATLAB que adiciona um ambiente gr´afico para modelar, simular, e analizar sistemas dinˆamicos lineares e n˜ao-lineares.
  • System Identification: E uma cole¸´ c˜ao de ferramentas para estima¸c˜ao e identifica¸c˜ao de sistemas. Identifica¸c˜ao de sistemas diz respeito a achar um modelo matem´atico para um sistema f´ısico (como um motor el´etrico) baseado apenas em dados de entrada e de sa´ıda registrados.
  • Neural Network: E uma cole¸´ c˜ao de fun¸c˜oes do MATLAB para projetar e simular redes neurais. Redes neurais s˜ao arquiteturas de computa¸c˜ao, inspiradas por sistemas nervosos biol´ogicos, que s˜ao ´uteis em aplica¸c˜oes onde an´alise formal ´e extremamente dif´ıcil ou imposs´ıvel, tal como reconhecimento de padr˜oes e identifica¸c˜ao e controle de sistemas n˜ao-lineares.
  • Robust Control: Cont´em um conjunto de ferramentas para a an´alise e s´ıntese de sistemas de controle que s˜ao robustos com rela¸c˜ao a incertezas que podem surgir no mundo real.
  • Signal Processing: Cont´em ferramentas para processamento de sinais. Aplica¸c˜oes incluem ´audio, v´ıdeo, telecomunica¸c˜oes, medicina (imagem de ressonˆancia magn´etica), geof´ısica e econometria.
  • Image Processing: E um conjunto de ferramentas para processamento de imagens e´ desenvolvimento de algoritmos.
  • Statistics: Cont´em ferramentas para an´alises estat´ısticas, modelagem, e simula¸c˜ao de Monte Carlo, com interfaces gr´aficas para explorar conceitos fundamentais em estat´ıstica e probabilidade. Al´em dos toolboxes, MATLAB tem seus recursos b´asicos extendidos atrav´es da imple- menta¸c˜ao de fun¸c˜oes MATLAB, conhecidas como M-files, ou atrav´es de rotinas escritas na linguagem C/C++ ou Fortran, chamadas de MEX-files.

1.2 Para Executar o Matlab

Para executar o MATLAB, basta clicar no ´ıcone espec´ıfico existente na ´area de trabalho do monitor, via menu, ou utilizar o comando de sistema matlab. A execu¸c˜ao de MATLAB abre uma ou mais janelas no monitor. Destas, a janela de comando (Command Window) ´e o local prim´ario onde o usu´ario interage com o MATLAB. Esta janela aparecer´a como exemplificado na Figura 1.1. O s´ımbolo >> visto na janela de comando ´e o prompt do MATLAB, ou seja, onde as instru¸c˜oes a serem executadas pelo MATLAB s˜ao digitadas. Ap´os digitar um comando, pres- sionar a tecla Enter ou Return para que o comando seja executado. Para entrar m´ultiplas linhas de comandos sem que sejam executados, concluir cada linha usando Shift+Enter ou Shift+Return. Pressionando Enter ou Return faz com que todas as linhas sejam executadas.

1.3. PARA SAIR DO MATLAB 3

Figura 1.1: Janela principal do MATLAB: Command Window.

1.3 Para Sair do Matlab

Para sair do MATLAB, ao final de uma sess˜ao de trabalho, basta digitar quit ou exit no prompt do MATLAB:

quit

ou ent˜ao, com o cursor sobre a janela de comando, teclar Ctrl+C. Para limpar a janela de comando e reposicionar o prompt na primeira linha da janela basta digitar clc. A seguir, s˜ao apresentados os comandos mais ´uteis e usuais, embora seja importante salien- tar que existem in´umeros outros comandos que n˜ao s˜ao abordados neste documento. ´E impor- tante, portanto, uma consulta ao manual do usu´ario e ao guia de referˆencia, ou ao help on-line dispon´ıvel no programa, sempre que necess´ario. A consulta ao help on-line ´e descrita a seguir.

1.4 O Help On-Line

Uma das grandes facilidades apresentadas pelo MATLAB ´e a disponibilidade de uma ajuda interativa (o help on-line) bastante completa e esclarecedora, e que pode ser consultada a qualquer momento. Dependendo da forma como ´e digitado, o comando help revela informa¸c˜oes diversas. Este comando pode ser utilizado de quatro modos. O help simples fornece a lista dos principais t´opicos de ajuda. Cada t´opico corresponde a um diret´orio montado no MATLAB (incluindo os toolboxes instalados). Exemplo:

1.5. VARI ´AVEIS 5

lookfor complex

CONJ Complex conjugate. CPLXPAIR Sort numbers into complex conjugate pairs. IMAG Complex imaginary part. REAL Complex real part. CDF2RDF Complex diagonal form to real block diagonal form.

continua ...

Observe que a palavra complex n˜ao ´e um comando MATLAB, mas foi encontrada na descri¸c˜ao do help de v´arios comandos MATLAB. Dada essa informa¸c˜ao, o comando help pode agora ser utilizado para mostrar ajuda sobre um comando espec´ıfico. Exemplo:

help conj

CONJ Complex conjugate. CONJ(X) is the complex conjugate of X. For a complex X, CONJ(X) = REAL(X) - i*IMAG(X).

See also REAL, IMAG, I, J. Observe dos comandos lookfor e help acima que ´e uma conven¸c˜ao do MATLAB que nomes de fun¸c˜oes sejam apresentados em letras mai´usculas dentro do texto descritivo do help, com a finalidade de facilitar a identifica¸c˜ao dos mesmos. Entretanto, o nome de todas as fun¸c˜oes que fazem parte do MATLAB ou de qualquer de seus toolboxes dever´a ser digitado em letras min´usculas.

1.5 Vari´aveis

Outra grande vantagem do MATLAB sobre as outras linguagens de programa¸c˜ao cient´ıfica ´e a sua facilidade em manusear vari´aveis. Diferentemente de Pascal, C/C++ ou Fortran, n˜ao ´e necess´ario declarar tipo nem dimensionar vari´aveis. MATLAB trabalha essencialmente com apenas um tipo de objeto: uma matriz retangular com possivelmente valores complexos. Todas as vari´aveis representam matrizes. Em algumas situa¸c˜oes, matrizes 1-por-1 s˜ao interpretadas como escalares e matrizes com apenas uma linha ou uma coluna s˜ao interpretadas como vetores. As vari´aveis s˜ao automaticamente geradas a medida que v˜ao sendo utilizadas, e suas di- mens˜oes podem ser alteradas sempre que necess´ario. Todas as vari´aveis utilizadas numa sess˜ao de trabalho s˜ao armazenadas na mem´oria at´e que a sess˜ao de trabalho seja encerrada ou que as vari´aveis sejam deletadas atrav´es do comando clear. Para ger´a-las, utilizam-se comandos de atribui¸c˜ao, que podem ser expl´ıcitos ou impl´ıcitos. Exemplos de atribui¸c˜oes expl´ıcitas s˜ao:

a = 1 ; b = 1 + i*2 ; c = [0 1 2] ; D = [1 0 0; 0 1 0; 0 0 1] D = 1 0 0 0 1 0 0 0 1

6 CAP´ITULO 1. INTRODUC¸ ˜AO AO MATLAB

A utiliza¸c˜ao de um ponto e v´ırgula logo ap´os uma atribui¸c˜ao (ou qualquer outro comando) faz com que o resultado obtido n˜ao seja exibido na tela, embora seja armazenado na mem´oria, tal como ocorre com os dados a, b e c do exemplo acima. Observe que o ponto e v´ırgula n˜ao ´e colocado na atribui¸c˜ao da matriz D e consequentemente o resultado ´e exibido a seguir. Uma atribui¸c˜ao impl´ıcita atribui `a uma vari´avel o valor de outra vari´avel ou o valor de uma express˜ao alg´ebrica ou l´ogica envolvendo outras vari´aveis. Exemplo:

A = [1 2; 5 3]; B = [2 1; -3 4]; C = [3 2; 4 1]; k = 2; D = A D = 1 2 5 3

E = C + D E = 4 4 9 4

F = k * (A + B) F = 6 6 4 14

Como qualquer outra linguagem de programa¸c˜ao, MATLAB imp˜oe algumas regras sobre os nomes das vari´aveis. Mais especificamente, estas regras s˜ao:

  • Vari´aveis s˜ao case sensitive, ou seja, pode-se ter, numa mesma sess˜ao de trabalho, as vari´aveis volt, Volt e VOLT armazenando valores diferentes ao mesmo tempo.
  • Nomes de vari´aveis podem conter at´e 19 caracteres significativos. Os caracteres al´em do 19 o^ s˜ao ignorados.
  • Nomes de vari´aveis devem iniciar com uma letra, podendo ser seguida por qualquer combina¸c˜ao de letras, n´umeros, ou tra¸co de sublinhar.

Em adi¸c˜ao a essas regras, MATLAB possui diversas vari´aveis especiais, pr´e-ajustadas:

Vari´avel Valor ans Nome default de vari´avel utilizada para resultados pi A constante π = 3. 1415... eps Menor n´umero que se adicionado a 1 cria um n´umero de ponto flutuante maior do que 1 no computador. inf Infinito, por exemplo, 1/ NaN “Not-a-Number”, por exemplo, 0/ i e j i = j =

realmin O menor n´umero real positivo que pode ser utilizado realmax O maior n´umero real positivo que pode ser utilizado

Todas as vari´aveis utilizadas em uma sess˜ao de trabalho s˜ao armazenadas na mem´oria at´e que a sess˜ao seja encerrada, ou sejam deletadas incondicionalmente atrav´es do comando clear. Por exemplo,

8 CAP´ITULO 1. INTRODUC¸ ˜AO AO MATLAB

armazena as vari´aveis D, E, a e b no arquivo teste.mat. A ´area de trabalho (todas as vari´aveis) tamb´em pode ser salva utilizando-se a op¸c˜ao Save Workspace As do menu File. Arquivos .mat tˆem estrutura especial em formato bin´ario. As vari´aveis salvas pelo comando save s˜ao recarregadas na mem´oria (´area de trabalho do MATLAB) atrav´es do comando load. O comando load pode ser utilizado de duas maneiras. O comando simples

load

carrega na mem´oria todas as vari´aveis que est˜ao armazenadas no arquivo matlab.mat. O comando

load arquivo

carrega na mem´oria todas as vari´aveis contidas em arquivo.mat. Os comandos save e load tamb´em possuem a op¸c˜ao de arquivos no formato ASCII. Os seguintes exemplos ilustram a sintaxe e as op¸c˜oes dos comandos save e load:

save arquivo X, Y, Z -ascii

salva as vari´aveis X, Y e Z em arquivo ASCII,

load arquivo -ascii

carrega nome-de-arquivo como arquivo ASCII, e

save arquivo W -append

acrescenta dados a um arquivo .mat j´a existente. O comando

save arquivo -regexp exp1 exp

salva todas as vari´aveis que cont´em as express˜oes regulares exp1 e exp2. O comando

save arquivo -struct S

salva os campos da estrutura S como vari´aveis individuais no arquivo indicado (arquivo). O comando

save arquivo -struct S X Y Z

salva os campos S.X, S.Y e S.Z em arquivo como vari´aveis individuais X, Y e Z. Por default, arquivos .mat criados com save s˜ao compactados. Estes arquivos .mat n˜ao podem ser carregados por vers˜oes do MATLAB anteriores a vers˜ao 7.0. No entanto, a op¸c˜ao -V6 desabilita esta caracter´ıstica e permite que os arquivos .mat gerados sejam carregados por vers˜oes anteriores do MATLAB. Quando utiliza-se a op¸c˜ao -V4, vari´aveis que s˜ao in- compat´ıveis com MATLAB 4 n˜ao s˜ao salvas no arquivo .mat, tais como estruturas, c´elulas, vari´aveis cujos nomes cont´em mais de 19 caracteres, etc. Nos subdiret´orios de \MATLAB\EXTERN\ h´a um conjunto de subrotinas e programas para auxiliar a grava¸c˜ao e leitura de arquivos .mat por programas em C ou Fortran.

1.6. FORMAS DE INTERAC¸ ˜AO 9

1.6 Formas de Intera¸c˜ao

MATLAB ´e um sistema interativo. Os comandos digitados no prompt >> s˜ao executados assim que a tecla ´e pressionada. Na sua forma mais simples, MATLAB pode ser utilizado como uma calculadora de bolso:

(1+sqrt(5))/ ans =

2^(-53) ans = 1.1102e- O primeiro exemplo calcula (1 +

5)/2 e o segundo 2−^53. Observe que o segundo resultado ´e exibido na nota¸c˜ao exponencial: ele representa 1. 1102 × 10 −^16. Como dito anteriormente, a vari´avel ans ´e criada (ou sobreescrita, se ela j´a existe) quando o resultado de uma express˜ao n˜ao ´e atribu´ıdo a uma vari´avel. Diferentemente de outras linguagens de programa¸c˜ao, as vari´aveis n˜ao s˜ao declaradas antes do seu uso; elas s˜ao automaticamente criadas pelo MATLAB assim que a elas ´e atribu´ıdo algum valor:

x = sin(22) x = -0. Aqui, atribu´ımos a x o seno de 22 radianos. A impress˜ao da sa´ıda pode ser suprimida acrecentando-se o ponto e v´ırgula no final da express˜ao: y = 2x + exp(-3)/(1+cos(.1)) ; V´ırgulas ou ponto-e-v´ırgulas s˜ao utilizados para separar declara¸c˜oes que aparecem numa mesma linha: x = 2, y = cos(.3), z = 3x*y x = 2 y =

z =

x = 5; y = cos(.5); z = x*y^ z =

A linha pode ser terminada com trˆes pontos, o que torna a pr´oxima linha uma linha de continua¸c˜ao:

x = 1 + 1/2 + 1/3 + 1/4 + 1/5 + ... 1/6 + 1/7 + 1/8 + 1/9 + 1/ x =

1.7. FUNC¸ ˜OES MATEM ´ATICAS COMUNS 11

fornece o prompt na mensagem e espera que vocˆe digite uma string. Os caracteres digitados s˜ao retornados, ap´os teclar , como uma string MATLAB. V´arios comandos s˜ao dispon´ıveis para intera¸c˜ao com o sistema operacional, incluindo os comandos cd (para mudar de diret´orio), copyfile (copiar arquivo), mkdir (criar diret´orio), pwd (exibir nome do diret´orio corrente), dir ou ls (listar diret´orio), e delete (deletar arquivo). Um comando pode ser emitido ao sistema operacional, a partir do prompt do MATLAB, precedendo-se este comando com a marca de exclama¸c˜ao, !. Por exemplo, a instru¸c˜ao

!edit teste

edita o arquivo teste com o aplicativo edit do MS Windows.

1.7 Fun¸c˜oes Matem´aticas Comuns

Uma lista parcial da fun¸c˜oes matem´aticas elementares que o MATLAB disp˜oe ´e apresentada na tabela abaixo. E importante ressaltar que as fun¸´ c˜oes trigonom´etricas do MATLAB trabalham apenas com ˆangulos em radianos.

1.8 Aritm´etica

MATLAB executa todas as suas opera¸c˜oes aritm´eticas em aritm´etica de ponto-flutuante de precis˜ao dupla, conforme a aritm´etica de ponto-flutuante do IEEE. No tipo de dado double do MATLAB cada n´umero ocupa uma palavra de 64-bit. N´umeros n˜ao-nulos variam, em m´odulo, entre aproximadamente 10−^308 e 10+308, e o limite para o erro relativo na convers˜ao de um n´umero real para a forma de ponto-flutuante (unit roundoff ) ´e 2−^53 ≈ 1. 11 × 10 −^16. Em outras palavras, MATLAB armazena n´umeros de ponto-flutuante e executa opera¸c˜oes elementares com uma precis˜ao de cerca de 16 d´ıgitos decimais significativos. A fun¸c˜ao eps retorna a distˆancia de 1.0 para o n´umero de ponto-flutuante pr´oximo maior:

eps ans = 2.2204e-

Se o resultado de um c´alculo ´e maior do que o valor retornado pela fun¸c˜ao realmax ent˜ao ocorre overflow e o resultado da opera¸c˜ao ´e Inf, representando infinito. De forma similar, um resultado negativo menor do que −realmax produz −Inf. Um c´alculo cujo resultado n˜ao ´e matematicamente definido produz um NaN, significando Not a Number. Por exemplo,

0/ Warning: Divide by zero. ans = NaN

Uma vez gerado, um NaN propaga-se por todos os c´alculos subsequentes:

NaN-NaN ans = NaN

12 CAP´ITULO 1. INTRODUC¸ ˜AO AO MATLAB

Comando Fun¸c˜ao Matem´atica cos(x) Cosseno de x sin(x) Seno de x tan(x) Tangente de x csc(x) Cossecante de x sec(x) Secante de x cot(x) Cotangente de x acos(x) Arco-cosseno de x asin(x) Arco-seno de x atan(x) Arco-tangente de x atan2(x) Arco-tangente de x no quarto quadrante asec(x) Arco-secante de x acsc(x) Arco-cossecante de x acot(x) Arco-tangente de x cosh(x) Cosseno hiperb´olico de x sinh(x) Seno hiperb´olico de x tanh(x) Tangente hiperb´olico de x sech(x) Secante hiperb´olica de x csch(x) Cossecante hiperb´olica de x coth(x) Cotangente hiperb´olica de x acosh(x) Arco-cosseno hiperb´olico de x asinh(x) Arco-seno hiperb´olico de x atanh(x) Arco-tangente hiperb´olico de x asech(x) Arco-secante hiperb´olico de x acsch(x) Arco-cossecante hiperb´olico de x acoth(x) Arco-cotangente hiperb´olico de x log(x) Logaritmo natural de x log2(x) Logaritmo na base 2 de x log10(x) Logaritmo comun (base 10) exp(x) Exponencial ex pow2(x) Potˆencia na Base 2 dos elementos de x ceil(x) Arredonda para o valor inteiro pr´oximo maior fix(x) Arredonda para o valor inteiro pr´oximo de zero floor(x) Arredonda para o valor inteiro pr´oximo menor round(x) Arredonda para o valor mais pr´oximo abs(x) Valor absoluto (ou m´odulo se n´umero complexo) de x angle(x) Angulo do n´ˆ umero complexo x conj(x) Complexo conjugado de x imag(x) Parte imagin´aria do n´umero complexo x real(x) Parte real do n´umero complexo x mod(x,y) Restante da divis˜ao x/y com o sinal de y rem(x,y) Restante da divis˜ao x/y com o sinal de x sign(x) Sinal de x: ± 1

14 CAP´ITULO 1. INTRODUC¸ ˜AO AO MATLAB

d = a + b d = 7 9 11 13 15

e = a .* b e = 6 14 24 36 50

f = a ./ b f = 0.1667 0.2857 0.3750 0.4444 0.

Observe a presen¸ca do ponto nos operadores de multiplica¸c˜ao (.*) e divis˜ao (./) afim de que essas opera¸c˜oes sejam efetuadas na base elemento a elemento. Potˆencia de vetores ´e definida de v´arias maneiras. Por exemplo,

a .^ 2 ans = 1 4 9 16 25

2 .^ a ans = 2 4 8 16 32

b .^ a ans = 6 49 512 6561 100000

O primeiro exemplo eleva os elementos de a a potˆencia 2, o segundo exemplo eleva 2 a potˆencia de cada elemento de a, e o terceiro e ´ultimo exemplo eleva os elementos de b aos elementos de a correspondentes. Para mudar a orienta¸c˜ao de um vetor, ou seja, convertˆe-lo de linha para coluna e vice-versa, utiliza-se o ponto-ap´ostrofo (.’). No caso de um vetor de n´umeros complexos, para se obter o conjugado transposto utiliza-se apenas o ap´ostrofo. Por exemplo,

d = a + i*a d = Columns 1 through 4 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i

Column 5 5.0000 + 5.0000i

d.’ ans = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i

1.10. FORMATOS DE SA´IDA 15

5.0000 + 5.0000i

d’ ans = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i 5.0000 - 5.0000i

1.10 Formatos de Sa´ıda

Embora todos os c´alculos realizados pelo MATLAB s˜ao executados em precis˜ao dupla, o formato do resultado exibido no monitor pode ser controlado pelos seguintes comandos:

Comando Formato de Sa´ıda Exemplo format short Ponto fixo com 4 d´ıgitos decimais (default) 27. format long Ponto fixo com 14 d´ıgitos decimais 27. format short e Nota¸c˜ao cient´ıfica com 4 d´ıgitos decimais 2.7183e+ format long e Nota¸c˜ao cient´ıfica com 15 d´ıgitos decimais 2.718281828459045e+ format short g Nota¸c˜ao cient´ıfica com 4 d´ıgitos decimais 27. format long g Nota¸c˜ao cient´ıfica com 15 d´ıgitos decimais 27. format short eng Formato engenharia (exp. m´ultiplo de 3) 27.1828e+ format long eng Formato engenharia (exp. m´ultiplo de 3) 27.1828182845905e+ format rat Aprox. pela raz˜ao de menores inteiros 2528/ format hex Formato hexadecimal 403b2ecd2dd96d format bank D´olares e centavos fixos 27. format + +, −, branco

Uma vez selecionado, o formato escolhido permanece ativo at´e que a escolha de um novo formato seja feita. O comando

format compact

suprime muitas linhas em branco permitindo que mais informa¸c˜oes sejam exibidas na mesma p´agina ou tela do monitor. O comando

format loose

retorna ao formato n˜ao-compacto. Estes comandos s˜ao independentes dos demais comandos de formato.

1.11 Plotagem Simples

A extensa capacidade gr´afica de MATLAB n˜ao ´e totalmente considerada neste documento. No entanto, s˜ao ilustrados alguns exemplos simples de plotagem. Por exemplo, considere a plotagem da fun¸c˜ao y = sin(x), para 0 ≤ x ≤ 2 π.

Utilizando vetores, MATLAB primeiro define um vetor de 30 pontos entre 0 e 2π, em seguida calcula y = sin(x) para cada ponto, e ent˜ao plota a curva x × y, como mostrado na Figura 1.2: