Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdu c ao ao Matlab
Direcionada para o m etodo de elementos nitos
24 de agosto de 2009
Introdu c ao ao Matlab
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 co es Indexa c ao Fun co es Gr acos Figura Par ametros de objetos Eixo Gr acos Refer encias
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu c ao ao Matlab
Tipo de linguagem
Linguagem interpretada
tempo de interpreta c ao tempo de execu c ao
k = k + 1, k Z x = A1 b, A C10001000
macro-opera c oes
matrizes operadores e fun co es mais recorrentes
Introdu c ao ao Matlab
Bibliotecas b asicas
Interface do Matlab: e.g. edit, help Fun co es b asicas sobre tipos: e.g. char, sum, max Fun co es 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 acos: 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 aca Matrizes esparsas
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu c ao ao Matlab
Caixas de ferramenta
Estat stica Mapas Equa co es diferenciais parciais Matem atica simb olica ...
Introdu c ao ao Matlab
Prompt Declarando vari aveis Mostrando vari aveis Listando vari aveis Destruindo vari aveis
Prompt
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 Help >> Hello, world!
Introdu c ao ao Matlab
Prompt Declarando vari aveis Mostrando vari aveis Listando vari aveis Destruindo vari aveis
Introdu c ao ao Matlab
Prompt Declarando vari aveis Mostrando vari aveis Listando vari aveis Destruindo vari aveis
pi: o n umero = 3, 1415926... i, j: o n umero imagin ario i = j = inf: innito inf = 1/0
Introdu c ao ao Matlab
Prompt Declarando vari aveis Mostrando vari aveis Listando vari aveis Destruindo vari aveis
Introdu c ao ao Matlab
Prompt Declarando vari aveis Mostrando vari aveis Listando vari aveis Destruindo vari aveis
Introdu c ao ao Matlab
Prompt Declarando vari aveis Mostrando vari aveis Listando vari aveis Destruindo vari aveis
Introdu c ao ao Matlab
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 b c d e f = = = = = = [1 2 3] % define vetor <a> 1 x 3 [1; 2; 3] % define vetor <b> 3 x 1 [1, 2; 3, 4] % define matriz <c> 2 x 2 [1 -2 3; 3-4 1 2] % define matriz <d> 2 x 3 [1 2; 3 4 5] % erro: concatenac ao inconsistente [c d] % define matriz <f> 2 x 5
Introdu c ao ao Matlab
Operador :
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
Introdu c ao ao Matlab
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 x y z salva as vari aveis x, y e z no arquivo le.mat load file carrega as vari aveis x, y e z do arquivo le.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>
Introdu c ao ao Matlab
Editor
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
Introdu c ao ao Matlab
Script
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
Introdu c ao ao Matlab
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
3 2 1 1
0,3m
200kN
0,4m
Introdu c ao ao Matlab
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
3 2 1 1
b: matrix 4 2 bin aria indicando coordenadas xas de cada n o f: matrix 4 2 com a for ca externa em cada n o
200kN
0,4m
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
Introdu c ao ao Matlab
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
% p e b f A E
este c odigo est a salvo em um arquivo truss.m = [0 0; .4 0; .4 .3; 0 .3]; % coordenadas dos n os (m) = [1 2; 3 2; 1 3; 4 3]; % connectividade de aresta = [1 1; 0 1; 0 0; 1 1]; % coordenadas fixas de cada n o = [0 0; 20e4 0; 0 -25e4; 0 0]; % forc a externa em cada n o (N) area de cada barra (m2) = [1e-4; 1e-4; 1e-4; 1e-4]; % = [295e9; 295e9; 295e9; 295e9]; % m odulo de Young (Pa)
Introdu c ao ao Matlab
Algoritmo
if <express ao l ogica> <procedimento> elseif <express ao l ogica> <procedimento> else <procedimento> end avel> switch <vari case <constante> <procedimento> case <constante> <procedimento> otherwise <procedimento> end
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
Introdu c ao ao Matlab
Algoritmo
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
for <contador> = <vetor> <procedimento> end ao l ogica> while <express <procedimento> end break % sai do loop mais interno continue % pula o restante do c odigo do loop ao ou script return % sai da func
Introdu c ao ao Matlab
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
Introdu c ao ao Matlab
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
adi c ao e subtra c ao s ao naturalmente opera co es elemento-a-elemento s ao denidas na linguagem outras opera co es elemento-a-elemento estas opera co es s ao identicadas com um ponto antes do operador
a = [0 0; .4 0; .4 .3] % matriz 3 x 2 b = [.4 .3; .4 0; 0 0] % matriz 3 x 2 ao elemento-a-elemento a.*b % matriz 3 x 2: multiplicac 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
Introdu c ao ao Matlab
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
Introdu c ao ao Matlab
Indexa c ao
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
Indexa c ao linear
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]
Introdu c ao ao Matlab
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 co es 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]
Introdu c ao ao Matlab
Fun c oes
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
a salvo em um arquivo func.m odigo est % este c function [x,y,z] = func(r,s,t) x = r + s + t; y = r.*s.*t; z = (r./s).t;
Introdu c ao ao Matlab
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 texto de ajuda exibido s ao as primeiras linhas cont guas de coment arios do arquivo .m
function ajuda ao ajuda. e o texto de ajuda da func %AJUDA Este % 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.
Introdu c ao ao Matlab
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
Fun co es trigonom etricas: sin, cos, tan, atan, asin, acos Fun co es logaritmas e exponenciais: exp, log, log2, log10
Introdu c ao ao Matlab
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 Classica c ao: sort, unique Valor: sum, max, min, mean Formato: reshape, repmat, ndgrid Partes: diag, triu, tril L ogica: all, any, nd Inteira: round, x, ceil, oor, gcd, rem Conjuntos: ismember, intersect, union, setdi, setxor
Introdu c ao ao Matlab
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
Introdu c ao ao Matlab
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 co es indexadas por i e j , e elementos indexados ` a mesma posi c ao s ao somados
S S S S = = = = sparse(2,3) % [0 0 0; 0 0 0] sparse(1,[2 1e3],[1 10],1,1e3) % [1 0 ... 0 1000] sparse([2 1 2],1:3,4,2,3) % [0 4 0; 4 0 4] sparse([1 3; 4 3],1,1,5,1) % [1; 0; 2; 1; 0]
Introdu c ao ao Matlab
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao 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 xas 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
Introdu c ao ao Matlab
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.
Introdu c ao ao Matlab
Formula c ao
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 = [dx dy ] Rn2 pode ser determinado pelo sistema de equa co es lineares
fx fy =K dx dy Ki 12 Ki 22 Ki 32 Ki 42 Ki 13 Ki 23 Ki 33 Ki 43 Ki 14 ei 1 Ki 24 ei 2 Ki 34 ei 1 + n Ki 44 ei 2 + n
Ai Li ei1 qi
ei2
Ki 11 Ki 21 Ai Ei T aa = Ki = Ki 31 Li Ki 41 a = [cos i
cos i sin i
sin i ]
onde i = 1, ..., m, K R2n2n e a matriz de rigidez e f = [fx fy ] Rn2 e o vetor de for ca.
Introdu c ao ao Matlab
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 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));
Introdu c ao ao Matlab
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
% matriz de rigidez os umero de n n = size(p,1); % n 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 ao-diagonais knd = [-c2 -s2 cs cs -cs -cs]; % elementos n 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);
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu c ao ao Matlab
Lista expl cita de elementos Operadores Salvar e carregar dados Editor Script Algoritmo Opera c oes Indexa c ao Fun c oes
Introdu c ao ao Matlab
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;
Introdu c ao ao Matlab
Figura
gura e uma janela que pode conter
axes: eixos para gr acos uicontrol: controles de interface de usu ario
uma gura e unicamente identicada por um n umero (handle) retornado pela fun c ao que a cria axes e uicontrol s ao adicionados na gura corrente gcf retorna o handle da gura corrente clf destr oi todos objetos lhos da gura 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>
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu c ao ao Matlab
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> ametros de <h1> get(h1) % mostra todos os valores dos par 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>
Introdu c ao ao Matlab
Eixo
eixos s ao objetos contidos em uma gura e podem conter gr acos um eixo e unicamente identicado por um n umero (handle) retornado pela fun c ao que o cria gr acos s ao plotados no eixo corrente gca retorna o handle do eixo corrente cla destr oi todos objetos lhos do eixo corrente
% uma figura ser a automaticamente criada caso n ao exista nenhum 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
Introdu c ao ao Matlab
para facilitar o uso, foram denidas uma s erie de fun co es 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
Introdu c ao ao Matlab
Polilinhas
Criadas pelas fun co es plot e plot3
ao automaticamente criados % uma figura e um eixo ser 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 plot(z.*x, z.*y, k:,... % espiral z(end)*x, z(end)*y, r-) % c rculo hold on % pr oximo plot ser a adicionado elice plot3(z.*x, z.*y, z, b.-) % h axis image % ajusta eixos aos gr aficos view(3) % coloca c amera em um " angulo 3D" legend(espiral, c rculo, h elice c onica)
10 5 0 10 5 0 5 10
10 5 0 5
10
Introdu c ao ao Matlab
Cores
pode ser denida apenas uma paleta de cores para cada gura pode ser denido apenas um intervalo de valores para cada eixo
Introdu c ao ao Matlab
Malhas
Criadas pela fun c ao patch
% 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)
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introdu c ao ao Matlab
Grades
Suprf cies em grades criadas pelas fun co es surf e mesh Curvas de n vel em grades criadas pelas fun co es contour, contour3 e contourf
% uma figura e um eixo ser ao automaticamente criados x = 0:5; 25 y = 0:5; 20 z = x*y; 15 surf(-x, y, z) 10 hold on 5 0 mesh(x, y, z) 5 contour(x, -y, z, 16) 0 contourf(-x, -y, z, 16) 5 5 axis([-5 5 -5 5 0 25])
5 0
Introdu c ao ao Matlab
Introdu c ao ao Matlab
Stress
x 10
1 0 1 2
Introdu c ao ao Matlab
Refer encias
Introdu c ao ao Matlab