1 / 8

FATORAÇÃO LU

FATORAÇÃO LU. FATORAÇÃO LU - CÓDIGO. program LU; INICIO DO PROGRAMA {$APPTYPE CONSOLE} uses SysUtils ; Var VARIÁVEIS DO PROGRAMA NUMEROS INTEIROS E REAIS N,I,J,K,Linha,TROCAINT : integer ; M,PIVO,TROCA,SOMA : real;

limei
Download Presentation

FATORAÇÃO LU

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FATORAÇÃO LU

  2. FATORAÇÃO LU - CÓDIGO program LU; INICIO DO PROGRAMA {$APPTYPE CONSOLE} uses SysUtils; Var VARIÁVEIS DO PROGRAMA NUMEROS INTEIROS E REAIS N,I,J,K,Linha,TROCAINT : integer; M,PIVO,TROCA,SOMA : real; A,AInicial : array [1..50,1..50] of real; B,BInicial,Y,RAIZES : array [1..50] of real; ORDEM : array [1..50] ofinteger; OUTRA : string[3]; const UMReal = 1.00; TOL = 0.01;

  3. FATORAÇÃO LU - CÓDIGO begin //clrscr; LIMPA A TELA writeln('Resolucao de sistemas lineares por Fatoracao LU'); repeatREPETE AS INSTRUCÕES writeln(' Forneca o numero de equacoes , tal que 0 < n < 51 '); readln(N) until (N > 0) and (N < 51); ATÉ QUE ESTAS CONDIÇÕES SEJAM SATISFEITAS writeln(' Forneca a matriz a ser fatorada (linha a linha)'); for I := 1 to N do begin for J := 1 to N do read(A[I,J]); ORDEM[I] := I ;writeln(' ') end; AInicial := A; writeln('Resolucao de sistemas lineares pela Fatoracao LU'); writeln(' Matriz fornecida ');

  4. FATORAÇÃO LU - CÓDIGO for I := 1 to N do INICIO DO LAÇO begin for J := 1 to N do write(AInicial[I,J]:6:2,'X',J); writeln(' ') end; I := 1; repeat PIVO := abs(A[I,I]); Linha := I; for J := I+1 to N do begin ifabs(A[J,I]) > PIVO then begin PIVO := abs(A[J,I]); Linha := J end; end; if Linha <> I thenbegin for J := 1 to N do begin //Troca os coeficientes de linhas TROCA := A[LINHA,J]; A[LINHA,J] := A[I,J]; A[I,J] := TROCA; end;

  5. FATORAÇÃO LU - CÓDIGO //reorganiza a numeraçao das linhas TROCAINT := ORDEM[Linha]; ORDEM[Linha] := ORDEM[I]; ORDEM[I] := TROCAINT end; if PIVO > TOL thenbegin for J := I+1 to N do begin M := A[J,I]/A[I,I]; for K := I+1 to N do A[J,K] := A[J,K] - M * A[I,K]; A[J,I] := M end; end; inc(I); until (PIVo <= TOL) or (I = N); if PIVO > TOL thenbegin { Executa Quando PIVO > TOL } writeln('Matrizes L e U'); for I := 1 to N do begin { Impressao da Matriz L } for K := 2 to I do write(A[I,K-1]:6:2); write(UMREAL:6:2); writeln(' ');end; { Fim da Impressao da Matriz L } writeln(' ');

  6. FATORAÇÃO LU - CÓDIGO for I := 1 to N do begin { Impressao da Matriz U } for K := 2 to I do write(' '); for J := I to N do write(A[I,J]:6:2); writeln(' ') end; { Fim da Impressao da Matriz U } end; { Fim da Execucao de Quando PIVO > TOL } if (PIVO <= TOL) or (abs(A[N,N]) <= TOL) thenwriteln('Matriz Singular') elsebegin repeat writeln(' Forneca o Vetor B '); for I := 1 to N do read(BInicial[I]); for I := 1 to N do B[I] := BInicial[ORDEM[I]]; writeln(' Vetor B na Ordem Inicial'); for I := 1 to N do write(BInicial[I]:6:2,' '); writeln(' '); writeln(' Vetor B Reordenado'); for I := 1 to N do write(B[I]:6:2,' '); writeln(' ');

  7. FATORAÇÃO LU - CÓDIGO for I := 1 to N do begin SOMA := 0.0; for J := 1 to I-1 do SOMA := SOMA + A[I,J] * Y[J]; Y[I] := B[I] - SOMA end; RAIZES[N] := Y[N] / A[N,N]; for I := N-1 downto 1 do begin SOMA := 0.0; for J := I + 1 to N do SOMA := SOMA + A[I,J]*RAIZES[J]; RAIZES[I] := (Y[I] - SOMA) / A[I,I] end;

  8. FATORAÇÃO LU - CÓDIGO writeln('Raizes Calculadas'); for J := 1 to N do write('X',J,' = ',RAIZES[J]:6:2,' '); writeln(' '); writeln('Tecle SIM se Deseja Apresentar Outro Vetor B'); readln; read(OUTRA); until OUTRA <> 'SIM'; end; end.

More Related