=?utf-8?q?Fun=C3=A7=C3=A3o_para_escalonar_matrizes?=
Project description
Escalonamento de Matrizes Quadradas
O escalonamento de matrizes é um procedimento algébrico que podemos utilizar para resolver sistemas lineares onde o número de equações não é, necessariamente, igual ao número de incógnitas. Resolver um sistema linear significa encontrar os valores das incógnitas que satisfazem todas as equações simultaneamente.
Como utilizar
📋 Pré-requisitos
Para utilizar a função de escalonamento, é necessário que seja importado as bibliotecas numpy e numpy.linalg
import numpy as np
from numpy.linalg import det, inv
Também é necessário que a determinante da matriz seja diferente de 0, para isso utilize a função "det" na matriz
#Matriz exemplo
A = np.array([[0.5235**3,0.5235**2,0.5235,1],[0.7853**3,0.7853**2,0.7853,1],[1.0471**3,1.0471**2,1.0471,1],[1.5707**3,1.5707**2,1.5707,1]])
D = det(A)
D
🔧 Aplicação
Existem duas formas para utilizar a função:
Primeira forma
A primeira forma é alterando uma coluna de cada vez, para isso você irá primeiro transformar em 1 a diagonal principal da sua coluna, chamando a função "F_UM":
def F_UM(matriz, coluna):
matriz[[coluna]] = matriz[[coluna]]*(1/(matriz[[coluna],[coluna]]))
F_UM(matriz, coluna)
E depois chamando a função "F_ZERO", para transformar o resto da coluna em zero:
def F_ZERO(matriz, coluna, tamanho):
i=0
while(i<tamanho):
if (i==coluna):
i=i+1
else:
matriz[[i]] = matriz[[i]] + matriz[[coluna]]*(matriz[[i],[coluna]]*-1)
i=i+1
F_ZERO(matriz, coluna, tamanho)
E repita esse processo até terminar.
Segunda forma
E a segunda forma seria utilizando as duas funções juntas, em uma só:
def escalonamento(matriz, tamanho):
coluna=0
while(coluna<tamanho):
matriz[[coluna]] = matriz[[coluna]]*(1/(matriz[[coluna],[coluna]]))
i=0
while(i<tamanho):
if (i==coluna):
i=i+1
else:
matriz[[i]] = matriz[[i]] + matriz[[coluna]]*(matriz[[i],[coluna]]*-1)
i=i+1
print(f"Coluna {coluna} alterada")
print(f"{matriz}")
coluna=coluna+1
escalonamento(matriz, tamanho)
⚙️ Exemplos para teste
1 Exemplo:
Projete um método para aproximar sen x por um polinômio cúbico no intervalo 0 ≤ x ≤ π/2.
2 Exemplo:
A força de sustentação da asa de um projeto de aeronave é medida em várias velocidades, como segue:
Velocidade (30m/s) 1 2 4 8 16 32 Força de sustentação 50 kgf 0 3,12 15,86 33,7 81,5 123,0
Encontre um polinômio interpolador de grau 5 que modela os dados e use seu polinômio para estimar a força de sustentação a 600 m/s.
Escalonamento de Matrizes MxN
O escalonamento de matrizes é um procedimento algébrico que podemos utilizar para resolver sistemas lineares onde o número de equações não é, necessariamente, igual ao número de incógnitas. Resolver um sistema linear significa encontrar os valores das incógnitas que satisfazem todas as equações simultaneamente.
Como utilizar
📋 Pré-requisitos
Para utilizar a função de escalonamento, é necessário que seja importado as bibliotecas numpy e numpy.linalg
import numpy as np
🔧 Aplicação
def escalonamento(matriz, m, n):
coluna=0
#Auxiliar para achar o pivo
pivo=0
while(coluna<n and coluna<m):
if (matriz[[pivo],[coluna]]!=0):
matriz[[pivo]] = matriz[[pivo]]*(1/(matriz[[pivo],[coluna]]))
i=0
while(i<m):
if (i==pivo):
i=i+1
else:
matriz[[i]] = matriz[[i]] + matriz[[pivo]]*(matriz[[i],[coluna]]*-1)
i=i+1
print(f"Coluna {coluna} alterada")
print(f"{matriz}")
pivo=pivo+1
coluna=coluna+1
else:
print(f"Coluna {coluna} pulada")
coluna=coluna+1
escalonamento(matriz, m, n)
⚙️ Exemplos para teste
3 Exemplo:
Considere o sistema linear homogêneo:
(x1)+3(x2)-2(x3)+2(x5)=0
(x1)+6(x2)-5(x3)-2(x4)+4(x5)-3(x6)=0
5(x3)+10(x4)+15(x6)=0
2(x1)+6(x2)+8(x4)+4(x5)+18(x6)=0
📦 Desenvolvimento
Essa função é útil na utilização de conteúdos da matéria de Algébra Linear
🛠️ Construído com
- Colaboratory - Ferramenta utilizada
✒️ Autores
- João Bernardo Del Rio - Desenvolvedor - JheyBi
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file escalonamento-0.0.1.tar.gz.
File metadata
- Download URL: escalonamento-0.0.1.tar.gz
- Upload date:
- Size: 3.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
542b3c3f1e760fb24c42ce2013766d3d67ff82d50130805eaf90b4e725766fe7
|
|
| MD5 |
75263003d5a0bb00f216597010085bf8
|
|
| BLAKE2b-256 |
a7e458aeb8805b3046865e283101ef87b3fa7df6a83cfe8e270d314518117a4b
|
File details
Details for the file escalonamento-0.0.1-py3-none-any.whl.
File metadata
- Download URL: escalonamento-0.0.1-py3-none-any.whl
- Upload date:
- Size: 2.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6658b1a6a3a2e0ca0480f91fa1246820893a6e3f8293018cb0f26f733f45886d
|
|
| MD5 |
3f23e68a021ddae9222137e42f2ee727
|
|
| BLAKE2b-256 |
ead049b0d97aba77b7bc2ba03f65b6015ef2ac0b421dad9f6d8ad920aa53c4a0
|