Você está na página 1de 22

21/12/2010

Introduo a programao em Matlab e seu uso como ferramenta de auxlio a Engenheiros

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Palestrante
Vicente Angelo de Sousa Junior
Graduao em Engenharia Eltrica: 2000
Universidade Federal do Cear - UFC, Cear.

Mestrado em Engenharia Eltrica: 2002


Universidade Federal do Cear - UFC, Cear; Ttulo da Dissertao: Anlise de desempenho de sistemas multi-servio WCDMA com antenas inteligentes (simulador em C++, ps-processamento em Matlab)

Doutorado em Engenharia de Teleinformtica: 2009


Universidade Federal do Cear - UFC, Cear; Universidade Estadual de Campinas, UNICAMP, Campinas; Ttulo da Tese: Seleo de Acesso e Gerenciamento de Recursos de Rdio em Redes Multi-Acesso (simulador em Matlab)

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

21/12/2010

Palestrante
2000: Pesquisador Junior:
PCT-Motorola (Universidade Federal do Cear - UFC, 2000). Matlab como auxlio a disciplinas.

2001-2006: Pesquisador snior:


Cooperao Tcnico-Cientfica entre a Ericsson do Brasil e a Universidade Federal do Cear (UFC, GTEL, Cear, 2001-2006). Vrios simuladores de prova de conceito em Matlab (WCDMA, Antenas inteligentes, Multi-acesso, otimizao de sistemas sem fio)

2006-2010: pesquisador, Lider de P&D e gerente de projetos


Instituto Nokia de Tecnologia - INdT, Manaus, 2006-2010. Simuladores em Matlab para: (i) desenvolvimento de novos produtos; (ii) padronizao; (iii) pr-venda e auxlio ao ncleo de negcios.

2010-futuro: Professor
Universidade Federal do Cear , 2003-2004. Universidade Federal do Rio Grande do Norte, 2010-futuro Auxilio em disciplinas, trabalhos cientficos e projetos acadmicos Grupo de pesquisa: Grupo de Pesquisa em Prototipagem Rpida de Solues para Comunicao Sem Fio

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Palestrante
1 captulo de livro internacional: 1 artigo em jornal internacional 1 artigo em jornal nacional 2 mini-cursos em congresso nacionais 19 artigos em congressos internacionais 8 artigos em congressos nacionais 2 softwares sem registro de patente 1 patente registrada internacionalmente Mais de 10 relatrios tcnicos em projetos com companhias internacionais de telecomunicaes

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

21/12/2010

Objetivos
MATLAB?? Algum conhece? O que j fez no Matlab? E quanto a outras linguagens de programao?

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

O mini-curso
Mdulo 1: Apresentao e Introduo ao Ambiente do Matlab
Introduo ao Matlab; Descrio do ambiente grfico e formas de acesso e manipulao de arquivos do Matlab; Comandos bsicos; Comandos de acesso rpido aos recursos do Matlab; Nmeros complexos, forma exponencial e cartesiana, mdulo e fase Dias/Horrios: 17/11/2010 (quarta), horrio: 9:00 12:00 (local: sala 4E5) 19/11/2010 (sexta), horrio: 9:00 12:00 (local: sala 4E5)

Mdulo 2: Polinmios, Operao com Matrizes e Vetores


Polinmios; Demonstrao de tcnicas de manipulao de vetores. Declarao, mdulo, exponenciao, diviso e manipulao de elementos de um vetor; Demonstrao de tcnicas de manipulao de matrizes; Declarao de matrizes simples e complexas, adio, multiplicao e diviso; Matriz transposta, inversa, escalonamento, autovetores e autovalores, exponenciao e matriz de funes). Dias/Horrios: 19/11/2010 (sexta), horrio: 19:00-22:00 (local: sala 4E5) 20/11/2010 (sbado), horrio: 08:00-12:00 (local: sala 4E5)

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

21/12/2010

O mini-curso
Mdulo 3: Controle de fluxo no Matlab e Grficos
Controle de fluxo no Matlab (Controle por laos; Controle de fluxo encadeado); Grficos bidimensionais; gerenciamento dos elementos grficos no Matalb; Grficos bidimensionais muito teis para Engenharia; Grficos tridimensionais. Dias/Horrios 20/11/2010 (sbado), horrio: 14:00-18:00 (local: sala 4E5) 22/11/2010 (segunda): 8:00 12:00 (local: sala 4E5)

Mdulo 4: Toolboxes do Matlab, Introduo ao Simulink , Casos de estudo e dicas de Otimizao de cdigos em Matlab
Toolboxes do Matlab Introduo ao Simulink Aplicao do Matlab a problemas prticos de engenharia. Casos de estudos: manipulao de imagens (jpg, png e gif); manipulao de som (wav). Otimizao de cdigos em Matlab Dias/Horrios: 22/11/2010 (segunda): 19:00-22:00 (local: sala 4E6) 24/11/2010 (quarta): 9:00 12:00 (local: sala 4E5) 26/11/2010 (sexta): 9:00 12:00 (local: sala 4E5)

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Mdulo 1: Apresentao e Introduo ao Ambiente do Matlab


Ao final desse mdulo estaremos preparados a:
Entender o que e para que serve o Matlab Entender o ambiente grfico, formas de acesso e manipulao de arquivos do Matlab Conhecer comandos bsicos (adio, multiplicao, funes trigonomtricas, logartmicas e etc) Declarar nmeros complexos, forma exponencial e cartesiana, mdulo e fase.

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

21/12/2010

Introduo
O MATLAB um pacote de software para utilizao em atividades cientficas e de Engenharia.
Ele resolve problemas utilizando anlise numrica, matricial, processamento de sinais, controle, identificao de sistemas, redes neurais, etc., podendo apresentar solues grficas com a mesma facilidade das apresentadas pelas solues analticas.

O nome MATLAB significa Matrix Laboratory. A principal idia do MATLAB servir como uma ferramenta de prototipagem rpida por software. Possui uma vasta biblioteca de comandos. O MATLAB tambm uma ferramenta fcil de aprender, possui um cdigo otimizado para realizar operaes matemticas e sua linguagem interpretada, o que torna a identificao de erros mais simples.

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Introduo
Desenvolvedor: Mathworks (http://www.mathworks.com) Distribuidor no Brasil: (http://www.opencadd.com.br)

A Opencadd disponibiliza seminrios gratuitos na internet (em Ingls e Portugus): http://www.opencadd.com.br/site/content/news/webinars/

Existe uma infinidade de material gratuito na Matlab Central: http://www.mathworks.com/matlabcentral/

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

21/12/2010

Famlias de produtos do Matlab

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

11

Preo (cotao: 15 de setembro 2010)


Licena Acadmica: Classroom License - uso educacional (no considerando Pesquisa para gerao de software). Classroom License uma modalidade exclusiva para sala de aula. Cada toolbox: 144,00 Matlab: 411,00 e Matlab compiler: 411,00 A Licena Acadmica: Individual License uso restrito Universidade, podendo gerar relatrios, publicaes e apresentaes acadmicas (Trabalho de Concluso de Curso, Teses e Dissertaes). No pode ser utilizada para ministrar aula. Caso o resultado da pesquisa gere um produto que possa sercomercializado, dever ser usada a Licena Comercial Cada toolbox: 625,00 Matlab: 1.791,00 e Matlab compiler: 1.791,00

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

12

21/12/2010

Introduo
Programar em MATLAB

Vantagens
Linguagem de alto nvel Cdigo simples Implementao rpida e fcil Vrias bibliotecas com comandos e funcionalidades disponveis

Desvantagens
Lentido devido a ser uma linguagem interpretada M programao deixa o cdigo muito lento (tempo de execuo) Laos de concatenados geralmente so muito lentos

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Introduo - Arquivos do MATLAB


Arquivos .MAT
Arquivos com contedo das variveis Economiza recursos de processamento e espao de memria Tambm importante para guardar resultados que sero utilizados em clculos futuros. Para salvar o contedo use o comando save enquanto que para recuperar, o comando load.

Arquivos .m
Tipo funo: definio de uma funo para tratamento de variveis locais
Nome: nome_da_funo.m (primeira linha a definio da funo)

Tipo script: sequncia de comandos MATLAB que manipulam as variveis do workspace


sem argumentos nome: qualquer_nome.m
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

21/12/2010

Introduo - Arquivos do MATLAB


Exemplo de funo
function y = soma(x, y) % Realiza a soma x + y y=x+y

Exemplo de script
x = 1; s = 2; s+x

Nome do arquivo:
soma.m

Nome do arquivo: proj1.m Executar


> proj1 ans = 3

Executar
> soma( 9, 13 ) ans = 22

Ainda
> help soma realiza a soma x + y
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Ainda
Scritps podem chamar funes

Vamos praticar
A gua congela a 32o e ferve a 212o na escala Fahrenheit. Se C e F so temperaturas nas escalas Celsius e Fahrenheit, respectivamente, a frmula F = 9C/5 + 32 converte uma temperatura de escala Celsius para a Fahrenheit. Utilize linhas de comando do Matlab para converter a temperatura de 37oC para Fahrenheit. A seguir crie uma funo na qual o usurio entre um valor em graus Celsius e seja retornado o valor em graus Fahrenheit. Faa uma funo que pea a temperatura em oC ao invs de entrar como argumento. Nome do arquivo: converter.m e converter2.m
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

21/12/2010

Ambiente de desenvolvimento
Menu Principal Diretrio de trabalho Acesso ao Simulink

Cria arquivo do tipo m Variveis armazenadas em memria

rea de trabalho ou comandos

Histrico de comandos
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Ambiente de desenvolvimento
(a partir da verso 2009)
Diretrio de trabalho Menu Principal Acesso a demos e vdeo-aulas Variveis

Navegao (diretrios e arquivos)

Acesso a funes (comandos do Matlab)

Menu rpido

rea de trabalho e comandos

Histrico de comandos

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

21/12/2010

Ambiente de desenvolvimento
(a partir da verso 2009)

Menu rpido

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Ambiente de desenvolvimento
(a partir da verso 2009)

Acesso rpido a demos, toolboxes, etc

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

10

21/12/2010

Ambiente de desenvolvimento
(a partir da verso 2009)

Acesso a funes (comandos do Matlab)

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Ambiente de desenvolvimento
(a partir da verso 2009)

Acesso a funes (comandos do Matlab)


Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Descrio, modo de usar, etc

11

21/12/2010

Ambiente de desenvolvimento
(a partir da verso 2009)
Videos sobre toolboxes, atualizaes do Matlab, entre outros A cesso a videos com demos, cursos por tema

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Ambiente de Edio Modo Debug


Insere um break point* Remove um break point* Acesso rpido a comandos do Matlab

M-Lint: dicas e warnings para melhoria de cdigos so


sugeridos inline atravs de faixas coloridas na barra direita do editor do Matlab

*Break points estipulam em quais linhas o programa ir parar sua execuo e assim esperar o comando do usurio.
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

12

21/12/2010

Ambiente de Edio Modo Debug


Insere um break point* Remove um break point*

*Break points estipulam em quais linhas o programa ir parar sua execuo e assim esperar o comando do usurio.
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Ambiente de Edio Modo Debug


Vai para a prxima linha sem entrar na funo. Vai para a prxima linha entrando na funo. Sai do programa

Continua at o prximo break point.

Continua at o prximo break point. Tambm utilizado para iniciar o programa.

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

13

21/12/2010

Introduo
Teclas de acesso: Retornar a linha anterior Retornar a linha posterior
clc dir ls edit <arquivo.m> cd exit ver which What
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

% % % % % % %

limpa a rea de trabalho lista o diretrio de trabalho mesmo que o comand dir cria um arquivo para edio muda de diretrio sai do MATLAB mostra verso do Matlab e toolboxes do instalados % Identifica e localiza arquivo % exibe arquivos Matlab salvos no diretrio

Introduo
who whos % mostra as variveis de ambiente % mostra as variveis de ambiente com detalhes help <comando> % mostra a ajuda para o comando especificado lookfor <p. chave> % Procura comando baseado na palavra chave especificada clear all % limpa as variveis da memria clear <varivel> % limpa uma varivel especfica da memria memria pack % Comprime dados na memria (garbage collection) save (load) % salva (abre) variveis para o disco (workspace) saveas (open) % salva (abre) figuras (.fig)
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

14

21/12/2010

Introduo
Ambientes de Trabalho:
Opo 1: Atravs do editor Opo 2: Atravs da Janela de Comandos

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Operaes Bsicas
Operaes Bsicas:
% Declarao de Variveis: a = 1; b=3; c=4.2; %Operaes Bsicas: % Adio S = a + b % Subtrao S = S - c; % Multiplicao S = a * b; % Diviso S = a / b;
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

% S % S

Exponenciao = a ^ b; Diviso pela esquerda = a \ b;

% Resto da Diviso S = rem(a,b) % AND lgico S = a & b; % OR lgico S = a | b; % Not lgico S = ~ b;

15

21/12/2010

Operaes Bsicas
Operadores Relacionais:
< <= > >= == ~= % % % % % % Menor que Menor ou igual que Maior que Maior ou igual que Igualdade Desigualdade

% Observaes: % - Existe diferena entre variveis % escritas em maisculas e minsculas. % - Ao colocar ";" ao final do comando, % o resultado no apresentado na tela.
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Operaes Bsicas
Funes Trigonomtricas cos %Cosseno sin %Seno tan %Tangente csc %Cossecante sec %Secante cot %Cotangente sinh %Seno hiperblico cosh %Cosseno hiperblico tanh %Tangente hiperblica asin %Seno inverso Observaes:
- Os comandos acima recebem argumento em radiano - O Sufixo D recebe os argumentos em graus
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

16

21/12/2010

Operaes Bsicas
Funes Trigonomtricas:
acos atan %Cosseno inverso %Tangente inversa

Exemplo:
% Observaes: % Para converter radianos para graus utilize o % comando rad2deg (convert2deg) e para o inverso, utilize deg2rad. Exemplo: S = rad2deg(pi) ou convert2deg(pi) Z = deg2rad(180)
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

%Resultado S = 180 Z = 3.1416

Operaes Bsicas
Exponenciais, Logaritmos, Arredondamentos e Mltiplos Comuns:
exp log log2 log10 sqrt %Exponencial %Logaritmo Natural %Logaritmo base 2 %Logaritmo base 10 %Raiz quadrada Arredondamento: floor % Arred. para baixo ceil % Arred. para cima round % Arred. para o inteiro mais prx. Exemplo: >> floor(3.4) >> ans = 3 Mltiplo Comum: gcd % mx. mlt. comum lcm % mn. mlt. comum Exemplo: >> lcm(3,2)
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Exemplo: >> exp(3) >> log2(5) >> sqrt(2)

17

21/12/2010

Nmeros Complexos
Mdulo, Fase, Conjugado, Forma Exponencial e Cartesiana
abs angle conj imag real % % % % % Mdulo Fase Complexo conjug. Parte imaginria Parte real % Outras formas de atribuio % de nmeros complexos: >> z = complex(2,3); >> z = 2+4*j Exemplo: >> z = 3+2*j >> abs(z) >> angle(z) >> real(z) >> z = 2+4*i >> z = 4*exp(j*pi/3)

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Vamos praticar
Atravs do MATLAB, calcule o valor de x nas expresses abaixo. a) x = 1 + 4 2 f ) x = tan 1 3 3 3 4 b ) x = 1 1 g ) x = (3 + 4 j ) 3
c) x = (1 + j ) 2 ln(3) j 4 d) x = +e 2 3 e) x = | 1 + 4 j |2 2

h) x = sen 3 ( / 3) + cos( 2 / 4) i) x = 4 3 j ) x = log 2 (7)

Armazene os comandos em um arquivo chamado: exercicio1.m e use o comando disp para mostrar os resultados no formato x = expresso = resultado
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

18

21/12/2010

Tipos de dados
O MATLAB tem vrios tipos de dados, alguns mais utilizados so:

cadeias de caracteres (strings) clulas (cell arrays) estruturas (structure)

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Tipos de dados
strings so dados tipo texto, formados por cadeias de caracteres
ASCII (American Standard Code for Information Interchange). Cada caractere ocupa dois bytes de memria. No Matlab, uma string definida entre ' '. Exemplo. >> texto1 = 'Aluno'; c = '9';

Clulas (cell arrays) um tipo de varivel que permite armazenar matrizes de naturezas diferentes (escalares, vetores, matrizes, strings) em uma nica estrutura.
Para criar uma clula, utiliza-se a funo cell. Clulas utilizam {} ao invs de []. Exemplo: >> celula = cell(2); >> celula{1,1} = eye(2); >> celula{1,2} = 'matriz identidade 2x2'; >> celula{2,1} = 2; >> celula{2,2} = [1 2 3]
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

19

21/12/2010

Tipos de dados
Estruturas (structures) um tipo de dado que permite o
armazenamento de matrizes de naturezas diferentes (escalares, vetores, matrizes, strings) identificveis por nomes de campos.

>> s = struct('Aluno',{'Joao'},'Matricula',{001},'Nota',{1.0}); >> s(2).Aluno = 'Maria'; >> s(2).Matricula = 002; s= >> s(2).Nota = 10; 1x3 struct array with fields: >> s(3).Aluno = 'Jose'; Aluno >> s(3).Matricula = 003; Matricula >> s(3).Nota = 7; Nota
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Strings (declarao e manipulao)


String = cadeia de caracteres
% mostra string na tela num2str % converte numero para string int2str % Arre. e converte para string eval % executa uma string como um comando real % Parte real disp Exemplo: >> a = 1; >> out = ['a=' num2str(a)]; >> disp(out) a=1
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

% Outras formas de atribuio % de nmeros complexos: >> out(1) = 'b'; >> out(3) = num2str(4); >> disp(out) b=4 >> eval(out); >> whos b
Name Size b 1x1 Bytes Class 8 double array

20

21/12/2010

Vamos praticar
Atravs do MATLAB, utilize uma varivel para armazenar as seguintes informaes:
Criar uma varivel chamada compras

Nome do script para criar a estrutura compras: compras_str.m Faa uma funo chamada addcompras para inserir itens na varivel compras (arquivo addcompras.m). Utilize o seguinte formato:
compras_saida = addcompras( compras_entrada, nome, quantidade, preco )
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

Alguns atalhos teis (vamos treinar?)


No editor: Selecionar texto e apertar F9: executa somente o texto (linhas de comando) selecionado F5: executa somente todo o script F10: executa prxima linha (com breakpoint ativado) F5: executa at o prximo breakpoint (com breakpoint ativado) F12: Insere breakpoint na linha em que o cursor se encontra Crtl+i: posiciona o texto selecionado de acordo com a tabulao padro (smart indent) No Workspace: Crtl+c: interromper a execuo de comandos
Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

21

21/12/2010

Preparao para vetores e Matrizes


Encontrar o valor de x1, x2 e x3:

Ax = B

A-1Ax = A-1B

x = A-1B

Criar um script chamado AxB.m

Prof. Dr. Vicente Angelo de Sousa Junior @ UFRN vicente.sousa@ct.ufrn.br

22

Você também pode gostar