Algebra linear
Pedro Barahona
DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2009/2010
11 Março 2010
Vectores e Matrizes - Aplicações à Engenharia
1
Tipo de Dados Primitivo: a Matriz
• Ao contrário da generalidade das linguagens de programação, o Octave / MATLAB assume a matriz como o tipo básica de uma variável. Por exemplo, ao se fazer a atribuição de um valor a uma variável V, “simples”, o Octave está de facto a atribuir esse valor a todos os elementos de uma matriz com uma linha e uma coluna. Para obtermos a dimensão de uma variável X, quer seja simples, vector ou matriz, podemos usar as funções prédefinidas rows(X) e columns(X). No caso de vectores, linha ou coluna, o número de colunas e linhas é retornado pela função lenght(V). >> V = 5 >> V(1) ans = 5 >> V(1,1) ans = 5
•
•
>> X = 5 >> columns(X) ans = 1 >> M = [1 ; 2]; >> cols(M) ans = 2
11 Março 2010
Vectores e Matrizes - Aplicações à Engenharia
2
Matrizes
• De facto, as funções aplicáveis a uma variável “simples” são sempre distribuídas por todos os elementos de uma matriz. Por exemplo, se a função logaritmo receber como parâmetro um vector ou matriz, retorna uma estrutura idêntica como resultado. >> V = [1,2, 4;8 16 32] V = 1 2 4 8 16 32 >> X = log(V)/log(2) X = 0 1 2 3 4 5 • Naturalmente, esta atribuição pode ser feita elemento a elemento. Assim, sendo V a anterior matriz, a instrução log(V)/log(2) é equivalente ao programa for i = 1:rows(V) for j = 1:columns(V) X(i,j) = log(V(i,j))/log(2) endfor endfor
11 Março 2010
Vectores e Matrizes - Aplicações à Engenharia
3
União e Seleccção de Matrizes
• O facto de a estrutura matriz ser uma primitiva da linguagem Octave permite que a “formação” de matrizes seja feita não só a partir de elementos simples, como também o seja a partir de vectores ou matrizes. Assim, a partir de dois vectores 1*3, A = [1,2,3] e B = [4,5,6], pode constituir-se % uma matriz de 2*3