2015-09-20 3 views
-3

Я пытаюсь реализовать алгоритм в Fortran, который включает в себя решение для граничного предела интеграла.Решение Fortran для неизвестной верхней границы интеграла

Например, я хочу найти заданный интеграл: integ_ (0-t) exp (t) dt = 1/2. который fortran должен решить для t.

как можно решить это в Фортране? Спасибо за ваши предложения.

ответ

1

Ваш конкретный пример может быть легко решен точно с использованием логарифмов, но я полагаю, что вы имели в виду это просто как иллюстративный пример. Если f(t) ваш подынтегральная и k это целевое значение, то вы пытаетесь найти корень функции

g(t) = integral_0^t f(u)du - k 

Вы можете попробовать Newton's method найти, что корень. Метод Ньютона требует, чтобы вы могли оценить g(t), что вы можете любым методом численного интегрирования, а также вы можете оценить его производную g'(t), но это еще проще, поскольку по Основополагающей теореме исчисления g'(t) = f(t) (при условии, что f является непрерывным) ,

Метод Ньютона не всегда сходится, и он имеет тенденцию улучшаться, если начальное значение близко к корню. Вы можете попробовать предварительный подход bisection, который позволит вам до некоторой степени приблизиться к корню, а затем метод Newton, чтобы его доработать.

Смежные вопросы