Você está na página 1de 51

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Introdu¸c˜ao ao Matlab

Direcionada para o m´etodo de elementos finitos

.

24 de agosto de 2009

Gomes Vieira 24 de agosto de 2009 Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Matlab Tipo de linguagem Bibliotecas b´asicas Caixas de ferramenta

B´asico Prompt Declarando vari´aveis Mostrando vari´aveis Listando vari´aveis Destruindo vari´aveis Matrizes e vetores Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes Gr´aficos Figura Parˆametros de objetos Eixo Gr´aficos

Referˆencias

objetos Eixo Gr´aficos Referˆencias Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Tipo de linguagem

Tipo de linguagem Bibliotecas b´asicas Caixas de ferramenta

Linguagem interpretada

tempo de interpreta¸c˜ao × tempo de execu¸c˜ao

k = k + 1, k Z

x = A 1 b , A C 1000× 1000

macro-opera¸c˜oes

matrizes operadores e fun¸c˜oes mais recorrentes

identifica¸c˜ao autom´atica de tipo

L´ogico: b = true

Num´erico: k = 1, z = 1 + i

Caractere: s = ’a’ Estrutura: s.a = 1 C´elula: c = {1, ’a’}

= 1 C´elula: c = { 1 , ’a’ } Adriano Chaves Lisboa . Douglas Alexandre

Introdu¸c˜ao ao Matlab

Bibliotecas b´asicas

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Tipo de linguagem Bibliotecas b´asicas Caixas de ferramenta

Interface do Matlab: e.g. edit, help Fun¸c˜oes b´asicas sobre tipos: e.g. char, sum, max

Fun¸c˜oes matem´aticas: e.g. sin, cos, erf, gamma, bessel, ellipke M´etodos num´ericos b´asicos: e.g. polinˆomios, integra¸c˜ao, LU

Gr´aficos: e.g. polilinhas, malhas Manipula¸c˜ao de arquivos

Data e hora

´

Audio e v´ıdeo Interface do computador: e.g. porta serial

Interface gr´afica Matrizes esparsas

gr´afica Matrizes esparsas Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Caixas de ferramenta

Estat´ıstica Mapas Equa¸c˜oes diferenciais parciais Matem´atica simb´olica

Tipo de linguagem Bibliotecas b´asicas Caixas de ferramenta

. Douglas Alexandre Gomes Vieira Tipo de linguagem Bibliotecas b´asicas Caixas de ferramenta Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Prompt

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Prompt

Declarando vari´aveis

Mostrando vari´aveis

Listando vari´aveis

Destruindo vari´aveis

o prompt ´e uma janela onde os comandos dados linha por linha cada comando ´e escrito ap´os >> e ´e executado ao teclar ENTER

To get started, select MATLAB Help or Demos from the Hel

>> ’Hello, world!’

tudo escrito ap´os o caracter % ´e coment´ario, e n˜ao comando

>> % nada ir´a acontecer ap´os teclar ENTER >> clc % comando para limpar a tela do prompt

% comando para limpar a tela do prompt Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira

Introdu¸c˜ao ao Matlab

Declarando vari´aveis

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Prompt

Declarando vari´aveis

Mostrando vari´aveis

Listando vari´aveis

Destruindo vari´aveis

todas vari´aveis s˜ao inicializadas para detectar seu tipo atribui¸c˜ao

>> a = 1 % <a> ´e um double inicializado com 1 >> a = ’c’ % <a> agora ´e um caracter inicializado com c

vari´avel ans ´e criada quando nenhum nome ´e dado

>> 1 % <ans> ´e um double inicializado com 1 >> ’c’ % <ans> agora ´e um caracter inicializado com c

´e um caracter inicializado com c Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Prompt

Declarando vari´aveis

Mostrando vari´aveis

Listando vari´aveis

Destruindo vari´aveis

Constantes num´ericas importantes

pi : o n´umero π = 3 , 1415926 i , j : o n´umero imagin´ario i = j = 1 inf : infinito inf = 1/0 NaN : not-a-number NaN = 0/0 = inf * 0

: not-a-number NaN = 0/0 = inf * 0 Adriano Chaves Lisboa . Douglas Alexandre Gomes

Introdu¸c˜ao ao Matlab

Mostrando vari´aveis

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Prompt

Declarando vari´aveis

Mostrando vari´aveis

Listando vari´aveis

Destruindo vari´aveis

o ponto e v´ırgula impede que o valor da vari´avel seja mostrado

>> 1; % atribui mas n˜ao mostra o valor de <ans> >> a = ’c’; % atribui mas n˜ao mostra o valor de <a>

e se a vari´avel j´a est´a definida ela pode ser mostrada

>> a = pi; % <a> ´e um double inicializado com pi >> a % mostra o valor de <a> >> a; % nada acontece >> b % erro: b n˜ao existe

>> b % erro: b n˜ao existe Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Listando vari´aveis

listando vari´aveis existentes

Prompt

Declarando vari´aveis

Mostrando vari´aveis

Listando vari´aveis

Destruindo vari´aveis

who lista vari´aveis whos lista vari´aveis com seus respectivos tipos

>> i; % <ans> ´e um double complexo inicializado com 0 + i >> a = ’c’; % <a> ´e um caracter inicializado com c >> b = false; % <b> ´e um bin´ario inicializado com false >> who >> whos

>> who >> whos Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Destruindo vari´aveis

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Prompt

Declarando vari´aveis

Mostrando vari´aveis

Listando vari´aveis

Destruindo vari´aveis

destruindo vari´aveis

clear

x y z destr´oi vari´aveis x , y e z

clear all destr´oi todas as vari´aveis

>> i; % <ans> ´e um double complexo inicializado com 0 + i >> all = ’c’; % <all> ´e um caracter inicializado com c >> b = false; % <b> ´e um bin´ario inicializado com false >> who >> clear all % destr´oi vari´avel <all> >> who >> clear all % destr´oi todas as vari´aveis: <ans> e <b> >> who

e <b> >> who Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

lista de elementos ´e delimitada por parenteses elementos de uma mesma linha s˜ao separados por v´ırgula ou espa¸co para mudar de linha ´e usado ponto e v´ırgula

>> a = [1 2 3] % define vetor <a> 1 x 3 >> b = [1; 2; 3] % define vetor <b> 3 x 1 >> c = [1, 2; 3, 4] % define matriz <c> 2 x 2 >> d = [1 -2 3; 3-4 1 2] % define matriz <d> 2 x 3 >> e = [1 2; 3 4 5] % erro: concatenac¸˜ao inconsistente >> f = [c d] % define matriz <f> 2 x 5

d] % define matriz <f> 2 x 5 Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira

Introdu¸c˜ao ao Matlab

Operador :

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

o operador : permite definir um vetor por incremento

i:f gera o vetor [i i + 1 i + 2

f ]

i:d:f gera o vetor [i i + d i + 2d

i + nd ], onde i + nd f

>> a = 1:3 % define vetor <a> 1 x 3 >> b = 1:2:6 % define vetor <b> 1 x 3 >> c = [4:-1:1; 1 2:2:4 1] % define matriz <c> 2 x 4

1] % define matriz <c> 2 x 4 Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Salvar e carregar dados

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

qualquer vari´avel pode ser salva e restaurada de maneira muito simples

save file

load file carrega as vari´aveis x , y e z do arquivo file.mat

x y z salva as vari´aveis x , y e z no arquivo file.mat

>> a = 1:3 % define vetor <a> 1 x 3 >> b = 2 % define vari´avel <b> >> save mydata a b % salva vari´aveis <a> e <b> >> clear all % destr´oi vari´aveis <a> e <b> >> load mydata % restaura vari´aveis <a> e <b> >> clear all % destr´oi vari´aveis <a> e <b> >> load mydata b % restaura apenas vari´avel <b>

restaura apenas vari´avel <b> Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Editor

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

como salvar uma sequˆencia de comandos do prompt?

scripts: sequˆencia de comandos, como feita no prompt fun¸c˜oes: permite receber e retornar vari´aveis

Matlab possui um editor de texto com marcador de sintaxe

>> edit % mostra editor >> edit clc % abre arquivo clc.m no editor

clc % abre arquivo clc.m no editor Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao

Introdu¸c˜ao ao Matlab

Script

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

sequˆencia de comandos compartilha escopo do prompt

% este c´odigo est´a salvo em um arquivo test.m a = 1:3 % define vari´avel <a> no escopo do prompt who % lista todas vari´aveis do prompt (incluindo <a>)

do prompt (incluindo <a>) Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Problema de treli¸cas

y 250kN 4 4 3 2 0,3m 3 2 1 1 200kN x 0,4m
y
250kN
4
4
3
2
0,3m
3
2
1
1
200kN
x
0,4m

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

Area ´ de se¸c˜ao: A = 0 , 0001m 2

M´odulo de Young: E = 295GN/m 2

Fun¸c˜oes Area ´ de se¸c˜ao: A = 0 , 0001m 2 M´odulo de Young: E =

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao

Defini¸c˜ao de um problema de treli¸cas

Fun¸c˜oes

y 250kN 4 4 3 2 0,3m 3 2 1 1 200kN x 0,4m
y
250kN
4
4
3
2
0,3m
3
2
1
1
200kN
x
0,4m

p: matrix 4 × 2 com as coordenadas (x , y ) dos n´os

e: matrix 4 × 2 com a

conectividade (i , j ) de aresta

b: matrix 4 × 2 bin´aria indicando

coordenadas fixas de cada n´o

f: matrix 4 × 2 com a for¸ca externa

em cada n´o

A: vetor 4 × 1 com a ´area de se¸c˜ao de cada aresta E: vetor 4 × 1 com o m´odulo de Young de cada aresta

com a ´area de se¸c˜ao de cada aresta E: vetor 4 × 1 com o m´odulo

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao

Script de defini¸c˜ao de um problema de treli¸cas

Fun¸c˜oes

% este c´odigo est´a salvo em um arquivo truss.m

p

= [0 0; .4 0; .4 .3; 0 .3]; % coordenadas dos n´os (m)

e

= [1 2; 3 2; 1 3; 4 3]; % connectividade de aresta

b

= [1 1; 0 1; 0 0; 1 1]; % coordenadas fixas de cada n´o

f

= [0 0; 20e4 0; 0 -25e4; 0 0]; % forc¸a externa em cada n´o (N

A

= [1e-4; 1e-4; 1e-4; 1e-4]; % ´area de cada barra (mˆ2)

E

= [295e9; 295e9; 295e9; 295e9]; % m´odulo de Young (Pa)

295e9]; % m´odulo de Young (Pa) Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao

Introdu¸c˜ao ao Matlab

Algoritmo

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

if <express˜ao l´ogica> <procedimento> elseif <express˜ao l´ogica> <procedimento> else <procedimento>

end

switch <vari´avel> case <constante> <procedimento> case <constante> <procedimento> otherwise <procedimento>

end

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Algoritmo

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

for <contador> = <vetor> <procedimento>

end

while <express˜ao l´ogica> <procedimento>

end

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

break % sai do loop mais interno continue % pula o restante do c´odigo do loop return % sai da func¸˜ao ou script

return % sai da func¸˜ao ou script Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Opera¸c˜oes com matrizes

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

s˜ao definidas na linguagem todas as opera¸c˜oes b´asicas co m matrizes

p

= [0 0; .4 0; .4 .3; 0 .3] % matriz 4 x 2

d

= [1; 1] % vetor 2 x 1

p’ % matriz 2 x 4: transposto de matriz

p + 2 * p % matriz 4 x 2: adic¸˜ao de matrizes

p * d % vetor 4 x 1: multiplicac¸˜ao de matrizes (p’ * p)ˆpi % matriz 2 x 2: exponenciac¸˜ao de matriz (p’ * p)\d % vetor 2 x 1: inver˜ao de matriz d/(p’ * p) % erro: dimens˜oes n˜ao concordam

p) % erro: dimens˜oes n˜ao concordam Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao

Opera¸c˜oes elemento-a-elemento

Fun¸c˜oes

adi¸c˜ao e subtra¸c˜ao s˜ao naturalmente opera¸c˜oes elem ento-a-elemento s˜ao definidas na linguagem outras opera¸c˜oes elemento-a- elemento estas opera¸c˜oes s˜ao identificadas com um ponto antes do op erador

a = [0 0; .4 0; .4 .3] % matriz 3 x 2

b = [.4 .3; .4 0; 0 0] % matriz 3 x 2

a. * b % matriz 3 x 2: multiplicac¸˜ao elemento-a-elemento a./b % matriz 3 x 2: divis˜ao elemento-a-elemento a.ˆb % matriz 3 x 2: exponenciac¸˜ao elemento-a-elemento a. * b’ % erro: dimens˜oes n˜ao concordam

% erro: dimens˜oes n˜ao concordam Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao

Opera¸c˜oes l´ogicas e comparativas

Fun¸c˜oes

s˜ao definidas na linguagem todas as opera¸c˜oes l´ogicas e comparativas b´asicas com matrizes

a = [0 2; 3 3; 2 0] % matriz 3 x 2

a == 3 % valor: [false false; true true; false false]

a ˜= 2 % valor: [true false; true true; false true]

a < 3 % valor: [true true; false false; true true]

˜a % valor: [true false; false false; false true]

a & (a-2) % valor: [false false; true true; false false]

[false false; true true; false false] Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao

Introdu¸c˜ao ao Matlab

Indexa¸c˜ao

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

o primeiro ´ındice de uma matriz ´e relativo `a linha o segundo ´ındice de uma matriz ´e relativo `a coluna matrizes podem ser indexadas por vetores vari´avel especial end

tamanho ao longo da respectiva dimens˜ao

vari´avel especial :

todos elementos ao longo da respectiva dimens˜ao

M = [1 2 3; 4 5 6] % define matriz 2 x 3 M(2,1) % valor: [4] M(1,end) % valor: [3] M(2,:) % valor: [4 5 6] M(:,2) % valor: [2; 5] M(:,2:end) % valor: [2 3; 5 6] M(:,[3 1 2 3]) % valor: [3 1 2 3; 6 4 5 6]

1 2 3]) % valor: [3 1 2 3; 6 4 5 6] Adriano Chaves Lisboa

Introdu¸c˜ao ao Matlab

Indexa¸c˜ao linear

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

uma matriz ´e armazenada na mem´oria como um vetor segundo a ordem de indexa¸c˜ao

e.g. [1 2 3; 4 5 6] ´e armazenada como 1, 4, 2, 5, 3, 6

e quando ´e indexada com apenas um ´ındice, ela retorna o respectivo elemento

matrizes podem ser indexadas linearmente por vetores

M = [1 2 3; 4 5 6] % define matriz 2 x 3 M(3) % valor: [2] M(end) % valor: [6] M(1:3) % valor: [1 4 2] M(1:end) % valor: [1, 4, 2, 5, 3, 6] M([end/2:end]’) % valor: [2; 5; 3; 6] M(:) % valor: [1; 4; 2; 5; 3; 6]

6] M(:) % valor: [1; 4; 2; 5; 3; 6] Adriano Chaves Lisboa . Douglas Alexandre

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Indexa¸c˜ao l´ogica

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

um vetor l´ogico b pode ser usado para indexar uma matriz

e o resultado ´e equivalente `a indexa¸c˜ao com as posi¸c oes˜ que contˆem elementos true

M = [1 2 3; 4 5 6] % define matriz 2 x 3 M(:,M(1,:)>1) % valor: [2 3; 5 6] M(M<=4) % valor: [1; 4; 2; 3]

6] M(M<=4) % valor: [1; 4; 2; 3] Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira

Introdu¸c˜ao ao Matlab

Fun¸c˜oes

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

sequˆencia de comandos escopo pr´oprio e n˜ao enxerga o escopo do prompt pode receber e retornar v´arios parˆametros

% este c´odigo est´a salvo em um arquivo func.m function [x,y,z] = func(r,s,t)

x =

y = r. * s. * t;

z = (r./s).ˆt;

r +

s

+ t;

s. * t; z = (r./s).ˆt; r + s + t; Adriano Chaves Lisboa . Douglas

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Help de arquivos .m

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

o comando help mostra o texto de ajuda do arquivo .m

help clc % exibe ajuda sobre clc.m help help % exibe ajuda sobre help.m

o texto de ajuda exibido s˜ao as primeiras linhas cont´ıguas de coment´arios do arquivo .m

function ajuda

%AJUDA Este ´e o texto de ajuda da func¸˜ao ajuda.

% este c´odigo est´a salvo em um arquivo ajuda.m

% Exemplo:

% help ajuda % exibe este texto

% See also HELP.

%Este coment´ario n˜ao faz parte da ajuda.

coment´ario n˜ao faz parte da ajuda. Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao

Fun¸c˜oes matem´aticas do Matlab

Fun¸c˜oes

Fun¸c˜oes trigonom´etricas: sin, cos, tan, atan, asin, aco s Fun¸c˜oes logaritmas e exponenciais: exp, log, log2, log10

e exponenciais: exp, log, log2, log10 Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao

Introdu¸c˜ao ao Matlab

Fun¸c˜oes de matrizes

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

Especiais: zeros, ones, eye, rand, randn Tamanho: isempty, size, length Classifica¸c˜ao: sort, unique Valor: sum, max, min, mean Formato: reshape, repmat, ndgrid Partes: diag, triu, tril L´ogica: all, any, find Inteira: round, fix, ceil, floor, gcd, rem Conjuntos: ismember, intersect, union, setdiff, setxor

intersect, union, setdiff, setxor Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Matrizes esparsas

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

matrizes esparsas s´o armazenam elementos n˜ao nulos speye gera uma matriz identidade esparsa

I = speye(3) % matriz identidade 3 x 3

I = speye(3,3) % mesma matriz identidade 3 x 3

I = speye(3,4) % matriz identidade 3 x 4

S = sparse(M) converte a matriz cheia M para matriz esparsa S M = full(S) converte a matriz esparsa S para matriz cheia M

matriz esparsa S para matriz cheia M Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Matrizes esparsas

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

sparse(i,j,v,m,n) gera uma matriz esparsa m × n onde elementos n˜ao nulos v s˜ao colocados nas posi¸c˜oes indexadas por i e j , e elementos indexados `a mesma posi¸c˜ao s˜ao somados

S

= sparse(2,3) % [0 0 0; 0 0 0]

S

= sparse(1,[2 1e3],[1 10],1,1e3) % [1 0

0 1000]

S

= sparse([2 1 2],1:3,4,2,3) % [0 4 0; 4 0 4]

S

= sparse([1 3; 4 3],1,1,5,1) % [1; 0; 2; 1; 0]

([1 3; 4 3],1,1,5,1) % [1; 0; 2; 1; 0] Adriano Chaves Lisboa . Douglas Alexandre

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao

M´etodo de elementos finitos para treli¸cas

Fun¸c˜oes

Entrada:

p : matriz n × 2 de coordenadas dos n´os

e : matriz

m × 2 com connectividade de arestas

f : matriz n × 2 com for¸ca externa em cada n´o b : matriz n × 2 sinalizando coordenadas fixas em cada n´o A: vetor m × 1 ´area de se¸c˜ao de cada barra E : vetor m × 1 m´odulo de Young de cada barra

Sa´ıda:

d : matriz n × 2 com o deslocamento de cada n´o σ : vetor m × 1 com a tens˜ao em cada barra

m × 1 com a tens˜ao em cada barra Adriano Chaves Lisboa . Douglas Alexandre Gomes

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Prot´otipo da fun¸c˜ao

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

Dado p , e , f , b , A e E , determinar d e σ

function [d,sigma] = solvetruss(p,e,f,b,A,E) %SOLVETRUSS Soluc¸˜ao do problema de trelic¸as.

Soluc¸˜ao do problema de trelic¸as. Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Formula¸c˜ao

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

O deslocamento dos n´os d = [d x d y ] R n × 2 pode ser determinado pelo sistema de equa¸c˜oes lineares

A i e i2 L i i e i1
A i
e i2
L i
i
e i1

f x f y

= K d x d y

K i = A i E i

L

i

a = [cos θ i

aa T =

K i 11 K i 21 K i 31 K i 41

cos θ i sin θ i

K i 12 K i 22 K i 32 K i 42

K i 13 K i 23 K i 33 K i 43

sin θ i ]

K i 14 K i 24 K i 34 K i 44

e i 1 e i 2

e i 1 + e i 2 +

n

n

onde i = 1 ,

´e o vetor de for¸ca.

, m , K R 2 n × 2 n ´e a matriz de rigidez e f = [f x f y ] R n × 2

f x f y ] ∈ R n × 2 Adriano Chaves Lisboa . Douglas Alexandre

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao

Comprimento e ˆangulo das barras

Fun¸c˜oes

Dado p e e , determinar L e

θ

% comprimento das barras (m)

dp = p(e(:,2),:) - p(e(:,1),:); L = sum(dp.ˆ2, 2).ˆ.5

% ˆangulo das barras (rad)

theta = atan2(dp(:,2), dp(:,1));

theta = atan2 (dp(:,2), dp(:,1)); Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao

Constru¸c˜ao da matriz de rigidez

Fun¸c˜oes

% matriz de rigidez

n

= size(p,1); % n´umero de n´os

c

= cos(theta);

s = sin(theta); c2 = A. * E./L. * c. * c; cs = A. * E./L. * c. * s; s2 = A. * E./L. * s. * s; kd = [c2 c2 s2 s2]; % elementos diagonais

knd = [-c2 -s2 cs cs -cs -cs]; % elementos n˜ao-diagonais ie = [e e+n e(:,1) e(:,1)+n e(:,[1 2 1 2]) e(:,2) e(:,2)+n e(:,[1 2 2 1])+n]; je = [e e+n e(:,2) e(:,2)+n e(:,[1 2 2 1])+n e(:,1) e(:,1)+n e(:,[1 2 1 2])];

K = sparse(ie,je,[kd knd knd],2 * n,2 * n);

knd knd],2 * n,2 * n); Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Condi¸c˜oes de contorno

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

Os deslocamentos relativos `as coordenadas fixas dos n´os s˜ao nulos.

% condic¸˜oes de contorno ib = find(b(:)); K(ib,:) = 0; K(:,ib) = 0; K(ib+2 * n * (ib-1)) = 1; f = f(:); f(ib) = 0;

* (ib-1)) = 1; f = f(:); f(ib) = 0; Adriano Chaves Lisboa . Douglas Alexandre

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Deslocamento e tens˜ao

Lista expl´ıcita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera¸c˜oes Indexa¸c˜ao Fun¸c˜oes

% deslocamento (m)

d = full(reshape(K\f,n,2));

% tens˜ao (Pa)

sigma = E. * sum([-c -s c s]. * [d(e(:,1),:) d(e(:,2),:)],2)./L;

* [d(e(:,1),:) d(e(:,2),:)],2)./L; Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Figura

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Figura Parˆametros de objetos Eixo Gr´aficos

figura ´e uma janela que pode conter

axes : eixos para gr´aficos uicontrol : controles de interface de usu´ario

uma figura ´e unicamente identificada por um n´umero (handle) retornado pela fun¸c˜ao que a cria axes e uicontrol s˜ao adicionados na figura corrente gcf retorna o handle da figura corrente clf destr´oi todos objetos filhos da figura corrente

figure % cria uma nova janela h2 = figure % cria uma nova figura h3 = figure % cria uma nova figura h4 = gcf % <h4> ´e igual a <h3> figure(h2) % torna a figura <h2> corrente h5 = gcf % <h5> ´e igual a <h2>

% <h5> ´e igual a <h2> Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Figura Parˆametros de objetos Eixo Gr´aficos

Parˆametros de objetos

todo objeto gr´afico do Matlab ´e definido por parˆametros cada parˆametro ´e setado por um par de argumentos

o primeiro ´e uma string com o nome do parˆametro o segundo ´e um valor para o parˆametro

set e get permitem setar e pegar parˆametros de um objeto atrav´es do respectivo handle

h1 = figure(’color’,’white’,’name’,’White’) h2 = figure(’color’,’black’,’name’,’Black’) set(h1) % mostra todas opc¸˜oes para os parˆametros de <h1> get(h1) % mostra todos os valores dos parˆametros de <h1> get(h2,’color’) % pega cor de <h2> set(h2,’color’,’red’,’name’,’Red’) % muda parˆametros de <h2> get(h2,’color’) % pega cor de <h2>

) % pega cor de <h2> Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao

Introdu¸c˜ao ao Matlab

Eixo

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Figura Parˆametros de objetos Eixo Gr´aficos

eixos s˜ao objetos contidos em uma figura e podem conter gr´afi cos

um eixo ´e unicamente identificado por um n´umero (handle) retornado pela fun¸c˜ao que o cria

gr´aficos s˜ao plotados no eixo corrente

gca retorna o handle do eixo corrente cla destr´oi todos objetos filhos do eixo corrente

% uma figura ser´a automaticamente criada caso n˜ao exista nenhu h1 = axes(’nextplot’,’add’) % cria um novo eixo h2 = axes(’color’,’black’) % cria um novo eixo set(h1,’position’,[.1 .1 .8 .3]) % muda posic¸˜ao de <h1> set(h2,’position’,[.1 .6 .8 .3]) % muda posic¸˜ao de <h2> axes(h1) % torna eixo <h1> corrente

% torna eixo <h1> corrente Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Figura Parˆametros de objetos Eixo Gr´aficos

Atalhos ´uteis para parˆametros de eixos

para facilitar o uso, foram definidas uma s´erie de fun¸c˜oes para setar parˆametros de eixos nas formas mais recorrentes

hold on pr´oximo objeto ser´a adicionado aos objetos do eixo, e equivale a set(gca,’nextplot’,’add’) hold off pr´oximo objeto substituir´a todos os objetos do eixo, e equivale a set(gca,’nextplot’,’replace’) box , grid , axis , view , zoom , pan

grid , axis , view , zoom , pan Adriano Chaves Lisboa . Douglas Alexandre Gomes

Introdu¸c˜ao ao Matlab

Polilinhas

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Figura Parˆametros de objetos Eixo Gr´aficos

Criadas pelas fun¸c˜oes plot e plot3

% uma figura e um eixo ser˜ao automaticamente criados

t

= 0:pi/8:10 * pi; % parˆametro de curva

x

= cos(t); % coordenada x

y

= sin(t); % coordenada y

z

= t/pi; % coordenada z

% espiral

espiral círculo 10 5 0 10 5 5 0 0 −5 −5 −10 −10
espiral
círculo
10
5
0
10
5
5
0
0
−5
−5
−10
−10

hélice cônica

10

plot(z. * x, z. * y, ’k:’,

z(end) * x, z(end) * y, ’r-’) % c´ırculo hold on % pr´oximo plot ser´a adicionado plot3(z. * x, z. * y, z, ’b.-’) % h´elice axis image % ajusta eixos aos gr´aficos view(3) % coloca cˆamera em um "ˆangulo 3D" legend(’espiral’, ’c´ırculo’, ’h´elice cˆonica’)

, ’h´elice cˆonica’ ) Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab

Cores

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Figura Parˆametros de objetos Eixo Gr´aficos

direto: vetor com 3 componentes RGB no intervalo [0 , 1]

strings s˜ao aceitas como argumentos para cores pr´e-definidas e.g. branco ´e [1 1 1], preto ´e [0 0 0], azul ´e [0 0 1]

mapa de cores: escalar

interpola¸c˜ao linear para mapear um intervalo de valores [a , b ] no ´ındice da paleta de cores

pode ser definida apenas uma paleta de cores para cada figura pode ser definido apenas um intervalo de valores para cada eixo

um intervalo de valores para cada eixo Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao

Introdu¸c˜ao ao Matlab

Malhas

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Criadas pela fun¸c˜ao patch

Figura Parˆametros de objetos Eixo Gr´aficos

% uma figura e um eixo ser˜ao automaticamente criados

p

=

[0 0

0; 1

0

0; 1

1

0; 0 1 0;

 

0

0 1; 1 0 1; 1 1 1; 0 1 1]; % v´ertices

t

= [4 3

2

1; 5

6 7 8;

1 2 6 5;

2 3

7

6; 3

4 8 7;

4

1 5

8]; % faces

patch(’vertices’, p, ’faces’, t, ’facevertexcdata’, p, ’facecolor’, ’interp’, ’edgecolor’, [0 0 0]) axis image

view(3)

xlabel(’r’) ylabel(’g’) zlabel(’b’) title(’cubo RGB’)

( ’g’ ) zlabel ( ’b’ ) title ( ’cubo RGB’ ) Adriano Chaves Lisboa .
( ’g’ ) zlabel ( ’b’ ) title ( ’cubo RGB’ ) Adriano Chaves Lisboa .
( ’b’ ) title ( ’cubo RGB’ ) Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira

Introdu¸c˜ao ao Matlab

Grades

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Figura Parˆametros de objetos Eixo Gr´aficos

Suprf´ıcies em grades criadas pelas fun¸c˜oes surf e mesh Curvas de n´ıvel em grades criadas pelas fun¸c˜oes contour , contour3 e contourf

% uma figura e um eixo ser˜ao automaticamente criados

x = 0:5;

y = 0:5;

z = x’ * y;

surf(-x, y, z) hold on mesh(x, y, z) contour(x, -y, z, 16) contourf(-x, -y, z, 16) axis([-5 5 -5 5 0 25])

25 20 15 10 5 0 5 5 0 0
25
20
15
10
5
0
5
5
0
0
−5 −5
−5
−5

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Figura Parˆametros de objetos Eixo Gr´aficos

Plotando problema de treli¸cas

figure(’Color’, [1 1 1], ’Name’, ’Truss problem’, ’NumberTitle’, ’off’)

axes(’nextplot’,’add’)

h = patch(’Vertices’, p, ’Faces’, e, ’EdgeColor’,[0 0 0]); % graph quiver(p(:,1), p(:,2), f(:,1), f(:,2), .3, ’Color’, [1 0 0]); % external forces ip = find(sum(b,2)==1); plot(p(ip,1), p(ip,2), ’ro’); % supports ip = find(sum(b,2)==2); plot(p(ip,1), p(ip,2), ’rˆ’); % supports axis image off

title(’Truss problem’)

Truss problem

axis image off title ( ’Truss problem’ ) Truss problem Adriano Chaves Lisboa . Douglas Alexandre
( ’Truss problem’ ) Truss problem Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao

Introdu¸c˜ao ao Matlab

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Figura Parˆametros de objetos Eixo Gr´aficos

Plotando resultado do problema de treli¸cas

figure(’Color’, [1 1 1], ’Name’, ’Stress’,

’NumberTitle’,’off’) axes(’nextplot’,’add’) patch(’Vertices’, p, ’Faces’, e, ’EdgeColor’,[1 1 1] * .9) pd = p(e,:) + d(e,:); sigmad = [sigma; sigma]; ed = reshape(1:size(pd,1),size(pd,1)/2,2); patch(’Vertices’, pd, ’Faces’, ed, ’FaceVertexCData’, sigmad,

’EdgeColor’,’flat’) axis image off title(’Stress’) colorbar

Stress

x 10 9

1 0 −1 −2
1
0
−1
−2
Stress x 10 9 1 0 −1 −2 Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira

Introdu¸c˜ao ao Matlab

Referˆencias

Conte´udo Matlab B´asico Matrizes e vetores Gr´aficos Referˆencias

Matlab: getting started guide Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu¸c˜ao ao Matlab

Introdu¸c˜ao ao Matlab