63
MATLAB Comandos Básicos

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

Embed Size (px)

Citation preview

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