MATLAB Comandos Básicos. Introdução Desenvolvido inicialmente na década de 70 nas Universidades...

63
MATLAB Comandos Básicos

Transcript of MATLAB Comandos Básicos. Introdução Desenvolvido inicialmente na década de 70 nas Universidades...

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 = 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

Expressões com Funções

>> sin(pi/2)ans = 1>> cos(pi/4)^2ans = 0.5000>> asin(1)*180/pians = 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:>> 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 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^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].

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^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