Você está na página 1de 69

Minicurso de MATLAB

Programa de Educao Tutorial de Engenharia Eltrica

16/04/2013

Franklin Zeno e Ailson Felipe

Ementa do Curso
Primeiros Passos no MATLAB Criando Arranjos Operaes Matemticas com Arranjos Rotinas (M-files) Grficos Bidimensionais Funes Programando no MATLAB Polinmios, Ajuste de Curva e Interpolao Grficos Tridimensionais Aplicaes em Clculo Numrico
16/04/2013 Franklin Zeno

Matemtica Simblica

Introduo
O MATLAB uma linguaguem poderosa em termos de computao tcnica. O nome MATLAB vem da eliso das palavras MATrix LABoratory. Isto se deve base operacional do software que so as matrizes. O MATLAB bastante verstil em clculos matemticos, modelagens e simulaes, anlises numricas e processamentos, visualizao e grficos, desenvolvimento de algoritmos, etc. Atualmente, o MATLAB largamente utilizado nas universidades e faculdades nos cursos introdutrios ou avanados de matemtica, cincias e, especialmente, nas engenharias. Na indstria, o software alcanou o status de ferramenta de pesquisa, projeto e desenvolvimento. O pacote-padro do MATLAB possui ferramentas 16/04/2013 (funes) comuns a Franklin Zeno diversas reas do conhecimento.

Continuao
Alm disso, o MATLAB disponibiliza uma srie de ferramentas adicionais (os toolboxes) que formam uma coleo de programas especiais projetados (e dedicados!) para resolver problemas especficos. Dentre os toolboxes mais utilizados, pode-se citar: processamento de sinais, clculo simblicos (literais), sistemas de controle e lgica fuzzy. At recentemente, a maioria dos usurios do MATLAB era formada de pessoas que possuam bastante conhecimento em linguaguem de programao, tais como FORTRAN e C, e migravam naturalmente para o MATLAB, medida que o software tornava-se popular. Consequentemente, a maior parte da literatura a respeito do MATLAB assumia que o leitor j conhecia certas nuances sobre programao de computadores.
16/04/2013 Franklin Zeno

Continuao
Os livros sobre o MATLAB traziam tpicos (ou aplicaes) avanados, dedicados a certos campos de pesquisa. Entretanto, nos ltimos anos, o MATLAB foi-se desvinculando desses pr-requisitos e sendo adotado nos cursos introdutrios das universidades como o primeiro programa de computador ensinado.

16/04/2013

Franklin Zeno

Iniciao ao Ambiente do MATLAB


Este tema descreve as principais caractersticas e propsitos das diferentes janelas do MATLAB. Aqui ser discutido em detalhes sobre a janela Command Window. E tambm como usar o MATLAB para realizar operaes aritmtricas com nmeros de um modo bastante parecido com as operaes realizadas em uma calculadora simples. E no fim desta primeira parte ser ensinado a declarar variveis escalares e utiliz-las em clculos numricos.

16/04/2013

Franklin Zeno

16/04/2013

Franklin Zeno

Janela Command Window Figure Editor Help Launch Pad Command History Workspace Current Directory

Prposito Janela principal, inicializa variveis e executa programas. Apresenta o(s) resultado(s) dos grficos. Permite a edio e a depurao de rotinas (script files) e funes. Ajuda na utilizao do programa Fornece acesso s ferramentas, demos e documentao. Apresenta o histrico dos comandos mais recentes digitados na janela Command Window. Disponibiliza informao sobre as variveis que esto em uso. Exibe os arquivos presente no diretrio ou na pasta atual.

16/04/2013

Franklin Zeno

Exemplo de aplicao na janela Editor

Exemplo de uma funo na janela Figure


16/04/2013 Franklin Zeno

O Help do MATLAB

16/04/2013

Franklin Zeno

Trabalhando com a Janela Command Windows


Observaes quanto ao uso da janela Command Windows

Para digitar um comando, o cursor posicionado prximo ao sinal de pronto (prompt) indicado por >>.

A janela Command Window

16/04/2013

Franklin Zeno

Operaes Aritmticas com Escalares


Operao
Adio Subtrao Multiplicao Diviso direita Diviso esquerda Exponenciao

Smbolo
+ * / \ ^

Exemplo
5+3 53 5*3 5/3 5\3=5/3 5 ^ 3(ou seja, 5 = 125)

16/04/2013

Franklin Zeno

1. Ordem de precedncia
Precedncia Mais alta Operao Matemtica Parntese. Quando ocorrem parntese aninhados, os parnteses mais internos so executados em primeiro lugar. Exponenciao Multiplicao, diviso (mesma precedncia) Adio e subtrao

Segunda Terceira Mais baixa

16/04/2013

Franklin Zeno

2. Utilizando o MATLAB como uma calculadora


Digite e pressione Enter. 8/2 executado primeiro.

Digite e pressione Enter. 7 + 8 executado primeiro.

5^3 executado primeiro, /2 executado em seguida.


16/04/2013 Franklin Zeno

1/3 executado primeiro, 27^(1/3) e 32^0.2 so executado em seguida e + executado por ltimo.

27^1 e 32^0.2 so executados inicialmente, /3 executado em seguida + executado por ltimo.

Digite reticncias ... (e pressione Enter) para continuar a expresso na linha seguinte.

A ltima expresso contm os quatro primeiros termos da srie de Taylor para sin(/4).

16/04/2013

Franklin Zeno

4. Formatando Dados Numricos


Comando format short Descrio Notao ponto fixo com 4 dgitos decimais para: 0.001 nmero 1000. Caso contrrio, formato do nmero short e. Notao ponto fixo com 14 dgitos decimais para: 0.001 nmero 1000. Caso contrrio, formato do nmero long e. Notao cientfica com 4 dgitos decimais. Notao cientfica com 15 dgitos decimais. Melhor em 5 dgitos entre a notao de ponto fixo ou flutuante. Melhor em 15 dgitos entre a notao de ponto fixo ou flutuante. Dois dgitos decimais. Elimina espaos para permitir que mais linhas de informao sejam mostradas na tela.
16/04/2013

Exemplo

41.4286

format long

41.42857142857143 4.1429e+001 4.142857142857143e+001 41.429 41.4285714285714 41.43

format short e format long e format short g format long g format bank format compact format loose

Adiciona espaos entre linhas (oposto ao format compact).

Franklin Zeno

5. Funes Elementares Nativas do MATLAB


O argumento um nmero.

O argumento uma expresso.

O argumento inclui uma funo.

Uma funo includa em uma expresso.

16/04/2013

Franklin Zeno

Funo sqrt(x)

Descrio Raiz quadrada

Exemplo >> sqrt(81) ans = 9 >> exp(5) ans = 148.4132 >> abs(-24) ans = 24 >> log(1000) ans = 6.9078 >> log10(1000) ans = 3 >> factorial(5) ans = 120

exp(x)

Exponencial

abs(x)

Valor absoluto (mdulo)

log(x)

Logaritmo neperiano (ln)

log10(x)

Logaritmo base 10

factorial(x)

Fatorial de x (x!) ( x deve ser um inteiro positivo)


16/04/2013

Franklin Zeno

Funo sin(x)

Descrio Seno do argumento x (x em radianos) Co-seno do argumento x (x em radianos) Tangente do argumento x (x em radianos) Cotangente do argumento x (x em radianos)

Exemplo >> sin(pi/6) ans = 0.5000 >> cos(pi/6) ans = 0.8660 >> tan(pi/6) ans = 0.5774 >> cot(pi/6) ans = 1.7321

cos(x)

tan(x)

cot(x)

16/04/2013

Franklin Zeno

Funo round(x)

Descrio Arredonda para o inteiro mais prximo. Arredonda para o inteiro positivo imediatamente menor. Arredonda para o inteiro positivo imediatamente maior. Arredonda para o inteiro negativo imediatamente menor. Retorna o resto da diviso x por y.

Exemplo >> round(17/5) ans = 3 >> fix(13/5) ans = 2 >> ceil(11/5) ans = 3 >> floor(-9/4) ans = -3 >> rem(13,5) ans = 3

fix(x)

ceil(x)

floor(x)

rem(x,y)

sign(x)

16/04/2013 1 (se x

Funo sinal. Retorna: >> sign(5) Franklin Zeno > 0); -1 (se x < 0) e ans = 0 (se x = 0). 1

Declarando Variveis Escalares


1. O operador de atribuio
Nome_da_varivel = Um valor ou uma expresso numrica

O nmero 15 atribudo varivel x. O MATLAB exibe a varivel e o valor atribudo.

Um novo valor atribudo varivel x. O novo valor 3 vezes o valor anterior de x menos 12.

16/04/2013

Franklin Zeno

Atribui 12 varivel a.

Atribui 4 varivel B.

Atribui o valor da expresso no lado direito do sinal (=) varivel C.

16/04/2013

Franklin Zeno

As variveis a, B e C foram declaradas e inicializadas, mas no tiveram o contedo exibido em virtude do ponto-e-vrgula em cada linha. O valor da varivel C exibido se o nome da varivel digitado e a tecla ENTER pressionada.

16/04/2013

Franklin Zeno

A varivel B e o contedo dela so exibidos porque um ponto-e-vrgula foi digitado aps a inicializao de B

O nmero 72 atribudo varivel ABB. Um novo nmero (9) atribudo varivel ABB. O valor real da varivel ABB exibido se o nome da varivel digitado na linha do prompt e a tecla Enter pressionada.
16/04/2013 Franklin Zeno

2. Regras Quanto ao Uso de Nomes de Variveis


Podem conter at 63 caracteres no MATLAB 7.0 Podem conter letras, nmeros e o caractere sublinhar (underscore) Devem iniciar com uma letra. O MATLAB case sensitive, ou seja, faz distino entre nomes de variveis com letras maisculas e minsculas. Por exemplo: AA, Aa, aA e aa podem ser nomes de quatro variveis diferentes. Evite usar nomes de funes nativas do MATLAB para nomear variveis (por exemplo: cos, sin, exp, sqrt, etc). Uma vez que o nome de uma funo utilizado para definir uma varivel, essa funo no pode ser usada.
16/04/2013 Franklin Zeno

3. Variveis Predefinidas
ans Varivel que assume o valor da ltima expressa no atribuda a uma varivel especificada. Se o usurio no atribui o valor de uma expresso a uma varivel, o MATLAB armazena, automaticamente, o resultado em ans. O nmero (aproximao).

pi

eps

A menor diferena entre dois nmeros. Equivale a 2^(-52) ou, aproximadamente, 2,22204e-16.

inf

Infinito.

O mesmo que i.

NaN

Abreviao de Not-a-Number. Usadi quando o MATLAB no pode determinar um valor numrico Franklin Zeno vlido. Por exemplo 0/0.16/04/2013

Comandos teis no Manuseio de Variveis


Comando clear clear x y z who whos Resultado Apaga da memria todas as variveis. Apaga da memria somente as variveis x, y e z. Exibe uma lista de variveis declaradas/ativas na memria. Exibe uma lista de variveis declaradas na memria, com o respectivo tamanho em bytes e a classe de armazenamento

16/04/2013

Franklin Zeno

Problemas

16/04/2013

Franklin Zeno

Criando Arranjos
Definitivamente , os arranjos so o modo-padro de o MATLAB armazenar e manipular dados. Um arranjo uma lista de nmeros organizados em linhas e/ou colunas. O arranjo mais simples (unidimensional) formado por uma linha ou uma coluna de nmeros; o arranjo mais complexo (p.ex., bidimensional) uma coleo de nmeros organizados em linhas e colunas. Frequentemente, um arranjo est ligado ao armazenamento de informaes e dados, como em uma tabela. Na engenharia (e em outras cincias), em geral os arranjos unidimensionais representam os vetores e os arranjos bidimensionais representam as matrizes.

16/04/2013

Franklin Zeno

Criando um Arranjo Unidimensional (Vetor)


Um arranjo unidimensional uma lista de nmeros dispostos em uma linha ou coluna. Um exemplo de arranjo a representao da posio de um ponto no espao tridimensional no sistema de coordenadas cartesianas.

16/04/2013

Franklin Zeno

Ano Populao (milhes)

1984 127

1986 130

1988 136

1990 145

1992 158

1994 178

1996 221

Criando vetor a partir de uma lista de nmeros conhecidos nome_da_variavel = [ digite os elementos do vetor ]

16/04/2013

Franklin Zeno

16/04/2013

Franklin Zeno

Criando vetor com elementos espaados de um fator constante nome_da_varivel = [m:q:n] ou nome_da_varivel = m:q:n

16/04/2013

Franklin Zeno

16/04/2013

Franklin Zeno

Criando vetor com especificando o primeiro e ltimo termos; e, em seguida, o nmeros de termos: nome_da_varivel = linspace(xi, xf, n) xi = primeiro elemento; xf = ltimo elemento; n = nmero de elementos;

16/04/2013

Franklin Zeno

Criando Arranjos Bidimensionais (Matrizes)


Um arranjo bidimensional (matriz) possui elementos dispostos em linhas e colunas. As matrizes muitas vezes so utilizadas para armazenar informaes na forma de uma tabela de nmeros ou strings. Alm disso, exercem um papel importante na lgebra linear e so usadas na engenharia (e em outras cincias) para descrever muitas grandezas fsicas.

nome_da_varivel = [ 1 linha de elementos; 2 linha de elementos; 3 linha de elementos; ....; ltima linha de elementos]

16/04/2013

Franklin Zeno

Um ponto-e-vrgula deve ser digitado para marcar o incio de uma nova linha.

A tecla Enter pressionada aps a digitao de cada uma das linhas desejadas.

16/04/2013

Franklin Zeno

16/04/2013

Franklin Zeno

1. Os Comandos zeros, ones e eye


Os comandos zeros(m, n), ones(m, n) e eye(n) podem ser utilizados para criar matrizes cujos elementos possuem valores especiais. Os dois primeiros comandos, zeros(m, n) e ones(m, n), criam matrizes com m linhas e n colunas, cujos os elementos so os nmeros 0 e 1, respectivamente. O comando eye(n) cria uma matriz quadrada com n linhas e n colunas, cujos elementos da diagonal principal so iguais a 1 e os demais elementos so 0.

16/04/2013

Franklin Zeno

Observao Quanto ao Uso de Variveis no MATLAB


Todas as variveis no MATLAB so arranjos. Uma varivel (escalar, vetor ou matriz) torna-se declarada quando lhe atribudo algum valor. Uma vez que uma varivel tenha sido declarada (como escaler, vetor ou matriz), podemos modific-la para qualquer outro tamanho ou tipo diferente do original.

16/04/2013

Franklin Zeno

Operador de Transposio
Declara o vetor linha aa.

Declara o vetor bb como o vetor transposto de aa.

16/04/2013

Declara uma matriz C com 3 linhas e Franklin Zeno 4 colunas.

Declara a matriz D como matriz transposta da matriz C

16/04/2013

Franklin Zeno

Referncia a um Elemento do Arranjo


1. Vetor
Se ve um vetor, ento para referenciar o elemento na posio k deste vetor usamos ve(k).

16/04/2013

Franklin Zeno

2. Matriz
Se mat uma matriz, ento para referenciar o elemento na linha n e na coluna m desta matriz usamos mat(m, n).

16/04/2013

Franklin Zeno

Dois Pontos (:) Referenciando Elementos de Arranjos


Para um vetor: va(:) referencia todos os elementos do vetor va. va(m:n) referencia os elementos entre posies m e n do vetor va .

16/04/2013

Franklin Zeno

Para uma matriz: A(:,n) referencia os elementos da matriz A em todas as linhas da coluna n. A(n,:) referencia os elementos da matriz A em todas as colunas de linha n. A(:,m:n) referencia os elementos da matriz A em todas as linhas entre colunas m e n. A(m:n,:) referencia os elementos da matriz A em todas as linhas entre as linhas m e n.

16/04/2013

Franklin Zeno

16/04/2013

Franklin Zeno

Adicionando Elementos s Variveis Declaradas


Adicionando elementos ao vetor

16/04/2013

Franklin Zeno

16/04/2013

Franklin Zeno

Adicionando elementos a uma matriz

16/04/2013

Franklin Zeno

Eliminando Elementos de uma Matriz

16/04/2013

Franklin Zeno

16/04/2013

Franklin Zeno

Funes Arranjos
Comando length(A)

Nativas

para

Manipulao

de

Descrio

Retorna o nmero de elementos do vetor A.

size(A)

Retorna um vetor linha [m, n] onde m e n representam a dimenso (m X n) da matriz A. Rearranja uma matriz A com r linhas e s colunas para n linhas e m colunas Quando v um vetor, cria uma matriz quadrada contendo os elementos de v na diagonal principal.
16/04/2013

reshape(A,m.,n)

diag(v)

diag(A)

Quando A uma matriz cria um vetor coluna a Franklin Zeno partir dos elementos na diagonal principal

Problemas
Usando os comandos ones e zeros, crie uma matriz 4x5 cujas primeiras duas linhas sejam formadas de 0 e as duas linhas seguintes sejam formadas de 1. Crie uma matriz 6x6 cujos elementos nas linhas/colunas 3 e 4 so uns (1), sendo o restante dos elementos da matriz zeros (0)

16/04/2013

Franklin Zeno

Operaes Matemticas com Arranjos


Uma vez que as variveis do MATLAB tenham sido declaradas, podemos us-las em uma ampla variedade de operaes matemticas. esperado que os usurios tenham algum conhecimento de operaes com matrizes e de lgebra linear .

16/04/2013

Franklin Zeno

Adio e Subtrao de Arranjos


Declara vetores Define o vetor C igual a soma vetA + vetB Declara matrizes

Subtrai a matriz B da A

Define uma matriz C igual a A +B

16/04/2013

O escalar 8 subtrado de todos os elementos Franklin Zeno da matriz C

Multiplicao de Arranjos
Declara uma matriz A 4x3

Declara uma matriz B 3x2

Defini C como C = A*B

16/04/2013

Franklin Zeno

Diviso de Arranjos
Declarando matriz A

Essa funo inv para determinar a inversa de A atribui o resultado matriz B

O produto das matrizes A e B resulta na identidade

16/04/2013

Franklin Zeno

Problemas

16/04/2013

Franklin Zeno

Operaes Escalares Envolvendo Elementos de Matrizes(Operaes Elemento por Elemento)

Smbolo .* .^ ./ .\

Descrio Multiplicao escalar Exponenciao escalar Diviso escalar direita Diviso escalar `esquerda

16/04/2013

Franklin Zeno

16/04/2013

Franklin Zeno

Funes Nativas para Clculos de Arranjos


Funo mean(A) max(A) [d,n] = max(A) min(A) [d,n] = min(A) sum(A)
16/04/2013

Descrio Se A um vetor, retorna o valor mdio dos elementos do vetor Se A um vetor a funo retornar o maior elemento Se A um vetor, d recebe o maior elemento de A Semelhante a funo max(A) Semelhante a funo [d,n] Se A um vetor, retorna a soma dos elementos do vetor. Franklin Zeno

Funo sort(A) median(A) std(A) det(A) dot(a,b) cross(a,b) inv(A)


16/04/2013

Descrio Se A um vetor, ordena os elementos de A na ordem crescente Se A um vetor, retorna o valor mediano dos elementos do vetor Se A um vetor, retorna o desviopadro dos elementos do vetor Retorna o determinante da matriz quadrada A Determina o produto escalar de dois vetores a e b. Determina o produto vetorial de dois vetores a e b Retorna Franklin a Zeno matriz inversa da matriz quadrada A

Gerao de Nmeros Aleatrios


Comando rand Descrio Gera um nico nmero aleatrio entre 0 e 1. Gera vetor linha com n elementos aleatrios entre 0 e 1. Gera uma matriz n elementos aleatrios situados entre 0 e 1. Exemplo >> rand ans = 0.8147 >> a = rand(1,4) a= 0.9058 0.1270 0.6324 >> b = rand(3) b= 0.0975 0.9575 0.2785 0.9649 0.5469 0.1576 >> c = rand(2,2) c= 0.8491 0.6787 0.9340 0.7577

rand(1,n)

0.9134

rand(n)

0.9706 0.9572 0.4854

rand(m,n)

Gera uma matriz mxn com nmeros aleatrios situados entre 0 e 1.

randperm(n)

Gera um vetor linha contendo n >> randperm(4) elementos que so a ans = 16/04/2013 Franklin Zeno permutao aleatria dos 1 4 3 2 inteiros de 1 at n.

Por exemplo, um vetor com 10 elementos possuindo valores entre -5 e 10 pode ser criado da seguinte forma:

16/04/2013

Franklin Zeno

Exemplo de Aplicaes
Conforme a figura, trs foras esto aplicadas num suporte. Determine a fora total (ou resultante aplicada ao suporte).

16/04/2013

Franklin Zeno

Exemplo de Aplicaes
Um trem e um carro aproximam-se de uma passagem de nvel. Em t = 0, o trem est 122m ao sul da passagem, viajando no sentido norte, com velocidade constante de 87 km/h; o carro est 61m a leste da passagem, viajando no sentido oeste com velocidade de 45 km/h e acelerao de 4m/s. Determine as posies do trem e do carro; a distncia e as velocidades relativas em cada segundo at o tempo t = 10s. Os resultados devem ser exibidos em uma matriz 11x6 que a primeira coluna represente os intervalos de tempo de interesse. A posio do trem e do carro, distncia relativa carro-trem, a velocidade do carro e a velocidade do trem, em relao ao carro, so outras colunas da tabela, nessa ordem.
16/04/2013 Franklin Zeno

Problemas
A figura ao lado mostra um circuito eltrico composto de resistores e fontes de tenso. Determine a corrente em cada resistor usando a lei de Kirchoff para tenses e o mtodo das correntes de malha. V1 = 20V V2 = 12V V3 = 40V R1 = 18 R2 = 10 R3 = 16 R4 = 6 R5 = 15 R6 = 8 R7 = 12 R8 = 14

16/04/2013

Franklin Zeno

Por hoje s pessoal !!

16/04/2013

Franklin Zeno

Você também pode gostar