800 likes | 933 Views
SEMANA DA TECNOLOGIA - 2011 Unidades de Gestão: gep | getec | gead Minicursos e Oficinas matlab 1º Semestre de 2011. Prof. Alan Souza Prado. SEMANA DA TECNOLOGIA – 2011 – MATLAB. INTRODUÇÃO AO MATLAB. MATLAB 7.0. SEMANA DA TECNOLOGIA – 2011 – MATLAB. O que é o MATLAB?.
E N D
SEMANA DA TECNOLOGIA - 2011 Unidades de Gestão: gep | getec | gead Minicursos e Oficinas matlab 1º Semestre de 2011 Prof. Alan Souza Prado
SEMANA DA TECNOLOGIA – 2011 – MATLAB INTRODUÇÃO AO MATLAB MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB O que é o MATLAB? MATrixLABoratory Software de alto desempenho que realiza cálculos utilizando matrizes. Seus comandos são mais próximos da forma como escrevemos expressões algébricas, tornando mais simples o seu uso. MATLAB é definido como um sistema interativo e uma linguagem de programação para computação técnica e científica em geral, integrando a capacidade de fazer cálculos, visualização gráfica e programação. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Para que usamos então o MATLAB? • cálculos matemáticos; • desenvolvimento de algoritmos; • modelagem, simulação e confecção de protótipos; • análise, simulação e confecção de dados; • gráficos científicos e de engenharia; • desenvolvimento de aplicações, incluindo a elaboração de interfaces gráficas com o usuário. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Conhecendo o Ambiente do MATLAB MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Conhecendo o Ambiente do MATLAB Janela de Comando Área de Trabalho Histórico de comandos MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Formas de Utilizar o MATLAB • Para utilizar o MATLAB, você pode inserir diretamente na janela de comando as instruções desejadas. • Você pode também criar um arquivo denominado M-file, para posteriormente executar suas instruções. • Para essa segunda opção será aberto um editor de códigos. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Funcionamento do MATLAB • Diretamente na janela de comandos • Uma vez inicializado o Matlab, aparecerá na janela de comandos um prompt >> • O promptsignifica que o Matlab está esperando um comando. Todo comando deve ser finalizado teclando-se Enter. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Funcionamento do MATLAB • No Matlab, pode-se obter ajuda sobre qualquer comando ou função. • >> help • Ajuda sobre um pacote específico ou sobre um comando ou função é obtida com o comando: • >> help nome MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Cálculos Científicos • O Matlabfaz cálculos simples e cientícoscomo uma calculadora. • Suponha que você vai a uma loja e compra 3 objetos que custam 25 reais cada e 5 objetos que custam 12 reais cada. Quanto custou a sua compra? • No Matlab você pode resolver este problema de pelo menos duas maneiras. A mais simples é • >> 3*25 + 5*12 • ans= • 135 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Cálculos Científicos • Observe que no Matlaba multiplicação tem precedência sobre a adição. Note também que ele chamou o resultado de ans. • Alternativamente, você pode usar variáveis para armazenar informação. • >> q1=3, p1=25, q2=5, p2=12 • q1 = • 3 • p1 = • 25 • q2 = • 5 • p2 = • 12 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Cálculos Científicos • >>total=q1*p1+q2*p2 • total = • 135 • O Matlabr oferece as seguintes operações aritméticas: • a+bsoma a e b. Por exemplo, 5+6. • a-bsubtrai a de b. Por exemplo, 15-12. • a*b multiplica a por b. Por exemplo, 3.14*0.15. • a^b calcula a elevado a b. Por exemplo, 5^(1/2) MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Cálculos Científicos • Observe que no Matlabo sinal de igual tem um sentido diferente daquele da Matemática. Aqui, igual significa atribuição. O que estiver à direita do sinal de igual é “colocado" na variável que estiver à esquerda. • Usamos a vírgula para separar os comandos que são dados em uma mesma linha. • Esta separação poderia ser feita com ponto e vírgula. Mas, neste caso o Matlab não mostra os resultados dos comandos. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Cálculos Científicos • >> q1=3; p1=25; q2=5; p2=12; • >> total=q1*p1+q2*p2 • Em qualquer momento, podemos ver o valor que está contido em uma variável, simplesmente digitando no prompt o seu nome. • >> total • total = • 135 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Variáveis • O Matlabtem certas regras para nomear as variáveis. • Os nomes de variáveis devem ser nomes iniciados por letras não podem conter espaços nem caracteres de pontuação. • O Matlabfaz diferença entre letras maiúsculas e minúsculas. • Alguns nomes são usados para variáveis predefinidas. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Variáveis Pré Definidas • ans - usada para os resultados. • pi - número . • inf- significa infinito. • NaN ou nan - significa não é um número, por exemplo, 0/0. • i e j - unidade imaginária . • nargin - número de argumentos de entrada de uma função. • nargout - número de argumentos de saída de uma função. • realmin - menor número que o computador pode armazenar. • realmax - maior número que o computador pode armazenar. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Funções Científicas • O Matlabtem uma série de funções científicas pré definidas. • A maioria pode ser usada da mesma forma que seria escrita matematicamente. Por exemplo • >> x=sqrt(2)/2 • x = • 0.7071 • >> y=acos(x) • y = • 0.7854 • >>y_graus=y*180/pi • y_graus = • 45.0000 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Funções Científicas • abs(x) - valor absoluto de x. • acos(x) - arco cujo cosseno é x. • asin(x) - arco cujo seno é x. • atan(x) - arco cuja tangente é x. • ceil(x) - maior inteiro mais próximo de x. • cos(x) - cosseno de x. • exp(x) - exponencial de x. • fix(x) - parte inteira de x real. • floor(x) - menor inteiro mais próximo de x. • gcd(x,y) - máximo divisor comum de x e y. • lcm(x,y) - mínimo múltiplo comum de x e y. • log(x) - logaritmo de x na base e. • log10(x) - logaritmo de x na base 10. • rem(x,y) - resto da divisão de x por y. • round(x) - inteiro mais próximo de x. • sin(x) - seno de x. • sqrt(x) - raiz quadrada de x. • tan(x) - tangente de x. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Variáveis e Expressões Simbólicas • Agora, vamos ver como podemos manipular com expressões que além de números e variáveis numéricas, contém também variáveis simbólicas. Por exemplo: • >> symsx • >> simplify((sin(x))^2+(cos(x))^2) • ans= • 1 • Estes comandos mandam o Matlab simplificar a expressão sen2x + cos2x. Primeiro precisamos dizer ao Matlabque x é uma variável simbólica, depois simplificar a expressão que envolve x. • Neste caso usamos uma função chamada simplify. Aqui função é um comando, que pode ter alguns argumentos de entrada e alguns de saída. Neste caso, a função simplifytem como argumento de entrada uma expressão simbólica e de saída também. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Variáveis e Expressões Simbólicas • Uma vez definido que a variável x é uma variável simbólica, podemos definir expressões que envolvem esta variável. Por exemplo, dadas duas funções: f(x) = 2x2+ 3x - 5 e g(x) = x2 - x + 7; podemos fazer uma série de operações algébricas envolvendo estas funções. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Variáveis e Expressões Simbólicas • >> f=2*x^2+3*x-5; g=x^2-x+7; • >> f+g • ans = • 3*x^2+2*x+2 • >> f-g • >> f*g • >> expand(ans) • >> f/g • >> expand(ans) • >> pretty(ans) • >> f^3 • >>expand(ans) MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Variáveis e Expressões Simbólicas • O Matlabpode realizar operações mais avançadas sobre expressões simbólicas. A função composecalcula a composição das • funções f(x) e g(x) em f(g(x)), a função finverse encontra a inversa funcional de uma expressão e a função subs substitui uma variável por um número (ou por outra variável) em uma expressão. • >> 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 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Variáveis e Expressões Simbólicas • O Matlabpode resolver equações. Por exemplo, para resolver a equação • ax2+ bx + c = 0; • algebricamente, podemos usar os comandos: • >>syms a b c x • >> 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) MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Variáveis e Expressões Simbólicas • diff(f) - calcula a derivada de f. • compose(f,g) - determina a composta f(g(x)). • expand(expr) - expande uma expressão expr. • finverse(expr) - determina a inversa funcional da expressão expr. • pretty(expr) - exibe a expressão expr numa forma mais bonita. • simple - procura encontrar uma forma mais simples de escrever uma expressão expr. • simplify(expr) - simplifica a expressão expr. • solve(expr) - acha a(s) solução(es) da equação expr= 0. • subs(expr,x,a) - substitui na expressão expr a variável x por a. • syms x y z a - define as variáveis simbólicas x, y, z e a MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Variáveis e Expressões Simbólicas • Existem várias outras funções para manipulação de expressões algébricas. Você pode obter informações sobre elas digitando help symbolic. • Uma função interessante que mostra as capacidades do Matlabem tratar com funções matemáticas é funtool que é uma calculadora para funções. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Variáveis e Expressões Simbólicas • As categorias gerais de funções matemáticas disponíveis no MATLAB incluem: • Matemática elementar; • Funções especiais; • Matrizes elementares e 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 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Vetores e Matrizes • O MATLAB permite a manipulação de linhas, colunas, elementos individuais e partes de matrizes. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Vetores e Matrizes MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Vetores e Matrizes • Exemplo 1: • >> x = 1 : 5 • gera um vetor linha contendo os números de 1 a 5 com incremento unitário. Produzindo • Exemplo 2: • >> z = 6 : -l : l • Exemplo 3: • Pode-se, também, gerar vetores usando a função linspace. Por exemplo, • >> k = linspace(0, l, 6) • >> x = linspace(1,10.5,5) MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Vetores e Matrizes • Exemplo 4: • >> x=logspace(0,2,5) • Exemplo 5: • >> x=[8 6 8.10 5*pi] MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Vetores e Matrizes • Nos exemplos apresentados os vetores possuem uma linha e várias colunas (vetores linha). • Da mesma forma podem existir vetores coluna (uma coluna e várias linhas). Para se criar um vetor coluna elemento por elemento estes devem estar separados por ( ; ). Por exemplo: • >>v=[1.5;-3.2;9] MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Vetores e Matrizes • Esses vetores coluna podem também ser criados a partir dos comandos utilizados anteriormente para criar os vetores linha, acompanhados do símbolo (' ), que é o operador de transposição. Exemplo: • >> y=(1:0.5:3)‘ • >> z=[0 -2.3 4 sqrt(33)]' MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Endereçamento de Vetores • No Matlab, cada um dos elementos de um vetor podem ser acessados através de seu índice que identifica cada uma das colunas. Por exemplo : • >> x=1:10 • x= • 12345678910 • >> x(3) % Acessa o terceiro elemento de x • ans = • 3 • >> x(5) % Acessa o quinto elemento de x • ans= • 5 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Endereçamento de Vetores • Esses elementos de um vetor também podem ser acessados em blocos. Por exemplo: • >> c=linspace(10,40,7) • c =10 15 20 25 30 35 40 • >> c(3:5) % terceiro a quinto elemento de c • ans = • 20 25 30 • >>c(5:-2:1) % quinto, terceiro e primeiro elementos de c • ans = • 30 20 10 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Endereçamento de Vetores • O endereçamento indireto também é possível, permitindo referenciar os elementos em qualquer ordem: • >> c([4 1]) %quarto e primeiro elementos • ans = • 25 10 • No caso de vetores coluna, os comandos acima funcionam de maneira similar. Por exemplo: • >> d=c' MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Endereçamento de Vetores • >> d([4 1]) %quarto e primeiro elementos • ans = • 25 • 10 • >> d(5:-2:1) • ans = • 30 • 20 • 10 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Operações entre Vetores • As operações básicas entre vetores só são definidas quando estes tiverem o mesmo tamanho e orientação (linha ou coluna). Estas operações são: MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Matrizes • O MATLAB trabalha essencialmente com um tipo de objeto, uma matriz numérica retangular ( 1x1; 2x2; 3x3; i ( linha) x j (coluna); etc). • Para criar uma variável onde é armazenada uma matriz, basta escrever os elementos da matriz entre colchetes [ ... ], sendo os elementos de uma mesma linha da matriz separados por vírgula e as linhas separadas por ponto e vírgula. MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Matrizes • Por exemplo, para armazenar a matriz: • numa variável de nome A usamos o comando • >> A=[1,2,3;4,5,6] MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Matrizes • O operador ‘:’ indica da onde ate aonde • Podemos acessar os elementos de uma matriz usando os comandos • >> A(2,3) • 6 • >> A(2,:) • 4 5 6 • >> A(:,1) • 1 • 4 • >> A(:,1:2) • 1 2 • 4 5 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Matrizes • As matrizes podem ser concatenadas • >> B=[A,[7;8]] • B = • 1 2 3 7 • 4 5 6 8 • >> [A;[7,8,9]] • ans= • 1 2 3 • 4 5 6 • 7 8 9 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Matrizes • Existem algumas funções para geração de algumas matrizes elementares: • zeros: Cria uma matriz preenchida com zeros • >>Z= zeros(2,5) • Z= • 00000 • 00000 • ones: Cria uma matriz preenchida com uns • >>A= ones(3,4) • A= • 1 1 1 1 • 1 1 1 1 • 1 1 1 1 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Matrizes • eye: Cria a matriz identidade • >> eye(3) • ans = • 1 0 0 • 0 1 0 • 0 0 1 • rand: Cria uma matriz de números aleatórios entre 0 e 1 • >>round(10* rand(2,3)) • ans= • 0 2 7 • 9 3 3 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Matrizes • randn: Cria uma matriz de números aleatórios. • >>randn(3,5) • ans = • 0.5287 -2.1707 0.6145 0.5913 -1.0091 • 0.2193 -0.0592 0.5077 -0.6436 -0.0195 • -0.9219 -1.0106 1.6924 0.3803 -0.0482 • magic(N) – gera matriz quadrada de ordem N de números inteiros que têm a soma de cada linha, coluna ou diagonal principal iguais. • >> magic(3) • ans = • 8 1 6 • 3 5 7 • 4 9 2 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Operações com Matrizes • As operações com matrizes no MATLAB são as seguintes: • Transposta, Inversa, Determinante; • Adição; • Subtração; • Multiplicação; • Divisão à direita; • Divisão à esquerda; MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Operações com Matrizes • Transposta - O caracter apóstrofo, " ' " , indica a transposta de uma matriz. Considere os exemplos a seguir: • >>A=[1 2 3; 4 5 6; 7 8 0] • A = 1 2 3 • 4 5 6 • 7 8 0 • >> B = A‘ • B =1 4 7 • 2 5 8 • 3 6 0 • >> x = [-1 0 2]' • X = • -1 • 0 • 2 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Operações com Matrizes • det(A) – determinante de A. • inv(A) – inversa de A. • reshape(A) – reformata A. • size(A) – vetor contendo o tamanho de cada dimensão de A. • lenght(A) – comprimento do vetor ou dimensão máxima de A • diag(A) – retorna a diagonal de A em um vetor • tril(A) – matriz triangular inferior de A • triu(A) – matriz triangular superior de A MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Operações com Matrizes • Adção/Subtração - A adição e subtração de matrizes são indicadas, respectivamente, por "+" e "-". As operações são definidas somente se as matrizes tiverem as mesmas dimensões. Por exemplo, a soma com as matrizes mostradas acima, A + x, não é correta porque A é 3x3 e x é 3x1. Porém, • >> C = A + B • é aceitável, e o resultado da soma é • C = • 2 6 10 • 6 10 14 • 10 14 0 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Operações com Matrizes • A adição e subtração também são definidas se um dos operadores é um escalar, ou seja, uma matriz l x l. Neste caso, o escalar é adicionado ou subtraído de todos os elementos do outro operador. Por exemplo: • >> y = x - 1 • resulta em • Y = • -2 • -1 • 1 MATLAB 7.0
SEMANA DA TECNOLOGIA – 2011 – MATLAB Operações com Matrizes • Existem também algumas funções que auxiliam em operações, como: • S=sum(A(:)) – soma todos os elementos da matriz A. • S=sum(A(x:y)) – soma todos os elementos da matriz A indo de x ate y. • S=sum(A) – soma todos os elementos de cada coluna separadamente e os coloca numa matriz linha. MATLAB 7.0