MATLAB Comandos Básicos
Introdução Desenvolvido inicialmente na década de 70 nas Universidades do Novo México e Stanford. Destinado a princípio a cursos de teoria matricial, álgebra linear e análise numérica. Voltado basicamente para matemática numérica. Possui várias ferramentas para aplicação em diversas áreas do conhecimento.
Prompt de Comando Ao iniciarmos o MATLAB a tela abaixo aparece em conjunto com o símbolo >> indicando que o software está pronto para receber comandos: To get started, select "MATLAB Help" from the Help menu. >>
Operações Básicas Adição + Subtração – Multiplicação * Divisão / ou \ Potenciação ^
Cálculo de Expressões Numéricas Ao digitarmos a expressão abaixo seguida da tecla <enter>: >> 12/2+3*(2^4) Teremos a resposta: ans = 54
Variáveis Podemos armazenar valores em variáveis no MATLAB. Variáveis devem ter um nome único, começando com uma letra e podem conter dígitos ou o símbolo _ (underline). O MATLAB distingüe letras maísculas de minúsculas.
Exemplos de variáveis >> distancia = 100 distancia = 100 >> tempo = 3 tempo = 3 >> velocidade_media = distancia / tempo velocidade_media = 33.3333
Variáveis Note que ao digitarmos o nome da variável, o símbolo = e o seu valor o matlab armazena a variável e a apresenta na tela. Para suprimir a exibição da variável adicionamos um ponto-e-vírgula ao final do comando. Quando criamos uma expressão e não a armazenamos em uma variável o matlab a salva automaticamente na variável ans.
Variáveis O comando who mostra todas as variáveis armazenadas durante uma sessão do MATLAB. >> who Your variables are: ans tempo distancia velocidade_media
Variáveis O comando clear “apaga” uma ou mais variáveis. >> clear tempo Apaga somente a variável tempo. >> clear velocidade_media distancia Apaga as variáveis velocidade_média e distancia. >> clear Apaga TODAS as variáveis da sessão.
Salvando Sessões Para salvar uma sessão do MATLAB, vá no menu File e escolha a opção Save Workspace As. Escolha uma pasta e um nome para o arquivo e clique em salvar. Para abrir uma sessão salva anteriormente escolha novamente o menu File e vá na opção Open. Escolha a pasta onde se encontra o arquivo, selecione o arquivo e clique em Abrir.
Recuperando Comandos Para evitar redigitação, o Matlab armazena todos os comandos do usuário durante uma sessão. Para acessar os comandos anteriores basta pressionar a tecla (seta para cima) seguidas vezes até encontrar o comando desejado. O comando então pode ser editado e executado novamente,
Variáveis Especiais ans Nome de variável padrão usado para resultados. pi 3.1416 eps Menor número que somado a 1, cria um número maior do que 1. inf Infinito. NaN Não número. i e j realmin menor número real positivo realmax maior número real positivo
Algumas Funções Matemáticas Elementares abs(x) Valor absoluto acos(x) Arco cosseno asin(x) Arco seno atan(x) Arco tangente cos(x) Cosseno exp(x) Exponencial (ex) log(x) Logaritmo natural (base e) log10(x) Logaritmo na base 10 sin(x) Seno sqrt(x) Raiz quadrada tan(x) Tangente
Expressões com Funções >> sin(pi/2) ans = 1 >> cos(pi/4)^2 0.5000 >> asin(1)*180/pi 90
Vetores O Matlab pode trabalhar com vetores de elementos, realizando operações sobre eles. Definindo um vetor: >> A = [0 1 2 3 4 5] A = 0 1 2 3 4 5 >> X = [0 0.2*pi 0.4*pi 0.6*pi 0.8*pi pi] X = 0 0.6283 1.2566 1.8850 2.5133 3.1416
Vetores Outra forma de se criar um conjunto: 1 2 3 4 5 >> X = 0:pi/5:pi X = 0 0.6283 1.2566 1.8850 2.5133 3.1416 O primeiro valor é o valor inicial, o segundo o “salto”e o terceiro o valor final.
Vetores Função linspace - Gera um vetor linearmente espaçado a partir de um valor inicial, um valor final e um número de elementos. >> X = linspace(0,pi,6) X = 0 0.6283 1.2566 1.8850 2.5133 3.1416
Vetores Função logspace - Gera um vetor logaritmicamente espaçado a partir de uma potência inicial, uma potência final e um número de valores. >> V = logspace(0,2,5) V = 1.0000 3.1623 10.0000 31.6228 100.0000
Operações com Vetores >> B = 2 * A B = 2 4 6 8 10 2 4 6 8 10 >> Y = sin(X) Y = 0 0.5878 0.9511 0.9511 0.5878 0.0000 >> Z = A.^2 Z = 1 4 9 16 25
Operações com Vetores O operadores *, / e ^ devem ser precedidos por um ponto para serem utilizados em vetores quando queremos realizar uma operação sobre cada um de seus elementos. A^2 significa potência de matrizes. A.^2 significa elevar cada elemento do vetor A ao quadrado.
Operações com Vetores Elevando cada elemento do vetor A ao quadrado: >> Z = A.^2 Z = 1 4 9 16 25 Elevando o vetor A ao quadrado: >> Z = A^2 ??? Error using ==> ^ Matrix must be square. Teremos um erro pois o vetor A é uma matriz 1x5 e não uma matriz quadrada.
Acesso a Elementos de Vetores Acesso a um elemento do vetor: >> Z(1) ans = 1 >> Z(2) 4 >> Z(6) ??? Index exceeds matrix dimensions. Temos um erro quando acessamos uma posição inexistente do vetor.
Acesso a Elementos do Vetor Podemos acessar mais de um elemento: >> Z(1:3) ans = 1 4 9 >> Z(3:5) 9 16 25 >> Z(2:4) 4 9 16
Matrizes Podemos criar uma matriz da seguinte forma: 1 0 -1 2 3 4 -7 1 3 Criamos uma matriz 3x3. Note que os elementos da linha são separados por espaço em branco e as linhas são separadas por ponto-e-vírgula.
Matrizes Podemos criar matrizes a partir de vetores ou outras matrizes >> b = [2 -3 1]; >> Mx = [b' M(:,2:3)] Mx = 2 0 -1 -3 3 4 1 1 3 M(:, 2:3) significa a parte da matriz M compreendida por todas as linhas (:) e as colunas 2 e 3 (2:3). A matriz Mx foi gerada concatenando-se o vetor b transposto e as colunas 2 e 3 da matriz M.
Operações com Matrizes Transposição - Utilizamos o operador ' (aspas simples) >> M' ans = 1 2 -7 0 3 1 -1 4 3
Operações com Matrizes Determinante >> det(M) ans = -18 Matriz inversa >> inv(M) -0.2778 0.0556 -0.1667 1.8889 0.2222 0.3333 -1.2778 0.0556 -0.1667
Operações com Matrizes Todas as operações vistas para os vetores funcionam para as matrizes. Devemos tomar o cuidado em operações que exigem concordância das dimensões das matrizes. >> A = [1 2 3]; >> B = [4 5 6]; >> A*B ??? Error using ==> * Inner matrix dimensions must agree. >> A*B' ans = 32
Gráficos em Duas Dimensões Podemos gerar gráficos a partir de matrizes: >> X = linspace(0,2*pi,100); >> Y = sin(X); >> plot(X,Y)
Gráficos em Duas Dimensões Duas linhas no mesmo gráfico (seno e cosseno): >> Z = cos(X); >> plot(X,Y,X,Z)
Gráficos em Duas Dimensões Título para o gráfico: >> title('seno(x) e cosseno(x)') Nome para o eixo x: >> xlabel('grau (em radianos)') Nome para o eixo y: >> ylabel('variaveis dependentes')
Gráficos em Duas Dimensões Resultado:
Gráficos em Duas Dimensões Linhas de grade >> grid
Gráficos em Três Dimensões Gráficos de Linhas - Função plot3 >> X = linspace(0, 10*pi, 300); >> Y = sin(X); >> Z = cos(X); >> plot3(X,Y,Z) >> grid
Gráficos em Três Dimensões
Gráficos em Três Dimensões Gráficos de Superfícies - funcão mesh >> v = linspace(-10,10,20); >> [X, Y] = meshgrid(v,v); >> Z = X.^2 + Y.^2; >> mesh(X,Y,Z) Utilizamos a função meshgrid para gerar X e Y como matrizes com valores repetidos que são utilizadas para gerar a matriz Z.
Gráficos em Três Dimensões
Gráficos em Três Dimensões Função mesh - superfícies em rede Função surf - superfícies coloridas(opacas) Função surfl - superfícies coloridas com uma fonte de luz. Exemplo 1: >> surf(X,Y,Z) Exemplo 2: >> colormap(gray) >> surfl(X,Y,Z)
Exemplo 1
Exemplo 2
Rotação em Gráficos 3D Para rotacionar um gráfico 3D primeiro clique no botão presente na janela do gráfico. Após isto, clique sobre o gráfico e mantenha o botão do mouse pressionado. Uma caixa irá aparecer indicando a direção do gráfico. Agora, basta movimentar o mouse para ajustar a posição desejada do gráfico.
Superfícies de Contorno Função contour - Gera superfícies de contorno. >> contour(X,Y,Z,30) Os três primeiros parâmetros são as matrizes com os dados para os gráficos. O quarto parâmetro é o número de contornos.
Superfícies de Contorno
Superfícies de Contorno Função pcolor - Gráfico de pseudocores >> pcolor(X,Y,Z)
Matemática Simbólica O Matlab não foi desenvolvido originalmente para trabalhar com matemática simbólica. Outros softwares concorrentes são voltados para matemática simbólica como Mathematica e Maple. Entretanto o Matlab possui uma “toolbox” que nos permite trabalhar com expressões simbólicas.
Variáveis Simbólicas Precisamos informar ao Matlab as nossas variáveis simbólicas: >> syms x y >> z = x^2 + y^2 z = x^2+y^2 Acima definimos x e y como variáveis simbólicas com o comando syms e definimos z como uma expressão simbólica em função de x e y.
Limite Limite em um ponto >> y = sin(x)/x y = sin(x)/x >> limit(y,x,0) ans = 1 A função limit tem como parâmetros: 1) a função, 2) a variável livre, 3) o ponto onde deve ser calculado o limite.
Limite Limite à esquerda (left) e à direita (right) do ponto: >> y = tan(x) y = tan(x) >> limit(y,x,pi/2,'left') ans = inf >> limit(y,x,pi/2,'right') -inf
Derivada Função diff - Usada para diferenciar funções de uma ou mais variáveis. >> y = x^3+2*x^2 y = x^3+2*x^2 >> diff(y,x) ans = 3*x^2+4*x No exemplo acima diff(y,x) deriva a função y em relação a variável x.
Derivada Funções de duas variáveis (derivadas parciais) >> syms x y >> z = x^2 + y^2 z = x^2+y^2 >> diff(z,x) ans = 2*x >> diff(z,y) 2*y
Derivada Derivadas de ordens superiores >> syms y x >> y = (x^2 -1)/(x-3) y = (x^2-1)/(x-3) >> diff(y,x,2) ans = 2/(x-3)-4*x/(x-3)^2+2*(x^2-1)/(x-3)^3 O terceiro parâmetro para a função diff é o número de vezes que queremos diferenciar y em relação a x.
Integral Para integrar uma função utilizamos a função int: >> y = x^2 y = x^2 >> int(y,x) ans = 1/3*x^3
Integral Integral definida >> int(sin(x),x,0,2*pi) ans = >> int(sin(x),x,0,pi) 2 O terceiro e quarto parâmetros da função int são os limites inferior e superior de integração.
Simplificar Expressões Comando simple: >> y = (x^3-1)/(x+4) y = (x^3-1)/(x+4) >> diff(y,x) ans = 3*x^2/(x+4)-(x^3-1)/(x+4)^2 >> simple(y) (2*x^3+12*x^2+1)/(x+4)^2
Exibir Expressões Comando pretty - Exibe uma expressão em um formato mais amigável. ans = (2*x^3+12*x^2+1)/(x+4)^2 >> pretty(ans) 3 2 2 x + 12 x + 1 ---------------- 2 (x + 4)
Gráficos com Funções Simbólicas Para gerar gráficos com funções baseadas em variáveis simbólicas utilizamos a função ezplot: >> syms x >> y=log(x) y = log(x) >> ezplot(y,0.001,10) A função ezplot “acha” automaticamente a variável livre dentro da expressão da função. Precisamos informar apenas a função a ser plotada e o intervalo de plotagem no caso acima [0.001, 10].
Gráficos com Funções Simbólicas
Substituição de Variáveis Usamos o comando subs para substituir variáveis por valores ou outras variáveis em expressões simbólicas: >> syms a x >> y = a*x^2 y = a*x^2 >> subs (y,a,2) ans = 2*x^2
Resolução de Equações Função solve - Resolve uma equação algébrica: >> syms x; y = -3*x^2+2*x+3; >> solve(y) ans = [ 1/3+1/3*10^(1/2)] [ 1/3-1/3*10^(1/2)] >> numeric(ans) 1.3874 -0.7208 A função solve resolveu a equação y=0. A função numeric encontrou valores numéricos para a solução da equação.
Exercícios Plotar os gráficos das funções (escolha um intervalo válido e representativo): f(x) = x2 + 2x - 3 f(x) = ln(x) f(x) = ex f(x) = tan(x) f(x,y) = x3 + y2
Exercícios Resolva os sistemas de equações lineares
Exercícios Resolva o problema: Fulano está no alto de um edifício. Ele pega uma maçã, debruça-se sobre a beirada do terraço e atira-a no ar diretamente para cima a uma velocidade inicial v0=20m/s. O terraço encontra-se a 30 metros acima do nível do solo. Onde estará a maçã a um intervalo arbitrário de t segundos mais tarde? Quando ela alcançará a altura máxima? Qual será esta altura? Quando a maçã atingirá o solo? Com qual velocidade? Considere desprezível a resistência do ar e a aceleração da gravidade igual a 10 m/s2