O objetivo deste curso é a apresentação de ferramentas
básicas do ambiente MATLAB. Realço que o tempo (8 horas)
de curso impõe uma metodologia dinâmica de aula. Em função
disto, evite conversas paralelas.
Cursos em ambiente de laboratório exigem atenção!
OPERAÇÕES COM VETORES E
MATRIZES
Quando inicializamos o MATLAB, são criadas uma ou mais
janelas e, dentre elas, a janela de comando é o principal local de
sinal
de promptAéaparência
dado porda>>janela a apresentada a
interaçãoOcom
o MATLAB.
seguir:
MATEMÁTICA ELEMENTAR
MATLAB executa operações algébricas como se fosse uma
calculadora, possuindo as seguintes operações aritméticas
elementares:
A ordem na qual essas operações são executadas em
uma expressão é dada pelas regras usuais de
precedência: as expressões são executadas da esquerda
para direita com operação de potênciação tendo a maior
precedência, seguida de multiplicação e divisão (ambas
com mesma ordem de precedência), seguidas de adição e
multiplicação
(mesma
ordem
de
precedência).
Parênteses podem ser usados para alterar a ordem de
precedência.
ÁREA DE COMANDOS
Você pode criar variáveis na memória do programa
MATLAB e estas variáveis são armazenadas enquanto
durar o uso do programa.
>> teste=3;
>> prova=7;
>> teste+prova
ans = 10
VARIÁVEIS
Existem regras em relação aos nomes das
variáveis na linguagem do MATLAB.
•As variáveis são sensíveis a maiúsculas e minúsculas
•Podem conter até 31 caracteres
•Os nomes das variáveis devem começar com uma letra
•Caracteres de pontuação não são permitidos, nem
caracteres acentuados
Observação: O MATLAB possui alguns nomes de
variáveis especiais:
COMENTÁRIOS E PONTUAÇÃO
Todo texto digitado depois do sinal de % é
considerado no ambiente MATLAB como um
comentário.
>> % PROGRAMA EXEMPLO
>> X=10; % X REPRESENTA UMA VARIAVEL QUALQUER
Observação: MATLAB armazena o valor x=10 e ignora os
caracteres à direita de %.
Pode-se também adicionar ou escrever vários
comandos por linha, separando-os por vírgula ou ponto
e vírgula:
>> y=3, t=4, u=34
y=3
t= 4
u = 34
Quando se coloca o sinal de ponto e vírgula no
final da sentença do MATLAB, o resultado de uma
operação ou comando não é exibido na tela do
MATLAB. Veja a diferença:
>> p=3
p=
3
>> p=3;
Uma sucessão de três pontos indica ao MATLAB que
o resto do comando aparecerá na linha seguinte, mas
lembre-se que o nome de uma variável não pode ser
dividido entre linhas:
>> valores_das_concentracoes=33+...
44;
>>
FUNÇÕES MATEMÁTICAS
JANELA DE COMANDOS
Todas as informações, dados e variáveis criados na
janela de comandos são armazenados no espaço de
trabalho do MATLAB. O comando who mostra os
nomes das variáveis.
O comando clear apaga variáveis do espaço de trabalho do
MATLAB.
O comando cls apaga as informações do espaço de
trabalho, mas não da memória.
O comando diary permite que você armazena em
arquivo texto tudo o que você digitou. Sua sintaxe é diary
nome do arquivo. Deve ser finalizado com o comando diary
off.
FORMATO DE VISUALIZAÇÃO
DE NÚMEROS
FORMATAÇÃO fprintf
CARACTERES
DE
FORMATAÇÃO
%d
%e
%f
\n
RESULTADOS
Exibe valor como
inteiro
Formato
exponencial
Formato ponto
flutuante
Muda de linha
Em problemas simples, é mais simples a digitação de
comandos no prompt do MATLAB.
Para problemas, mais complexos é conveniente, ou que
você deseja repetir n vezes, o MATLAB apresenta a
possibilidade de escrever os comandos em arquivo texto
e depois executá-lo introduzindo o nome do arquivo na
área de comandos do MATLAB.
Clique em File,
New, M-file.
Vamos a um exemplo?
Digite o nome do arquivo!
ARQUIVO DE DADOS
Existem muitas maneiras de carregar e gravar
arquivos de dados no MATLAB. Inicialmente, vamos
considerar os comandos load e save.
O comando save grava dados do espaço de trabalho
em arquivo de disco. Sua sintaxe é:
Save nome_do_arquivo var1 var2 var3
Var1 var2 var3 … são as variáveis a serem gravadas no
arquivo nome_do_arquivo.
Salvando em formato que podem ser lidos por
planilhas e programas escritos em outras linguages.
Clique
>> x=[1 2 5.6 789 4.5];
>> save x.dat x -ascii
Explore esta área!
Apenas como exercício, encerre o MATLAB e inicialize-o
novamente.
Digite *.dat
Como você pode verificar os
Dados foram gravados!
Caso você queira utilizar os dados gravados
diretamente na área de trabalho do MATLAB, pode
utilizar:
load nome_do_arquivo
No nosso exemplo, load x.dat
Agora digite x e verifique que a variável x,
ou o vetor x, como queira, está como
variável atualizada na memória.
OPERAÇÕES COM VETORES E
MATRIZES
A criação de vetores no MatLab é muito simples. Você
deve começar com um colchete esquerdo e inserir os
valores desejados, separados por espaços ou vírgulas
e fechar o conjunto com um colchete direito.
>> x=[1.2 3 4.5 6 9];
Quantos elementos
este vetor possui?
Este vetor possui 5 elementos. Mais precisamente ele
possui uma linha e 5 colunas, ou seja, é um vetor linha.
No MATLAB o acesso aos elementos de um vetor é
feito utilizando índices na forma nome_do_vetor(i).
Veja Alguns Exemplos!
>> x=[1.2 3 4.5 6 9];
>> x=[1.2 3 4.5 6 9];
>> x(0)
??? Index into matrix is negative or zero.
>> X(1)
??? Undefined function or variable 'X'.
>> x(1)
ans = 1.20
>> x(5)
ans = 9.00
Para ter acesso a um bloco de elementos utilize a
notação de dois pontos (:) :
>> x(1:5)
ans = 1.20
9.00
3.00
4.50
>> x(1:3)
ans = 1.20
3.00
4.50
>> x(2:4)
ans = 3.00
4.50
6.00
6.00
A construção de vetores também pode ser feita, ao
invés de digitar todos os elementos, sob algumas
formas alternativas.
Função linspace
A função linspace
possui a seguinte
sintaxe:
linspace(primeiro_valor,último_valor,número_de_valores)
linspace(2,5,4)
ans = 2.00
3.00
4.00
5.00
Mas você também pode criar o vetor utilizando o
comando: x=início:incremento:fim
>> x=[1:.8:5]
x =1.00
1.80
2.60
3.40
4.20
5.00
ORIENTAÇÃO DE VETORES
Você pode criar vetores com mais de uma linha,
utilizando a notação de ponto e vírgula:
OBSERVE A
DIFERENÇA!
>> x=[1 2 3 4 5]
x= 1
2
3
>> x=[1; 2; 3; 4 ;5]
x=
1
2
3
4
5
4
5
Você também pode transpor um vetor, utilizando a
anotação apóstrofo:
>> x=[1 4 5 89]
x=1
>> x'
4
5
89
DIGITE!
ans =
1
4
5
89
MATRIZES
Usam-se espaços para separar os elementos de
uma linha e utliza-se ponto e vírgula para criar
linhas na matriz:
Digite
>> x=[1 2 3;4 5 6;7 8 9]
x=
1 2
4 5
7 8
3
6
9
SOMA DE MATRIZES
A soma de matrizes é exemplificada abaixo:
x=[1 2 3;4 5 6;7 8 9]
y=[4 5 6; 8 9 12; 5 6 7];
DIGITE x+y
ans =
5
7
9
12
14
18
12
14
16
MULTIPLICAÇÃO OU DIVISÃO
ELEMENTO POR ELEMENTO
x=[1 2 3;4 5 6;7 8 9]
y=[4 5 6; 8 9 12; 5 6 7];
DIGITE x.*y
Ou x./y
x.*y
x./y
O ponto ans
anterior
ao
=
Operador
ans =indica
Que a 0.4000
operação 0.5000
0.2500
Deve
ser 4feita
10elemento
18 0.5000
0.5000
0.5556
A32
elemento!
45 721.2857
1.4000
1.3333
35 48 63
SISTEMAS LINEARES
Muitas aplicações de Engenharia envolvem a solução
de sistemas lineares. Considere o exemplo:
O que é equivalente
escrevermos
, onde
é .a matriz
A solução doa sistema
por ser
dada A
por
dos coeficientes,
a matriz
dasser
incógnitas
dopor:
sistema e
No W
MATLAB
pode
expresso
>> A=[1.2 6 4; 5 8A0;7Álgebra
12 5];
B a matriz dos resultados.
linear nos
>> x=inv(A)*B
B=[12;3;6];
fornece o conceito de >>
que
este
x = sistema possui solução se
>> det(A)
o determinante da matriz
A for diferente de zero.
-3.9767
ans = problema
-86.0000.utilizando o MATLAB:
Vejamos a solução deste
2.8605
-0.0977
FATORAÇÃO LU
No MATLAB a fatoração LU pode ser implementada pelo
comando: A\B
Matriz dos
resultados
Matriz dos
coeficientes
GRÁFICOS 2D
x=linspace(0,2*pi,50);
>> y=exp(x).*sin(x);
>> plot(x,y)
OUTRAS FUNÇÕES
fplot
f(x)=cos(x)*ex
fplot(‘cos(x)*exp(x)’,[0 3*pi])
2000
0
-2000
-4000
-6000
-8000
DIGITE
-10000
-12000
-14000
0
1
2
3
4
5
6
7
8
9
polar
r=3cos(4t),
t=0:.01:2*pi;
90
r=3*cos(4*t);
3
120
60
2
150
polar(t,r)
30
1
180
0
210
330
240
300
270
y1=exp(x); y2=log(x)
plotyy
x=1:.1:6;
y1=exp(x); y2=log(x);
ax=plotyy(x,y1,x,y2);
hy1=get(ax(1),'ylabel');
500
2
log(x)
set(hy1,'string','exp(x)');
exp(x)
hy2=get(ax(2),'ylabel');
set(hy2,'string','log(x)');
0
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
0
6
semilogx
Também existe o comando
semilogy( ) e o
Comando loglog( )
10
9
8
7
t=linspace(0,3*pi,300);
>> x=exp(-t);
>> y=t;
>> semilogx(x,y); grid
6
5
4
3
2
1
0
-5
10
-4
10
-3
10
-2
10
-1
10
0
10
hist
prof=char('Professor
Quimico','Medico');
Universitario','Engenheiro
sal=[999; 6789; 9999];
barh(sal);
for i=1:3
gtext(prof(i,:));
end
xlabel('Salario em reais');
title('Profissoes e Remuneraçao = Alerta',...
'fontsize',19);
Profissoes e Remuneraçao = Alerta
3
Medico
2
Engenheiro Quimico
Professor Universitario
1
0
1000
2000
3000
4000 5000 6000
Salario em reais
7000
8000
9000 10000
pie
prof=char('Professor
Quimico','Medico');
Universitario','Engenheiro
sal=[999; 6789; 9999];
pie(sal);
for i=1:3
gtext(prof(i,:));
end
xlabel('Salario em reais');
title('Profissoes e Remuneraçao = Alerta',...
'fontsize',19);
Profissoes e Remuneraçao = Alerta
6%
Medico
38%
Engenheiro Quimico
Professor Universitario
56%
USANDO SUBPLOT
Uma janela pode conter mais de um conjunto de eixos
e, neste caso, pode ser usado o comando
subplot(m,n,p), que divide a janela de figuras em uma
matriz m por n regiões , nas quais se pode traçar
gráficos e ativa a região de ordem p. Os subgráficos
são numerados da esquerda para direita, linha por
linha.
x=linspace(0,2*pi,30);
>> y=sin(x);
>> z=cos(x);
>> a=sin(x).*cos(x);
>> b=sin(x)./(cos(x)+eps);
>> subplot(2,2,1) %seleciona o grafico à esquerda, no alto
>> plot(x,y);
>> subplot(2,2,2) %seleciona o grafico à direita, no alto
>> plot(x,z);
>> subplot(2,2,3) %seleciona o grafico à esquerda, embaixo
>> plot(x,a);
>> subplot(2,2,4) %seleciona o grafico à direita, embaixo
>> plot(x,b);
1
1
0.5
0.5
0
0
-0.5
-0.5
-1
0
2
4
6
8
0.5
-1
0
2
4
6
8
0
2
4
6
8
20
10
0
0
-10
-0.5
0
2
4
6
8
-20
GRÁFICOS 3D
Para gerar um arquivo que representa uma
superfície 3D, primeiros representamos o conjunto
de valores de x e y que representam as variáveis
independentes e depois os valores de z que
representam os valores da superfície.
Gere o gráfico da superfície f(x,y)=z=1-x2-y2 para –
0.5<x<0.5 e -0,5<y<0.5.
No MATLAB isto seria realizado por:
>>[xgrid,ygrid]=meshgrid(-0.5:0.1:0.5,0.5:0.1:0.5);
>> z=sqrt(abs(1-xgrid.^2-ygrid.^2));
>> mesh(z)
1
0.95
0.9
0.85
0.8
0.75
0.7
15
15
10
10
5
5
0
0
Também podemos utilizar a função surf:
>>[xgrid,ygrid]=meshgrid(-0.5:0.1:0.5,-0.5:0.1:0.5);
>> z=sqrt(abs(1-xgrid.^2-ygrid.^2));
>> surf(xgrid,ygrid,z)
1
0.95
0.9
0.85
0.8
0.75
0.7
0.5
0.5
0
0
-0.5
-0.5
GRÁFICOS DE CURVAS DE NÍVEL
Gráficos de curva de nível mostram linhas de elevação ou
altura constante. No MATLAB, gráficos de curvas de
nível são obtidos pelo uso das funções contour e
contour3.
>>[xgrid,ygrid]=meshgrid(-0.5:0.1:0.5,-0.5:0.1:0.5);
>> z=sqrt(abs(1-xgrid.^2-ygrid.^2));
>> contour(xgrid,ygrid,z)
0.5
0.4
0.3
0.2
0.1
0
-0.1
-0.2
-0.3
-0.4
-0.5
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
[xgrid,ygrid]=meshgrid(-0.5:0.1:0.5,0.5:0.1:0.5);
>> z=sqrt(abs(1-xgrid.^2-ygrid.^2));
>> contour3(xgrid,ygrid,z)
1
0.95
0.9
0.85
0.8
0.75
0.5
0.5
0
0
-0.5
-0.5
prof=char('Professor
Quimico','Medico');
pie3
Universitario','Engenheiro
sal=[999; 6789; 9999];
pie3(sal);
xlabel('Salario em reais');
title('Profissoes e Remuneraçao = Alerta',...
'fontsize',19);
Profissoes e Remuneraçao = Alerta
6%
56%
38%
waterfall
x=-3:.1:3;
y=x;
[X,Y]=meshgrid(x,y);
0
-5
Z=-15./(1+X.^2+Y.^2);
-10
waterfall(Z)
-15
80
60
hidden off
80
60
40
40
20
20
0
0
Download

Curso MatLab parte 1