Universidade Federal de São João Del-Rei

Campus Alto Paraopeba

Disciplina: Cálculo Numérico

Apostila de Matlab

Prof. Alexandre Cândido Moreira
Prof. Heber Tormentino de Sousa

Agosto de 2010

_______________________________________________________________________________
SUMÁRIO
1. INTRODUÇÃO
1.1 Vantagens do Matlab
1.2 Desvantagens do Matlab

4
4
5

2. O AMBIENTE MATLAB
2.1 Comand Window
2.2 Workspace
2.3 Current Directory
2.4 Command History

5
6
6
7
8

3. COMANDOS BÁSICOS E DECLARAÇÕES DE VARIÁVEIS

8

4. OPERAÇÕES ARITMÉTICAS

8

5. EXIBINDO DADOS DE SAÍDA
5.1 O Comando disp

9
10

6. OPERADORES LÓGICOS

12

7. OPERADORES RELACIONAIS

12

8. CÁLCULO MATRICIAL
8.1 Elementos de uma Matriz
8.2 Soma e Subtração
8.3 Multiplicação de uma Matriz por um Escalar
8.4 Multiplicação entre Matrizes
8.5 Divisão Direta de Matrizes
8.6 Potênciação
8.7 Transposta de uma Matriz
8.8 Determinante
8.9 Inversa da Matriz
8.10 Autovalores e Autovetores
8.11 Matriz escalonada reduzida
8.12 Posto de uma Matriz
8.13 Números e Matrizes Complexas
8.14 Matriz diagonal ou diagonal de uma matriz
8.15 Matrizes Triangulares
8.16 Matriz Identidade
8.17 Matriz Composta por Elementos Unitários
8.18 Matriz Nula (composta por elementos nulos)
8.19 Matriz Aleatória

13
13
14
15
15
16
16
17
17
18
18
19
19
20
21
21
22
22
23
23

_______________________________________________________________________________ 2
Cálculo Numérico Utilizando Matlab

_______________________________________________________________________________
9. GERANDO VETORES
24
9.1 O Comando linspace
25
10. ARQUIVOS M DE COMANDOS

26

11. CONTROLE DE FLUXO
11.1 Laço For
11.2 Laço While
11.3 Estrutura If-Else-End
11.4 Estrutura Switch-Case

28
28
29
30
32

12. ARQUIVOS M DE FUNÇÕES

33

13. GRÁFICOS NO MATLAB
13.1 Gráficos 2-D
13.2 Estilos de Linhas e Símbolos
13.3 Coordenada Polar e Gráfico de Barras
13.4 Gráficos 3-D
13.5 Anotações no Gráfico

35
35
38
40
42
48

14. POLINÔMIOS
14.1 Raízes
14.2 Multiplicação
14.3 Adição
14.4 Divisão
14.5 Cálculo de Polinômios
14.6 Derivada de Polinômios
14.7 Derivada de um Produto de Polinômios
14.8 Derivada de um Quociente de Polinômios

49
49
50
51
51
52
52
52
53

15. LISTA DE FUNÇÕES DO MATLAB

54

16. REFERÊNCIAS BIBLIOGRÁFICAS

74

_______________________________________________________________________________ 3
Cálculo Numérico Utilizando Matlab

Basic. que são coleções de funções usadas para resolver determinados problemas tais como: otimização. Ele nasceu como um programa para operações matemáticas sobre matrizes. e até mesmo você. Ele permite implementar e resolver problemas matemáticos muito mais rápida e eficientemente que através de outras linguagens como C. Seus elementos básicos são matrizes que não requerem dimensionamento. simulação de sistemas dinâmicos. INTRODUÇÃO MATLAB (abreviatura de Matrix Laboratory – Laboratório de Matrizes) é um programa d ecomputador de uso específico. _______________________________________________________________________________ 4 Cálculo Numérico Utilizando Matlab . c) Funções Predefinidas: conta com uma grande biblioteca de funções predefinidas. manipulação algébrica. contribuam para o enriquecimento. diversas versões de Unix e Macintosh. que permite que engenheiros. mas ao longo dos anos transformou-se em um sistema computacional flexível capaz de resolver essencialmente qualquer problema técnico. entre outros. Entre elas. para resolver problemas técnicos. temos: a) Facilidade de uso: o Matlab é uma linguagem interpretada. em comparação com linguagens computacionais convencionais. que apresentam soluções testadas e empacotadas para diversas tarefas técnicas básicas d) Desenhos Independentes de Dispositivos: diferente da maioria das linguagens de computador. Provavelmente. Pascal ou Fortran. b) Independência de Plataforma: tem suporte em diferentes sistemas computacionais: Windows XP/Vista. 1. Este recurso torna o Matlab uma ferramenta excepcional para visualização de dados técnicos. processamento de sinais. redes neurais. o Matlab tem muitos comandos para desenhos e imagens. a característica mais importante do MATLAB é a sua extensibilidade._______________________________________________________________________________ 1. otimizado para executar cálculos científicos e de engenharia. O MATLAB possui uma família de aplicativos específicos (“toolboxes”). Linux.1 Vantagens do Matlab O Matlab tem muitas vantagens. matemáticos cientistas. que podem ser exibidos em qualquer dispositivo de saída gráfica compatível com o computador que executa o Matlab. assim como muitas versões de Basic.

os arquivos de comando tem extensão . No Windows. Até mesmo escalares são tratados como matrizes em Matlab. 1.2 Desvantagens do Matlab O Matlab tem duas desvantagens principais.mat (Mat-files). que é uma coleção de valores de dados organizados em linhas e colunas. eles são simplesmente matrizes co apenas uma linha e uma coluna. por isso pode ser mais lento que linguagens compiladas. A segunda desvantagem é o custo: uma cópia completa do Matlab é de cinco a dez vezes mais cara que um compilador convencional C ou Fortran. O AMBIENTE MATLAB A unidade fundamental de dados em qualquer programa Matlab é a matriz. _______________________________________________________________________________ 5 Cálculo Numérico Utilizando Matlab . DEMOS demonstração em HTML EXTERN suporte às linguagens FORTRAN._______________________________________________________________________________ e) Interface Gráfica de Usuário: tem ferramentas que permitem a um programador construir interativamente uma interface gráfica de usuário (GUI – Graphical User Interface) para seus programas. Esse problema pode ser diminuído pela estruturação apropriada dos programas Matlab para otimizar o desempenho do código vetorizado. o Matlab é instalado com os seguintes diretórios: BIN contém os programas binários do Matlab. No Matlab. C e C++ HELP contém arquivos de auxílio e documentação do Matlab JAVA suporte à linguagem Java NOTEBOOK suporte à geração de documentação no formato MS-Word TEMP diretório temporário TOLLBOX “toolboxes” do Matlab WORK diretório de trabalho.m (M-files) e os arquivos de dados binários default tem extensão . Com este recurso. determinada por um nome único. os quais podem ser operados por usuários relativamente inexperientes. o programador é capaz de projetar programas sofisticados de análise de dados. Primeiro. 2. é uma linguagem interpretada.

• Com as teclas “↑” (seta para cima) e “↓” (seta para baixo) é possível recuperar todos os comandos já digitados. • Também é nessa janela que se pode executar um arquivo m-file. • O prompt “>>” indica que o programa está pronto aguardando uma instrução. “Current Directory” e “Command History”. • As operações podem ser realizadas e seus resultados são mostrados. _______________________________________________________________________________ 6 Cálculo Numérico Utilizando Matlab . 2. “Workspace”.1 Comand Window • É a área de trabalho onde os comandos (as instruções) são digitados. 2.2 Workspace Figura 2 – Janela “Workspace”._______________________________________________________________________________ Figura 1 – Ambiente Matlab janelas: “Comand Window”.

• Save Workspace As – salvar todas as variáveis do workspace em um arquivo. • Copy – copiar a variável para a área de transferência de dados do Windows. • Essa janela possui quatro colunas indicando o nome. • Save Selection As – salvar as variáveis selecionadas em um arquivo. 2. basta dar um click-duplo para editá-las. • Clear Workspace – apagar todas as variáveis do workspace.3 Current Directory Área onde é exibida uma lista dos arquivos contidos no diretório corrente. • Import Data – importar variáveis de um arquivo para o workspace. • Select All – selecionar todas as variáveis. Há um menu flutuante que é possível: • Open – abrir a janela. • Rename – renomear a variável. número de bytes e a classe de cada variável. Figura 3 – Janela “Current Directory”. • As variáveis podem ser editadas e visualizadas nessa própria janela. • Graph – criar gráficos a partir dos dados contidos na variável._______________________________________________________________________________ • É a área na qual são exibidas todas as variáveis definidas na área de trabalho. _______________________________________________________________________________ 7 Cálculo Numérico Utilizando Matlab . • Delete – apagar a variável do workspace. dimensão.

Adição + Subtração Multiplicação * Divisão / Potenciação ^ _______________________________________________________________________________ 8 Cálculo Numérico Utilizando Matlab .4 Command History Área onde ficam armazenadas todas as instruções executadas no MATLAB. who whos clear clc dir cd what Tabela 1 – Comando Básicos. 3. OPERAÇÕES ARITMÉTICAS As expressões podem ser construídas usando os operadores aritméticos usuais: Tabela 2 – Operadores aritméticos._______________________________________________________________________________ 2. Mostra as variáveis do espaço de trabalho Mostra as variáveis do espaço de trabalho com detalhes Limpa a memória do espaço de trabalho Limpa a tela Mostra o conteúdo do diretório que se encontra Informa ou altera o diretório corrente Exibe os arquivos Matlab contidos no diretório 4. COMANDOS BÁSICOS E DECLARAÇÕES DE VARIÁVEIS Para iniciar o nosso trabalho no MATLAB é necessário aprender alguns comandos essenciais da janela de trabalho (command window) e na seqüência vamos aplicá-los. Figura 4 – Janela “Command History”.

existem várias possibilidades de formatar a saída. x = [-1 0 1] resulta em: x = -1 0 1 Se pelo menos um dos elementos da matriz não é inteiro exato. O formato "default"._______________________________________________________________________________ Figura 5 – Exemplos de operações aritméticas. _______________________________________________________________________________ 9 Cálculo Numérico Utilizando Matlab . a matriz é mostrada em um formato sem qualquer ponto decimal. 5. chamado de formato “short”. que afeta somente o modo como as matrizes são mostradas. Se todos os elementos das matrizes são inteiros exatos. e não como elas são computadas ou salvas. Por exemplo. EXIBINDO DADOS DE SAÍDA O formato numérico exibido na tela pode ser modificado utilizando-se o comando format.

a saída que ele produz é mostrada numa nova linha.346 1.3333 0.34567890123457 1. mas._______________________________________________________________________________ mostra aproximadamente 4 dígitos decimais ou usam notação científica. o usuário pode acionar o comando format para alterar as preferências. e/ou mostra strings na forma de textos.3457 12. A formageral do comando disp é: disp (nome de uma variável) ou dsisp (‘string de texto’) Toda vez que um comando disp é executado. para forçar a exibição em notação científica. O formato-padrão pode ser modificado para exibir mais dígitos significativos.2345e-6] é mostrada . Este comando altera o formato-padrão de acordo com os valores dados na Tabela 3.2346e+001 12. Tabela 3 – Formatos de exibição de saída. O formato pode ser alterado pela seleção da opção “File>>Preferences>>Command Window”. com ou sem expoente 15 dígitos mais expoente 15 dígitos no total. a matriz: x = [4/3 1. da seguinte maneira: x = 1. Por exemplo.0000 O formato-padrão pode ser alterado de duas maneiras: a partir da Janela de Menu Principal do Matlab ou pelo uso do comando “format”.3456789012346 12.1 Resultados 4 dígitos decimais (formato-padrão) 14 dígitos decimais 5 dígitos mais expoente 5 dígitos no total.35 4028b0fcd32f707a 1000/81 O Comando disp O comando disp exibe o conteúdo de uma variável. ocultando o nome da mesma. Comando de Formatação format short format long format short e format short g format long e format long g format bank format hex format rat 5. Alternativamente. 7 2 4] A = 5 7 9 2 1 4 _______________________________________________________________________________10 Cálculo Numérico Utilizando Matlab . para cada formato usado. Por exemplo: % A variável A é inicializada com uma matriz 2x3 A=[5 9 1.234567890123457e+0001 12. exibir dados com dois dígitos decimais ou então eliminar linhas adicionais para que mais dados sejam visíveis por vez na Janela de comandos. com ou sem expoente Formato monetário Exibição hexadecimal de bits Razão aproximada entre inteiros pequenos Exemplo 12.

Ao final da soma o a rotina exibe um texto juntamente com o resultado da soma. _______________________________________________________________________________11 Cálculo Numérico Utilizando Matlab ._______________________________________________________________________________ % O comando disp é utilizado para exibir a matriz A disp(A) 5 7 9 2 1 4 % O comando disp é utilizado para mostrar uma mensagem disp('O problema não possui solução') O problema não possui solução O código abaixo ensina como utilizar os comandos input e disp em uma rotina para calcular a soma entre 3 números. Janela Editor. Figura 7 – Algoritmo executando na Janela de Comandos. Figura 6 – M-File implementado.

serem combinados a outros comando para controlar ou tomar decisão sobre o fluxo do programa. todas as senteças envolvidas na operação forem verdadeiras. e somente se. Tabela 4 – Operadores lógicos. ou seja. como será visto adiante. OPERADORES LÓGICOS Um operador lógico examina senteças verdadeiras/falsas e produz resultados verdadeiro (1) ou falso (0). Símbolo Operador menor que < menor ou igual que <= maior que > maior ou igual que >= igual == diferente ~= Perceba que o operador relacional que testa a igualdade entre dois objetos é representado por dois sinais de igualdade (==). Símbolo Operador e & ou | não ~ 7. OPERADORES RELACIONAIS O operador relacional compara dois números determinando se oresultado da sentça de comparação é verdadeiro (V) ou falso (F). >=. Por exemplo. se a senteça for verdadeira o valor retornado é 1. o operador lógico AND resulta 1 (verdadeiro) se. Isso porque um único sinal de igualdade representa o operador de atribuição. de acordo com a funcionalidade do operador. Os demais operadores duplos (representados por dois caracteres) também não possuem espaços entre os caracteres (<=. Tanto os operadores lógicos quanto relacionais podem ser utlizados em expressões matemáticas ou. Por exemplo (5<8 V). Tabela 5 – Operadores lógicos. sem espaço entre eles. o valor retornado é 0. _______________________________________________________________________________12 Cálculo Numérico Utilizando Matlab ._______________________________________________________________________________ 6. ~=). Caso contrário.

No exemplo anterior. Por exemplo: x=[-1. para referenciar o segundo elemento do vetor x: x(2) ans = 4. CÁLCULO MATRICIAL As matrizes em Matlab podem ter uma ou mais dimensões.3 log(4.1 Elementos de uma Matriz Elementos de uma matriz podem ser qualquer expressão do MATLAB. 8. Essas matrizes têm um índice para cada dimensão.3000 4. e um elemento individual é selecionado pela especificação de um valor para cada índice._______________________________________________________________________________ Figura 8 – Exemplos com operadores relacionais.23^3) (1+2+3)/4*5] x = -1. Matrizes unidimensionais podem ser visualizadas como uma série de valores colcoados em uma linha ou em uma coluna.5000 Elementos individuais de uma matriz podem ser referenciados com seus respectivos índices entre parênteses. 8.3266 7.3266 _______________________________________________________________________________13 Cálculo Numérico Utilizando Matlab . como um único índice para selecionar os elementos individuais da matriz. O Matlab permite a criação de matrizes com tantas dimensões quanto necessário para um dado problema.

8. Exemplo: A = [1 2._______________________________________________________________________________ Analogamente em uma matriz. 3 4] A = 1 3 2 4 1 2 3 4 2 5 5 8 B=A' B = C=A+B C = A adição e subtração também é definida quando um dos operandos for um escalar. Exemplo: D=C-2 D = _______________________________________________________________________________14 Cálculo Numérico Utilizando Matlab .denotam adição e subtração de matrizes. com linha e coluna determinada tenho um elemento.7 8 9] x = 1 4 7 2 5 8 3 6 9 >> %% extrair o elemento da linha 2 e coluna 3 x(2.3) ans = 6 Repare que a referência é sempre na forma matriz(linha. Seja: x=[1 2 3.4 5 6.coluna).2 Soma e Subtração Os símbolos + e . A operação é definida sempre que as matrizes tenham a mesma dimensão.

4 Multiplicação entre Matrizes A multiplicação de matrizes é indicada por "*"._______________________________________________________________________________ 0 3 8.3 3 6 Multiplicação de uma Matriz por um Escalar A A = 1 3 2 4 2 6 4 8 3 9 6 12 2*A ans = D=3*A D = 8. A multiplicação A*B é definida somente se a segunda dimensão de A for igual à primeira dimensão de B. o número de colunas da primeira matriz for igual ao número de linhas da segunda matriz. Assim a multiplicação pode ser executada como: A A = 1 3 2 4 1 2 3 4 5 11 11 25 B B = A*B ans = _______________________________________________________________________________15 Cálculo Numérico Utilizando Matlab . ou seja.

Por exemplo: A A = 1 3 2 4 A^3 _______________________________________________________________________________16 Cálculo Numérico Utilizando Matlab . a potenciação é computada como múltiplas multiplicações.5 Divisão Direta de Matrizes Existem dois símbolos para divisão de matrizes no MATLAB "\" e "/"._______________________________________________________________________________ 8.6 0. então A\B e A/B correspondem respectivamente a inv(A)*B e A*inv(B).0000 %%divisão de elemento por elemento A.0000 -1./B ans = 0. Se A é uma matriz quadrada não singular. 3 4] A = 1 3 2 4 B=[5 6.5000 Potênciação A expressão A^p eleva A à p-ésima potência e é definida se A é matriz quadrada e p um escalar. 7 8] B = 5 7 6 8 -3 4 -4 5 A\B ans = A/B ans = 3. por exemplo: A=[1 2. Se p é um inteiro maior do que um.0000 2.4286 8.0000 -2.3333 0.2000 0.

^3 ans = 1 27 8.7 8 64 Transposta de uma Matriz O caracter ' (apóstrofe) denota transposta de uma matriz. z' é o transposto conjugado complexo de z. z’ é o conjugado complexo de z z=2+5i z = 2.0000 .8 Determinante Para calcularmos o determinante de uma matriz utilizamos o comando det(matriz).2 2 4 0 9. 3 4] A = 1 3 2 4 %% realiza a transposta da matriz A A' ans = 1 2 3 4 %% no caso de números complexos.0000 + 5.5.1 1 1 2 3] A = 1 5 2 1 4 1 5 3 6 5 _______________________________________________________________________________17 Cálculo Numérico Utilizando Matlab . Se z for complexo. Exemplo: A = [1 2.5 1 1 3 5.0000i 8._______________________________________________________________________________ ans = 37 81 54 118 %% potenciação de elementos por elementos A.7 8 9 9 0. %% Entrando com a matriz A 5x5 A=[1 2 4 5 6.0000i z' ans = 2.

0393 -0. Exemplo: A=[1 -1. Existem funções que retornam dois ou mais valores. As colunas da matriz V são os autovetores de A.6218 0.0332 0.3991 0. %% Calculando a inversa da Matriz A inv(A) ans = -0.0175 -0.4472 0. os valores de saída devem estar entre colchetes [ ] e separados por vírgula.2489 -0.-4 1] A = 1 -4 -1 1 %% Retorna um vetor com os autovalores da matriz A.2454 0.0175 0.4472 -0. eig(A) ans = 3.1048 0.0367 0.D] = eig(A) %% autovetores associados a matriz A V = 0.0707 0.0000 -1. respectivamente.0227 0.9 Inversa da Matriz Para calcularmos a inversa de uma matriz utilizamos o comando inv(matriz).2742 8.8944 _______________________________________________________________________________18 Cálculo Numérico Utilizando Matlab .1747 -0.1659 0.10 Autovalores e Autovetores A função eig( ) calcula os autovetores e os autovalores de A.0000 [V.3799 0. D] = eig( A ): Produz matrizes de autovalores (D) e auto-vetores (V) da matriz A.4079 1. A matriz D é a forma canônica de A menos uma matriz diagonal com os autovalores de A na diagonal principal.6646 -1._______________________________________________________________________________ 7 2 1 8 2 1 9 4 1 9 0 2 0 9 3 %% Calculando o determinante da matriz A det(A) ans = -1145 8. Nestes casos.1022 0.0515 -0.0271 -0.0201 -0.0830 0. [V.0157 0.0908 -0.8944 0. de forma que A*V = V*D.

12 Posto de uma Matriz Do exemplo anterior nota-se que a matriz em sua forma escalonda reduzida possui duas linhas não-nulas e infinitos valores para z. O número de linhas não-nulas pode ser encontrado através do comando rank(matriz). A=[1 2 4 5 6.11 Matriz escalonada reduzida O comando rref(matriz) encontra a matriz escalonada reduzida através do processo de escalonamento de Gauss Jordan.0000 0 0 -1.0000 8. 0 1 3] A = 1 2 0 2 4 1 8 16 3 0 1 0 2 3 0 rref(A) ans = 1 0 0 8.5 1 1 3 5.1 1 1 2 3] A = 1 5 7 2 1 2 1 8 2 1 4 1 9 4 1 5 3 9 0 2 6 5 0 9 3 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 rref(A) ans = 1 0 0 0 0 %% exemplo de um sistema possível e indeterminado 0*z=0 A=[1 2 8. 2 4 16._______________________________________________________________________________ %% autovalores associados a matriz A D = 3.7 8 9 9 0.2 2 4 0 9. ou seja. o comano “rank” encontra o _______________________________________________________________________________19 Cálculo Numérico Utilizando Matlab .

3+7*i 4+8*i] _______________________________________________________________________________20 Cálculo Numérico Utilizando Matlab .0000i 4. Por exemplo z= 3 + 4*i z = 3. 0 1 3] A = 1 2 0 2 4 1 8 16 3 0 1 0 2 3 0 rank(A) ans = 2 rref(A) ans = 1 0 0 8.0000i As seguintes declarações mostram dois caminhos convenientes para se introduzir matrizes complexas no MATLAB: A= [1 2.0000 + 5.7 8] A = 1. A=[1 2 8.0000i %% ou podemos escrever também z= 3 +4*j z = 3.0000 + 4.0000 + 6. 3 4]+i*[5 6.13 Números e Matrizes Complexas Números complexos são permitidos em todas operações e funções no MATLAB.0000 + 7.0000i 2.0000 + 8. 2 4 16.0000i Que produz o mesmo resultado que: A= [1+5*i 2+6*i. Os números complexos são introduzidos usando-se as funções especiais i e j. que nada mais é do que a quantidade máxima de linhas linearmente independentes da matriz._______________________________________________________________________________ “posto” da matriz.0000 + 4.0000i 3.

enquanto o comando tril extrai a matriz triangular inferior da matriz A.0000 + 7. diag(x) é a matriz diagonal com x na diagonal.0000i 3. Por exemplo: >> x=[1 2 3 1 -1 4] x = 1 2 3 1 -1 4 %% como x é um vetor. 4 1 -3.0000 + 8. 4 1 -3.0000 + 5.0000i 8. 6 2 1] A = 3 11 5 4 1 -3 6 2 1 %% extrai a diagonal principal da matriz diag(A) ans = 3 1 1 8.15 Matrizes Triangulares O comando triu extrai a matriz triangular superior da matriz A.0000i 4. 6 2 1] _______________________________________________________________________________21 Cálculo Numérico Utilizando Matlab .0000i 2. então diag(A) é um vetor cujos componentes são os elementos da diagonal de A.14 Matriz diagonal ou diagonal de uma matriz Se x é um vetor. diag(x) monta uma matriz na qual a diagonoal principal é o vetor x diag(x) ans = 1 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 4 Se A é uma matriz quadrada. Por exemplo: A=[3 11 5. A=[3 11 5._______________________________________________________________________________ A = 1.0000 + 6.

m) Exemplo: eye(5.8) ans = 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8._______________________________________________________________________________ A = 3 4 6 11 1 2 5 -3 1 %% matriz triangular superior triu(A) ans = 3 0 0 11 1 0 5 -3 1 %% matriz triangular inferior tril(A) ans = 3 4 6 0 1 2 0 0 1 8. temos que: ones(n.17 Matriz Composta por Elementos Unitários No caso de ser necessário a obtenção de uma matriz composta apenas por elementos unitários.m) _______________________________________________________________________________22 Cálculo Numérico Utilizando Matlab .5) ans = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 eye(5. a função a utilizar é dada por: eye(n.16 Matriz Identidade De modo a construir uma matriz identidade (quadrada ou com dimensão n x m).

ou para utilização de um outro qualquer modo.706046088019609 0.19 Matriz Aleatória A elaboração de testes a qualquer programa desenvolvido no MATLAB. a função a utilizar será: randn(n. poderá fazer uso de matrizes compostas por números aleatórios uniformemente distribuídos no intervalo entre 0 e 1: rand(n.276922984960890 0.18 Matriz Nula (composta por elementos nulos) Para efetuar qualquer tipo de manipulação matricial. poderá ser útil a construção de uma matriz composta por elementos nulos: zeros(n.3) _______________________________________________________________________________23 Cálculo Numérico Utilizando Matlab .317099480060861 No caso de se pretender uma distribuição normal dos números aleatórios compreendidos entre 0 e 1.694828622975817 0.m) rand(3.m) zeros(5.031832846377421 0.097131781235848 0.m) randn(3.3) ans = 0.8) ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8.823457828327293 0._______________________________________________________________________________ ones(5.046171390631154 0.171186687811562 0.5) ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ones(5.5) ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.

como veremos adiante.2320 Columns 12 through 16 2.5:8 x = 1.432564811528221 -1.0174 1.327292361408654 9.037633276593318 0._______________________________________________________________________________ ans = -0.8000 2. O valor de passo pode ser qualquer número real ( ≅ 0).4000 1.2332 1.2094 1.5000 7.287676420358549 -1.0000 1.0000 Os dois pontos significam início:passo:fim. Escrevendo: x=1:8 x = 1 2 3 4 5 6 7 8 Cria um vetor cujo primeiro elemento é 1.1391 1. %% cria um vetor linha x x=0:0.5000 4. O mesmo comando pode ser modificado de forma a alterar o passo entre os elementos do vetor: x = 1:1.4000 2.0000 1.0597 1.665584378238097 0.2000 1.0000 5.1135 1.6000 0.0446 1.6000 %% cria um vetor linha y.146471350681464 1. A notação ( : ) é muito útil para gerar tabelas e plotar gráficos.125332306474831 0.0000 0. o último é 8 e o passo entre os elementos do vetor é 1.2:3 x = Columns 1 through 11 0 1.0000 1.1667 _______________________________________________________________________________24 Cálculo Numérico Utilizando Matlab .2000 0.2000 2. Gerando Vetores O dois pontos ( : ) é um caracter importante no MATLAB.190915465642999 1.8000 3.6000 0.2015 1.8000 2.0000 2. a partir dos valores de x y=exp(-x) + sin(x) y = Columns 1 through 11 1.189164201652103 -0.4000 1.

1391 1._______________________________________________________________________________ Columns 12 through 16 0.8000 3.8000 1.5) _______________________________________________________________________________25 Cálculo Numérico Utilizando Matlab .5898 0.0597 1.3958 0.0446 0.0000 %% criamos 5 pontos igualmente espaçados entre 0 e 10. com um passo de -1 z = 6 : -1 : 1 z = 6 9.6000 0. k = linspace(0.2094 1. Por exemplo: %% criamos 6 pontos igualmente espaçados entre 0 e 1.1909 %% cria uma matriz 16x2 a partir dos vetores x e y transpostos z=[x' y'] z = 0 0.0000 1. também.2320 1. gerar vetores linearmente espaçados fazendo uso da função linspace.0000 2.8000 2. como seja o caso do seguinte exemplo que impõe um incremento de pi/4.6000 1. k1=linspace(0.2000 0.9193 0.1909 Outros incrementos.2000 1. diferentes da unidade podem ser utilizados.0000 1.10.2332 1.7662 0.1 5 4 3 2 1 O Comando linspace Pode-se.0000 1.2000 2.5898 0.4000 1.2000 0.4000 2. %% criamos um vetor que começa em 0 e vai até PI.1135 1.1.2015 1.7854 1.6) k = 0 0. com um passo de PI/4 y = 0 : pi/4 : pi y = 0 0.4000 0.3958 0.4000 0.6000 2.3562 3.8000 1.5708 2.7662 0.1416 Também são possíveis incrementos negativos: %% criamos um vetor que começa em 6 e vai até 1.6000 0.9193 0.1667 1.0174 1.

ele processa e imediatamente mostra o resultado._______________________________________________________________________________ k1 = 0 2. Onde x1 é o ponto inicial.m contém declarações MATLAB para o cálculo e desenho de uma função senoidal com amplitude unitária. Estes dois modos formam um ambiente interpretativo.k).0000 7. Por exemplo. O MATLAB também pode executar uma seqüência de comandos que está armazenada num arquivo.5000 10.m para o calculo de uma função seno com A=1.5000 5. o arquivo senoide.x2.m”. ARQUIVOS M DE COMANDOS O MATLAB normalmente é usado no modo de comando(Janela de comandos – “Command Window”). Os arquivos que contém declarações MATLAB são chamados M-files porque usam a extensão “*. Quando você entra com uma linha de comando. x2 o ponto final e k o numero total de elementos.0000 Também é possível criar um espaçamento logarítmico entre os pontos do vetor. _______________________________________________________________________________26 Cálculo Numérico Utilizando Matlab . Isto é possível através do comando logspace(x1. 10. f=1000Hz. freqüência de 1000 Hz e ângulo de fase igual a zero: Figura 9 – Arquivo .

Em virtude da grande utilidade dos arquivos de comandos o MATLAB possui várias funções apropriadas para o uso em arquivos M. Arquivos scripts automatizam uma seqüência longa de comandos.m de scripts e funções. Essas funções são: _______________________________________________________________________________27 Cálculo Numérico Utilizando Matlab . os comandos contidos no arquivo não são mostrados na tela. Dois tipos de M-files podem ser usadas: manuscritas (scripts) e funções. Edit do DOS ou outro qualquer. Normalmente. podendo incluir referencias à outros M-files. enquanto um M-file está sendo executado. Você pode criar um M-file usando um editor de texto tal como o Notepad do Windows™._______________________________________________________________________________ Figura 10 – Resultado após a execução do arquivo “senoide. Ambos. Um M-file pode chamar ele próprio de forma recursiva. O comando echo permite visualizar o comando a medida que ele vai sendo executado. Um M-file consiste de uma seqüência de declarações MATLAB normais.m”. Arquivos de função permite criar novas funções às existentes. Figura 11 – Arquivos . scripts e funções são arquivos texto tipo ASCII. Isso é especialmente útil na depuração de um programa ou para a confecção de um programa demonstrativo.

11.1 Laço For O laço for é o controlador de fluxo mais simples e usado na programação MATLAB. 11. Comandos Descrição disp(ans) echo Input pause pause(n) waitforbuttonpress Mostra os resultados sem identificar o nome das variáveis Controla a exibição dos comandos dos arquivos M na janela de comandos Solicita ao usuário que forneça um dado de entrada Suspende a execução até que o usuário pressione alguma tecla Suspende a execução por n segundos Suspende a execução até o usuário pressione uma tecla ou um botão do mouse. mas com uma estrutura diferente (mais simples). CONTROLE DE FLUXO Os comandos que controlam o fluxo especificam a ordem em que a computação é feita.2. deve ser terminado com a instrução end. tal como o bloco if.4]).4] disp(i^2) end 1 4 9 16 (Observe o uso da função disp.saída.3._______________________________________________________________________________ Tabela 6 – Comando de entrada.2. que exibe na tela o conteúdo do seu argumento). %% utilizando o incremento for i=1:1:4 disp(i^2) end _______________________________________________________________________________28 Cálculo Numérico Utilizando Matlab . Este laço poderia ser expresso na forma mais comum: for i=1:4 disp(i^2) end 1 4 9 16 (lembre-se que 1:4 é equivalente a [1. depuração e interação com o usuário.3. No MATLAB estes comandos são semelhantes aos usados na linguagem C. O laço for. Em geral: for x = <valor inicial>:<incremento>:<valor final> comandos end O laço for repete as instruções dentro do laço até que o índice contador do laço alcance a condição final: for i=[1.

2 Laço While Ao contrário do Laço For. for n=0:2:10 soma=soma+n.1102e-16 A estrutura geral é: while expressão comandos end _______________________________________________________________________________29 Cálculo Numérico Utilizando Matlab . end disp(soma) 3) Calcular o fatorial de um número n: n=input(‘Digite um valor para calcular o fatorial: ‘) ._______________________________________________________________________________ 1 4 9 16 O laço for possibilita que uma série de comandos seja repetida por um número de vezes fixo e pré-definido. for a=1:n fatorial=fatorial*a. end disp(fatorial) 11. Exemplos: 1) Calcular a tabuada do número 17: for n=0:10 tab(n+1)=17*n. que executa um grupo de comandos um número fixo de vezes. o laço while executa um grupo de comandos um número indefinido de vezes. while 1+x > 1 x = x/2. end x x = 1. O laço while é executado enquanto a condição expr for verdadeira: x=1. O comando end é usado como limite inferior do corpo do laço. end disp(tab) 0 17 34 51 68 85 102 119 136 153 170 2) Calcular a soma de todos os números pares de 0 a 100: soma=0. fatorial=1.

x=x+2. if cadeiras>5 custo=(1-20/100)*custo._______________________________________________________________________________ Calcular o fatorial de um número qualquer. A mais simples é: if expressão comandos end Os comandos entre as instruções if e end são executados se todos os elementos na expressão forem Verdadeiros. Sendo que o custo de cada cadeira é de R$55. cadeiras=input('digite o numero preco=55. Essa lógica é implementada por meio de uma das diversas formas da estrutura if-else-end. while n<50 serie=serie+x/2. _______________________________________________________________________________30 Cálculo Numérico Utilizando Matlab . %Fatorial com While x=input('Digite um valor: '). end disp(serie) 1250 11. while x>0 fat=fat*x. as seqüências de comandos têm de ser executadas condicionalmente.3 Estrutura If-Else-End Em diversas situações. fat=1. x=x-1. custo=cadeiras*preco. serie=0. end disp(custo) de cadeiras desejadas: ').00. x=1. n=n+1. com base em um teste relacional. end disp(fat) Calcule a seguinte série com 50 termos: %Cálculo da Série n=0. Exemplo: Calcular o desconto de 20% para um número de cadeiras maior que 5.

Nível A B C Pontuação Superior a 8 em pelo menos uma das provas ou soma dos pontos superior a 14._______________________________________________________________________________ Outra forma de usar a estrutura é: if expressão comandos executados se Verdadeiro else comandos executados se Falso end Exemplos: 1) Dado qualquer distância que um veículo deve percorrer (valor real em km). _______________________________________________________________________________31 Cálculo Numérico Utilizando Matlab . %capacidade do tanque if mc*ct>=d disp('Não deve haver reabastecimento') else disp('Deve haver reabastecimento') end Testar para 780 km e 600 km 2) Os funcionários contratados pela prefeitura de uma cidade são classificados em 3 (três) níveis conforme a pontuação obtida em 2 (duas) provas aplicadas de acordo com o seguinte critério: Tabela 7 – Dados exemplo 2. Supondo que o tanque estará cheio na partida. Nenhm dos casos acima. %media de consumo ct=45. Superior a 6 em pelo menos uma das provas ou soma dos pontos superior a 9. mc=15. Em cada prova a pontuação é um valor real de 0 a 10. mostrar umas das mensagens: DEVE HAVER REABASTECIMENTO OU NÃO DEVE HAVER REABASTECIMENTO % DISTÂNCIA % d=input('Digite a distância a ser percorrida: '). a capacidade do tanque de combustível (valor real em litros) e a média de consumo de combustível do veículo (valor real em km/litros). %Classificação de Funcionários nota1=input('Digite a primeira nota: '). Desenvolva um programa que receba 2 (duas) notas de um funcionário e mostre como resposta o nível em que está classificado.

'Dezembro'} disp('31 dias') case {'Fevereiro'} disp('28 ou 29 dias') case {'Abril'.'Marco'.... %Programa para saber quantos dias tem o mes % clear.'Maio'...'Novembro'} disp('30 dias') _______________________________________________________________________________32 Cálculo Numérico Utilizando Matlab ... O comando switch é utilizado quando desejamos selecionar (chavear) condicionalmente expressões porém. mes=input('digite o mes desejado: ').'Julho'. grupo de comandos case valor 3 ...... clc.....'Outubro'..... if nota1>=8 | nota2>=8 | (nota1+nota2)>=14 disp('aluno nível A') elseif nota1>=6 | nota2>=6 | (nota1+nota2)>=9 disp('aluno nível B') else disp('aluno nivel C') end 11.. switch mes case {'Janeiro'...4 Estrutura Switch-Case Essa estrutura funciona como uma chave seletora. na forma de lista. escolhendo a expressão correta para executar os comandos.. O formato geral do comando switch é: switch expressão case valor 1 .'Junho'. grupo de comandos case valor 2 ... grupo de comandos otherwise .._______________________________________________________________________________ nota2=input('Digite a segunda nota: ').... grupo de comandos end 1) Faça um programa que o usuário possa digitar qualquer mês do ano e como resultado seja mostrado o número de dias do mês correspondente...'Setembro'.'Agosto'.

devolvendo somente o valor da resposta. além de especificar o que a função irá retornar (variáveis de saída). ou seja.m e que calcula algo desejado pelo programador. • Define o número e a ordem das variáveis de entrada. termo esse que também é usado na língua portuguesa para descrever uma seqüência de eventos._______________________________________________________________________________ 12. O Matlab. como outras linguagens de programação. • Define o nome da função. ARQUIVOS M DE FUNÇÕES É um programa elaborado como arquivo. Os comandos executados por esse programa ficam ocultos. Você só visualiza o que entra e o que sai. A linha de declaração de uma função: • Define o arquivo como uma função (diferenciando-o de uma rotina). De outro modo. y2) em um sistema de coordenadas cartesianas. o MATLAB tratará o arquivo como uma rotina. possui duas formas de criação de programas: roteiro (script) e função (function). d= (x 2 − x1 )2 + ( y 2 − y1 )2 _______________________________________________________________________________33 Cálculo Numérico Utilizando Matlab . Figura 12 – Princípio de funcionamento de uma função. roteiro é chamado script. polinomial e não-linear). então esse programa denomina-se “roteiro” no Matlab. y1) e (x2. uma função é uma caixa preta. O formato característico da linha de declaração de uma função é: function [argumentos de saida] = nome_funcao (argumentos de entrada) Exemplo: 1) Montar um programa que realize o cálculo da distância entre dois pontos (x1. Na aula passada. A primeira linha executável no arquivo deve ser a linha de declaração da função. Em inglês. vimos um exemplo prático de criação de um roteiro que executava uma seqüência de comandos Matlab para o ajuste de curvas (linear. Quando um programa executa uma seqüência de comandos que pode ou não retornar parâmetros na janela de comandos do Matlab.

_______________________________________________________________________________
No caso, vamos criar um programa principal chamado distancia e através deste
programa vamos chamar a função dist2.m, na qual estará implementada a foruma acima.
Passo 1: Criando a função:

Figura 13 – Implementação da Função “dist2”.

Em um m.File implementamos o código da função. Lembre-se este arquivo .m deve
ser salvo com o nome da função no caso dist2.m.
Passo 2:
Criando o programa principal:
%% Programa distancia entre pontos %%
%% o programa principal chama a função dist2 para o calculo %%
disp('Calculando a distância entre dois pontos:');
ax=input('Entre com o valor de x do ponto A: ');
ay=input('Entre com o valor de y do ponto A: ');
bx=input('Entre com o valor de x do ponto B: ');
by=input('Entre com o valor de y do ponto B: ');
resp=dist2(ax,ay,bx,by);
fprintf('A distância entre os potnos A e B é %f\n:',resp);

Figura 14 – Programa em execução.

_______________________________________________________________________________34
Cálculo Numérico Utilizando Matlab

_______________________________________________________________________________
13. GRÁFICOS NO MATLAB
Gráficos são ferramentas poderosas quando se deseja interpretar visualmente os
resultados. Um recurso especialmente interessante nas engnharias e demais ciências
exatas, onde o MATLAB encontra as maiores aplicações.
O comando plot é utilizado para criação de gráficos bidimensionais. A forma mais
simples desse comando é:
plot (x,y)
Cada um dos argumentos x e y deve ser um vetor. Além disso, os dois vetores
devem possuir a mesma quantidade de elementos. Ao executar o omando plot, é gerada
uma saída na janela Figure Window. Caso a janela Figure Window esteja fechada, ela
será aberta automaticamente após a execução do comando.

13.1 Gráficos 2-D
Os resultados apresentados a seguir foram obtidos com o auxílio do “software” de
simulação PSCAD/EMTDC, no qual foram implementadas distintas situações de carga e
de tensão de alimentação para averiguar os efeitos da conexão das cargas especiais
modeladas no SEP.
Exemplo:
%% plotar a função seno %%
x=0:0.1:2*pi; %%gera um vetor de 0 a 2pi
y=sin(x);
%% calcula o vetor das amplitudes
plot(x,y);
%% plota o gráfico
xlabel('valores de x'); %%adiciona legenda no eixo x
ylabel('amplitude');
%%adiciona legenda no eixo y
grid on;
%%coloca grid no grafico
y2=2*sin(x); %% gera um outro vetor de amplitudes
hold on;
%% segura o grafico anterior para plotar junto com o novo grafico
plot(x,y2,'r+:'); %%plota o novo grafico, linha na cor vermelha, "+" em cada
ponto, ":" para linha tracejada
title('Gráfico da Função seno'); %% insere título no grafico
legend('Amplitude = 1','Amplitude = 2'); %%insere legenda no gráfico

_______________________________________________________________________________35
Cálculo Numérico Utilizando Matlab

_______________________________________________________________________________

Figura 15 – Gráfico gerado após a execução do programa.

Exemplo:
−x
1) Seja a função y = e ⋅ sen(x) . Como seria seu gráfico no intervalo [0 ; e1 ⋅ π ]?

%%% Gráfico da função f(x)=exp(-x)*sin(x) %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x=0:0.1:exp(1)*pi; %%gera o vetor x
y=exp(-x).*sin(x); %%calcula as amplitudes, vetor y
plot(x,y,'--b');
%%plota o grafico
grid on;
%% coloca o grid
title('gráfico f(x)=exp(-x)*sin(x)'); %% coloca o titulo no grafico
xlabel('eixo x'); %% coloca texto no eixo x
ylabel('eixo y'); %% coloca texto no eixo y
gtext('ponto de máximo local'); %%disponibiliza ao usuario marcar o ponto no
grafico

Figura 16 – Gráfico gerado após a execução do programa.

_______________________________________________________________________________36
Cálculo Numérico Utilizando Matlab

na cor azul grid on. %%\fontname{arial} Figura 17 – Gráfico da função x^3-9*x+3. %%calcula as amplitudes.'--b').31).*x+3. \it italico{'texto'}.*x+3}' ). 3]? %%% Gráfico da função f(x)=x.y. %% coloca texto no eixo y axis([-4 4 -25 15]) %%ajusta os eixos para os limites [XMIN XMAX YMIN YMAX] %%\bf negrito{'texto'}. 33 livro. %% coloca o titulo no grafico em negrito xlabel('eixo x'). linha pontilhada._______________________________________________________________________________ 1) Seja a função f ( x) = x 3 − 9 x + 3 (livro.^3-9. %% coloca texto no eixo x ylabel('eixo y').^3-9. %% coloca o grid title('\bf{gráfico f(x)=x.^3-9. vamos isolar a função f(x) e obter a equação equivalente g(x)=h(x) e esboçar o gráfico das funções g(x) e h(x) no mesmo eixo cartesiano e localizar os pontos x onde as duas curvas se interceptam.*x+3 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% x = -4:0. Como seria seu gráfico no intervalo [-4 . 2) Utilizando o processo de ii).1:3. f ( x) = x 3 − 9 x + 3 g ( x) = x 3 h( x) = 9 x − 3 _______________________________________________________________________________37 Cálculo Numérico Utilizando Matlab . pg. vetor y plot(x. %%gera o vetor x y = x. pg. %%plota o grafico.

_______________________________________________________________________________ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Gráfico das funções g(x)=x.h. linha pontilhada.*x-3 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% x = -10:0. %%plota o grafico g(x). x = 0:0.^2.^2.^3.*x-3.'k --') _______________________________________________________________________________38 Cálculo Numérico Utilizando Matlab .2.2) plot(x.x. vetor h hold on.1) plot(x. %%gera o vetor x g = x.2 Estilos de Linhas e Símbolos Os tipos de linhas.'r'). na cor azul grid on. subplot(1. %%segura o grafico g(x) para que possamos plotar h(x) plot(x.'--b'). símbolos e cores usados para plotar gráficos podem ser controlados se os padrões não são satisfatórios. vetor g plot(x.g. %% coloca texto no eixo x ylabel('eixo y').x.^3 e h(x)=9. %% coloca o grid h=9. na cor vermelho %% vamos plotar g e h para analisar onde g(x)=h(x). pg 35 livro.2. xlabel('eixo x'). %%plota o grafico h(x). 13.1:10. %% coloca texto no eixo y axis([-5 5 -40 40]) %%ajusta os eixos para os limites [XMIN XMAX YMIN YMAX] Figura 18 – Gráficos das funções g(x)=x^3 e h(x)=9x-3.'k*') subplot(1.05:1. %%calcula as amplitudes. Por exemplo. %%calcula as amplitudes. linha pontilhada.

Sintaxe: subplot(m.n.p) Parâmetros de entrada: m= número de eixos na vertical (número de linhas). pontos e cores também podem ser usados: _______________________________________________________________________________39 Cálculo Numérico Utilizando Matlab . n=Número de eixos na horizontal (número de colunas). detalhe comando “subplot”._______________________________________________________________________________ Figura 19 – Plotando gráficos com marcadores e linha pontilhada. p=Índice do eixo corrente Outros tipos de linhas. Comando subplot = Gera vários eixos em uma mesma janela.

3 Coordenada Polar e Gráfico de Barras polar(theta.rho. %% Gerando gráficos em coordenadas polares theta=-2*pi:0. em radianos.fmt) plota em coordenadas polares o ângulo theta. rho=1:126. r que é a variação radial linear. e fmt é a cadeia de caracteres contendo a descrição do tipo de curva a ser traçado (como o plot). polar(theta.1:2*pi.r.'r*') _______________________________________________________________________________40 Cálculo Numérico Utilizando Matlab ._______________________________________________________________________________ 13.

Figura 21 – Gráficos de barras._______________________________________________________________________________ Figura 20 – Coordenadas polares. _______________________________________________________________________________41 Cálculo Numérico Utilizando Matlab .

2.4 Gráficos 3-D O MATLAB possui muitos recursos para visualização de dados em 3D.3) stairs(x. Tabela 8 – Comandos para plotar gráficos 3-D.4) barh(x.1) bar(x._______________________________________________________________________________ %% Gerando gráficos de Barras x=-2. A função meshgrid transforma o domínio especificado por dois vetores x y em duas matrizes X e Y. O primeiro passo para plotar uma função de 2 variáveis z=f(x. subplot(2. Superfícies tipo mesh são úteis para visualizar matrizes demasiadamente grandes para serem mostradas na forma numérica. y=exp(-x. para funcionarem como o domínio da função.y) title('Grafico de barras horizontal').*x).y) title('Grafico de barras 3-D de uma curva em forma de sino').y) é gerar matrizes X e Y contendo linhas e colunas repetidas. Estes são alguns comandos para plotar gráficos tridimensionais e contornos.2.2. Este item representa as principais funções relacionadas a este tópico.2.9:0.2:2. O MATLAB define uma superfície do tipo mesh (rede) pelas coordenadas Z sobre um plano x-y. ou para plotar funções de duas variáveis.2) bar3(x. respectivamente.y) title('Grafico de barras de uma curva em forma de sino').y) title('Grafico em escada de uma curva em forma de sino'). Essas matrizes então são usadas para avaliar a função de 2 variáveis. Por exemplo.9. subplot(2. subplot(2. seja a função: _______________________________________________________________________________42 Cálculo Numérico Utilizando Matlab . subplot(2. 13.

[Mx. mesh(Mx.5:pi. Mz=cos(Mx).Mz). Figura 22 x=-pi:0. Mz=cos(Mx).5:pi._______________________________________________________________________________ x=-pi:0.My]=meshgrid(x. y=-pi:0.y).y). [Mx. mesh(Mx.Mz).My.5:pi. surf(Mx.Mz) Figura 23 _______________________________________________________________________________43 Cálculo Numérico Utilizando Matlab .My]=meshgrid(x.5:pi.*sin(My). y=-pi:0.My.My.*sin(My).

5:8.^2)+eps. Z=sin(r).Y]=meshgrid(-8:0.Y]=meshgrid(-8:0.Z) surf(X.-8:0. mesh(X._______________________________________________________________________________ [X.Z) Figura 24 [X.Y./r.-8:0.5:8. Z=sin(r).5:8). r= sqrt(X./r. r= sqrt(X.Y.^2)+eps.5:8).Z) Figura 25 _______________________________________________________________________________44 Cálculo Numérico Utilizando Matlab .Y.^2+Y.^2+Y. mesh(X.

3*sqrt(X.3*sqrt(X.Y.Y]=meshgrid(-8:0.5:8.Y.Y]=meshgrid(-8:0.3*sqrt(X.^2)) Figura 26 figure(3) [X.5:8.^2+Y._______________________________________________________________________________ figure(2) [X.5:8).^2+Y.-8:0.^2)) surf(X.^2+Y. mesh(X. mesh(X.^2)) Figura 27 _______________________________________________________________________________45 Cálculo Numérico Utilizando Matlab .-8:0.5:8).Y.

1:4*pi.(x+y)) Figura 28 _______________________________________________________________________________46 Cálculo Numérico Utilizando Matlab . y=-4*pi:0.1:4*pi. plot3(cos(x).sin(y)._______________________________________________________________________________ Tabela 9 x=-4*pi:0.

Y.25:3.*sin(2*t). y=sqrt(t).z. zlabel('z'). plot3(x.^2)). Figura 30 _______________________________________________________________________________47 Cálculo Numérico Utilizando Matlab .^(-1. z=0. ylabel('y').'k'. zlabel('z').Z) xlabel('x').*cos(2*t).y). Z=1. y=-3:0. meshz(X.^2+Y.5*t.*cos(0.y. x=sqrt(t).1:6*pi.8. [X. ylabel('y').*sin(X).5*Y).'linewidth'.Y]=meshgrid(x. Figura 29 %% Malha e persianas verticais x=-3:0._______________________________________________________________________________ %% Equações paramétricas t=0:0.2) grid on xlabel('x').25:3.5*sqrt(X.

5 Anotações no Gráfico O MATLAB possui comandos de fácil utilização para adicionar informações em um gráfico: Tabela 10 Por exemplo: fplot('sin'._______________________________________________________________________________ 13. [-pi pi]) title('Gráfico da função f(x)=seno(x). -pi<x<pi') xlabel('x') ylabel('f(x)') grid Figura 31 _______________________________________________________________________________48 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ 14.0000 -12.1.0000 25.2251 . os valores para os quais o polinômio é igual a zero.0000 -0. as raízes do polinômio são encontradas usando-se a função roots(p): roots(p) ans = 11.7473 2.2251 . como exemplo: >> p=[1 -12 0 25 116] p = 1 -12 0 25 116 >> r=roots(p) r = 11.2251 + 1. isto é.1 Raízes Dada essa forma.0000 116.7028 -1. POLINÔMIOS Encontrar raízes de um polinômio.0000 >> _______________________________________________________________________________49 Cálculo Numérico Utilizando Matlab .7473 2. No MATLAB.2251 + 1.4672i >> p2=poly(r) p2 = 1.4672i Dadas as raízes também é possível construir o polinômio associado. O comando que executa tal procedimento é o comando poly. Por exemplo: x 4 − 12 x 3 + 0 x 2 + 25 x + 116 é introduzido como: p=[1 -12 0 25 116] p = 1 -12 0 25 116 14.4672i -1.7028 -1.4672i -1.1. um polinômio é representado por um vetor linha contendo seus coeficientes em ordem decrescente.

2 Multiplicação A multiplicação polinomial é efetuada por meio da função conv(que faz a convolução 3 2 entre dois vetores).1.0473 + 1._______________________________________________________________________________ Calcular a raiz do polinômio >> p=[1 0 -2 -5] P ( x) = x 3 − 2 x − 5 p = 1 0 -2 -5 >> r=roots(p) r = 2. Consideremos o produto de dois polinômios a ( x) = x + 2 x + 3 x + 4 e b( x) = x 3 + 4 x 2 + 9 x + 16 .0473 . a=[1 2 3 4]. b=[1 4 9 16]. c=conv(a. 14.1359i -1.0946 -1.1359i >> Por convenção o Matlab armazena as raízes em vetores coluna.Q) R = 4 13 28 27 18 >> _______________________________________________________________________________50 Cálculo Numérico Utilizando Matlab .b) c = 1 6 20 50 Consideremos os polinômios >> P=[1 2 3] 75 84 64 P ( x) = x 2 + 2 x + 3 e Q( x) = 4 x 2 + 5 x + 6 P = 1 2 3 >> Q=[4 5 6] Q = 4 5 6 >> R=conv(P.

a fim de torná-lo da mesma ordem do polinômio de ordem mais alta.Q( x) = 4 x 4 + 13x 3 + 28 x 2 + 27 x + 18 14. q ( x ) = 4 x − 11 quociente e r ( x ) = 7 x + 69 resto.4 Divisão Consideremos o polinômio P ( x) = 4 x 3 + x 2 − 2 x + 3 e Q( x) = x 2 + 3 x + 6 . b=[1 4 9 16]. >> P=[4 1 -2 3] P = 4 1 -2 3 >> Q=[1 3 6] Q = 1 3 6 >> [q r]=deconv(P._______________________________________________________________________________ Nos devolve o resultado: 4 13 28 27 18. aquele que tiver menor ordem terá de ser preenchido com coeficientes iguais a zero.Q) q = 4 -11 0 0 r = 7 69 Isto é.3 Adição O MATLAB possui uma função direta para somar polinômios: a=[1 2 3 4]. Isto é R ( x) = P ( x). d=a+b d = 2 6 12 20 Quando dois polinômios forem de ordens diferentes. Exemplo: >> e= c+[0 0 0 d] e= 1 6 20 52 81 96 84 14. _______________________________________________________________________________51 Cálculo Numérico Utilizando Matlab .

vamos derivar este polinômio: >> P=[2 -1 3 5 9] P = 2 -1 3 5 6 5 9 >> polyder(P) ans = 8 -3 >> Isto é P ' ( x ) = 8 x − 3 x + 6 x + 5 3 2 14.7 Derivada de um Produto de Polinômios Considere os seguintes polinômios: P ( x) = x 2 − 5 x + 9 e Q( x) = x 2 + x − 1 >> P=[1 -5 9] P = 1 -5 9 >> Q=[1 1 -1] Q = 1 1 -1 >> polyder(P.x) %%calcula p(x) nos valores armazenados em x e armazena o resultado em v.5 Cálculo de Polinômios O comando que realiza o calculo dos valores de f(x) podem ser realizados através do comando polyval.3). %%define o polinômio p(x)=x3+4x2-7x-10 v=polyval(p.Q) ans = _______________________________________________________________________________52 Cálculo Numérico Utilizando Matlab .v) grid 14. x=linspace(-1._______________________________________________________________________________ 14.6 Derivada de Polinômios Considere o seguinte polinômio P ( x) = 2 x 4 − x 3 + 3 x 2 + 5 x + 9 .%% escolhe 100 pontos entre –1 e 3. O resultado pode ser representado graficamente usando-se: plot(x. p=[1 4 -7 -10].

Isto é P ' ( x ) = 4 x − 12 x + 6 x + 14 3 2 14.Q) n = 1 14 -44 1 14 49 d = >> 2 2 Isto é n( x ) = x + 14 x − 44 numerador e n( x ) = x + 14 x + 49 o denominador.8 Derivada de um Quociente de Polinômios 2 Considere os seguintes polinômios: P ( x) = x − 5 x + 9 e Q( x ) = x + 7 >> P=[1 -5 9] P = 1 -5 9 >> Q=[1 7] Q = 1 7 >> [n. _______________________________________________________________________________53 Cálculo Numérico Utilizando Matlab .d]=polyder(P._______________________________________________________________________________ 4 -12 6 14 >> Nos devolve como resultado: 4 -12 6 14.

LISTA DE FUNÇÕES DO MATLAB _______________________________________________________________________________54 Cálculo Numérico Utilizando Matlab ._______________________________________________________________________________ 15.

_______________________________________________________________________________ _______________________________________________________________________________55 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________56 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________57 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________58 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________59 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________60 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________61 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________62 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________63 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________64 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________65 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________66 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________67 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________68 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________69 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________70 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________71 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________72 Cálculo Numérico Utilizando Matlab .

_______________________________________________________________________________ _______________________________________________________________________________73 Cálculo Numérico Utilizando Matlab .

[4]. [2]. _______________________________________________________________________________74 Cálculo Numérico Utilizando Matlab . Faculdade de Engenharia Industrial. 2006. Vicente. Editora Bookman. Apostila. REFERÊNCIAS BIBLIOGRÁFICAS [1]. Editora Cengage Learning. 2ª Edição. S.5”. Gilat. [3]. [5]. 2002. Apostila. Apostila. Janeiro. A. Matlab Curso Introdutório. A. “Curso Introdutório de Matlab 6. Centro Brasileiro de Pesquisas Físicas. 1994. “Programação em Matlab Para Engenheiros”. Matlab & Simulink. 2° Edição. S. Chapman. 2003. “Matlab Com Aplicações em Engenharia”. 2010. J._______________________________________________________________________________ 16.

Sign up to vote on this title
UsefulNot useful