Buscar

Plolinomio interpolador de grau 13

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

program interpol
implicit none
real,dimension(14)::I,t,c,s,x
real,dimension(14,14)::A,A1
real::soma
integer::j,k,i1,N
open(unit=110,file='C_O.txt',status='old')
do j=1,14
read(110,*)I(j),t(j),c(j)
open(unit=2,file='poli.interpolador.txt')
end do
do k=1,13
do j=1,14
A(j,k)=t(j)**k
end do
end do
!do j=1,14
!write(2,*)I(j),A(j,1),A(j,2),A(j,3),A(j,4),A(j,5),A(j,6),A(j,7),A(j,8),A(j,9),A(j,10),A(j,11),A(j,12),A(j,13),c(j)
!end do
open(unit=3,file='matrizA1.txt')
do j=1,14
A1(J,1)=i(J)
end do
do j=1,14
do k=1,13
A1(j,k+1)=A(j,k)
end do
end do
do j=1,14
write(3,*)A1(j,1),A1(j,2),A1(j,3),A1(j,4),A1(j,5),A1(j,6),A1(j,7),A1(j,8),A1(j,9),A1(j,10),A1(j,11),A1(j,12),A1(j,13),A1(j,14)
end do
N=14
 
!Chute inicial
x = 0.0
!Algoritmo de Gauss-Seidel
do k = 1,3948341
 do i1=1,N
 soma = 0.0
 do j=1,N
 if(j.NE.i1) then
 soma=soma+A1(i1,j)*x(j)
 end if
 end do
 
 x(i1) = (c(i1)-soma)/A1(i1,i1)
 
 end do
end do
open(unit=1,file='solução.txt')
write(*,*)
write(1,*)'para ',k,'iterações temos a seguinte solução para o polinõmio interpolador'
write(*,*)
write(1,*)
write(1,*) 'x1= ', x(1)
write(1,*) 'x2= ', x(2)
write(1,*) 'x3= ', x(3)
write(1,*) 'x4= ', x(4)
write(1,*) 'x5= ', x(5)
write(1,*) 'x6= ', x(6)
write(1,*) 'x7= ', x(7)
write(1,*) 'x8= ', x(8)
write(1,*) 'x9= ', x(9)
write(1,*) 'x10= ', x(10)
write(1,*) 'x11= ', x(11)
write(1,*) 'x12= ', x(12)
write(1,*) 'x13= ', x(13)
write(1,*) 'x14= ', x(14)
s(1)=1.0
do j=1,13
s=s(j)*(t(1)-t(j+1))
end do
write(*,*)s(13)
close(3)
close(1)
close(2)
close(110)
end program interpol

Teste o Premium para desbloquear

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

Continue navegando