




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
UFPE - Professor Geraldo Leite Torres
Tipologia: Notas de estudo
1 / 138
Esta página não é visível na pré-visualização
Não perca as partes importantes!





























































































&
Geraldo Leite Torres Professor Adjunto, PhD [email protected]
Laborat ´orio Digital de Sistemas de Pot ˆencia
DISTRIBUIC¸ ˜AO RESTRITA ©^ c 2001, 2005 GERALDO L. TORRES
ii
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:
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.
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.
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.
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:
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
MATLAB ´e um sistema interativo. Os comandos digitados no prompt >> s˜ao executados assim que a tecla
(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
!edit teste
edita o arquivo teste com o aplicativo edit do MS Windows.
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.
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
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.
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: