Buscar

APOSTILA[1] - CALCULO NUMERICO USANDO MATLAB[1]

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 81 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 81 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 81 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Página 1 
 
 
 
 
 
Profa. Waléria A. G. Cecílio, 
Profa. Mônica D. S. Damaris e 
Prof. Wadilson K. F. Pereira 
 
 
CÁLCULO NUMÉRICO USANDO 
O MATLAB 
 
Página 2 
 
INTRODUÇÃO 
 
O MATLAB é um sistema interativo cujo elemento básico de informação é uma matriz que 
não requer dimensionamento. Esse sistema permite a resolução de muitos problemas 
numéricos em apenas uma fração do tempo que se gastaria para escrever um programa 
semelhante em linguagem Fortran, Basic ou C. Além disso, as soluções dos problemas são 
expressas no MATLAB quase exatamente como elas são escritas matematicamente. 
 
AMBIENTE DE TRABALHO 
 
Quando iniciamos o MATLAB, o Comando Window é criado e se torna ativo. É através do 
Comando Window que nos comunicamos com o interpretador MATLAB, isto é, é a área na 
qual são digitados dados e instruções para o MATLAB. Desta forma, após digitar o comando 
basta acionar a tecla entere os resultados são exibidos na tela. 
 Sinal de prompt „>>‟Indica estado de espera de entrada de dados. 
 
Outras janelas: 
[CommandDirectory]: área na qual é exibida a lista dos arquivos contidos no diretório 
corrente. 
[Workspace] Área de memória de trabalho do MATLAB, na qual ficam armazenadas todas as 
variáveis criadas na janela de comando. 
 
Página 3 
 
[LaunchPad]: área na qual são exibidas informações, textos explicativos (online help) e 
exemplos de utilização dos produtos instalados. 
[Help] 
 
 
NÚMEROS E EXPRESSÕES ARITMÉTICAS 
DECLARAÇÕES E VARIÁVEIS 
As declarações no MATLAB são frequentemente da forma 
 >> variável = expressão 
ou simplesmente 
 >> expressão 
As expressões são compostas de operadores e outros caracteres especiais, de funções e dos 
nomes das variáveis. A avaliação das expressões produzem matrizes, que são então 
mostradas na tela e atribuídas às variáveis para uso futuro. Se o nome da variável e o sinal de 
igualdade “=” são omitidos, a variável com o nome ans,que representa a palavra “answer” 
(resposta), é automaticamente criada. Por exemplo: 
>> 1245/123 
ans = 
 10.1220 
 
Página 4 
 
>> 53-4 
ans = 
 49 
>> 53-4; 
Se o último caractere da declaração é um ponto e vírgula, a impressão na tela é suprimida, 
mas a tarefa é realizada. Esse procedimento, em geral, é usado em arquivos do tipo script 
(<nome>.m) e em situações onde o resultado é uma matriz de grandes dimensões e temos 
interesse em apenas alguns dos seus elementos. 
Se a expressão é tão grande que não cabe em apenas uma linha, pode-se continuar a expressão 
na próxima linha usando um espaço em branco e três pontos”...”, ao final das linhas 
incompletas. Por exemplo, 
>> k=1/2 +3 -4/5 -3 +1 + 4 - 9 ... 
+ 4 + 5/6 +7/4 
 k = 
 2.2833 
Observe que o espaço em branco entre “-9” e “...” é obrigatório. 
A notação decimal convencional, com ponto decimal opcional e o sinal de menos, são usados 
para números. A potência de dez pode ser incluída como um sufixo. A seguir são mostrados 
alguns exemplos de números aceitos: 
 3 -99 0.00003 
 3.147458638 1.512E-20 6.097885e21 
As expressões podem ser construídas usando os operadores aritméticos usuais e as regras de 
precedência: 
^ exponenciação 
/ divisão a direita 
\ divisão a esquerda 
* multiplicação 
+ adição 
- subtração 
 
Página 5 
 
Deve-se notar que existem dois símbolos para divisão: as expressões 1/4 e 4\1 possuem o 
mesmo valor numérico, isto é, 0,25. 
 
RESOLUÇÃO DE EXPRESSÕES 
Toda expressão é calculada da esquerda para a direita utilizando as definições da Matemática, 
isto é, 
Potenciação  Multiplicação ou divisão Adição e subtração 
Sempre obedecendo a ordem de procedência. Para definir ou alterar a ordem de procedência 
utiliza-se do sinal de parênteses. 
Exemplo: 
7+33
55−2
−
35
34.5
 
>> a=(7+3^3)/(5^5-2) 
a = 
 0.0109 
>> b=(3^5)/34.5 
b = 
 7.0435 
>> sol=a-b 
sol = 
 -7.0326 
 
OBTENDO INFORMAÇÕES DA ÁREA DE TRABALHO 
Os exemplos de declarações mostrados nos itens acima criaram variáveis que são 
armazenadas na Área de Trabalho do MATLAB. Executando 
 >>who 
obtêm-se uma lista das variáveis armazenadas na Área de Trabalho: 
 Yourvariables are: 
 aans b k sol 
 
Página 6 
 
Que mostra as cinco variáveis geradas em nossos exemplos, incluindo ans. Uma informação 
mais detalhada mostrando a dimensão de cada uma das variáveis correntes é obtida com o 
comando whos. 
Cada elemento de uma matriz real requer 8 bytes de memória, assim nossa matriz sol de 
dimensão 1x1 usa 8 bytes. Seguindo o mesmo raciocínio, uma matriz A de dimensão 3x3 usa 
72 bytes. 
FORMATO DE SAÍDA 
O formato numérico exibido na tela pode ser modificado utilizando-se o comando format, que 
afeta somente o modo como as matrizes são mostradas, e não como elas são computadas ou 
salvas. O MATLAB efetua todas as operações em dupla precisão. A precisão dupla fornece 
uma relativa precisão de cerca de 16 dígitos decimais e intervalo de magnitude de 10
-308
 a 
10
+308
. 
 Se pelo menos um dos valores de entrada não é inteiro, existem várias possibilidades 
de formatar a saída. O formato “default”, chamado de formato short, mostra 
aproximadamente 5 dígitos significativos ou usam notação científica. Podemos verificar os 
tipos de formatos existentes no MATLAB, seguindo o caminho: File 
PreferencesNumericformat. 
 
 
 
Página 7 
 
ALGUNS COMANDOS E OBSERVAÇÕES: 
As teclas seta para cima e seta para baixo repetem os comandos digitados anteriormente. 
Além das teclas com setas, pode-se usar outras teclas para reeditar a linha de comando. 
 
retorna a linha anterior 
 retorna a linha posterior 
 
move um espaço para a esquerda 
 move um espaço para a direita 
Ctrl move uma palavra para a esquerda 
Ctrl move uma palavra para a direita 
Home move para o começo da linha 
End move para o final da linha 
Del apaga um caractere a direita 
Backspace apaga um caractere a esquerda 
O símbolo % indica textos de comentário 
Cores (classes sintáticas) 
Palavras reservadas (for, end, if, ...). (azul) 
Textos de comentários. (verde) 
Mensagem de erro. (vermelho) 
Funções e variáveis. (preto) 
Cores e fonte de textos da janela de comandos e cor de fundo, podem ser alterados pelo 
comando preferences. 
Sinal ‘ - ’ para indicar número negativo. 
 
Página 8 
 
‘ . ’ para indicar casa decimal. 
ans é uma variável reservada, que armazena o último valor calculado pelo MATLAB. 
pi: 3.141592...; 
‘i’ e ‘j’: raiz imaginária (raiz quadrada de -1); 
eps: Precisão numérica relativa; 
realmin: menor número real; 
realmax: maior número real; 
Inf: infinito. Ex: 1/0; 
Nan: not a number. Exemplo: 0/0. 
Nome de Variáveis 
Deve ser alfanumérico, iniciando com letra. 
Diferencia letras maiúsculas e minúsculas (case-sensitive) 
Aceita caractere „_‟ no meio do nome 
Pode ter no máximo 32 caracteres 
Todas as funções do MATLAB devem ser escritas em letras minúsculas: inv(A) calcula a 
inversa de A, mas INV(A) é uma função indefinida. 
clearall– apaga todos os dados da memória 
clc – limpa a janela de comandos 
close- fecha todas as Janelas Gráficas 
A execução do MATLAB poderá ser interrompida a qualquer momento pressionando as 
teclas Ctrl e C simultaneamente. 
 
 
 
 
 
 
 
Página 9 
 
FUNÇÕES MATEMÁTICAS ELEMENTARES 
|x| abs(x) 
sen(x) sin(x) 
cos(x) cos(x) 
tg(x) tan(x) 
cossec(x) csc(x) 
sec(x) sec(x) 
cotg(x) cot(x) 
arcsen(x) asin(x) 
arccos(x) acos(x) 
arctg(x) atan(x) 
arccossec(x) acsc(x) 
arcsec(x) asec(x) 
arccotg(x) acot(x) 
e
x 
 exp(x) 
ln(x)=loge(x) log(x) 
log10(x) log10(x) 
Log2(x) log2(x) 
 𝒙 sqrt(x) 
 𝒙𝒃
𝒂
 x^(b/a) 
𝝅 pi 
n! factorial(n) para n<21 
 
IMPORTANTE: O MATLAB operara com arcos trigonométricos somente em radianos. 
 
MATRIZES E VETORESO método mais fácil de entrar com pequenas matrizes no MATLAB é usando uma lista 
explícita. Os elementos de cada linha da matriz são separados por espaços em branco ou 
vírgulas e as colunas separadas por ponto e vírgula, colocando-se colchetes em volta do grupo 
de elementos que formam a matriz. Por exemplo, entre com a expressão: 
 >> A=[ 12 3; 45 6; 78 9 ] 
Pressionando <enter> o MATLAB mostra o resultado 
 
Página 10 
 
A= 
 l 2 3 
 4 5 6 
 7 8 9 
 
A matriz A é salva na memória RAM do computador, ficando armazenada para uso posterior. 
A expressão A ( : ) equivale a uma matriz coluna que contém a primeira coluna de A, seguida 
pelas coluna subsequentes. 
>>A(:) 
ans = 
 12 
 45 
 78 
3 
6 
9 
Em algumas situações é importante definir as dimensões e o número de elementos de uma 
matriz. Desta forma, temos: 
size(matriz) – todas as dimensões da matriz 
length(matriz) – maior dimensão da matriz 
numel(matriz) – numero de elementos na matriz 
>>size(A) 
ans = 
 3 2 
>>length(A) 
ans = 
 3 
 
Página 11 
 
>>numel(A) 
ans = 
6 
ALGUMAS MATRIZES ESPECIAIS 
 Matriz Nula 
>> zeros(3) 
ans = 
 0 0 0 
 0 0 0 
 0 0 0 
 Matriz com 1 em todas as posições 
>> ones(2,3) 
ans = 
 1 1 1 
 1 1 1 
 Matriz com elementos randomicos uniformente distribuidos 
>> rand(2) 
ans = 
 0.8687 0.3998 
 0.0844 0.2599 
 Matriz identidade 
>>eye(3) 
ans = 
 1 0 0 
 0 1 0 
0 0 1 
Há várias maneiras de gerar uma matriz coluna ou linha. Como exemplo, temos: 
 
Página 12 
 
>> a1=[1 2 3 4 5 6 7 8 9 10] 
a1 = 
 1 2 3 4 5 6 7 8 9 10 
>> a1=1:10 
a1 = 
 1 2 3 4 5 6 7 8 910 
A declaração 1:10 gera um vetor linha contendo os números de 1 a 10 com incremento 
unitário. Outros incrementos, diferentes de um, podem ser usados. 
>> a2=1:2:10 
a2 = 
 1 3 5 7 9 
Incrementos negativos também são possíveis: 
>> a3=10:-1:1 
a3 = 
 10 9 8 7 6 5 4 3 2 1 
Pode-se, também, gerar vetores usando a função linspace. Por exemplo, 
>> x=linspace(2,10,5) 
x = 
2 4 6 810 
gera um vetor linearmente espaçado de 2 até 10, contendo 5 elementos. 
 
CONCATENAÇÃO DE MATRIZES 
O MATLAB permite a manipulação de linhas, colunas, elementos individuais e partes de 
matrizes. Um elemento individual da matriz pode ser chamado com índice entre parênteses. 
Observe o exemplo: 
>>A=[2 -2 3;4 5 -5;7 -4 9] 
A = 
 
Página 13 
 
2 -2 3 
4 5 -5 
7 -4 9 
>>A(2,1) produz: 
ans = 
 4 
Uma entrada da matriz (elemento individual)pode ser modificada. 
>>A(2,1) = A(2,2) + A(3,2) 
resulta em 
A = 
2 -2 3 
1 5 -5 
7 -4 9 
 
Também podemos tomar uma parte de uma matriz. Por exemplo, suponha que D é uma matriz 
de ordem 6x6 criada randomicamente. 
>> D=rand(6) 
D = 
 0.4087 0.1174 0.2625 0.5785 0.2316 0.9880 
 0.5949 0.2967 0.8010 0.2373 0.4889 0.0377 
 0.2622 0.3188 0.0292 0.4588 0.6241 0.8852 
 0.6028 0.4242 0.9289 0.9631 0.6791 0.9133 
 0.7112 0.5079 0.7303 0.5468 0.3955 0.7962 
0.2217 0.0855 0.4886 0.5211 0.3674 0.0987 
então 
>>D(1:5,3) 
ans = 
 
Página 14 
 
 0.2625 
 0.8010 
 0.0292 
 0.9289 
0.7303 
especifica uma submatriz 5x1, ou vetor coluna, que consiste dos cinco primeiros elementos da 
terceira coluna da matriz D. Analogamente, 
>> D(1:5,2:4) 
ans = 
 0.11740.2625 0.5785 
 0.29670.8010 0.2373 
 0.31880.0292 0.4588 
 0.42420.9289 0.9631 
0.50790.7303 0.5468 
é uma submatriz 5x3, consiste das primeiras cinco linhas e as colunas dois, três e quatro. 
Também podemos tomar uma parte da matriz D, tal que a nova matriz é definida através dos 
elementos da linha dois e três e colunas quatro e cinco, desta forma, definimos: 
>> D([2, 3],[4,5]) 
ans = 
 0.2373 0.4889 0.6241 
É possível definir uma matriz de dimensão zero por zero a D, isto é: D=[ ]. Subsequente uso 
desta matriz não conduz a uma condição de erro; ele propaga matriz vazia. Isto é diferente de 
declaração 
Clear D 
que remove D da lista das variáveis corrente. 
 
O mamando a seguir, atribui vazio a linha três da matriz D. 
>> D(3,:)=[ ] 
D = 
 
Página 15 
 
 0.4087 0.1174 0.2625 0.5785 0.9880 
 0.5949 0.2967 0.8010 0.2373 0.0377 
 0.6028 0.4242 0.9289 0.9631 0.9133 
 0.7112 0.5079 0.7303 0.5468 0.7962 
 0.2217 0.0855 0.4886 0.5211 0.0987 
 
OPERAÇÕES COM MATRIZES 
O caractere apóstrofo, " „ " , indica a transposta de uma matriz. Seja a matriz A definida 
abaixo: 
>> A =[1 2 3; 4 5 6; 7 8 9] 
A = 
 1 2 3 
 4 5 6 
 7 8 9 
A declaração A’ define a transposta da matriz A: 
>> A' 
ans = 
 1 4 7 
 2 5 8 
 3 6 9 
 
A adição e subtração de matrizes são indicadas, respectivamente, por “+” e “-“. As operações 
são definidas somente se as matrizes são de mesmas dimensões. 
>> A-A' 
ans = 
 0 -2 -4 
 2 0 -2 
 4 2 0 
 
Página 16 
 
>> A+A' 
ans = 
 2 610 
 610 14 
1014 18 
A adição e subtração também são definidas se um dos operadores é um escalar, ou seja, uma 
matriz 1 x 1. Neste caso, o escalar é adicionado ou subtraído de todos os elementos do outro 
operador. Por exemplo: 
>> A+2 
ans = 
 3 4 5 
 6 7 8 
 910 11 
A multiplicação de matrizes é indicada por “*”. A multiplicação A*S édefinida somente se o 
número de colunas da matriz A é igual ao número de linhas da matriz S. Exemplo: 
>> S=[1 2 ; 3 4; 7 2] 
S = 
 1 2 
 3 4 
 7 2 
>> A*S 
ans = 
 2816 
 6140 
 9464 
Naturalmente, um escalar pode multiplicar ou ser multiplicado por qualquer matriz. 
>> A*2 
ans = 
 
Página 17 
 
 2 4 6 
 810 12 
 1416 18 
A expressão A^peleva A à p-ésima potência e é definida se A é matriz quadrada e p um 
escalar. Se p é um inteiro maior do que um, a exponenciação é computada como múltiplas 
multiplicações. Por exemplo, 
>>A^3 
ans = 
 468 576 684 
 1062 1305 1548 
 1656 2034 2412 
Suponha que M e N sejam vetores linha com quatro elementos. Para gerar um novo vetor F 
com valores que sejam produtos dos valores correspondentes em M e N, temos: 
>> M=[1 3 5 7] 
M = 
 1 3 5 7 
>> N=[-2 3 4 1] 
N = 
 -2 3 4 1 
>> F=M.*N 
F = 
 -2 920 7 
Se o ponto for omitido, a operação executada será uma operação matricial. Neste caso, a 
operação não seria possível. Da mesma forma, temos: 
>> A =[1 2 3; 4 5 6; 7 8 9] 
A = 
 1 2 3 
 4 5 6 
 
Página 18 
 
 7 8 9 
>> A^2 
ans = 
 30 36 42 
 66 81 96 
 102 126 150 
>> A.^2 
ans = 
 1 4 9 
 16 25 36 
 49 64 81 
 
SOLUÇÃO E REPRESENTAÇÃO DE SISTEMAS DE EQUAÇÕES LINEARES 
Um Sistema de equações lineares consiste em um conjunto de m equações polinomiais com n 
variáveis xj de grau 1, que podem ser representadas na forma: 
 
 
 
 


















































mnmnmmm
n
n
n
b
b
b
b
x
x
x
x
aaaa
aaaa
aaaa
aaaa
bAx






3
2
1
3
2
1
321
3333231
2232221
1131211
 
 
 
 
Matriz dos coeficientes Vetor Solução 
Vetor dos termos independentes 













mnmnmmm
nn
nn
nn
bxaxaxaxa
bxaxaxaxa
bxaxaxaxa
bxaxaxaxa





33221133333232131
22323222121
11313212111
 
 
Página 19 
 
Em muitos problemas de engenharia estamos interessados em determinar se existe uma 
solução para o sistema de equações lineares que descreve uma parte do problema real. 
Na construção civil: TRELIÇAS 
 
 
 
Problema: Determinar as componentes horizontal e vertical das forças que atuam nas junções 
da treliça: 
 
Para isso é necessário determinar as 17 forças desconhecidas que atuam nesta treliça. 
 
Página 20 
 
 
 
Um sistema de equações lineares poderá ser resolvido no MATLAB de diversas formas: 
Assumindo o sistema de equações apresentado abaixo, temos: 











3223
1242
6 
0 
wzyx
wzyx
wzyx
wzy
onde
















2213
2142
1111
1110
A , 














3
1
6
0
b e 













w
z
y
x
X 
Definindo amatriz dos coeficientes e o vetor dos termos independentes no MATLAB, temos: 
>> A=[0 -1 -1 1; 1 1 1 1 ;2 4 1 -2;3 1 -2 -2] 
A = 
 0-1 -1 1 
1 1 1 1 
 2 4 1-2 
 3 1-2 -2 
>> b=[0; 6;-1;3] 
b = 
0 
 
Página 21 
 
6 
 -1 
3 
A inversa da matriz A poderá ser calculada usando o comando inv: 
>>inv(A) 
ans = 
 -3/5 3/5 -2/5 2/5 
 1 -1/3 2/3 -1/3 
 -6/5 8/15 -7/15 2/15 
 4/5 1/5 1/5 -1/5 
 
Se existe a inversa da matriz A, o vetor solução é definido por: 
>> X=inv(A)*b 
X = 
 26/5 
 -11/3 
 61/15 
 2/5 
Ou ainda, independente de existir ou não a inversa da matriz A, podemos obter a solução do 
problema escalonando a matriz aumentada do sistema[A,b]. No MATLABpodemos usar o 
comando rref: 
>> [A,b] 
ans = 
0 -1 -1 1 0 
 1 1 1 1 6 
 2 4 1 -2 -1 
 3 1 -2 -2 3 
 
Página 22 
 
>>rref([A,b]) 
ans = 
 1 0 0 0 26/5 
0 1 0 0 -11/3 
 0 0 1 0 61/15 
 0 0 0 1 2/5 
>> X=ans(:,5) 
X = 
26/5 
 -11/3 
 61/15 
 2/5 
A solução também poderá ser obtida aplicando o comando solve nas equações do sistema: 
>> [x,y,z,w]=solve( '-y-z+w=0','x+y+z+w=6','2*x+4*y+z-2*w=-1','3*x+y-2*z-2*w=3' ) 
x = 
2/5 
y = 
26/5 
z = 
-11/3 
w = 
61/15 
MATEMÁTICA SIMBÓLICA 
É possível instruir o MATLAB a manipular expressões matemáticas, que lhe permitam 
calcular com símbolos matemáticos, além de números. Esse processo é frequentemente 
chamado de matemática simbólica. Na sequencia são apresentados alguns exemplos de 
expressões simbólicas. Para exemplificar, declaramos: 
 
Página 23 
 
>>syms x a b c d n 
Observe que, o comando syms foi usado para , explicitamente, dizer ao MATLAB que x a b c 
d e n definem uma expressão simbólica. 
Entrando com a expressão: 
x
x
1
 
>> z=x/sqrt(1-x) 
 z = 
 x/(1 - x)^(1/2) 
Para visualizar a expressão simbólica na forma 
x
x
1
 devemos usar o comando: 
>>pretty(z) 
Entrando com matrizes: Seja 






dc
ba
M 
>> M=[a b; c d] 
M = 
 [ a, b] 
 [ c, d] 
O determinante da matriz simbólica M é definido por: 
>>det(M) 
ans = 
 a*d - b*c 
Entrando com polinômios: 𝑃 𝑥 = 2𝑥3 − 3𝑥2 + 𝑥 e calculando suas raízes: 
>>syms x 
>> 2*x^3-3*x^2+x 
ans = 
2*x^3 - 3*x^2 + x 
>>raizes_x=solve('2*x^3-3*x^2+x') 
raizes_x = 
 
Página 24 
 
0 
 1/2 
 1 
 SUBSTITUIÇÃO DE VARIÁVEIS 
Quando se tem uma expressão simbólica em x, e que queira mudar a variável para y, usa-se a 
função subs. 
>>syms a b c d x 
>> f= a*x^2+b*x+c 
f = 
a*x^2 + b*x + c 
>>subs(f,x,'s') 
ans = 
a*s^2 + b*s + c 
 
Quando queremos avaliar a função em um determinado ponto x=k, onde k é uma constante, 
usamos o comando eval(f). 
>> x=2; 
>>eval(f) 
ans = 
 4*a + 2*b + c 
 
DERIVAÇÃO E INTEGRAÇÃO 
A derivação de uma expressão simbólica usa a função diff em uma dentre as quatro formas: 
Expressão Resultado 
syms a b c x ; 
f=a*x^3+x^2-b*x+c; 
Define uma expressão simbólica. 
diff(f) Deriva em relação a x (padrão). 
 
Página 25 
 
diff(f,a) Deriva f em relação a „a‟. 
diff(f,2) Deriva f 2 vezes em relação a x. 
diff(f,a,2) Deriva f 2 vezes em relação a „a‟. 
 
A função difftambém opera sobre conjuntos. Se f for um vetor simbólico ou matriz, 
diff(f)deriva cada elemento do conjunto. Exemplo: 
>>syms a b c d x s 
>> T=[a*x, b*x^2; c*x^3, d*s] 
T = 
[ a*x, b*x^2] 
[ c*x^3, d*s] 
>>diff(T) 
ans = 
[ a, 2*b*x] 
[ 3*c*x^2, 0] 
A função de integração int(f), onde f é uma expressão simbólica, tenta encontrar outra 
expressão simbólica F tal que diff(F)=f. 
Expressão Resultado 
syms s m n x; 
f=sin(s+2*x); 
Define uma expressão simbólica. 
int(f) Integra em relação a x (padrão). 
int(f,pi/2,pi) Integra f em relação a x de pi/2 a pi. 
int(f,s,pi/2,pi) Integra f em relação a s de pi/2 a pi. 
int(f,m,n) Integra f em relação a x de m a n. 
 
A função inttambém opera sobre conjuntos. Se f for um vetor simbólico ou matriz, int(f) 
integra cada elemento do conjunto. Exemplo: 
 
Página 26 
 
>> T=[a*x, b*x^2; c*x^3, d*s] 
T = 
[ a*x, b*x^2] 
[ c*x^3, d*s] 
 
>>int(T,0,2) 
ans = 
[ 2*a, (8*b)/3] 
[ 4*c, 2*d*s] 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Página 27 
 
EXERCÍCIOS PROPOSTOS 
Sendo x=345,6, y= 3,5 e z=23,7, calcule o valor de A. 
zyx
A
53
5

 
yx
xy
A



2
 
1222  yxyxA 
xxeA y ln 
  2
2 53



xeyx
yx
A 
)43(
)2(
.
64
2





yx
yxy
yx
xyx
A 
 
164
2
1
2
2
e
y
y
xx
x










 
A=











53
24
01
.






y
x
. 
RESPOSTAS: 
0.0105 A 
0.9900i + 0 A 
005+1.1978eA 
004+1.1447e A 
148-1.1465eA 
2) Seja a matriz A=










263
174
952 ,calcular A+A T =S e verificar se S é simétrica. 
Resp: A é simétrica 
3)Dadas as matrizes A,B e C determine: 
 
Página 28 
 
A=






 46
51 B=






210
63 C=






01
87 
A.C e (A.C).B 
B.( A.C) 
Resp:








4838
812
AC
,   







324594
886.11
BAC
 e   








1644
264192
ACB
 
4) Dadas as matrizes A e B calcule a A.B: 
A=
















287
612/1
412
035 B=












21
35
40 
Resp:
















4838
1311
131
1115
AB
 
5) Resolva as equações: 
a)
x
x
x



311
151
113 =0 b) 
123
312
132  xxx =0 
Resp: a) {x=2, x=3, x=6} e b) {x=-10} 
6) Dadas as matrizes A=






 53/22
05/32/1 e B=









 
3/1
3/4
3
, calcule se for possível: 
A T B T ABnão é possível 
A T B  não é possível 
7) Dadas as matrizes A e B calcule as seguintes colunas de AB: 
A=














512
324
423
211
 B=












1524
4333
2101
 
A segunda coluna. 
A quarta coluna. 
Resp: a) 












13
0
14
1
 e b) 












13
3
18
0
 
 
Página 29 
 
8) Seja A=






30
21
determine g(A), onde g(x)=x 2 . Resp: 







90
81
2A 
9) Determine x, y e z, se 
3






wz
yx = 






 w
x
21
6 +








3
4
wz
yx . 
Resp: {x=2, y=4, z=1, w=3} 
10)Escreva os sistemas de equações linearesna forma matricial, em seguida encontre o vetor 
solução. 
a)








432
4242
8523
zyx
zyx
zyx
 SCD x=3, y=2 e z=1 
b) 








02212
0816
042
1
21
21
xx
xx
xx
 Somente a Sol. Trivial 
c) 








26523
442
83
zyx
yx
zx
 SCD: x=4, y=3 e z=-4 
d) 





0639
0426
zyx
zyx  SCI: 
















z
y
zy
X
3
2
3
1
 
e) 








5366
2363
132
cba
cba
cb
 SI 
f) 








14223
1742
72
zyx
zyx
zyx
 SCD:x=2,y=-1 e z=3 
h) 








17483
53
32
zyx
zyx
zyx
 SCD 



















3
4
3
2
3
17
X
 
i) 











754
93
425
1642
21
21
21
21
xx
xx
xx
xx  SCD 






3
2
X
 
11)Determine o conteúdo das matrizes definidas abaixo. Use a matriz A como referência. 
 
Página 30 
 















2211
3510
1521
2751
A
 
12)Verifique suas respostas usando o MATLAB. 
A ( : , 2 ) 
A ( 4 , : ) 
A ( 4:5 , 1:3 ) 
A ( 1:2:5 , 2 ) 
3 * A ( : ) 
13)Calcule a integral indefinida de y=f(x) para: 
𝑦 = 𝑠𝑒𝑛(3𝑥) 
𝑦 = 𝑠𝑒𝑛 
1
2
𝑥 
𝑦 = cos⁡(3𝑥2) 
𝑦 = 𝑡𝑔 3𝑥 − 2𝑥3 
𝑦 = 𝑒5𝑥 
𝑦 =
1
2
𝑒−2𝑥 
𝑦 = 𝑎𝑥2 + 𝑏2 
𝑦 = 𝑠𝑒𝑛(𝑤𝑥 + 𝑎2) 
𝑦 = 𝑠𝑒𝑛(𝑤𝑥2). cos⁡(2𝑥) 
𝑦 = 𝑒6𝑥 + 3𝑒2𝑥𝑠𝑒𝑛(3𝑥) 
𝑦 = 42𝑥 − 5𝑠𝑒𝑛(3𝑥 − 2𝑤) 
𝑦 =
1
3𝑥 + 2
 
𝑦 = −
4
𝑠𝑒𝑛𝑥
 
𝑦 = cos⁡(
1
𝑥
+ 3) 
 
Página 31 
 
𝑦 =
−11
2𝑥
 
𝑦 = 𝑒𝑠𝑒𝑛 (3𝜋𝑥 ) 
 
14)Sabendo que 𝑓 𝑥 𝑑𝑥 = 𝐹 𝑥 + 𝑐 e 
𝑑
𝑑𝑥
 𝑓 𝑥 𝑑𝑥 =
𝑑
𝑑𝑥
 𝐹 𝑥 + 𝑐 , isto é 𝐹′ 𝑥 =
𝑓(𝑥). Verifique se as respostas encontradas no exercício 12) estão corretas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Página 32 
 
AMBIENTE GRÁFICO 
A construção de gráficos no MATLAB é mais uma das facilidades do sistema. Através de 
comandos simples pode-se obter gráficos bidimensionais ou tridimensionais com qualquer 
tipo de escala e coordenada. Existe no MATLAB uma vasta biblioteca de comandos gráficos. 
Se yéum vetor, plot(y) produz um gráfico linear dos elementos de y versos o índice dos 
elementos de y. Por exemplo, para plotar os números [0,1 0,3 1 0,3 0,1], entre com o vetor e 
execute o comando plot: 
 >> y=[.1 .3 1 .3 .1] 
>>plot(y) 
e o resultado é apresentado na Janela Gráfica: 
 
Se Aéuma matriz, plot(A) produz um gráfico linear dos elementos de A versos o índice da 
linha ao qual elemento pertence. Por exemplo: 
>> A=[1 2 -3; 4 5 10]; 
>>plot(A),grid 
 
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
-4
-2
0
2
4
6
8
10
 
Página 33 
 
ou ainda, se A é uma matriz 3x3, temos como exemplo: 
>> A=[1 2 -3; 4 5 10;1 2 5]; 
>>plot(A),grid 
 
Dados dois vectores de mesma dimensão, o comando plot(x,y) permite desenhar o gráfico 
definido pelos pares ordenado (x,y). 
>> x=linspace(1,5,20); 
>> y=linspace(2,26,20); 
>>plot(x,y) 
 
Para obter o gráfico de uma função y = f(x), Introduza na linha de comandos do MATLAB o 
vetor x (parte do domínio de f) e o vetor y (imagem referente as componentes do vetor x): 
>> x=1:6; 
>> y=1./x; 
>>plot(x,y),grid 
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
-4
-2
0
2
4
6
8
10
1 1.5 2 2.5 3 3.5 4 4.5 5
0
5
10
15
20
25
30
 
Página 34 
 
O comando grid insere uma grade na janela gráfica: 
 
Observe que o gráfico acima não apresenta com precisão o comportamento da função 𝑦 =
1
𝑥
 
no intervalo 1 ≤ 𝑥 ≤ 6. Desta forma, é importante notar que o número de pontos definidos no 
vetor x, define a qualidade com relação ao aspecto de continuidade e diferenciabilidade da 
função. 
>>x=1:0.01:6; 
>>y=1./x; 
>>plot(x,y) 
 
 
ALGUNS COMANDOS E FUNÇÕES 
O MATLAB possui comandos de fácil utilização para adicionar informações em um gráfico: 
title Título do gráfico. 
xlabel Título do eixo-X. 
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
 
Página 35 
 
ylabel Título do eixo-Y. 
zlabel Título do eixo-Z. 
text Inseriranotação no gráfico. 
gtext Inserir anotação com o “mouse”. 
grid Linhas de grade. 
 
Além da formatação default para gráficos, outros tipos de linhas, pontos e cores também 
podem ser usados: 
TIPO DE LINHA 
- ---- 
- - ----------------- 
-. --------- 
:  
 
TIPO DE PONTO 
  
  
  
+ +++++++++ 
X x xxxxxx 
 
CORES 
y amarelo 
m lilás 
c azul claro 
r vermelho 
 
Página 36 
 
g verde 
b azulescuro 
w branco 
k preto 
 
Observe a sequencia de comandos e o respectivo gráfico: 
>>x=1:.01:10; 
>>y=1./x; 
>>plot(x,y,'y*') 
>>title('FUNÇÃO Y=1/X') 
>>xlabel('EIXO DAS ABSCISSAS') 
>>ylabel('EIXO DAS ORDENADAS') 
 
 
>>x=-6:.01:6; 
>>y=1./x; 
>>plot(x,y,'y*') 
>>title('FUNÇÃO Y=1/X') 
>>xlabel('EIXO DAS ABSCISSAS') 
>>ylabel('EIXO DAS ORDENADAS') 
1 2 3 4 5 6 7 8 9 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
FUNÇÃO Y=1/X
EIXO DAS ABSCISSAS
E
IX
O
 D
A
S
 O
R
D
E
N
A
D
A
S
 
Página 37 
 
>>legend('f(x)=1/x') 
 
 
 
O MATLAB plota múltiplas ‘linhas’ em apenas um gráfico, usando o comando plot com 
múltiplos argumentos. Por exemplo: Os comandos definidos abaixo cria o gráfico da função 
seno e da função cosseno, com x variando de 0 até 2*pi, com 30 pontos: 
>> x=linspace(0,2*pi,30); 
>> y1=sin(x); 
 >> y2=cos(x); 
 >>plot(x,y1,x,y2),grid 
Para inserir mensagens sobre o texto, usando o mouse, temos: 
>>gtext('sin(x)') 
>>gtext('cos(x)') 
Para inserir uma legenda, fazemos uso do comando legend: 
>>legend('sin(x)','cos(x)') 
Para inserir título e nomes nos eixos, usamos os comandos: title, xlabel e ylabel. 
>>title('Gráfico das funçoes: f(x)=sen(x) e f(x)=cos(x), 0<x<2*pi') 
>> xlabel('x') 
>> ylabel('f(x)') 
 
-6 -4 -2 0 2 4 6
-150
-100
-50
0
50
100
150
FUNÇÃO Y=1/X
EIXO DAS ABSCISSAS
E
IX
O
 D
A
S
 O
R
D
E
N
A
D
A
S
 
 
f(x)=1/x
 
Página 38 
 
 
 
Caso seja necessário redefinir os valores dos eixos coordenados, usamos o comando 
axis([xminxmaxyminymax]) 
>>axis([ 0 3*pi/2 -pipi]) 
 
 
Para que os valores dos eixos voltem ao norma usamos 
 >>axisxy normal 
Outro exemplo: Gráfico da função seno e da função cos(x)+1 de 0 até 2pi, com 30 pontos 
>>x=linspace(0,2*pi,30); 
>>f=sin(x); 
>>g=cos(x)+1; 
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
-3
-2
-1
0
1
2
3
sin(x)
cos(x)
x
f(
x
)
Gráfico das funçoes: f(x)=sen(x) e f(x)=cos(x), 0<x<2*pi
 
 
sin(x)
cos(x)
 
Página 39 
 
>>plot(x,f,x,g),grid 
>>gtext('f(x)=cos(x)+1') 
>>gtext('g(x)=sin(x)') 
 
Os tipos de linhas, símbolos e cores usados para plotar gráficos podem ser controlados se os 
padrões não são satisfatórios . Veja os exemplos, que seguem na mesma janela usando o 
comando subplot. 
 
Sintaxe do subplot: 
>>subplot(m,n,p) 
 
Parâmetros de entrada: 
m: número de eixo na vertical 
n: número de eixos na horizontal 
p: índice do eixo corrente. 
 
No exemplo definido abaixo, uma janela gráfica (2x3) foi criada evidenciando o gráfico de 
seis funções. 
>>x = -15:0.1:15; 
>>y1=x.^2-6*x+8; 
>>y2=x.^2-2*x+2; 
0 1 2 3 4 5 6 7
-1
-0.5
0
0.5
1
1.5
2
f(x)=cos(x)+1
g(x)=sin(x)
 
Página 40 
 
>>y3=x.^2-6*x+9; 
>>y4=abs(x); 
>>y5=2*x+1; 
>>y6=-2*x+1; 
>>subplot(2,3,1), plot(x,y1,'k*') 
>>subplot(2,3,2), plot(x,y2,'r.') 
>>subplot(2,3,3), plot(x,y3,'yo') 
>>subplot(2,3,4), plot(x,y4,'b>') 
>>subplot(2,3,5), plot(x,y5,'m.-') 
>>subplot(2,3,6), plot(x,y6,'g') 
 
 
Na sequencia, uma única linha apresenta três gráficos ( matriz 1x3). 
>>x = -5:0.01:5; 
>>g1=x.^2+6*x-2; 
>>g2=abs(x)+1; 
>>g3=-2*x+1; 
>>subplot(1,3,1), plot(x,g1,'k*') 
>>title('g1(x)=x^2+6*x-2')>>subplot(1,3,2), plot(x,g2,'r.') 
-20 0 20
-100
0
100
200
300
400
-20 0 20
0
100
200
300
-20 0 20
0
100
200
300
400
-20 0 20
0
5
10
15
-20 0 20
-40
-20
0
20
40
-20 0 20
-40
-20
0
20
40
 
Página 41 
 
>>title('g2(x)=abs(x)+1') 
>>subplot(1,3,3), plot(x,g3,'yo') 
>>title('g3(x)=-2*x+1') 
 
 
INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO 
LÓGICAE ALGORITMO 
 
A lógica na programação é muito útil quando se que deseja desenvolver sistemas e 
programas, ela permite definir a sequência lógica de procedimentos para cumprir o desejado . 
São passos que devem ser executados em uma sequência tal que o objetivo ou solução de um 
problema são alcançados. 
 
 
Em computação, uma instrução é a informação que indica ao computador uma ação elementar 
que deve ser executada. 
Uma instrução isolada, em geral, não resolve um processo completo. Nesses casos é 
necessário um conjunto de instruções, colocadas em uma ordem sequencial lógica. 
Um algoritmo é formalmente uma sequênciafinita de passos, não redundantes nem subjetivos 
na sua definição, logicamente encadeados que levam a execução de uma tarefa. 
Um exemplo, no dia-a-dia, seria um manual de instalação e uso de um aparelho eletrônico, 
que explica passo-a-passo como proceder a sua instalação e como realizar cada uma das suas 
funções. 
-5 0 5
-20
-10
0
10
20
30
40
50
60
g1(x)=x2+6*x-2
-5 0 5
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
6
g2(x)=abs(x)+1
-5 0 5
-10
-5
0
5
10
15
g3(x)=-2*x+1
Lógica é o encadeamento de pensamentos para atingir determinado objetivo. 
 
Página 42 
 
Um outro exemplo seria o de efetuar a soma de dois números reais. 
Nada seria feito se a instrução fosse: efetue a soma desses números. Mesmo que essa 
operação fosse efetuada, qual seria o resultado? Ter-se-ia conhecimento dele se nenhuma 
instrução foi dada para que isso ocorresse? 
Em termos computacionais, seria necessário estabelecer uma sequência finita de passos, de 
forma clara e precisa, que possibilitasse que o computador realizasse a tarefa. 
Seria algo como: 
 
Leia o primeiro número. 
Leia o segundo número. 
Efetue a soma desses números. 
Informe o resultado. 
 
Suponha agora que sejadesejável, além de efetuar a soma, calcular a multiplicação da soma 
pelo segundo número. 
Então, além da elaboração da sequência acima, seria necessário proceder à multiplicação pelo 
segundo número lido. 
Isto seria descrito por: 
 
Leia o primeiro número. 
Leia o segundo número. 
Efetue a soma desses números e o produto dessa soma pelo segundo número lido. 
Informe o resultado. 
Algumas vezes, não é possível realizar todas as operações de uma só vez, conforme a 
linguagem utilizada e/ou a conveniência do desenvolvimento do raciocínio. 
Neste caso, os procedimentos que não puderem ser realizados de uma só vez podem e devem 
ser realizados por partes: 
Leia o primeiro número. 
Leia o segundo número. 
 
Página 43 
 
Efetue a soma desses números. 
Efetue o produto dessa soma pelo segundo número. 
Informe o resultado. 
Conforme o problema torna-se necessário estabelecer outro tipo de raciocínio. É o caso, por 
exemplo, se a multiplicação, no problema acima, fosse efetuada com o maior dos dois 
números fornecidos, em lugar de pelo segundo. Isso levaria a necessidade de se estabelecer: 
Leia o primeiro número. 
Leia o segundo número. 
Se o primeiro número é maior do que o segundo; 
Efetue a soma dos dois números e multiplica a soma pelo primeiro número. 
Senão (se o primeiro não é maior do que o segundo) 
Efetue a soma dos dois números e multiplica a soma pelo segundo número. 
Informe o resultado. 
Poder-se-ia elaborar vários outros problemas com especificações mais trabalhosas. Mas é 
bom estabelecer aqui que em todos os casos é possível encontrar uma sequência de passos 
finita, clara e não redundantes que, ao final, apresentaria um resultado. 
 
PROGRAMAS 
Os programas de computadores são, simplesmente, algoritmos escritos numa linguagem 
decomputador (Pascal, C, Cobol, Fortran, MatLab entre outras) e que são interpretados 
eexecutados por uma máquina, no caso um computador. 
É bom que se saiba que um programa é muito específico e rígido em relação aos algoritmos 
da vidareal. Qualquer falha no raciocínio, erro de sintaxe na linguagem ou erro na sequência 
estabelecida para o computador, o resultado pode ser muito diferente daquele que seria o 
correto. 
CONSTRUÇÃO DE ALGORITMOS 
PSEUDOCÓDIGO 
Ao se criar um algoritmo ele é em uma linguagem chamada pseudocódigo. Assim chamada 
por ser conveniente elaborá-lo aproximando-se da posterior implementação em uma 
linguagem de programação. Isto significa que quando da programação, o código será gerado 
de acordo com o estabelecido no algoritmo. 
 
Página 44 
 
Por esta razão, os algoritmos são independentes das linguagens de programação e, por isto, 
não existe um formalismo rígido de como deve serescrito o algoritmo. Um algoritmo deve ser 
fácil de interpretar e ao mesmo tempo fácil de codificar. 
O algoritmo deve ser intermediário entre a linguagem falada e a linguagem de programação. 
 
REGRAS PARA CONSTRUÇÃO DO ALGORITMO 
Um algoritmo deve descrever a sequência de instruções, de maneirasimples e objetiva e, por 
isso é aconselhável a obediência àalgumas regras: 
 Levar em consideração que o algoritmo será visto por pessoas que não estão 
familiarizadas com computação. 
 Usar frases curtas e simples. 
 Preferencialmente, usar apenas um verbo por frase. 
 Objetividade. 
 Não usar palavras que possam oferecer duplo sentido. 
 
FASES 
Na elaboração de um algoritmo é necessário: 
 Conhecimento completo do problema que se pretende resolver (Análise do Problema). 
Isto inclui em estabelecer quais são os dados que devem ser conhecidos, quais cálculos 
devem ser realizados e em quais condições, entre outros. 
 Elaborar uma sequência de passos, finita, clara e objetiva. 
 Observar se o algoritmo cumpre todas as etapas na ordem desejada. 
 
Exemplo:Deseja-se calcular a média anual de um aluno do curso, ao final do ano. 
Solução: 
 Os alunos se submeterão a uma prova por bimestre, totalizando, ao final do ano, 4 
provas que correspondem a 4 notas (digamos, N1 , N2, N3 e N4 ). 
 A média anual é dada pela soma das quatro notas divididas pelo número de notas (4). 
O que se deseja é o resultado da média assim calculada. 
 Para se elaborar o algoritmo deve-se levar em conta: 
 Quais são os dados de entrada? 
 Quais são os procedimentos que serão executados para os cálculos? 
 Qual é o resultado que será apresentado? 
 As respostas podem ser extraídas do conhecimento do problema: 
 
Página 45 
 
 Dados de entrada:as notas bimestrais (N1 , N2 , N3 e N4) 
 Procedimentos: Efetuar a soma das notas e dividir por 4. 
 Saída:fornecer a média anual (resultado obtido nos procedimentos). 
 
Algoritmo: 
 
Ler nota da prova 1. (N1) 
Ler nota da prova 2. (N2) 
Ler nota da prova 3. (N3) 
Ler nota da prova 4. (N4) 
Somar as notas e dividir por 4. 
Informar o resultado. 
 
Teste de Mesa 
Elaborado o algoritmo ele deverá passar por um teste, chamado teste de mesa, para verificar a 
sua exatidão. Este teste consiste em realizar com exatidão a sequência estabelecida no 
algoritmo para certificar se o algoritmo realiza o desejado de forma correta. 
 
EXERCÍCIO: Elabore um algoritmo para calcular a média anual de um aluno do curso, 
sabendo que ele recebe quatro notas no ano e que a média é ponderada, tendo, cada nota seu 
peso específico. 
 
DIAGRAMA DE BLOCO 
O diagrama de blocos é uma forma eficaz para representar os passoslógicos de um 
determinado processamento. Ele é construído através de símbolos (em geral figuras 
geométricas) específicos para cada atividade e tem por objetivo facilitar a visualização e o 
entendimento dos passos de um processamento. 
Dentro de cada um deles é escrito o que será realizado. 
Na sequência são descritos alguns símbolosmais utilizados. No decorrer do curso poderão ser 
apresentados outros, se for necessário. 
 
Página 46 
 
 
SÍMBOLO DESCRIÇÃO 
 
 
 
 
TERMINAL 
Início ou fim do processamento. 
 
 
 
 
 
 
ENTRADA DE DADOS 
Exemplo:ler N 
 
 
 
 
 
PROCESSAMENTO 
Indica qualquer processamento 
Exemplo:soma de dois números 
 
 
 
 
 
DECISÃO 
Será exemplificado no futuro 
 
 
 
 
 
EXIBIR 
Apresenta o resultado do desenvolvimento 
 
 
 
 
 
 
 
SENTIDO DO FLUXO 
 
 
 
 
 
CONECTOR 
 
 
Exemplo:Para o exemplo anterior, onde foi calculada a média das notas de uma aluno, tem-
se: 
 
Página 47 
 
Algoritmo e diagrama de bloco: 
 
início 
Ler nota da prova 1. (N1) 
Ler nota da prova 2. (N2) 
Ler nota da prova 3. (N3) 
Ler nota da prova 4. (N4) 
Somar as notas e dividir por 4. 
Informar o resultado 
fim 
 
 
 
 
 
 
 
 
OBSERVAÇÃO: 
Alguns preferem usar, e de fato usam quando possível, um só símbolo de entrada de dados, 
constando, explicitamente, que será dada entrada de quais dados. 
Ler 
N1 , N2 , N3 , N4 
 
Nada impede este procedimento, desde que não seja prejudicada a clareza e a não 
ambiguidade do diagrama. 
Exercício:Elabore um diagrama de blocos para o caso de cálculo da média ponderada, 
conforme enunciado anteriormente. 
Fim 
Ler N2 
Ler N1 
Ler N3 
Ler N4 
Media = (N1+N2+N3+N4)/4 
 Início 
Imprimir 
Média 
 
Página 48 
 
CONSTANTES E VARIÁVEIS 
Variáveis e constantes são os elementos básicos que todo programa manipula. 
 
VARIÁVEIS 
Uma variável éum espaço reservado na memória do computador para armazenar um 
determinado tipo de dado. 
Variáveis devem receber nomes através dos quais podem ser referenciadas e modificadas 
quandonecessário, na execução do programa. 
Uma variável a ser utilizada muitas vezes recebe um valor inicial que pode ser alterado no 
decorrerdo programa. Esses valores podem ser reais, inteiros, caracteres, etc. 
Em programação, o sinal de igual ( = ), significa atribuição, como já se viu. Neste caso, 
quando se escrevea = 10 o que se pretende é reservar um espaço de memória, designado por 
a e será armazenado o valor atribuído ( 10 ). 
 
CONSTANTES 
Constante é um valor fixo que não se modifica ao longo do tempo, durante aexecução de um 
programa. Conforme o seu tipo, a constante é classificada como sendo numérica,lógicaou 
literal. 
Exemplo de constantes: 
PI = 3.141516 , K = 4 , nome = “Maria” 
 
Operadores 
Os operadores são os meios pelos quaiso computador incrementa, decrementa, compara 
eavaliadados. São classificados em três tipos: 
 Operadores Aritméticos 
 Operadores Relacionais 
 Operadores Lógicos 
OPERADORES ARITMÉTICOS 
Os operadores aritméticos são aqueles utilizados para obter resultados numéricos. Além 
daadição, subtração, multiplicação e divisão, utiliza-se também o operador para 
exponenciação. 
 
Página 49 
 
 
OPERAÇÃO SÍMBOLO 
Adição + 
Subtração - 
Multiplicação * 
Divisão / 
Exponenciação ^ 
 
OPERADORES RELACIONAIS 
Os operadores relacionais são aqueles utilizados para efetuar comparações. 
Osvalores a serem comparados podem ser caracteres ou variáveis. 
Estes operadores retornam valores lógicos (verdadeiro ou falso/ True ou False) 
Para estabelecer prioridades no que diz respeito a qual operação executar primeirosão 
utilizados parênteses. 
Descrição Símbolo 
Igual a == 
Diferente de ~= 
Maior que > 
Menor que < 
Maior ou igual a >= 
Menor ou igual a <= 
 
Exemplo: Considere duas variáveis e seus respectivos valores:L = 5 e P = 10 
Utilizando os operadores obtém-se os resultados: 
L== P retorna Falso 
L ~= P retorna Verdadeiro 
L> P retorna Falso 
L< P retorna Verdadeiro 
L>= P retorna Falso 
L<= P retorna Verdadeiro 
 
Página 50 
 
 
Os operadores relacionais são muito úteis quando se deseja realizar cálculos quando uma 
determinada condição for satisfeita. Na elaboração de um algoritmo, no diagrama de bloco o 
símbolo que representa esses operadores tem a forma: 
 
 
 
Por um dos vértices deve seguir o fluxo que realiza as operações no caso de a comparação 
descrita no interior da figura resultar em Verdadeiro ( V ) e por outro vértice o fluxo que 
realiza as operações no caso de a comparação resultar em falso ( F ) 
Exemplo: Elaborar um algoritmo que, dados dois númerosA e B, imprime a soma deles se A 
for maior do que B e a diferença A – B, se A não for maior do que B. 
 
Inicio 
 
Ler A 
Ler B 
Se A > B 
 Efetuara soma dos números 
Senão 
 Efetuar a subtração A – B 
 
Imprimir o resultado 
 
Fim 
 
 
 
 
 
Página 51 
 
 
O fluxograma ficaria da forma: 
 
 
 
 
 
 
 
 
 
 
 
 
 
ROTINAS (M-FILES OU SCRIPTS) 
A janela do command Windows não é interativa. Toda vez que é acionada a tecla enter 
somente o último comando digitado é executado e os anteriores ficam inalterados. Se alguma 
alteração ou correção for necessária, todos os comandos deverão ser digitados e executados 
novamente. 
Uma forma de tornar isto menos trabalhoso e mais eficiente é criar um arquivo com a lista de 
comandos desejados, salvar esse arquivo e depois executá-lo. Se alguma correção ou 
alteração for necessária, abre-se o arquivo, procedem-se as correções necessárias e salva o 
arquivo. Ele fica disponível, com todos os comandos para nova execução. 
Esses arquivos são chamados rotinas (programas),M-files ou scripts. 
 
No uso de programas (rotinas) convém observar: 
 Um programa é uma sequência de comandos do MATLAB. 
F V
 R = A + B 
 Início 
Ler Ae B 
R= A + B 
A > B 
R= A - B 
ImprimirR 
 Fim 
 
Página 52 
 
 Toda comunicação com o usuário e feita através da janela command Windows, quer 
seja solicitando dados, quer seja fornecendo resultados. 
 Podem ser executados e editados quantas vezes forem necessárias. 
CONSTRUINDO UM PROGRAMA 
 
As rotinas devem ser criadas e editadas em um editor. A janela do editor se abrirá através do 
caminho:File → New → Script. Será apresentada a janela: 
 
 
 
 
 
 
 
 
 
 
Os comando serão digitados linha a linha e as linhas serão numeradas automaticamente. 
Após a digitação a rotina deve ser salva. Para salvar, escolha, no menu, o caminho 
File → save as... Escolha a unidade e atribua um nome para a rotina. 
Se não for explicitado um caminho para o salvamento, ele será realizado na pasta default do 
MATLAB:c:\matlab7\work. É neste diretório que a rotina é procurada quando solicitada a sua 
execução, a menos que tenha sido realizada uma configuração personalizada. 
Na escolha do nome da rotina não pode ser usado o nome de comandos ou funções nativas do 
MATLAB e nem o nome de variáveis declaradas pelo usuário. 
Observe, finalmente, que as linhas iniciadas pelo símbolo% não são consideradas na 
execução. Por esta razão geralmente o símbolo é usado para incluir descrição e comentários 
na rotina. 
 
Exemplo:Calcular a média das notas obtidas por um aluno, na disciplina, no final do ano. 
Solução: 
Os comandos deverão ser digitados 
aqui, linha por linha. As linhas serão 
numeradas automaticamente e para 
passar de uma linha para outra tecle 
enter. O editor possui propriedades 
semelhantes ao word. 
Número 
da linha. 
 
Página 53 
 
A análise e o respectivo algoritmo já foram apresentados anteriormente. 
A digitação, na janela do editor, obedeceu à sequência apresentada no algoritmo. 
Foi escolhido o caminho default para salvar e atribuímos o nome “media” para o arquivo. 
Veja a janela após a digitação: 
 
 
 
 
 
 
 
 
 
 
 
 
Para executar o programa digitamos o nome do arquivo no command Windows. 
 
 
 
 
 
 
 
 
 
 
Página 54 
 
 
 
 
ENTRADA DE DADOS EM UMA ROTINA 
 
Para executar uma rotina as variáveis usadasdentro do arquivo devem ser inicializadas. Essa 
inicialização (atribuição de um valor) pode ser feita de três modos: 
a)Dentro da própria rotina - A variável é declarada e inicializada dentro da própria rotina. 
Foi o caso no exemplo acima. O inconveniente é que se for desejado rodar a rotina com 
valores diferentes, o arquivo deve ser editado e os novos valores fornecidos para as variáveis 
ali constantes. 
b)Na janela do Command Windows- Neste caso, as variáveis são inicializadas antes de 
chamar a rotina para execução. 
No exemplo anterior o problema seria elaborado:no editor 
 
 
 
 
 
 
 
 
 
No Command Windows, inicializa-se cada variável e só após é solicitada a execução da rotina. 
 
 
 
 
 
Variáveis não 
inicializadas no 
arquivo. 
Inicializando as 
variáveis que serão 
usadas na rotina. 
Solicitando a 
execução da rotina 
 
Página 55 
 
 
 
 
c)O usuário é solicitado a forneceros dados quando inicia-se a execução. Neste caso, usa-se a 
função input() para solicitar ao usuário a entrada do dado. Essa função ocasiona uma 
interrupção temporária da execução da rotina para que possa ser fornecido o dado e a 
execução é continuada após teclar enter. 
O novo arquivo para o problema anterior ficaria assim 
 
 
 
 
 
 
 
 
 
 
 
No command Windows, quando solicitada a rotina, imediatamente haveria uma parada e a 
janela se apresentaria da seguinte forma: 
 
 
 
 
 
 
 
A função input 
usada para receber 
dados. 
 
Página 56 
 
 
 
 
Após a entrada de todos os valores solicitados, a janela estaria da forma seguinte: 
 
 
 
 
 
 
 
 
 
 
 
No exemplo, os valores dos dados foram atribuídos um a um. Existem formas de se proceder 
a entrada dos dados na forma de matriz, como se verá mais adiante. Também é possível dar 
entrada de strings usando input. 
 
O COMANDO DE SAÍDADISP() 
 
O camandodisp() é utilizado para apresentar texto (mensagens) na tela ou para apresentar o 
conteúdo de uma variável. 
Forma geral: 
No caso do exemplo que tem sido o modelo até aqui, poder-se-ia emitir uma mensagem 
informando do que se tratava o resultado apresentado. 
 
 
disp(‘texto’) ou disp(nome da variável) 
A mensagem que 
apareceria na janela 
 
Página 57 
 
 
 
 
Outras funcionalidades do disp podem ser vistas na bibliografia. 
 
OPERADORES LÓGICOS 
 
Um operador lógico é utilizado para combinar resultados de expressões lógicas cujo resultado 
sempre será V (verdadeiro) ou F (falso). 
Os operadores lógicos são: 
OPERADOR 
SINAL NO 
MATLAB 
DESCRIÇÃO 
AND(E) & 
RetornaV se todos os operandos forem verdadeiros. 
Caso contrário retorna F 
OR (OU) | 
RetornaV se pelo menos um dos operandos for 
verdadeiro. Caso contrário retorna F 
NOT(NÃO) ~ 
É um operador unário. Ele inverte o resultado do 
operando. Se o operando é verdadeiro, o operador 
retorna F.Se o operando é falso, o operador retorna V. 
 
Analise o resultado em cada linha: 
Operando 1 operador 
Operando 
2 
resultado 
V AND V V 
V AND F F 
F AND F F 
F AND V F 
V OR V V 
V OR F V 
F OR F F 
 NOT V F 
 NOT F V 
 
 
Página 58 
 
EXEMPLO:Considere três variáveis inicializadas com os valores:A = 1 ; B = 10 e C = 6. 
Preencha a coluna corresponde a resultados, na tabela abaixo: 
 
 
EXPRESSÃO RESULTADO 
(A == B)& (B > C) 
(A <> B)& (B == C) 
(A<> B)& (B < C) 
(A < C)| (B < C) 
(A > C)| (B <> C) 
~ (A < B) 
~ (B < C) 
 
 
SENTENÇAS CONDICIONAIS 
 
As sentenças condicionais são estruturas que permitem ao MATLAB efetuar desvios na 
sequência do programa, optando por um ou outro conjunto de comandos ou até mesmo repetir 
um grupo de comandos um número finito de vezes. A decisão é determinada pelo resultado 
(verdadeiro ou falso) de uma operação lógica. 
Estas estruturas podem ser divididas em dois grupos:estruturas de decisão e estruturas de 
repetição. 
 
ESTRUTURAS DE DECISÃO 
Uma estrutura de decisão envolve uma sentença lógica e, de acordo com o resultado o 
programa decide por realizar um conjunto de comando ou um outro. 
 
ESTRUTURA IF-END 
A principal estrutura de decisão corresponde ao se já comentada em operadores lógicos. A 
estrutura fornece opção para o fluxo da execução de uma rotina. 
 
Página 59 
 
A rotina em execução, ao encontrar uma sentença if verifica se ela é verdadeira ou falsa. No 
caso de ser verdadeira, a rotina executa os comandos entre o if e o end. Caso contrário, ela não 
considera esses comandos e executa aqueles abaixo de end. 
 
 
FLUXOGRAMA ESTRUTURA NA LINGUAGEM 
 
 
 
 
 
 
 
 
 
 
 
Exemplo:Considere o exemplo de determinar a média anual de um aluno do curso. Imprimir 
o resultado “aprovado” se a média for maior ou igual a 7.0. 
Solução: 
Após a análise e a 
construção 
do algoritmo, 
a digitação 
seria: 
 
 
 
 
V 
F 
Fim do if 
comandos 
If(sentença) 
> B 
...................... 
......................programa do MATLAB 
...................... 
If expressão condicional 
Comandos 
end 
...................... 
......................programa do MATLAB 
...................... 
 
 
Página 60 
 
 
 
 
 
 
 
 
Digite a rotina, salve-a e proceda a sua execução. Analise o resultado em diversas situações. 
 
A ESTRUTURAIF – ELSE - END 
Esta estrutura é uma variação da estrutura acima. Ela acrescenta a opção de realizar a 
execução de um novo conjunto de comando. Quer seja na primeira opção, quer seja na 
segunda, após a realização a rotina passa para os comandos após o end. 
 
 
 
 
 
 
 
 
 
Exemplo:Suponha a situação do exemplo anterior. Se a média for igual ou maior do que 7 
emitir a mensagem “aprovado”. Caso contrário emitir a mensagem “não aprovado”. 
Solução: 
A análise e o algoritmo correspondentes podem ser construídos. A rotina teria a forma: 
V F 
comandos 
Ifsenteça 
comandos 
 Fim 
comandos 
........... 
............comandos 
............ 
Ifsentença 
 Comandos 
Else 
 Comandos 
Fim 
.............. 
..............comandos 
............... 
 
Página 61 
 
 
 
 
 
 
 
 
 
É possível aninhar 
vários if-else- end. 
Como isto ocorrerá 
depende da situação 
envolvida na análise e 
algoritmo. 
Entretanto, um em particular deve ser citado. 
 
ESTRUTURAIF - ELSEIF – ELSE - END 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fim 
V F 
Ifsenteça 
comandos 
comandos Ifsenteça 
comandos 
F 
V
F 
Observe que no caso de falso 
no primeiro if, e só então, um 
novo if é executado. 
 
Página 62 
 
Exemplo:Considere o caso da média de aluno.Deseja-se que sejam emitidas mensagens de 
que ele foi aprovado, está em exame ou ainda reprovado. 
Solução: 
Sabe-se que se a média for igual ou superior a sete, o aluno está aprovado. Se, entretanto, for 
inferior a sete, mas igual ou superior a quatro, o aluno está em exame final e, finalmente, se 
for inferior a quatro então o aluno está reprovado (no que diz respeito a notas). 
 
Realizada a análise e construído o algoritmo, o resultado seria uma rotina da forma: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
É bom lembrar que são várias as possibilidades de aninhar sentenças if – elseif – end. Desta 
forma é possível efetuar vários testes dentro de um único programa. 
 
ESTRUTURAS DE REPETIÇÃO 
Além das estruturas de decisão, existem na linguagem MATLAB (e demais linguagens) as 
estruturas de repetição. Estas servem para proporcionar oportunidade para que uma rotina 
 
Página 63 
 
execute várias vezes um mesmo conjunto de comandos sem a necessidade de reescrevê-los 
em igual número de vezes. São conhecidos também porLOOPS ou LAÇOS. A cada 
repetição do laço é chamada passo e em cada passo pelo menos uma variável é modificada. 
Essa variável deve ser quem controla o encerramento do laço. O laço deixa de ser executado 
quandoessa variável deixar de satisfazer uma condição definida para esse fim. 
Dois tipos de laços estão presentes no MATLAB: for – ende while - end . Ambos obedecem 
ao mesmo conceito inicial de ser interrompido quando a condição de controle seja falsa. 
Entretanto, existe o comandobreak que interrompe a execução, em ambos os casos, a 
qualquer momento em que for desejável. 
 
A ESTRUTURAFOR - END 
A principal característica deste laço é que deve ser previamente conhecido o número de vezes 
que se deseja repetir o conjunto de comandos. O laço tem a seguinte forma: 
 
 
for i = a: k : b 
 Comandos 
end 
 
 
Algumas considerações e regras acerca da estrutura: 
 O nome da variável-índice é atribuído pelo programador e pode ser qualquer. Em geral 
atribui-se as letras i , j, k , m ou n, tomando-se o cuidado de, se a programação 
envolver número complexo, evitar a atribuição de i e j. 
 Sobre o funcionamento, a variável assume o valor inicial ( a , no caso) e executa o 
primeiro passo, retornando ao início do loop quando recebe o incremento de valor k e, 
se i ainda for menor ou igual ao valor b o loop volta a ser executado. O processo se 
repete até que i fica maior do que o valor b, quando o fluxo deixa de executar os 
comandos no interior do loop e passa ao primeiro comando após o end. 
 O incrementok pode ser negativo. 
 Todo laço for deve terminar com um end. 
 O valor dei não pode ser redefinido pelos comandos no interior do laço. 
 O valor dek ao final da execução é o último valor que ela recebeu, e pode ser usado 
após o término do laço. 
i é o índice 
controlador do 
loop. 
Valor inicial dei 
k é o incremento que i sofrerá a 
cada passo, após o primeiro. 
bé o valor que i terá ao 
executar o último passo. 
 
Página 64 
 
Exemplos: 
1.- Efetuar uma rotina que efetue a soma dos n primeiros número naturais, onde n é 
fornecido pelo usuário no início da execução da rotina. 
Solução: 
O que se deseja é determinar 𝑠 = 𝑘𝑛1 com n conhecido. Um algoritmo para o problema: 
Início 
Ler n 
S = 0; 
Para k = 1até n 
S = S+k 
ImprimirS 
Fim 
 
Para escrever a rotina, vamos usar ofor-end uma vez que é conhecido o número de vezes que 
o laço de repetição é executado. A rotina seria: 
 
 
 
Inicialização da variávelS. 
Igual a zero para não interferir 
no resultado da soma. 
 
Página 65 
 
 
 
 
 
 
 
 
 
Execute o programa com diversos valores den (natural) e confira os resultados. 
Exercícios: 
1.- Escreva uma rotina que calcula o produto dos n primeiros números naturais. 
Obs:veja que, neste caso, a inicialização da variável deve ser para o valor 1. 
O problema é equivalente a determinar o valor den! 
 
2.- Escreva uma rotina que determina o valor de P = 
 −1 𝑘 𝑘
2𝑘
𝑛
1 para um valor n a ser 
fornecido pelo usuário. 
 
3.- A função f x = ex pode ser representada (em série de Taylor) por ex = 
𝑥𝑛
𝑛 !
∞
𝑛=0 . 
Escreva uma rotina que calcula o valor da aproximado para a função, para x = 2, considerando 
os 6 primeiros termos da série,. 
Sugestão:Uma análise do problema deve levar em consideração: 
Deseja-se o valor da função para x = 2. 
O problema solicita a soma dos seis primeiros termos, o que nos leva a iniciar o for-end com 
n = 0 e terminar com n = 5). 
 
A ESTRUTURAWHILE - END 
 
 
Página 66 
 
O comando while-end realiza um trabalho semelhante ao for-end. A diferença está no fato de 
ele realizar o laço quando o número de repetições não é conhecido antecipadamente. 
A exemplo das demais estruturas de repetição, após o while existe uma condição lógica que, 
para a execução do laço deve ser verdadeira quando o fluxo de execução encontrar o while 
pela primeira vez. Neste caso são executados os comandos existentes no laço até que o end 
seja encontrado. O fluxo volta ao while e verifica novamente se a condição é verdadeira ou 
falsa. Observe que, se não houver alteração da condição lógica a execução do loop nunca será 
interrompido. É obrigatória a existência de alteração de pelo menos uma variável presente na 
condição lógica para que, em algum momento, expressão lógica venha a ter valor falso. 
 
A estrutura tem a seguinte construção: 
while<expressão> 
.................. 
..................comandos 
.................. 
end 
 
Exemplos: 
1. Escrever uma rotina para determinar todos os números pares positivos menores ou iguais a 
31. Apresentar o resultado na forma de matriz. 
Solução: 
Uma análise do problema: 
Sabe-se que os números pares positivos são aqueles múltiplos de 2. Portando o problema 
consiste em determinar os números positivos múltiplos de 2 e menores do que 31. Isto 
significa que o primeiro elemento é igual a 2 e o último igual a 30. 
É conveniente usar um loop para realizar o trabalho. Não se sabe quantas vezes o loop deve 
ser executado e, portanto, deve-se usar o while-end. 
Deseja-se apresentar o resultado na forma de matriz, por isto é bom lembrar que os elementos 
de uma matriz podem ser referenciados através de índices. Se a matriz é designada porx, 
então seus elementos podem ser referenciados por x(i), com i variando de 1 até o número de 
elementos que formam a matriz. 
 
 
Página 67 
 
 
 
 
 
 
 
 
 
Diagrama de blocos 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A<= 30 
Imprimir 
A 
FIM 
A = 2*i 
i = i + 1 
x(i) = A 
+ 1 
INICIO 
i = 1 
A= 2 
i = 1; 
A = 2; 
while A <= 30 
x(i) = A; 
i = i + 1; 
A = 2*i; 
end 
disp(x) 
A identação não é 
obrigatória, mas é 
aconselhável. Facilita 
o entendimento e 
possíveis correções. 
 
Página 68 
 
 
 
 
 
 
 
 
 
Veja a rotina no editor do MATLAB 
 
 
 
 
 
 
 
 
 
 
 
A execução no Command Windows: 
 
Página 69 
 
 
 
Exercício:A funçãof x = ex pode ser representada (em série de Taylor) por 
ex = 
𝑥𝑛
𝑛 !
∞
𝑛=0 . Escreva uma rotina que calcula o valor da aproximado para a função, para 
x = 2, considerando a soma dos termos cujo valor seja menor do que 0.00001. 
Sugestão:Uma análise do problema deve levar em consideração: 
Deseja-se o valor da função para x = 2. 
O problema solicita a soma dos termos,cujo valor seja menor do que 0.00001. Isto significa 
que não se sabe o número de laços que devem ser executados, o que ocasiona o uso do while-
end. 
Note ainda que o primeiro termo da série (n=0) é igual a 1. 
 
OBSERVAÇÕES IMPORTANTES 
 
1.- As sentenças condicionais podem fazer uso dos operadores condicionais. Isto significa 
que a expressão no for, por exemplo, pode ser do tipo:A & B ou A | B ou (~A & B) | C , 
para citar apenas alguns exemplos. 
2.- Os loops podem ser aninhados. Isto quer dizer que é possível estabelecer umfor-end 
dentro do laço de outro for-end (e tantos quantos forem necessários), ou ainda for-end dentro 
do laço de um while-end , ou, ao contrário, while-end dentro de for-end. Além de outras 
combinações usando o if-end ou if-else-end, se for o caso. 
3.- Além disso, é útil lembrar que as rotinas podem “chamar” ou carregar qualquer função 
nativa do MATLAB, como exp() , abs(), sin(), para citar algumas. 
 
Página 70 
 
4.- Finalmente, é bom saber que existe um comando break que, quando inserido no laço de 
um comando de repetição, ocasiona a saída incondicional do loop. Ao encontrar o break, o 
fluxo do programa é dirigido para o primeiro comando após o end do loop, saindo do laço. O 
uso do break é útil quando se deseja interromper o loop mesmo com a condição de controle 
tendo sido satisfeita. 
Por exemplo, no exercício que foi enunciado acima, mesmo que a condição de parada não seja 
atendida, mas um número máximo de execução do laço, previamente estipulado, for 
alcançado. 
 
Exemplos: 
 
1.- Dada uma matriz de ordem nxm criar uma rotina que determina a soma de todos os 
elementos da matriz que sejam positivos e menores do que 10. 
Solução: 
Uma análise do problemafornece as seguintes informações: 
 Sabe-se que uma matriz de ordemnxm indica que a matriz terá n linhas e m colunas. Se a 
matriz for designada porA os seus elementos podem ser referenciados por A( i , j ) com i 
variando de 1 a n e j variando de 1 a m. 
É necessário ter a matriz definida antes ou ser definida na execução da rotina. O programador 
pode decidir. Para esse programa, a matriz será fornecida antes da rotina ser chamada. 
A rotina deve verificar se cada elemento é menor do que 10 e, o sendo, soma-lo aos demais 
elementos que satisfizerem a mesma condição. 
Para percorrer todos os elementos da matriz tornar-se-á necessário fazer uso de dois 
contadores. Um deles percorrendo o índice que representa a linha e o outro o índice que 
representa a coluna do elemento. Como conhecemos os valores de n e de m (ordem da 
matriz), é possível usar, em ambos os casos o comandofor-end. 
Lembre-se de que se o acréscimo no contador para o for é igual a 1 ele não precisa ser escrito 
na declaração. Basta colocar o valor inicial e o final, separados por dois pontos. 
Após elaboração do diagrama e do algoritmo, o programa ficaria assim. 
 
 
Página 71 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2.- Escrever uma rotina que resolva tantas equações do segundo grau quantas forem desejadas 
pelo usuário. 
Solução: 
A análise do problema resulta nas observações: 
Para resolver várias equações é necessário que o usuário entre com os coeficientes da equação 
e precisa fazê-lo de forma que possa repetir o processo. Isso leva à existência de um controle 
do fluxo sob a responsabilidade do usuário. A existência de um loop que, após cada 
realização, solicita ao usuário se deseja ou não resolver outra equação. 
Na solução de uma equação do segundo grau é necessário observar que o coeficiente principal 
não pode ser nulo ( a ≠ 0). O discriminante deve ser não negativo ( delta ≥ 0 ). Esta condição 
obriga a emitir uma mensagem se a condição não for satisfeita para informar ao usuário que 
não existem raízes reais e resolvê-la em caso contrário. 
Veja um diagrama de Blocos (Fluxograma) do problema. Poderia ser montado de outras 
formas além da apresentada. 
 
Veja a diferença na apresentação 
dos dois for. Em um consta o 
acréscimo do contador e no outro 
não. 
 
Página 72 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
V
F 
Não existem 
raízes reais 
Mensagema 
≠ 0 
Cálculode D 
F
F 
Lera , b , c 
a == 0 
Apagar tela 
F
V
F 
início 
Flag = 1 
Flag == 0 
V
F 
V
F 
D < 0 
 
Página 73 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A 
roti
na 
em 
MA
TL
AB 
fica
ria 
assi
m: 
 
 
 
 
 
 
Página 74 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Neste exemplo o problema foi resolvido com o uso de while-ende if-else-end , inclusive 
aninhando alguns. 
Observe que houve alguma modificação após a construção do fluxograma. Antes da leitura 
dos coeficientesb e c, foi realizado o teste com o coeficiente a e somente se a for não nulo 
a rotina continua a ser executada. 
Foi declarada e inicializada uma variável com o nome de flag apenas para definir se o 
programa deve ser executado novamente ou se encerrado. A rotina não é executada apenas se 
flag for igual a zero. Note que ao final é solicitada a informação de continuar ou parar. No 
caso de parar deve ser digitado o número zero. Qualquer outra resposta o problema continua, 
visto que o valor digitado é armazenado exatamente em flag. 
 
FUNÇÕES 
No MATLAB existem várias funções nativas que podem ser usadas para cálculos diversos, 
como sin(x) , cos(x) , sqrt(x) , exp(x) e várias outras, como já foi citado. 
Função (sqrt )nativa do 
MATLAB. Calcula a raiz 
quadrada do argumento. 
 
Página 75 
 
Além disto, é possível a criação de funções próprias do usuário para efetuar algum tipo de 
cálculo para o qual não existe função nativa, e cujo uso ocorre da mesma forma como as que 
existem no MATLAB. 
 
ESTRUTURA DE UMA FUNÇÃO 
Uma função é construída no mesmo ambiente em que criamos as rotinas, que é o editor do 
MATLAB. 
 
DECLARAÇÃO DA FUNÇÃO 
Toda função deve ser declarada, no editor, na primeira linha. Essa declaração é elaboradada 
sequinte forma: 
function<argumentos de saída> = nome da função( parâmetros) 
 
A palavrafunction é obrigatória e a caracteriza como função. 
Argumentos de saídaé o elemento que referencia algum resultado que for necessário utilizar 
no futuro (outra função ou outros cálculos) e que a função disponibilizará ao final da 
execução, e devem ser referenciados entre colchetes quando for mais de um valor. 
Segue-se o sinal de igual e nome da função. Esse nome da função é a forma como ela será 
referenciada quando da solicitação da execução, e deve ser sempre sucedido de um par de 
parênteses (obrigatório). 
Parâmetros são os valores que se deseja informar e que serão utilizados como variáveis na 
execução. Os parâmetros não são obrigatórios, mas é uma forma de se enviar dados para a 
função, além da possibilidade de se proceder à leitura dos dados no interior da função, como 
foi realizado nas rotinas. 
Pelo que se conclui então é que ao declarar uma função: 
Define o arquivo a ser construído como sendo uma função, o que a torna diferente da rotina. 
Estabelece o nome da função. 
Define o número de variáveis de entrada e a sua ordem. 
Especifica se a função retornará algum valor, quantos são eles e o tipo das variáveis de saída. 
 
 
Página 76 
 
CORPO DA FUNÇÃO 
Uma função, logo após ter sido declarada, podem ser incluídas linhas de comentários 
iniciadas pelo símbolo% e tem as mesmas características de quando foram estudadas as 
rotinas. 
O código do programa a ser executado pode conter cálculos, inicialização de variáveis, as 
funções nativas do MATLAB, os operadores lógicos e as expressões lógicas, além das 
estruturas de fluxo do programa (if, for, while, além de outros não mencionados aqui). Devem 
ser obedecidos os mesmos critérios estabelecidos para o caso de rotinas. 
 
SALVANDOE EXECUTANDO UMA FUNÇÃO 
 
O arquivo construído para uma função será salvo com a mesma extensão usada para as 
rotinas: .m e é atribuída pelo próprio MATLAB. Também o diretório onde é salvo, o 
MATLAB já oferece uma primeira opção, que é a pastawork, conforme já foi comentado. 
Nada impede, entretanto, que seja direcionado para outro local, escolhido pelo programador, 
desde que sejam tomadas as providências para que ele tenha a sua localização informada para 
o MATLAB. 
Para executar a função basta fazer referência ao seu nome na janela do Command Windows, 
ou dentro de uma rotina ou ainda dentro de uma outra função, indicando, sempre, os 
parâmetros de entrada que constam da sua definição. 
Pelo que se observa, uma rotina e uma função são muito parecidas. Isto é verdade. 
Entretanto algumas diferenças são significativas: 
A primeira linha de uma função, a linha de declaração da função, é obrigatória. Nas rotinas 
essa primeira linha não é exigida. 
Uma função pode fazer receber dados de entrada, através dos parâmetros de entrada 
(argumentos) e podem retornar dados para o argumento de saída, enquanto uma rotina não 
goza dessas características. 
 
Exemplo: 
Elaborar uma rotina que determina o ponto extremo de uma função do segundo grau, da 
forma 𝑓 𝑥 = 𝑎 𝑥2 + 𝑏 𝑥 + 𝑐. 
Solução: 
 
Uma análise do problema esclarece que: 
 
Página 77 
 
É solicitado o PONTO extremo da função, o que ocasiona a determinação da abscissa e da 
ordenada do ponto. Isto significa que o parâmetro de saída é um par ordenado. 
O valor do coeficientea não pode ser nulo. 
Além disso, é o valor dea que determina se a concavidade da curva está voltada para cima ou 
para baixo, indicando se o valor da função é, respectivamente, mínimo ou máximo. 
Finalmente, é sabido que a abscissa do vértice é dado por 𝑥𝑣 = 
𝑏
2𝑎
e a ordenadapor 𝑦𝑣 =
 − 
∆
4𝑎
 onde ∆ representa o discriminante. 
Poder-se-ia estabelecer um fluxograma (diagrama de blocos) para o problema. 
A função teria o seguinte aspecto: 
 
 
 
 
 
 
 
 
 
 
 
 
Para executar a função poder-se-ia proceder como aparece no Command Windows abaixo. 
 
 
 
Página 78 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Página 79 
 
Como já foi afirmado, é possível “chamar” uma função através da rotina de uma primeira 
função. Para exemplificar este fato, considere o mesmo problema acima. 
Proceda a criação de uma função, que se dará o nome de graf, e que terá como argumentos de 
entrada os coeficientes da função do segundo grau e o valor da abscissa do ponto extremo, 
que já teria sido calculada na função maxmin. 
Esta função teria como trabalho traçar o gráfico da função, considerando pontos antes e 
depois do vértice (ponto extremo da função) da parábola. 
Construída, esta função teria a forma: 
 
 
 
 
 
 
 
 
 
 
 
Como se verá, os coeficientes da função do segundo grau foram designados pora , b e c, e 
assim foram tratados na função maxmin. São esse valores que serão passados como 
parâmetro para a função graf. Nesta função eles serão tratados por m , n e r, respectivamente, 
em todos os cálculos que envolverem os coeficientes. 
Não que isto seja obrigatório. Poder-se-ia continuar designando eles por seus nomes de 
origem, mas não é obrigatório. Em cada função, as variáveis recebem os VALORES e dão a 
eles a designação própria da função. Este procedimento não causa nenhum inconveniente ao 
resultado. 
Neste momento, proceda a uma alteração na função maxmin, acrescentando a “chamada” 
para a função graf. 
Esta alteração daria o seguinte aspecto à função maxmin. 
Parâmetros da função. Os 
primeiros são os coeficientes e o 
último é o valor da abscissa do 
vértice. 
 
Página 80 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Ao executar, a partir do Command Windows a função maxmin, fornecendo os coeficientes da 
função do segundo grau, a função calcula o ponto extremo, informa-o na janela e solicita a 
execução da função graf, informando como parâmetros os mesmos coeficientes que recebeu e 
um valor calculado no corpo da função maxmin (p) e que representa o valor da abscissa no 
ponto extremo. 
Executado o programa, ele apresentaria o seguinte resultado: 
 
 
 
 
 
 
 
 
 
A única alteração:incluir uma 
“chamada” para a função graf, 
informando os parâmetros 
solicitados: a , b e c, além do 
valor de p, que é a abscissa do 
vértice. 
 
Página 81 
 
REFERÊNCIAS BIBLIOGRÁFICAS 
 
1. Cecílio, Waléria Adriana Gonçalez, Introdução ao Matlab, Apostila – Curso de 
Extensão – PUCPR, 2010. 
2. HANSELMAN, Duane e LITTLEFIELD, Bruce. Matlab5 Versão do Estudante, Ed. 
Makron Books: São Paulo, 1999. 
3. Universidade do Estado do Rio de Janeiro - Programa Prodenge / Sub-ProgramaReenge. 
Introdução à Solução de Problemas de Engenharia, Apostila de.

Outros materiais