Curso matlab

146
1a Semana da Engenharia Elétrica Universidade Federal do Ceará Campus Sobral Matlab Básico para Engenharia

description

Muito bom !

Transcript of Curso matlab

Page 1: Curso matlab

1a Semana da Engenharia Elétrica

Universidade Federal do CearáCampus Sobral

Matlab Básico para Engenharia

Page 2: Curso matlab

Matlab Básico para Engenharia

● Matlab é uma linguagem técnica de alta performance que integra computação, visualização e programação em um ambiente amigável no qual problemas e soluções são expressas de uma forma matematicamente familiar

Page 3: Curso matlab

Matlab Básico para Engenharia

● Aplicações tipicas:– Computação Matemática– Desenvolvimento de algorítimos– Modelagem, simulação e prototipagem– Analise de dados, exploração e visualização– Aplicação gráficas Científicas e de Engenharia– Desenvolvimento de aplicações

Page 4: Curso matlab

Matlab Básico para Engenharia

● Matlab vem de “Matrix Laboratory”● Cujo intuito original era prover acesso a

softwares matriciais desenvolvidos pelos projetos LINPACK e EISPACK

● Sua primeira versão foi escrita por um analista numérico chamado Cleve Moler na década de 70.

Page 5: Curso matlab

Matlab Básico para Engenharia

● Evoluiu para um sistema interativo cujo elemento básico de dado trata-se de matrizes que não requerem dimensionamento

● Com o passar dos anos transformou-se na ferramenta padrão para ensino e pesquisa básica e/ou avançada na matemática, engenharia, ciências aplicadas etc.

● Na industria fornece uma opção de ferramenta para análise pesquisa e desenvolvimento de alta qualidade.

Page 6: Curso matlab

Matlab Básico para Engenharia

● Outra grande vantagem do Matlab da qual deve-se grande parte do seu sucesso são os chamados toolboxes.

● Tratam-se de uma série de aplicações/soluções específicas implementadas através de funções (M-files) que expandem o ambiente do Matlab para solucionar problemas específicos nas mais diversas áreas.

● Processamento de Sinais, Sistemas de Controle, Redes Neurais, Lógica Fuzzy, Wavelets, etc...

Page 7: Curso matlab

Matlab Básico para Engenharia

● O sistema Matlab consiste em cinco partes principais:– Ambiente de Desenvolvimento– Biblioteca de Funções Matemáticas– Linguagem de Programação– Tratamento Gráfico– Aplication Program Interface (API)

Page 8: Curso matlab

Matlab Básico para Engenharia

● Ambiente de desenvolvimento– Conjunto de ferramentas e “instalações” que

visão auxiliar o uso das funções e arquivos do Matlab.

– Inclui itens como, Desktop do Matlab, Janela de Comando, Histórico de Comando, browsers para ajuda, Workspace, busca de caminhos, etc...

Page 9: Curso matlab

Matlab Básico para Engenharia

● Biblioteca de funções matemáticas:– Uma vasta coleção de algorítimos

computacionais que vão desde funções elementares como soma, senos ,cosenos, aritmética complexa etc. Até funções mais sofisticadas como inversão de matrizes, autovalores , funções de Bessel, transformada rápida de Fourier etc.

Page 10: Curso matlab

Matlab Básico para Engenharia

● Linguagem de programação:– Linguagem de programação de alto nível

baseada em matrizes/vetores com diretrizes de controle de fluxo, funções, estrutura de dados, entradas/saídas, propriedades de orientação a objeto etc...

– Permitem programação tanto de pequenas aplicações, códigos curtos e rápidos para solucionar demandas simples, quanto a criação de algorítimos extensos e complexos

Page 11: Curso matlab

Matlab Básico para Engenharia

● Tratamento Gráfico:– Sistema gráfico do Matlab que inclui comandos

de alto nível para visualização de dados de foram bidimensional e tridimensional. Possui também processamento de imagens, aprestação gráfica e animação.

– Inclui ainda comandos de “baixo nível” para customizar a aparência dos gráficos bem como construir uma interface gráfica de interação com o usuário completa em suas aplicações no Matlab.

Page 12: Curso matlab

Matlab Básico para Engenharia

● Aplication Program Interface (API):– Biblioteca particular que permite que programas

escritos em C e em Fortran interajam diretamente com o Matlab.

– Inclui dispositivos para chamada de rotinas do Matlab (dynamic Linking), uso do Matlab como “engine computacional”, leitura e escrita em arquivos-MAT, etc.

Page 13: Curso matlab

Matlab Básico para Engenharia

● Simulink:– Software a parte do Matlab para modelagem

simulação e analise de sistemas dinâmicos.– Permite a proposição a análise de a simulação

de um sistema qualquer.– Permite a montagens de modelos desde sua

base até a modificação de modelos existentes.– Suporta Sistemas Lineares e não lineares,

contínuos e discretos no tempo, etc.

Page 14: Curso matlab

Matlab Básico para Engenharia

● Simulink:

Page 15: Curso matlab

Matlab Básico para Engenharia

● Inicializando o Matlab:

Page 16: Curso matlab

Matlab Básico para Engenharia

Matlab Desktop

Page 17: Curso matlab

Matlab Básico para Engenharia

Page 18: Curso matlab

Matlab Básico para Engenharia

● Janela de Comando

Page 19: Curso matlab

Matlab Básico para Engenharia

● Histórico de Comandos

Page 20: Curso matlab

Matlab Básico para Engenharia

● Diretório Atual

Page 21: Curso matlab

Matlab Básico para Engenharia

● Workspace

Page 22: Curso matlab

Matlab Básico para Engenharia

● Editor Debugger

Page 23: Curso matlab

Matlab Básico para Engenharia

● Editor Debugger

Page 24: Curso matlab

Matlab Básico para Engenharia

Page 25: Curso matlab

Matlab Básico para Engenharia

● START

Page 26: Curso matlab

Matlab Básico para Engenharia

● Menu File => Preferences

Page 27: Curso matlab

Matlab Básico para Engenharia

● Função help– Indica os tópicos de ajuda disponíveis no Matlab

Page 28: Curso matlab

Matlab Básico para Engenharia

● Para visualizarmos os tópicos de forma compassada utilizamos o comando:– >> more on– >> help

Page 29: Curso matlab

Matlab Básico para Engenharia

● Para especificarmos a ajuda que necessitamos especificamos o comando– >> help sum ou >> help ops

Page 30: Curso matlab

Matlab Básico para Engenharia

● Operações Básicas– Os operados básicos no matlab são + - * / ^– Os mesmos devem ser utilizados em conjunto

com ()Ex:

significa 2 + 3/(4*5) ou 2 + (3/4)*5?

Page 31: Curso matlab

Matlab Básico para Engenharia

● O Matlab atua de acordo com as seguinte prioridades:– Quantidades contidas nos parêntesis ()– Potenciações: 2 + 3^2 = 2 + 9– * e / da esquerda para direita: 3*4/5 = 12/5+ e - da esquerda para direita: 3 + 4 - 5 = 7-5

● Desta forma o exemplo anterior seria:– 2 + (3/5)*5

Page 32: Curso matlab

Matlab Básico para Engenharia

● Para associar valores a variáveis simplesmente utilizamos o operador = no prompt de comando– EX:

● Podemos permitir ou não a vizualização do comando anterior com o operador ;– EX

Page 33: Curso matlab

Matlab Básico para Engenharia

● Realizem o exemplo:–

● Em cada caso ache o valor da expressão no Matlab e explique o porque do resultado em cada caso:

Z=ZZ 21

Page 34: Curso matlab

Matlab Básico para Engenharia

● Números e Formatos– O matlab é capaz de reconhecer diversos tipos

de números:

Obtenha números de todos estes tipos em variáveis distintas:

Page 35: Curso matlab

Matlab Básico para Engenharia

● No Matlab a notação e pode ser uilizada para representar expoentes na base 10.

● Todos os cálculos executados pelo Matlab são feitos em precisão dupla, ou seja, 15 algarismos significativos.

Page 36: Curso matlab

Matlab Básico para Engenharia

● A formatação de como o matlab apresenta estes números pode ser controlada pelo comando “format”

Page 37: Curso matlab

Matlab Básico para Engenharia

● Format

Page 38: Curso matlab

Matlab Básico para Engenharia

● Format

OBS: devemos chamar atenção para o fato de que o comando format modifica apenas a forma de como o número é apresentado e não seu valor ou forma de cálculo.

Page 39: Curso matlab

Matlab Básico para Engenharia

● Format– Para verificarmos qual o “tipo de format” que

está atualmente em uso utilizamos o comando

Page 40: Curso matlab

Matlab Básico para Engenharia

● Nomes para variáveis– O Matlab Permite qualquer combinação entre

letras e dígitos começadas por letras

– Permitido

– Não Permitido

– Case Sensitive

Page 41: Curso matlab

Matlab Básico para Engenharia

● Nomes para variáveis– Alguns nomes especiais devem ser evitados

Page 42: Curso matlab

Matlab Básico para Engenharia

● Outras funções Elementares importantes:– Trigonométricas: sin, cos, tan>> help sin

– Notemos que os argumentos das funções trigonométricas devem ser expressos em radianos

Page 43: Curso matlab

Matlab Básico para Engenharia

● Outras funções Elementares importantes:– Sqrt : Raiz quadrada– Exp : – Log: inverso da função exponencial (exp(x)),– Log10: logarítimo na base 10

– Identifique as operações

Page 44: Curso matlab

Matlab Básico para Engenharia

● Matrizes e Vetores– Vetores podem ser do tipo lina ou coluna

● Vetores Linhas– Separar os elementos de uma linha por espaços

em branco ou virgulas– Delimitar a lista de elementos da matriz por []

– O número de elementos é conhecido pelo comando

– Devemos proceder com cautela quanto a utilização dos espaços para a definição de vetores

Page 45: Curso matlab

Matlab Básico para Engenharia

Vetores Linhas– Para vetores do mesmo tamanho podemos

realizar certas operações aritméticas

Page 46: Curso matlab

Matlab Básico para Engenharia

Vetores Linhas– Podemos ainda criar vetores a partir de vetores

pré-existentes

– Por fim podemos manipular elementos em particular definindo sua posição no vetor utilizando o ()

Page 47: Curso matlab

Matlab Básico para Engenharia

Vetores Colunas– Construção similar aos vetores linhas;– Separação dos elementos realizada por ; ou

“novas linhas”– Ex:

Page 48: Curso matlab

Matlab Básico para Engenharia

Vetores Colunas– Operações aritméticas também podem ser

realizadas respeitando os precedentes matemáticos

– EX:

Page 49: Curso matlab

Matlab Básico para Engenharia

Transposição– Podemos converter um vetor linha em um vetor

coluna através do processo de transposição.– No Matlab este processo é denotado pelo

operador '– Ex

Page 50: Curso matlab

Matlab Básico para Engenharia

Operador Transposto– O operador de transposição pode ser utilizado

em conjunto com sentenças matemáticas de forma livre

– Ex:

Page 51: Curso matlab

Matlab Básico para Engenharia

Operador Transposto– Existe ainda uma outra funcionalidade para o

operador ' – Quando trabalhamos com números complexos o

operador ' representa o conjugado complexo de um número

– Ex:

Page 52: Curso matlab

Matlab Básico para Engenharia

Operador Transposto– Verifique o que acontece quando temos–

Page 53: Curso matlab

Matlab Básico para Engenharia

Operador Transposto– Para obtermos apenas o correspondente

transposto de um vetor formado por números complexo utilizamos:

Page 54: Curso matlab

Matlab Básico para Engenharia

● Matrizes e Vetores

Page 55: Curso matlab

Matlab Básico para Engenharia

● Matrizes e Vetores– Podemos entrar com matrizes de várias formas:

● Digitar explicitamente os elementos● Carregar matrizes por um arquivo externo● Gerar matrizes através de funções pé-estabelecidas● Gerar matrizes através de uma função própria criada

(M-file)– Para digitarmos os elementos em forma de lista

devemos seguir o procedimento:● Separar os elementos de uma linha por espaços em

branco ou virgulas● Usar o ; para indicar o fim de uma linha● Delimitar a lista de elementos da matriz por []

Page 56: Curso matlab

Matlab Básico para Engenharia

● Matrizes e Vetores– Desta forma o Matlab retornará a seguinte

resposta

Page 57: Curso matlab

Matlab Básico para Engenharia

● Matrizes e Vetores– Os Elementos específicos de uma matriz podem

ser manipulados e acessados através da notação A(i,j).

– T al notação especifica o elemento contido na linha i e coluna j da matriz A

– Ex:O Comando abaixo representa a soma de todos os elementos da coluna 4 da matriz A

– EX: Somar todas as linha e as colunas de A

Page 58: Curso matlab

Matlab Básico para Engenharia

● Matrizes e Vetores– Existe ainda uma outra forma de acessar

elementos específicos de uma matriz utilizando apenas um único operando.

– Podemos considerar a matriz como um único vetor linha ou coluna.

– Desta forma ao utilizarmos A(8) estamos nos referindo ao valor armazenado em A(4,2)

Page 59: Curso matlab

Matlab Básico para Engenharia

● Matrizes e Vetores– Se buscarmos uma posição fora das dimensões

da matriz especificada teremos o seguinte erro–

– No entanto se atribuirmos um valor a uma posição anteriormente inexistente a característica dinâmica das matrizes no Matlab modificará a matriz para acomodar a nova entrada

Page 60: Curso matlab

Matlab Básico para Engenharia

● O operador “:”– Um dos operadores mais importantes ao

trabalharmos com vetores e matrizes– Em sua forma mais simples é utilizado para criar

um vetor de passo unitário delimitados pelo menor e maior elemento

– ex:

Page 61: Curso matlab

Matlab Básico para Engenharia

● O operador “:”– Configurado na forma x:y temos que o segundo

elemento deve ser maior que o primeiro pois o comando busca alcançar y através do incremento de x.

– Se utilizarmos por exemplo K=100:4 teremos como resultado a criação de uma matriz K no workspace no entanto tal matriz é considerada “vazia”

Page 62: Curso matlab

Matlab Básico para Engenharia

● O operador “:”– Podemos também utilizar o operador : da forma

a:b:c– Temos assim um vetor que vai de a até b

através do incremento c

Page 63: Curso matlab

Matlab Básico para Engenharia

● O operador “:”– O operador : é ainda utilizado para indicar

porções de uma matriz– O comando A(1:k,j) se refere ao k primeiros

elementos da coluna j da matriz A– Ex: Outra forma de obtermos a soma de uma

coluna da matriz A

Temos a soma dos elementos da coluna 4

Page 64: Curso matlab

Matlab Básico para Engenharia

● O operador “:”– Quando utilizado de forma isolada o operador :

se refere a todos os elementos de uma determinada linha ou coluna.

– Poemos ainda utilizar o operador “end” que representa o ultimo elemento de um vetor.

– Ex:

– Descreva o resultado do comando

Page 65: Curso matlab

Matlab Básico para Engenharia

● O operador “:”– Podemos também utilizar o operador : da forma

a:b:c– Temos assim um vetor que vai de a até b

através do incremento c

Page 66: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Cinco matrizes básicas para uso no Matlab

● Zeros: Matrizes formadas apenas de zeros● Ones: Matrizes formadas apenas por 1´s● Eye: Matriz identidade● Rand: matriz composta de forma randômica

uniformemente distribuída● Randn: matriz composta de forma randômica com

distribuição normal– Ex:

Page 67: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Cinco matrizes básicas para uso no Matlab

● Zeros: Matrizes formadas apenas de zeros● Ones: Matrizes formadas apenas por 1´s● Eye: Matriz identidade● Rand: matriz composta de forma randômica

uniformemente distribuída● Randn: matriz composta de forma randômica com

distribuição normal– Ex:

Page 68: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Cinco matrizes básicas para uso no Matlab

● Zeros: Matrizes formadas apenas de zeros● Ones: Matrizes formadas apenas por 1´s● Eye: Matriz identidade● Rand: matriz composta de forma randômica

uniformemente distribuída● Randn: matriz composta de forma randômica com

distribuição normal– Ex:

Page 69: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Cinco matrizes básicas para uso no Matlab

● Zeros: Matrizes formadas apenas de zeros● Ones: Matrizes formadas apenas por 1´s● Eye: Matriz identidade● Rand: matriz composta de forma randômica

uniformemente distribuída● Randn: matriz composta de forma randômica com

distribuição normal– Ex:

Page 70: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Cinco matrizes básicas para uso no Matlab

● Zeros: Matrizes formadas apenas de zeros● Ones: Matrizes formadas apenas por 1´s● Eye: Matriz identidade● Rand: matriz composta de forma randômica

uniformemente distribuída● Randn: matriz composta de forma randômica com

distribuição normal– Ex:

Page 71: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Outra forma de carregar uma matriz é através de

um arquivo externo contendo dados no formato numérico.

– Crie um arquivo de texto no notepad com o seguinte conteúdo

– Salve o arquivo como matriz.dat no atual diretório corrente do matlab.

Page 72: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Utilizando o Comando load podemos carregar

eta matriz montada através de uma outra fonte ou em ma sessão anterior do Matlab.

Page 73: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Quando o arquivo não está no formato

suportado pelo Matlab (.DAT ou .MAT) utilizamos o menu FILE=>Import Data... para adequarmos os dados para o uso no Matlab

Page 74: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Import Data...

Page 75: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Concatenação

● Trata-se do processo de formar matrizes maiores a partir de matrizes menores já existentes.

● Para isto utilizamo o operador matricial [] juntamente com as matrizes já declaradas

Page 76: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Deletando linhas e colunas

● Utilizamos ainda o operador matricial [] da seguinte forma quando desejamos eliminar linhas ou colunas de matrizes:

● X(:,2)=[] deleta a segunda coluna da matriz X

Page 77: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Se tentarmos deletar um único elemento de uma

matriz o resultado não mais seria uma matriz e desta forma o matlab responderia da seguinte forma:

Page 78: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– No enanto se utilizarmos a especificação única

para elementos de uma matriz podemos deletar apena um único elemento e o conjunto de dados resultantes toma a forma de um vetor

Page 79: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Uma vez familiarizado com o comando sum e o

operador transposto ' apresentaremos outros importantes resultados com matrizes:

Page 80: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– O comando diag(A) oferece a diagonal principal

de A– Ex: soma dos elementos da diagonal principal

– Qual o resultado do comando

Page 81: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Matriz simétrica– A +A' ou A * A'

Page 82: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Determinante de uma matriz: det(A)

Page 83: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Inversa de uma Matriz: inv(A)

– Como a matriz A possui determinante 0 (singular) a mesma não possui inversa.

– O matlab avisa desta condição com um “warning” antes do resultado

Page 84: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Autovalores: eig(A)

Page 85: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Posto de A: rank(A)

Page 86: Curso matlab

Matlab Básico para Engenharia

● Operações Matriciais– Polinômio Característico de A : Poly(A)

Page 87: Curso matlab

Matlab Básico para Engenharia

● Matrizes esparsas– Necessitamos de 3 vetores. Os dois primeiros

indicam a localização dos elementos diferentes de zero e o ultimo indica o valor destes elemetos

Page 88: Curso matlab

Matlab Básico para Engenharia

● Operadores por elementos “.”–

Page 89: Curso matlab

Matlab Básico para Engenharia

● Operadores por elementos “.”– Ex

Page 90: Curso matlab

Matlab Básico para Engenharia

● Comando find– Retorna uma lista de posições (indices) de

elementos de um vetor ou uma matriz que satisfazem determinada condição

Page 91: Curso matlab

Matlab Básico para Engenharia

● Editor/Debugger– Menu Desktop=>Editor– Menu File=>New=>M-File

Page 92: Curso matlab

Matlab Básico para Engenharia

● Editor/Debugger– Utilizado para executar uma seqüência de

comandos pré-determinada– Diversas opções para execução dos comandos– Opção para seleção de breakpoints

Page 93: Curso matlab

Matlab Básico para Engenharia

● Editor/Debugger– Uma vez Iniciado o processo de Debug

podemos acessar os valores das variáveis já calculadas.

Page 94: Curso matlab

Matlab Básico para Engenharia

● Editor/Debugger– Podemos adicionar comentários através do

caractere % ou através do atalho CRTL+R

Page 95: Curso matlab

Matlab Básico para Engenharia

● Editor/Debugger– Utilize o editor para solucionar o seguinte

problema:– Crie uma tabela para armazenar em colunas

distintas os valores das funções sen(x2) cos(x2) e tan(x2) onde este ultimo valor é calculado a partir dos resultados das funções anteriores.

Page 96: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– Rotina utilizadas para criar laços de repetição ou

tomar decisões● IF● SWITCH● FOR● WHILE● BREAK

Page 97: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– IF: Avalia alógica de uma expressão e executa

um grupo de instruções quando a lógica é verdadeira

– As opções ELSEIF e ELSE fornecem a opção para execução de grupos alternativos de instruções.

Page 98: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– Expressões lógicas

– Ex:

Page 99: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– Expressões lógicas

● Quando utilizamos matrizes ou vetores os testes são realizados em cada elemento

– Ex:

Page 100: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– Expressões lógicas

● Podemos ainda combinar expressões lógicas da seguinte forma:

Page 101: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– IF

Page 102: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– Switch e Case: Executa um conjunto de

instruções base ado no valor de uma variável ou expressão.

– Os comandos case ou otherwise delimitam os conjuntos de instruções

Page 103: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– Switch e Case– Utilize o switch para reproduzir o algorítimo

executado com o comando IF

Page 104: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– Observamos desta forma uma peculiaridade no

comando Switch. Ao contrário de seu equivalente em C o comando não continua executando até a possibilidade final. Desta forma se o primeiro caso é verdadeiro as outras condições não são executadas mesmo sem a presença do comando break

Page 105: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– For: Repete um grupo de comandos delimitados

pelo “end” por um número determinado de vezes.

Page 106: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– While: Utilizado quando queremos repetir uma

série de comandos até que uma condição seja satisfeita, no entanto não podemos dizer de forma antecipada quantas iterações são necessárias.

– Ex: qual o maior valor de n que pode ser utilizado na soma para obtermos um resultado menor que 100?

Page 107: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– While: Utilizado quando queremos repetir uma

série de comandos até que uma condição seja satisfeita, no entanto não podemos dizer de forma antecipada quantas iterações são necessárias.

– Ex: qual o maior valor de n que pode ser utilizado na soma para obtermos um resultado menor que 100?

Page 108: Curso matlab

Matlab Básico para Engenharia

● Controle de Fluxo– Break: possibilita uma saída antecipada de um

laço for ou while.– Em laços concatenados o break possibilita a

saída do laço mais interno.

Page 109: Curso matlab

Matlab Básico para Engenharia

● Funções M-file– Utilizada quando desejamos preparar uma

combinação de operações e ideais em um script que pode ser acessado posteriormente de forma rápida.

– Tomaremos como exemplo o seguinte problema:● Desejamos preparar uma função que calcula a área A

de um triangulo cujo o comprimento dos lados é a, b e c.

Page 110: Curso matlab

Matlab Básico para Engenharia

● Funções M-file– Dois passos básicos são necessários para

definirmos funções no matlab,– O primeiro passo é definir um nome para a

função, de forma que não tenhamos conflito com as funções já existentes no matlab.

– Para este exemplo usaremos o nome “area” desta forma devemos salvar suas definições no arquivo area.m

Page 111: Curso matlab

Matlab Básico para Engenharia

● Funções M-file– Posteriormente a primeira linha do arquivo deve

ser formatada da seguinte forma:

– Em nosso exemplo temos como entradas as variáveis a, b e c representando o comprimento dos lados e como saída a área A

Page 112: Curso matlab

Matlab Básico para Engenharia

● Funções M-file– Finalmente implementamos o código que deve

ser utilizado para implementar a função.– No caso do exemplo temos:

Page 113: Curso matlab

Matlab Básico para Engenharia

● Funções M-file– Finalmente implementamos o código que deve

ser utilizado para implementar a função.– No caso do exemplo temos:

Page 114: Curso matlab

Matlab Básico para Engenharia

● Funções M-file– Por fim podemos documentar através de

comentários o arquivo de função de forma que o usuário tenha acesso ao comando ajuda

Page 115: Curso matlab

Matlab Básico para Engenharia

● Funções M-file– Por fim podemos documentar através de

comentários o arquivo de função de forma que o usuário tenha acesso ao comando ajuda

Page 116: Curso matlab

Matlab Básico para Engenharia

● Funções M-file– O exemplo anterior funciona apenas se a soma

de qualquer dois lados não exceder o terceiro.– Modifique a função para considerarmos esta

condição.

Page 117: Curso matlab

Matlab Básico para Engenharia

● Eficiência de códigos– O matlab permite cronometrarmos secções de

códigos através das funções “tic” e “toc”– “tic” ativa o cronometro para CPU– Enquanto o toc para o cronometro e retorna o

valor de tempo decorrido.– Ex

Page 118: Curso matlab

Matlab Básico para Engenharia

● Gráficos– O matlab possui uma extensa variedade para

representar vetores e matrizes na forma gráfica.– Veremos agora algumas das principais destas

ferramentas

Page 119: Curso matlab

Matlab Básico para Engenharia

● Gráficos– Plot

● Possui diferentes formas de uso dependendo da quantidade de seus argumentos de entrada.

● Em sua forma mais simples, dado um vetor y o comando “plot(y)” produz um gráfico dos elementos de y distribuídos de forma linear ao longo do x

● Ex: crie um veto Y aleatório de 10 posições de utilize o comando plot(Y)

Page 120: Curso matlab

Matlab Básico para Engenharia

● Gráficos– Plot(Y)

Page 121: Curso matlab

Matlab Básico para Engenharia

● Gráficos– Se utilizarmos 2 vetores x e y como entrada

teremos como resultado um gráfico de x vs y● EX:

Page 122: Curso matlab

Matlab Básico para Engenharia

● Gráficos– Podemos identificar os eixos presentes no

gráfico bem como adicionar um título ao mesmo através dos comandos:

Page 123: Curso matlab

Matlab Básico para Engenharia

● Gráficos– Múltiplos pares de dados z-y como argumentos

de entrada produzem múltiplos gráficos em apenas uma chamada do “plot”

– EX:

Page 124: Curso matlab

Matlab Básico para Engenharia

● Gráficos– É possível ainda especificarmos a cor e o estilo

de marcador do gráfico utilizando o “plot” com a seguinte sintaxe

– EX:

Page 125: Curso matlab

Matlab Básico para Engenharia

● Gráficos– Números Complexos: Ao trabalharmos com

números complexos o comando plot necessita apenas de um argumento para entrada dos dos já que os mesmo já estão representados em suas partes reais e imaginárias

– EX:

Page 126: Curso matlab

Matlab Básico para Engenharia

● Gráficos– Plot(Z):

Page 127: Curso matlab

Matlab Básico para Engenharia

● Gráficos– Números Complexos: No entanto se utilizarmos

o “plot” com mais de um argumento de entrada o Matlab irá ignorá a parte imaginária dos números na tentava de adequar o gráfico a apenas 2 dimensões:

– EX:

Page 128: Curso matlab

Matlab Básico para Engenharia

● Gráficos– Números Complexos: No entanto se utilizarmos

o “plot” com mais de um argumento de entrada o Matlab irá ignorá a parte imaginária dos números na tentava de adequar o gráfico a apenas 2 dimensões:

– EX:

Page 129: Curso matlab

Matlab Básico para Engenharia

● Gráficos– Hold: O comando “plot” possui como modo de

execução padrão de limpar a janela gráfica antes de adicionar um novo. No entanto este comportamento não nos permite executar comparação de gráficos se o mesmo forem criados em estágios diferentes do código.

– Desta forma o comando “hold on” sobrepor gráficos a partir de um determinado momento

Page 130: Curso matlab

Matlab Básico para Engenharia

● Gráficos– EX:

Page 131: Curso matlab

Matlab Básico para Engenharia

● Gráficos– Subplot: A janela de gráficos do matlab pode ser

dividida em uma matriz de mxn janelas menores nas quais cada uma pode conter um ou mais gráficos.

– As janelas são numeradas na forma de um vetor coluna iniciando da janela superior esquerda

– Comandos como “hold” ou “label” também são válidos nestes casos.

Page 132: Curso matlab

Matlab Básico para Engenharia

● Gráficos– EX:

● Especificamos que ajanela grafica deve serdividida em uma matriz 2x2 onde selecionamos asubjanela 1 para conter os resultados docomando plot(x,y)● Utilizamos agora os comandos “label”para identificarmos os eixos dografico da primeira subjanela.

Page 133: Curso matlab

Matlab Básico para Engenharia

● Gráficos– EX: Proceda da forma anterior para completaras janelas livres com as funções COS(X),

SEN(3X) e COS(3X).

Page 134: Curso matlab

Matlab Básico para Engenharia

● Gráficos

Page 135: Curso matlab

Matlab Básico para Engenharia

● Gráficos

Page 136: Curso matlab

Matlab Básico para Engenharia

● Gráficos

Page 137: Curso matlab

Matlab Básico para Engenharia

● Gráficos 3D– Uma superfície é definida matematicamente

como uma função de duas variáveis– Correspondendo a cada valor (x,y) computamos

o valor funcional por– Desta forma para traçarmos a superfície

devemos primeiramente decidir os limites de x e y

– Se por exemplo tivermos eobtemos como base o seguinte plano xy

f x , y

z= f x , y

1≤ y≤32≤x≤4

Page 138: Curso matlab

Matlab Básico para Engenharia

● Gráficos 3D– Uma realizadas estas definições construímos

uma superfície analisando o comportamento da função em cada ponto da “malha diferencial” construída

– No matlab estas operações são realizadas através dos comando “meshgrid” e “mesh” respectivamente

z= f x , y z= f x , y

Page 139: Curso matlab

Matlab Básico para Engenharia

● Gráficos 3D– Tomaremos o seguinte exemplo:– Construa a superfície definida pela função

Para os intervalos

Page 140: Curso matlab

Matlab Básico para Engenharia

● Gráficos 3D– Tomaremos o seguinte exemplo:– Construa a superfície definida pela função

Para os intervalos

– 1o Passo: Para construirmos a malha diferencial do plano XY criaremos dois vetores baseados nos intervalos que desejamos analisar e com o passo igual ao incremento diferencial em cada direção

Page 141: Curso matlab

Matlab Básico para Engenharia

● Gráficos 3D–

– 2o Passo: Implementamos a função desejada nas matrizes criadas pelo comando “meshgrid”

Page 142: Curso matlab

Matlab Básico para Engenharia

● Gráficos 3D– 3o Passo: Traçamos a superfície desejada

através do comando “mesh”–

Page 143: Curso matlab

Matlab Básico para Engenharia

● Gráficos 3D– EX–

Page 144: Curso matlab

Matlab Básico para Engenharia

● Gráficos 3D– EX–

Page 145: Curso matlab

Matlab Básico para Engenharia

● Gráficos 3D– EX–

Page 146: Curso matlab

Matlab Básico para Engenharia

● Gráficos 3D– EX–