Você está na página 1de 58

1

Apresentação
O software MATLAB® tem diversas aplicações na engenharia elétrica, como na
área de controle, simulação e resolução de quaisquer problemas matemáticos. Desta
forma, com o objetivo de suprir as carências do curso e auxiliar no conhecimento extra-
didático, o Programa de Educação Tutorial de Engenharia Elétrica (PETEL), da
Universidade Federal de Mato Grosso do Sul – UFMS, desenvolveu a Apostila de
Introdução ao MATLAB®.
Dentre todos os integrantes do grupo que prestaram apoio e assistência,
destacam-se os seguintes autores da obra:
 Fernanda Morais Balta;
 Giovana Oliveira Postingher;
 Lucas Gutierrez da Silva;
 Nicholas Delben de Andrade;
 Ruben Barros Godoy.

2
Sumário

1. Operações Gerais ................................................................................................... 4


2. Gráficos ............................................................................................................... 17
3. Polinômios .......................................................................................................... 22
4. Criação de scripts ................................................................................................. 31
5. Estruturas condicionais e laços ............................................................................ 38
6. Funções ............................................................................................................... 47
6. Gráficos tridimensionais e contornos .................................................................... 49
7. Extras ................................................................................................................... 52
8. Gabarito ............................................................................................................... 55

3
1. Operações Gerais

O principal objetivo deste capítulo consiste em habituar o leitor com o


MATLAB®, a fim de que o mesmo conheça sua interface e aprenda as principais
operações que são utilizadas como base para qualquer outra programação no software.
De forma geral, o MATLAB® possui um ambiente de trabalho de fácil manuseio,
utilizando uma linguagem matemática bastante padrão e uma interface sugestiva acerca
do que se é desejado.
Ao iniciar o software, o usuário identificará duas separações na tela principal,
sendo elas:
Command Window: chamada de “janela de comando” em tradução livre atua
como um ambiente em que o usuário pode efetuar operações de maneira rápida e direta;
Workspace: ambiente de memória, em que os dados inseridos no Command
Window ficam salvos, sendo possível visualizar sua classe, nome e valor;

O MATLAB® conta com uma ferramenta de ajuda aos seus usuários quando os
mesmos estão utilizando o Command Window. Para obtenção de tal ajuda, basta inserir
o comando help seguido do nome do comando a ser descoberto pelo usuário. Em
seguida, será exibida uma tela com uma explicação detalhada de como o comando pode
ser utilizado e qual a sua serventia.
1.1 Operações Algébricas
Dentre as muitas funções do MATLAB®, uma de suas mais comuns é a de ser
uma grande calculadora que efetua as mais diversas e complexas operações
matemáticas. Para ter uma boa relação com o software, é necessário compreender quais
os operadores e caracteres mais utilizados, sendo eles:

Atribuição ( = ): Utilizado na obtenção de novas variáveis, obtendo e


armazenando os valores inseridos pelo usuário.
Exemplo:

a = 300 %Atribui a variável “a” o valor de 300

4
Adição ( + ): Utilizado de forma a realizar a soma algébrica de dois ou mais
termos.
Exemplo:

300 + 500 %Calcula o valor da soma entre 300 e 500

Subtração ( - ): Utilizado de forma a realizar a diferença algébrica de dois ou


mais termos.
Exemplo:

300 - 500 %Calcula o valor da diferença entre 300 e 500

Multiplicação ( * ): Utilizado de forma a realizar o produto de dois ou mais


termos.
Exemplo:

300 * 500 %Calcula o produto entre 300 e 500

Divisão ( / ) ou ( \ ): Utilizado de forma a realizar o quociente de dois ou mais


termos, sendo / responsável pela divisão convencional e \ pela divisão invertida.
Exemplo:

300 / 500 %Calcula o quociente entre 300 e 500


300 \ 500 %Calcula o quociente entre 500 e 300

Potenciação ( ^ ): Realiza a potência entre termos.


Exemplo:

300^500 %300 é a potência de 500

* Quando inserido no programa uma equação com diversas operações


matemáticas, a ordem para cálculo de cada uma delas respeita a ordem das operações
aritméticas, sendo 1º Potenciação, 2º Multiplicação e Divisão, 3º Adição e Subtração. A

5
utilização de parênteses para indicar a ordem a ser realizada também é uma boa forma
de obter o resultado esperado.
clear Limpa todos os dados do Workspace

clc Limpa todos os dados do Command


Window

Ponto e vírgula ( ; ) Quando utilizado após alguma operação,


oculta o resultado de tal operação do
Command Window, fazendo com que o
mesmo somente fique memorizado no
Workspace
pi Representação do valor de π
Ponto ( . ) Utilizada para representações em números
decimais (*)

Comentários ( % ) O símbolo de % é utilizado antes de um


determinado comentário feito pelo
usuário, assim, tudo o que for escrito após
a utilização da % não será armazenado na
memória do programa

Exemplo (*):

2.5 + 5.2 %Calcula a soma entre os números 2,5 e 5,2

A seguir, estão listadas as principais funções e seus respectivos comandos:


* Toda função possui seu argumento. Da mesma forma, para representação de
uma função no Matlab®, é necessário escrever a função e o argumento da mesma
dentro de parênteses.
Módulo ( abs ): módulo ou valor absoluto.
Exemplo:

abs (-4) %Calcula o valor em módulo de -4.

Ângulo ( angle ): ângulo de fase.


Número inteiro ( round ): arredonda para o número inteiro mais próximo.

6
Números Imaginários ( i ) ou ( j ): Representa a unidade imaginária √−1 na
forma retangular.
Exemplo:

z = 4 + 7j %Representa o número real 4 com a parte imaginária 7


z = 50 - 6i %Representa o número real 50 com a parte imaginária -6

* Para converter um número imaginário da forma retangular para a forma polar,


utilizamos a função angle(x)*180/pi para calcular o ângulo de um número complexo e a
função abs(x) para calcular o valor absoluto de um número complexo.
Exemplo: Converter o número complexo retangular 25+9j em polar.

Exponenciação ( exp ): Calcula a exponencial de base e.


Exemplo:

exp(2) %Calcula 𝑒 2

Logaritmo ( log10 ): Calcula o logaritmo na base 10.


Exemplo:

log10(2) %Calcula log( 2)


log(2) %Calcula ln( 2)

Ln ( log ): Calcula o logaritmo na base e.


Raiz Quadrada ( sqrt ): Calcula a raiz quadrada.

7
Exemplo:

sqrt(4) %Calcula √4.

As funções trigonométricas são representadas por:


Seno sin
Cosseno cos
Tangente tan
Arco seno asin
Arco cosseno acos
Arco tangente atan
Seno hiperbólico sinh
Cosseno hiperbólico cosh
Tangente hiperbólica tanh

* O argumento deve ser inserido em radianos. Para converter para graus, basta
inserir o argumento em graus, multiplicando o mesmo por pi e dividindo por 180.
Exemplo: Calcular o seno de 30º.

O software também permite a efetuação de cálculo diferencial e integral. Para


declarar o x como variável e podermos escrever a função em termos de x, utilizamos:

Em seguida, utilizamos as seguintes funções:

8
limit (F,x,x0) ou Limite da função F, quando a
limit (F,x0) variável x tende ao ponto x0
diff ((F),N) Derivada de ordem N da função F
int (F) Integral indefinida da função F
int((F),x0,x1) Integral definida da função F, do
ponto inicial x0 até o ponto final x1
dsolve(‘ED’,‘VI’) * Resolve a equação diferencial ED
com os valores iniciais VI

* Vale ressaltar que, em uma equação diferencial com a variável y, utilizamos as


seguintes terminologias:
D3y y’’’
D2y y’’
Dy y’
y y

Exemplo: Calcular derivada de ordem 3 e a integral de [-1,3] da função 𝑦 = 𝑥 5 −


8𝑥 2 .

Exemplo: Calcular o PVI (problema de valor inicial) 𝑦 ′ + cos(𝑡) ∗ 𝑦 = cos(𝑡),


𝑦(𝜋) = 2.

9
1.2 Operações Vetoriais e Matriciais

1.2.1 Representação de vetores


Um vetor representa uma classe de segmentos orientados, tendo módulo, direção e
sentido. Para expressarmos um vetor u = (x,y,z) no Matlab, utilizamos os colchetes [ ] e
inserimos em seu interior os termos a, b e c, somente os separando por um espaçamento
simples, da seguinte forma:

u= [x,y,z];

Outra maneira de representarmos um vetor é especificando quais os valores inicial


e final e especificando qual o incremento desejado. Assim, caso tenha um valor inicial
V0, um incremento I e um valor final Vf, insiro nos colchetes o V0, I e Vf, colocando
os dois pontos ( : ) entre cada um dos valores.
Desta maneira, caso queira um vetor T que represente a temperatura de um
calorímetro, com T0 = 27ºC e Tf = 47ºC, com incremento de 0,5ºC é possível
representa-lo da seguinte forma:

T = [27:0.5:47];

Caso o incremento do primeiro ao último termo seja de um em um, é possível


representar o vetor apenas inserindo o valor inicial e o final, separados por dois pontos
( : ). Utilizando o mesmo exemplo anterior, modificando o incremento para 1ºC, temos:

T = [27:47];

Outra forma de representar um vetor v é escolhendo os termos iniciais V0, final


Vf e quantidade de termos n no vetor. A representação do mesmo se da como:

v = linspace(V0,Vf,n);

10
1.2.2 Operação com vetores
Seja A um vetor com n termos. Para calcular o valor de n, utilizamos a função:
length (A).

Para calcular a norma de um vetor A, utilizamos: norm (A).


Sejam A e B dois vetores com mesma dimensão. Para calcular o produto escalar
entre eles, é utilizada a função: dot (A,B).
Por sua vez, para calcular o produto vetorial entre eles, a função utilizada é: cross
(A,B).

Exemplo: Seja A = [1 1 4] e B = [-1 2 2]. Calcule o ângulo entre eles, sabendo que
<𝐴,𝐵>
𝜃 = arccos (‖𝐴‖∗‖𝐵‖) .

1.2.3 Representação de matrizes


Um vetor é uma matriz que apresenta apenas uma linha ou uma coluna. Desta
forma, a representação de uma matriz genérica se dá de forma semelhante a de um
vetor. Para sua criação, serão inseridos os colchetes [ ] e, em seguida, os valores de cada
linha, separados por um ponto e vírgula ( ; ), desta forma:

u = [x1 y1 z1; x2 y2 z2; x3 y3 z3]


𝑥1 𝑦1 𝑧1
𝑥2 𝑦2 𝑧2
𝑥3 𝑦2 𝑧3

Para este tópico, denotaremos m para a quantidade de linhas e n para a quantidade


de colunas de uma matriz.
Para representarmos uma matriz identidade, utilizamos o comando: eye(m) ou
eye(n);

11
Para uma matriz composta por zeros (nula), utilizamos o comando: zeros(m,n);
Para uma matriz composta por números um, utilizamos o comando: ones(m,n);
Para uma matriz criada de forma aleatória pelo software, utilizamos o comando:
rand(m,n);
Agora, se o objetivo é criar uma matriz quadrada de forma randômica, utilizamos
o comando: magic(n) ou magic(m).

1.2.4 Operações com matrizes

Supondo que A e B sejam matrizes de dimensão 3x3 e 𝛼 um escalar. As operações


com matrizes podem ser representadas da seguinte forma:
Soma entre matrizes: Respeitando a dimensão das matrizes, podemos somar A e
B da seguinte forma: A+B.
1 2 3 5 9 2
Exemplo: Seja A = 4 5 6 , B = 13 18 3.
7 8 9 5 21 0

A soma entre elas é:

Soma entre matriz e escalar: Somando uma matriz A com um escalar 𝛼, é


equivalente a somar o escalar com cada termo da matriz, da seguinte forma: A + 𝜶.

12
1 2 3
Exemplo: Sendo A = 4 5 6 e 𝛼 = 2, calcule A + 𝛼.
7 8 9

Multiplicação entre matrizes: Para multiplicar matrizes termo a termo,


utilizamos a notação A.*B. Caso utilizemos a multiplicação convencional, entre linhas e
colunas, utilizamos A*B.
Exemplo: Utilizando as mesmas matrizes A e B do primeiro exemplo, mostre a
diferença entre a multiplicação convencional e a termo a termo.

Multiplicação entre matriz e escalar: Multiplicando uma matriz A com um


escalar 𝛼, obtemos como resultado todos os termos da matriz multiplicados pelo escalar,
e representamos essa multiplicação da seguinte forma: A* 𝜶

Exemplo: Multiplique a matriz A pelo escalar 𝛼 = 2.

13
Transposta de uma matriz: A transposta de uma matriz é obtida através da troca
entre linhas e colunas, assim, para obtemos tal matriz da seguinte forma: A’
Exemplo: Seja C uma matriz representando o produto entre A e B, calcule a
transposta de C.

Matriz elevada a um escalar: Para elevarmos termo a termo da matriz a um


escalar 𝛼, utilizamos A.^α. Para elevarmos uma matriz a um escalar,
convencionalmente, é como se estivéssemos efetuando multiplicações entre matrizes
quadradas, portanto, utilizamos A^ 𝛂.
Exemplo: Verifique a diferença entre a matriz A elevada a um escalar 2 e uma
matriz A elevada, termo a termo, a um escalar.

14
* O . é utilizado para que a operação seja efetuada em todos os termos da matriz.
Para encontrar um termo P de uma matriz A, utilizo a notação A (m,n). Desta
forma, encontro o termo que está na linha m e na coluna n.
O Matlab® também possui uma série de funções diretamente aplicada a matrizes.
Sendo A uma matriz genérica, considere as seguintes funções:
size (A) Calcula a dimensão de uma matriz, exibindo a quantidade
de linhas e colunas da mesma
sum (A) Calcula a soma dos elementos de cada coluna da matriz
prod (A) Calcula o produto de cada coluna da matriz
abs (A) Calcula o módulo de cada valor da matriz individualmente
mean (A) Calcula a média de cada coluna da matriz
median (A) Calcula a mediada de cada coluna da matriz
fliplr (A) Espelha as colunas da matriz
flipud (A) Espelha as linhas da matriz

inv (A) Calcula a inversa da matriz


sort (A) Ordena todos os elementos de cada coluna em ordem
crescente

15
max (A) Exibe o maior elemento de cada coluna da matriz
min (A) Exibe o menor elemento de cada coluna da matriz
det (A) Calcula o determinante da matriz
poly (A) Exibe o polinômio característico
diag (A) Exibe os elementos da diagonal principal da matriz
triu (A) Exibe a matriz com os elementos abaixo da diagonal
principal zerados
tril (A) Exibe a matriz com os elementos acima da diagonal
principal zerados
diag(diag(A)) Exibe a matriz com todos os elementos, exceto os da
diagonal principal, zerados

16
2. Gráficos

O MATLAB® possui uma incrível ferramenta de plotagem de gráfico


bidimensionais e tridimensionais através de vetores, sendo possível obtê-los em
quaisquer tipos de coordenadas ou escalas.

2.1 Gráficos Bidimensionais

Os gráficos bidimensionais são aqueles de duas dimensões, isto é, que utilizam


apelas as coordenadas X e Y de um plano cartesiano. Sendo X e Y vetores de mesmo
comprimento, os principais comandos para plotagem de gráficos bidimensionais são:

plot (X,Y) Plotar gráficos contínuos

subplot (m, n, p) Plota vários gráficos na mesma imagem,


dividindo a janela de gráficos em m
linhas e n colunas, sendo p a posição do
próximo gráfico a ser plotado

loglog (X,Y) Gráfico em escala logarítmica

polar (X,Y) Gráfico em coordenadas polares

bar (X,Y) Gráfico de barras

Exemplo: Plotar o gráfico da função 𝑦 = 𝑠𝑒𝑛(𝑥 ) + 2𝑥, no intervalo de [-10,10].

17
Existem algumas ferramentas específicas para configuração de cada gráfico,
facilitando sua visibilidade e compreensão:

figure (n) O n representa o número da figura a ser


gerada. Antes de plotar determinado
gráfico, utilizasse o comando, caso a
intenção seja gerar mais de uma figura,
sem apagar a anterior
hold on Utilizado para plotar mais de um gráfico
em uma mesma imagem. Após ser
inserido, tudo o que eu acrescentar ao
gráfico será adicionado na imagem já
gerada. Pode ser desativado com a
ferramenta hold off
title (‘Insira seu Título’) Gera um título ao gráfico, que deve ser
inserido pelo usuário no lugar do Insira
seu Título
xlabel (‘Título do eixo X’) Gera um título para o eixo X
ylabel (‘Título do eixo Y’) Gera um título para o eixo Y

18
grid Inserir linhas de grade

A cor e o estilo da linha também podem ser definidos pelo usuário. Para isso,
basta, no momento da plotagem, inserir entre aspas simples ‘ ’ a configuração desejada,
seguindo a seguinte estrutura:

plot (X,Y,‘estrutura desejada’)

A estrutura pode ser obtida através dos seguintes códigos:

Para cor:
r Vermelho
b Azul
g Verde
w Branco
k Preto
y Amarelo
m Lilás
c Azul claro

Para linha:
- Sólido
-- Tracejado
. Pontilhado
-. Tracejado e pontilhado
: Ponto duplo

Para pontos:
. Ponto

o Círculo

x X

+ Mais

* Asterisco

19
s Quadrado

p Estrela

^ Triângulo

v Triângulo invertido

Para inserir uma legenda ao gráfico utiliza-se o comando:

legend (‘legenda 1’, ‘legenda 2’, ... , ‘legenda n’)

Exemplo: Em um circuito em série com tensão 5V, resistência de 100 Ω e um


potenciômetro cuja resistência varia de 0 a 100 Ω a um passo de 5Ω, analise a corrente e
as tensões.

20
21
3. Polinômios

Polinômios de grau n são expressões algébricas do tipo 𝑃(𝑥) = 𝑎𝑛 𝑥 𝑛 +


𝑎(𝑛−1) 𝑥 (𝑛−1) +. . . +𝑎2 𝑥 2 + 𝑎1 𝑥 + 𝑎0 , formados por operadores matemáticos e
monômios. Esses, por sua vez, são o produto entre valores conhecidos e incógnitas.
Sendo o valor conhecido, denominado como coeficiente, e a incógnita, representada
comumente por letras, a parte literal. Como por exemplo:
Monômio 𝑝(𝑥): 4𝑥
Coeficiente: 4
Parte literal: 𝑥
Polinômio 𝑃(𝑥): 5𝑥 4 – 3𝑥 + 1
Coeficientes: 5, −3 e 1
Parte literal: 𝑥
Para trabalhar com os polinômios, o MATLAB® oferece uma gama de funções
próprias que tornam a manipulação deles mais rápida e prática. Mas para utilizá-las,
primeiro é necessário saber representar um polinômio dentro do programa.
Exemplo: Para criarmos um polinômio qualquer, devemos escrever seus
coeficientes em um vetor linha. Por exemplo, o polinômio de 4° grau: 6x4 – 2x3 +3 é
escrito da seguinte forma:

Note que os termos nulos devem ser explicitados e os coeficientes estão em ordem
decrescente dos graus de seus termos.
Outra forma de criar um polinômio é declarando uma variável simbólica, syms x,
e então escrevendo o por extenso, como segue o exemplo:

22
Esse recurso é importante pra utilizar algumas das funções do MATLAB® para
polinômios, porém atente-se aos exemplos que utilizarão desse recurso, pois quando se
declara uma variável simbólica, o seu polinômio também é simbólico e não funciona
com as funções mais comuns aos polinômios, portanto servem para visualização dos
resultados obtidos, para que possam ser posteriormente copiados para um polinômio
propriamente dito.
Sabendo criar um polinômio, resta conhecer as funções de manipulação deles.
A função roots(p) é utilizada para encontrar as raízes de um polinômio. Ou seja,
os valores para o polinômio p quando é igualado a zero:
Exemplo:

Já a função poly(r), onde r é o vetor que contém as raízes de p, gera o vetor com
os coeficientes desse polinômio.
Exemplo:

Observe que essa função retorna o coeficiente do termo de maior grau sempre
sendo 1, ou seja, todos os outros coeficientes estão divididos por ele.
A função polyval(p,a), sendo a um número qualquer, dá o valor do polinômio p
para a.
Exemplo:

23
Ainda, caso a seja um vetor, essa função retornará o resultado do polinômio para
todos seus valores:
Exemplo:

Em todos, os casos, representamos os polinômios como um vetor, entretanto, no


âmbito da álgebra linear, toda matriz quadrada detém um polinômio característico, que é
utilizado para calcular os autovalores e auto vetores da matriz, os quais indicam as
propriedades essenciais dessa mesma matriz. Para fazê-lo no MATLAB®, basta utilizar
a função poly(A), onde A é uma matriz quadrada.
1 2 3
Exemplo: Seja a matriz 𝐴 = [4 5 6], o polinômio característico dessa matriz é
7 8 9
dado por

1−𝜆 2 3
𝑑𝑒𝑡([𝐴] − 𝜆[𝐼]) = | 4 5−𝜆 6 | = 𝜆3 − 15𝜆2 − 18𝜆.
7 8 9−𝜆

24
3.1 Operações Básicas

Não há uma função específica para a soma dos polinômios. Por serem
representados por seus coeficientes, obedecem a soma de vetores. Contudo, para que
somente os coeficientes de termos de mesmo grau sejam somados entre si, devem ser
adicionados “zeros à esquerda” do polinômio de menor grau.

Exemplo:

Já para a multiplicação, não utilizamos nem a multiplicação de matrizes nem a de


produto interno oferecidas pelo MATLAB®. Para multiplicar dois polinômios p e t,
utiliza-se a função conv(p,t), pois ela aplica a propriedade distributiva da multiplicação.
Para múltiplas multiplicações entre polinômios, basta aplicar a função repetidamente.
Exemplo:

Para a divisão de polinômios, o método da chave é o mais usual, nele, obtém-se o


quociente e o resto entre a divisão dos polinômios p e t. Multiplicando o quociente pelo
divisor e somando o resultado ao resto, o dividendo é encontrado. A função deconv(p,t)
retorna dois vetores ao usuário, o primeiro com os coeficientes do polinômio quociente
(q) e o segundo com os do polinômio resto (r).
Exemplo:

25
3.2 Expansão em fração parcial

Muitas vezes, as expressões como são apresentadas não são de fácil manipulação.
Para torná-las mais simples, um dos recursos matemáticos utilizados é a expansão por
frações parciais. Essa técnica é utilizada normalmente para o cálculo de integrais e de
Transformadas de Laplace. Observe o exemplo da razão entre dois polinômios:

𝐵(𝑠) 10𝑠 3 + 80𝑠 2 + 177𝑠 + 95 9 −7 −2


= = + + + 10
𝐴(𝑠) 𝑠 3 + 8𝑠 2 + 19𝑠 + 12 𝑠+4 𝑠+3 𝑠+1

Para utilizar a função que retornará as frações parciais, primeiro criam-se vetores
linha B e A com grau de A > grau de B contendo os coeficientes do polinômio do
numerador e os coeficientes do denominador, respectivamente. A partir deles, basta
utilizar a função residue(B,A) que resultará em 3 saídas que são vetores coluna,
conforme o exemplo:
Exemplo:

26
Criando vetores coluna com os coeficientes das frações parciais, pode-se utilizar a
mesma função para obter a razão polinomial que as originou.
Exemplo:

Desafio

2𝑠 2+5𝑠+7
Realize a expansão em frações parciais de 𝐹(𝑠) = (1+𝑠)(𝑠 2+2𝑠−2).

27
3.3 Ajuste polinomial

Também conhecido como regressão polinomial, é um método que a partir de uma


série de dados, declarados em pontos, ajusta esses mesmos pontos em um polinômio
com o grau requerido, podendo obter assim seus parâmetros. A função polyfit(x,y,n), no
qual x e y são os vetores contendo os valores a serem ajustados e n é o grau do
polinômio de ajuste.
Exemplo: Ajustar o polinômio p em curvas de grau 1 e 2:

Desafio

Considere a seguinte tabela de dados:

X -1 -0.75 -0.6 -0.5 -0.3 0 0.2 0.4 0.5 0.7 1


Y 2.05 1153 0.45 0.4 0.5 0 0.2 0.6 512 1.2 2.05

Faça um ajuste polinomial de com curvas de 2°, 4°, 6° e 8° graus. Então trace um
gráfico comparativo entre as funções de ajuste e os pontos dados. A partir do gráfico,
analise qual grau ajustado representa melhor a coletânea de pontos.

3.4 Derivação e integração polinomial

Para derivar e calcular uma integral indefinida com constante final de valor a de
um polinômio p são utilizadas, respectivamente, as funções polyder(p) e polyint(p,a).

28
A resposta é dada em um vetor linha dos coeficientes do resultado da derivação ou
integração, vide exemplo a seguir:
Exemplo:

Desafio

Integre 4𝜋𝑟 2 + 5𝑟 − 1 com k = 0. Derive 𝜋𝑟 2 . Some os dois resultados e indique


o polinômio resultante.

3.5 Composta e inversa

Para calcular a composta e a inversa de funções utilizando os métodos já


fornecidas pelo MATLAB®, é necessário criar funções da forma mostrada no tópico
“Polinômios”, escrevendo os polinômios por extenso, após declarar uma variável
simbólica. As funções compose(p,q) e finverse(p,x), com p e q sendo funções e x a
variável das quais dependem, calculam, respectivamente, a composta e a inversa de
funções:
Exemplo:

29
Observe que a resposta da composta entre as funções está simplificada, se for
necessário observá-la em sua forma completa, basta utilizar a função collect(c), sendo c,
a expressão simplificada:
Exemplo:

Desafio

Calcule a inversa g do polinômio 𝑦 = √2 − 𝑥 2 e então plote os gráficos de g, com g


recebendo os valores para x entre 0 e √2 com passos de 0,01.

30
4. Criação de scripts

De maneira simples, é possível efetuar programas no MATLAB®, através da


criação de scripts, ou seja, arquivos textos, nos quais são escritos e definidos comandos
que serão executados sequencialmente. Digitado o programa, é necessário salvar no
diretório de sua preferência antes de executa- lo, também podem ser chamados na janela
de comando.
Exemplo: Calcule o valor de hipotenusa de um triangulo retângulo qualquer, de
catetos p=2 e q=3.

Após, criado o programa com qualquer editor de texto, o script deverá ser salvo
com a extensão .m (M-Files). O nome que será salvo o arquivo, por exemplo, podemos
nomear o exemplo como hip_p_q.m, e assim, na janela de comandos (Command
Window), entrar com o nome do arquivo salvo.

A utilidade de um script é a de poder efetuar uma sequência de comandos com


muita frequência. Os scripts, assim como o exemplo, usam dos dados presentes no
workspace, ou seja, da memória do MATLAB®, para realizar os comandos.

31
O MATLAB® oferece a própria linguagem de programação que nos permite fazer
os mais variados cálculos e automatizar diversos processos. Com os cálculos feitos
naturalmente, podemos utilizar a programação para realizar feitos mais avançados,
como fazer funções que calculam derivada, métodos numéricos ou outro algoritmo
qualquer que queira implementar.
A seguir, está uma lista de comandos usados para programação no MATLAB®,
bem como interfaces de comunicação com o usuário:

break Usado nos laços for e while para interromper sua execução
clc, home Limpa a tela (command windonw)
clear Limpa as variáveis salvas na memória (workspace)
continue Usado nos laços for e while, esse comando interrompe a
sequência do programa e recomeça um loop for ou while na
próxima iteração
display Exibe o nome do conteúdo de uma variável
disp Exibe o conteúdo dentro de uma variável, sem mostrar seu
nome
if Executa blocos de comando com a capacidade de executar
somente a condição declarada como verdadeira
else Comando não obrigatório utilizado com o laço if
elseif Comando não obrigatório utilizado com o laço if
end Comando obrigatório para finalizar os laços if, for e while
errordlg Cria uma caixa de diálogo livre de erros
eval Utilizado para strings, executa uma string contida numa
expressão
feval Utilizado para strings, executa uma função especificada por
uma string
for Executa um bloco de comandos em uma quantidade definida
de vezes
fprintf Grava dados em arquivo de texto
fscanf Le dados em arquivos de texto
function Define m.file do tipo function (função)
global Define variáveis globais

32
helpdlg Mostra o comando Help
input Permite solicitar a entrada de caracteres pelo usuário
keyboard Suspende a execução de uma sequência, permitindo ao
usuário executar novos comandos pelo teclado, porém a
sequência retorna assim que o usuário digitar Return
lasterr Última mensagem de erro exibida pelo MATLAB®
menu Exibe um menu de escolhas para entrada do usuário
margchk Verifica número de argumentos da entrada
pause Permite pausar a execução do programa até ser reativado
pressionando qualquer tecla
pause (n) Permite pausar a execução de um programa por n segundos
questdlg Cria um caixa de diálogos de perguntas
rbbox Caixa para seleção de regiões em gráficos
return Permite a saída imediata de uma função
sprintf Salva os dados formatados em uma única string
switch Análogo ao comando IF. Analisa várias opções e executa o
comando que for classificado como verdadeiro
case Comando obrigatório, utilizado para execução do switch,
cada teste é condicionado pelo comando case
uigetfile Caixa de diálogo para obter um arquivo existente
uiputfile Caixa de diálogo para especificar o nome de um novo
arquivo
warndlg Caixa de diálogo para advertências
while Permite que o programa seja executado enquanto a condição
imposta for verdadeira

4.1 Comando format


O usuário pode escolher como os números aparecerão na tela, de forma
padronizada, utilizando o comando format. A seguir, encontra- se uma lista de suas
variações:
Format short: 4 dígitos depois da vírgula.
Exemplo:

33
Format long: 14 dígitos depois da vírgula.
Exemplo:

Format short e: 5 dígitos com exponencial.


Exemplo:

Format long e: 15 dígitos com exponencial.


Exemplo:

Format short g: 5 dígitos totais.

34
Exemplo:

Format long g: 15 dígitos totais.


Exemplo:

Format hex: Formato hexadecimal.


Exemplo:

Format bank: Valores bancários.


Exemplo:

Format rat: Aproximação por racionais.

35
Exemplo:

Format +: Exibe o sinal da expressão.


Exemplo:

4.2 Comando disp

Utilizado como a forma mais simples para imprimir um conteúdo, podendo ser
um vetor, uma matriz ou um texto, o comando disp é executado com o uso de parentes e
entre aspas simples o texto que deseja imprimir. O comando também permite combinar
frases com variáveis alfanuméricas, da seguinte forma: o comando disp deve ser
acompanhado o comando num2str ou int2str, com isso os valores numéricos serão
convertidos para alfanuméricos. O num2str permite a conversão de qualquer numero ou
matriz em uma cadeia de caracteres, assim como o int2str converte primeiro em
números inteiros para, depois, transforma- los em caractere.

Exemplo: Imprimir o valor de 𝑒 2 :

36
4.3 Saída fprintf

De modo a lembrar da linguagem C, a função fprintf, tem como objetivo a


impressão de dados, e permite além de imprimir um texto com diferentes formatações,
exibir o conteúdo de matrizes e strings, seguindo a seguinte tabela:

%s Utilizado para imprimir uma string


%c Utilizado para imprimir um caractere
%d Utilizado para imprimir um número
inteiro
%f Utilizado para imprimir um ponto
flutuante
\n Mudança de linha
\t Gera tabulação
\\ Utilizado para imprimir uma barra
\% Utilizado para imprimir o símbolo de
percentual

Exemplo: Atribuir a duas variáveis, valores distintos e imprimi-los em uma


mesma frase:

37
5. Estruturas condicionais e
laços

Em programação, a definição de uma estrutura condicional está na capacidade de


criar e executar um programa que escolha as entradas e execute somente aquelas
condicionadas a comandos pré determinados. Essa estrutura é formada a partir de
expressões lógicas.
Quando deseja- se que a estrutura seja executada repetidas vezes, criamos o
conceito de laço, que permite a repetição de uma condição imposta até que, a partir de
uma condição de interrupção dada, esse laço seja interrompido.
Todos os laços apresentados serão feitos no script, após o programa escrito, para
executa-lo deve- se apertar o comando “run” na parte superior do MATLAB® e você
terá os resultados na janela de comando.

5.1 Estrutura if-end

Pode ser representada por:

if expressão
Instruções...
end

Assim, intuitivamente, vê-se que os comandos serão executados caso a condição


da expressão seja verdadeira, caso negativo não será executados.
Exemplo: Fazer um programa que peça o valor de uma circunferência qualquer
ao usuário e retorne o valor de sua área.

38
5.2Estrutura if- else- end

Pela tradução literal, o laço if-else (se e se não) abrange a capacidade de escolher
entre duas alternativas, por exemplo:

if expressão
instruções 1...
else
instruções 2...
end

Se for verdadeira a condição da expressão, vai ser executado a instrução 1. Se não,


ou seja, a condição é falsa, será executado a instrução 2.
Exemplo: Fazer um programa que verifica se o número é par ou ímpar. Lembre-
se: para calcular o resto da divisão, pode- se usar a função mod ou rem:

5.3 Estrutura if –elseif –else -end

De modo análogo, é usado quando necessita- se escolher mais de duas


alternativas:

if (expressão1)
Instruções 1...
elseif (expressão 2)
Instruções 2...
else
Instruções 3...
end

39
Se as condições impostas na expressão1 for verdadeira, as Instruções 1 serão
executadas, já as condições sob a expressão2 forem verdadeiras, executará as Instruções
2 e assim para as outras condições. Se nenhuma das condições for verdadeira, as
Instruções 3 serão executadas.
Assim que a primeira condição sob a expressão1 for executada, a estrutura if-
elseif-else-end não será mais utilizada e o programa seguirá executando imediatamente
os comandos após o end.
Exemplo: Fazer um programa que diga se a nota do aluno é suficiente para ser
aprovado. Notas acima de 6, são aprovadas, abaixo de 6, reprovadas e notas acima de 10
e abaixo de zero são inválidas.

5.4 Laço for

Pode ser representada por:

for (valor inicial; condição inicial; incremento)


{
Instruções...
}
end

A estrutura for, permite que os comandos do programa, sob determinadas


condições, seja repetido em um número específico de vezes, sua utilidade é que além de
se obter uma variação de elementos, poupa tempo.
Analisando esse exemplo:

40
Nota- se que o for pode ser dividido em três partes:
1) i=1 é realizado uma vez, antes de iniciar o laço.
2) Temos a análise da condição (i<=5), caso seja verdadeira o
corpo do laço (x(i)=i^3) é executado.
3) Quando a condição se tornar falsa, o laço terminara.

Exemplo: Fazer um programa que some 5 aos números pares da matriz A.

* Comando rem calcula o resto da divisão.

Exemplo: Fazer um programa que durante o lançamento de dois dados, diga todas
as possibilidades da soma ser 7.

Exemplo: Faça um programa que plote uma função retangular f(n) tal que
0<n<2𝜋 e f(n) =1, se 0<n< 𝜋 e f(n)=-1 𝜋<n<2π.

41
Exemplo: Faça um programa que plote 360 pontos de um período da função 𝑦 =
2𝜋𝑥
𝑠𝑒𝑛( 360 ).

Exemplo: Faça um programa que construa duas matrizes A e B dadas pela lei
𝐴𝑖𝑗 = 𝑖 + 𝑗 e 𝐵𝑖𝑗 = 𝑖 − 𝑗 e calcule a soma das duas.

Desafio

Faça um programa que some 4 nos valores do vetor (1, 2,3,4,5).

42
5.5 Laço while

O laço while (enquanto) funciona ao contrário do for, ele também repetirá os


comandos a partir de uma determinada condição, porém, irá realizar indeterminadas
vezes, ou seja, será executado até obter uma resposta satisfatória ou até o usuário
interromper o programa.

while (expressão)
Instruções...
end

Enquanto a condição dentro da expressão for verdadeira as instruções serão repetidas.


Analisando o exemplo:

Observando o exemplo, o laço while irá ler a condição a<b se for verdadeira irá
ser executado e retornará a analisar a condição, se permanecer verdadeira, permanecerá
a execução, o laço só será interrompido caso a condição imposta se torne falsa, assim,
ele executará o comando após o end.
A diferença entre o for e o while é que no for a condição, quando verdadeira, é
executada um número fixo de vezes, o que não ocorre no while.
Exemplo: Faça um programa que faça um cadastro da idade e do peso de um
cidadão. Ao final pergunte ao usuário se quer continuar (1) ou parar (0) o programa.

43
Exemplo: Faça um programa que plote o gráfico da função 𝑦 = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 , no
intervalo 𝑥𝑒 − 5 < 𝑥 < 𝑥𝑎 + 5.

Desafio

Faça um programa que leia um número e calcule o seu fatorial. O programa deve
exibir um erro caso o número seja negativo.
5.6 Comando break

Quando há a necessidade de interromper a programação, em laços for e while,


usa- se o comando break que tem a função de interromper a execução dos laços e

44
passar imediatamente para o comando seguinte após o end. Para o while, é útil o
comando break, uma vez que a condição de interrupção é testada no início da estrutura,
porém, há casos que necessita- se interromper a execução no interior da estrutura, não
no seu início.

while 1
instruções 1
if expressão
break
end
instruções 2
end

Analisando o exemplo acima, a estrutura while é sempre executada, porém temos


o comando if vai parar assim que for satisfeito e o break entra para interromper a
repetição do while.
Exemplo: Faça um programa que calcule a média de no máximo 5 números
usando o comando break.

45
5.7 Comando switch
É dado por:

variavel_teste = 1 ;
switch variavel_teste
case expressao1
Instruções1...
case expressao2
Instruções 2...
...
otherwise
% A instrução será executada se nenhuma das anteriores for
Instruções...
end

O comando switch funciona para avaliar várias opções e irá executar a qual o
comando dentro do switch for verdadeiro, ou seja, se o primeiro case for verdadeiro os
próximos não serão executados. O otherwise é acionado quando não há case que se
enquadre na condição do switch.
Exemplo: Faça um programa que o usuário insira um valor. Se esse número for
de 1 a 5, fazer ele aparecer no final, caso não seja, fazer aparecer “outro valor”.

Desafio

Faça um programa que leia um dos números -1, 0 ou 1 e diga se é negativo,


positivo, zero ou nenhum dos outros casos.

46
6. Funções

O MATLAB® permite criar e analisar funções. Através do comando help “nome


da função” é possível analisar os comentários presentes naquela função feitas pelos
programadores, afim de esclarecer algumas dúvidas de seu funcionamento. O comando
doc “nome da função” abre uma janela a parte com as mesmas características do help,
mas não ocupa o espaço do command window. O comando type “nome da função”
permite analisar toda a programação que engloba tal função, desde comentários dos
programadores até todas as linhas de programação presentes nela.
Além dessas funcionalidades, é possível criar uma função própria no MATLAB®
através de um script.
Peguemos o exemplo presente na plotagem de gráficos bidimensionais:
Exemplo:

Feito tal função, o arquivo será salvo no nome de sua função, que pode ser
alterado caso queira, mas ao chamar a função no MATLAB®, deve-se chama-la pelo
nome que ocupa o lugar de “teste” no exemplo acima.
Assim, basta ir ao command window:

47
Percebe-se que as figuras foram criadas automaticamente e as variáveis X e Y
receberam respectivamente os valores de V1 e V2.
O próximo exemplo apresenta uma forma de construir uma função que calcula a
intensidade do som seguindo a fórmula física N=10log10(I/I0):
Exemplo:

Desafio

“Paradoxo do aniversário”
Sabe-se que, pelas noções de estatística, a probabilidade de uma pessoa não fazer
aniversário no mesmo dia que outra somada à probabilidade de um par de pessoas
fazerem aniversário no mesmo dia é o equivalente a 100%.
Logo: 1-P(Não faz aniversário com outra pessoa)=P(fazer aniversário com pelo
menos 1 outra pessoa).
Assim, monte uma função que calcule a probabilidade de pelo menos um par entre
x pessoas fazerem aniversário no mesmo dia.

48
6. Gráficos tridimensionais e contornos

A plotagem de gráficos tridimensionais e seus contornos podem ser utilizadas no


MATLAB® seguindo algumas condições, cada uma relacionada ao comando utilizado e
aos resultados que se deseja adquirir. Os principais comandos para a plotagem de
gráficos tridimensionais e contornos são as seguintes:
plot3 Traça gráfico linear
fill3 Desenha sólidos
comet Traça gráficos 2D animado com trajetória
de cometa
comet3 Traça gráficos 3D animado com trajetória
de cometa
contour Traça contorno em 2D
contour3 Traça contorno em 3D
mesh Traça superfície em malha 3D
meshC Traça superfície em malha e o contorno
abaixo da malha
surf Traça superfície 3D sombreada
surfc Traça superfície 3D sombreada e o
contorno abaixo da superfície

Comandos como plot3, fill3 e comet3 apresentam a característica de plotar


vetores como apresentados em gráficos bidimensionais, apenas com a adição de um
terceiro vetor para o eixo z, ou seja, basicamente ocorre a plotagem de uma linha
variando ao longo do eixo z.

49
Exemplo:

Agora, veja que se utilizou um vetor z constante para desenhar o gráfico em um


plano fixo onde z=3, no caso, que é o que acontece em uma plotagem bidimensional,
onde o z=0 naturalmente. Porém, caso o z também fosse variado, obteria uma figura
diferente, porém com uma projeção equivalente àquela com o z sendo tratado como uma
constante, porém ainda desenha um gráfico de uma linha em um espaço tridimensional.
A única diferença é que o comando fill3 preenche o caminho que esta linha percorre.
Observe que ao tentar aplicar o conceito de coordenadas cilíndricas e tentar plotar
um gráfico seguindo os mesmos valores anteriores, porém com a seguinte sintaxe:
fill3(x,y,t), o que se obtém não é a figura de um cilindro mas sim o desenho de uma
“broca” com a projeção de um círculo, o que inválida a utilização dessas plotagens para
sólidos como esferas etc.
Para a plotagem de sólidos, utiliza-se as funções mesh e surf essencialmente.
Essas funções necessitam de matrizes para a plotagem de um sólido tridimensional. O
comando mesh (x,y,z) cria uma malha em perspectiva plotando os elementos da matriz
z em relação ao plano definido pelas matrizes x e y.

50
Exemplo:

Agora observe como funciona o comando fill3 em construções de sólidos.


A partir de noções de matrizes, é possível construir os mais diversos sólidos. A
função sphere, por exemplo, é a construção de 3 matrizes de forma a criar uma esfera
de raio 1 e centro na origem.
Para maiores esclarecimentos sobre estes comandos e outros comandos referentes
ao assunto consulte a ajuda (help). Para observar o raciocínio da programação de tais
comandos utilize type “nome do comando”.

51
7. Extras

O MATLAB® possui diversas funções, tantas que dificulta a cobertura de todas


elas em uma única apostila sobre o assunto, sendo possível ter a ideia de separar
determinadas funções que foquem em determinadas áreas do conhecimento, cada uma
com sua devida necessidade de aplicação. A seguir serão apresentadas algumas funções
extras presentes no MATLAB®, sendo essas diferentes das básicas apresentadas
anteriormente, ou seja, a partir daqui será introduzido algumas curiosidades acerca das
funcionalidades que o MATLAB® oferece.
O comando “whos” permite conhecer alguns atributos das variáveis que estão
sendo utilizadas em dado momento pelo programa.
Exemplo:

Porém, não existe a possibilidade de salvar um caractere em uma matriz de classe


double, então, existem algumas funções que abrem essa possibilidade, como é o caso de
“cell” e “structure”.
Cell funciona da seguinte maneira:

52
Exemplo:

A partir do exemplo acima é possível observar algumas condições para o


comando cell, como o fato de que para atribuir um valor para a célula desejada, o valor
a ser atribuído, seja string, char ou double, ele deve estar contido entre chaves ({}).
A função struct permite criar algo semelhante à um armário com x números de
gavetas, cada qual com seu respectivo nome e dentro de cada gaveta uma pasta, pasta
essa que pode obter diferentes valores de classe.

53
Exemplo:

Observe que, inicialmente, a variável “s” vira uma struct de dimensão 0x0 e, ao
criar uma célula e atribuir um valor para a mesma, as outras células criam uma célula
vazia caso não tenham recebido algum tipo de valor. A função struct segue a estrutura
struct(field1,value1,field2,value2), sendo que as variáveis “field” devem corresponder
a uma variável de classe char, enquanto as variáveis “value” podem assumir qualquer
classe, contanto que todas as variáveis value possuam mesma dimensão.
Existem algumas funções para descontrair também como: “why”, “teapotdemo”,
“vibes”, “lorenz”, ou até mesmo a seguinte função:

54
8. Gabarito

Capítulo 3.2:

0.9916 4.5084 −3.5


Assim, temos que F(s) = + +
𝑠+3.5616 𝑠−0.5616 𝑠

55
Capítulo 3.3

Gráficos:

56
Capítulo 3.4:

Capítulo 3.5:

Gráfico:

57
Capítulo 5.4:

Capítulo 5.5:

Capítulo 5.7:

Capítulo 6:

Digite plot(a) para observar o comportamento da função


criada.
58

Você também pode gostar