A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

MATLAB - Matrix Laboratory Adaptado de Profa

Apresentações semelhantes


Apresentação em tema: "MATLAB - Matrix Laboratory Adaptado de Profa"— Transcrição da apresentação:

1 MATLAB - Matrix Laboratory Adaptado de Profa
MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

2 MATLAB - INF01040 - Profa. Patrícia Jaques
Programação Diversos níveis: linguagem de máquina linguagem assembler linguagem C planilhas eletrônicas (Excel) pacotes científicos (MATLAB, Scilab, Mathematica) Qual escolher? É preciso analisar as necessidades MATLAB - INF Profa. Patrícia Jaques

3 MATLAB - INF01040 - Profa. Patrícia Jaques
Software voltado ao cálculo numérico Integra: análise numérica; cálculo com matrizes; processamento de sinais; construções com gráficos. Elemento básico de informação: MATRIZ. Ótima performance. Alto nível. ( MATLAB - INF Profa. Patrícia Jaques

4 MATLAB - INF01040 - Profa. Patrícia Jaques
Pacotes científicos MATLAB ( linguagem de programação ambiente para desenvolvimento sistema gráfico funções matemáticas interface com linguagens de programação (C, FORTRAN) MATLAB - INF Profa. Patrícia Jaques

5 MATLAB - INF01040 - Profa. Patrícia Jaques
Pacotes científicos SCILAB sistema aberto (freeware) desenvolvido pelo INRIA (instituto francês) implementa um subconjunto das funções do MATLAB Disponível em: MATLAB - INF Profa. Patrícia Jaques

6 MATLAB - INF01040 - Profa. Patrícia Jaques
Apresentação Software para análise numérica Cálculo com matrizes Processamento de sinais Construção de gráficos Problemas expressos numa forma mais próxima da notação matemática Interpreta comandos do usuário dados na janela de comando. Experimente: >>sqrt(64) MATLAB - INF Profa. Patrícia Jaques

7 MATLAB - INF01040 - Profa. Patrícia Jaques
Introdução Trabalha apenas com um tipo de objeto: Matrizes Os elementos das matrizes podem ser números complexos Escalares são matrizes 1x1 ex: >> a= 6 Vetores são matrizes 1xN ou Nx1 Entrando com uma matriz (3 maneiras): >>A = [1 2 3 4 5 6 7 8 9] >>A = [1 2 3;4 5 6;6 7 8] através de um arquivo (ex: gera.m) >>gera MATLAB - INF Profa. Patrícia Jaques

8 MATLAB - INF01040 - Profa. Patrícia Jaques
Matriz A = [1 2 3;4 5 6;7 8 9] 1 2 3 4 5 6 7 8 9 Diferencia maiúsculas de minúsculas! MATLAB - INF Profa. Patrícia Jaques

9 MATLAB - INF01040 - Profa. Patrícia Jaques
Introdução Se no final da linha for colocado um “;”, o Matlab executa o comando mas não mostra o resultado >>A = [1 2 3;4 5 6;7 8 9] >>B = [1 2 3;4 5 6;7 8 9]; Elementos das matrizes podem ser uma expressão >>x = [ sqrt(2) ((1+2+3)*4/5)^2] resulta em: x = Elementos são referenciados por índices entre parênteses: x(6) = 5 resulta em: x = MATLAB - INF Profa. Patrícia Jaques

10 Acessando um elemento da Matriz
1 2 3 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 A(2,1)=10 10 A(2)=10 MATLAB - INF Profa. Patrícia Jaques

11 MATLAB - INF01040 - Profa. Patrícia Jaques
Introdução Grandes matrizes podem ser geradas a partir de pequenas: >>r=[ ]; O comando abaixo anexa à matriz A o vetor r >>A=[A;r] A= 1 2 3 4 5 6 7 8 9 MATLAB - INF Profa. Patrícia Jaques

12 MATLAB - INF01040 - Profa. Patrícia Jaques
Introdução Pequenas matrizes podem ser extraídas de grandes matrizes usando “:” >>A=A(1:3,:); seleciona as 3 primeiras linhas e todas as colunas da matriz A atual, modificando-a para sua forma original. A= 1 2 3 4 5 6 7 8 9 MATLAB - INF Profa. Patrícia Jaques

13 Variáveis e informações da área de trabalho
Variáveis são declaradas na forma: variável = expressão “ans” ® (answer) variável default caso um nome seja omitido. Se a expressão é tão grande que não cabe em uma linha, pode-se continuar a expressão na próxima linha usando um espaço em branco e 3 pontos: >> s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 … -1/8 + 1/9 - 1/10 + 1/11 - 1/12 + 1/13; MATLAB - INF Profa. Patrícia Jaques

14 Variáveis e informações da área de trabalho
O comando “who” ® lista as variáveis da área de trabalho “whos” mostra detalhes sobre as variáveis clear; clear var; Teclas   para retomar comandos digitados anteriormente MATLAB - INF Profa. Patrícia Jaques

15 Números e expressões aritméticas
Notação decimal convencional Ex: E e23 Operadores: ^ exponenciação / divisão à direita \ divisão à esquerda * multiplicação + adição - subtração MATLAB - INF Profa. Patrícia Jaques

16 MATLAB - INF01040 - Profa. Patrícia Jaques
Números complexos Número complexo  z= a + b*i onde i= √-1 Funções “i” >> z= * i Matrizes complexas permitem também a forma: >> A= [1 2; 3 4]+i*[5 6; 7 8] Caso “i” seja usado como variável e tenha seu valor modificado, pode-se criar uma nova unidade complexa: >> ii = sqrt(-1) >> z = * ii MATLAB - INF Profa. Patrícia Jaques

17 MATLAB - INF01040 - Profa. Patrícia Jaques
Formatos de saída O comando format modifica o modo como as matrizes são mostradas format short (default) short e e+000 long long e e+000 hex rat 4/3 bank Exemplo: >>a=2/3 >>format bank >>a MATLAB - INF Profa. Patrícia Jaques

18 MATLAB - INF01040 - Profa. Patrícia Jaques
Help O comando de ajuda “help” fornece informações sobre os tópicos help <tópico> -> mostra comandos relacionados ao tópico help <comando> -> mostra detalhes sobre o comando Exemplo: >> help format MATLAB - INF Profa. Patrícia Jaques

19 MATLAB - INF01040 - Profa. Patrícia Jaques
Funções Conjunto extenso de funções: matemática elementar funções especiais matrizes elementares matrizes especiais decomposição e fatorização de matrizes análise de dados polinômios solução de equações diferenciais equações não-lineares e otimização integração numérica processamento de sinais MATLAB - INF Profa. Patrícia Jaques

20 Operacões com matrizes
Transposta ® indicada pelo caracter apóstrofo '. A=[1 2 3;4 5 6;7 8 9]; B=A' B= 2 5 8 3 6 9 det(A) Determinante da matriz A. inv(A) Inversa da matriz A. A A’ 1 2 3 4 5 6 7 8 9 1 4 7 2 5 8 3 6 9 MATLAB - INF Profa. Patrícia Jaques

21 Operações com matrizes
Adição e subtração ® indicada pelos sinais “+” e “-” respectivamente. C=A+B; Essas operações só são definidas para matrizes com a mesma dimensão. B=A+A’ A A’ B 1 2 3 4 5 6 7 8 9 1 4 7 2 5 8 3 6 9 2 6 10 14 18 + = MATLAB - INF Profa. Patrícia Jaques

22 Operações com matrizes
Multiplicação ® indicada por “*”. Só é válida quando a 2a. dimensão da 1a. matriz for igual a 1a. dimensão da 2a. matriz. mxn e nxp Ex: >> A*B MATLAB - INF Profa. Patrícia Jaques

23 Operações com matrizes
A multiplicação de escalar por matriz e vice-versa também é válida. Ex: >> B=2*A A B 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 = 2* MATLAB - INF Profa. Patrícia Jaques

24 Operações com matrizes
Divisão ® indicada por “/” ou “\”. Se A for quadrada, A\B e B/A correspondem a inv(A)*B e B*inv(A) respectivamente A\B = inv(A)*B B/A = B*inv(A) Em geral: X = A\B ® A*X = B X = B/A ® X*A = B MATLAB - INF Profa. Patrícia Jaques

25 Operações com matrizes
Exponenciação -> indicada por “^”. A^p eleva A à p-ésima potência se A for quadrada e p for um escalar. Se p é inteiro maior do que 1, isso é feito através de múltiplas multiplicações. MATLAB - INF Profa. Patrícia Jaques

26 Operações com conjuntos
São operações aritméticas realizadas elemento por elemento da matriz. Usa-se os mesmos caracteres das operações usuais precedidos por um ponto (“.*”, “./”, “.\”, “.^”, “.'”) Exemplo: Crie duas matrizes quadradas a e b Faça: >>a*b >>a.*b MATLAB - INF Profa. Patrícia Jaques

27 Operações com conjuntos
Operações comparativas (<, <=, >, >, ==, ~=) podem ser realizadas entre matrizes de mesma dimensão 1 para verdadeiro 0 para falso O resultado é uma matriz de 0s e 1s correspondendo a Falso e Verdadeiro & (e) e | (ou) também podem ser usados MATLAB - INF Profa. Patrícia Jaques

28 Manipulação de vetores e matrizes
Gerando vetores: a declaração >>x = 1:5 gera o vetor linha x = (incremento de 1) Pode-se usar outros incrementos: >> y = 0:pi/4:pi y = A função k=linspace(0,1,6) gera um vetor linearmente espaçado de 0 a 1, contendo 6 elementos k = MATLAB - INF Profa. Patrícia Jaques

29 Manipulação de vetores e matrizes
Elementos das matrizes: utiliza-se índices entre parênteses. >>A=[1 2 3;4 5 6;7 8 9]; >>A(3,3) = A(1,3) + A(3,1) A = A(2,1) = 4 A(1:2, 2:3) = 0  elementos A(1,2), A(1,3), A(2,2), A(2,3) são zerados. A(:,3) = 0  elementos da terceira coluna são zerados. >>A(1:2,3)  especifica uma submatriz 2x1 com os 2 primeiros elementos da terceira coluna de A ans = 3 6 MATLAB - INF Profa. Patrícia Jaques

30 Manipulação de vetores e matrizes
exclusão de linhas ou colunas atribuir [ ] à linha ou coluna A(:,3) = []  exclui terceira coluna da matriz A(1:2,:) = []  exclui duas primeiras linhas da matriz troca entre linhas ou colunas B = A (:, [1 3 2])  troca ordem das colunas 2 e 3. A = A ([3 2 1], :)  inverte ordem das linhas. concatenação formar matriz usando outras (inteiras ou partes) como elementos Ex.: sendo A = [1 2 3; 4 5 6; 7 8 9] uma matriz 3 x 3, A(1,:) = e A(3,:) = Então, B = [A(1,:); A(3,:)] é uma matriz 2 x 3 contendo a primeira e a terceira linhas de A. MATLAB - INF Profa. Patrícia Jaques

31 Funções de Construção de Matrizes
É possível construir uma matriz a partir de blocos. Exemplo, se A é uma matriz 3 x 3, então B = [A, zeros(3,2); zeros(2,3), eye(2)] Matriz 5 x 5. B = Concatena na próxima linha próxima coluna A zeros(3,2) eye(2) zeros(2,3) MATLAB - INF Profa. Patrícia Jaques

32 Funções de Construção de Matrizes
eye - matriz identidade eye(2) ans = zeros - matriz de zeros zeros(2,3) ou zeros(2) MATLAB - INF Profa. Patrícia Jaques

33 Funções de Construção de Matrizes
ones - matriz de 1's ones(2,3) ou ones (2) ans = rand - matriz gerada aleatoriamente rand(5,4) ou rand(2) MATLAB - INF Profa. Patrícia Jaques

34 Funções de Construção de Matrizes
diag - matriz diagonal Se x é um vetor, diag(x) é a matriz diagonal com x na diagonal; x=[1 2 3]; diag(x) Se A é uma matriz quadrada, então diag(A) é um vetor cujos componentes são os elementos da diagonal de A. A=[3 11 5; ; 6 2 1] diag(A) ® Tente também: diag(diag(A)) ans = 3 1 ans = MATLAB - INF Profa. Patrícia Jaques

35 MATLAB - INF01040 - Profa. Patrícia Jaques
triu - parte triangular superior de uma matriz triu(A) ans = tril - parte triangular inferior de uma matriz tril(A) MATLAB - INF Profa. Patrícia Jaques

36 MATLAB - INF01040 - Profa. Patrícia Jaques
Exemplo a = » b = [a(1:2,1:1), a(1:2,3:4) ; a(4:4,1:1), a(4:4,3:4)] b = MATLAB - INF Profa. Patrícia Jaques

37 MATLAB - INF01040 - Profa. Patrícia Jaques
Funções Escalares Algumas funções no Matlab operam essencialmente sobre escalares, mas operam sobre cada elemento se forem aplicadas a uma matriz. As funções escalares mais comuns são: sin - seno asin - arcoseno exp - exponencial abs - valor absoluto round - arredonda cos - cosseno acos - arco cosseno log - log natural sqrt - raíz quadrada floor - arredonda na direção de menos infinito tan - tangente atan - arco tangente rem - resto da divisão sign - função sinal ceil - arredonda na direção de mais infinito MATLAB - INF Profa. Patrícia Jaques

38 MATLAB - INF01040 - Profa. Patrícia Jaques
Funções Vetoriais Outras funções do Matlab operam essencialmente sobre vetores (linha e coluna) Mas em uma matriz m x n, agem sobre coluna por coluna para produzir um vetor linha com o resultado de sua aplicação para cada coluna. É possível operar sobre linha por linha transpondo-se a matriz, por exemplo: a = rand(5) mean(a)  média de cada coluna mean(a’)  média de cada linha MATLAB - INF Profa. Patrícia Jaques

39 MATLAB - INF01040 - Profa. Patrícia Jaques
Funções Vetoriais Outros exemplos de funções vetoriais são: max(a)  encontra o valor máximo [Y,I] = MAX(X) sum(a)  soma os elementos median(a)  mediana any(a)  true se existe um elemento diferente de zero min(a)  menor valor prod(a)  produto dos elementos all(a)  true se todos os elementos são diferentes de zero sort(a)  ordena em ordem crescente Exemplo: max(max(a)) max(a) MATLAB - INF Profa. Patrícia Jaques

40 MATLAB - INF01040 - Profa. Patrícia Jaques
Exercícios criar matrizes A = [ ] B = [1;2;3;4;5;6;7;8;9] C = [1 2 3;4 5 6;7 8 9] calcular A` B` C` digitar b B who whos clear B clc A,C calcular sum(A) sum(C) sum(C`) sum(C`)` diag(C) sum(diag(C)) sum(diag(fliplr(C))) MATLAB - INF Profa. Patrícia Jaques

41 MATLAB - INF01040 - Profa. Patrícia Jaques
Exercícios calcular C s = C(1,3) + C(2,3) + C(3,3) C(1,3) + C(2,3) + C(3,3) + C(4,3) CC = C CC(4,3) = 1 CC clear CC clc calcular C(2,3) C(6) 1:10 c = 1:10 100:-7:50 pi c = 0:pi/4:pi c calcular C(1:3,3) s s = sum(C(1:3,3)) s = sum(C(:,3)) s = sum(C(:,end)) D = C(:,[1 3 2]) A + C C + 2 MATLAB - INF Profa. Patrícia Jaques

42 MATLAB - INF01040 - Profa. Patrícia Jaques
Exercícios calcular C + D C - D clear who a = [8 1 6;3 5 7; 4 9 2] b = 2 * ones(3,3) a * b a .* b MATLAB - INF Profa. Patrícia Jaques

43 MATLAB - INF01040 - Profa. Patrícia Jaques
Exercício 9) Considere a seguinte matriz: 7.5   8.0      7.7      9.2      6.6      8.0      6.1      7.2     9.0      4.5      5.0   4.6 que corresponde a notas de provas de alunos (10 alunos). a) Calcule a nota final de cada aluno, como a média das 3 notas, sendo que a última nota tem peso 2. b) Calcule a média aritmética das notas da turma: média de cada prova e média das notas finais c) Use as funções adequadas para listar a menor nota final e a maior nota final. MATLAB - INF Profa. Patrícia Jaques

44 MATLAB - continuação

45 Anotando comandos usados
diary nome do arquivo - cria arquivo texto no qual ficarão registrados os comandos e as variáveis subseqüentes. diary off - fecha arquivo e salva-o como texto. type nome do arquivo - apresenta na janela de comando todo o conteúdo do arquivo. é possível também abri-lo em editores de texto ASCII. MATLAB - INF Profa. Patrícia Jaques

46 Paginando saída na janela de comando
more on - quando uma saída for muito extensa, mostra somente uma tela de cada vez. Enter  avança uma linha. Barra de Espaço  avança uma tela. q  pára de mostrar saída. more off - retorna ao modo normal (padrão). MATLAB - INF Profa. Patrícia Jaques

47 MATLAB - INF01040 - Profa. Patrícia Jaques
Salvando o Workspace File  Save Workspace As save nome do arquivo (salva no diretório corrente) File  Load Workspace load nome do arquivo (busca no diretório corrente) File  Set Path permite alterar diretório corrente MATLAB - INF Profa. Patrícia Jaques

48 MATLAB - INF01040 - Profa. Patrícia Jaques
Controle de fluxo Laço for >> for i=1:5 x(i)=i^2; end x = 1 4 9 16 25 >> for i=1:5 for j=1:5 a(i,j)=i+j; b(i,j)=i-j; end c=a+b; a = b = MATLAB - INF Profa. Patrícia Jaques

49 MATLAB - INF01040 - Profa. Patrícia Jaques
Controle de fluxo Laço while a = 1; b = 15; while a<b clc a = a+1 b = b-1 pause(1) end disp(‘fim do loop’) if for i = 1:5 for j = 1:5 if i == j A(i,j) = 2; else if abs(i-j) == 1 A(i,j) = -1; else A(i,j) = 0; end MATLAB - INF Profa. Patrícia Jaques

50 MATLAB - INF01040 - Profa. Patrícia Jaques
Arquivos m são arquivos que contém comandos do MATLAB scripts não recebem argumentos de entrada nem retornam argumentos de saída. operam em dados do workspace. úteis para automatizar séries de passos que precisam ser executados várias vezes. funções podem receber e/ou retornar argumentos. variáveis internas são locais à função. úteis para estender a linguagem MATLAB. MATLAB - INF Profa. Patrícia Jaques

51 MATLAB - INF01040 - Profa. Patrícia Jaques
Arquivos m 2 passos: criar arquivo .m usando um editor de texto. chamar o arquivo m da linha de comando, ou de outro arquivo m. MATLAB - INF Profa. Patrícia Jaques

52 MATLAB - INF01040 - Profa. Patrícia Jaques
Arquivos m criando um arquivo m edit nome do arquivo ou File  New  M-File digitar código do script ou da função. File  Save As - escolher diretório corrente ou que esteja presente no search path do MATLAB. Search Path  referência para o MATLAB procurar os arquivos m. File  Set Path usando um arquivo m nome do arquivo MATLAB - INF Profa. Patrícia Jaques

53 MATLAB - INF01040 - Profa. Patrícia Jaques
Arquivos m Exemplo 1  script criar arquivo digitar código clear clc A = [1 2 3; 4 5 6; 7 8 9] B = A’ salvar como inicio.m executar na janela do MatLab >> inicio Comentários: % comentário de linha texto apos o % na mesma linha não será executado Exemplos: procbasico linhatri circulo malha MATLAB - INF Profa. Patrícia Jaques

54 MATLAB - INF01040 - Profa. Patrícia Jaques
Outros comandos Entrada de dados: Receber um dado numérico do usuário <variável> = input('<mensagem>'); Exemplo: n1 = input('Digite um numero: '); Entrada de dados: Receber um dado texto do usuário <variável> = input('<mensagem>', 's'); n1 = input('Digite seu nome: ', 's'); Mostrar um texto ou conteúdo de uma variável: disp('<mensagem>'); disp('Total calculado: '); disp(soma); Limpar a tela clc; MATLAB - INF Profa. Patrícia Jaques

55 Rotinas de Entrada/Saída
TEXTREAD [N,F,S]=textread(’dados.txt',’%d %f %s') N= 6 5 3 F= 0.5000 0.3000 1.3340 S= ‘dd1’ ‘dd3’ ‘dd5’ dados.txt 6 0.5 dd1 5 0.3 dd3 dd5 For most users, the MATLAB functions load and save provide sufficient means of loading and saving data. Load and save assume data is stored in a platform independent binary data format with a file name ending in the .mat extension. These .mat or MATlab files are platform independent because they contain a machine signature in the file header. MATLAB checks the signature when it loads a file and, if a signature indicates that a file is foreign, performs the necessary conversion. The MATLAB load and save routines can be used to read and write both ASCII and binary data. These two commands are primarily used to read and write full-precision binary MATLAB format files. It is also possible to read and write ASCII files with these routines. The save command will create space or tab delimited files of either 8- or 16- digit ASCII form. The load command will read any MAT-file created on any platform or any ASCII file with numeric space or tab delimited data.

56 MATLAB - INF01040 - Profa. Patrícia Jaques
Exercício Escreva um programa (arquivo-m) para: Ler um arquivo contendo os dados de temperaturas mínimas e máximas de 15 dias, no formato (%d %f %f) Calcular a média, menor e maior temperatura (das temperaturas mínima e máxima) Listar os resultados MATLAB - INF Profa. Patrícia Jaques

57 Solução – exerciciotemp.m
[dia,minima,maxima] = textread('dadostemp.txt','%d %f %f'); mediamin = mean(minima); mediamax = mean(maxima); minmin = min(minima); minmax = min(maxima); maxmin = max(minima); maxmax = max(maxima); disp (['Media das Minimas', mean(minima)]); disp (['Media das Maximas', mean(maxima)]); disp (['Menor Minima', min(minima)]); disp (['Menor Maxima', min(maxima)]); disp (['Maior Minima', max(minima)]); disp (['Maior Maxima', max(maxima)]); MATLAB - INF Profa. Patrícia Jaques

58 Resolvendo Equações Polinomiais
Achar raízes de um polinômio: x4 - 12x3 + 0x2 + 25x + 116=0 >>p=[ ] r=roots (p) r = 2.7028 i i Construir polinômio a partir de suas raízes: >> pp = poly(r) pp = MATLAB - INF Profa. Patrícia Jaques

59 MATLAB - INF01040 - Profa. Patrícia Jaques
Atividade Exemplo: f(x) = 3*x^4-0.5.*x^3+x-5.2 (x assume valores escalares) p = [ ]; f = polyval(p,x); Digitar estes comandos e observar a saída: p=[ ]; x = linspace(-1,3); v=polyval(p,x) - >gera f(x) para cada x contido no vetor x plot(x,v) title(‘Figure 19.1:x{^3} + 4x{^2} - 7x - 10´) xlabel(´x´) MATLAB - INF Profa. Patrícia Jaques

60 Expressões Simbólicas
Defina as variáveis com o comando syms Crie as expressões utilizando estas variáveis f(x) = 2x2+3x-5 g(x) = x2-x+7 f(x) + g(x) f(x) - g(x) f(x) * g(x) f(x) / g(x) syms x >> f=2*x^2+3*x-5 >> g=x^2-x+7; >> f + g >> f-g >> f*g >> expand(ans) >> f / g >> pretty (ans) -> (2*x^2+3*x-5)*(x^2-x+7) -> 2*x^4+x^3+6*x^2+26*x-35 MATLAB - INF Profa. Patrícia Jaques

61 Expressões Simbólicas
Composição e substituição em funções: >> f=1/(1-x^2) >> g=sin(x) >> compose(f,g) ans = 1/(1-sin(x)^2) >> compose(g,f) ans = sin(1/(1-x^2)) >> finverse(g) ans = asin(x) >> subs(f,x,2) ans = -1/3 compose: calcula a composição das funções f(x) e g(x) em f(g(x)), finverse: encontra a inversa funcional de uma expressão subs: substitui uma variável por um número (ou por outra variável) em uma expressão MATLAB - INF Profa. Patrícia Jaques

62 Expressões Simbólicas
Solução de Equações ax2+bx+c = 0 >> syms a b c x % manipula como variável simbólica >> solve(a*x^2+b*x+c) ans = [1/2/a*(-b+(b^2-4*a*c)^(1/2))] [1/2/a*(-b-(b^2-4*a*c)^(1/2))] >> pretty(ans) %mostra formato de fração [ /2] [ -b + (b - 4 a c) ] [1/ ] [ a ] [ ] [ -b - (b - 4 a c) ] MATLAB - INF Profa. Patrícia Jaques

63 Resolvendo Sistema de Equações Lineares usando “Divisão Esquerda”
Se [A] é uma matriz quadrada (m = n): [A] = mxn {x} = nx1 {b} = mx1 [A]{x} = {b} {x} = ? {x} = [A]-1{b} x = inv(A)*b; x = A\b; Erro se singular Aviso se quase singular One of the most common linear algebra problems is the solution of a set of simultaneous linear equations. This can be easily accomplished in MATLAB using “Left Division” - the backslash operator (\). NOTE: When to use “Left Division”: Ax = B x = A\B When to use normal division: xA = B x = B/A

64 Exemplo: Resolvendo Equações
Resolver este conjunto de equações simultâneas: A = [-1 1 2; ;-1 3 4]; b = [2;6;4]; x = inv(A)*b x = 1.0000 2.0000 x = A\b -x1 + x2 + 2x3 = 2 3x1 - x2 + x3 = 6 -x1 + 3x2 + 4x3 = 4

65 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos planos 2D O comando plot cria gráficos de x-y no plano; Se x e y são vetores de mesmo tamanho, o comando plot(x,y) abre uma janela gráfica e desenha um gráfico x-y dos elementos de x versos os elementos de y. Exemplo: x=-4:.01:4; y=sin(x); plot(x,y) Peaks – conjunto de dados Para mostrar a capacidade Gráfica (plot, mesh, surf, contour3, contour, surfc, meshz) MATLAB - INF Profa. Patrícia Jaques

66 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos Comandos de plotar Plot(x, y) – gera gráficos lineares Semilogx(x, y) – gráfico com escala linear para y e escala logarítmica para x semilogy(x, y) – a escala logarítmica é para y Loglog(x, y) – escala logarítmica para ambos (x e y) Bar(x, y) – gera um gráfico em barras com elementos do vetor y localizados no vetor x Stairs(x, y) – gera um gráfico de degraus com elementos do vetor y Hist(x,y) – plota histograma Rose(x,y) – plota histograma em ângulo MATLAB - INF Profa. Patrícia Jaques

67 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos planos 2D Outro exemplo: Desenhar o gráfico de y=exp(-x.^2) no intervalo –1.5 a 1.5. x = -1.5:0.01:1.5; y= exp(-x.^2); plot(x,y) O comando grid coloca uma grade de linhas sobre o gráfico atual. Experimente refazer o comando anterior e depois digite grid. MATLAB - INF Profa. Patrícia Jaques

68 MATLAB - INF01040 - Profa. Patrícia Jaques
+ gráficos Gráficos podem ter títulos, eixos rotulados e textos. Para isso usa-se os seguintes comandos que tem strings como argumentos: title título do gráfico xlabel rótulo do eixo x ylabel rótulo do eixo y gtext texto posicionado interativamente (mouse ou setas) text posiciona texto na posição especificada » title 'Título' » xlabel 'x' » ylabel 'y' MATLAB - INF Profa. Patrícia Jaques

69 MATLAB - INF01040 - Profa. Patrícia Jaques
+ gráficos Exemplo: x = 0:pi/100:2*pi; y = sin(x); plot(x,y); %o caracter \pi cria o símbolo  xlabel('x = 0:2\pi'); ylabel('Seno de x'); title('Função Seno','FontSize',12); gtext ('y = sin(x)’); MATLAB - INF Profa. Patrícia Jaques

70 MATLAB - INF01040 - Profa. Patrícia Jaques
+ gráficos Os eixos são auto escalonados. Podem ser modificados utilizando-se o comando axis. Se c=[ xmin, xmax, ymin, ymax ], então o comando axis(c) ajusta o escalonamento dos eixos para os limites definidos no vetor c. MATLAB - INF Profa. Patrícia Jaques

71 MATLAB - INF01040 - Profa. Patrícia Jaques
+ gráficos axis auto - retorna-se ao auto escalonamento axis square - garante que a mesma escala é usada para ambos os eixos axis image - apresenta imagem com a mesma relação de aspecto da imagem axis off - desativa os eixos axis on - ativa os eixos MATLAB - INF Profa. Patrícia Jaques

72 Gráficos planos 2D múltiplos
Há duas formas de se fazer gráficos múltiplos em uma única janela. Exemplo 1: x=0:0.01:2*pi; y1=sin(x); y2=sin(2*x); y3=sin(4*x); plot(x,y1,x,y2,x,y3) MATLAB - INF Profa. Patrícia Jaques

73 MATLAB - INF01040 - Profa. Patrícia Jaques
+ gráficos É possível alterar os caracteres de tipo de linha e de ponto usados como padrão. Exemplo: x=0:0.01:2*pi; y1=sin(x); y2=sin(2*x); y3=sin(4*x); plot(x,y1,'--',x,y2,'*',x,y3,'+') MATLAB - INF Profa. Patrícia Jaques

74 MATLAB - INF01040 - Profa. Patrícia Jaques
+ gráficos Tipos de Marcadores: ponto (.), sinal de adição (+), asterisco (*), círculo (o), letra x (x) Quadrado (s) Triangulo (v) Losango (d) Hexágono (h) Cores: Amarelo (y) Magenta (m) Verde (g) Azul (b) Preto (k) Vermelho (r) Ciano (c) Tipos de linha: sólido (-), tracejado (--), pontilhado (:), traço e ponto (-.) Exemplo: x1 = 0:pi/100:2*pi; x2 = 0:pi/10:2*pi; plot(x1,sin(x1),'r:',x2,sin(x2),‘c+') MATLAB - INF Profa. Patrícia Jaques

75 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos planos 2D O comando subplot pode ser usado para particionar a tela e permite a apresentação simultânea de vários gráficos não superpostos. Exemplo: ... MATLAB - INF Profa. Patrícia Jaques

76 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos planos 2D x=0:0.01:2*pi; y1=sin(x); y2=sin(2*x); y3=sin(3*x); y4=sin(4*x)+cos(x); y5=cos(2*x)+sin(3*x); subplot(2,2,1), plot(y1) subplot(2,2,2), plot(y2) subplot(2,2,3), plot(y3) subplot(2,2,4), plot(y4) Exercício: modifique o código ao lado para apresentar também a função y5. MATLAB - INF Profa. Patrícia Jaques

77 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos em malhas 3D É possível desenhar superfícies em malhas 3D com a função mesh. O comando mesh(z) cria um desenho 3D em perspectiva dos elementos da matriz z. A superfície da grade é definida pelas coordenadas z dos pontos, acima de uma grade retangular no plano x-y. MATLAB - INF Profa. Patrícia Jaques

78 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos em malhas 3D Exemplo: mesh(eye(10)) Para desenhar o gráfico de uma função z=f(x,y) sobre um retângulo, deve-se primeiro definir os vetores xx e yy que dão as partições dos lados do retângulo. MATLAB - INF Profa. Patrícia Jaques

79 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos em malhas 3D Com a função meshgrid (domínio da grade) é possível criar uma matriz x, cujas linhas igualam-se a xx e cujas colunas têm comprimentos de yy e, similarmente, uma matriz y, cujas linhas igualam-se à matriz yy usando-se o comando: [x,y]=meshgrid(xx,yy); Depois, computa-se uma matriz z, obtida pela avaliação da função f sobre as matrizes x e y, com a qual o comando mesh pode ser utilizado. MATLAB - INF Profa. Patrícia Jaques

80 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos em malhas 3D Exemplo: xx=-2:.1:2; yy=xx; [x,y]=meshgrid(xx,yy); z=exp(-x.^2-y.^2); mesh(z) As primeiras linhas podem ser omitidas, se modificarmos a linha de meshgrid para: [x,y]=meshgrid(-2:.1:2, -2:.1:2); MATLAB - INF Profa. Patrícia Jaques

81 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos em malhas 3D Exemplo: [X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z,'EdgeColor','black') eps é o menor número em ponto flutuante do sistema. Sua funçao no exemplo é evitar divisão por zero. surf(X,Y,Z) MATLAB - INF Profa. Patrícia Jaques

82 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos em malhas 3D Comandos para plotar gráficos tridimensionais e contornos; plot3 – plota um gráfico 3D Comet3 – plota em 3D com trajetória de cometa contour3 – plota contorno 3D clabel – plota contorno com valores mesh – plota malha 3D meshc – combina mesh e contour surf – plota superfície 3D surfc – combina surf e contour MATLAB - INF Profa. Patrícia Jaques

83 MATLAB - INF01040 - Profa. Patrícia Jaques
Gráficos em malhas 3D Anotações no gráfico; Title – título do gráfico Xlabel – título do eixo x Ylabel – título do eixo y Zlabel – título do eixo z Text – insere anotações no gráfico Gtext – insere anotações com o mouse Grid – linhas de grade no gráfico MATLAB - INF Profa. Patrícia Jaques

84 MATLAB - INF01040 - Profa. Patrícia Jaques
Exemplos de arquivos.m matrizA.m Gera matriz A (10x10) cartograf.m mapeamento de uma parte do fundo do oceano circulo.m, exemplo-funcao.m, exfuncao.m , procbasico.m usa comando plot, title, xlabel, ylabel…. distacia.m distancia em linha reta entre dois pontos num plano, usa funcao sqrt exemploG3D.m, D3Dmesh.m, malha.m, superficies.m comandos mesh, surf para gerar gráficos 3D exemplopol.m Exemplo de polinômios G2D.m, G2Dplot.m, G2Dplotmult Usa o comando plot, plotar com múltiplas linhas MATLAB - INF Profa. Patrícia Jaques

85 Exemplos de arquivos.m (2)
exif.m Comando if-end imagem.m usa comando imagesc, matriz visualizada como imagem linhatrid.m Diagrama de linha tridimensional (uso do title, xlabel...) matrizex.m Exercício do cálculo das medias exerciciotemp.m Exercício das temperaturas MATLAB - INF Profa. Patrícia Jaques


Carregar ppt "MATLAB - Matrix Laboratory Adaptado de Profa"

Apresentações semelhantes


Anúncios Google