1 / 16

Introdução ao MATLAB para Hidrólogos

Introdução ao MATLAB para Hidrólogos. Aplicações em Hidrologia – Parte 1. Porto Alegre, outubro de 2005. Programação. Álgebra Linear (Sistemas lineares; Autovalores e autovetores) Otimização Equações Não-lineares (Zeros de funções) Ajuste de curvas Interpolação

damon
Download Presentation

Introdução ao MATLAB para Hidrólogos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introdução ao MATLABpara Hidrólogos Aplicações em Hidrologia – Parte 1 Porto Alegre, outubro de 2005

  2. Programação • Álgebra Linear (Sistemas lineares; Autovalores e autovetores) • Otimização • Equações Não-lineares (Zeros de funções) • Ajuste de curvas • Interpolação • Análise de Dados e Estatística

  3. Álgebra linear • Sistemas Lineares • Rearrumar equações; • Escrevê-las em forma matricial; • Resolvê-las 5x = 3y - 2z + 10 8y + 4z = 3x + 20 2x + 4y - 9z = 9 5x - 3y + 2z = 10 -3x + 8y + 4z = 20 2x + 4y - 9z = 9 >> A = [5 -3 2; -3 8 4; 2 4 -9]; >> b = [10; 20; 9]; >> x = A\b x = 3.4442 3.1982 1.1868

  4. Autovalores e Autovetores V(:,1:end) = autovetores diag(D) = autovalores Álgebra linear A v = lv >> [V,D]=eig(A) V = -0.1709 0.8729 0.4570 -0.2365 0.4139 -0.8791 0.9565 0.2583 -0.1357 D = -10.3463 0 0 0 4.1693 0 0 0 10.1770

  5. Funções sem restrição fminunc >>x0 = [-1,1]; >>[x,fval,exitflag,output] = fminunc(@objfun,x0); x = 0.5000 -1.0000 fval = 1.3030e-10 exitflag = 1 output = iterations: 7 funcCount: 40 stepsize: 1 firstorderopt: 9.2801e-004 algorithm: 'medium-scale: Quasi-Newton line search' Otimização function f = objfun(x) f = exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);

  6. Funções com restrições Expressões fmincon >>x0 = [-1,1]; >>[x, fval] = ... >>fmincon(@objfun,x0,[],[],[],[],[],[],@confun) x = -9.5474 1.0474 fval = 0.0236 >>[c,ceq] = confun(x) c= 1.0e-14 * 0.1110 -0.1776 ceq = [] Otimização x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) function [c, ceq] = confun(x) % Nonlinear inequality constraints c = [1.5 + x(1)*x(2) - x(1) - x(2); -x(1)*x(2) - 10]; % Nonlinear equality constraints ceq = [];

  7. Funções com restrições Limites para variáveis fminbnd >>x = fminbnd(@myfun,0,5) x = 3 >>y = f(x) y = -1 Otimização x = fminbnd(fun,x1,x2) function f = myfun(x) f = (x-3).^2 - 1;

  8. Otimização • Programação Linear • Programação Quadrática x = linprog(f,A,b,Aeq,beq,lb,ub,x0) x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)

  9. Funções com uma variável fzero x = fzero(fun,x0) Equações Não-lineares function y = f(x) y = x.^3-2*x-5; >>z = fzero(@f,2) z = 2.0946

  10. Funções com mais variáveis fsolve Otimização (minimização do erro) Equações Não-lineares x = fsolve(fun,x0) function F = myfun(x) F = [2*x(1) - x(2) - exp(-x(1)); -x(1) + 2*x(2) - exp(-x(2))]; >>x0 = [-5; -5]; >>[x,fval] = fsolve(@myfun,x0) x = 0.5671 0.5671 fval = 1.0e-006 * -0.4059 -0.4059

  11. Funções polinomias polyfit, polyval, polyder, conv, deconv >> a = polyfit (x,y,n) >> y = polyval (a,x) >> q = polyder(p) >> a = [1 2 3]; b = [4 5 6]; >> c = conv(a,b) c = 4 13 28 27 18 Ajuste de curvas

  12. Ajuste de curvas • Funções não-polinomiais • linearização • otimização (minimização do erro)

  13. Interpolação interp1, interp2, interp3, interpn, interpft Interpolação yi = interp1(x,Y,xi,method) yi = interp1(x,Y,xi,method,'extrap') yi = interp1(x,Y,xi,method,extrapval) pp = interp1(x,Y,method,'pp') 'nearest‘ Interpola para o valor mais próximo 'linear‘ Interpolação Linear (default) 'spline‘ Interpolação spline cúbica 'pchip‘ Interpolação cúbica Hermite 'cubic‘ (Mesmo que 'pchip') 'v5cubic‘ Interpolação cúbica usada em MATLAB 5 ‘extrap’ Extrapola usando o mesmo método ‘extrapval’ Extrapola para o valor desejado ‘pp’ Determina os coeficientes do polinômio formado por Y

  14. Funções Built-in (Analisam colunas) mean, median, std, max, min, sum, cumsum, prod, cumprod, sort, diff Análise de Dados e Estatística >>A=[4:6; 1:3:8; 15:-1:13] A = 4 5 6 1 4 7 15 14 13 >> mean(A) ans = 6.6667 7.6667 8.6667 >> cumsum(A) ans = 4 5 6 5 9 13 20 23 26 >> diff(A) ans = -3 -1 1 14 10 6

  15. Análise de Dados e Estatística • Built-in functions • corrcoef, cov, kurtosis, skewness, fft, ttest, kstest, boxcox >> corrcoef(A) ans = 1.0000 0.9935 0.9436 0.9935 1.0000 0.9752 0.9436 0.9752 1.0000

  16. Análise de Dados e Estatística • Gráficos • normplot >>x = normrnd(10,1,25,1); >>normplot(x)

More Related