mef no matlab

Upload: marcostullio1

Post on 28-Oct-2015

34 views

Category:

Documents


0 download

TRANSCRIPT

  • 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