Algoritmos de calculo numérico
Método de Eliminação de Gauss com Pivotação Parcial em linguagem pascal.
Program Metodo_eliminacao_gauss; Uses crt; Var a : Array[1..100,1..100] Of Real; //se desejar uma matriz maior, basta criar arrays maiores// x, b : Array[1..100] Of Real; i, j, n, ji, ii, ipivo, k : Integer; // i's sao variaveis auxiliares// m, soma, pivo, baux, aux : Real; resposta : char; nome : String; erro : Boolean; resultado : Text;
Begin
Repeat repeat Clrscr; Textcolor (White); Writeln ('Resolucao de sistemas de equacoes lineares utilizando o metodo da eliminacao'); Writeln ('de Gauss (triangularizacao) .'); Writeln; Write ('Digite a ordem do sistema (n), no maximo n=100: '); Readln (n); until n >= 2; //le os coeficientes da matriz A// for j:=1 to n do begin Repeat clrscr; Writeln ('AX = B'); Writeln; Writeln ('Matriz ampliada do sistema'); Writeln; Writeln ('Digite os elementos da coluna ',j,' da matriz A (coeficientes de x',j,'):'); Writeln; for i:=1 to n do begin Write('a[',i,'x',j,']= '); readln(a[i,j]); end; writeln; writeln; Textcolor (White); Write ('Confira os valores digitados, estao corretos? (digite s=sim, n=nao): '); Readln (resposta); Until (resposta = 'S') Or (resposta = 's'); end;
//le os coeficientes da matriz B// repeat clrscr; Writeln ('AX = B'); Writeln; Writeln ('Matriz ampliada do sistema'); Writeln; Writeln ('Digite os elementos da matriz B (termos independentes)'); Writeln; for i:=1 to n do begin Write('b[',i,']= '); readln(b[i]); end; writeln; writeln; Write ('Confira os valores digitados, estao corretos? (digite s=sim, n=nao): '); Readln (resposta); Until (resposta = 'S') Or (resposta = 's');
//Metodo da eliminacao de Gauss (Triangularizacao)// k := 1; //Passo// erro := False; //A variavel erro se tornara True caso haja erros de divisao por zero// For j:=1 To n Do