pxjoke

VMAT_lab1_20

Apr 9th, 2015
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. program lab1
  2.   interface
  3.     real function G(t)
  4.     real t
  5.     end function G
  6.     real function lagrange (ARR_X, ARR_Y, X)
  7.         real ARR_X(9),ARR_Y(9),X
  8.     end function lagrange
  9.  
  10.   end interface
  11.  
  12.   integer NOFUN,  I, N
  13.   real A,RELERR,ABSERR,RESULT,ERREST,FLAG,X,ARR_X(9), ARR_Y(9), B(9), C(9), D(9)
  14.   DATA A/1.0/,RELERR/1.E-06/,ABSERR/0.0/, X/3.0/
  15.   I = 1
  16.   N = 11
  17.   do  while(X < 5.2)
  18.   write(*,*) "X = ", X
  19.     ARR_X(I) = X
  20.     CALL QUANC8(G,A,X,ABSERR,RELERR,RESULT,ERREST,NOFUN,FLAG)
  21.     ARR_Y(I) = RESULT
  22.     I = I + 1
  23.     X = X + 0.25    
  24.     write(*,*) "RESULT = ", RESULT  
  25.   end do
  26.  
  27.   CALL SPLINE (N,ARR_X,ARR_Y,B,C,D)
  28.  
  29.   do k=0, 7
  30.     X = 3.125 + 0.25 * k
  31.     write(*,*) "----------------------------------------------"
  32.     write(*,*) "X = ", X
  33.     CALL QUANC8(G,A,X,ABSERR,RELERR,RESULT,ERREST,NOFUN,FLAG)
  34.     write(*,*) "QUANC8   = ", RESULT
  35.     write(*,*) "Lagrange = ", lagrange(ARR_X, ARR_Y, X), "   Q - L = ", RESULT - lagrange(ARR_X, ARR_Y, X)
  36.     write(*,*) "Spline   = ", SEVAL(N,X,ARR_X,ARR_Y,B,C,D), "   Q - S = ", RESULT - SEVAL(N,X,ARR_X,ARR_Y,B,C,D)
  37.   end do
  38.  
  39. end program lab1
  40.  
  41. real function G(t)
  42.     real t
  43.     G = cos(t) / t
  44. end function G
  45.  
  46. real function lagrange (ARR_X, ARR_Y, X)
  47. real ARR_X(9),ARR_Y(9),X, part, res
  48. res = 0
  49. do i = 1,9
  50.   part = ARR_Y(i)
  51.   do j = 1, 9
  52.     if (i .ne. j) then
  53.        part = part * (X-ARR_X(j)) / (ARR_X(I) - ARR_X(j))
  54.     end if
  55.   end do
  56.   res = res + part
  57. end do
  58. lagrange = res
  59.  
  60. end function lagrange
Advertisement
Add Comment
Please, Sign In to add comment