MATLAB LABORATÓ RIO DE MATRIZES

Documentos relacionados
MATLAB MATRIX LABORATORY

Engenharia Biomédica Jorge Henriques, Fevereiro, 2007

Matlab Noções introdutórias. Roteiro para aula

INTRODUÇÃO AO MATLAB - PARTE 2

Introdução ao MATLAB. Afonso Paiva ICMC-USP

INTRODUÇÃO AO SCILAB

Introdução ao MATLAB. 2 - Apresentação de resultados em gráfico. 3 - Controlo de fluxo 3.1. Tipos de controlo 3.2. Expressões Lógicas

Mini curso básico. Gilberto A. S. Segundo Fábio Carmo. Programa de Educação Tutorial

Características Básicas

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

Implementação de Métodos Recursivos. Jefferson Bertolai

MATLAB. Que é MATLAB?

Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional. Rodrigo Barbosa de Santis

Introdução ao MATLAB. Parte 3

Introdução ao MATLAB. Introdução ao MATLAB. Introdução ao MATLAB. Introdução ao MATLAB. Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE

Introdução à Ciência da Computação

Introdução ao Matlab. Sérgio Manuel Ângelo da Cruz. Aplicações Informáticas para Engenharia

Introdução ao Matlab

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

Minicurso MATLAB BÁSICO MÓDULO 1

Gráficos em duas dimensões

Vetores, Matrizes e Gráficos

Murilo F. Tomé ICMC-USP

INTRODUÇÃO AO MATLAB. Hélder P. Oliveira

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

2+3 % adiç~ao % variável padr~ao usada para resultados 10/5 % divis~ao 5\10 % divis~ao indireta. % verificando o valor da variável b

MATLAB EM VIBRAÇÕES MECÂNICAS

Esta prática tem como objetivo apresentar o uso de Matlab para encontrar a resposta de um sistema dinâmico.

2+3 % adição % variável padrão usada para resultados 10/5 % divisão 5\10 % divisão indireta % cria a variável b

Exercícios. Os exercícios estão na pag 11 (3 de 28); pag 17 (9 de 28) e pag 56 (28 de 28) Use o seguinte cabeçalho para os arquivos elaborados

CURSO INTRODUÇÃO AO R

Introdução ao MATLAB 6.1

INFORMÁTICA PARA ENGENHARIA

CCI Laboratório de Matemática Computacional

Computação e Programação

CCI Laboratório de Matemática Computacional

Foi criado em 1990 por pesquisadores do INRIA e da ècole Nationale des Ponts et Chaussées (França), sendo gratuito e similar ao Matlab.

GEO742: Tópicos Especiais em Geologia Exploratória II Métodos semiquantitativos

NÍVEL BÁSICO CAPÍTULO II

Implementação de Métodos Recursivos. Jefferson Bertolai 03/10/2011

AULA 2 1) Comando linspace 2) Indexação de matriz

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

MATEMÁTICA APLICADA I

Introdução ao Matlab. Rodrigo Soares de Abreu

Introdução. Iniciação ao MatLab. Introdução. Introdução. Introdução. Aplicações. Eugênio Silva

Métodos Numéricos em Finanças

AULA 4 TEÓRICA- MATLAB VERSÃO: FEVEREIRO DE 2017

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

Prof. Dr. Marco Antonio Leonel Caetano

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Luís Cláudio OLIVEIRA-LOPES

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

MATLAB Avançado. Melissa Weber Mendonça

Roteiro MatLab. a) Usa-se % para colocar comentários, semelhante à linguagem C. a=2; % Com o ponto e vírgula no final, resultado não aparece na tela

Notas de Aula MatLab - 1

2 Declarando e usando variáveis

PÓS-GRADUAÇÃO PRESENCIAL MARINGÁ

Introdução ao Scilab

Fundamentos IV. Introdução a OCTAVE. Clarimar Coelho. Departamento de Computação. August 11, 2014

TUTORIAL MATLAB MATEMÁTICA COMPUTACIONAL Aula 20-Novembro-2013

I n t r o d u ç ã o a o M A T L A B

INTRODUÇÃO AO AMBIENTE DE PROGRAMAÇÃO MATLAB

Conceitos de Programação

Programação de Computadores III

FCT UNESP CAMPUS DE P. PRUDENTE Licenciatura em Matemática Prof. Piteri Programação Orientada a Sistemas de Processamento Simbólico

Curso de Especialização em Teleinformática e Redes de Computadores Departamento Acadêmico de Eletrônica Universidade Tecnológica do Paraná

Introdução ao R. Gualberto Agámez Montalvo. 16 de Março de Análise de Dados e Simulação Departamento de Estatística Universidade de São Paulo.

Programação de Computadores III

Introdução ao MATLAB. Afonso Paiva ICMC-USP

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Programação de Computadores:

Utilidades Diversas. Aplicações Informáticas para Engenharia. SérgioCruz

Introdução ao MATLAB

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

Sistemas e Sinais. Laboratório 0 (parte a) (Iniciação ao MATLAB ) Miguel Pedro Silva e João Reis

Introdução. MATLAB (MATrix LABoratory) Programa optimizado para cálculos de engenharia e científicos Programa MATLAB implementa a linguagem de

MATLAB. Introdução. João Miguel da Costa Sousa 310

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

= = = = = = = = = = = = = = = =

INFORMÁTICA PARA ENGENHARIA

Aula 2P - Comandos básicos do Matlab aplicados a PDS

criar u u = E(:,1) criar b b=a(:,3)

AERODESIGN AULA 1 MATLAB

Aula 7. Noções Básicas de Octave

Aula 02 - Introdução ao Scilab (p1)

TUTORIAL SIMPLIFICADO DE MATLAB

Computação Científica com MATLAB. Melissa Weber Mendonça

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano.

MATLAB. Programação básica. Abordagem topo-base. Início. Definição das. Divisão em Sub-problemas. Divisão em Sub-problemas. Abordagem topo-base

O SOFTWARE MATLAB COMO AUXÍLIO DIDÁTICO - PEDAGÓGICO

Mini-curso de MATLAB e Octave para Cálculo Numérico

Aula 2 - Sinais de tempo discreto Operações com sequências

I-3 Introdução ao Matlab

Linguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013

Fundamentos de MATLAB. Computação 2º Semestre 2016/2017

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

Mini-curso Octave/MATLAB

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Aula 12- Variáveis e valores reais

Transcrição:

UFRJ - Instituto de Matemá tica Departamento de Ciência da Computaç ão Curso de Bacharelado em Informá tica Disciplina Tó picos Especiais em Inteligência Computacional Redes Neurais 2002/1 MATLAB LABORATÓ RIO DE MATRIZES Anderson Canêdo de Oliveira BIBLIOGRAFIA MATLAB 6 Fundamentos de Programação - É lia Yathie Matsumoto - Editora É rica AJUDA help help on-line em linha de texto helpwin janela de help on-line helpdesk documentação em hipertexto (html) COMANDOS pathtool janela para configuração da lista de diretó rios de busca workspace janela do workspace path / matlabpath exibem path de busca corrente what exibe arquivos.m e.mat contidos no diretó rio de trabalho clc limpa tela which identifica e localiza arquivo! chama comandos do SO >>!del teste.m format formato de exibição dos nú meros na tela who lista nomes das variáveis em uso whos lista nomes e tipos das variáveis em uso clear elimina variáveis OPERADORES * multiplicação.* multiplicação por escalar./ divisão por escalar \ divisão à esquerda (a\b equivale a a -1 * b).^ potência escalar transposta EXPRESSÕ ES BOOLEANAS 0 (zero) ou nil (nulo, vazio) indica condição falsa 1 (um) ou diferente de 0 (zero) indica condição verdadeira Símbolos e operadores booleanos: Operador Teste retorna verdadeiro se Exemplo == I igual a J I == J ~= I diferente de J I ~= J < I menor que J I < J > I maior que J I > J

<= I menor igual a J I <= J >= I maior igual a J I >= J ~ (not) I falso ~ I & (and) I e J verdadeiros I & J (or) I ou J verdadeiro I J VARIÁ VEIS São case-sensitive e o nome deve ser formado com o máximo de 32 caracteres CONTANTES NUMÉRICAS pi 3.141592... inf infinito (1/0) NAN não nú mero (0/0) realmin menor nú mero real (2-1022 ) realmax maior nú mero real (2-1023 ) FUNÇÕES TRIGONOMÉTRICAS sin seno cos cosseno sinh seno hiperbó lico FUNÇÕES MATEMÁ TICAS sqrt raiz quadrada exp exponencial log logaritmo abs retorna o valor absoluto fix parte inteira de um nú mero real round inteiro mais pró ximo floor menor inteiro mais pró ximo ceil maior inteiro mais pró ximo FUNÇÕES MATRICIAIS eye matriz identidade >> a = eye(3) >> a = 1 0 0 0 1 0 0 0 1 zeros matriz de zeros ones matriz de 1 s det determinante inv inversa reshape reformata matriz size vetor conto o tamanho de cada dimensão da matriz lenght comprimento do vetor ou dimensão máxima da matriz diag retorna a diagonal de uma matriz ou cria matriz diagonal a partir de um vetor tril matriz triangular inferior triu matriz triangular superior

fliplr inverte ordem das colunas flipud inverte ordem das linhas INDEXAÇÃO DOS ELEMENTOS DE UMA MATRIZ >> a = [4 3; 2 1]; >> a = 4 3 2 1 >> a(1,1) = 4 % linha, coluna, matriz >> a(3) = 2 % indexação seqüencial (ordem em linhas) TIPOS DE DADOS String (Cadeia de carcteres) >> txt = Resposta >> a = double(txt) >> a = [82 101 115 112 111 115 116 97] % valores em ASCII >> char(a) >> a = Resposta Cell Array (células) Permite o armazenamento de matrizes de naturezas diferentes em uma ú nica estrutura identificada por um ú nico nome. >> celula = cell(2) >> celula{1,1} = eye(3) >> celula{1,2} = matriz identidade >> celula{2,1} = pi >> celula{2,2} = 0:1:10 num2cell transforma um vetor numérico em células >> v = 1:5 % v = [1 2 3 4 5] >> c = num2cell(v) >> c = [1] [2] [3] [4] [5] cat faz a função inversa, concatena vetores >> cat(dim,a,b) % concatena os vetores a e b na dimensão Dim >> cat(2,célula{:}) STRUCT (ESTRUTURA) Permite o armazenamento de matrizes de naturezas diferentes, identificáveis por nome de campos. >> s = struct( Nome, { ST01 }, Identificador, {200}, Valores, {[10 20 30]}) >> s = Nome: ST01 Identificador: 200 Valores: [10 20 30] >> s.nome >> ans = ST01 >> s(2).nome = ST02 >> s(2).identificador = 201 >> s(2).valores = [0.1 5] >> s(1) >> ans = Nome: ST01 Identificador: 200 Valores: [10 20 30] >> s(2) >> ans = Nome: ST02 Identificador: 201 Valores: [0.1

>> s(1).nome(2) >> ans = T 5] MONTANDO VETORES >> a = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1] ou ou ou >> for j=1:11 % para j de 1 até 11 a(j) = (j-1)/10; % compute o j-ésimo termo >> % indicação de final >> a = linspace(0,1,11) >> a = 0:0.1:1 % a = <inicio>:<incremento>:<final> linspace(a,b,c) vetor linearmente espaç ado (a = inicial, b = final, c = nú mero de elementos) logspace(a,b,c) vetor logaritmicamente espaç ado (inicial = 10 a, final = 10 b, c = nú mero de elementos) CONCATENANDO MATRIZES a = [1 2] b = [3 4] Concatena matrizes em linhas >> c = [a b] % c = [1 2 3 4] Concatena matrizes em colunas >> d = [a ; b] % d = [1 2 3 4] find retorna um vetor coluna com os índices seqüenciais dos elementos = 0 ou que satisfazem a condição determinada >> b = find(a < 20) % retorna um vetor coluna com os índices dos elementos de a % menores de 20 sort(a, Dim) ordena elementos da matriz a na dimensão Dim, se DIM não for informado ordena as colunas. RESOLVENDO SISTEMAS LINEARES Ax = b x = A -1 b >> A = [ 3 1 5 2] >> b = [2; -9] >> x = A\b Combinando as linhas >> U = [A b] >> u = rref(u) >> xu = u(:,3) EDITOR DE PROGRAMAS >> edit % - comentários... linha de comando continua na próxima linha SCRIPT Seqüência de comandos para automatizar algum processo repetitivo. Não trabalha com parâmetros de entrada nem de saída. Sempre trabalha com as variáveis do workspace (usa variáveis pré-definidas e define variáveis no workspace)

FUNÇÃO Também é uma seqüência de comandos, mas que aceita comandos de entrada, retorna parâmetros de saída. Utilizam seu pró prio espaç o de memó ria para armazenar suas variáveis locais. function [ps1, ps2,..., psn] = nome_da_funcao (pe1,..., pem) ps1,..., psn = Parâmetros de saída pe1,..., pem = Parâmetros de entrada % estat.m - Exemplo 1 % [media, desvio_padrão = stat(x) % retorna média e desvio padrão dos valores em x function [media, desvio_padrão = stat(x) media = mean(x); % media desvio_padrao = std(x) % desvio padrão Interessante aproveitar o cabeç alho para documentar o programa e gerar os textos de auxílio par o comando help. A função e o arquivo m-file devem ter o mesmo nome. Variáveis do workspace não são reconhecidas dentro das funções Podem ser criadas subfunções dentro de uma função ESTRUTURAS DE SELEÇÃO If, elseif, else if I == J A(I,J) = 2; elseif abs(i J) == 1 A(I,J) = -1; else A(I,J) = 0; ; Switch switch Val case 0 A(I,J) = 2; case 1 A(I,J) = -1; otherwise A(I,J) = 0; ESTRUTURAS DE REPETIÇÃO While while I < J if I == J A(I,J) = 2; elseif abs(i J) == 1 A(I,J) = -1; else A(I,J) = 0; I = I + 1; For for <Valor> = <inicio>:<incremento>:<fim> <Expressão1>... <Expressão2>

for i=1:10000 x(i) = cos(2*pi*i/100); ; EXERCÍCIOS 1) Montar o vetor X = sin(2 * pi * i/100), i = 1, 2,..., 10000 2) Escreva um programa no Matlab para um valor n e construir uma matriz A (nxn) com elementos a ij = 3 ij. Tenter fazer usando laç os e depois tente refazer sem usar laç os 3) Escreva um pequeno programa para achar o menor inteiro positivo r, tal que 2 r = no ponto aritmético flutuante. Dica: Constante do Matlab inf = infinito, ex. 1/0 4) Diferenç a entre (A * A) e (A.^ A)? Exercício aula anterior SCRIPTS FUNÇÕES Linhas de comentário para documentação Ex1: Criar função para calcular média e desvio padrão Ex2: Criar função com subfunções para calcular a média e o desvio padrão function m = calc_media(x) [nl, nc] = size(x); if nl == 1 nl = nc; m = sum(x) / nl; function d = calc_dp(x) [nl, nc] = size(x); if nl == 1 nl = nc; nc = 1; x = x ; m = sum(x) / nl; for i=1:nc m2(:,i) = (x(:,i) - m(i)).^ 2; m2 = sum(m2) / (n1 1); d = sqrt(m2); VARIÁ VEIS GLOBAIS global <nome da variável> % declarar também dentro da função which pesquisa arquivos >> which sin >> which polyfit struct e cell array RESOLVENDO SISTEMAS LINEARES >> A = fix (10 * rand(10));

>> B = fix (100 * rand(10,1)) >> C = [A B] >> D = rref(a) >> E = A\B Calcular a diferenç a de D(:,11) e E Format muda a formato de apresentação format long format short IF, Switch, For Save e Load >> save (nome do arquivo) >> save (arquivo) <nome das variáveis> - salvar variáveis (.mat) >> load (nome do arquivo.mat) >> load (nome do arquivo) (variável) find retorna um vetor coluna com os índices seqüenciais dos elementos = 0 ou que satisfazem a condição determinada >> b = find(a < 20) % retorna um vetor coluna com os índices dos elementos de a % menores de 20 FUNÇÕES PARA IMPORTAÇ Ã O DE DADOS Arquivos ASCII >> dlmread (<arquivo>, <delimitador>) % importa dados >> dlmwrite (<arquivo>, <matriz>, <delimitador>) % exporta dados Outras funç ões - Matlab 6 importdata importa dados de vários tipos de arquivos (bmp, mat, txt, wav, etc) xlsread importa dados de planilhas excel PLOT >> % Exemplo: Gráfico f(x) = x * cos(x), -2π < x < 2π >> x = -2*pi : 0.1 : 2*pi; >> y = x.* cosx(x); >> figure(1); >> plot(x,y); % default : linha contínua azul >> plot(x,y, r* ); % marcador * na cor vermelho CONFIGURAÇÕES DO GRÁ FICO hold on habilita / desabilita exibição de gráficos na mesma janela. grid on habilita / desabilita grid do gráfico zoom(fator) zoom no gráfico leg( x * cos(x) ) - lega xlabel( Eixo x ) nome do eixo x ylabel( Eixo y ) nome do eixo y title( Grá fico f(x)=x * cos(x) ) titulo do gráfico axis([xmin xmax ymin ymax]) altera limites do gráfico (escala) >> axis([-pi pi 1 1]);

VÁ RIOS GRÁ FICOS NUMA SÓ JANELA >> plot (x,sin(x), r, x,cos(x), k:, x,sin(x).*cos(x), b> ); >> leg( sin(x), cos(x), sin(x).*cos(x) ); Plotando matrizes cada coluna gera uma curva >> A = fix(10 * rand(10)); >> plot(a); plotyy duas curvas no mesmo gráfico com escalas diferentes >> x = 0.1:0.1:10 >> plot(x, sin(x)); >> plot(x, exp(x)); >> plot(x, sin(x), r, x, exp(x), b ); >> plotyy(x, sin(x), x, exp(x)); subplot(linhas, colunas, posiç ão) gera vários gráficos numa mesma janela. >> x = -2*pi:0.1:2*pi; >> y = x.* cos(x); >> subplot(1,3,1) % 1 linha, 3 colunas na posição 1 >> plot(x,y); >> >> subplot(1,3,2) % na posição 2 com zoom >> plot(x,y); >> zoom(2); >> >> subplot(1,3,3) % na posição 3, 2 funções no mesmo gráfico >> plot(x,y, r ); >> hold >> plot(x, x.*sin(x)); exportar grá fico grava gráfico como imagem no disco >> print dbitmap r300 <arquivo> GRÁ FICOS PARA FUNÇÕES ESPECIAIS polar, loglog, semilogx, semilogy plot3 cria uma curva no espaç o 3D >> x = -4*pi : 0.1 : 4*pi >> y = -4*pi : 0.1 : 4*pi >> plot3(cos(x), sin(y), (x+y)) % fornecer coordenadas x, y, z FUNÇÕES GRÁ FICAS 2D ESPECIAIS area gráfico de área bar gráfico de barra vertical barh gráfico de barra horizontal stairs gráfico escada pie gráfico de pizza scatter gráfico discreto que indica pontos com marcadores stem gráfico discreto que indica pontos com hastes