MATLAB Comandos Básicos. Introdução Desenvolvido inicialmente na década de 70 nas Universidades...
Transcript of MATLAB Comandos Básicos. Introdução Desenvolvido inicialmente na década de 70 nas Universidades...
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.
>>
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 = 100distancia =
100>> tempo = 3tempo =
3>> velocidade_media = distancia / tempovelocidade_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 tempoApaga 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
1
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
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:>> A = 1:1:5A = 1 2 3 4 5>> X = 0:pi/5:piX = 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 * AB = 2 4 6 8 10>> Y = sin(X)Y = 0 0.5878 0.9511 0.9511 0.5878 0.0000>> Z = A.^2Z = 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.^2Z = 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)ans = 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)ans = 9 16 25>> Z(2:4)ans = 4 9 16
Matrizes
• Podemos criar uma matriz da seguinte forma:>> M = [1 0 -1; 2 3 4; -7 1 3]M = 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)ans = -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 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 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• 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)
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.
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^2z = 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)/xy = 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')
ans =
-inf
Derivada• Função diff - Usada para diferenciar
funções de uma ou mais variáveis.>> y = x^3+2*x^2y = 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^2z = x^2+y^2>> diff(z,x)ans = 2*x>> diff(z,y)ans = 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 =
0
>> int(sin(x),x,0,pi)
ans =
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)ans = (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].
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^2y = 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)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
7
23
423
)
zy
zx
zyx
a
4
13
04
22
)
ty
tx
zy
tyx
b
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