Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Tutorial de Matlab, Notas de estudo de Engenharia Química

Material introdutório ao software Matlab.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 27/11/2009

rafael-sobrinho-8
rafael-sobrinho-8 🇧🇷

5

(3)

4 documentos

1 / 30

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
MATLAB
Curso Introdutório
Centro Brasileiro de Pesquisas Físicas
2002
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Pré-visualização parcial do texto

Baixe Tutorial de Matlab e outras Notas de estudo em PDF para Engenharia Química, somente na Docsity!

MATLAB

Curso Introdutório

Centro Brasileiro de Pesquisas Físicas

Sumário

    1. INTRODUÇÃO
      • 1.1 O que é o Matlab?
    1. INICIANDO
      • 2.1 Variáveis - 2.1.1 ENTRANDO COM VALORES - 2.1.2 VARIÁVEIS PERMANENTES
      • 2.2 Expressões e Comandos Básicos - 2.2.1 SALVANDO/APAGANDO O WORKSPACE - 2.2.2 O COMANDO MAIS IMPORTANTE - 2.2.3 EXERCÍCIOS
    1. FAMILIARIZANDO-SE COM MATRIZES...........................................................................
      • 3.1 Manipulação de Matrizes - 3.1.1 ELEMENTOS DE UMA MATRIZ - 3.1.2 GERANDO VETORES - 3.1.3 MATRIZES DENTRO DE MATRIZES - 3.1.4 EXERCÍCIOS
      • 3.2 Operações Elemento – por – Elemento
      • 3.3 Operadores Lógicos e Relacionais
      • 3.4 Operadores e Manipulação de Matrizes - 3.4.1 EXERCÍCIOS
      • 3.5 Algumas Funções
    1. POLINÔMIOS..................................................................................................................
      • 4.1 Representando Polinômios no MATLAB.....................................................................
      • 4.2 Funções Relacionadas à Polinômios.......................................................................... - 4.2.1 EXERCÍCIOS
    1. GRÁFICOS......................................................................................................................
      • 5.1 Gráficos 2-D - 5.1.2 EXERCÍCIOS
      • 5.2 Gráficos 3-D - 5.2.1 FUNÇÕES ELEMENTARES PARA GRÁFICOS 3-D............................................ - 5.2.2 MESHGRID.......................................................................................................... - 5.2.3 MELHORANDO A APARÊNCIA - 5.2.4 EXERCÍCIOS
    1. PROGRAMAÇÃO............................................................................................................
      • 6.1 Controladores de Fluxo - 6.1.1 FOR - 6.1.2 WHILE.................................................................................................................. - 6.1.3 IF.......................................................................................................................... - 6.1.4 BREAK, INPUT, PAUSE
      • 6.2 Arquivos M - 6.2.1 SCRIPTS.............................................................................................................. - 6.2.2 ARQUIVOS-FUNÇÃO - 6.2.3 FUNÇÕES FUNÇÃO............................................................................................ - 6.2.4 EXERCÍCIOS
    1. BIBLIOGRAFIA................................................................................................................
    1. RESPOSTA DOS EXERCÍCIOS......................................................................................

2. INICIANDO

2.1 Variáveis

O MATLAB trabalha essencialmente com um tipo de variável: uma matriz contendo números, complexos ou não (um escalar é uma matriz 1 x 1). Em alguns casos, um tratamento especial é dado a uma matriz 1 x 1 ( escalar ) ou a matrizes 1 x n ou n x 1 ( vetores ).

2.1.1 ENTRANDO COM VALORES

No MATLAB não é necessário que sejam declaradas as variáveis para iniciá-las, como é feito em outras linguagens de programação. Ao jogar dados numa variável, o programa aloca memória automaticamente. A maneira mais fácil de entrar com pequena quantidade de valores é digitando diretamente os dados:

  • envolva os elementos com colchetes, [ ];
  • separe cada elemento com espaços ou vírgulas;
  • use ponto-e-vírgula (;) para indicar fim da linha.

Por exemplo, para entrar com a matriz abaixo na memória do computador, e guardá-la na variável A: 1 2 3 A = 4 5 6 7 8 9

Variáveis

Escalares Vetores Matrizes

Vetores Linha Vetores Coluna

Numéricos “Strings”

4 7 5 9 t e x t o

B = 4.

8 2

A = 1 -7 3 2 0 8

(matrix 1x1)

Basta digitar: » A=[1 2 3;4 5 6; 7 8 9] Que a saída será: A = 1 2 3 4 5 6 7 8 9

OBS: Para que o computador realize a operação e não mostre a saída, basta terminar a expressão com ponto-e-vírgula (;). Isto é muito útil para evitar que o computador fique mostrando números de cálculos intermediários e para acelerar as operações.

2.1.2 VARIÁVEIS PERMANENTES

Existem algumas variáveis que são intrínsecas ao MATLAB e que não podem ser apagadas. Algumas são interessantes:

ans (^) Resposta mais recente, que não foi atribuída a nenhuma variável.

flops (^) Contador de operações matemáticas. eps (^) Precisão da máquina. NaN (^) Not a Number (indeterminação) realmax (^) Maior número de ponto flutuante. inf (^) Infinito. realmin (^) Menor número de ponto flutuante. computer (^) Tipo de computador. pi (^) 3,14159265358979 why (^) Resposta sucinta. i, j (^) Unidade imaginária version (^) Versão do MATLAB.

Para saber a precisão da máquina, basta digitar eps.

2.2 Expressões e Comandos Básicos

MATLAB é uma linguagem de expressão. Ele interpreta e avalia as expressões digitadas, que são geralmente na forma: variável = expressão Os números são em notação decimal. Pode-se criar números complexos basta escrever i (ou j ) depois da parte imaginária. Alguns exemplos de números permitidos: 1/3 -99. 9.63973 1.602E-20 6.025E 3 + 2i -3.1459i 3E5i

0.32 2.5 + pi 2 A = 1e2 4 12 9 51 24

B = 32 4.65 74

» help who WHO List current variables. WHO lists the variables in the current workspace. WHOS lists more information about each variable. WHO GLOBAL and WHOS GLOBAL list the variables in the global workspace.

Um comando igualmente importante é lookfor , que procura entre todas as funções do MATLAB a palavra-chave especificada.

» lookfor max BITMAX Maximum floating point integer. REALMAX Largest positive floating point number. MAX Largest component.

2.2.3 EXERCÍCIOS

Comandos: who, whos, eps, format, quit, save, load, clear, help, lookfor.

Exercícios:

  1. Armazene no workspace os seguintes valores: a = 3.132; b = -23.004; c = 5*pi; d = (3 5.4 7.43) e = (-2.234 0 pi/2)

  2. Verifique o resultado das seguintes das seguintes operações: a) a + b +eps e) g – c * f b) c – b * (a / b) f) A * B c) d – e g) a * A – B / c d) e’ + 2 * f h) f * B

  3. Verifique o resultado das seguintes operações: a) sin(a) * log(b) e) max(log(g + f + dt))*B b) tan(c+eps) – asin(b) f) sin(cos(tan(A)))

f = 0 1

12e- g = 4i pi*i

c) mind(d^2) – max(e) g) inv(A) d) log(f) h) inv(At) * cos(B)

  1. Atribua as seguintes expressões às variáveis: a) 3.34 * a – pi/c para x b) log(d + 34.0054) para y c) log(A) para Z d) ft^ * B para t

  2. Salve as variáveis x, Z, B em um arquivo chamado exerc1.mat.

  3. Saia do MATLAB, entre novamente e carregue as variáveis salvas anteriormente.

  4. Apague a variável Z.

3. FAMILIARIZANDO-SE COM MATRIZES

3.1 Manipulação de Matrizes

3.1.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] Resulta em: x = -1.3000 4.3266 7.

Elementos individuais de uma matriz podem ser referenciados com seus respectivos índices entre parêntesis. No exemplo anterior, para referenciar o segundo elemento do vetor x: » x(2) ans =

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

A = 5 6 7 8

2.4000 0. 2.6000 0. 2.8000 0. 3.0 0.

3.1.3 MATRIZES DENTRO DE MATRIZES

É possível construir matrizes maiores a partir de matrizes menores. Por exemplo: » A=[1 2 3;4 5 6;7 8 9]; » r=[13 32 5]; » A=[A;r] A = 1 2 3 4 5 6 7 8 9 13 32 5

Seguindo o mesmo raciocínio, pode-se extrair matrizes menores a partir de uma maior. Já é sabido o comando » x=A(1,3) x = 3 atribui à variável “x” o elemento da 1a^ linha e 3a^ coluna da matriz A. Da mesma forma que é possível atribuir um elemento de uma matriz (que é um escalar, ou seja, uma matriz 1 x 1), também é possível atribuir pedaços inteiros da mesma matriz. Por exemplo, seja a matriz A:

Pegar os elementos da 2a^ linha e 3a^ e 4 a colunas:

» A=[1 2 3 4; 5 6 7 8;9 10 11 12;14 83 23 0] A = 1 2 3 4 5 6 7 8 9 10 11 12 14 83 23 0 » A(2,[3 4]) ans = 7 8

A = 5 6 7 8

O que aconteceu? Ao invés de passar um escalar como índice para as colunas da matriz A, passou-se o vetor [3 4]. O MATLAB interpretou isto como sendo: pegue os elementos a 23 e a 24. Um outro exemplo ainda na matriz A. Para pegar a parte selecionada.

» A([1 2 3],[2 3]) ans = 2 3 6 7 10 11

ou ainda um comando equivalente: » A(1:3,2:3) ans = 2 3 6 7 10 11

Usar os dois pontos sozinhos significa todos os elementos da respectiva linha ou coluna: » A(3,:) ans = 9 10 11 12

Este tipo de notação facilita enormemente a criação de programas.

3.1.4 EXERCÍCIOS

  1. Sejam as matrizes abaixo: 1 2 3 4 7.4 pi 0 A = 5 6 7 8 B= -4.01 2 3 9 10 11 12 0.1 10 0 14 83 23 0

a) Atribua o elemento a 32 à variável c b) Atribua o elemento b 22 à variável c c) Atribua os elementos a 11 , a 12 e a 13 à um vetor d d) Atribua a 3a^ coluna da matriz B a um vetor d e) Atribua a 2a^ linha de B à primeira linha de A. Dica: preencha os espaços restantes com 0. f) Atribua a 4a^ linha de A à 2a^ linha de A.

3.3 Operadores Lógicos e Relacionais

Existem seis operadores relacionais no MATLAB. São eles: Símbolo Operador < menor que <= menor ou igual que

maior que = maior ou igual que == igual ~= não igual

O resultado da comparação é 1 se verdadeiro e 0 se falso. por exemplo: » 2 + 2 == 4 ans = 1

No caso de comparação com matrizes, o resultado será uma matriz de 0 e 1: » x=[2 3 4;5 2 7;9 2 7] x = 2 3 4 5 2 7 9 2 7 » x> ans = 0 0 0 1 0 1 1 0 1

Para os operadores lógicos, tem-se: Símbolo Operador & e | ou ~ não

Existem ainda algumas funções que são úteis com os operadores lógicos, com any ou all. Por exemplo: » x = [1 2 3 4 5 6] x = 1 2 3 4 5 6

» any(x>5) ans = 1

» all(x>5) ans = 0

3.4 Operadores e Manipulação de Matrizes

Pode-se usar os vetores de 0 e 1, geralmente criados a partir de operações de comparação, como referência para matrizes. Seja a matriz A descrita anteriormente. para atribuir os elementos de A que satisfazem determinada comparação a uma outra variável, faz-se: variável = A( comparação ) Por exemplo: » b = A(A>5) b = 9 14 6 10 83 7 11 23 8 12

3.4.1 EXERCÍCIOS

Comandos: any, all. Exercícios:

  1. Seja o vetor x = 1:10. Verifique as afirmativas: a) (x.^2) == ( x.x) d) A = [1 2 3; 4 5 6; 7 8 9]; b) any((x.^3)>(3x)) A^2 == A.^ c) all((x./(x+1))>((x+1)./(x+1.5)))

Exemplo de ajuste de curva: » x=1:7; » y=[1.2 1.6 2.3 2.8 3.9 4.5 5.6]; » [x' y'] ans = 1.0000 1. 2.0000 1. 3.0000 2. 4.0000 2. 5.0000 3. 6.0000 4. 7.0000 5. » faj=polyfit(x,y,1); » faj=polyval(faj,x); » plot(x,y,'+blue',x,faj,'black')

4.2.1 EXERCÍCIOS

  1. Sejam os polinômios p = x^4 – 3x^2 +5x – 30 e q = 2x^4 –7x^3 +2x –15. Calcule: a) p x q e) 1ª^ derivada de p b) p ÷ q f) 1ª^ derivada de p no ponto x = c) p(2) g) 1ª^ derivada de p ÷ q d) raízes q

5. GRÁFICOS

O MATLAB proporciona técnicas sofisticadas para visualização de dados. Ele trabalha essencialmente com objetos gráficos , tais como linhas e superfícies, cuja aparência pode ser controlada através de propriedades de objeto. Entretanto, como o MATLAB possui uma vasta gama de funções para gráficos que automatizam essas propriedades, na maioria das vezes não será necessário lidar com estes objetos.

5.1 Gráficos 2-D

A função básica para desenhar gráficos em duas dimensões é a função plot. Quando esta função recebe um conjunto de ponto x e y, ela desenha-os em um plano cartesiano. Por exemplo, seja o conjunto de pontos abaixo:

x y = x^2 0 0 1 1 2 4 3 9 4 16 5 25

Para plotar o gráfico y = f(x) , primeiro cria-se um vetor x contendo os valores de x, e depois um vetor y com os valores de y. Então chama-se a função plot , que é usada da seguinte maneira: » x=[0 1 2 3 4 5]; » y=x.^2; » plot(x,y) Lembrando que para definir o vetor x pode-se usar os comandos mostrados na seção 3.1.2 (“ Gerando Vetores ”) e colocar a função diretamente num dos parâmetros da função plot. Por exemplo: » plot(x,y) » x=[0:5]; » plot(x,x.^2)

O MATLAB criará uma janela com a figura do gráfico ( vide figura 1). Na verdade, a função plot recebe um número variável de argumentos. Sua forma mais geral é plot(x 1 ,y 1 ,jeito 1 ,x 2 ,y 2 ,jeito 2 ,…,xn,yn,jeiton). Ou seja, você pode traçar mais de uma curva no mesmo gráfico. O argumento jeito representa as várias opções para o gráfico, que pode ser qualquer um dos seguintes strings^2 :

y (^) amarelo w (^) branco + (^) cruz m (^) roxo k (^) preto - (^) sólida c (^) azul claro -- (^) tracejada * (^) estrela r (^) vermelho. (^) ponto : (^) pontilhada g (^) verde o (^) círculo -. (^) traço ponto b (^) azul x (^) x

Figura 1 – Gráfico f(x) = x^2

(^2) Um string é uma seqüência de caracteres que o MATLAB interpreta como um texto. Os strings são sempre denotados entre apóstrofos.

(^00) 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

5

10

15

20

25

5.2 Gráficos 3-D

5.2.1 FUNÇÕES ELEMENTARES PARA GRÁFICOS 3-D

O MATLAB cria uma variedade de funções para gráficos em 3 dimensões. Entre elas:

plot3 (^) Plota curvas em 3D surf, surfc, surfl (^) superfícies 3D contour (^) Curvas de nível mesh, meshc, meshz (^) cria linhas em perspectiva 3D

Por exemplo: » t=0:pi/50:10*pi; » plot3(sin(t),cos(t),t);

Gera a figura 3. Todos os outros comandos de escala, título, nome aos eixos continuam valendo (nome ao eixo z: zlabel ).

5.2.2 MESHGRID

O MATLAB define uma superfície do tipo mesh (rede) pelas coordenadas Z sobre um plano x-y. Superfícies tipo mesh são úteis para visualizar matrizes demasiadamente grandes para serem mostradas na forma numérica, ou para plotar funções de duas variáveis.

O primeiro passo para plotar uma função de 2 variáveis z=f(x,y) é gerar matrizes X e Y contendo linhas e colunas repetidas, respectivamente, para funcionarem como o domínio da função. A função meshgrid transforma o domínio especificado por dois vetores x y em duas matrizes X e Y. Essas matrizes então são usadas para avaliar a função de 2 variáveis. Por exemplo, seja a função:

Figura 3 – Gráfico de uma hélice circular

Gráfico 3D

Curvas Superfícies

-1 -0.

0 0.

1 -0.5 -

0.5 0 10

10

20

30

40

f(x,y) = sen(x^2 + y^2 )½/ (x^2 + y^2 » plot3(sin(t),cos(t),t); » [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)

5.2.3 MELHORANDO A APARÊNCIA

É possível especificar o ponto de vista no qual se enxerga a figura usando o comando view. O comando view recebe dois argumentos. O primeiro é a rotação em graus no plano xy , e o segundo é a elevação em graus do ponto de vista. O padrão é view(-37.5,30). Também é possível colocar vários tipos de gráficos em uma mesma figura, usando o comando subplot. Por exemplo, subplot(m,n,p) quebra a figura em m por n subgráficos e seleciona o p-ésimo como o atual. Mais detalhes ver help on-line.