TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

DESENVOLVIMENTO DE PROGRAMA PARA AJUSTE POLINOMIAL USANDO MÉTODO DOS MÍNIMOS QUADRADOS E PIVOTEAMENTO PARCIAL POR LU

Por:   •  21/6/2020  •  Trabalho acadêmico  •  1.131 Palavras (5 Páginas)  •  200 Visualizações

Página 1 de 5

UFF- UNIVERSIDADE FEDERAL FLUMINENSE

INSTITUTO DE COMPUTAÇÃO

MÉTODOS NUMÉRICOS – TURMA F1

Profº Dr. Marco Antônio Monteiro

TRABALHO DA DISCIPLINA

DESENVOLVIMENTO DE PROGRAMA PARA AJUSTE POLINOMIAL

USANDO MÉTODO DOS MÍNIMOS QUADRADOS E PIVOTEAMENTO PARCIAL POR LU

Por Vitor Keller e Pedro Diniz

  1. CÓDIGO:

C        Trabalho para a disciplina Métodos Numéricos

C        Por Vitor Keller e Pedro Diniz

       program polilu2

       integer NMAX,N,HMAX,H,I,J,P,RE

       parameter (NMAX= 9999999)

       parameter (HMAX=1000)

       real X(NMAX),F(NMAX)

       real L(HMAX,HMAX), S(HMAX)

       character*30 FNAME

C       Usuário adiciona seus dados

1     write(*,*) 'Qual ‚ o grau desejado para o polinômio? (Até 1000° grau)'

       read(*,*) H

       H=H+1

       If (H .GT. HMAX) then

       write(*,*) 'ERRO: Acima de 1000° grau.'

       Stop

       End If

       write(*,*) 'Quantos pontos deseja adicionar?'

       read(*,*) N

       If (N .LE. (H-1)) then

       write(*,*) 'ERRO: Número de pontos menor ou igual ao grau do polinômio.'

       Stop

       End If

       If (N .GT. NMAX) then

       write(*,*) 'ERRO: Acima do limite de pontos(9999999).'

       Stop

       End If

       Write(*,*)'Qual ‚ nome do arquivo dos pontos (x,f(x))?'

       Read(*,'(A30)') FNAME

       Open(10,FILE=FNAME,STATUS='OLD')

       Do I=1,N

       Read(10,*) X(I),F(I)

       End Do

C       Montagem das matrizes pelo método dos Mínimos Quadrados

       Do J=1,H

       Do I=1,N

        S(J)=S(J) + (F(I)*(X(I)**(J-1)))

       End Do

       End Do

       

       Do J=1,H

       Do M=1,H

       Do I=1,N

       L(M,J)= L(M,J) + (X(I)**(J+(M-2)))

       End Do

       End Do

       End Do

C       Cálculo de LU

        P=1

        Do while (P .LT. H)

        Do J=(P+1),H

        L(J,P)=L(J,P)/L(P,P)

        End do

        Do J=(P+1),H

        Do I=(P+1),H

        L(J,I)=L(J,I)-(L(J,P)*L(P,I))

        End do

        End do

        P=P+1

        End do

       

C       Cálculo de L*C=S

       

        S(1)=S(1)

        Do J=2,H

        Do I=1,J-1

        S(J)=S(J)-(L(J,I)*S(I))

        End do

        End do

       

C       Cálculo de U*A=C

       

        P=H

        S(P)=S(P)/L(P,P)

...

Baixar como (para membros premium)  txt (3.5 Kb)   pdf (62.6 Kb)   docx (10.7 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com