Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         module fun_parameter
  2.                 integer t
  3.                 real x(7), f(7), fi(7)
  4.         end module
  5.  
  6.         real function fun(x)
  7.                 real x
  8.                 fun = sin((x)**2)
  9. !               print *, "in fun", fun
  10.                 return
  11.         end
  12.    
  13.  
  14.         real function lagrange (f_k)
  15.                 use fun_parameter
  16.                 real q
  17.                 real wkx(7), wkxk(7), f_k
  18.                 integer i, j
  19.                 q=0
  20.                 wkx(:)=1
  21.                 wkxk(:)=1
  22.                 do i=1,7
  23.                        do j=1,7
  24.                           if(i/=j) then
  25.                             wkx(i)=wkx(i)*(f_k-x(j))
  26.                             wkxk(i)=wkxk(i)*(x(i)-x(j))
  27.                           endif
  28.                        end do
  29.                           if(wkxk(i)/=0) then
  30.                                   q=q+((wkx(i)/wkxk(i))*f(i))
  31.                           end if
  32.                 end do
  33.                 lagrange = q
  34.  
  35.         end
  36.        
  37.         real function lag_int(x)
  38.                 real x
  39.                 lag_int = x
  40.                 return
  41.         end
  42.  
  43.         use fun_parameter
  44.         external fun
  45.         external lagrange
  46.         integer            :: i, nofun
  47.         integer, parameter :: N = 7, out=0
  48.         real               :: points(n)
  49.         REAL fun,A,B,ABSERR,RELERR,RES,ERREST,FLAG, lag_,summ
  50.         A = 0
  51.         B = 0.2d0
  52.         F = 0
  53.         X = 0      
  54.         RELERR = 1.e-06
  55.         ABSERR = 0.0
  56.         t = 0
  57.      
  58.         do i=1, 7
  59.                 X(i) = 0.2 * t
  60.                 F(i) = sin(X(i)**2)
  61.                 write(*,*) "x(", i, "),= ", x(i), "f(",i,") =", f(i)
  62.                 t = t+1
  63.         end do
  64.        
  65.         call quanc8(fun,a,b,ABSERR,RELERR,RES,ERREST,nofun,FLAG)
  66.        
  67.         write(*,*) "integral f(x)=", res
  68.  
  69.         call quanc8(lagrange,a,b,ABSERR,RELERR,lag_,ERREST,nofun,FLAG)
  70.         write(*,*) "untegral s(x)=", lag_
  71.  
  72.                      
  73.         stop
  74.         end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement