apostila matlab

Upload: marcos-machado

Post on 17-Jul-2015

1.143 views

Category:

Documents


0 download

TRANSCRIPT

Universidade Federal de So Joo Del-Rei Campus Alto Paraopeba

Disciplina: Clculo Numrico

Apostila de Matlab

Prof. Alexandre Cndido Moreira Prof. Heber Tormentino de Sousa

Agosto de 2010

_______________________________________________________________________________ SUMRIO 1. INTRODUO 1.1 Vantagens do Matlab 1.2 Desvantagens do Matlab 2. O AMBIENTE MATLAB 2.1 Comand Window 2.2 Workspace 2.3 Current Directory 2.4 Command History 3. COMANDOS BSICOS E DECLARAES DE VARIVEIS 4. OPERAES ARITMTICAS 5. EXIBINDO DADOS DE SADA 5.1 O Comando disp 6. OPERADORES LGICOS 7. OPERADORES RELACIONAIS 8. CLCULO MATRICIAL 8.1 Elementos de uma Matriz 8.2 Soma e Subtrao 8.3 Multiplicao de uma Matriz por um Escalar 8.4 Multiplicao entre Matrizes 8.5 Diviso Direta de Matrizes 8.6 Potnciao 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 Nmeros 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 Unitrios 8.18 Matriz Nula (composta por elementos nulos) 8.19 Matriz AleatriaClculo Numrico Utilizando Matlab

4 4 5 5 6 6 7 8 8 8 9 10 12 12 13 13 14 15 15 16 16 17 17 18 18 19 19 20 21 21 22 22 23 23

_______________________________________________________________________________ 2

_______________________________________________________________________________ 9. GERANDO VETORES 24 9.1 O Comando linspace 25 10. ARQUIVOS M DE COMANDOS 11. CONTROLE DE FLUXO 11.1 Lao For 11.2 Lao While 11.3 Estrutura If-Else-End 11.4 Estrutura Switch-Case 12. ARQUIVOS M DE FUNES 13. GRFICOS NO MATLAB 13.1 Grficos 2-D 13.2 Estilos de Linhas e Smbolos 13.3 Coordenada Polar e Grfico de Barras 13.4 Grficos 3-D 13.5 Anotaes no Grfico 14. POLINMIOS 14.1 Razes 14.2 Multiplicao 14.3 Adio 14.4 Diviso 14.5 Clculo de Polinmios 14.6 Derivada de Polinmios 14.7 Derivada de um Produto de Polinmios 14.8 Derivada de um Quociente de Polinmios 15. LISTA DE FUNES DO MATLAB 16. REFERNCIAS BIBLIOGRFICAS 26 28 28 29 30 32 33 35 35 38 40 42 48 49 49 50 51 51 52 52 52 53 54 74

_______________________________________________________________________________ 3Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

1. INTRODUOMATLAB (abreviatura de Matrix Laboratory Laboratrio de Matrizes) um programa d ecomputador de uso especfico, otimizado para executar clculos cientficos e de engenharia. Ele nasceu como um programa para operaes matemticas sobre matrizes, mas ao longo dos anos transformou-se em um sistema computacional flexvel capaz de resolver essencialmente qualquer problema tcnico. Seus elementos bsicos so matrizes que no requerem dimensionamento. Ele permite implementar e resolver problemas matemticos muito mais rpida e

eficientemente que atravs de outras linguagens como C, Basic, Pascal ou Fortran. O MATLAB possui uma famlia de aplicativos especficos (toolboxes), que so colees de funes usadas para resolver determinados problemas tais como: otimizao, manipulao algbrica, redes neurais, processamento de sinais, simulao de sistemas dinmicos, entre outros. Provavelmente, a caracterstica mais importante do MATLAB a sua extensibilidade, que permite que engenheiros, matemticos cientistas, e at mesmo voc, contribuam para o enriquecimento. 1.1 Vantagens do Matlab O Matlab tem muitas vantagens, em comparao com linguagens computacionais

convencionais, para resolver problemas tcnicos. Entre elas, temos: a) Facilidade de uso: o Matlab uma linguagem interpretada, assim como muitas verses de Basic. b) Independncia de Plataforma: tem suporte em diferentes sistemas

computacionais: Windows XP/Vista, Linux, diversas verses de Unix e Macintosh. c) Funes Predefinidas: conta com uma grande biblioteca de funes predefinidas, que apresentam solues testadas e empacotadas para diversas tarefas tcnicas bsicas 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 sada grfica compatvel com o computador que executa o Matlab. Este recurso torna o Matlab uma ferramenta excepcional para visualizao de dados tcnicos.

_______________________________________________________________________________ 4Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ e) Interface Grfica de Usurio: tem ferramentas que permitem a um programador construir interativamente uma interface grfica de usurio (GUI Graphical User Interface) para seus programas. Com este recurso, o programador capaz de projetar programas sofisticados de anlise de dados, os quais podem ser operados por usurios 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 ser diminudo pela estruturao apropriada dos programas Matlab para otimizar o desempenho do cdigo vetorizado. A segunda desvantagem o custo: uma cpia completa do Matlab de cinco a dez vezes 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 coleo de valores de dados organizados em linhas e colunas, determinada por um nome nico. At mesmo escalares so tratados como matrizes em Matlab, eles so simplesmente matrizes co apenas uma linha e uma coluna. No Matlab, os arquivos de comando tem extenso .m (M-files) e os arquivos de dados binrios default tem extenso .mat (Mat-files). No Windows, o Matlab instalado com os seguintes diretrios: BIN DEMOS EXTERN HELP JAVA contm os programas binrios do Matlab; demonstrao em HTML suporte s linguagens FORTRAN, C e C++ contm arquivos de auxlio e documentao do Matlab suporte linguagem Java

NOTEBOOK suporte gerao de documentao no formato MS-Word TEMP TOLLBOX WORK diretrio temporrio toolboxes do Matlab diretrio de trabalho.

_______________________________________________________________________________ 5Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

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 instrues) so digitados; As operaes podem ser realizadas e seus resultados so mostrados; Tambm nessa janela que se pode executar um arquivo m-file; O prompt >> indica que o programa est pronto aguardando uma instruo; Com as teclas (seta para cima) e (seta para baixo) possvel recuperar todos os comandos j digitados.

2.2

Workspace

Figura 2 Janela Workspace.

_______________________________________________________________________________ 6Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ a rea na qual so exibidas todas as variveis definidas na rea de trabalho; Essa janela possui quatro colunas indicando o nome, dimenso, nmero de bytes e a classe de cada varivel; As variveis podem ser editadas e visualizadas nessa prpria janela, basta dar um click-duplo para edit-las; H um menu flutuante que possvel: Open abrir a janela; Graph criar grficos a partir dos dados contidos na varivel; Select All selecionar todas as variveis; Import Data importar variveis de um arquivo para o workspace; Save Selection As salvar as variveis selecionadas em um arquivo; Save Workspace As salvar todas as variveis do workspace em um arquivo; Copy copiar a varivel para a rea de transferncia de dados do Windows; Delete apagar a varivel do workspace; Clear Workspace apagar todas as variveis do workspace; Rename renomear a varivel.

2.3

Current Directory rea onde exibida uma lista dos arquivos contidos no diretrio corrente.

Figura 3 Janela Current Directory.

_______________________________________________________________________________ 7Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ 2.4 Command History rea onde ficam armazenadas todas as instrues executadas no MATLAB.

Figura 4 Janela Command History.

3. COMANDOS BSICOS E DECLARAES DE VARIVEIS Para iniciar o nosso trabalho no MATLAB necessrio aprender alguns comandos essenciais da janela de trabalho (command window) e na seqncia vamos aplic-los. who whos clear clc dir cd what Tabela 1 Comando Bsicos. Mostra as variveis do espao de trabalho Mostra as variveis do espao de trabalho com detalhes Limpa a memria do espao de trabalho Limpa a tela Mostra o contedo do diretrio que se encontra Informa ou altera o diretrio corrente Exibe os arquivos Matlab contidos no diretrio

4. OPERAES ARITMTICAS As expresses podem ser construdas usando os operadores aritmticos usuais:

Tabela 2 Operadores aritmticos. Adio + Subtrao Multiplicao * Diviso / Potenciao ^

_______________________________________________________________________________ 8Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

Figura 5 Exemplos de operaes aritmticas.

5. EXIBINDO DADOS DE SADA O formato numrico exibido na tela pode ser modificado utilizando-se o comando format, que afeta somente o modo como as matrizes so mostradas, e no como elas so computadas ou salvas. Se todos os elementos das matrizes so inteiros exatos, a matriz mostrada em um formato sem qualquer ponto decimal. Por exemplo,x = [-1 0 1]

resulta em:x = -1 0 1

Se pelo menos um dos elementos da matriz no inteiro exato, existem vrias possibilidades de formatar a sada. O formato "default", chamado de formato short,

_______________________________________________________________________________ 9Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ mostra aproximadamente 4 dgitos decimais ou usam notao cientfica. 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-padro 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 seleo da opo File>>Preferences>>Command Window. Alternativamente, o usurio pode acionar o comando format para alterar as preferncias. Este comando altera o formato-padro de acordo com os valores dados na Tabela 3. O formato-padro pode ser modificado para exibir mais dgitos significativos, para forar a exibio em notao cientfica, exibir dados com dois dgitos decimais ou ento eliminar linhas adicionais para que mais dados sejam visveis por vez na Janela de comandos. Tabela 3 Formatos de exibio de sada.Comando de Formatao format short format long format short e format short g format long e format long g format bank format hex format rat Resultados 4 dgitos decimais (formato-padro) 14 dgitos decimais 5 dgitos mais expoente 5 dgitos no total, com ou sem expoente 15 dgitos mais expoente 15 dgitos no total, com ou sem expoente Formato monetrio Exibio hexadecimal de bits Razo aproximada entre inteiros pequenos Exemplo 12,3457 12,34567890123457 1,2346e+001 12,346 1,234567890123457e+0001 12,3456789012346 12,35 4028b0fcd32f707a 1000/81

5.1

O Comando disp O comando disp exibe o contedo de uma varivel, mas, ocultando o nome da

mesma, e/ou mostra strings na forma de textos. A formageral do comando disp :disp (nome de uma varivel)

ou dsisp (string de texto)

Toda vez que um comando disp executado, a sada que ele produz mostrada numa nova linha. Por exemplo:% A varivel A inicializada com uma matriz 2x3 A=[5 9 1; 7 2 4] A = 5 7 9 2 1 4

10 _______________________________________________________________________________Clculo Numrico 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 no possui soluo') O problema no possui soluo

O cdigo abaixo ensina como utilizar os comandos input e disp em uma rotina para calcular a soma entre 3 nmeros. Ao final da soma o a rotina exibe um texto juntamente com o resultado da soma.

Figura 6 M-File implementado, Janela Editor.

Figura 7 Algoritmo executando na Janela de Comandos.

11 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ 6. OPERADORES LGICOS Um operador lgico examina senteas verdadeiras/falsas e produz resultados verdadeiro (1) ou falso (0), de acordo com a funcionalidade do operador. Por exemplo, o operador lgico AND resulta 1 (verdadeiro) se, e somente se, todas as senteas envolvidas na operao forem verdadeiras. Tanto os operadores lgicos quanto relacionais podem ser utlizados em expresses matemticas ou, como ser visto adiante, serem combinados a outros comando para controlar ou tomar deciso sobre o fluxo do programa.

Tabela 4 Operadores lgicos. Smbolo Operador e & ou | no ~

7. OPERADORES RELACIONAIS O operador relacional compara dois nmeros determinando se oresultado da senta de comparao verdadeiro (V) ou falso (F). Por exemplo (5= igual == diferente ~= Perceba que o operador relacional que testa a igualdade entre dois objetos representado por dois sinais de igualdade (==), sem espao entre eles. Isso porque um nico sinal de igualdade representa o operador de atribuio. Os demais operadores duplos (representados por dois caracteres) tambm no possuem espaos entre os caracteres (=, ~=).

12 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

Figura 8 Exemplos com operadores relacionais.

8. CLCULO MATRICIAL As matrizes em Matlab podem ter uma ou mais dimenses. Matrizes unidimensionais podem ser visualizadas como uma srie de valores colcoados em uma linha ou em uma coluna, como um nico ndice para selecionar os elementos individuais da matriz. O Matlab permite a criao de matrizes com tantas dimenses quanto necessrio para um dado problema. Essas matrizes tm um ndice para cada dimenso, e um elemento individual selecionado pela especificao de um valor para cada ndice. 8.1 Elementos de uma Matriz Elementos de uma matriz podem ser qualquer expresso 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 parnteses. No exemplo anterior, para referenciar o segundo elemento do vetor x:x(2) ans = 4.3266

13 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ 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 4 7 >> %% extrair o elemento da linha 2 e coluna 3 x(2,3) ans = 6 2 5 8 3 6 9

Repare que a referncia sempre na forma matriz(linha,coluna). 8.2 Soma e Subtrao Os smbolos + e - denotam adio e subtrao de matrizes. A operao definida sempre que as matrizes tenham a mesma dimenso. Exemplo:A = [1 2; 3 4] A = 1 3 2 4

B=A' B = 1 2 C=A+B C = 2 5 5 8 3 4

A adio e subtrao tambm definida quando um dos operandos for um escalar. Exemplo:D=C-2 D =

14 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________0 3 3 6

8.3A A =

Multiplicao de uma Matriz por um Escalar

1 3 2*A ans = 2 6 D=3*A D = 3 9

2 4

4 8

6 12

8.4

Multiplicao entre Matrizes A multiplicao de matrizes indicada por "*". A multiplicao A*B definida

somente se a segunda dimenso de A for igual primeira dimenso de B, ou seja, o nmero de colunas da primeira matriz for igual ao nmero de linhas da segunda matriz. Assim a multiplicao pode ser executada como:A A = 1 3 B B = 1 2 A*B ans = 5 11 11 25 3 4 2 4

15 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ 8.5 Diviso Direta de Matrizes Existem dois smbolos para diviso de matrizes no MATLAB "\" e "/". Se A uma matriz quadrada no singular, ento A\B e A/B correspondem respectivamente a inv(A)*B e A*inv(B), por exemplo:A=[1 2; 3 4] A = 1 3 2 4

B=[5 6; 7 8] B = 5 7 A\B ans = -3 4 A/B ans = 3.0000 2.0000 -2.0000 -1.0000 -4 5 6 8

%%diviso de elemento por elemento A./B ans = 0.2000 0.4286 0.3333 0.5000

8.6

Potnciao A expresso A^p eleva A p-sima potncia e definida se A matriz quadrada e

p um escalar. Se p um inteiro maior do que um, a potenciao computada como mltiplas multiplicaes. Por exemplo:A A = 1 3 A^3 2 4

16 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ans = 37 81 54 118

%% potenciao de elementos por elementos A.^3 ans = 1 27 8 64

8.7

Transposta de uma Matriz O caracter ' (apstrofe) denota transposta de uma matriz. Se z for complexo, z' o

transposto conjugado complexo de z. Exemplo:A = [1 2; 3 4] A = 1 3 2 4

%% realiza a transposta da matriz A A' ans = 1 2 3 4

%% no caso de nmeros complexos, z o conjugado complexo de z z=2+5i z = 2.0000 + 5.0000i z' ans = 2.0000 - 5.0000i

8.8

Determinante Para calcularmos o determinante de uma matriz utilizamos o comando det(matriz).

%% Entrando com a matriz A 5x5 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 5 2 1 4 1 5 3 6 5

17 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________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.9

Inversa da Matriz Para calcularmos a inversa de uma matriz utilizamos o comando inv(matriz).

%% Calculando a inversa da Matriz A inv(A) ans = -0.0271 -0.6218 0.3991 0.1747 -0.0332 0.2489 -0.3799 0.1048 0.0393 -0.0175 0.0227 0.1022 0.0201 -0.0175 -0.0367 0.0157 0.0707 0.0908 -0.1659 0.0515 -0.4079 1.6646 -1.2454 0.0830 0.2742

8.10 Autovalores e Autovetores A funo eig( ) calcula os autovetores e os autovalores de A, respectivamente. Existem funes que retornam dois ou mais valores. Nestes casos, os valores de sada devem estar entre colchetes [ ] e separados por vrgula. Exemplo:A=[1 -1;-4 1] A = 1 -4 -1 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 cannica de A menos uma matriz diagonal com os autovalores de A na diagonal principal. As colunas da matriz V so os autovetores de A;[V,D] = eig(A) %% autovetores associados a matriz A V = 0.4472 -0.8944 0.4472 0.8944

18 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________%% autovalores associados a matriz A D = 3.0000 0 0 -1.0000

8.11 Matriz escalonada reduzida O comando rref(matriz) encontra a matriz escalonada reduzida atravs do processo de 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 5 7 2 1 rref(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 2 1 8 2 1 4 1 9 4 1 5 3 9 0 2 6 5 0 9 3

%% exemplo de um sistema possvel e indeterminado 0*z=0 A=[1 2 8; 2 4 16; 0 1 3] A = 1 2 0 rref(A) ans = 1 0 0 0 1 0 2 3 0 2 4 1 8 16 3

8.12 Posto de uma Matriz Do exemplo anterior nota-se que a matriz em sua forma escalonda reduzida possui duas linhas no-nulas e infinitos valores para z. O nmero de linhas no-nulas pode ser encontrado atravs do comando rank(matriz), ou seja, o comano rank encontra o

19 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ posto da matriz, que nada mais do que a quantidade mxima de linhas linearmente independentes da matriz.A=[1 2 8; 2 4 16; 0 1 3] A = 1 2 0 rank(A) ans = 2 rref(A) ans = 1 0 0 0 1 0 2 3 0 2 4 1 8 16 3

8.13 Nmeros e Matrizes Complexas Nmeros complexos so permitidos em todas operaes e funes no MATLAB. Os nmeros complexos so introduzidos usando-se as funes especiais i e j. Por exemploz= 3 + 4*i z = 3.0000 + 4.0000i %% ou podemos escrever tambm z= 3 +4*j z = 3.0000 + 4.0000i

As seguintes declaraes mostram dois caminhos convenientes para se introduzir matrizes complexas no MATLAB:A= [1 2; 3 4]+i*[5 6;7 8] A = 1.0000 + 5.0000i 3.0000 + 7.0000i 2.0000 + 6.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 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________A = 1.0000 + 5.0000i 3.0000 + 7.0000i 2.0000 + 6.0000i 4.0000 + 8.0000i

8.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 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, ento diag(A) um vetor cujos componentes so os elementos 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 matriz diag(A) ans = 3 1 1

8.15 Matrizes Triangulares O comando triu extrai a matriz triangular superior da matriz A, enquanto o comando tril extrai a matriz triangular inferior da matriz A. Por exemplo:A=[3 11 5; 4 1 -3; 6 2 1]

21 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________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.16 Matriz Identidade De modo a construir uma matriz identidade (quadrada ou com dimenso n x m), a funo a utilizar dada por: eye(n,m) Exemplo:eye(5,5) ans = 1 0 0 0 0 eye(5,8) 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1

8.17 Matriz Composta por Elementos Unitrios No caso de ser necessrio a obteno de uma matriz composta apenas por elementos unitrios, temos que: ones(n,m) 22 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ones(5,5) ans = 1 1 1 1 1 ones(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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

8.18 Matriz Nula (composta por elementos nulos) Para efetuar qualquer tipo de manipulao matricial, poder ser til a construo de uma 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 0

8.19 Matriz Aleatria A elaborao de testes a qualquer programa desenvolvido no MATLAB, ou para utilizao de um outro qualquer modo, poder fazer uso de matrizes compostas por nmeros aleatrios uniformemente distribudos no intervalo entre 0 e 1: rand(n,m)rand(3,3) ans = 0.171186687811562 0.706046088019609 0.031832846377421 0.276922984960890 0.046171390631154 0.097131781235848 0.823457828327293 0.694828622975817 0.317099480060861

No caso de se pretender uma distribuio normal dos nmeros aleatrios compreendidos entre 0 e 1, a funo a utilizar ser: randn(n,m)randn(3,3)

23 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ans = -0.432564811528221 -1.665584378238097 0.125332306474831 0.287676420358549 -1.146471350681464 1.190915465642999 1.189164201652103 -0.037633276593318 0.327292361408654

9. Gerando Vetores O dois pontos ( : ) um caracter importante no MATLAB. Escrevendo:x=1:8 x = 1 2 3 4 5 6 7 8

Cria um vetor cujo primeiro elemento 1, o ltimo 8 e o passo entre os elementos do vetor 1. O mesmo comando pode ser modificado de forma a alterar o passo entre os elementos do vetor:x = 1:1.5:8 x = 1.0000 2.5000 4.0000 5.5000 7.0000

Os dois pontos significam incio:passo:fim. O valor de passo pode ser qualquer nmero real ( 0). A notao ( : ) muito til para gerar tabelas e plotar grficos, como veremos adiante.%% cria um vetor linha x x=0:0.2:3 x = Columns 1 through 11 0 1.6000 0.2000 0.4000 1.8000 2.0000 0.6000 0.8000 1.0000 1.2000 1.4000

Columns 12 through 16 2.2000 2.4000 2.6000 2.8000 3.0000

%% cria um vetor linha y, a partir dos valores de x y=exp(-x) + sin(x) y = Columns 1 through 11 1.0000 1.0174 1.0597 1.2015 1.1391 1.0446 1.1135 1.1667 1.2094 1.2332 1.2320

24 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________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 transpostos z=[x' y'] z = 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000 1.0000 1.0174 1.0597 1.1135 1.1667 1.2094 1.2332 1.2320 1.2015 1.1391 1.0446 0.9193 0.7662 0.5898 0.3958 0.1909

Outros incrementos, diferentes da unidade podem ser utilizados, como seja o caso do seguinte exemplo que impe um incremento de pi/4.%% criamos um vetor que comea em 0 e vai at PI, com um passo de PI/4 y = 0 : pi/4 : pi y = 0 0.7854 1.5708 2.3562 3.1416

Tambm so possveis incrementos negativos:%% criamos um vetor que comea em 6 e vai at 1, com um passo de -1 z = 6 : -1 : 1 z = 6 5 4 3 2 1

9.1

O Comando linspace Pode-se, tambm, gerar vetores linearmente espaados fazendo uso da funo

linspace. Por exemplo:%% criamos 6 pontos igualmente espaados 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 espaados entre 0 e 10. k1=linspace(0,10,5)

25 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________k1 = 0 2.5000 5.0000 7.5000 10.0000

Tambm possvel criar um espaamento logartmico entre os pontos do vetor. Isto possvel atravs do comando logspace(x1,x2,k). Onde x1 o ponto inicial, x2 o ponto final 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 e imediatamente mostra o resultado. O MATLAB tambm pode executar uma seqncia de comandos que est armazenada num arquivo. Estes dois modos formam um ambiente interpretativo. Os arquivos que contm declaraes MATLAB so chamados M-files porque usam a extenso *.m. Por exemplo, o arquivo senoide.m contm declaraes MATLAB para o clculo e desenho de uma funo senoidal com amplitude unitria, freqncia de 1000 Hz e ngulo de fase igual a zero:

Figura 9 Arquivo .m para o calculo de uma funo seno com A=1, f=1000Hz.

26 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

Figura 10 Resultado aps a execuo do arquivo senoide.m.

Um M-file consiste de uma seqncia de declaraes MATLAB normais, podendo incluir referencias outros M-files. Um M-file pode chamar ele prprio 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 funes. Arquivos scripts automatizam uma seqncia longa de comandos. Arquivos de funo permite criar novas funes s existentes. Ambos, scripts e funes so arquivos texto tipo ASCII.

Figura 11 Arquivos .m de scripts e funes.

Normalmente, enquanto um M-file est sendo executado, os comandos contidos no arquivo no so mostrados na tela. O comando echo permite visualizar o comando a medida que ele vai sendo executado. Isso especialmente til na depurao de um programa ou para a confeco de um programa demonstrativo. Em virtude da grande utilidade dos arquivos de comandos o MATLAB possui vrias funes apropriadas para o uso em arquivos M. Essas funes so:

27 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ Tabela 6 Comando de entrada,sada, depurao e interao com o usurio. Comandos Descriodisp(ans) echo Input pause pause(n) waitforbuttonpress Mostra os resultados sem identificar o nome das variveis Controla a exibio dos comandos dos arquivos M na janela de comandos Solicita ao usurio que fornea um dado de entrada Suspende a execuo at que o usurio pressione alguma tecla Suspende a execuo por n segundos Suspende a execuo at o usurio pressione uma tecla ou um boto do mouse.

11. CONTROLE DE FLUXO Os comandos que controlam o fluxo especificam a ordem em que a computao feita. No MATLAB estes comandos so semelhantes aos usados na linguagem C, mas com uma estrutura diferente (mais simples). 11.1 Lao For O lao for o controlador de fluxo mais simples e usado na programao MATLAB. Em geral: for x = :: comandos end O lao for repete as instrues dentro do lao at que o ndice contador do lao alcance a condio final:for i=[1,2,3,4] disp(i^2) end 1 4 9 16

(Observe o uso da funo disp, que exibe na tela o contedo do seu argumento). O lao for, tal como o bloco if, deve ser terminado com a instruo end. Este lao 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 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________1 4 9 16

O lao for possibilita que uma srie de comandos seja repetida por um nmero de vezes fixo e pr-definido. O comando end usado como limite inferior do corpo do lao. Exemplos: 1) Calcular a tabuada do nmero 17:for n=0:10 tab(n+1)=17*n; end disp(tab) 0 17

34

51

68

85

102

119

136

153

170

2) Calcular a soma de todos os nmeros pares de 0 a 100:soma=0; for n=0:2:10 soma=soma+n; end disp(soma)

3) Calcular o fatorial de um nmero n:n=input(Digite um valor para calcular o fatorial: ) ; fatorial=1; for a=1:n fatorial=fatorial*a; end disp(fatorial)

11.2 Lao While Ao contrrio do Lao For, que executa um grupo de comandos um nmero fixo de vezes, o lao while executa um grupo de comandos um nmero indefinido de vezes. O lao while executado enquanto a condio expr for verdadeira:x=1; while 1+x > 1 x = x/2; end x x = 1.1102e-16

A estrutura geral : while expresso comandos end 29 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ Calcular o fatorial de um nmero qualquer.%Fatorial com While x=input('Digite um valor: '); fat=1; while x>0 fat=fat*x; x=x-1; end disp(fat)

Calcule a seguinte srie com 50 termos:

%Clculo da Srien=0; x=1; serie=0; while n=d disp('No deve haver reabastecimento') else disp('Deve haver reabastecimento') end

Testar para 780 km e 600 km

2) Os funcionrios contratados pela prefeitura de uma cidade so classificados em 3 (trs) nveis conforme a pontuao obtida em 2 (duas) provas aplicadas de acordo com o seguinte critrio:

Tabela 7 Dados exemplo 2. NvelA B C

PontuaoSuperior a 8 em pelo menos uma das provas ou soma dos pontos superior a 14. Superior a 6 em pelo menos uma das provas ou soma dos pontos superior a 9. Nenhm dos casos acima.

Em cada prova a pontuao um valor real de 0 a 10. Desenvolva um programa que receba 2 (duas) notas de um funcionrio e mostre como resposta o nvel em que est classificado.%Classificao de Funcionrios nota1=input('Digite a primeira nota: ');

31 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________nota2=input('Digite a segunda nota: '); if nota1>=8 | nota2>=8 | (nota1+nota2)>=14 disp('aluno nvel A') elseif nota1>=6 | nota2>=6 | (nota1+nota2)>=9 disp('aluno nvel B') else disp('aluno nivel C') end

11.4 Estrutura Switch-Case Essa estrutura funciona como uma chave seletora, escolhendo a expresso correta para executar os comandos. O comando switch utilizado quando desejamos selecionar (chavear)

condicionalmente expresses porm, na forma de lista. O formato geral do comando switch :

switch expresso case valor 1 ......... grupo de comandos case valor 2 ......... grupo de comandos case valor 3 ......... grupo de comandos otherwise ......... grupo de comandos end

1) Faa um programa que o usurio possa digitar qualquer ms do ano e como resultado seja mostrado o nmero de dias do ms correspondente.%Programa para saber quantos dias tem o mes % clear; clc; mes=input('digite o mes desejado: '); switch mes case {'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 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ 12. ARQUIVOS M DE FUNES um programa elaborado como arquivo.m e que calcula algo desejado pelo programador, devolvendo somente o valor da resposta. Os comandos executados por esse programa ficam ocultos. Voc s visualiza o que entra e o que sai, ou seja, uma funo uma caixa preta.

Figura 12 Princpio de funcionamento de uma funo.

O Matlab, como outras linguagens de programao, possui duas formas de criao de programas: roteiro (script) e funo (function). Na aula passada, vimos um exemplo prtico de criao de um roteiro que executava uma seqncia de comandos Matlab para o ajuste de curvas (linear, polinomial e no-linear). Quando um programa executa uma seqncia de comandos que pode ou no retornar parmetros na janela de comandos do Matlab, ento esse programa denomina-se roteiro no Matlab. Em ingls, roteiro chamado script, termo esse que tambm usado na lngua portuguesa para descrever uma seqncia de eventos. A primeira linha executvel no arquivo deve ser a linha de declarao da funo. De outro modo, o MATLAB tratar o arquivo como uma rotina. A linha de declarao de uma funo: Define o arquivo como uma funo (diferenciando-o de uma rotina); Define o nome da funo; Define o nmero e a ordem das variveis de entrada, alm de especificar o que a funo ir retornar (variveis de sada). O formato caracterstico da linha de declarao de uma funo :

function [argumentos de saida] = nome_funcao (argumentos de entrada)

Exemplo: 1) Montar um programa que realize o clculo da distncia entre dois pontos (x1, y1) e (x2, y2) em um sistema de coordenadas cartesianas.

d=

(x 2 x1 )2 + ( y 2 y1 )2

33 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ No caso, vamos criar um programa principal chamado distancia e atravs deste programa vamos chamar a funo dist2.m, na qual estar implementada a foruma acima. Passo 1: Criando a funo:

Figura 13 Implementao da Funo dist2.

Em um m.File implementamos o cdigo da funo. Lembre-se este arquivo .m deve ser salvo com o nome da funo no caso dist2.m. Passo 2: Criando o programa principal:%% Programa distancia entre pontos %% %% o programa principal chama a funo dist2 para o calculo %% disp('Calculando a distncia 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 distncia entre os potnos A e B %f\n:',resp);

Figura 14 Programa em execuo.

34 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ 13. GRFICOS NO MATLAB Grficos so ferramentas poderosas quando se deseja interpretar visualmente os resultados. Um recurso especialmente interessante nas engnharias e demais cincias exatas, onde o MATLAB encontra as maiores aplicaes. O comando plot utilizado para criao de grficos bidimensionais. A forma mais simples desse comando : plot (x,y) Cada um dos argumentos x e y deve ser um vetor. Alm disso, os dois vetores devem possuir a mesma quantidade de elementos. Ao executar o omando plot, gerada uma sada na janela Figure Window. Caso a janela Figure Window esteja fechada, ela ser aberta automaticamente aps a execuo do comando.

13.1 Grficos 2-D Os resultados apresentados a seguir foram obtidos com o auxlio do software de simulao PSCAD/EMTDC, no qual foram implementadas distintas situaes de carga e de tenso de alimentao para averiguar os efeitos da conexo das cargas especiais modeladas no SEP. Exemplo:%% plotar a funo 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 grfico 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('Grfico da Funo seno'); %% insere ttulo no grafico legend('Amplitude = 1','Amplitude = 2'); %%insere legenda no grfico

35 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

Figura 15 Grfico gerado aps a execuo do programa.

Exemplo:x 1) Seja a funo y = e sen(x) . Como seria seu grfico no intervalo [0 ; e1 ]?

%%% Grfico da funo 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('grfico 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 mximo local'); %%disponibiliza ao usuario marcar o ponto no grafico

Figura 16 Grfico gerado aps a execuo do programa.

36 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ 1) Seja a funo f ( x) = x 3 9 x + 3 (livro, pg.31). Como seria seu grfico no intervalo [-4 , 3]?%%% Grfico da funo f(x)=x.^3-9.*x+3 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% x = -4:0.1:3; %%gera o vetor x y = x.^3-9.*x+3; %%calcula as amplitudes, vetor y plot(x,y,'--b'); %%plota o grafico, linha pontilhada, na cor azul grid on; %% coloca o grid title('\bf{grfico f(x)=x.^3-9.*x+3}' ); %% coloca o titulo no grafico em negrito xlabel('eixo x'); %% coloca texto no eixo x ylabel('eixo y'); %% coloca texto no eixo y axis([-4 4 -25 15]) %%ajusta os eixos para os limites [XMIN XMAX YMIN YMAX] %%\bf negrito{'texto'}, \it italico{'texto'}; %%\fontname{arial}

Figura 17 Grfico da funo x^3-9*x+3.

2) Utilizando o processo de ii), pg. 33 livro, vamos isolar a funo f(x) e obter a equao equivalente g(x)=h(x) e esboar o grfico das funes 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 3h( x) = 9 x 3

37 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Grfico das funes g(x)=x.^3 e h(x)=9.*x-3 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% x = -10:0.1:10; %%gera o vetor x g = x.^3; %%calcula as amplitudes, vetor g plot(x,g,'--b'); %%plota o grafico g(x), linha pontilhada, na cor azul grid on; %% coloca o grid h=9.*x-3; %%calcula as amplitudes, vetor h hold 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 x ylabel('eixo y'); %% coloca texto no eixo y axis([-5 5 -40 40]) %%ajusta os eixos para os limites [XMIN XMAX YMIN YMAX]

Figura 18 Grficos das funes g(x)=x^3 e h(x)=9x-3.

13.2 Estilos de Linhas e Smbolos Os tipos de linhas, smbolos e cores usados para plotar grficos podem ser controlados se os padres no so satisfatrios. 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 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

Figura 19 Plotando grficos com marcadores e linha pontilhada, detalhe comando subplot.

Comando subplot = Gera vrios eixos em uma mesma janela. Sintaxe: subplot(m,n,p) Parmetros de entrada: m= nmero de eixos na vertical (nmero de linhas). n=Nmero de eixos na horizontal (nmero de colunas). p=ndice do eixo corrente Outros tipos de linhas, pontos e cores tambm podem ser usados:

39 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

13.3 Coordenada Polar e Grfico de Barras polar(theta,r,fmt) plota em coordenadas polares o ngulo theta, em radianos, r que a variao radial linear, e fmt a cadeia de caracteres contendo a descrio do tipo de curva a ser traado (como o plot);%% Gerando grficos em coordenadas polares theta=-2*pi:0.1:2*pi; rho=1:126; polar(theta,rho,'r*')

40 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

Figura 20 Coordenadas polares.

Figura 21 Grficos de barras.

41 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________%% Gerando grficos de Barras x=-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 Grficos 3-D O MATLAB possui muitos recursos para visualizao de dados em 3D. Este item representa as principais funes relacionadas a este tpico. Estes so alguns comandos para plotar grficos tridimensionais e contornos. Tabela 8 Comandos para plotar grficos 3-D.

O MATLAB define uma superfcie do tipo mesh (rede) pelas coordenadas Z sobre um plano x-y. Superfcies tipo mesh so teis para visualizar matrizes demasiadamente grandes para serem mostradas na forma numrica, ou para plotar funes de duas variveis. O primeiro passo para plotar uma funo de 2 variveis z=f(x,y) gerar matrizes X e Y contendo linhas e colunas repetidas, respectivamente, para funcionarem como o domnio da funo. A funo meshgrid transforma o domnio especificado por dois vetores x y em duas matrizes X e Y. Essas matrizes ento so usadas para avaliar a funo de 2 variveis. Por exemplo, seja a funo: 42 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________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 22

x=-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 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________[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 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________figure(2) [X,Y]=meshgrid(-8:0.5:8,-8:0.5:8); mesh(X,Y,3*sqrt(X.^2+Y.^2))

Figura 26

figure(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 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ Tabela 9

x=-4*pi:0.1:4*pi; y=-4*pi:0.1:4*pi; plot3(cos(x),sin(y),(x+y))

Figura 28

46 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________%% Equaes paramtricas t=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 on xlabel('x'); ylabel('y'); zlabel('z');

Figura 29 %% Malha e persianas verticais x=-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 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ 13.5 Anotaes no Grfico O MATLAB possui comandos de fcil utilizao para adicionar informaes em um grfico: Tabela 10

Por exemplo:fplot('sin', [-pi pi]) title('Grfico da funo f(x)=seno(x), -pi> P=[1 -5 9] P = 1 -5 9

>> Q=[1 1 -1] Q = 1 1 -1

>> polyder(P,Q) ans =

52 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________4 >> -12 6 14

Nos devolve como resultado: 4 -12 6 14. Isto P ' ( x ) = 4 x 12 x + 6 x + 143 2

14.8 Derivada de um Quociente de Polinmios2 Considere os seguintes polinmios: P ( x) = x 5 x + 9 e Q( x ) = x + 7

>> P=[1 -5 9] P = 1 >> Q=[1 7] Q = 1 7 -5 9

>> [n,d]=polyder(P,Q) n = 1 14 -44

d = 1 >>2 2 Isto n( x ) = x + 14 x 44 numerador e n( x ) = x + 14 x + 49 o denominador.

14

49

53 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________ 15. LISTA DE FUNES DO MATLAB

54 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

55 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

56 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

57 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

58 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

59 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

60 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

61 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

62 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

63 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

64 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

65 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

66 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

67 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

68 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

69 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

70 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

71 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

72 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

73 _______________________________________________________________________________Clculo Numrico Utilizando Matlab

_______________________________________________________________________________

16. REFERNCIAS BIBLIOGRFICAS[1]. [2]. [3]. [4]. [5]. S. J. Chapman. Programao em Matlab Para Engenheiros. Editora Cengage Learning, 2 Edio, 2010. A. Gilat. Matlab Com Aplicaes em Engenharia. Editora Bookman, 2 Edio, 2006. S. A. Vicente. Curso Introdutrio de Matlab 6.5. Apostila, Janeiro, 2003. Matlab & Simulink, Apostila, Faculdade de Engenharia Industrial, 1994. Matlab Curso Introdutrio, Apostila, Centro Brasileiro de Pesquisas Fsicas, 2002.

74 _______________________________________________________________________________Clculo Numrico Utilizando Matlab