MEF No Matlab
-
Upload
marcostullio1 -
Category
Documents
-
view
34 -
download
0
Transcript of MEF No Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Introducao ao MatlabDirecionada para o metodo de elementos finitos
Adriano Chaves Lisboa.
Douglas Alexandre Gomes Vieira
24 de agosto de 2009
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Matlab
Tipo de linguagemBibliotecas basicasCaixas de ferramenta
BasicoPrompt
Declarando variaveisMostrando variaveis
Listando variaveisDestruindo variaveis
Matrizes e vetores
Lista explcita de elementosOperadores
Salvar e carregar dadosEditorScript
AlgoritmoOperacoes
IndexacaoFuncoes
Graficos
FiguraParametros de objetos
EixoGraficos
Referencias
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Tipo de linguagemBibliotecas basicasCaixas de ferramenta
Tipo de linguagem
I Linguagem interpretadaI tempo de interpretacao tempo de execucao
I k = k + 1, k ZI x = A1b, A C10001000
I macro-operacoesI matrizesI operadores e funcoes mais recorrentes
I identificacao automatica de tipoI Logico: b = trueI Numerico: k = 1, z = 1 + iI Caractere: s = aI Estrutura: s.a = 1I Celula: c = {1, a}
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Tipo de linguagemBibliotecas basicasCaixas de ferramenta
Bibliotecas basicas
I Interface do Matlab: e.g. edit, help
I Funcoes basicas sobre tipos: e.g. char, sum, max
I Funcoes matematicas: e.g. sin, cos, erf, gamma, bessel, ellipke
I Metodos numericos basicos: e.g. polinomios, integracao, LU
I Graficos: e.g. polilinhas, malhas
I Manipulacao de arquivos
I Data e hora
I Audio e vdeo
I Interface do computador: e.g. porta serial
I Interface grafica
I Matrizes esparsas
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Tipo de linguagemBibliotecas basicasCaixas de ferramenta
Caixas de ferramenta
I Estatstica
I Mapas
I Equacoes diferenciais parciais
I Matematica simbolica
I ...
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
PromptDeclarando variaveisMostrando variaveisListando variaveisDestruindo variaveis
Prompt
I o prompt e uma janela onde os comandos dados linha por linha
I cada comando e escrito apos >> e e executado ao teclar ENTER
To get started, select MATLAB Help or Demos from the Help
>> Hello, world!
I tudo escrito apos o caracter % e comentario, e nao comando
>> % nada ira acontecer apos teclar ENTER>> clc % comando para limpar a tela do prompt
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
PromptDeclarando variaveisMostrando variaveisListando variaveisDestruindo variaveis
Declarando variaveis
I todas variaveis sao inicializadas para detectar seu tipo
I atribuicao
>> a = 1 % e um double inicializado com 1>> a = c % agora e um caracter inicializado com c
I variavel ans e criada quando nenhum nome e dado
>> 1 % e um double inicializado com 1>> c % agora e um caracter inicializado com c
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
PromptDeclarando variaveisMostrando variaveisListando variaveisDestruindo variaveis
Constantes numericas importantes
I pi: o numero pi = 3, 1415926...I i, j: o numero imaginario i = j = 1I inf: infinito inf = 1/0I NaN: not-a-number NaN = 0/0 = inf*0
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
PromptDeclarando variaveisMostrando variaveisListando variaveisDestruindo variaveis
Mostrando variaveis
I o ponto e vrgula impede que o valor da variavel seja mostrado...
>> 1; % atribui mas nao mostra o valor de >> a = c; % atribui mas nao mostra o valor de
I ... e se a variavel ja esta definida ela pode ser mostrada
>> a = pi; % e um double inicializado com pi>> a % mostra o valor de >> a; % nada acontece>> b % erro: b nao existe
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
PromptDeclarando variaveisMostrando variaveisListando variaveisDestruindo variaveis
Listando variaveis
I listando variaveis existentesI who lista variaveisI whos lista variaveis com seus respectivos tipos
>> i; % e um double complexo inicializado com 0 + i>> a = c; % e um caracter inicializado com c>> b = false; % e um binario inicializado com false>> who>> whos
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
PromptDeclarando variaveisMostrando variaveisListando variaveisDestruindo variaveis
Destruindo variaveis
I destruindo variaveisI clear x y z destroi variaveis x, y e zI clear all destroi todas as variaveis
>> i; % e um double complexo inicializado com 0 + i>> all = c; % e um caracter inicializado com c>> b = false; % e um binario inicializado com false>> who>> clear all % destroi variavel >> who>> clear all % destroi todas as variaveis: e >> who
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesLista explcita de elementos
I lista de elementos e delimitada por parenteses
I elementos de uma mesma linha sao separados por vrgula ou espaco
I para mudar de linha e usado ponto e vrgula
>> a = [1 2 3] % define vetor 1 x 3>> b = [1; 2; 3] % define vetor 3 x 1>> c = [1, 2; 3, 4] % define matriz 2 x 2>> d = [1 -2 3; 3-4 1 2] % define matriz 2 x 3>> e = [1 2; 3 4 5] % erro: concatenacao inconsistente>> f = [c d] % define matriz 2 x 5
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesOperador :
I o operador : permite definir um vetor por incrementoI i:f gera o vetor [i i + 1 i + 2 ... f ]I i:d:f gera o vetor [i i + d i + 2d ... i + nd ], onde i + nd f
>> a = 1:3 % define vetor 1 x 3>> b = 1:2:6 % define vetor 1 x 3>> c = [4:-1:1; 1 2:2:4 1] % define matriz 2 x 4
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesSalvar e carregar dados
I qualquer variavel pode ser salva e restaurada de maneira muitosimples
I save file x y z salva as variaveis x, y e z no arquivo file.matI load file carrega as variaveis x, y e z do arquivo file.mat
>> a = 1:3 % define vetor 1 x 3>> b = 2 % define variavel >> save mydata a b % salva variaveis e >> clear all % destroi variaveis e >> load mydata % restaura variaveis e >> clear all % destroi variaveis e >> load mydata b % restaura apenas variavel
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesEditor
I como salvar uma sequencia de comandos do prompt?I scripts: sequencia de comandos, como feita no promptI funcoes: permite receber e retornar variaveis
I Matlab possui um editor de texto com marcador de sintaxe
>> edit % mostra editor>> edit clc % abre arquivo clc.m no editor
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesScript
I sequencia de comandos
I compartilha escopo do prompt
% este codigo esta salvo em um arquivo test.ma = 1:3 % define variavel no escopo do promptwho % lista todas variaveis do prompt (incluindo )
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesProblema de trelicas
1
2
34
1
23
4
x
y
250kN
200kN
0,4m
0,3mI Area de secao: A = 0, 0001m2
I Modulo de Young: E = 295GN/m2
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesDefinicao de um problema de trelicas
1
2
34
1
23
4
x
y
250kN
200kN
0,4m
0,3m
I p: matrix 4 2 com ascoordenadas (x , y) dos nos
I e: matrix 4 2 com aconectividade (i , j) de aresta
I b: matrix 4 2 binaria indicandocoordenadas fixas de cada no
I f: matrix 4 2 com a forca externaem cada no
I A: vetor 4 1 com a area de secaode cada aresta
I E: vetor 4 1 com o modulo deYoung de cada aresta
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesScript de definicao de um problema de trelicas
% este codigo esta salvo em um arquivo truss.mp = [0 0; .4 0; .4 .3; 0 .3]; % coordenadas dos nos (m)e = [1 2; 3 2; 1 3; 4 3]; % connectividade de arestab = [1 1; 0 1; 0 0; 1 1]; % coordenadas fixas de cada nof = [0 0; 20e4 0; 0 -25e4; 0 0]; % forca externa em cada no (N)A = [1e-4; 1e-4; 1e-4; 1e-4]; % area de cada barra (m2)E = [295e9; 295e9; 295e9; 295e9]; % modulo de Young (Pa)
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesAlgoritmo
if
elseif
else
end
switch case
case
otherwise
end
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesAlgoritmo
for =
end
while
end
break % sai do loop mais internocontinue % pula o restante do codigo do loopreturn % sai da funcao ou script
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesOperacoes com matrizes
I sao definidas na linguagem todas as operacoes basicas com matrizes
p = [0 0; .4 0; .4 .3; 0 .3] % matriz 4 x 2d = [1; 1] % vetor 2 x 1p % matriz 2 x 4: transposto de matrizp + 2*p % matriz 4 x 2: adicao de matrizesp*d % vetor 4 x 1: multiplicacao de matrizes(p*p)pi % matriz 2 x 2: exponenciacao de matriz(p*p)\d % vetor 2 x 1: inverao de matrizd/(p*p) % erro: dimensoes nao concordam
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesOperacoes elemento-a-elemento
I adicao e subtracao sao naturalmente operacoes elemento-a-elemento
I sao definidas na linguagem outras operacoes elemento-a-elemento
I estas operacoes sao identificadas com um ponto antes do operador
a = [0 0; .4 0; .4 .3] % matriz 3 x 2b = [.4 .3; .4 0; 0 0] % matriz 3 x 2a.*b % matriz 3 x 2: multiplicacao elemento-a-elementoa./b % matriz 3 x 2: divisao elemento-a-elementoa.b % matriz 3 x 2: exponenciacao elemento-a-elementoa.*b % erro: dimensoes nao concordam
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesOperacoes logicas e comparativas
I sao definidas na linguagem todas as operacoes logicas ecomparativas basicas com matrizes
a = [0 2; 3 3; 2 0] % matriz 3 x 2a == 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]
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesIndexacao
I o primeiro ndice de uma matriz e relativo a` linha
I o segundo ndice de uma matriz e relativo a` coluna
I matrizes podem ser indexadas por vetoresI variavel especial end
I tamanho ao longo da respectiva dimensao
I variavel especial :I todos elementos ao longo da respectiva dimensao
M = [1 2 3; 4 5 6] % define matriz 2 x 3M(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]
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesIndexacao linear
I uma matriz e armazenada na memoria como um vetor segundo aordem de indexacao...
I e.g. [1 2 3; 4 5 6] e armazenada como 1, 4, 2, 5, 3, 6
I ... e quando e indexada com apenas um ndice, ela retorna orespectivo elemento
I matrizes podem ser indexadas linearmente por vetores
M = [1 2 3; 4 5 6] % define matriz 2 x 3M(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]
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesIndexacao logica
I um vetor logico b pode ser usado para indexar uma matriz...I ... e o resultado e equivalente a` indexacao com as posicoes que
contem elementos true
M = [1 2 3; 4 5 6] % define matriz 2 x 3M(:,M(1,:)>1) % valor: [2 3; 5 6]M(M
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesFuncoes
I sequencia de comandos
I escopo proprio e nao enxerga o escopo do prompt
I pode receber e retornar varios parametros
% este codigo esta salvo em um arquivo func.mfunction [x,y,z] = func(r,s,t)x = r + s + t;y = r.*s.*t;z = (r./s).t;
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesHelp de arquivos .m
I o comando help mostra o texto de ajuda do arquivo .m
help clc % exibe ajuda sobre clc.mhelp help % exibe ajuda sobre help.m
I o texto de ajuda exibido sao as primeiras linhas contguas decomentarios do arquivo .m
function ajuda%AJUDA Este e o texto de ajuda da funcao ajuda.% este codigo esta salvo em um arquivo ajuda.m% Exemplo:% help ajuda % exibe este texto% See also HELP.
%Este comentario nao faz parte da ajuda.
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesFuncoes matematicas do Matlab
I Funcoes trigonometricas: sin, cos, tan, atan, asin, acos
I Funcoes logaritmas e exponenciais: exp, log, log2, log10
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesFuncoes de matrizes
I Especiais: zeros, ones, eye, rand, randn
I Tamanho: isempty, size, length
I Classificacao: sort, unique
I Valor: sum, max, min, mean
I Formato: reshape, repmat, ndgrid
I Partes: diag, triu, tril
I Logica: all, any, find
I Inteira: round, fix, ceil, floor, gcd, rem
I Conjuntos: ismember, intersect, union, setdiff, setxor
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesMatrizes esparsas
I matrizes esparsas so armazenam elementos nao nulos
I speye gera uma matriz identidade esparsa
I = speye(3) % matriz identidade 3 x 3I = speye(3,3) % mesma matriz identidade 3 x 3I = speye(3,4) % matriz identidade 3 x 4
I S = sparse(M) converte a matriz cheia M para matriz esparsa SI M = full(S) converte a matriz esparsa S para matriz cheia M
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesMatrizes esparsas
I sparse(i,j,v,m,n) gera uma matriz esparsa m n ondeelementos nao nulos v sao colocados nas posicoes indexadas por i ej , e elementos indexados a` mesma posicao sao 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]
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesMetodo de elementos finitos para trelicas
I Entrada:I p: matriz n 2 de coordenadas dos nosI e: matriz m 2 com connectividade de arestasI f : matriz n 2 com forca externa em cada noI b: matriz n 2 sinalizando coordenadas fixas em cada noI A: vetor m 1 area de secao de cada barraI E : vetor m 1 modulo de Young de cada barra
I Sada:I d : matriz n 2 com o deslocamento de cada noI : vetor m 1 com a tensao em cada barra
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesPrototipo da funcao
Dado p, e, f , b, A e E , determinar d e
function [d,sigma] = solvetruss(p,e,f,b,A,E)%SOLVETRUSS Solucao do problema de trelicas.
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesFormulacao
O deslocamento dos nos d = [dx dy ] Rn2 pode ser determinado pelosistema de equacoes lineares
ei1
qi
ei2
Li
Ai
[fx
fy
]= K
[dx
dy
]
Ki =AiEi
Liaa
T =
Ki11 Ki12 Ki13 Ki14
Ki21 Ki22 Ki23 Ki24Ki31 Ki32 Ki33 Ki34Ki41 Ki42 Ki43 Ki44
ei1
ei2ei1 + nei2 + n
a = [cos i cos i sin i sin i ]
onde i = 1, ...,m, K R2n2n e a matriz de rigidez e f = [fx fy ] Rn2e o vetor de forca.
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesComprimento e angulo das barras
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));
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesConstrucao da matriz de rigidez
% matriz de rigidezn = size(p,1); % numero de nosc = 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 diagonaisknd = [-c2 -s2 cs cs -cs -cs]; % elementos nao-diagonaisie = [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 Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesCondicoes de contorno
Os deslocamentos relativos a`s coordenadas fixas dos nos sao nulos.
% condicoes de contornoib = find(b(:));K(ib,:) = 0;K(:,ib) = 0;K(ib+2*n*(ib-1)) = 1;f = f(:);f(ib) = 0;
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Lista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptAlgoritmoOperacoesIndexacaoFuncoesDeslocamento e tensao
% deslocamento (m)d = full(reshape(K\f,n,2));
% tensao (Pa)sigma = E.*sum([-c -s c s].* ...
[d(e(:,1),:) d(e(:,2),:)],2)./L;
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
FiguraParametros de objetosEixoGraficos
Figura
I figura e uma janela que pode conterI axes: eixos para graficosI uicontrol: controles de interface de usuario
I uma figura e unicamente identificada por um numero (handle)retornado pela funcao que a cria
I axes e uicontrol sao adicionados na figura correnteI gcf retorna o handle da figura correnteI clf destroi todos objetos filhos da figura corrente
figure % cria uma nova janelah2 = figure % cria uma nova figurah3 = figure % cria uma nova figurah4 = gcf % e igual a figure(h2) % torna a figura correnteh5 = gcf % e igual a
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
FiguraParametros de objetosEixoGraficos
Parametros de objetos
I todo objeto grafico do Matlab e definido por parametros
I cada parametro e setado por um par de argumentosI o primeiro e uma string com o nome do parametroI o segundo e um valor para o parametro
I set e get permitem setar e pegar parametros de um objeto atravesdo respectivo handle
h1 = figure(color,white,name,White)h2 = figure(color,black,name,Black)set(h1) % mostra todas opcoes para os parametros de get(h1) % mostra todos os valores dos parametros de get(h2,color) % pega cor de set(h2,color,red,name,Red) % muda parametros de get(h2,color) % pega cor de
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
FiguraParametros de objetosEixoGraficos
Eixo
I eixos sao objetos contidos em uma figura e podem conter graficos
I um eixo e unicamente identificado por um numero (handle)retornado pela funcao que o cria
I graficos sao plotados no eixo corrente
I gca retorna o handle do eixo correnteI cla destroi todos objetos filhos do eixo corrente
% uma figura sera automaticamente criada caso nao exista nenhumah1 = axes(nextplot,add) % cria um novo eixoh2 = axes(color,black) % cria um novo eixoset(h1,position,[.1 .1 .8 .3]) % muda posicao de set(h2,position,[.1 .6 .8 .3]) % muda posicao de axes(h1) % torna eixo corrente
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
FiguraParametros de objetosEixoGraficos
Atalhos uteis para parametros de eixos
I para facilitar o uso, foram definidas uma serie de funcoes para setarparametros de eixos nas formas mais recorrentes
I hold on proximo objeto sera adicionado aos objetos do eixo, eequivale a set(gca,nextplot,add)
I hold off proximo objeto substituira todos os objetos do eixo, eequivale a set(gca,nextplot,replace)
I box, grid, axis, view, zoom, pan
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
FiguraParametros de objetosEixoGraficos
Polilinhas
Criadas pelas funcoes plot e plot3
% uma figura e um eixo serao automaticamente criadost = 0:pi/8:10*pi; % parametro de curvax = cos(t); % coordenada xy = sin(t); % coordenada yz = t/pi; % coordenada zplot(z.*x, z.*y, k:,... % espiral
z(end)*x, z(end)*y, r-) % crculohold on % proximo plot sera adicionadoplot3(z.*x, z.*y, z, b.-) % heliceaxis image % ajusta eixos aos graficosview(3) % coloca camera em um "angulo 3D"legend(espiral, crculo, helice conica)
105
05
10
10
5
0
5
100
5
10
espiralcrculohlice cnica
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
FiguraParametros de objetosEixoGraficos
Cores
I direto: vetor com 3 componentes RGB no intervalo [0, 1]I strings sao aceitas como argumentos para cores pre-definidasI e.g. branco e [1 1 1], preto e [0 0 0], azul e [0 0 1]
I mapa de cores: escalarI interpolacao linear para mapear um intervalo de valores [a, b] no
ndice da paleta de cores
I pode ser definida apenas uma paleta de cores para cada figura
I pode ser definido apenas um intervalo de valores para cada eixo
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
FiguraParametros de objetosEixoGraficos
Malhas
Criadas pela funcao patch
% uma figura e um eixo serao automaticamente criadosp = [0 0 0; 1 0 0; 1 1 0; 0 1 0; ...
0 0 1; 1 0 1; 1 1 1; 0 1 1]; % verticest = [4 3 2 1; 5 6 7 8; 1 2 6 5; ...
2 3 7 6; 3 4 8 7; 4 1 5 8]; % facespatch(vertices, p, faces, t, ...
facevertexcdata, p, facecolor, ...interp, edgecolor, [0 0 0])
axis imageview(3)xlabel(r)ylabel(g)zlabel(b)title(cubo RGB)
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
FiguraParametros de objetosEixoGraficos
Grades
I Suprfcies em grades criadas pelas funcoes surf e meshI Curvas de nvel em grades criadas pelas funcoes contour,contour3 e contourf
% uma figura e um eixo serao automaticamente criadosx = 0:5;y = 0:5;z = x*y;surf(-x, y, z)hold onmesh(x, y, z)contour(x, -y, z, 16)contourf(-x, -y, z, 16)axis([-5 5 -5 5 0 25]) 5
0
5
5
0
50
5
10
15
20
25
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
FiguraParametros de objetosEixoGraficos
Plotando problema de trelicas
figure(Color, [1 1 1], Name, Truss problem, ...NumberTitle, off)
axes(nextplot,add)h = patch(Vertices, p, Faces, e, ...
EdgeColor,[0 0 0]); % graphquiver(p(:,1), p(:,2), f(:,1), f(:,2),...
.3, Color, [1 0 0]); % external forcesip = find(sum(b,2)==1);plot(p(ip,1), p(ip,2), ro); % supportsip = find(sum(b,2)==2);plot(p(ip,1), p(ip,2), r); % supportsaxis image offtitle(Truss problem)
Truss problem
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
FiguraParametros de objetosEixoGraficos
Plotando resultado do problema de trelicas
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 offtitle(Stress)colorbar
Stress
2
1
0
1
x 109
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
-
ConteudoMatlabBasico
Matrizes e vetoresGraficos
Referencias
Referencias
I Introducao ao Matlab (este texto)
I Matlab: getting started guide
Adriano Chaves Lisboa . Douglas Alexandre Gomes Vieira Introducao ao Matlab
ContedoMatlabTipo de linguagemBibliotecas bsicasCaixas de ferramenta
BsicoPromptDeclarando variveisConstantes numricas importantes
Mostrando variveisListando variveisDestruindo variveis
Matrizes e vetoresLista explcita de elementosOperadoresSalvar e carregar dadosEditorScriptProblema de trelias
AlgoritmoOperaesOperaes elemento-a-elementoOperaes lgicas
IndexaoIndexao linearIndexao lgica
FunesAjudaFunes matemticasFunes de matrizesMatrizes esparsasMtodo de elementos finitos para trelias
GrficosFiguraParmetros de objetosEixoAtalhos teis para parmetros de eixos
GrficosPolilinhasCoresMalhasGradesPlotando problema de treliasPlotando resultado do problema de trelias
Referncias