Я использую Microsoft Visual Studio с Intel Fortran и совершенно новичок в этой платформе кодирования. Если мой вопрос недостаточно для того, чтобы задать его здесь, я заранее прошу извинения, но мне действительно нужно решение этой проблемы. Мне нужно интегрировать большое количество тригонометрических c выражений (примерно 4860). Я использую библиотеку QUADPACK и следующий код:
program integral
real ( kind = 4 ), parameter :: a = 0.0E+00
real ( kind = 4 ) abserr
real ( kind = 4 ) b,x
real ( kind = 4 ), parameter :: epsabs = 0.0E+00
real ( kind = 4 ), parameter :: epsrel = 0.001E+00
real ( kind = 4 ), external :: f2
integer ( kind = 4 ) ier
integer ( kind = 4 ), parameter :: key = 6
integer ( kind = 4 ) neval
real ( kind = 4 ), parameter :: r4_pi = 3.141592653589793E+00
real ( kind = 4 ) result1
real ( kind = 4 ), parameter :: true = 0.06278740E+00
b = r4_pi
call qag ( f2, a, b, epsabs, epsrel, key, result1, abserr, neval, ier )
write ( *, '(a)' ) ' '
write ( *, '(a)' ) 'QAG_TEST'
write ( *, '(a)' ) ' Test QAG'
write ( *, '(a)' ) ' '
write ( *, '(a)' ) ' Integrand is COS(100*SIN(X))'
write ( *, '(a,g14.6)' ) ' Integral left endpoint A = ', a
write ( *, '(a,g14.6)' ) ' Integral right endpoint B = ', b
write ( *, '(a,g14.6)' ) ' Exact integral is ', true
write ( *, '(a,g14.6)' ) ' Estimated integral is ', result1
write ( *, '(a,g14.6)' ) ' Estimated integral error = ', abserr
write ( *, '(a,g14.6)' ) ' Exact integral error = ', true - result
write ( *, '(a,i8)' ) ' Number of function evaluations, NEVAL = ', neval
write ( *, '(a,i8)' ) ' Error return code IER = ', ier
end program integral
function f2(x)
implicit none
real ( kind = 4 ) f2
real ( kind = 4 ) x
f2=COS(100*SIN(X))
end function
Из приведенного выше кода я легко могу найти интеграл одного выражения. Но в моем случае у меня есть массив (18 * 270), содержащий все элементы в виде математического выражения. Я хочу позвонить им по одному и объединить их. Пожалуйста, подскажите, как с этим бороться. Спасибо.