Compre o e-book deste material aqui!
Arranjos multidimensionais3838endnote: 38Consulte a Seção 5.3 fornecem uma estrutura adequada para a representação de matrizes em computador. Uma matriz , assim como um arranjo bidimensional, é uma coleção de valores organizados de forma retangular, por exemplo, a matriz tem a forma
(5.43) |
Seus elementos são organizados por eixos, o eixo das linhas (axis=0) e o eixo das colunas (axis=1).
O sistema linear
(5.44a) | |||
(5.44b) | |||
(5.44c) |
pode ser escrito na seguinte forma matricial
(5.45) |
onde é a matriz de coeficientes
(5.46) |
o vetor dos termos constantes é
(5.47) |
enquanto que o vetor das incógnitas é . No seguinte código, usamos numpy.array para alocamos a matriz dos coeficientes e o vetor dos termos constantes .
Embora úteis para a representação de matrizes, arranjos bidimensionais não são equivalentes a matrizes. Em arranjos, as operações aritméticas elementares (+, -, *, /, etc.) são operações elemento-a-elemento, para matrizes a multiplicação não é assim calculada e a divisão não é definida.
No NumPy, as funções numpy.dot, numpy.matmul ou o operador @ podem ser usados para computar a multiplicação matricial.
Consideramos o sistema linear introduzido no Exemplo 5.4.1. Vamos verificar que sua solução é , e . Equivalentemente, temos que
(5.51) |
com . Isto é, se é solução do sistema, então é nulo o resíduo , i.e.
(5.52) |
Ou equivalentemente, .
Por definição, a transposta de uma matriz é a matriz , i.e. a matriz obtida de pela permutação de suas linhas com suas colunas. No NumPy, a transposta de um arranjo bidimensional pode ser calculado com a função numpy.transpose, com o método numpy.ndarray.transpose ou com o atributo numpy.ndarray.T.
Uma matriz é dita ser simétrica, quando . Observamos que é simétrica a matriz
(5.53) |
Agora, não é simétrica a matriz
(5.54) |
Por definição, o determinante de uma matriz é o escalar
(5.55e) | ||||
(5.55f) |
onde é o conjunto de todas as permutações de e é o sinal (ou assinatura) da permutação . Para matrizes , temos
(5.56c) | ||||
(5.56d) |
Enquanto que no caso de matriz , temos
(5.57d) | ||||
(5.57e) | ||||
(5.57f) | ||||
(5.57g) | ||||
(5.57h) | ||||
(5.57i) | ||||
(5.57j) |
A função numpy.linalg.det do NumPy pode ser usado para computar o determinante de um arranjo.
O determinante
(5.58d) | ||||
(5.58e) |
O Método de Cramer3939endnote: 39Gabriel Cramer, 1704 - 1752, matemático suíço. Fonte: Wikipédia: Gabriel Cramer. usa de determinantes para o cálculo da solução de sistemas lineares. Dado um sistema linear
(5.59) |
denotamos a matriz dos coeficientes por
(5.60) |
onde denota a -ésima coluna de . Vamos denotar por a matriz obtida de substituindo pelo vetor dos termos constantes , i.e.
(5.61) |
O método consiste em computar a solução com
(5.62) |
para cada .
Vamos resolver o sistema linear dado no Exercício 5.4.1. Sua forma matricial é
(5.63) |
com matriz dos coeficientes
(5.64) |
e vetor dos termos constantes
(5.65) |
Para aplicação do Método de Cramer, calculamos
(5.66d) | ||||
(5.66e) |
e das matrizes auxiliares
(5.67d) | ||||
(5.67e) |
(5.68d) | ||||
(5.68e) |
(5.69d) | ||||
(5.69e) |
Com isso, obtemos a solução
(5.70a) | ||||
(5.70b) | ||||
(5.70c) |
Aloque com numpy.array e imprima as seguintes matrizes:
(5.71) |
(5.72) |
(5.73) |
(5.74) |
Aloque as seguintes matrizes com numpy.array
(5.75) |
e
(5.76) |
Então, compute e imprima o resultado das seguintes operações matriciais
Aloque as seguintes matrizes numpy.array:
(5.77) |
e
(5.78) |
Então, compute e imprima o resultado das seguintes operações matriciais:
Escreva a forma matricial do seguinte sistema linear
(5.79a) | |||
(5.79b) | |||
(5.79c) |
Use numpy.array para alocar a matriz dos coeficientes e o vetor dos termos constantes . Então, verifique quais dos seguintes vetores é solução do sistema
Calcule e compute o determinante das seguintes matrizes
(5.80) |
(5.81) |
(5.82) |
Use o Método de Cramer para computar a solução do sistema dado no Exercício 5.4.4. Verifique sua solução com a computada pelo método numpy.linalg.solve.
Dica: .
Desenvolva sua própria função Python para a computação do determinante de uma matriz .
Dica: use a função intertools.permutations para obter um iterador sobre as permutações.
As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!