1 / 105

Iniciação ao MatLab

Eugênio Silva E Adriano Cruz. Iniciação ao MatLab. Introdução. Introdução. MatLab – Matrix Laboratory (Universidades de Stanford e Novo México - 1970) originalmente escrito para trabalhar com matrizes e vetores evoluiu ao longo do anos até se tornar uma ferramenta de ampla abrangência.

tobit
Download Presentation

Iniciação ao MatLab

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. Eugênio Silva E Adriano Cruz Iniciação ao MatLab

  2. Introdução

  3. Introdução • MatLab – Matrix Laboratory (Universidades de Stanford e Novo México - 1970) • originalmente escrito para trabalhar com matrizes e vetores • evoluiu ao longo do anos até se tornar uma ferramenta de ampla abrangência.

  4. Introdução • o MatLab é uma poderosa ferramenta matemática e uma linguagem de programação de alto-desempenho para a computação científica • integra cálculos matemáticos, visualização e programação em um ambiente interativo • é de fácil utilização

  5. Exemplo – transpor uma matriz • MatLab • Pascal var a, b : array [1..3, 1..3] of integer; i, j : integer; begin . . . for i = 1 to 3 for j = 1 to 3 b(j,i) := a(i,j); end; end; end. >> a = [1 2 3; 4 5 6; 7 8 9] a = 1 2 3 4 5 6 7 8 9 >> b = a’ b = 1 4 7 2 5 8 3 6 9

  6. Introdução • o elemento de dados básico é uma matriz • matrizes e vetores são manipulados com mais facilidade e rapidez que em programas escritos em linguagens não-interativas como Pascal, C ou Fortran

  7. Introdução • Linha de comandos – é possível usar o matlab através de comandos emitidos a partir de linha de comandos • scripts – arquivos que contém comandos matlab

  8. Introdução • toolboxes - bibliotecas de funções que permitem a resolução de classes particulares de problemas • simulink - acessório que acrescenta uma interface de diagramas de blocos e recursos de simulação real aos demais recursos numéricos, gráficos e de linguagem

  9. Aplicações • matemática e computação • desenvolvimento de algoritmos • modelagem, simulação e prototipação • análise de dados, exploração e visualização • gráficos científicos em duas e três dimensões

  10. Help • On line • Linha de comandos - • help • help elfun • help abs • demos - • demo

  11. Comandos

  12. Operações Elementares >> 25 / 5 + 5 \ 25 ans = 10 >> 3 ^ 2 * 2 ^ 2 + 2 ans = 38 • >> 4 + 6 – 2 • ans = • 8 • >> 4 * 2 + 6 * 5 + 2 * 9 • ans = • 56

  13. Prioridades • Parênteses • Potência • 3 * 2 ^ 3 = 24 • * e / • Resolvendo da esquerda para direita • 8 / 4 * 3 = 6 • + e - • Resolvendo da esquerda para direita

  14. Números • Inteiros: 32, -12345 • Reais: 3.1789, -23.0, 1.0e-3 • Complexos: 3.2 – 23.5i • Inf: Infinito (resultado da divisão por 0) • NaN: Not a number 0/0 • Contas são feitas com 15 dígitos aproximadamente • Comando format controla impressão dos resultados.

  15. Definição de Variáveis • >> a = 10 • a = • 10 • >> b = 20; • O ‘;’ evita que o resultado apareça na tela. • >> c = 1 + 2i ou c = 1 + 2j • c = • 1.0000 – 2.0000i

  16. Nomes de Variáveis • Combinações de letras e números, começando com letra • n1, ab, temp • Nomes especiais • eps = 2.220446049250313e-16 (o menor número tal que 1 + eps é indistinguível de 1) • pi • i, k

  17. Variáveis Pré-definidas • ans: váriavel padrão usada para resultados de expressões do tipo • >> 3 + 5 • pi • i ou j: igual a raiz quadrada de -1 • realmax: maior número real utilizável • 1.797693134862316e+308 • realmin: menor número real utilizável • 2.225073858507201e-308

  18. Variáveis Pré-definidas • nargin: número de argumentos de entrada • nargout: número de argumentos de saída

  19. Funções Elementares • abs(x) valor absoluto de x • sin(x) seno de x • asin(x) arc seno x • cos(x) co-seno x • acos(x) arc co-sen x • tan(x) tangente x • exp(x) e elevado a x

  20. Funções Elementares • log(x) log inverso de exp(x) • log10(x) log base 10 de x • gcd(x,y) mdc de x e y • lcm(x,y) mmc entre x e y • max(x) máximo de x • min(x) mínimo de x • inv(x) matriz inversa de x • ...

  21. Espaço de Trabalho

  22. Comandos do SO

  23. Vetores

  24. Vetores em linha • >> x = [ 1 3 5 ]; • >> lenght(x) • ans = • 3 • >> y = [ 3 4 5 ]; • >> x + y • ans = • 4 7 10 • >> z = 3 * y • ans = • 9 12 15

  25. Vetores • >> x = [ 1 3 5 ]; • >> v1 = [ 3 4 5 6]; • >> x + v1 • ??? Error using ==> plus • Matrix dimensions must agree.

  26. Gerando vetores • >> x = [0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1] .* pi • ou • >> x = (0:0.1:1).* pi • ou • >> x = linspace(0,pi,11) • >> y = sin(x)

  27. Gerando vetores • linspace(x1,x2) gera um vetor linha com 100 pontos igualmente espaçados. • linspace(x1,x2,n) gera vetor com n pontos entre x1 e x2 >>linspace(0,pi,11)

  28. Gerando vetores • a : b : c gera vetor começando em a, incrementando por b, até chegar em c. Não gera além de c. >> 0:0.1:1 ans = 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 • a : b gera vetor começando em a até chegar em b incrementando por 1

  29. Manipulando vetores • x = (0:0.1:1)*pi x = 0 0.3142 0.62830.9425 1.25661.5708 1.8850 2.1991 2.5133 2.8274 3.1416 • x(6) = 1.5708 • x(1:5) = 0 0.3142 0.6283 0.9425 1.2566 • x(7:end) = 1.8850 2.1991 2.5133 2.8274 3.1416 • x(3:-1:1) = 0.6283 0.3142 0 • x(2:2:7) = 0.3142 0.94251.5708

  30. Manipulando vetores, matrizes • x = 00.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.19912.5133 2.8274 3.1416 • x([8 2 9 1]) = 2.19910.31422.5133 0 • z = x[(2:5) 4 5 7] = 0.3142 0.6283 0.9425 1.25664.0000 5.0000 7.0000 • w = [ x y ] %vetor linha • k = [ x; y ] % matriz com duas linhas

  31. Manipulando vetores, matrizes • A = [1 2 3; 4 5 6; 7 8 9]; • A(3,3) = 9 • A(2, 2:3) = 5 6 • A(3,:) = 7 8 9 % : todas as colunas

  32. Manipulando vetores, matrizes • B = A(3:-1:1, : ) • B = [7 8 9; 4 5 6; 1 2 3] • C = [A B( : , [1 3])] • C = [1 2 3 7 9; 4 5 6 4 6; 7 8 9 1 3] • B(:,2) = [ ] • B = [79; 46; 13] • B = A(:,[2 2 2 2]) • B = [2 2 2 2; 5 5 5 5; 8 8 8]

  33. Operações Especiais

  34. Matrizes matriz(10) ou matriz(2,3)

  35. Busca de Sub-Matrizes >> A= [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 >> [ i , j ] = find(A > 5) i = 3 j = 1 3 2 2 3 3 3 • >> x = -3:3 • x = • -3 -2 -1 0 1 2 3 • >> k = find(abs(x) > 1) • k = • 1 2 6 7 • >> y = x(k) • -3 -2 2 3

  36. Dimensões de Vetores e Matrizes

  37. Operações com Vetores e Matrizes

  38. Operações com Vetores e Matrizes

  39. Alguns exemplos • x = [ 1 2 3 4], y = [ 1 1/2 1/3 1/4]; • x .* y % dot product • 1 1 1 1 • x * y' % scalar product • 4 • sqrt( x * x') %Comprimento vetor • 5.4722

  40. Mais exemplos: resolução de sistemas de equações • 2x1 - x2 = 1 • X1 - 2x2 + x3 = 0 • - x2 + 2x3 = 1 • Ax = b; x = A-1b; x = A \ b

  41. Mais exemplos: resolução de sistemas de equações • A = [ 2 -1 0; 1 -2 1; 0 -1 2]; • b = [1; 0; 1] • Em notação matricial Ax = b • x = A-1b; • X = inv(A) * b; • x = A \ b;

  42. Gráficos

  43. Gráficos Bidimensionais >> x = linspace(0, 2 * pi, 30); >> y = sin(x); >> z = cos(x); >> plot(x,y,x,z)

  44. Títulos, Rótulos e Grids >> x = linspace(0, 2 * pi, 30); >> y = sin(x); >> plot(x,y,x,z); >> title('Grafico de y = sen(x)'); >> xlabel('Eixo x'); >> ylabel('Seno(x)');

  45. Legendas >> x = linspace(0, 2 * pi, 30); >> y = sin(x); >> z = cos(x); >> plot(x,y,x,z); >> legend('curva sen', 'curva cos');

  46. Linhas: Estilos e Cores >> x = linspace(0, 2 * pi, 30); >> y = sin(x); >> z = cos(x); >> subplot(2,1,1) >> plot(x,y,’go’) >> subplot(2,1,2) >> plot(x,z,’r*’)

  47. Hold • Comando plot limpa a janela do gráfico antes de desenhar o novo gráfico • Isto não é conveniente se desejarmos adicionar outros gráficos no futuro • Usar hold para evitar limpeza da janela • plot(x,y,'w-'), hold on • plot(x,y,'gx'), hold off • hold off não limpa a janela (usar clf)

  48. Subplots • A janela do gráfico é dividida em uma matriz m x n de pequenas janelas. • As janelas são contadas entre 1 e m x n • Cada subfigura é tratada como uma figura podendo ter mais de uma curva, estilos, legendas, cores etc

  49. Subplots x = linspace(0,2*pi,30); y1 = sin(x); y2 = sin(2*x); y3 = sin(3*x); y4 = sin(4*x); subplot(221), plot(x,y1), legend('y = sen(x)'); subplot(222), plot(x,y2), legend('y = sen(2*x)'); subplot(223), plot(x,y2), legend('y = sen(3*x)'); subplot(224), plot(x,y4), legend('y = sen(4*x)');

  50. Subplots

More Related