Skip to main content

=?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

✒️ Autores

  • João Bernardo Del Rio - Desenvolvedor - JheyBi

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

escalonamento-0.0.1.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

escalonamento-0.0.1-py3-none-any.whl (2.8 kB view details)

Uploaded Python 3

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

Hashes for escalonamento-0.0.1.tar.gz
Algorithm Hash digest
SHA256 542b3c3f1e760fb24c42ce2013766d3d67ff82d50130805eaf90b4e725766fe7
MD5 75263003d5a0bb00f216597010085bf8
BLAKE2b-256 a7e458aeb8805b3046865e283101ef87b3fa7df6a83cfe8e270d314518117a4b

See more details on using hashes here.

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

Hashes for escalonamento-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6658b1a6a3a2e0ca0480f91fa1246820893a6e3f8293018cb0f26f733f45886d
MD5 3f23e68a021ddae9222137e42f2ee727
BLAKE2b-256 ead049b0d97aba77b7bc2ba03f65b6015ef2ac0b421dad9f6d8ad920aa53c4a0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page