Universidade Federal de São João Del-Rei        Campus Alto Paraopeba      Disciplina: Cálculo Numérico           Apostila...
_______________________________________________________________________________                                   SUMÁRIO1...
_______________________________________________________________________________9. GERANDO VETORES                         ...
_______________________________________________________________________________1. INTRODUÇÃO      MATLAB (abreviatura de M...
_______________________________________________________________________________        e) Interface Gráfica de Usuário: te...
_______________________________________________________________________________ Figura 1 – Ambiente Matlab janelas: “Coman...
_______________________________________________________________________________   • É a área na qual são exibidas todas as...
_______________________________________________________________________________2.4 Command History      Área onde ficam ar...
_______________________________________________________________________________                                 Figura 5 –...
_______________________________________________________________________________   mostra aproximadamente 4 dígitos decimai...
_______________________________________________________________________________% O comando disp é utilizado para exibir a ...
_______________________________________________________________________________6. OPERADORES LÓGICOS      Um operador lógi...
_______________________________________________________________________________                                Figura 8 – ...
_______________________________________________________________________________       Analogamente em uma matriz, com linh...
_______________________________________________________________________________        0      3        3      68.3   Multi...
_______________________________________________________________________________8.5 Divisão Direta de Matrizes     Existem ...
_______________________________________________________________________________ans =       37    54       81   118%% poten...
_______________________________________________________________________________        7        8       9     9     0     ...
_______________________________________________________________________________%% autovalores associados a matriz AD =    ...
_______________________________________________________________________________“posto” da matriz, que nada mais é do que a...
_______________________________________________________________________________A =      1.0000 + 5.0000i        2.0000 + 6...
_______________________________________________________________________________A =        3    11       5        4     1  ...
_______________________________________________________________________________ones(5,5)ans =        1      1       1     ...
_______________________________________________________________________________ans =  -0.432564811528221           0.28767...
_______________________________________________________________________________  Columns 12 through 16      0.9193        ...
_______________________________________________________________________________k1 =            0      2.5000       5.0000 ...
_______________________________________________________________________________                         Figura 10 – Result...
_______________________________________________________________________________            Tabela 6 – Comando de entrada,s...
_______________________________________________________________________________      1      4      9     16      O laço fo...
_______________________________________________________________________________Calcular o fatorial de um número qualquer.%...
_______________________________________________________________________________     Outra forma de usar a estrutura é:if e...
_______________________________________________________________________________nota2=input(Digite a segunda nota: );if not...
_______________________________________________________________________________12. ARQUIVOS M DE FUNÇÕES      É um program...
_______________________________________________________________________________     No caso, vamos criar um programa princ...
_______________________________________________________________________________13. GRÁFICOS NO MATLAB      Gráficos são fe...
_______________________________________________________________________________                            Figura 15 – Grá...
_______________________________________________________________________________    1) Seja a função f ( x) = x 3 − 9 x + 3...
_______________________________________________________________________________%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...
_______________________________________________________________________________           Figura 19 – Plotando gráficos co...
_______________________________________________________________________________13.3 Coordenada Polar e Gráfico de Barras  ...
_______________________________________________________________________________                                     Figura...
_______________________________________________________________________________%% Gerando gráficos de Barrasx=-2.9:0.2:2.9...
_______________________________________________________________________________x=-pi:0.5:pi;y=-pi:0.5:pi;[Mx,My]=meshgrid(...
_______________________________________________________________________________[X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);r= sqrt(X...
_______________________________________________________________________________figure(2)[X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);...
_______________________________________________________________________________                                     Tabela...
_______________________________________________________________________________%% Equações paramétricast=0:0.1:6*pi;x=sqrt...
_______________________________________________________________________________13.5 Anotações no Gráfico     O MATLAB poss...
_______________________________________________________________________________14. POLINÔMIOS       Encontrar raízes de um...
_______________________________________________________________________________Calcular a raiz do polinômio           P ( ...
_______________________________________________________________________________Nos devolve o resultado: 4 13 28 27 18. Ist...
_______________________________________________________________________________14.5 Cálculo de Polinômios     O comando qu...
_______________________________________________________________________________      4     -12        6      14>>      Nos...
_______________________________________________________________________________15. LISTA DE FUNÇÕES DO MATLAB             ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________                                           ...
_______________________________________________________________________________16. REFERÊNCIAS BIBLIOGRÁFICAS[1].   S. J. ...
Próximos SlideShares
Carregando em…5
×

Apostila matlab

1.350 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.350
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
141
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Apostila matlab

  1. 1. 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
  2. 2. _______________________________________________________________________________ SUMÁRIO1. INTRODUÇÃO 41.1 Vantagens do Matlab 41.2 Desvantagens do Matlab 52. O AMBIENTE MATLAB 52.1 Comand Window 62.2 Workspace 62.3 Current Directory 72.4 Command History 83. COMANDOS BÁSICOS E DECLARAÇÕES DE VARIÁVEIS 84. OPERAÇÕES ARITMÉTICAS 85. EXIBINDO DADOS DE SAÍDA 95.1 O Comando disp 106. OPERADORES LÓGICOS 127. OPERADORES RELACIONAIS 128. CÁLCULO MATRICIAL 138.1 Elementos de uma Matriz 138.2 Soma e Subtração 148.3 Multiplicação de uma Matriz por um Escalar 158.4 Multiplicação entre Matrizes 158.5 Divisão Direta de Matrizes 168.6 Potênciação 168.7 Transposta de uma Matriz 178.8 Determinante 178.9 Inversa da Matriz 188.10 Autovalores e Autovetores 188.11 Matriz escalonada reduzida 198.12 Posto de uma Matriz 198.13 Números e Matrizes Complexas 208.14 Matriz diagonal ou diagonal de uma matriz 218.15 Matrizes Triangulares 218.16 Matriz Identidade 228.17 Matriz Composta por Elementos Unitários 228.18 Matriz Nula (composta por elementos nulos) 238.19 Matriz Aleatória 23_______________________________________________________________________________ 2Cálculo Numérico Utilizando Matlab
  3. 3. _______________________________________________________________________________9. GERANDO VETORES 249.1 O Comando linspace 2510. ARQUIVOS M DE COMANDOS 2611. CONTROLE DE FLUXO 2811.1 Laço For 2811.2 Laço While 2911.3 Estrutura If-Else-End 3011.4 Estrutura Switch-Case 3212. ARQUIVOS M DE FUNÇÕES 3313. GRÁFICOS NO MATLAB 3513.1 Gráficos 2-D 3513.2 Estilos de Linhas e Símbolos 3813.3 Coordenada Polar e Gráfico de Barras 4013.4 Gráficos 3-D 4213.5 Anotações no Gráfico 4814. POLINÔMIOS 4914.1 Raízes 4914.2 Multiplicação 5014.3 Adição 5114.4 Divisão 5114.5 Cálculo de Polinômios 5214.6 Derivada de Polinômios 5214.7 Derivada de um Produto de Polinômios 5214.8 Derivada de um Quociente de Polinômios 5315. LISTA DE FUNÇÕES DO MATLAB 5416. REFERÊNCIAS BIBLIOGRÁFICAS 74_______________________________________________________________________________ 3Cálculo Numérico Utilizando Matlab
  4. 4. _______________________________________________________________________________1. INTRODUÇÃO MATLAB (abreviatura de Matrix Laboratory – Laboratório de Matrizes) é umprograma d ecomputador de uso específico, otimizado para executar cálculos científicos ede engenharia. Ele nasceu como um programa para operações matemáticas sobrematrizes, mas ao longo dos anos transformou-se em um sistema computacional flexívelcapaz de resolver essencialmente qualquer problema técnico. Seus elementos básicos são matrizes que não requerem dimensionamento. Elepermite implementar e resolver problemas matemáticos muito mais rápida eeficientemente que através de outras linguagens como C, Basic, Pascal ou Fortran. O MATLAB possui uma família de aplicativos específicos (“toolboxes”), que sãocoleções de funções usadas para resolver determinados problemas tais como:otimização, manipulação algébrica, redes neurais, processamento de sinais, simulação desistemas dinâmicos, entre outros. Provavelmente, a característica mais importante do MATLAB é a sua extensibilidade,que permite que engenheiros, matemáticos cientistas, e até mesmo você, contribuampara o enriquecimento.1.1 Vantagens do Matlab O Matlab tem muitas vantagens, em comparação com linguagens computacionaisconvencionais, para resolver problemas técnicos. Entre elas, temos: a) Facilidade de uso: o Matlab é uma linguagem interpretada, assim como muitas versões de Basic. b) Independência de Plataforma: tem suporte em diferentes sistemas computacionais: Windows XP/Vista, Linux, diversas versões de Unix e Macintosh. c) Funções Predefinidas: conta com uma grande biblioteca de funções predefinidas, 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, o Matlab tem muitos comandos para desenhos e imagens, que podem ser exibidos em qualquer dispositivo de saída gráfica compatível com o computador que executa o Matlab. Este recurso torna o Matlab uma ferramenta excepcional para visualização de dados técnicos._______________________________________________________________________________ 4Cálculo Numérico Utilizando Matlab
  5. 5. _______________________________________________________________________________ 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. Com este recurso, o programador é capaz de projetar programas sofisticados de análise de dados, os quais podem ser operados por usuários relativamente inexperientes.1.2 Desvantagens do Matlab O Matlab tem duas desvantagens principais. Primeiro, é uma linguagem interpretada,por isso pode ser mais lento que linguagens compiladas. Esse problema pode serdiminuído pela estruturação apropriada dos programas Matlab para otimizar odesempenho do código vetorizado. A segunda desvantagem é o custo: uma cópia completa do Matlab é de cinco a dezvezes mais cara que um compilador convencional C ou Fortran.2. O AMBIENTE MATLAB A unidade fundamental de dados em qualquer programa Matlab é a matriz, que éuma coleção de valores de dados organizados em linhas e colunas, determinada por umnome único. Até mesmo escalares são tratados como matrizes em Matlab, eles sãosimplesmente matrizes co apenas uma linha e uma coluna. No Matlab, os arquivos de comando tem extensão .m (M-files) e os arquivos dedados binários default tem extensão .mat (Mat-files). No Windows, o Matlab é instalado com os seguintes diretórios: BIN contém os programas binários do Matlab; DEMOS demonstração em HTML EXTERN suporte às linguagens FORTRAN, 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._______________________________________________________________________________ 5Cálculo Numérico Utilizando Matlab
  6. 6. _______________________________________________________________________________ Figura 1 – Ambiente Matlab janelas: “Comand Window”, “Workspace”, “Current Directory” e “Command History”.2.1 Comand Window • É a área de trabalho onde os comandos (as instruções) são digitados; • As operações podem ser realizadas e seus resultados são mostrados; • Também é nessa janela que se pode executar um arquivo m-file; • O prompt “>>” indica que o programa está pronto aguardando uma instrução; • Com as teclas “↑” (seta para cima) e “↓” (seta para baixo) é possível recuperar todos os comandos já digitados.2.2 Workspace Figura 2 – Janela “Workspace”._______________________________________________________________________________ 6Cálculo Numérico Utilizando Matlab
  7. 7. _______________________________________________________________________________ • É a área na qual são exibidas todas as variáveis definidas na área de trabalho; • Essa janela possui quatro colunas indicando o nome, dimensão, número de bytes e a classe de cada variável; • As variáveis podem ser editadas e visualizadas nessa própria janela, basta dar um click-duplo para editá-las;Há um menu flutuante que é possível: • Open – abrir a janela; • Graph – criar gráficos a partir dos dados contidos na variável; • Select All – selecionar todas as variáveis; • Import Data – importar variáveis de um arquivo para o workspace; • Save Selection As – salvar as variáveis selecionadas em um arquivo; • 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; • Delete – apagar a variável do workspace; • Clear Workspace – apagar todas as variáveis do workspace; • Rename – renomear a variável.2.3 Current Directory Área onde é exibida uma lista dos arquivos contidos no diretório corrente. Figura 3 – Janela “Current Directory”._______________________________________________________________________________ 7Cálculo Numérico Utilizando Matlab
  8. 8. _______________________________________________________________________________2.4 Command History Área onde ficam armazenadas todas as instruções executadas no MATLAB. Figura 4 – Janela “Command History”.3. COMANDOS BÁSICOS E DECLARAÇÕES DE VARIÁVEIS Para iniciar o nosso trabalho no MATLAB é necessário aprender alguns comandosessenciais da janela de trabalho (command window) e na seqüência vamos aplicá-los. Tabela 1 – Comando Básicos. who Mostra as variáveis do espaço de trabalho whos Mostra as variáveis do espaço de trabalho com detalhes clear Limpa a memória do espaço de trabalho clc Limpa a tela dir Mostra o conteúdo do diretório que se encontra cd Informa ou altera o diretório corrente what Exibe os arquivos Matlab contidos no diretório4. OPERAÇÕES ARITMÉTICAS As expressões podem ser construídas usando os operadores aritméticos usuais: Tabela 2 – Operadores aritméticos. + Adição - Subtração * Multiplicação / Divisão ^ Potenciação_______________________________________________________________________________ 8Cálculo Numérico Utilizando Matlab
  9. 9. _______________________________________________________________________________ Figura 5 – Exemplos de operações aritméticas.5. EXIBINDO DADOS DE SAÍDA O formato numérico exibido na tela pode ser modificado utilizando-se o comandoformat, que afeta somente o modo como as matrizes são mostradas, e não como elassão computadas ou salvas. Se todos os elementos das matrizes são inteiros exatos, a matriz é mostrada em umformato sem qualquer ponto decimal. Por exemplo,x = [-1 0 1]resulta em:x =-1 0 1 Se pelo menos um dos elementos da matriz não é inteiro exato, existem váriaspossibilidades de formatar a saída. O formato "default", chamado de formato “short”,_______________________________________________________________________________ 9Cálculo Numérico Utilizando Matlab
  10. 10. _______________________________________________________________________________ mostra aproximadamente 4 dígitos decimais ou usam notação científica. Por exemplo, a matriz: x = [4/3 1.2345e-6] é mostrada , para cada formato usado, da seguinte maneira: x = 1.3333 0.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”. O formato pode ser alterado pela seleção da opção “File>>Preferences>>Command Window”. Alternativamente, o usuário pode acionar o comando format para alterar as preferências. Este comando altera o formato-padrão de acordo com os valores dados na Tabela 3. O formato-padrão pode ser modificado para exibir mais dígitos significativos, para forçar a exibição em notação científica, 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. Tabela 3 – Formatos de exibição de saída. Comando de Formatação Resultados Exemploformat short 4 dígitos decimais (formato-padrão) 12,3457format long 14 dígitos decimais 12,34567890123457format short e 5 dígitos mais expoente 1,2346e+001format short g 5 dígitos no total, com ou sem expoente 12,346format long e 15 dígitos mais expoente 1,234567890123457e+0001format long g 15 dígitos no total, com ou sem expoente 12,3456789012346format bank Formato monetário 12,35format hex Exibição hexadecimal de bits 4028b0fcd32f707aformat rat Razão aproximada entre inteiros pequenos 1000/81 5.1 O Comando disp O comando disp exibe o conteúdo de uma variável, mas, ocultando o nome da mesma, e/ou mostra strings na forma de textos. A formageral do comando disp é: disp (nome de uma variável) ou dsisp (‘string de texto’) Toda vez que um comando disp é executado, a saída que ele produz é mostrada numa nova linha. Por exemplo: % A variável A é inicializada com uma matriz 2x3 A=[5 9 1; 7 2 4] A = 5 9 1 7 2 4 10 _______________________________________________________________________________ Cálculo Numérico Utilizando Matlab
  11. 11. _______________________________________________________________________________% O comando disp é utilizado para exibir a matriz Adisp(A) 5 9 1 7 2 4% O comando disp é utilizado para mostrar uma mensagemdisp(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 paracalcular a soma entre 3 números. Ao final da soma o a rotina exibe um texto juntamentecom o resultado da soma. Figura 6 – M-File implementado, Janela Editor. Figura 7 – Algoritmo executando na Janela de Comandos. 11_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  12. 12. _______________________________________________________________________________6. OPERADORES LÓGICOS Um operador lógico examina senteças verdadeiras/falsas e produz resultadosverdadeiro (1) ou falso (0), de acordo com a funcionalidade do operador. Por exemplo, ooperador lógico AND resulta 1 (verdadeiro) se, e somente se, todas as senteçasenvolvidas na operação forem verdadeiras. Tanto os operadores lógicos quantorelacionais podem ser utlizados em expressões matemáticas ou, como será visto adiante,serem combinados a outros comando para controlar ou tomar decisão sobre o fluxo doprograma. Tabela 4 – Operadores lógicos. Símbolo Operador & e | ou ~ não7. OPERADORES RELACIONAIS O operador relacional compara dois números determinando se oresultado da sentçade comparação é verdadeiro (V) ou falso (F). Por exemplo (5<8 V), ou seja, se asenteça for verdadeira o valor retornado é 1. Caso contrário, o valor retornado é 0. Tabela 5 – Operadores lógicos. 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 (==), sem espaço entre eles. Isso porque umúnico sinal de igualdade representa o operador de atribuição. Os demais operadoresduplos (representados por dois caracteres) também não possuem espaços entre oscaracteres (<=, >=, ~=). 12_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  13. 13. _______________________________________________________________________________ Figura 8 – Exemplos com operadores relacionais.8. CÁLCULO MATRICIAL As matrizes em Matlab podem ter uma ou mais dimensões. Matrizes unidimensionaispodem ser visualizadas como uma série de valores colcoados em uma linha ou em umacoluna, 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áriopara um dado problema. Essas matrizes têm um índice para cada dimensão, e umelemento individual é selecionado pela especificação de um valor para cada índice.8.1 Elementos de uma Matriz Elementos de uma matriz podem ser qualquer expressão do MATLAB. Por exemplo:x=[-1.3 log(4.23^3) (1+2+3)/4*5]x = -1.3000 4.3266 7.5000 Elementos individuais de uma matriz podem ser referenciados com seus respectivosíndices entre parênteses. No exemplo anterior, para referenciar o segundo elemento dovetor x:x(2)ans = 4.3266 13_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  14. 14. _______________________________________________________________________________ Analogamente em uma matriz, com linha e coluna determinada tenho um elemento.Seja:x=[1 2 3;4 5 6;7 8 9]x = 1 2 3 4 5 6 7 8 9>>%% extrair o elemento da linha 2 e coluna 3x(2,3)ans = 6 Repare que a referência é sempre na forma matriz(linha,coluna).8.2 Soma e Subtração Os símbolos + e - denotam adição e subtração de matrizes. A operação é definidasempre que as matrizes tenham a mesma dimensão. Exemplo:A = [1 2; 3 4]A = 1 2 3 4B=AB = 1 3 2 4C=A+BC = 2 5 5 8 A adição e subtração também é definida quando um dos operandos for um escalar.Exemplo:D=C-2D = 14_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  15. 15. _______________________________________________________________________________ 0 3 3 68.3 Multiplicação de uma Matriz por um EscalarAA = 1 2 3 42*Aans = 2 4 6 8D=3*AD = 3 6 9 128.4 Multiplicação entre Matrizes A multiplicação de matrizes é indicada por "*". A multiplicação A*B é definidasomente se a segunda dimensão de A for igual à primeira dimensão de B, ou seja, onúmero de colunas da primeira matriz for igual ao número de linhas da segundamatriz. Assim a multiplicação pode ser executada como:AA = 1 2 3 4BB = 1 3 2 4A*Bans = 5 11 11 25 15_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  16. 16. _______________________________________________________________________________8.5 Divisão Direta de Matrizes Existem dois símbolos para divisão de matrizes no MATLAB "" e "/". Se A é umamatriz quadrada não singular, então AB e A/B correspondem respectivamente a inv(A)*Be A*inv(B), por exemplo:A=[1 2; 3 4]A = 1 2 3 4B=[5 6; 7 8]B = 5 6 7 8ABans = -3 -4 4 5A/Bans = 3.0000 -2.0000 2.0000 -1.0000%%divisão de elemento por elementoA./Bans = 0.2000 0.3333 0.4286 0.50008.6 Potênciação A expressão A^p eleva A à p-ésima potência e é definida se A é matriz quadrada ep um escalar. Se p é um inteiro maior do que um, a potenciação é computada comomúltiplas multiplicações. Por exemplo:AA = 1 2 3 4A^3 16_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  17. 17. _______________________________________________________________________________ans = 37 54 81 118%% potenciação de elementos por elementosA.^3ans = 1 8 27 648.7 Transposta de uma Matriz O caracter (apóstrofe) denota transposta de uma matriz. Se z for complexo, z é otransposto conjugado complexo de z. Exemplo:A = [1 2; 3 4]A = 1 2 3 4%% realiza a transposta da matriz AAans = 1 3 2 4%% no caso de números complexos, z’ é o conjugado complexo de zz=2+5iz = 2.0000 + 5.0000izans = 2.0000 - 5.0000i8.8 Determinante Para calcularmos o determinante de uma matriz utilizamos o comando det(matriz).%% Entrando com a matriz A 5x5A=[1 2 4 5 6;5 1 1 3 5;7 8 9 9 0;2 2 4 0 9;1 1 1 2 3]A = 1 2 4 5 6 5 1 1 3 5 17_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  18. 18. _______________________________________________________________________________ 7 8 9 9 0 2 2 4 0 9 1 1 1 2 3%% Calculando o determinante da matriz Adet(A)ans = -11458.9 Inversa da Matriz Para calcularmos a inversa de uma matriz utilizamos o comando inv(matriz).%% Calculando a inversa da Matriz Ainv(A)ans = -0.0271 0.2489 0.0227 0.0157 -0.4079 -0.6218 -0.3799 0.1022 0.0707 1.6646 0.3991 0.1048 0.0201 0.0908 -1.2454 0.1747 0.0393 -0.0175 -0.1659 0.0830 -0.0332 -0.0175 -0.0367 0.0515 0.27428.10 Autovalores e Autovetores A função eig( ) calcula os autovetores e os autovalores de A, respectivamente.Existem funções que retornam dois ou mais valores. Nestes casos, os valores de saídadevem estar entre colchetes [ ] e separados por vírgula. Exemplo:A=[1 -1;-4 1]A = 1 -1 -4 1%% Retorna um vetor com os autovalores da matriz A;eig(A)ans = 3.0000 -1.0000 [V, D] = eig( A ): Produz matrizes de autovalores (D) e auto-vetores (V) da matriz A,de forma que A*V = V*D. A matriz D é a forma canônica de A menos uma matriz diagonalcom os autovalores de A na diagonal principal. As colunas da matriz V são os autovetoresde A;[V,D] = eig(A)%% autovetores associados a matriz AV = 0.4472 0.4472 -0.8944 0.8944 18_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  19. 19. _______________________________________________________________________________%% autovalores associados a matriz AD = 3.0000 0 0 -1.00008.11 Matriz escalonada reduzida O comando rref(matriz) encontra a matriz escalonada reduzida através do processode escalonamento de Gauss Jordan.A=[1 2 4 5 6;5 1 1 3 5;7 8 9 9 0;2 2 4 0 9;1 1 1 2 3]A = 1 2 4 5 6 5 1 1 3 5 7 8 9 9 0 2 2 4 0 9 1 1 1 2 3rref(A)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%% exemplo de um sistema possível e indeterminado 0*z=0A=[1 2 8; 2 4 16; 0 1 3]A = 1 2 8 2 4 16 0 1 3rref(A)ans = 1 0 2 0 1 3 0 0 08.12 Posto de uma Matriz Do exemplo anterior nota-se que a matriz em sua forma escalonda reduzida possuiduas linhas não-nulas e infinitos valores para z. O número de linhas não-nulas pode serencontrado através do comando rank(matriz), ou seja, o comano “rank” encontra o 19_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  20. 20. _______________________________________________________________________________“posto” da matriz, que nada mais é do que a quantidade máxima de linhas linearmenteindependentes da matriz.A=[1 2 8; 2 4 16; 0 1 3]A = 1 2 8 2 4 16 0 1 3rank(A)ans = 2rref(A)ans = 1 0 2 0 1 3 0 0 08.13 Números e Matrizes Complexas Números complexos são permitidos em todas operações e funções no MATLAB. Osnúmeros complexos são introduzidos usando-se as funções especiais i e j. Por exemploz= 3 + 4*iz = 3.0000 + 4.0000i%% ou podemos escrever tambémz= 3 +4*jz = 3.0000 + 4.0000i As seguintes declarações mostram dois caminhos convenientes para se introduzirmatrizes complexas no MATLAB:A= [1 2; 3 4]+i*[5 6;7 8]A = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i Que produz o mesmo resultado que:A= [1+5*i 2+6*i; 3+7*i 4+8*i] 20_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  21. 21. _______________________________________________________________________________A = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i8.14 Matriz diagonal ou diagonal de uma matriz Se x é um vetor, diag(x) é a matriz diagonal com x na diagonal. Por exemplo:>> x=[1 2 3 1 -1 4]x = 1 2 3 1 -1 4%% como x é um vetor, diag(x) monta uma matriz na qual a diagonoal principal é ovetor xdiag(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, então diag(A) é um vetor cujos componentes são oselementos da diagonal de A.A=[3 11 5; 4 1 -3; 6 2 1]A = 3 11 5 4 1 -3 6 2 1%% extrai a diagonal principal da matrizdiag(A)ans = 3 1 18.15 Matrizes Triangulares O comando triu extrai a matriz triangular superior da matriz A, enquanto o comandotril extrai a matriz triangular inferior da matriz A. Por exemplo:A=[3 11 5; 4 1 -3; 6 2 1] 21_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  22. 22. _______________________________________________________________________________A = 3 11 5 4 1 -3 6 2 1%% matriz triangular superiortriu(A)ans = 3 11 5 0 1 -3 0 0 1%% matriz triangular inferiortril(A)ans = 3 0 0 4 1 0 6 2 18.16 Matriz Identidade De modo a construir uma matriz identidade (quadrada ou com dimensão n x m), afunção a utilizar é dada por:eye(n,m)Exemplo:eye(5,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 1eye(5,8)ans = 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 08.17 Matriz Composta por Elementos Unitários No caso de ser necessário a obtenção de uma matriz composta apenas porelementos unitários, temos que:ones(n,m) 22_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  23. 23. _______________________________________________________________________________ones(5,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 1ones(5,8)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 18.18 Matriz Nula (composta por elementos nulos) Para efetuar qualquer tipo de manipulação matricial, poderá ser útil a construção deuma matriz composta por elementos nulos:zeros(n,m)zeros(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 08.19 Matriz Aleatória A elaboração de testes a qualquer programa desenvolvido no MATLAB, ou parautilização de um outro qualquer modo, poderá fazer uso de matrizes compostas pornúmeros aleatórios uniformemente distribuídos no intervalo entre 0 e 1:rand(n,m)rand(3,3)ans = 0.171186687811562 0.276922984960890 0.823457828327293 0.706046088019609 0.046171390631154 0.694828622975817 0.031832846377421 0.097131781235848 0.317099480060861 No caso de se pretender uma distribuição normal dos números aleatórioscompreendidos entre 0 e 1, a função a utilizar será:randn(n,m)randn(3,3) 23_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  24. 24. _______________________________________________________________________________ans = -0.432564811528221 0.287676420358549 1.189164201652103 -1.665584378238097 -1.146471350681464 -0.037633276593318 0.125332306474831 1.190915465642999 0.3272923614086549. Gerando Vetores O dois pontos ( : ) é um caracter importante no MATLAB. Escrevendo:x=1:8x = 1 2 3 4 5 6 7 8 Cria um vetor cujo primeiro elemento é 1, o último é 8 e o passo entre os elementosdo vetor é 1. O mesmo comando pode ser modificado de forma a alterar o passo entre oselementos do vetor:x = 1:1.5:8x = 1.0000 2.5000 4.0000 5.5000 7.0000 Os dois pontos significam início:passo:fim. O valor de passo pode ser qualquernúmero real ( ≅ 0). A notação ( : ) é muito útil para gerar tabelas e plotar gráficos, comoveremos adiante.%% cria um vetor linha xx=0:0.2:3x = Columns 1 through 11 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.40001.6000 1.8000 2.0000 Columns 12 through 16 2.2000 2.4000 2.6000 2.8000 3.0000%% cria um vetor linha y, a partir dos valores de xy=exp(-x) + sin(x)y = Columns 1 through 11 1.0000 1.0174 1.0597 1.1135 1.1667 1.2094 1.2332 1.23201.2015 1.1391 1.0446 24_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  25. 25. _______________________________________________________________________________ Columns 12 through 16 0.9193 0.7662 0.5898 0.3958 0.1909%% cria uma matriz 16x2 a partir dos vetores x e y transpostosz=[x y]z = 0 1.0000 0.2000 1.0174 0.4000 1.0597 0.6000 1.1135 0.8000 1.1667 1.0000 1.2094 1.2000 1.2332 1.4000 1.2320 1.6000 1.2015 1.8000 1.1391 2.0000 1.0446 2.2000 0.9193 2.4000 0.7662 2.6000 0.5898 2.8000 0.3958 3.0000 0.1909 Outros incrementos, diferentes da unidade podem ser utilizados, como seja o casodo seguinte exemplo que impõe um incremento de pi/4.%% criamos um vetor que começa em 0 e vai até PI, com um passo de PI/4y = 0 : pi/4 : piy = 0 0.7854 1.5708 2.3562 3.1416 Também são possíveis incrementos negativos:%% criamos um vetor que começa em 6 e vai até 1, com um passo de -1z = 6 : -1 : 1z = 6 5 4 3 2 19.1 O Comando linspace Pode-se, também, gerar vetores linearmente espaçados fazendo uso da funçãolinspace. Por exemplo:%% criamos 6 pontos igualmente espaçados entre 0 e 1.k = linspace(0,1,6)k = 0 0.2000 0.4000 0.6000 0.8000 1.0000%% criamos 5 pontos igualmente espaçados entre 0 e 10.k1=linspace(0,10,5) 25_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  26. 26. _______________________________________________________________________________k1 = 0 2.5000 5.0000 7.5000 10.0000 Também é possível criar um espaçamento logarítmico entre os pontos do vetor. Istoé possível através do comando logspace(x1,x2,k). Onde x1 é o ponto inicial, x2 o pontofinal e k o numero total de elementos.10. ARQUIVOS M DE COMANDOS O MATLAB normalmente é usado no modo de comando(Janela de comandos –“Command Window”). Quando você entra com uma linha de comando, ele processa eimediatamente mostra o resultado. O MATLAB também pode executar uma seqüência decomandos que está armazenada num arquivo. Estes dois modos formam um ambienteinterpretativo. Os arquivos que contém declarações MATLAB são chamados M-filesporque usam a extensão “*.m”. Por exemplo, o arquivo senoide.m contém declaraçõesMATLAB para o cálculo e desenho de uma função senoidal com amplitude unitária,freqüência de 1000 Hz e ângulo de fase igual a zero: Figura 9 – Arquivo .m para o calculo de uma função seno com A=1, f=1000Hz. 26_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  27. 27. _______________________________________________________________________________ Figura 10 – Resultado após a execução do arquivo “senoide.m”. Um M-file consiste de uma seqüência de declarações MATLAB normais, podendoincluir referencias à outros M-files. Um M-file pode chamar ele próprio de forma recursiva.Você pode criar um M-file usando um editor de texto tal como o Notepad do Windows™,Edit do DOS ou outro qualquer. Dois tipos de M-files podem ser usadas: manuscritas(scripts) e funções. Arquivos scripts automatizam uma seqüência longa de comandos.Arquivos de função permite criar novas funções às existentes. Ambos, scripts e funçõessão arquivos texto tipo ASCII. Figura 11 – Arquivos .m de scripts e funções. Normalmente, enquanto um M-file está sendo executado, os comandos contidos noarquivo não são mostrados na tela. O comando echo permite visualizar o comando amedida que ele vai sendo executado. Isso é especialmente útil na depuração de umprograma ou para a confecção de um programa demonstrativo. Em virtude da grande utilidade dos arquivos de comandos o MATLAB possui váriasfunções apropriadas para o uso em arquivos M. Essas funções são: 27_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  28. 28. _______________________________________________________________________________ Tabela 6 – Comando de entrada,saída, depuração e interação com o usuário. Comandos Descriçãodisp(ans) Mostra os resultados sem identificar o nome das variáveisecho Controla a exibição dos comandos dos arquivos M na janela de comandosInput Solicita ao usuário que forneça um dado de entradapause Suspende a execução até que o usuário pressione alguma teclapause(n) Suspende a execução por n segundoswaitforbuttonpress Suspende a execução até o usuário pressione uma tecla ou um botão do mouse. 11. CONTROLE DE FLUXO Os comandos que controlam o fluxo especificam a ordem em que a computação é feita. No MATLAB estes comandos são semelhantes aos usados na linguagem C, mas com uma estrutura diferente (mais simples). 11.1 Laço For O laço for é o controlador de fluxo mais simples e usado na programação MATLAB. 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,3,4] disp(i^2) end 1 4 9 16 (Observe o uso da função disp, que exibe na tela o conteúdo do seu argumento). O laço for, tal como o bloco if, deve ser terminado com a instrução end. 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,2,3,4]). %% utilizando o incremento for i=1:1:4 disp(i^2) end 28 _______________________________________________________________________________ Cálculo Numérico Utilizando Matlab
  29. 29. _______________________________________________________________________________ 1 4 9 16 O laço for possibilita que uma série de comandos seja repetida por um número devezes fixo e pré-definido. O comando end é usado como limite inferior do corpo do laço.Exemplos:1) Calcular a tabuada do número 17:for n=0:10tab(n+1)=17*n;enddisp(tab) 0 17 34 51 68 85 102 119 136 153 1702) Calcular a soma de todos os números pares de 0 a 100:soma=0;for n=0:2:10soma=soma+n;enddisp(soma)3) Calcular o fatorial de um número n:n=input(‘Digite um valor para calcular o fatorial: ‘) ;fatorial=1;for a=1:nfatorial=fatorial*a;enddisp(fatorial)11.2 Laço While Ao contrário do Laço For, que executa um grupo de comandos um número fixo devezes, o laço while executa um grupo de comandos um número indefinido de vezes. Olaço while é executado enquanto a condição expr for verdadeira:x=1;while 1+x > 1x = x/2;endxx =1.1102e-16 A estrutura geral é: while expressão comandos end 29_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  30. 30. _______________________________________________________________________________Calcular o fatorial de um número qualquer.%Fatorial com Whilex=input(Digite um valor: );fat=1;while x>0fat=fat*x;x=x-1;enddisp(fat)Calcule a seguinte série com 50 termos:%Cálculo da Sérien=0;x=1;serie=0;while n<50serie=serie+x/2;x=x+2;n=n+1;enddisp(serie)125011.3 Estrutura If-Else-End Em diversas situações, as seqüências de comandos têm de ser executadascondicionalmente, com base em um teste relacional. Essa lógica é implementada pormeio de uma das diversas formas da estrutura if-else-end. A mais simples é:if expressão comandosend Os comandos entre as instruções if e end são executados se todos os elementos naexpressão forem Verdadeiros. Exemplo: Calcular o desconto de 20% para um número de cadeiras maior que 5. Sendo que ocusto de cada cadeira é de R$55,00.cadeiras=input(digite o numero de cadeiras desejadas: );preco=55;custo=cadeiras*preco;if cadeiras>5custo=(1-20/100)*custo;enddisp(custo) 30_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  31. 31. _______________________________________________________________________________ Outra forma de usar a estrutura é:if expressão comandos executados se Verdadeiro else comandos executados se FalsoendExemplos: 1) Dado qualquer distância que um veículo deve percorrer (valor real em km), acapacidade do tanque de combustível (valor real em litros) e a média de consumo decombustível do veículo (valor real em km/litros). Supondo que o tanque estará cheio napartida, mostrar umas das mensagens: DEVE HAVER REABASTECIMENTO OU NÃO DEVE HAVER REABASTECIMENTO% DISTÂNCIA%d=input(Digite a distância a ser percorrida: );mc=15; %media de consumoct=45; %capacidade do tanqueif mc*ct>=d disp(Não deve haver reabastecimento)elsedisp(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 oseguinte critério: Tabela 7 – Dados exemplo 2. Nível Pontuação A Superior a 8 em pelo menos uma das provas ou soma dos pontos superior a 14. B Superior a 6 em pelo menos uma das provas ou soma dos pontos superior a 9. C Nenhm dos casos acima. Em cada prova a pontuação é um valor real de 0 a 10. Desenvolva um programa quereceba 2 (duas) notas de um funcionário e mostre como resposta o nível em que estáclassificado.%Classificação de Funcionáriosnota1=input(Digite a primeira nota: ); 31_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  32. 32. _______________________________________________________________________________nota2=input(Digite a segunda nota: );if nota1>=8 | nota2>=8 | (nota1+nota2)>=14disp(aluno nível A)elseif nota1>=6 | nota2>=6 | (nota1+nota2)>=9disp(aluno nível B)elsedisp(aluno nivel C)end11.4 Estrutura Switch-Case Essa estrutura funciona como uma chave seletora, escolhendo a expressão corretapara executar os comandos. O comando switch é utilizado quando desejamos selecionar (chavear)condicionalmente expressões porém, na forma de lista. O formato geral do comandoswitch é:switch expressão case valor 1 ......... grupo de comandos case valor 2 ......... grupo de comandos case valor 3 ......... grupo de comandos otherwise ......... grupo de comandosend1) Faça um programa que o usuário possa digitar qualquer mês do ano e como resultadoseja mostrado o número de dias do mês correspondente.%Programa para saber quantos dias tem o mes%clear;clc;mes=input(digite o mes desejado: );switch mescase {Janeiro,Marco,Maio,Julho,Agosto,Outubro,Dezembro}disp(31 dias)case {Fevereiro}disp(28 ou 29 dias)case {Abril,Junho,Setembro,Novembro}disp(30 dias) 32_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  33. 33. _______________________________________________________________________________12. ARQUIVOS M DE FUNÇÕES É um programa elaborado como arquivo.m e que calcula algo desejado peloprogramador, devolvendo somente o valor da resposta. Os comandos executados poresse programa ficam ocultos. Você só visualiza o que entra e o que sai, ou seja, umafunção é uma caixa preta. Figura 12 – Princípio de funcionamento de uma função. O Matlab, como outras linguagens de programação, possui duas formas de criaçãode programas: roteiro (script) e função (function). Na aula passada, vimos um exemploprático de criação de um roteiro que executava uma seqüência de comandos Matlab parao ajuste de curvas (linear, polinomial e não-linear). Quando um programa executa umaseqüência de comandos que pode ou não retornar parâmetros na janela de comandos doMatlab, então esse programa denomina-se “roteiro” no Matlab. Em inglês, roteiro échamado script, termo esse que também é usado na língua portuguesa para descreveruma seqüência de eventos. A primeira linha executável no arquivo deve ser a linha de declaração da função. Deoutro modo, o MATLAB tratará o arquivo como uma rotina. A linha de declaração de umafunção: • Define o arquivo como uma função (diferenciando-o de uma rotina); • Define o nome da função; • Define o número e a ordem das variáveis de entrada, além de especificar o que a função irá retornar (variáveis de saída). 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, y1) e(x2, y2) em um sistema de coordenadas cartesianas. d= (x 2 − x1 )2 + ( y 2 − y1 )2 33_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  34. 34. _______________________________________________________________________________ No caso, vamos criar um programa principal chamado distancia e através desteprograma 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 deveser 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 é %fn:,resp); Figura 14 – Programa em execução. 34_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  35. 35. _______________________________________________________________________________13. GRÁFICOS NO MATLAB Gráficos são ferramentas poderosas quando se deseja interpretar visualmente osresultados. Um recurso especialmente interessante nas engnharias e demais ciênciasexatas, onde o MATLAB encontra as maiores aplicações. O comando plot é utilizado para criação de gráficos bidimensionais. A forma maissimples desse comando é: plot (x,y) Cada um dos argumentos x e y deve ser um vetor. Além disso, os dois vetoresdevem possuir a mesma quantidade de elementos. Ao executar o omando plot, é geradauma saída na janela Figure Window. Caso a janela Figure Window esteja fechada, elaserá 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” desimulação PSCAD/EMTDC, no qual foram implementadas distintas situações de carga ede tensão de alimentação para averiguar os efeitos da conexão das cargas especiaismodeladas no SEP.Exemplo:%% plotar a função seno %%x=0:0.1:2*pi; %%gera um vetor de 0 a 2piy=sin(x); %% calcula o vetor das amplitudesplot(x,y); %% plota o gráficoxlabel(valores de x); %%adiciona legenda no eixo xylabel(amplitude); %%adiciona legenda no eixo ygrid on; %%coloca grid no graficoy2=2*sin(x); %% gera um outro vetor de amplitudeshold on; %% segura o grafico anterior para plotar junto com o novo graficoplot(x,y2,r+:); %%plota o novo grafico, linha na cor vermelha, "+" em cadaponto, ":" para linha tracejadatitle(Gráfico da Função seno); %% insere título no graficolegend(Amplitude = 1,Amplitude = 2); %%insere legenda no gráfico 35_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  36. 36. _______________________________________________________________________________ Figura 15 – Gráfico gerado após a execução do programa.Exemplo: 1) Seja a função y = e ⋅ sen(x) . Como seria seu gráfico no intervalo [0 ; e1 ⋅ π ]? −x%%% Gráfico da função f(x)=exp(-x)*sin(x) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x=0:0.1:exp(1)*pi; %%gera o vetor xy=exp(-x).*sin(x); %%calcula as amplitudes, vetor yplot(x,y,--b); %%plota o graficogrid on; %% coloca o gridtitle(gráfico f(x)=exp(-x)*sin(x)); %% coloca o titulo no graficoxlabel(eixo x); %% coloca texto no eixo xylabel(eixo y); %% coloca texto no eixo ygtext(ponto de máximo local); %%disponibiliza ao usuario marcar o ponto nografico Figura 16 – Gráfico gerado após a execução do programa. 36_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  37. 37. _______________________________________________________________________________ 1) Seja a função f ( x) = x 3 − 9 x + 3 (livro, pg.31). Como seria seu gráfico no intervalo [-4 , 3]?%%% Gráfico da função f(x)=x.^3-9.*x+3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x = -4:0.1:3; %%gera o vetor xy = x.^3-9.*x+3; %%calcula as amplitudes, vetor yplot(x,y,--b); %%plota o grafico, linha pontilhada, na cor azulgrid on; %% coloca o gridtitle(bf{gráfico f(x)=x.^3-9.*x+3} ); %% coloca o titulo no grafico emnegritoxlabel(eixo x); %% coloca texto no eixo xylabel(eixo y); %% coloca texto no eixo yaxis([-4 4 -25 15]) %%ajusta os eixos para os limites [XMIN XMAX YMIN YMAX]%%bf negrito{texto}, it italico{texto};%%fontname{arial} Figura 17 – Gráfico da função x^3-9*x+3. 2) Utilizando o processo de ii), pg. 33 livro, 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. f ( x) = x 3 − 9 x + 3 g ( x) = x 3 h( x) = 9 x − 3 37_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  38. 38. _______________________________________________________________________________%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Gráfico das funções g(x)=x.^3 e h(x)=9.*x-3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%x = -10:0.1:10; %%gera o vetor xg = x.^3; %%calcula as amplitudes, vetor gplot(x,g,--b); %%plota o grafico g(x), linha pontilhada, na cor azulgrid on; %% coloca o gridh=9.*x-3; %%calcula as amplitudes, vetor hhold on; %%segura o grafico g(x) para que possamos plotar h(x)plot(x,h,r); %%plota o grafico h(x), linha pontilhada, na cor vermelho%% vamos plotar g e h para analisar onde g(x)=h(x), pg 35 livro.xlabel(eixo x); %% coloca texto no eixo xylabel(eixo y); %% coloca texto no eixo yaxis([-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.13.2 Estilos de Linhas e Símbolos Os tipos de linhas, símbolos e cores usados para plotar gráficos podem sercontrolados se os padrões não são satisfatórios. Por exemplo,x = 0:0.05:1;subplot(1,2,1)plot(x,x.^2,k*)subplot(1,2,2)plot(x,x.^2,k --) 38_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  39. 39. _______________________________________________________________________________ Figura 19 – Plotando gráficos com marcadores e linha pontilhada, detalhe comando “subplot”. Comando subplot = Gera vários eixos em uma mesma janela. Sintaxe: subplot(m,n,p) Parâmetros de entrada: m= número de eixos na vertical (número de linhas). n=Número de eixos na horizontal (número de colunas). p=Índice do eixo corrente Outros tipos de linhas, pontos e cores também podem ser usados: 39_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  40. 40. _______________________________________________________________________________13.3 Coordenada Polar e Gráfico de Barras polar(theta,r,fmt) plota em coordenadas polares o ângulo theta, em radianos, r que éa variação radial linear, e fmt é a cadeia de caracteres contendo a descrição do tipo decurva a ser traçado (como o plot);%% Gerando gráficos em coordenadas polarestheta=-2*pi:0.1:2*pi;rho=1:126;polar(theta,rho,r*) 40_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  41. 41. _______________________________________________________________________________ Figura 20 – Coordenadas polares. Figura 21 – Gráficos de barras. 41_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  42. 42. _______________________________________________________________________________%% Gerando gráficos de Barrasx=-2.9:0.2:2.9;y=exp(-x.*x);subplot(2,2,1)bar(x,y)title(Grafico de barras de uma curva em forma de sino);subplot(2,2,2)bar3(x,y)title(Grafico de barras 3-D de uma curva em forma de sino);subplot(2,2,3)stairs(x,y)title(Grafico em escada de uma curva em forma de sino);subplot(2,2,4)barh(x,y)title(Grafico de barras horizontal);13.4 Gráficos 3-D O MATLAB possui muitos recursos para visualização de dados em 3D. Este itemrepresenta as principais funções relacionadas a este tópico. Estes são alguns comandos para plotar gráficos tridimensionais e contornos. Tabela 8 – Comandos para plotar gráficos 3-D. O MATLAB define uma superfície do tipo mesh (rede) pelas coordenadas Z sobreum plano x-y. Superfícies tipo mesh são úteis para visualizar matrizes demasiadamentegrandes para serem mostradas na forma numérica, ou para plotar funções de duasvariáveis. O primeiro passo para plotar uma função de 2 variáveis z=f(x,y) é gerar matrizes X eY contendo linhas e colunas repetidas, respectivamente, para funcionarem como odomínio da função. A função meshgrid transforma o domínio especificado por dois vetoresx y em duas matrizes X e Y. Essas matrizes então são usadas para avaliar a função de 2variáveis. Por exemplo, seja a função: 42_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  43. 43. _______________________________________________________________________________x=-pi:0.5:pi;y=-pi:0.5:pi;[Mx,My]=meshgrid(x,y);Mz=cos(Mx).*sin(My);mesh(Mx,My,Mz); Figura 22x=-pi:0.5:pi;y=-pi:0.5:pi;[Mx,My]=meshgrid(x,y);Mz=cos(Mx).*sin(My);mesh(Mx,My,Mz);surf(Mx,My,Mz) Figura 23 43_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  44. 44. _______________________________________________________________________________[X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);r= sqrt(X.^2+Y.^2)+eps;Z=sin(r)./r;mesh(X,Y,Z) Figura 24[X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);r= sqrt(X.^2+Y.^2)+eps;Z=sin(r)./r;mesh(X,Y,Z)surf(X,Y,Z) Figura 25 44_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  45. 45. _______________________________________________________________________________figure(2)[X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);mesh(X,Y,3*sqrt(X.^2+Y.^2)) Figura 26figure(3)[X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);mesh(X,Y,3*sqrt(X.^2+Y.^2))surf(X,Y,3*sqrt(X.^2+Y.^2)) Figura 27 45_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  46. 46. _______________________________________________________________________________ Tabela 9x=-4*pi:0.1:4*pi;y=-4*pi:0.1:4*pi;plot3(cos(x),sin(y),(x+y)) Figura 28 46_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  47. 47. _______________________________________________________________________________%% Equações paramétricast=0:0.1:6*pi;x=sqrt(t).*sin(2*t);y=sqrt(t).*cos(2*t);z=0.5*t;plot3(x,y,z,k,linewidth,2)grid onxlabel(x);ylabel(y);zlabel(z); Figura 29%% Malha e persianas verticaisx=-3:0.25:3;y=-3:0.25:3;[X,Y]=meshgrid(x,y);Z=1.8.^(-1.5*sqrt(X.^2+Y.^2)).*cos(0.5*Y).*sin(X);meshz(X,Y,Z)xlabel(x);ylabel(y);zlabel(z); Figura 30 47_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  48. 48. _______________________________________________________________________________13.5 Anotações no Gráfico O MATLAB possui comandos de fácil utilização para adicionar informações em umgráfico: Tabela 10Por exemplo:fplot(sin, [-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
  49. 49. _______________________________________________________________________________14. POLINÔMIOS Encontrar raízes de um polinômio, isto é, os valores para os quais o polinômio é iguala zero. No MATLAB, um polinômio é representado por um vetor linha contendo seuscoeficientes em ordem decrescente. 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 11614.1 Raízes Dada essa forma, as raízes do polinômio são encontradas usando-se a funçãoroots(p):roots(p)ans = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i Dadas as raízes também é possível construir o polinômio associado. O comando queexecuta tal procedimento é o comando poly, como exemplo:>> p=[1 -12 0 25 116]p = 1 -12 0 25 116>> r=roots(p)r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i>> p2=poly(r)p2 = 1.0000 -12.0000 -0.0000 25.0000 116.0000>> 49_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  50. 50. _______________________________________________________________________________Calcular a raiz do polinômio P ( x) = x 3 − 2 x − 5>> p=[1 0 -2 -5]p = 1 0 -2 -5>> r=roots(p)r = 2.0946 -1.0473 + 1.1359i -1.0473 - 1.1359i>> Por convenção o Matlab armazena as raízes em vetores coluna.14.2 Multiplicação A multiplicação polinomial é efetuada por meio da função conv(que faz a convoluçãoentre dois vetores). Consideremos o produto de dois polinômios a ( x) = x + 2 x + 3 x + 4 e 3 2b( x) = x 3 + 4 x 2 + 9 x + 16 .a=[1 2 3 4];b=[1 4 9 16];c=conv(a,b)c = 1 6 20 50 75 84 64Consideremos os polinômios P ( x) = x 2 + 2 x + 3 e Q( x) = 4 x 2 + 5 x + 6>> P=[1 2 3]P = 1 2 3>> Q=[4 5 6]Q = 4 5 6>> R=conv(P,Q)R = 4 13 28 27 18>> 50_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  51. 51. _______________________________________________________________________________Nos devolve o resultado: 4 13 28 27 18. Isto éR ( x) = P ( x).Q( x) = 4 x 4 + 13x 3 + 28 x 2 + 27 x + 1814.3 Adição O MATLAB possui uma função direta para somar polinômios:a=[1 2 3 4];b=[1 4 9 16];d=a+bd = 2 6 12 20 Quando dois polinômios forem de ordens diferentes, aquele que tiver menor ordemterá de ser preenchido com coeficientes iguais a zero, a fim de torná-lo da mesma ordemdo polinômio de ordem mais alta. Exemplo:>> e= c+[0 0 0 d]e=1 6 20 52 81 96 8414.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 .>> P=[4 1 -2 3]P = 4 1 -2 3>> Q=[1 3 6]Q = 1 3 6>> [q r]=deconv(P,Q)q = 4 -11r = 0 0 7 69 Isto é, q ( x ) = 4 x − 11 quociente e r ( x ) = 7 x + 69 resto. 51_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  52. 52. _______________________________________________________________________________14.5 Cálculo de Polinômios O comando que realiza o calculo dos valores de f(x) podem ser realizados atravésdo comando polyval.x=linspace(-1,3);%% escolhe 100 pontos entre –1 e 3.p=[1 4 -7 -10]; %%define o polinômio p(x)=x3+4x2-7x-10v=polyval(p,x) %%calcula p(x) nos valores armazenados em x e armazena oresultado em v. O resultado pode ser representado graficamente usando-se:plot(x,v)grid14.6 Derivada de Polinômios Considere o seguinte polinômio P ( x) = 2 x 4 − x 3 + 3 x 2 + 5 x + 9 , vamos derivar estepolinômio:>> P=[2 -1 3 5 9]P = 2 -1 3 5 9>> polyder(P)ans = 8 -3 6 5>>Isto é P ( x ) = 8 x − 3 x + 6 x + 5 3 214.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,Q)ans = 52_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  53. 53. _______________________________________________________________________________ 4 -12 6 14>> Nos devolve como resultado: 4 -12 6 14. Isto é P ( x ) = 4 x − 12 x + 6 x + 14 3 214.8 Derivada de um Quociente de PolinômiosConsidere os seguintes polinômios: P ( x) = x − 5 x + 9 e Q( x ) = x + 7 2>> P=[1 -5 9]P = 1 -5 9>> Q=[1 7]Q = 1 7>> [n,d]=polyder(P,Q)n = 1 14 -44d = 1 14 49>> Isto é n( x ) = x + 14 x − 44 numerador e n( x ) = x + 14 x + 49 o denominador. 2 2 53_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  54. 54. _______________________________________________________________________________15. LISTA DE FUNÇÕES DO MATLAB 54_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  55. 55. _______________________________________________________________________________ 55_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  56. 56. _______________________________________________________________________________ 56_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  57. 57. _______________________________________________________________________________ 57_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  58. 58. _______________________________________________________________________________ 58_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  59. 59. _______________________________________________________________________________ 59_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  60. 60. _______________________________________________________________________________ 60_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  61. 61. _______________________________________________________________________________ 61_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  62. 62. _______________________________________________________________________________ 62_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  63. 63. _______________________________________________________________________________ 63_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  64. 64. _______________________________________________________________________________ 64_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  65. 65. _______________________________________________________________________________ 65_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  66. 66. _______________________________________________________________________________ 66_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  67. 67. _______________________________________________________________________________ 67_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  68. 68. _______________________________________________________________________________ 68_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  69. 69. _______________________________________________________________________________ 69_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  70. 70. _______________________________________________________________________________ 70_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  71. 71. _______________________________________________________________________________ 71_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  72. 72. _______________________________________________________________________________ 72_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  73. 73. _______________________________________________________________________________ 73_______________________________________________________________________________Cálculo Numérico Utilizando Matlab
  74. 74. _______________________________________________________________________________16. REFERÊNCIAS BIBLIOGRÁFICAS[1]. S. J. Chapman. “Programação em Matlab Para Engenheiros”. Editora Cengage Learning, 2ª Edição, 2010.[2]. A. Gilat. “Matlab Com Aplicações em Engenharia”. Editora Bookman, 2° Edição, 2006.[3]. S. A. Vicente. “Curso Introdutório de Matlab 6.5”. Apostila, Janeiro, 2003.[4]. Matlab & Simulink, Apostila, Faculdade de Engenharia Industrial, 1994.[5]. Matlab Curso Introdutório, Apostila, Centro Brasileiro de Pesquisas Físicas, 2002. 74_______________________________________________________________________________Cálculo Numérico Utilizando Matlab

×