Apostila Introdutória de MatLab

Propaganda
Matlab: Um Curso Introdutório
Matlab: Um Curso Introdutório
 OBJETIVO:
O objetivo desta apostila é permitir ao aluno dominar o conceito, a lógica e os
comandos básicos presentes no Matlab. Através desta apostila, o aluno que nunca teve
contato com programação pode também familiarizar-se com os conceitos elementares
presentes nas linguagens de computação científica usuais.
É importante que a leitura da apostila seja feita em paralelo com a utilização
do computador, permitindo assim uma melhor compreensão dos tópicos apresentados.
Com base nesta idéia, há uma série de exemplos numerados com tarefas
computacionais.
Esta apostila não é uma obra fechada, qualquer crítica ou sugestão, que venha
a aprimorá-la, de maneira a atingir as metas propostas, serão bem recebidas.
 1. INTRODUÇÃO:
1.1 Computação e Engenharia
Com o desenvolvimento da indústria de informática, máquinas cada vez mais
poderosas passaram a estar disponíveis a um custo cada vez menor. Este fenômeno
alterou de forma marcante os rumos das ciências da engenharia, permitindo precisão e
velocidade no processamento de informações. Em virtude deste cenário, o domínio
das principais ferramentas computacionais passou a ser um requisito básico para o
engenheiro moderno.
Apesar da existência no mercado de um grande número de programas para a
resolução dos mais diversos problemas de engenharia, um profissional deve conhecer
pelo menos os fundamentos de uma linguagem de programação, uma vez que o
desenvolvimento de ferramentas computacionais apresenta grande importância nas
áreas acadêmica, pesquisa e desenvolvimento e engenharia básica.
1.2 Matlab
O Matlab (Matrix laboratory) é um ambiente que permite o desenvolvimento
de rotinas computacionais semelhantes a uma linguagem de programação
(FORTRAN, PASCAL, BASIC, etc.), dispondo ainda de poderosos recursos para a
apresentação de resultados gráficos e processamento de matrizes.
Apesar da sua grande versatilidade, o desenvolvimento de programas através
do Matlab é uma tarefa mais simples quando comparada às demais linguagens de
programação.
1
 2. AMBIENTE DE TRABALHO:
2.1 Descrição
Quando o Matlab é acionado, surge na tela do computador uma janela (janela
de comando/command window) com um pequeno texto introdutório na parte superior
e logo abaixo o símbolo ( » ), com o cursor piscando ao lado (linha de
comando/command line).
É através da janela de comando que o usuário vai se comunicar com o
software, introduzindo as instruções na linha de comando. O símbolo ( » ) indica que
o software está pronto para receber as instruções do usuário.
Exemplo 2.1:
Digite 238*436
Obs: Em todos os exemplos apresentados, após cada linha pressione “Enter”.
Exemplo 2.2:
Digite clc (este comando apaga a tela)
Exemplo 2.3:
Digite 258/652 , 56*48 (a vírgula permite que mais de um comando seja introduzido
de uma só vez, o Matlab executará os comandos da esquerda para a direita).
2.2 Acesso ao “Help”
A existência de um comando de ajuda (“help”) no Matlab permite ao
estudante, uma vez dominando os comandos básicos do software, explorar ao longo
do tempo uma quantidade cada vez maior de recursos, em um processo de autoaprendizado contínuo.
O comando “help” pode ser acessado através da barra de menu (como qualquer
“software for Windows” convencional) ou diretamente da linha de comando, como
indica o exemplo:
Exemplo 2.4:
help quad
 3. EXPRESSÕES ARITMÉTICAS E FUNÇÕES:
3.1 Operações aritméticas
A linha de comando pode ser utilizada como uma calculadora científica. No
entanto, as operações devem ser escritas da maneira adequada:
Operação
Soma
Subtração
Multiplicação
Símbolo
+
*
Operação
Divisão
Potenciação
2
Símbolo
/
^
3.2 Funções
O Matlab apresenta um grande número de funções matemáticas embutidas.
Exemplos destas funções podem ser encontrados na tabela abaixo:
Função
Comando
Função
Comando
Módulo de x
abs(x)
seno de x
sin(x)
Raiz quadrada de x
sqrt(x)
cosseno de x
cos(x)
Exponencial
exp(x)
tangente de x
tan(x)
Logaritmo natural de x
log(x)
arco-seno de x
asin(x)
Logaritmo decimal de x
log10(x)
arco-cosseno de x
acos(x)
Resto de x/y
rem(x,y)
arco-tangente de x
atan(x)
Observação: Note que as funções indicadas (como todos os comandos do Matlab) são
descritos através de letras minúsculas.
3.3 Ordem dos cálculos
Os cálculos aritméticos são realizados sempre segundo a seguinte ordem:
1) Operações dentro dos parênteses (interno  externo);
2) Funções;
3) Potenciação;
4) Multiplicação e divisão;
5) Soma e subtração.
Observação: Operadores de mesma hierarquia são efetuados da esquerda para a
direita.
Exemplo 3.1:
 (9,8  0,8) 
 (4  ln(10)) 


Determine o valor da expressão:
(
245
)
124
Esta expressão matemática escrita na forma adequada para o Matlab resulta em:
((9.8-0.8)/(4-log(10)))^(245/124)
E o seu resultado é:
27.0011
Exemplo 3.2:
Determine o resultado das seguintes operações:
a)
433  256
23,45  47
 (483  234) 
b) 3,21  133  
  seno(ln(2))
3

Observação:
Notação:
1,2 106 = 1.2e6
9,9  1012 = 9.9e-12
3
 4. VARIÁVEIS:
4.1 Conceito de variável
Uma variável pode ser considerada como um objeto armazenado na memória
do computador. Uma variável é composta pelo nome da variável (cadeia de letras e
números começando por uma letra) e o conteúdo (objeto armazenado naquela
variável, para as nossas aplicações vamos considerar sempre que este objeto é um
resultado numérico, escalar ou matricial).
Observação: Para criar o nome de uma variável é possível utilizar letras maiúsculas ou
minúsculas mas deve-se observar que o Matlab faz distinção entre elas, ou seja, a e A
são variáveis diferentes.
Uma vez que a variável armazena o valor numérico, a variável pode participar
plenamente de operações aritméticas representando aquele valor numérico. Por
exemplo, se as variáveis A e B correspondem respectivamente aos valores numéricos
10 e 20, então digitar:
A+B
é equivalente a digitar:
10 + 20
4.2 Comando de atribuição
Para armazenar um valor numérico sob uma variável, utiliza-se o comando de
atribuição. Este comando apresenta a seguinte estrutura:
Nome da variável = Valor numérico
O valor numérico que é armazenado na variável pode estar representado por
uma expressão aritmética ou até mesmo através de outras variáveis.
Veja o exemplo:
Exemplo 4.1:
Qual é o valor da variável Casa ?
A=3 , B=45+234
Casa=sqrt(A+B)
Casa=Casa*3
4.3 Comandos de entrada e saída
Os comandos de entrada e saída são responsáveis pela comunicação de dados
entre o usuário e a máquina.
A definição de um valor para uma variável pode ser feita diretamente pelo
programador, utilizando o comando de atribuição (Seção 4.2). No entanto, em certas
ocasiões, é necessário que o usuário (e não o programador) entre com o valor da
variável. Neste caso, utiliza-se o comando de entrada input. Através deste comando, o
computador interrompe a execução das demais atividades, apresenta uma mensagem e
espera o usuário entrar com o valor da variável.
4
A sintaxe do comando é a seguinte:
Nome da variável = input('mensagem')
Exemplo 4.2:
w=input('Entre com o valor da variável')
Para a exibição do valor numérico de uma variável, basta apenas digitar o
nome da variável. Caso em algum momento, seja necessário apresentar uma
mensagem na tela, utiliza-se o comando disp('mensagem').
Exemplo 4.3:
disp('Valores das variáveis Casa e w') , Casa , w
Observação: Cada vez que o comando de atribuição é efetuado, o Matlab apresenta na
tela o nome da variável e o valor armazenado. No entanto, pode não ser desejável a
apresentação na tela do resultado de um determinado comando de atribuição (por
exemplo, este pode ser apenas um resultado intermediário em um cálculo), neste caso,
coloca-se o símbolo ( ; ) no final da operação.
Exemplo 4.4:
Verifique a diferença entre os comandos:
C=40
D=50;
C,D
4.4 Gerenciamento de variáveis
Quando em algum momento, é necessário determinar quais variáveis estão
definidas, é utilizado o comando who.
Exemplo 4.5:
who
Uma vez que uma variável foi definida através do Matlab, ela fica armazenada
na memória até o momento em que a janela de comando é fechada. No entanto,
quando uma tarefa no Matlab é finalizada e outra é logo iniciada na mesma sessão de
trabalho, é indesejável que os valores das variáveis do trabalho anterior interfiram no
novo trabalho. Utiliza-se então o comando clear que apaga da memória do
computador uma ou mais variáveis.
clear nome da variável (Apaga a variável)
clear all (Apaga todas as variáveis armazenadas)
Exemplo 4.6:
A=30;
A (O valor da variável é apresentado, indicando sua presença)
clear A
A (A variável foi eliminada)
5
 5. ARQUIVOS DE COMANDOS:
A entrada das informações através da linha de comando pode ser
inconveniente pois requer a introdução dos comandos passo a passo. Além deste fato,
caso seja necessário repetir um procedimento, todos os comandos devem ser
novamente digitados.
Para permitir a realização de tarefas mais complexas, o Matlab possibilita a
criação de arquivos de comandos (“script files”). Arquivos de comandos são arquivos
texto onde é armazenada uma seqüência qualquer de comandos, de maneira que estes
podem ser executados quando necessário. Estes arquivos desempenham tarefa
equivalente às listagens de programa utilizadas pelas linguagens de programação
convencionais. Através de um arquivo de comandos, é possível inclusive acionar
outros arquivos de comandos.
Os arquivos de comandos devem ser escritos através do bloco de notas
(notepad - editor de texto disponível no Windows) e sempre gravados com a extensão
“.m”. Para executar um arquivo de comandos, deve-se apenas digitar o nome do
arquivo na linha de comando. No entanto, é necessário antes da execução do arquivo,
indicar ao Matlab em que subdiretório se encontra o arquivo. Para esta tarefa, é
possível utilizar o comando path, ou, alternativamente, o comando cd. As sintaxes
utilizadas são as seguintes,
path(path,'endereço do subdiretório')
ou
cd endereço do subdiretório
Abaixo está apresentado, passo a passo, o procedimento básico para a criação
de um programa:
- Passo 1
Inicialmente, deve-se identificar um subdiretório existente ou criar um novo
subdiretório, onde serão colocados seus arquivos de trabalho, por exemplo
subdiretório “prog”.
- Passo 2
Informe ao Matlab onde seus arquivos de comandos estarão localizados, por exemplo,
path(path,'a:\prog'), ou então, cd a:\prog
- Passo 3
Abra um arquivo novo do bloco de notas.
- Passo 4
Escreva neste arquivo os comandos do programa. Os comandos devem ser escritos
linha por linha, ou quando escritos na mesma linha separados por vírgula.
- Passo 5
Grave o arquivo de comandos com um nome apropriado, por exemplo, “trab.m”
(nunca esquecer da extensão “.m”).
- Passo 6
Passe para a linha de comando do Matlab e digite o nome do arquivo de comandos
(sem a extensão), no exemplo: “trab”.
Observação:
Após qualquer alteração realizada no programa, o arquivo deve ser novamente salvo.
Deve-se sempre ter em mente que o Matlab não lê o arquivo da tela e sim do disco.
6
Dicas:
- Introduza comentários nas listagens dos programas. Os comentários são linhas entre
os comandos destinadas apenas a descrever a função de certos trechos do programa.
Os comentários auxiliam no momento de corrigir possíveis erros (“bugs”), facilitando
também que uma outra pessoa possa entender o programa. Para colocar um
comentário é utilizado o caracter “ % ”. Após este símbolo, o Matlab não executará o
restante da linha pois o resto é apenas um comentário.
- Para evitar que na execução dos programas, variáveis anteriormente definidas
perturbem a seqüência de comandos, sugere-se que no começo do arquivo seja
adicionado o comando clear all. Este comando nunca deve ser introduzido no meio do
programa, pois caso isto aconteça, haverá a eliminação de todas as informações
geradas até aquele momento.
- Quando um trabalho de programação um pouco maior estiver sendo feito no Matlab,
sugere-se criar um subdiretório só para os arquivos de comando referentes a este
trabalho. Ou seja, cada tarefa executada no Matlab deve possuir um subdiretório
próprio. Esta medida facilita o acesso aos arquivos, evitando confusões
desnecessárias.
No próximo exemplo está apresentada uma listagem de programa típica:
Exemplo 5.1: Conversão de temperaturas F  C e K
% Programa para a conversão de temperaturas
% Inicialização
clc , clear all
% Entrada de dados
Tf=input('Digite a temperatura em graus Fahrenheit');
% Cálculos
Tc=(Tf-32)/9*5;
Tk=Tc+273.15;
% Resultado
disp('Temperatura em graus Celsius');
Tc
disp('Temperatura em Kelvin');
Tk
Exemplo 5.2:
Criar um programa para o projeto de tanques cilíndricos. O usuário deve introduzir o
diâmetro e a altura do tanque e o programa deve calcular o volume e a área total do
tanque.
7
 6. MATRIZES E VETORES:
6.1 Definição e entrada de matrizes e vetores
Matrizes são arranjos bidimensionais de números. Nas matrizes, os valores
numéricos estão organizados em linhas e colunas (dimensão n x m). Vetores são
matrizes formadas por apenas uma linha ou uma coluna (dimensão n x 1 ou 1 x m).
A introdução de matrizes pode ser feita diretamente pela definição de seus
elementos individuais:
A(i,j) = valor numérico
onde (i,j) é a posição do elemento na matriz A .
No entanto, é mais prático introduzir as matrizes de uma outra forma, como
está representado abaixo:
A = [ A11 A12 ; A21 A22 ]
onde A i , j representa o elemento na posição (i,j). Neste caso, todos os elementos são
envolvidos por colchetes. O ponto-e-vírgula indica a mudança de linha e em uma
determinada linha os elementos são separados por um espaço ou uma vírgula.
Exemplo 6.1:
Entre com a seguinte matriz,
34 1
B 

4 2
6.2 Operações matriciais
O Matlab possui a capacidade de realizar operações matriciais do mesmo
modo que as operações aritméticas com escalares.
Operação
Soma
Subtração
Multiplicação
Símbolo
+
*
Operação
Transposição
Matriz Inversa
Símbolo
'
inv(A)
Exemplo 6.2:
Indicar o resultado das seguinte operações matriciais:
1
AB
AC
A  A
a)
b)
c)
  
d)
A
T
onde,
1 2
A

5 3
e)
d Ad
T
 3 5 5
B 

2 4 4 
2 6
C

4 5
8
2 
d 
 3
6.3 Operações elemento a elemento
Além das operações tradicionais entre matrizes, o Matlab dispõe do recurso
das operações elemento a elemento. Quando aplicamos uma operação elemento a
elemento a uma matriz, a operação é aplicada separadamente a cada elemento da
matriz. Veja abaixo o exemplo da potenciação elemento a elemento:
1 2
A

3 4
1 4 
A· ^ 2 = 

9 16
,
As principais operações elemento a elemento são:
Operação
Multiplicação
Divisão
Potenciação
Símbolo
·*
·/
·^
Observações:
- Para realizarmos uma multiplicação ou divisão elemento a elemento entre duas
matrizes, estas devem ter a mesma dimensão (deve existir correspondência entre os
elementos).
- As operações de soma e subtração convencionais já são naturalmente operações
elemento a elemento, não necessitando assim de um caracter especial.
As funções matemáticas embutidas no Matlab (seno, exponencial, etc.) quando
aplicadas a matrizes geram resultados do tipo elemento a elemento.
Exemplo 6.3:
Indicar o resultado das seguinte operações matriciais elemento a elemento:
a)A·*B
onde,
1 2
A

5 3
b)seno(c)
2 6
B 

4 5

c  0


2

3
2

2

6.4 Manipulações de matrizes e vetores
O Matlab executa a manipulação de matrizes e vetores de maneira bastante
flexível. Você pode alterar e compor matrizes e vetores através de elementos
individuais, linhas, colunas ou até mesmo submatrizes.
Através de exemplos retirados do Matlab, são apresentados e comentados
abaixo os principais recursos de manipulação.
9
6.4.1 Vetores
Exemplo 6.4:
Digitando,
x = 1:4
Obtém-se,
x=
1 2 3 4
Ou seja um vetor de 1 até 4, com os elementos separados por um incremento unitário.
Exemplo 6.5:
Digitando,
x = 1:0.5:4
Obtém-se,
x=
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000
O vetor continua sendo de 1 a 4, mas o incremento entre os elementos passa a ser 0,5.
Exemplo 6.6:
Digitando,
x=0:2:10
Gera-se o vetor,
x=
0 2 4 6 8 10
Agora podemos criar um novo vetor selecionando “partes” do vetor original,
y=x(1:4)
y=
0 2 4 6
O vetor y contém apenas as quatro primeiras componentes do vetor original.
6.4.2 Matrizes
Exemplo 6.7:
Digitando,
A=[ 2 3 ; 4 5 ] , B=[ 1 2 ; 4 6 ]
Obtém-se,
A=
2 3
4 5
B=
1 2
4 6
A partir desta duas matrizes é possível criar uma terceira,
C=[ A , B ]
C=
2 3 1 2
4 5 4 6
Utilizando este conceito é possível compor matrizes complexas a partir de
submatrizes mais simples.
10
Exemplo 6.8:
O caracter (:) também pode ser utilizado para matrizes de maneira equivalente àquela
utilizada para vetores,
Digitando,
A=[ 1:4 ; 5:8 ]
Obtém-se,
A=
1 2 3 4
5 6 7 8
Elementos desta matriz podem ser rearrumados em uma outra matriz,
B=A(:,1:3)
B=
1 2 3
5 6 7
Esta nova matriz contém todas as linhas da matriz original e apenas as três primeiras
colunas.
6.5 Resolução de sistemas lineares
Através da representação matricial de um sistema linear, é possível determinar
a sua solução utilizando o Matlab.
Considere um sistema linear genérico com duas variáveis (x1 e x2) e duas
equações:
A1,1 x1  A1, 2 x 2  b1
A 2,1 x1  A 2, 2 x 2  b 2
Este sistema também pode ser representado matricialmente da seguinte forma,
 A1,1
A
 2,1
A1,2   x1   b1 

A 2, 2  x 2  b 2 
ou seja,
Axb
Para resolver um sistema de equações lineares através do Matlab, é necessário
primeiro definir a matriz de coeficientes (matriz A ) e o vetor correspondente (vetor
b ). Uma vez definidos a matriz e o vetor, basta apenas aplicar o seguinte comando e o
Matlab indicará a solução,
A\b
Exemplo 6.9:
Resolver o sistema de equações:
x yz 6
x  y  4 z  11
x  2 y  3z  14
11
6.6 Exemplos de aplicações de operações matriciais
Exemplo 6.10:
Para facilitar o trabalho dos operadores de uma planta industrial, deseja-se
montar uma tabela que relacione a altura de líquido em um determinado tanque com o
seu volume. O tanque possui 2 m de diâmetro e altura máxima de 2 m. Preparar esta
tabela considerando um intervalo de 10 cm entre seus elementos.
Sugestões: Utilize vetores coluna, operações elemento a elemento e composição de
vetores para formar matrizes.
Exemplo 6.11:
Em uma unidade industrial três tanques cilíndricos (A, B e C) são
periodicamente alimentados com nitrogênio. Os diâmetros e as alturas dos tanques são
respetivamente: tanque A, 2 m e 3 m; tanque B, 1,5 m e 2 m e tanque C, 1,8 m e 2 m.
Em um determinado momento a temperatura em cada tanque é 25 C. A
instrumentação dos tanques indicam as seguintes pressões 1 atm, 2 atm e 3 atm.
Calcular a massa de gás em cada tanque. Utilize a equação dos gases ideais para
descrever o comportamento do gás no interior dos tanques.
 7. GRÁFICOS:
7.1 Gráficos bidimensionais
A maneira mais prática para traçar gráficos bidimensionais consiste na
utilização do comando plot. Este comando, em sua forma mais simples, apresenta a
seguinte sintaxe,
plot(x,y)
onde x é um vetor contendo as abcissas e y é um vetor contendo as ordenadas dos
pontos, de maneira que são marcadas as coordenadas ( xi , yi ).
Exemplo 7.1:
Traçar o gráfico da função f(x) = x3 entre os valores de x = -2 e x = 2.
Sugestão: Lembre-se das operações elemento a elemento.
Através do comando plot também é possível definir a cor e/ou os símbolos
apresentados nos gráficos:
plot(x,y,'ct')
onde c e t indicam respectivamente o código da cor e o código do símbolo a ser
utilizado para traçar o gráfico, segundo as indicações da próxima tabela:
12
Código
y
m
c
r
g
b
w
k
Cor
amarelo
magenta
azul claro
vermelho
verde
azul
branco
preto
Código
·
o
x
+
*
:
-·
--
Símbolo
pontos
círculos
xis
cruzes
asteriscos
linha contínua
tracejado
traço-ponto
linha interrompida
Exemplo 7.2:
Repetir o gráfico do exemplo 7.1, testando diferentes tipos de cores e/ou símbolos
É possível traçar duas ou mais curvas no mesmo gráfico, com apenas um
comando plot,
plot(x1,y1,'ct',x2,y2,'ct')
onde as indicações dos códigos de cores e símbolos ('ct') é opcional.
Uma outra alternativa utilizada, quando todas as curvas apresentam a mesma
variável dependente, é:
plot(x,[ y1 y2 ])
Observação: Quando várias curvas são traçadas em um mesmo gráfico, o Matlab vai
colorindo cada curva de acordo com a ordem da tabela de cores apresentada.
Exemplo 7.3:
Traçar os gráficos das curvas y = x2, w = x3, no intervalo entre -2 e 2.
7.2 Gráficos tridimensionais
7.2.1 Curvas
O procedimento para traçar curvas no espaço tridimensional é semelhante
àqueles empregados para as curvas 2-D, bastando apenas utilizar o comando plot3,
plot3(x,y,z)
plot3(x,y,z,'ct')
plot3(x1,y1,z1,'ct',x2,y2,z2,'ct')
Exemplo 7.4:
Traçar a curva parametrizada x = t · seno(t), y = t · cosseno(t), z = t ; no intervalo
[0,20].
13
7.2.2 Superfícies
A criação de gráficos de superfícies é realizada através de um conjunto de
etapas. Primeiro, deve-se definir os vetores das variáveis independentes. Por exemplo,
x= limite inferior das variáveis x:incremento:limite superior das variáveis x;
y= limite inferior das variáveis y:incremento:limite superior das variáveis y;
O próximo passo consiste em, a partir destes dois vetores, criar duas matrizes
especiais através do comando meshgrid,
[X,Y]=meshgrid(x,y)
A matriz X consiste no vetor x repetido através das linhas e a matriz Y consiste
no vetor y repetido em colunas. Estas matrizes servirão para a determinação do gráfico
da superfície.
O próximo passo agora é calcular o valor da variável dependente, por exemplo,
Z=X.^2+Y.^2;
Para traçar o gráfico da superfície utilize o comando surf
surf(X,Y,Z)
Além do comando surf, o Matlab dispõe de uma série de comandos
equivalentes que permitem visualizar a superfície de diferentes maneiras, por
exemplo, surfc, mesh, meshc, meshz, waterfall e contour3.
Exemplo 7.5:
Traçar o gráfico da superfície do exemplo apresentado entre os intervalos x [ 2,2] e
y [ 2,2] .
Para traçar curvas de nível de superfícies no Matlab, utiliza-se o comando
contour,
contour(X,Y,Z)
7.3 Identificação de gráficos
Para complementar a representação gráfica de uma curva ou de uma superfície,
existem uma série de comandos que permitem adicionar títulos e identificações dos
eixos.
7.3.1 Títulos
Adiciona-se um título ao gráfico através do comando title,
title('Título')
14
7.3.2 Identificações dos eixos
A identificação dos eixos x, y e z do gráfico é realizada respectivamente
através do comandos xlabel, ylabel e zlabel,
xlabel('Eixo x') , ylabel(‘Eixo y’) , zlabel(‘Eixo z’)
Exemplo 7.6:
Refazer o exemplo 7.1, colocando um título no gráfico e identificando os eixos .
7.4 Organização dos gráficos
Quando o usuário traça um gráfico, e imediatamente logo após, traça um
segundo gráfico, o último gráfico substitui o primeiro.
Caso seja necessário, a apresentação dos dois gráficos em janelas diferentes,
mas simultaneamente, utiliza-se o comando figure. Veja o exemplo,
plot(x1,y1) (este comando traça o primeiro gráfico)
figure(2)
(este comando prepara uma outra janela para o segundo gráfico)
plot(x2,y2) (o próximo gráfico agora vai para a segunda janela)
Para fechar uma janela, utiliza-se o comando close
close(n) (Fecha a janela n)
close all (Fecha todas as janelas de gráfico abertas)
7.5 Exemplo de aplicação de gráficos
Exemplo 7.7: (Adaptado de “Fundamentos de Transferência de Calor e Massa”,
Incropera, F. P. e De Witt, D. P.)
Quando um fluido escoa através de um tubo com temperatura de parede
constante, a temperatura média do fluido ao longo do comprimento do tubo se
aproxima gradativamente da temperatura da parede.
A equação que relaciona a temperatura média do fluido e a posição ao longo
do comprimento de um tubo circular é:
 dh 
T(x)  Tp  (Tp  Te) exp 
x
 mCp 
Apresente o gráfico do perfil de temperatura média de um fluido, T(x), ao
longo do comprimento de um tubo (x). No mesmo gráfico apresente também a
temperatura da parede ao longo do comprimento do tubo. Incluir título e a
identificação dos eixos.
Dados do problema:
Temperatura média do fluido na entrada do tubo: Te = 15 C;
Temperatura da parede do tubo: Tp = 100 C;
Diâmetro do tubo: d = 50 mm;
Coeficiente de médio de convecção: h = 756 W/m2K;
15
Vazão mássica de fluido: m = 0,25 kg/s;
Capacidade calorífica do fluido a pressão constante: Cp = 4178 J/kgK;
Comprimento total do tubo: L = 6 m.
Obs: Utilizar o sistema internacional (SI).

8. EXPRESSÕES LÓGICAS,
COMANDOS CONDICIONAIS:
EXPRESSÕES
RELACIONAIS
E
8.1 Expressões relacionais
Expressões relacionais são utilizadas para comparar dois elementos. O
resultado da comparação pode ser falso (0) ou verdadeiro (1) (variável booleana). Os
operadores utilizados para compor as expressões relacionais são:
Operador
==
~=
>
Significado
igual
diferente
maior
Operador
>=
<
<=
Significado
maior ou igual
menor
menor ou igual
Exemplo 8.1:
Verifique o resultado das seguintes expressões relacionais:
2>3 ,
10+2==13 ,
(2+3)^2 ~= (2^2+3^2)
8.2 Expressões lógicas
Expressões lógicas relacionam elementos do tipo verdadeiro (1) ou falso (0). O
resultado de uma expressão lógica é também um resultado tipo verdadeiro/falso (1/0).
Os principais operadores lógicos são:
Operador
&
|
~
Significado
and / e
or / ou
not / não
Sejam A e B duas variáveis booleanas. Os resultados dos operadores lógicos
são:
A
0
0
1
1
B
0
1
0
1
A and B
0
0
0
1
A or B
0
1
1
1
Exemplo 8.2:
Verifique o resultado da expressão lógica a seguir:
not A and B
onde A=0 e B=1
16
not A
1
1
0
0
8.3 Expressões mistas
Expressões mistas utilizam operadores lógicos e relacionais em conjunto.
Exemplo 8.3:
Qual o resultado das expressões abaixo:
10 > 2 & 3 < 4
e
~(2^2~=4 or 3/5==0.6)
8.4 Comandos condicionais
Comandos condicionais do tipo if/else/end (if/then/else) permitem a
comparação entre dois elementos, e a partir do resultado desta comparação, o
programa pode seguir um caminho ou outro. Estes comandos apresentam duas
estruturas fundamentais: if-end e if-else-end.
Estrutura if-end:
if condição
seqüência de comandos
end
Caso a condição (expressão relacional, lógica ou mista) seja verdadeira, o programa
executa a seqüência de comandos, caso contrário, o programa ignora a seqüência.
Estrutura if-else-end:
if condição
seqüência de comandos 1
else
seqüência de comandos 2
end
Se a condição (expressão relacional, lógica ou mista) for verdadeira, o programa
executa a seqüência de comandos 1, caso a expressão seja falsa, o programa executa a
seqüência de comandos 2.
As seqüências consideradas no interior dos comandos if-else-end, também
podem incluir novos comandos if/else/end, gerando estruturas mais complexas. Por
exemplo,
if condição 1
if condição 1a
seqüência de comandos 1a
end
seqüência de comandos 1b
else
seqüência de comandos 2
end
17
Exemplo 8.4:
Este trecho de programa identifica se a produção de uma fábrica (prod) atingiu
a meta (meta) ou não. O programa também identifica se a produção ficou abaixo do
limite aceitável (lim).
if prod>meta
disp(‘Parabéns, a meta de produção foi atingida’)
else
disp(‘Produção não atingiu a meta desejada’)
if prod<lim
disp(‘Produção abaixo do limite aceitável. Realizar auditorias’)
end
end
Observação: Há outras formas equivalentes de conjuntos de comandos tipo if/else/end
que poderiam executar a tarefa do exemplo. Você poderia propor uma alternativa ?
Exemplo 8.5:
Um tanque de dióxido de carbono cilíndrico resiste a uma pressão máxima de
3 atmosferas. As dimensões do cilindro são: diâmetro igual a 2 m e altura igual a 1,5
m. Fazer um programa onde o usuário digite a temperatura no interior do tanque e a
massa de gás que deve ser adicionada. O programa deve responder se a operação é
segura ou não. Tente por exemplo T = 27 C e uma massa de gás de 30 kg. Utilizar a
equação dos gases ideais para descrever o comportamento do gás no interior do
tanque.
 9. COMANDOS DE REPETIÇÃO FOR E WHILE:
9.1 Comando for
O comando for permite que um trecho do programa seja repetido um número
previamente determinado de vezes,
for contador = valor inicial:passo:valor final
seqüência de comandos
end
Obedecendo ao comando for, é possível considerar que o programa seguirá as
seguintes etapas:
1) Programa inicialmente atribui ao contador (variável) o seu valor inicial;
2) A seqüência de comandos é executada;
3) O contador é atualizado, contador = valor atual + passo.
4) Caso o valor do contador tenha ultrapassado o valor final, o processo termina, em
caso contrário, retorna a etapa 2.
Observação: A indicação do passo é opcional (valor “default” = 1).
18
Exemplo 9.1:
Este programa calcula a produção média diária (med) a partir de um período de
tempo definido pelo usuário (N).
N=input(`Digite o número de dias de acompanhamento da produção’);
soma=0;
for d=1:N
disp(‘Dia’) , d
prod=input(‘Digite a produção do dia’);
soma=soma+prod;
end
med=soma/N;
disp(‘A produção média diária é’) , med
Exemplo 9.2:
Séries infinitas são seqüências de somas de números. A utilização de séries
apresenta grande importância em diversos campos da engenharia química, como por
exemplo nos estudos de transferência de calor e mecânica dos fluidos.
É possível calcular o valor de  com o auxílio de uma série:
 n 1
onde s n   2 
  6sn , quando n  
 k 1 k 
Determine o valor de  utilizando a série com a soma de 100 termos (n =100).
Observação: Haveria outra maneira de resolver o exemplo acima sem a utilização de
um “loop”? Pesquise o comando “sum”.
9.2 Comando while
O comando while permite que um trecho do programa seja repetido enquanto
uma determinada condição permanecer verdadeira.
while condição
seqüência de comandos
end
Este comando segue as seguintes etapas:
1) Verifica inicialmente se a condição é verdadeira. Caso seja verdade, segue para a
seqüência de comandos, caso contrário a execução passa para o restante do programa
2) Executa a seqüência de comandos;
3) Volta à etapa 1.
Exemplo 9.3:
Este trecho de programa é utilizado para determinar quantos reatores em série
(N) são necessários para que uma corrente de produto atinja a concentração desejada
(cdes). A concentração de saída de cada reator (cs) é determinada por uma função
chamada reat que utiliza como argumento a concentração de produto na corrente de
entrada (ce).
19
cs=0; , N=0
while cs<cdes
N=N+1; , ce=cs; , cs=reat(ce);
end
disp(‘Número de reatores em série necessários:’)
N
Exemplo 9.4:
Equações do tipo x i  f ( x i 1 ) para i  1 , 2 , 3 ... ; são muito comuns em
algoritmos relativos à métodos numéricos em engenharia.
Seja a seguinte equação recursiva,
1
xi 
com x0 = 1
(3  x i 1 ) 2
Determinar o valor de xi para o qual o valor absoluto da diferença de (xi-xi-1)
torna-se menor que 10-4.
Obs: Qual a relação entre o resultado do processo recursivo do exemplo e a equação:
1
x
0
(3  x ) 2
 10. VARIÁVEIS INDEXADAS:
10.1 Conceito
Variáveis indexadas são variáveis formadas por um conjunto de elementos
individuais, onde cada elemento apresenta uma posição definida no conjunto. Vetores
e matrizes, tal qual foram apresentados na Seção 6, são exemplos de variáveis
indexadas, onde a posição do elemento é indicada por um índice, no caso dos vetores,
ou dois índices, no caso das matrizes. Nas linguagens de programação usuais são
possíveis variáveis indexadas com mais de dois índices.
10.2 Utilização
As variáveis indexadas permitem ao programador gerenciar uma grande
quantidade de informações de maneira simples e organizada. Uma grande massa de
dados pode ser introduzida no computador através de apenas uma variável indexada,
possibilitando depois que os dados individuais possam ser manipulados indicando
apenas a sua posição no conjunto (índices).
O exemplo seguinte ilustra a aplicação deste tipo de variáveis.
Exemplo 10.1:
Em um sistema de controle de estoque em uma indústria química, um
programa recebe os níveis diários de aditivo em um tanque em um certo período,
calcula a massa de aditivo disponível em cada dia, e devolve os dados de resposta
indicando o dia, o nível do tanque, a massa de aditivo e um aviso nos dias em que a
massa de aditivo esteve abaixo do limite mínimo.
20
% Leitura das informações à respeito do nível diário de aditivo
Ndias=input(‘Digite o número de dias analisados’);
for i=1:Ndias
disp(‘Dia’) , i
nivel(i)=input(‘Digite o nível do tanque (m)’);
end
% Rotina para cálculo das massas de aditivo em cada tanque
for i=1:Ndias
massa(i)=pi*D^2/4*nivel(i)*dens;
end
% Saída dos resultados
for i=1:Ndias
disp(‘Dia’) , i
disp(‘Nível do tanque’) , nivel(i)
disp(‘Massa de aditivo’), massa(i)
if massa(i)<lim , disp(‘Estoque abaixo do limite mínimo’) , end
end
Observação:
O emprego das operações elemento a elemento presentes no Matlab (Seção
6.3) permitem simplificar bastante a utilização das variáveis indexadas, eliminando
muitas vezes a necessidade da utilização de laços for. É importante observar que este
recurso normalmente não está disponível nas demais linguagens de programação.
 11. FUNÇÕES:
11.1 Conceito
Funções (function files) são uma classe especial de arquivos de comandos. Sua
mecânica de funcionamento é similar as funções definidas na matemática. As funções
recebem um ou mais argumentos, e partir destes argumentos, procedem a execução de
um conjunto de comandos, gerando na saída um ou mais resultados numéricos. A
grande vantagem das funções é que, uma vez definidas, elas podem ser empregadas
quantas vezes forem necessárias em um ou mais programas diferentes.
Com o objetivo de apresentar, na prática, como deve ser montado um arquivo
de função, considere a criação de uma função destinada a determinar a pressão de um
gás, a partir da temperatura e do volume, segundo a equação de estado dos gases
ideais.
A função deve ser criada em um arquivo exclusivo para ela. Todo arquivo de
função deve começar pelo comando function. Ao lado deste comando, escreve-se o
valor numérico da saída da função (no nosso caso p, a pressão) igualado ao nome da
função (eq) seguido pelos argumentos de entrada (T,V; respectivamente, temperatura e
volume).
function p=eq(T,V)
Seguem-se então o conjunto de definições, operações matemáticas e comandos
que permitirão a função determinar o valor numérico da saída.
21
R=8314;
p=R*T/V;
Finalmente, um arquivo de função deve ser gravado necessariamente com o
nome da função e a extensão “.m”. No exemplo acima, o arquivo deve ser gravado
como “eq.m”.
É possível, agora, utilizar a função de cálculo da pressão de um gás (eq) na
linha de comando, em um arquivo de comando qualquer ou até mesmo em outra
função.
Por exemplo, o procedimento
PT=eq(273.15,22.4);
calcula o valor da pressão de um kgmol de gás ideal para T = 273,15 K e V = 22,4 m3,
armazenando o resultado na variável PT.
Observação:
Para que o Matlab possa reconhecer a função criada, deve-se inicialmente
indicar o “endereço” do arquivo (Seção 5).
Exemplo 11.1:
Criar uma função que faça a conversão de volume em ft3 para litros e m3.
11.2 Variáveis locais e globais
Quando um arquivo de comandos convencional é executado, as variáveis
envolvidas são manipuladas ao longo do programa, e, no final, continuam
armazenadas em um espaço de memória gerenciado pelo Matlab (workspace). Tente,
como exemplo, executar um arquivo de comandos e depois digite o comando who.
Funções, no entanto, operam de maneira diferente. As variáveis definidas no
interior de uma função (variáveis locais) não são armazenadas após a execução da
função, e também não interferem com as demais variáveis externas. Da mesma
maneira, as operações matemáticas e os comandos utilizados no interior da função só
reconhecem as variáveis internas à função.
Exemplo 11.2:
Limpe as variáveis da memória do Matlab (comando clear all), execute uma vez a
função gerada no exemplo da Seção 11.1 e digite o comando who.
Caso seja necessário, é possível permitir que uma função reconheça uma ou
mais variáveis externas. Neste caso utiliza-se o comando global,
global A B C
onde A, B e C são nomes de variáveis.
O comando global deve ser incluído na função e também no arquivo de
comando onde as variáveis globais aparecem.
Em teoria, é possível nunca usar o comando global, introduzindo todos os
valores numéricos necessários para o cálculo da função, ou através do argumento, ou
22
definindo-os no interior da própria função. Mas este pode não ser o procedimento
mais prático sempre. Em um programa onde um grande número de parâmetros é
calculado através de um arquivo de comandos principal e depois estes parâmetros são
utilizados em várias funções diferentes, torna-se mais prático “distribuir” estes
parâmetros através do comando global.
 12. BIBLIOGRAFIA:
“Notas de Aula do Curso de Computação I”
Eduardo Paz e Moacyr Azevedo
“Matlab - User`s Guide”
The MathWorks, Inc.
“Matlab - Versão do estudante - Guia do Usuário”
Makron Books
“Mini-Curso Uma Introdução ao Mathematica” (Apostila)
Marcelo Castier
23
Download