Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
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
3
1. Operações Gerais
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:
4
Adição ( + ): Utilizado de forma a realizar a soma algébrica de dois ou mais
termos.
Exemplo:
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
Exemplo (*):
6
Números Imaginários ( i ) ou ( j ): Representa a unidade imaginária √−1 na
forma retangular.
Exemplo:
exp(2) %Calcula 𝑒 2
7
Exemplo:
* 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º.
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
9
1.2 Operações Vetoriais e Matriciais
u= [x,y,z];
T = [27:0.5:47];
T = [27:47];
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).
Exemplo: Seja A = [1 1 4] e B = [-1 2 2]. Calcule o ângulo entre eles, sabendo que
<𝐴,𝐵>
𝜃 = arccos (‖𝐴‖∗‖𝐵‖) .
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).
12
1 2 3
Exemplo: Sendo A = 4 5 6 e 𝛼 = 2, calcule A + 𝛼.
7 8 9
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.
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
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
17
Existem algumas ferramentas específicas para configuração de cada gráfico,
facilitando sua visibilidade e compreensão:
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:
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
20
21
3. Polinômios
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:
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:
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:
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
Desafio
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.
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
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
30
4. Criação de scripts
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.
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
33
Format long: 14 dígitos depois da vírgula.
Exemplo:
34
Exemplo:
35
Exemplo:
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.
36
4.3 Saída fprintf
37
5. Estruturas condicionais e
laços
if expressão
Instruções...
end
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
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.
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 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
42
5.5 Laço while
while (expressão)
Instruções...
end
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
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
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
46
6. Funções
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
49
Exemplo:
50
Exemplo:
51
7. Extras
52
Exemplo:
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:
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: