Introdução ao MATLAB para Hidrólogos

Slides:



Advertisements
Apresentações semelhantes
Carlos André Vaz Junior
Advertisements

Utilizando o R. Técnicas para Predição de Dados 2 17/8/2008 Introdução ao R R é um linguagem (ambiente) de programação para computação estatística e gráfica.
Programação Orientada a Objetos*
Métodos Computacionais
Operadores e Funções do LINGO
MATLAB Comandos Básicos.
Susana Nascimento Departamento de Informática
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 11.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 2.
Departamento de Informática
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 2.
Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.1 Octave Variáveis, Matrizes e Séries.
Introdução aos Computadores e Programação DI-FCT-UNL-2005/2006 Gráficos 4.1 Octave Gráficos.
Introdução aos Computadores e Programação DI-FCT-UNL-2005/2006 Strings, operadores e funções 3.1 Octave Matrizes (cont.) e strings.
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Strings, operadores e funções 3.1 Octave Strings, Operadores e Funções.
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Variáveis, matrizes e séries 2.1 Octave Variáveis, Matrizes e Séries.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 2.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 4.
Introdução aos Computadores e Programação DI-FCT-UNL-2004/2005 Strings, operadores e funções 3.1 Octave Strings, Operadores e Funções.
Introdução aos Computadores e Programação DI-FCT-UNL-2004/2005 Gráficos 4.1 Octave Gráficos.
Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Sistemas de Equações e Gráficos 2.1 Octave Sistemas de Equações e Gráficos.
Chapter 2 Fundamentals (a) (b) Convenções de coordenadas:
Campus Curitiba Departamento Acadêmico de Matemática Angela Olandoski Barboza UTFPR – Damat.
Programando com Alice Tim Margush Department of Computer Science University of Akron © 2006.
Instrutor: Marcelo Escobar
Curso MATLAB 6 Instrutor: Marcelo Escobar Complementação da Introdução.
Classificação e Pesquisa de Dados
Iniciação ao MatLab Profa Dra. Rossana Lott Rodrigues
The language of tecnical computing
R Profa. Suzi
Arrays Profa. Isabel Harb Manssour (Material adaptado das aulas dos Profs.: Luciana Nedel, Júlio Machado e Bernardo Copstein) Arrays Exercícios.
UDESC - Prof. Juliano Maia
Paulo Henrique Graf Fernandes
Programando em - VISUAL BASIC LTP-II / 2°Semestre-2001
Ponteiros.
O Portal do Estudante de Computação
GET – Engenharia de Produção
Estrutura de um Programa:
Introdução ao MatLab Aula 2
Prof. Reinaldo Bianchi Centro Universitário da FEI 2013
Matlab– Noções introdutórias
Linguagem de Programação II Parte VII
Introdução ao MatLab Aula 3
Material Didático Unificado.
Aula 02 Variáveis, Matrizes, Gráficos
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
Trabalho Computacional Mecânica de Fluidos Ambiental aula 4 Guillaume Riflet, Dúvidas:
Prof. Reinaldo Bianchi Centro Universitário da FEI 2013
MÉTODOS NUMÉRICOS APLICAÇÃO NO MATLAB
Monitoria de Sistemas Inteligentes
Introdução ao MATLAB para Hidrólogos
Scilab Aula 1 – Introdução.
Introdução ao MATLAB para Hidrólogos
Introdução ao MATLAB 5.3 para Hidrólogos
Sistemas de Controle de Aeronaves II
Minicurso MATLAB Básico
Exercício - 1. Criar no SPSS o banco de dados com as informações fornecidas 2. Salvar o banco com o nome atividade física na pasta pos pilates 3.
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
Campus de Caraguatatuba
Eugênio Silva Iniciação ao MatLab Eugênio Silva
Programação e Aplicações Gráficas
Introdução ao MATLAB 5.3 para Hidrólogos
Curso de modelagem numérica computacional com o software livre (Octave) Instituto Federal de Educação, Ciência e Tecnologia do Piauí –IFPI, campus Parnaíba.
Monitoria de Sistemas Inteligentes IF684
MATLAB - Matrix Laboratory Adaptado de Profa
Introdução ao Scilab Monitoria de Sinais e Sistemas - ES413
Trabalho Computacional Mecânica de Fluidos Ambiental Guillaume Riflet, Pedro Pina, Luís Fernandes.
MatLab (Matrix Laboratory)
Pesquisa Aplicada à Computação utilizando MatLab®
Como Usar a Linguagem de Programação R. I. Introdução J M Fernandes.
Transcrição da apresentação:

Introdução ao MATLAB para Hidrólogos Computação Interativa Porto Alegre, outubro de 2005

Programação On-line help e Funções do MATLAB Como Carregar Dados Importar Arquivos de Dados Matrizes e Vetores Entrada, Indexação, Manipulação, Criação de Vetores Operações de Matrizes Aritméticas, Relacionais, Lógicas, Funções, Caracteres Funções Inline Como Plotar Gráficos Simples Como Salvar Dados

On-line Help e Funções do MATLAB >> help cumsum CUMSUM Cumulative sum of elements. For vectors, CUMSUM(X) is a vector containing the cumulative sum of the elements of X. For matrices, CUMSUM(X) is a matrix the same size as X containing the cumulative sums over each column. For N-D arrays, CUMSUM(X) operates along the first non-singleton dimension. CUMSUM(X,DIM) works along the dimension DIM. Example: If X = [0 1 2 3 4 5] then cumsum(X,1) is [0 1 2 3 5 7] and cumsum(X,2) is [0 1 3 3 7 12] See also cumprod, sum, prod. Overloaded functions or methods (ones with the same name in other directories) help fints/cumsum.m Reference page in Help browser doc cumsum

On-line Help e Funções do MATLAB helpwin helpdesk lookfor >> helpwin >> helpdesk >> lookfor 'boxcox' BOXCOX transforms non-normally distributed data to normally distributed data. MV_BOXCOX box-cox transformation gui boxcox.m: %@FINTS/BOXCOX transforms non-normally distributed FINTS object to a normal one.

Como Carregar Dados Importando dados (ver “fileformats”, “iofun”) >> load data >> A A = 9 6 3 8 5 2 7 4 1 >> A = importdata('dados.xls') Plan1: [3x3 double] >> A.Plan1 ans = 2 8 1 4 7 6 5 9 3 >> B = xlsread('dados.xls') B = Importando dados (ver “fileformats”, “iofun”)

Como Carregar Dados Exercício Carregar dados de vazão do arquivo ‘Tres_Marias.xls’ usando TM = ‘importdata’ e Q = ‘xlsread’

Como Carregar Dados Exercício >> TM = xlsread('Tres_Marias.xls'); >> Q = importdata('Tres_Marias.xls') Q = data: [1x1 struct] textdata: [1x1 struct] rowheaders: [1x1 struct]

Matrizes e Vetores Entrada Usando funções prontas; >> A = logspace(0,5,6) A = 1 10 100 1000 10000 100000 >> A = randn(3) -0.0956 -1.3362 -0.6918 -0.8323 0.7143 0.8580 0.2944 1.6236 1.2540

Matrizes e Vetores Entrada Digitando diretamente; 1 2 3 4 5 6 7 8 9 >> A = [9 8 7 6 5 4 3 2 1] 9 8 7 6 5 4 3 2 1 >> A = [1 2 3; 4 5 ... 6; 7 8 9] >> A = [] [] Entrada Digitando diretamente; “...” continua na linha seguinte “[]” matriz nula

Matrizes e Vetores Exercício Criar matriz chuva com os dados: Criar matriz (q) de vazão com 366 valores, através de função pronta (randn). Dica: Usar B = exp(6.3+0.8*randn)

Matrizes e Vetores Indexação Referenciando por: Matriz(linha,coluna) 1 2 3 4 5 6 7 8 9 >> A(6) ans = 8 >> A(2,2) 5 >> A(2,2) = 1 4 1 6 Indexação Referenciando por: Matriz(linha,coluna) Matriz(nº do elemento)

Matrizes e Vetores Indexação Referenciando por: Matriz(sub-matriz) Determinação automática de dimensões; >> B = A(2:3,:) B = 4 1 6 7 8 9 >> B(:,3)=[] 4 1 7 8 >> C (2,3) = 4 C = 0 0 0 0 0 4 >> D (2, 1:2) = 8 D = 0 0 8 8

Matrizes e Vetores Exercício Descobrir a vazão e a que dia pertencem a posição 60 Qual o último dia da série? E o primeiro? Rearrumar matriz P pelo método dos blocos alternados

Matrizes e Vetores Exercício >> TM(60) ans = 730.8000 >> Q.data Sheet1: [7670x1 double] >> Q.data.Sheet1(60) >> Q.textdata.Sheet1(60) '1/3/1977‘ >> Q.textdata.Sheet1(end) '31/12/1997' >> Q.textdata.Sheet1(1) '1/1/1977' Exercício Descobrir a vazão e a que dia pertencem a posição 60 Qual o último dia da série? E o primeiro?

Matrizes e Vetores Manipulação de Matrizes Indexação >> B = A(v,:) B = 1 2 3 7 8 9 >> x = B(:) x = 1 7 2 8 3 9 >> C = reshape(x,3,2) C = 1 8 7 3 2 9 Manipulação de Matrizes Indexação Reforma (vetor matriz)

Matrizes e Vetores Manipulação de Matrizes Transposição Inicialização >> C = C' C = 1 7 2 8 3 9 >> x = transp(C(:,2)) x = 7 3 >> C = sparse(1000000,2) All zero sparse: 1000000-by-2 >> v = [8 7 3]; >> B = [A; v] B = 1 2 3 4 5 6 7 8 9 8 7 3 >> B(end,:) = [] Manipulação de Matrizes Transposição Inicialização Anexação e Retirada (vetor ou escalar)

Matrizes e Vetores Manipulação de Matrizes >> A = ones(2,2) A = 1 1 >> A = zeros(2,2) 0 0 >> size(B) ans = 3 3 >> length(B) 3 >> numel(B) 9 Manipulação de Matrizes Matrizes “úteis”: ones, zeros, rand, size, length, numel, find, nonzeros, max, min

Matrizes e Vetores Manipulação de Matrizes Matrizes “úteis”: ones, zeros, rand, size, length, numel, find, nonzeros, max, min >> A(1,:) = 8; >> [a,b,c]=find(A) a = 1 b = 2 c = 8 >> s = nonzeros (A) s =

Matrizes e Vetores Exercício Agregar matriz q ao fim da matriz TM (TMq) Determinar posição e valores máximos e mínimos de TM e de TMq Encontre datas correspondentes Refaça os procedimentos apenas para o período a década de 80

Matrizes e Vetores Criação de Vetores v = valor inicial : incremento : valor final >> s = 0:numel(B)/4:numel(B) s = Columns 1 through 3 0 2.25 4.5 Columns 4 through 5 6.75 9 >> a = [11:13; 3:1] a = 11 12 13 >> a = [11:13; 3:-1:1] 3 2 1

Matrizes e Vetores Exercício Refazer método dos blocos alternados usando criação de matrizes Dica: Usar um vetor de posições

Matrizes e Vetores Exercício >> pos = [((length(P)-1):-2:1) (2:2:length(P))] pos = 9 7 5 3 1 2 4 6 8 10 >> p=P(pos) p = 1.0500 1.2200 1.4700 1.9000 2.8500 2.2600 1.6500 1.3300 1.1300 0.9800

Operações de Matrizes Aritméticas (+,-,*,/,\,^,.) >> B = [2 5 3; 7 9 1; 8 4 6]; >> A*B ans = 71 73 61 97 88 56 87 109 33 >> A\B -0.2056 -0.3083 0.6806 0.8778 0.3167 0.4722 0.4611 1.1917 -0.4861 >> A.^B 64 1 216 2187 1953125 7 65536 6561 64 Aritméticas (+,-,*,/,\,^,.)

Operações de Matrizes Relacionais (<,>,<=,>=,==,~=) >> A<=B ans = 0 1 0 1 1 0 1 0 1 >> ~(A>B) >> exp(A) 1.0e+003 * 2.9810 0.0027 0.4034 0.0201 0.1484 1.0966 0.0546 8.1031 0.0074 >> expm(A) 1.0e+006 * 1.0898 1.0896 1.0897 1.0896 1.0897 1.0897 Relacionais (<,>,<=,>=,==,~=) Lógicas (&, |, ~, xor) Funções matemáticas (sin,csch, exp, log, log10, abs) Funções matriciais(sqrtm,expm)

Operações de Matrizes Variáveis de caracteres >> nome = 'Curso' nome = Curso >> nome(3) ans = r >> datestr(60,6) 02/29 >> (A>B)|(rem(A,2)~=0) 1 1 1 0 1 0 Variáveis de caracteres Funções “úteis” (any, all, rem, ceil, floor, disp, error, findstr, strcat, strcmp, datestr)

Operações de Matrizes Funções “úteis” (any, all, rem, ceil, floor, disp, error, findstr, strcat, strcmp, datestr) >> a = 'Número de parâmetros de entrada insuficiente'; >> disp(a) Número de parâmetros de entrada insuficiente >> error(a) ??? Número de parâmetros de entrada insuficiente

Operações de Matrizes Exercício Determinar TM90, TM95 Dica: Reordenar vetor de dados Criar outro com mesmo tamanho Calcular permanência Interpolar usando relações aritméticas

Funções In-line Aplica-se a funções simples apenas (usar m-files para funções mais complexas) Exercício Dados: Q = 15 m3/s S = 0,001 m/m n = 0,02 b = 8 m y = ? Dicas: usar Q = AR2/3S1/2 e yk+1 = g(yk) n >> f = inline('a^2+b^3') f = Inline function: f(a,b) = a^2+b^3 >> f(3,2) ans = 17

Como Plotar Gráficos Simples 2D(plot, fplot, ezplot, ezpolar, ezcontour, ezcontourf, hist, bar, normplot) 3D(ezplot3, ezsurf, ezsurfc) >> SF = importdata ('Paulo_Afonso-Moxoto_SF.xls') SF = data: [7670x2 double] textdata: {7671x3 cell} >> obs=SF.data(:,1); >> calc=SF.data(:,2); >> subplot(2,2,1),plot(1:length(obs),obs,1:length(calc),calc) >> subplot(2,2,2),scatter(obs,calc) >> subplot(2,2,3),bar([obs(1:365:3650) calc(1:365:3650)]) >> subplot(2,2,4),semilogy(1:length(obs),obs)

Como Plotar Gráficos Simples 2D(plot, fplot, ezplot, ezpolar, ezcontour, ezcontourf, hist, bar, normplot) 3D(ezplot3, ezsurf, ezsurfc) >> Z = importdata('MNT.txt'); >> surf (Z, 'FaceColor','interp',... 'EdgeColor','none',... 'FaceLighting','phong')

Arquivos .mat (binário) Como Salvar Dados Arquivos .mat (binário) matlab.mat (default) >> A = reshape(9:-1:1,3,3); >> save data A >> save a.dat A –ascii >> clear A >> A ??? Undefined function or variable 'A'.

Exercícios Salvar arquivo de dados de Vazão diária Salvar arquivo de precipitação

Computação Interativa Exercício Reorganizar Q para vetores por dia juliano Plotar a média diária Dica: Usar struct Ver datestr, strcat (29/02), datenum Indexação usando contador Usar “for”

Computação Interativa tot = 366; n = length(Q.data.Sheet1); ini = datenum(Q.textdata.Sheet1(1)); cont = 0; for i = 1:tot, Qdi(i).dados = sparse(round(n/365.25),1); end Qdi(60).dados = sparse (floor(round(n/365.25)/4),1); comp1 = datenum(strcat(datestr(1:tot,6),'/00'))'; comp2 = datenum(strcat(datestr((1:n)'+ini-1,6),'/00')); for j = 1:n, if comp1(i) == comp2(j), cont = cont +1; Qdi(i).dados(cont) = Q.data.Sheet1(j); cont = 0; Exercício