Buscar

Método de Gauss em SCILAB (Cálculo Numérico)

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

clear
clc
A=[225 0 -25 0 1400; 0 175 0 -125 100; -225 0 275 -50 2000; 0 -25 -250 275 0;]
function r = gauss(A)
 disp ("MEMÓRIA DE CÁLCULO DO SISTEMA LINEAR")
 disp ("POR ELIMINAÇÃO DE GAUSS COM PIVOTAÇÃO PARCIAL")
 disp ("*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*")
 
 //matriz estendida do sistema
 
 disp ("MATRIZ ESTENDIDA DO SISTEMA")
 disp (A)
 
 //determina o numero de linhas da etapa de calculo
 n = size(A, 1)
 
 for etapa= 1 : n-1
 //mostra o numero da etapa de calculo
 disp ("**************")
 disp ("Etapa")
 disp (etapa)
 disp ("**************")
 //pivotamento parcial
 pivot = A(etapa,etapa)
 for i = etapa + 1 : n
 if abs(A(i,etapa)) > abs(pivot) then
 linha_pivot = i
 pivot = A(i,etapa)
 AUX = A(etapa,:)
 A(etapa,:) = A(linha_pivot,:)
 A(linha_pivot,:) = AUX
 end
 end
 
 disp ("MATRIZ COM PIVOTAMENTO PARCIAL:")
 disp (A)
 
 disp ("Pivô:")
 disp (pivot)
 
 //calculos para escalonamento
 for i = etapa + 1 : n
 c = A(i,etapa)/pivot
 for j = 1 : n + 1
 A(i,j) = A(i,j) - c*A(etapa,j)
 end
 end
 disp ("MATRIZ OBTIDA APÓS CÁLCULOS")
 disp (A)
 end
 
 disp ("MATRIZ ESCALONADA")
 disp (A)
 
 //realiza a retrossubstituição
 aux = 0
 r(1,n) = A(n,n+1)/A(n,n)
 for i = n - 1: -1 : 1
 for k = n : -1 : 1
 aux = aux + r(1,k) * A(i,k)
 end
 r(1,i) = (A(i, n + 1) - aux)/A(i,i)
 aux=0
 end
 
 //exibe resultado final
 disp ("RESULTADO DO SISTEMA:")
 disp (r)
endfunction
r=gauss(A)

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando