Professional Documents
Culture Documents
Matlab uma linguagem tcnica de alta performance que integra computao, visualizao e programao em um ambiente amigvel no qual problemas e solues so expressas de uma forma matematicamente familiar
Aplicaes tipicas:
Computao Matemtica Desenvolvimento de algortimos Modelagem, simulao e prototipagem Analise de dados, explorao e visualizao Aplicao grficas Cientficas e de Engenharia Desenvolvimento de aplicaes
Matlab vem de Matrix Laboratory Cujo intuito original era prover acesso a softwares matriciais desenvolvidos pelos projetos LINPACK e EISPACK Sua primeira verso foi escrita por um analista numrico chamado Cleve Moler na dcada de 70.
Evoluiu para um sistema interativo cujo elemento bsico de dado trata-se de matrizes que no requerem dimensionamento Com o passar dos anos transformou-se na ferramenta padro para ensino e pesquisa bsica e/ou avanada na matemtica, engenharia, cincias aplicadas etc. Na industria fornece uma opo de ferramenta para anlise pesquisa e desenvolvimento de alta qualidade.
Outra grande vantagem do Matlab da qual deve-se grande parte do seu sucesso so os chamados toolboxes. Tratam-se de uma srie de aplicaes/solues especficas implementadas atravs de funes (M-files) que expandem o ambiente do Matlab para solucionar problemas especficos nas mais diversas reas. Processamento de Sinais, Sistemas de Controle, Redes Neurais, Lgica Fuzzy, Wavelets, etc...
Ambiente de Desenvolvimento Biblioteca de Funes Matemticas Linguagem de Programao Tratamento Grfico Aplication Program Interface (API)
Ambiente de desenvolvimento
Conjunto de ferramentas e instalaes que viso auxiliar o uso das funes e arquivos do Matlab. Inclui itens como, Desktop do Matlab, Janela de Comando, Histrico de Comando, browsers para ajuda, Workspace, busca de caminhos, etc...
Uma vasta coleo de algortimos computacionais que vo desde funes elementares como soma, senos ,cosenos, aritmtica complexa etc. At funes mais sofisticadas como inverso de matrizes, autovalores , funes de Bessel, transformada rpida de Fourier etc.
Linguagem de programao:
Linguagem de programao de alto nvel baseada em matrizes/vetores com diretrizes de controle de fluxo, funes, estrutura de dados, entradas/sadas, propriedades de orientao a objeto etc... Permitem programao tanto de pequenas aplicaes, cdigos curtos e rpidos para solucionar demandas simples, quanto a criao de algortimos extensos e complexos
Tratamento Grfico:
Sistema grfico do Matlab que inclui comandos de alto nvel para visualizao de dados de foram bidimensional e tridimensional. Possui tambm processamento de imagens, aprestao grfica e animao. Inclui ainda comandos de baixo nvel para customizar a aparncia dos grficos bem como construir uma interface grfica de interao com o usurio completa em suas aplicaes no Matlab.
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.
Simulink:
Software a parte do Matlab para modelagem simulao e analise de sistemas dinmicos. Permite a proposio a anlise de a simulao de um sistema qualquer. Permite a montagens de modelos desde sua base at a modificao de modelos existentes. Suporta Sistemas Lineares e no lineares, contnuos e discretos no tempo, etc.
Simulink:
Inicializando o Matlab:
Janela de Comando
Histrico de Comandos
Diretrio Atual
Workspace
Editor Debugger
Editor Debugger
START
Funo help
Operaes Bsicas
Os operados bsicos no matlab so + - * / ^ Os mesmos devem ser utilizados em conjunto com () Ex:
2 + (3/5)*5
EX:
EX
Realizem o exemplo:
Z = Z Z 1
2
Em cada caso ache o valor da expresso no Matlab e explique o porque do resultado em cada caso:
Nmeros e Formatos
No Matlab a notao e pode ser uilizada para representar expoentes na base 10.
Todos os clculos executados pelo Matlab so feitos em preciso dupla, ou seja, 15 algarismos significativos.
A formatao de como o matlab apresenta estes nmeros pode ser controlada pelo comando format
Format
Format
OBS: devemos chamar ateno para o fato de que o comando format modifica apenas a forma de como o nmero apresentado e no seu valor ou forma de clculo.
Format
Para verificarmos qual o tipo de format que est atualmente em uso utilizamos o comando
O Matlab Permite qualquer combinao entre letras e dgitos comeadas por letras Permitido No Permitido Case Sensitive
Notemos que os argumentos das funes trigonomtricas devem ser expressos em radianos
Sqrt : Raiz quadrada Exp : Log: inverso da funo exponencial (exp(x)), Log10: logartimo na base 10 Identifique as operaes
Matrizes e Vetores
Vetores podem ser do tipo lina ou coluna Separar os elementos de uma linha por espaos em branco ou virgulas Delimitar a lista de elementos da matriz por [] O nmero de elementos conhecido pelo comando Devemos proceder com cautela quanto a utilizao dos espaos para a definio de vetores
Vetores Linhas
Por fim podemos manipular elementos em particular definindo sua posio no vetor utilizando o ()
Construo similar aos vetores linhas; Separao dos elementos realizada por ; ou novas linhas Ex:
Operaes aritmticas tambm podem ser realizadas respeitando os precedentes matemticos EX:
Podemos converter um vetor linha em um vetor coluna atravs do processo de transposio. No Matlab este processo denotado pelo operador ' Ex
O operador de transposio pode ser utilizado em conjunto com sentenas matemticas de forma livre Ex:
Existe ainda uma outra funcionalidade para o operador ' Quando trabalhamos com nmeros complexos o operador ' representa o conjugado complexo de um nmero Ex:
Para obtermos apenas o correspondente transposto de um vetor formado por nmeros complexo utilizamos:
Matrizes e Vetores
Matrizes e Vetores
Digitar explicitamente os elementos Carregar matrizes por um arquivo externo Gerar matrizes atravs de funes p-estabelecidas Gerar matrizes atravs de uma funo prpria criada (M-file)
Separar os elementos de uma linha por espaos em branco ou virgulas Usar o ; para indicar o fim de uma linha Delimitar a lista de elementos da matriz por []
Matrizes e Vetores
Matrizes e Vetores
Os Elementos especficos de uma matriz podem ser manipulados e acessados atravs da notao A(i,j). T al notao 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
Matrizes e Vetores
Existe ainda uma outra forma de acessar elementos especficos 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)
Matrizes e Vetores
Se buscarmos uma posio fora das dimenses da matriz especificada teremos o seguinte erro No entanto se atribuirmos um valor a uma posio anteriormente inexistente a caracterstica dinmica das matrizes no Matlab modificar a matriz para acomodar a nova entrada
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 unitrio delimitados pelo menor e maior elemento ex:
O operador :
Configurado na forma x:y temos que o segundo elemento deve ser maior que o primeiro pois o comando busca alcanar y atravs do incremento de x. Se utilizarmos por exemplo K=100:4 teremos como resultado a criao de uma matriz K no workspace no entanto tal matriz considerada vazia
O operador :
Podemos tambm utilizar o operador : da forma a:b:c Temos assim um vetor que vai de a at b atravs do incremento c
O operador :
O operador : ainda utilizado para indicar pores 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
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:
O operador :
Podemos tambm utilizar o operador : da forma a:b:c Temos assim um vetor que vai de a at b atravs do incremento c
Operaes Matriciais
Ex:
Zeros: Matrizes formadas apenas de zeros Ones: Matrizes formadas apenas por 1s Eye: Matriz identidade Rand: matriz composta de forma randmica uniformemente distribuda Randn: matriz composta de forma randmica com distribuio normal
Operaes Matriciais
Ex:
Zeros: Matrizes formadas apenas de zeros Ones: Matrizes formadas apenas por 1s Eye: Matriz identidade Rand: matriz composta de forma randmica uniformemente distribuda Randn: matriz composta de forma randmica com distribuio normal
Operaes Matriciais
Ex:
Zeros: Matrizes formadas apenas de zeros Ones: Matrizes formadas apenas por 1s Eye: Matriz identidade Rand: matriz composta de forma randmica uniformemente distribuda Randn: matriz composta de forma randmica com distribuio normal
Operaes Matriciais
Ex:
Zeros: Matrizes formadas apenas de zeros Ones: Matrizes formadas apenas por 1s Eye: Matriz identidade Rand: matriz composta de forma randmica uniformemente distribuda Randn: matriz composta de forma randmica com distribuio normal
Operaes Matriciais
Ex:
Zeros: Matrizes formadas apenas de zeros Ones: Matrizes formadas apenas por 1s Eye: Matriz identidade Rand: matriz composta de forma randmica uniformemente distribuda Randn: matriz composta de forma randmica com distribuio normal
Operaes Matriciais
Outra forma de carregar uma matriz atravs de um arquivo externo contendo dados no formato numrico. Crie um arquivo de texto no notepad com o seguinte contedo
Operaes Matriciais
Utilizando o Comando load podemos carregar eta matriz montada atravs de uma outra fonte ou em ma sesso anterior do Matlab.
Operaes Matriciais
Quando o arquivo no est no formato suportado pelo Matlab (.DAT ou .MAT) utilizamos o menu FILE=>Import Data... para adequarmos os dados para o uso no Matlab
Operaes Matriciais
Import Data...
Operaes Matriciais
Concatenao
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
Operaes Matriciais
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
Operaes Matriciais
Se tentarmos deletar um nico elemento de uma matriz o resultado no mais seria uma matriz e desta forma o matlab responderia da seguinte forma:
Operaes Matriciais
No enanto se utilizarmos a especificao nica para elementos de uma matriz podemos deletar apena um nico elemento e o conjunto de dados resultantes toma a forma de um vetor
Operaes Matriciais
Uma vez familiarizado com o comando sum e o operador transposto ' apresentaremos outros importantes resultados com matrizes:
Operaes Matriciais
O comando diag(A) oferece a diagonal principal de A Ex: soma dos elementos da diagonal principal
Operaes Matriciais
Operaes Matriciais
Operaes Matriciais
Como a matriz A possui determinante 0 (singular) a mesma no possui inversa. O matlab avisa desta condio com um warning antes do resultado
Operaes Matriciais
Autovalores: eig(A)
Operaes Matriciais
Posto de A: rank(A)
Operaes Matriciais
Matrizes esparsas
Necessitamos de 3 vetores. Os dois primeiros indicam a localizao dos elementos diferentes de zero e o ultimo indica o valor destes elemetos
Ex
Comando find
Retorna uma lista de posies (indices) de elementos de um vetor ou uma matriz que satisfazem determinada condio
Editor/Debugger
Editor/Debugger
Utilizado para executar uma seqncia de comandos pr-determinada Diversas opes para execuo dos comandos Opo para seleo de breakpoints
Editor/Debugger
Uma vez Iniciado o processo de Debug podemos acessar os valores das variveis j calculadas.
Editor/Debugger
Editor/Debugger
Utilize o editor para solucionar o seguinte problema: Crie uma tabela para armazenar em colunas distintas os valores das funes sen(x2) cos(x2) e tan(x2) onde este ultimo valor calculado a partir dos resultados das funes anteriores.
Controle de Fluxo
Controle de Fluxo
IF: Avalia algica de uma expresso e executa um grupo de instrues quando a lgica verdadeira As opes ELSEIF e ELSE fornecem a opo para execuo de grupos alternativos de instrues.
Controle de Fluxo
Expresses lgicas
Ex:
Controle de Fluxo
Controle de Fluxo
Expresses lgicas
Controle de Fluxo
IF
Controle de Fluxo
Switch e Case: Executa um conjunto de instrues base ado no valor de uma varivel ou expresso. Os comandos case ou otherwise delimitam os conjuntos de instrues
Controle de Fluxo
Switch e Case Utilize o switch para reproduzir o algortimo executado com o comando IF
Controle de Fluxo
Observamos desta forma uma peculiaridade no comando Switch. Ao contrrio de seu equivalente em C o comando no continua executando at a possibilidade final. Desta forma se o primeiro caso verdadeiro as outras condies no so executadas mesmo sem a presena do comando break
Controle de Fluxo
For: Repete um grupo de comandos delimitados pelo end por um nmero determinado de vezes.
Controle de Fluxo
While: Utilizado quando queremos repetir uma srie de comandos at que uma condio seja satisfeita, no entanto no podemos dizer de forma antecipada quantas iteraes so necessrias. Ex: qual o maior valor de n que pode ser utilizado na soma para obtermos um resultado menor que 100?
Controle de Fluxo
While: Utilizado quando queremos repetir uma srie de comandos at que uma condio seja satisfeita, no entanto no podemos dizer de forma antecipada quantas iteraes so necessrias. Ex: qual o maior valor de n que pode ser utilizado na soma para obtermos um resultado menor que 100?
Controle de Fluxo
Break: possibilita uma sada antecipada de um lao for ou while. Em laos concatenados o break possibilita a sada do lao mais interno.
Funes M-file
Utilizada quando desejamos preparar uma combinao de operaes e ideais em um script que pode ser acessado posteriormente de forma rpida. Tomaremos como exemplo o seguinte problema:
Desejamos preparar uma funo que calcula a rea A de um triangulo cujo o comprimento dos lados a, b e c.
Funes M-file
Dois passos bsicos so necessrios para definirmos funes no matlab, O primeiro passo definir um nome para a funo, de forma que no tenhamos conflito com as funes j existentes no matlab. Para este exemplo usaremos o nome area desta forma devemos salvar suas definies no arquivo area.m
Funes M-file
Em nosso exemplo temos como entradas as variveis a, b e c representando o comprimento dos lados e como sada a rea A
Funes M-file
Finalmente implementamos o cdigo que deve ser utilizado para implementar a funo. No caso do exemplo temos:
Funes M-file
Finalmente implementamos o cdigo que deve ser utilizado para implementar a funo. No caso do exemplo temos:
Funes M-file
Por fim podemos documentar atravs de comentrios o arquivo de funo de forma que o usurio tenha acesso ao comando ajuda
Funes M-file
Por fim podemos documentar atravs de comentrios o arquivo de funo de forma que o usurio tenha acesso ao comando ajuda
Funes M-file
O exemplo anterior funciona apenas se a soma de qualquer dois lados no exceder o terceiro. Modifique a funo para considerarmos esta condio.
Eficincia de cdigos
O matlab permite cronometrarmos seces de cdigos atravs das funes tic e toc tic ativa o cronometro para CPU Enquanto o toc para o cronometro e retorna o valor de tempo decorrido. Ex
Grficos
O matlab possui uma extensa variedade para representar vetores e matrizes na forma grfica. Veremos agora algumas das principais destas ferramentas
Grficos
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 grfico dos elementos de y distribudos de forma linear ao longo do x Ex: crie um veto Y aleatrio de 10 posies de utilize o comando plot(Y)
Grficos
Plot(Y)
Grficos
Grficos
Podemos identificar os eixos presentes no grfico bem como adicionar um ttulo ao mesmo atravs dos comandos:
Grficos
Mltiplos pares de dados z-y como argumentos de entrada produzem mltiplos grficos em apenas uma chamada do plot EX:
Grficos
possvel ainda especificarmos a cor e o estilo de marcador do grfico utilizando o plot com a seguinte sintaxe EX:
Grficos
Nmeros Complexos: Ao trabalharmos com nmeros complexos o comando plot necessita apenas de um argumento para entrada dos dos j que os mesmo j esto representados em suas partes reais e imaginrias EX:
Grficos
Plot(Z):
Grficos
Nmeros Complexos: No entanto se utilizarmos o plot com mais de um argumento de entrada o Matlab ir ignor a parte imaginria dos nmeros na tentava de adequar o grfico a apenas 2 dimenses: EX:
Grficos
Nmeros Complexos: No entanto se utilizarmos o plot com mais de um argumento de entrada o Matlab ir ignor a parte imaginria dos nmeros na tentava de adequar o grfico a apenas 2 dimenses: EX:
Grficos
Hold: O comando plot possui como modo de execuo padro de limpar a janela grfica antes de adicionar um novo. No entanto este comportamento no nos permite executar comparao de grficos se o mesmo forem criados em estgios diferentes do cdigo. Desta forma o comando hold on sobrepor grficos a partir de um determinado momento
Grficos
EX:
Grficos
Subplot: A janela de grficos do matlab pode ser dividida em uma matriz de mxn janelas menores nas quais cada uma pode conter um ou mais grficos. As janelas so numeradas na forma de um vetor coluna iniciando da janela superior esquerda Comandos como hold ou label tambm so vlidos nestes casos.
Grficos
EX:
Especificamos que a janela grafica deve serdividida em uma matriz 2x2 onde selecionamos a subjanela 1 para conter os resultados do comando plot(x,y) Utilizamos agora os comandos label para identificarmos os eixos do grafico da primeira subjanela.
Grficos
EX: Proceda da forma anterior para completar as janelas livres com as funes COS(X), SEN(3X) e COS(3X).
Grficos
Grficos
Grficos
Grficos 3D
Uma superfcie definida matematicamente como uma funo de duas variveis f x , y Correspondendo a cada valor (x,y) computamos o valor funcional por z = f x , y Desta forma para traarmos a superfcie devemos primeiramente decidir os limites de x e y Se por exemplo tivermos 2 x 4 e 1 y 3 obtemos como base o seguinte plano xy
Grficos 3D
Uma realizadas estas definies construmos uma superfcie analisando o comportamento da funo z = f x , y em cada ponto da malha diferencial construda z = f x , y No matlab estas operaes so realizadas atravs dos comando meshgrid e mesh respectivamente
Grficos 3D
Para os intervalos
Grficos 3D
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 direo
Grficos 3D
2o Passo: Implementamos a funo desejada nas matrizes criadas pelo comando meshgrid
Grficos 3D
Grficos 3D
EX
Grficos 3D
EX
Grficos 3D
EX
Grficos 3D
EX