You are on page 1of 7

Aula 3: Introduo ao MATLAB Parte III

Universidade Federal de Itajub Campus Avanado de Itabira


9 11 de maro de 2016

Disciplina: ECO 018


Prof. Caio Fernandes de Paula
Prof. Fernando Henrique D. Guaracy
Prof.a Rosimeire Aparecida Jernimo

Objetivo

O objetivo dessa aula apresentar comandos que alteram o comportamento sequencial padro do MATLAB e permitem a execuo de operaes condicionais e
iterativas. Alm disso, so apresentados os comandos bsicos relacionados criao
de grficos.

Operadores e Funes Lgicas

Para a realizao de comparaes nas operaes condicionais e iterativas, o MATLAB conta com seis operadores relacionais, conforme visto na Tabela 1.
Tabela 1: Operadores relacionais.
Operador relacional Significado
<
Menor que.
<=
Menor que ou igual a.
>
Maior que.
>=
Maior que ou igual a.
==
Igual a.
~=
Diferente de.

>> x = [6, 3, 9];

Universidade Federal de Itajub Campus Avanado de Itabira

>> y = [14, 2, 9];


>> x < y
ans =
1

>> x ~= y
ans =
1

>> x > 0
ans =
1

Operaes Condicionais

As operaes condicionais do MATLAB permitem a escrita de scripts e funes que


contenham tomada de decises. Os comandos associados so if, else, elseif. O
comando end indica o fim de uma operao condicional.

3.1

If

if expressao logica
comandos
end
Exemplo: calcular a raiz de x se x 0.

if x >= 0
y = sqrt(x)
end
A expresso lgica pode ser composta e os comandos podem ser um grupo de
comandos. Por exemplo, no cdigo a seguir os valores de z e w so atualizados
somente se x e y no so negativos; caso contrrio, eles mantm o valor inicial nulo:

z = 0;w = 0;
if (x >= 0)&(y >= 0)
z = sqrt(x) + sqrt(y)
w = sqrt(x*y)
end
2
Aula 3: Introduo ao MATLAB Parte III

Universidade Federal de Itajub Campus Avanado de Itabira


Pode-se usar um comando if dentro da estrutura de outro comando if:

if expressao logica 1
comandos 1
if expressao logica 2
comandos 2
end
end

3.2

Else

Exemplo: y =

x para x 0 e y = ex 1 para x < 0.

if x >= 0
y = sqrt(x)
else
y = exp(x) - 1
end
Quando um vetor ou matriz utilizado na expresso lgica, o teste retorna TRUE
apenas se a avaliao verdadeira para todos os elementos do vetor ou matriz.

3.3

Elseif

Exemplo: y = lnx para x > 10, y =

if x >
y =
elseif
y =
else
y =
end

x para 0 x 10 e y = ex 1 para x < 0.

10
log(x)
x >= 0
sqrt(x)
exp(x) - 1

Operaes Iterativas

O MATLAB usa dois tipos de loops: for, quando o nmero de iteraes conhecido priori e while, quando o processo de looping deve ser encerrado ao se cumprir
uma condio especfica, logo o nmero de iteraes no conhecido priori.

3
Aula 3: Introduo ao MATLAB Parte III

Universidade Federal de Itajub Campus Avanado de Itabira

4.1

For

A estrutura do loop for utilizado no MATLAB

for variavel_loop = m:s:n


comandos
end
A expresso m:s:n atribui o valor inicial m varivel do loop, que incrementada
pelo valor s a cada iterao. O loop continua at que o valor da varivel do loop exceda
n.
Exemplo: escreva um script que compute a soma dos 15 primeiros termos da srie
5k 2 2k, k = 1, 2, 3, ..., 15.

total = 0;
for k = 1:15
total = 5*k^2 - 2*k + total;
end
disp (`A soma dos 15 termos :`)
disp (total)
Observaes:
O valor do passo s pode ser negativo. Por exemplo, k = 10 : 2 : 4 avaliado
com k = 10, 8, 6, 4.
Se s omitido, o valor do passo padro igual a 1.
Se s positivo, o loop no executado quando m maior do que n.
Se s negativo, o loop no executado quando m menor do que n.

4.2

While

A estrutura do loop while :

while expressao logica


comandos
end
Exemplo: calcule o tempo necessrio para acumular uma quantia de pelo menos
R$10 000 na conta de um banco em que R$500 so depositados inicialmente e R$500
so depositados ao fim de cada ano, considerando que o banco paga uma taxa de
rendimento anual de 5%.
4
Aula 3: Introduo ao MATLAB Parte III

Universidade Federal de Itajub Campus Avanado de Itabira

quantia = 500;
k=0;
while quantia < 10000
k = k+1;
quantia = quantia*1.05 + 500;
end
quantia
k

Grficos

A funo plot(x,y) gera um grfico com os valores de x no eixo horizontal e os


valores de y no eixo vertical. Por exemplo, para obter o grfico da funo y = 5 sin x
para 0 x 7:

x = 0:0.01:7;
y = 5*sin(2*x);
plot(x,y)

Para criar o grfico das funes y = 2 x e z = 4 sin 3x para 0 x 5 em uma


mesma figura:

x = 0:0.01:5;
y = 2*sqrt(x);
z = 4*sin(3*x);
plot(x,y,x,z)
A Tabela 2 apresenta algumas das funes bsicas associadas gerao de grficos.
Tabela 2: Funes trigonomtricas.
Comando
Descrio
[x, y] = ginput(n)
Obtm n coordenadas x e y de um grfico.
grid
Adiciona linhas de grade a um grfico.
title(`Texto`)
Exibe o ttulo na parte superior do grfico.
xlabel(`Texto`)
Adiciona texto no eixo horizontal.
ylabel(`Texto`)
Adiciona texto no eixo vertical.
axis[xmin xmax ymin ymax]
Define os valores mnimos e mximos dos eixos.
legend(`dado 1`,`dado 2`, ...) Exibe a legenda.
O comando subplot(m,n,p) divide uma janela de figura em m linhas e n colunas,
permitindo a criao de subgrficos. A varivel p especifica a posio do grfico a ser
gerado pelo prximo comando plot. Exemplo:
5
Aula 3: Introduo ao MATLAB Parte III

Universidade Federal de Itajub Campus Avanado de Itabira

x = 0:0.01:5;
y = exp(-1.2*x).*sin(10*x+5);
subplot(1,2,1)
plot(x,y),xlabel(`x`),ylabel(`y`),axis([0 5 -1 1])
x = -6:0.01:6;
y = abs(x.^3-100);
subplot(1,2,2)
plot(x,y),xlabel(`x`),ylabel(`y`),axis([-6 6 0 350])
Algumas observaes adicionais:
O comando hold pode ser utilizado para especificar que os resultados dos prximos comandos plot devem ser exibidos na mesma figura. O comando deve ser
digitado novamente para que esse comportamento seja cancelado.
O comando figure pode ser utilizado para que o prximo grfico seja gerado em
uma janela diferente.
Digite o comando help plot para ler sobre opes adicionais sobre o comando,
em especial sobre os tipos de linha e marcadores disponveis.
Alm do comando plot, existem comandos para obteno de grficos logartmicos (loglog,semilogx,semilogy) e com sinais discretos (stem,stairs), entre
outros.

Exerccios Propostos

Exerccio 1 Crie uma funo chamada lab3 que gera uma matriz especial n n, em
que n o argumento da funo, na qual os elementos da primeira linha e da primeira
coluna so iguais a 1 e os elementos restantes so a soma do elemento acima e do
elemento esquerda, caso a soma seja menor que 20; caso contrrio, esse elemento
deve ser o valor mximo entre os dois elementos citados anteriormente. Por exemplo,
ao digitar-se lab3(5), deve-se obter

A=

1
1
1
1
1

1 1 1 1

2 3 4 5

3 6 10 15
.

4 10 10 15
5 15 15 15

Exerccio 2 Muitas aplicaes utilizam a aproximao para ngulos pequenos da


funo seno para obter um modelo de mais simples anlise. Essa aproximao diz
6
Aula 3: Introduo ao MATLAB Parte III

Universidade Federal de Itajub Campus Avanado de Itabira


que senx x, em que x dado em radianos. Investigue a preciso dessa aproximao
a partir de trs grficos. Para 0 x 1:
Faa um grfico com senx e x;
Faa um grfico com o erro de aproximao senx x;
Faa um grfico com o erro relativo [senx x]/senx.
Quo pequeno deve ser x para que a aproximao tenha um erro menor do que
5%?

7
Aula 3: Introduo ao MATLAB Parte III

You might also like