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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

Supported by

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