Minicurso de MATLAB -...

34
Minicurso de MATLAB Programa de Educação Tutorial de Engenharia Elétrica lMax Rodrigues lCaroline Pereira lNayara Medeiros 28/03/15

Transcript of Minicurso de MATLAB -...

Minicurso de MATLAB

Programa de Educação Tutorial de Engenharia Elétrica

lMax Rodrigues

lCaroline Pereira

lNayara Medeiros

28/03/15

Conteúdo a ser abordado na aula

• Declaração e manipulação de vetores ; • Declaração e manipulação de matrizes; • Solução de um sistema linear de equações; • Aplicações;

06/04/2015

Vetores e Matrizes

No Matlab, vetores e matrizes são interpretados da mesma forma, sendo que qualquer matriz linha ou coluna será interpretada como vetor ou matriz dependendo da operação, o Matlab faz isso automaticamente.

01/10/2014

Definição de Matrizes

Uma matriz é montada linha após linha, onde espaço ou vírgula indicam transição de coluna e ponto-e-vírgula indica transição de linha.

01/10/2014

Uma outra maneira de definir matrizes consiste em criar vetores-linha com elementos em progressão aritmética através da simples sintaxe:

>> valor_inicial : incremento : valor_final

01/10/2014

Ex.:

>>[1:5:20 ; 1:4:16]

Uma terceira forma de criar vetores utiliza a função linspace, que espaça linearmente um determinado número de elementos entre um valor final e um inicial. Sua sintaxe é:

>> linspace(valor_inicial, valor_final,número_de_elementos)

01/10/2014

A função logspace é similar, porém espaça os elementos logaritmicamente na base 10.

Uma diferença muito importante em sua sintaxe é que os valores iniciais e finais são potências de 10, devendo ser escritos apenas seus expoentes.

01/10/2014

Indexação

O padrão de indexação matricial no Matlab é a forma tradicional intuitiva (r, c), onde r representa o número da linha e c representa o número da coluna.

01/10/2014

Indexação É possível selecionar mais de uma linha ou coluna, usando-se dois-pontos ':' entre os índices inicial e final para indicar o intervalo.

16/04/2013

06/04/2015 Franklin Zeno

Quando os índices inicial e final são omitidos, indica-se o intervalo inteiro. A palavra reservada 'end' indica o fim da linha ou da coluna.

Indexação Ex:

16/04/2013

O conceito de indexação pode ser ampliado quando no lugar dos índices colocam-se vetores ou matrizes de índices.

16/04/2013

Indexação Caso se coloque um índice que exceda as dimensões da matriz, o resultado será uma mensagem de erro. Por outro lado, se for definido um novo elemento que exceda essas mesmas dimensões, então a matriz será redimensionada de forma a incluir esse novo elemento, sendo as novas posições preenchidas com 0. 16/04/2013

Função min(vec) e max(vec) • A função min(vec) retorna o valor mínimo e sua

posição.

• A função max(vec) retorna o valor máximo e sua posição.

Ex.

>> vec = [5 3 1 9 7]

>> [minVal , minInd] = min(vec).

>> minVal = 1

>> minInd = 3; 06/04/2015

Encontrar elementos de um vetor • Utilizar a unção find().

Ex. S = [1 2 0 3];

% Como encontrar o valor 3.

>> find(S == 3). Retorno: >> ans = 4.

% encontrar posições para S > 1.

>> indices = find(S>1) Retorno: >> indices = 2 4

% Obter os valores

>> V = S(indices) Retorno: >> V = 2 3 06/04/2015

Listando intervalos e atribuindo valores

06/04/2015

Operações Aritméticas As operações aritméticas no Matlab podem ser de dois tipos: matricial ou escalar.

As operações do tipo matricial referem-se às operações matemáticas sobre matrizes.

As operações escalares são também denominadas de operações sobre conjuntos. Elas são realizadas elemento-a-elemento de cada matriz, aplicando-se o operador em questão apenas entre elementos de mesma posição matricial. 16/04/2013

Operações Aritméticas Definindo-se x = [2 3; 5 7] e y = [1 6; 2 4], pode-se associá-los pelos seguintes operadores:

– '+' : adição (matricial e escalar). Ex.: x + y = [3 9; 7 11] – '−' : subtração (matricial e escalar). Ex.: x − y = [1 −3; 3 3] – '*' : multiplicação matricial. Ex.: x * y = [8 24; 19 58].

16/04/2013

Operações Aritméticas – '/' : divisão matricial à direita.

• Ex.: x/y = (x*y^−1) = x*inv(y) =

[−0.2500 1.1250;−0.7500 2.8750]

– '\' : divisão matricial à esquerda.

• Ex.: x\y = (x^−1*y) = inv(x)*y =

[−1.0000 − 30.0000; 1.0000 22.0000]

– ‘^' : potenciação matricial.

• Ex.: x^2 = (x*x) = [19 27; 45 64]

16/04/2013

Operações Aritméticas

16/04/2013

-Transposição •Ex.: x’ = Transposta de x = [2 5, 3 7]

- ”.*” Multiplicação Escalar •Ex.: x.*y = [2 18; 10 28]

-”./” Divisão Escalar a Direita •Ex.: x./y = (x.*(y.^-1)) = [2.00 0.50 ; 2.50 1.75]

Operações Aritméticas

– '.\' : divisão escalar à esquerda.

• Ex.: x.\y = (x.^-1.*y) = [0.5000 2.0000; 0.4000 0.5714]

– '.^' : potenciação escalar.

• Ex.: x.^2 = [4 9; 25 49]

S = [5 6].^[2 3] = [5^2 6^3]. Resposta: S = 25 216

16/04/2013

Operações lógicas e relacionais Operador Descrição

< Menor que

<= Menor ou igual a

> Maior que

>= Maior ou igual a

== Igual a (não confundir com ‘=’ )

~= Diferente de

& E

| OU

~ NÃO

16/04/2013

Matrizes Elementares Ones: cria uma matriz cujos elementos são todos iguais a 1, dados o número de linhas e colunas da matriz, respectivamente.

16/04/2013

Matrizes Elementares zeros: cria uma matriz cujos elementos são todos iguais a 0, dados os números de linhas e colunas.

16/04/2013

Matrizes Elementares eye: cria uma matriz identidade, dada sua ordem.

16/04/2013

Matrizes Elementares rand: cria uma matriz de elementos pseudo-aleatórios com distribuição uniforme entre 0 e 1, dados os números de linhas e colunas.

Um comando similar, o rand, funciona de forma similar, mas com distribuição normal.

16/04/2013

Matrizes Elementares Esta função é muito útil para, por exemplo, se fazer testes em programas que vão trabalhar com dados imprevisíveis.

16/04/2013

Tamanho e dimensão de um vetor • length (vetor)

- Essa função tem como retorno o tamanho do vetor

Ex.: S = [1 2 3 4 5];

x = length(S). Retorno : x = 5;

• Size(vetor)

- Essa função tem como retono a dimensão do vetor

Ex.: x = size(S); Retorno: x = 1 5; 06/04/2015

Solução de Sistemas Lineares Para resolver um sistema linear do tipo A*x = B procedemos da seguinte forma:

>> X = linsolve(A,B)

16/04/2013

06/04/2015

1. Use operações matriciais para resolver o seguinte sistema de equações lineares. 4x – 2y + 6Z = 8 2x + 8y + 2z = 4 6x + 10y + 3z = 0

06/04/2015

2. Encontre uma maneira de substituir números menores ou igual a 3, de uma matriz dada x, pelo número 10. Antes de substituir, mostre qual a posição desses números na matriz e qual seu valor. x = [5 90 2 1; 7 84 0 11; 3 6 2 4; 4 3 2 1 ]

06/04/2015 Franklin Zeno

3. Gerar uma matriz aleatória e substituir o menor valor pelo número 2 e o maior valor da matriz pelo número 3.

4. A figura ao lado mostra um circuito elétrico composto de resistores e fontes de tensão. Determine a corrente em cada resistor usando a lei de Kirchoff para tensões e o método das correntes de malha. V1 = 20V R1 = 18Ω R4 = 6Ω R7 = 12Ω V2 = 12V R2 = 10Ω R5 = 15Ω R8 = 14Ω V3 = 40V R3 = 16Ω R6 = 8Ω

06/04/2015

fim!!!

06/04/2015