🔢 Conceito de Matemática do Ensino Médio que se tornou a inda mais relevante na era da Inteligência Artificial.

---
Nesse artigo recapitularemos conceitos fundamentais sobre Matrizes e Determinantes.
---
## Matriz
Uma explicação rápida sobre Matriz Matemática é que ela serve para organizar dados numéricos(criando uma tabela) para facilitar a leitura e organização dos dados para solucionar problemas de forma mais fácil.
As Matrizes são utilizadas em diversas áreas:
+ Matemática;
+ Computação(Inteligência Artificial, tratamento de imagens,...);
+ Engenharia;
+ Economia;
+ Biologia;
E entre diversas outras.
O conceito em linhas gerais é: **Uma matriz é uma tabela retangular de números (ou expressões) organizados em linhas e colunas.**, sua representação se parece com isso:
Essa matriz tem uma **ordem** de: `2x3` (2 linhas(horizontal) e 3 colunas(vertical)), nas representações de matrizes sempre começamos informando as linhas.
Outra observação sobre essa matriz é que ela possui a explicação: A = [aij]mxn, isso quer dizer que, por exemplo:
+ O número `1` está na 1º linha(m) e na 1º coluna(n), logo, a representação `a`ij dele é: `a`11 e assim por diante.
Convertendo todos para `a`ij, seria:
Essa mesma matriz em [C++](https://terminalroot.com.br/tags#cpp) podemos usar o [std::vector](https://terminalroot.com.br/2021/08/diferencas-entre-list-e-vector-na-stl-do-cpp.html) ou [std::array](https://terminalroot.com.br/2023/05/como-usar-o-stdarray-em-cpp.html):
+ Use `std::vector>` se quiser algo **dinâmico e flexível**.
+ Use `std::array, 2>` se as dimensões forem **fixas e conhecidas em tempo de compilação**.
**Nunca use `std::list` para matrizes.** Ela não tem acesso aleatório eficiente.
### Exemplos:
**Com `std::vector`:**
### Qual usar?
* Use `std::vector` se for alterar tamanho em tempo de execução.
* Use `std::array` para desempenho máximo com tamanho fixo.
### Construção de matrizes
Suponhamos que você está prestando um concurso e possui esse enunciado:
+ Construa a matriz B = [`a`ij]2x3 tal que `a`ij = (i + j)2.
Solução:
+ `a`ij = (i + j)2 => `a`11 = (1 + 1)2 => `a`11 = 4.
> Faça para os demais
A solução para todos em [C++](https://terminalroot.com.br/tags#cpp) utilizando `std::array`, já que a matriz é de tamanho fixo `2x3`:
#include<array>
#include<iostream>intmain(){std::array<std::array<int,3>,2>B;for(inti=0;i<2;++i){for(intj=0;j<3;++j){B[i][j]=(i+j)*(i+j);}}// Exibe a matrizfor(constauto&row:B){for(intval:row){std::cout<<val<<" ";}std::cout<<"\n";}return0;}
### Cálculos de Matrizes
Operações aritméticas(algébricas ou matriciais) com Matrizes.
#### **a) Adição e Subtração**
Só é possível se as matrizes tiverem a mesma ordem.
---
## Determinantes
O **determinante** é um número associado apenas a **matrizes quadradas**, útil para resolver sistemas lineares e verificar se uma matriz é invertível.
> **IMPORTANTE**: Na representação de matrizes usamos colchetes: `[ ]`, mas em determinantes usamos barras verticais, exemplo: `| |`.
### 3.2 Cálculo do Determinante
#### a) Matriz \( 2 \times 2 \)
\[
\text{det} \begin{vmatrix}
a & b \\
c & d \\
\end{vmatrix}
= ad - bc
\]
#### b) Matriz \( 3 \times 3 \) (Regra de Sarrus)
A Regra de Sarrus consiste em adicionar a 1º e a 2º coluna para o lado direito da matriz determinante e *traçar* diagonais(a partir dos números da primeira LINHA), exemplo:
> Isso para uma matriz `3x3`.

\[
\text{det} \begin{vmatrix}
a & b & c \\
d & e & f \\
g & h & i \\
\end{vmatrix}
= aei + bfg + cdh - ceg - afh - bdi
\]
#### 3.3 Propriedades dos Determinantes
- Se uma linha ou coluna for toda zero, `det = 0`.
- Se duas linhas ou colunas forem iguais, `det} = 0`.
- `det(A x B) = det(A) x det(B)`.
#### 4. Aplicações
- **Sistemas Lineares:** Resolver equações usando a **Regra de Cramer**.
- **Matriz Inversa:** Uma matriz A é invertível se det(A) ≠ 0.
#### 5. Exercício
+ Calcule o determinante:
Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!