Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module fun_parameter
- integer t
- real x(7), f(7), fi(7)
- end module
- real function fun(x)
- real x
- fun = sin((x)**2)
- ! print *, "in fun", fun
- return
- end
- real function lagrange (f_k)
- use fun_parameter
- real q
- real wkx(7), wkxk(7), f_k
- integer i, j
- q=0
- wkx(:)=1
- wkxk(:)=1
- do i=1,7
- do j=1,7
- if(i/=j) then
- wkx(i)=wkx(i)*(f_k-x(j))
- wkxk(i)=wkxk(i)*(x(i)-x(j))
- endif
- end do
- if(wkxk(i)/=0) then
- q=q+((wkx(i)/wkxk(i))*f(i))
- end if
- end do
- lagrange = q
- end
- real function lag_int(x)
- real x
- lag_int = x
- return
- end
- use fun_parameter
- external fun
- external lagrange
- integer :: i, nofun
- integer, parameter :: N = 7, out=0
- real :: points(n)
- REAL fun,A,B,ABSERR,RELERR,RES,ERREST,FLAG, lag_,summ
- A = 0
- B = 0.2d0
- F = 0
- X = 0
- RELERR = 1.e-06
- ABSERR = 0.0
- t = 0
- do i=1, 7
- X(i) = 0.2 * t
- F(i) = sin(X(i)**2)
- write(*,*) "x(", i, "),= ", x(i), "f(",i,") =", f(i)
- t = t+1
- end do
- call quanc8(fun,a,b,ABSERR,RELERR,RES,ERREST,nofun,FLAG)
- write(*,*) "integral f(x)=", res
- call quanc8(lagrange,a,b,ABSERR,RELERR,lag_,ERREST,nofun,FLAG)
- write(*,*) "untegral s(x)=", lag_
- stop
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement