Exercício computacional em Scilab I

Vamos usar o sistema Scilab para resolver alguns problemas com matrizes.

Como definir matrizes?

Sejam
\[
A = \begin{pmatrix} 1 & -1 & -2 \\ 0 & 3 & -1 \\ -1 & 0 & -2 \end{pmatrix},\quad
B = \begin{pmatrix} 2 & 2 \\ 0 & -2 \\ -2 & 2 \end{pmatrix}
\]
e
\[
b=\begin{pmatrix} 2 \\ -3 \\ 4 \end{pmatrix}
\]
Estas matrizes podemos definir em Scilab pelas seguintes instruções.


--> A = [1 -1 -2; 0 3 -1; -1 0 -2]
 A  = 

   1.  -1.  -2.
   0.   3.  -1.
  -1.   0.  -2.

--> B = [2 2; 0 -2; -2 2]
 B  = 

   2.   2.
   0.  -2.
  -2.   2.

--> b = [2; -3; 4]
 b  = 

   2.
  -3.
   4.

Operações com matrizes

As operações entre matrizes, podem ser feitas usando os símbolos $+$ (soma), $-$ (diferença), $*$ (produto entre matrizes, ou múltiplo escalar), e ^k (potência). O inverso de uma matriz $A$ pode ser calculado por teclar A^-1.

Veja os seguintes exemplos e explique porque os sistema dá erros em alguns casos.


--> A*B
 ans  =

   6.   0.
   2.  -8.
   2.  -6.

--> B*A

Operator *: Wrong dimensions for operation [3x2] * [3x3].

--> A+B

Operator +: Wrong dimensions for operation [3x3] + [3x2], same dimensions expected.

--> A+A
 ans  =

   2.  -2.  -4.
   0.   6.  -2.
  -2.   0.  -4.

--> A+(2*A)
 ans  =

   3.  -3.  -6.
   0.   9.  -3.
  -3.   0.  -6.

--> A*b
 ans  =

  -3.
  -13.
  -10.

--> b*A

Operator *: Wrong dimensions for operation [3x1] * [3x3].

--> b+A

Operator +: Wrong dimensions for operation [3x1] + [3x3], same dimensions expected.

--> A^-1
 ans  =

   0.4615385   0.1538462  -0.5384615
  -0.0769231   0.3076923  -0.0769231
  -0.2307692  -0.0769231  -0.2307692

--> B^-1
at line    20 of function %s_pow ( /usr/local/lib/scilab-2023.0.0/share/scilab/modules/overloading/macros/%s_pow.sci line 32 )
at line     3 of function %s_p_s ( /usr/local/lib/scilab-2023.0.0/share/scilab/modules/overloading/macros/%s_p_s.sci line 15 )

%s_pow: Wrong size for input argument #1: Square matrix expected.

O Determinante

O determinante de uma matriz $A$ pode ser calculado pela função det(A).


--> A
 A  = 

   1.  -1.  -2.
   0.   3.  -1.
  -1.   0.  -2.

--> det(A)
 ans  =

  -13.000000000000001776357

Note que o resultado não é um número inteiro, mesmo que as entradas da matriz sejam inteiras. Isso acontece porque o sistema Scilab usa aproximações para fazer computações numéricas. O determinante desta matriz é $-13$ e a pequena diferença obtida nesta computação geralmente não faz problema na prática.

Acessar entradas e partes de matrizes

Observe nas seguintes instruções como acessar entradas e submatrizes de matrizes.


// definimos uma matriz A
--> A = [1 -1 -2; 0 3 -1; -1 0 -2]
 A  = 

   1.  -1.  -2.
   0.   3.  -1.
  -1.   0.  -2.

// a entrada de A na primeira linha e segunda coluna
--> A(1,2)
 ans  =

  -1.

// a primeira linha de A
--> A(1,:)
 ans  =

   1.  -1.  -2.

// a segunda coluna de A
--> A(:,2)
 ans  =

  -1.
   3.
   0.

// a submatriz de entradas nas linhas 1-2 e nas colunas 2-3
--> A(1:2,2:3)
 ans  =

  -1.  -2.
   3.  -1.
Considere as seguintes duas matrizes.
\[
A = {\begin{pmatrix}4&1&2&4&2&2\cr 2&2&2&3&3&4\cr 4&2&1&4&0&2\cr 1&0&2&4&3&0\cr 0&4&0&4&0&0\cr 2&3&4&1&2&1\cr \end{pmatrix}}
\]
e
\[
B={\begin{pmatrix}2&5&4&4&1&2\cr 2&4&4&2&4&3\cr 0&5&1&0&4&0\cr 5&3&1&3&5&4\cr 0&4&2&1&5&5\cr 1&5&4&5&0&1\cr \end{pmatrix}}
\]

Decida se elas são invertíveis. Se sim, caclule os inversos e os determinantes. Calcule, $AB$, $A^{-1}B$, $B^{-2}A$ e $(A+2B)^{-1}$.

Para definir as matrizes no Scilab, pode copiar a colar o texto no seguinte campo.


// matriz A
[ 4.   1.   2.   4.   2.   2. 
  2.   2.   2.   3.   3.   4. 
  4.   2.   1.   4.   0.   2. 
  1.   0.   2.   4.   3.   0. 
  0.   4.   0.   4.   0.   0. 
  2.   3.   4.   1.   2.   1. ]
// matriz B
[ 2.   5.   4.   4.   1.   2. 
  2.   4.   4.   2.   4.   3. 
  0.   5.   1.   0.   4.   0. 
  5.   3.   1.   3.   5.   4. 
  0.   4.   2.   1.   5.   5. 
  1.   5.   4.   5.   0.   1. ]