2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Интеграл с переменным верхним пределом
Сообщение06.03.2021, 22:39 
Заслуженный участник


29/12/14
504
Здравствуйте. К сожалению, не хватило символов для анонса всех основных моментов задачи. Итак, имеется необходимость численно вычислить интегралы такого вида
$$\begin{align}
f_1(t,t',x) &= \int_{t_0}^t \mathrm{d}\tau \int_{t_0}^{t'} \mathrm{d}\tau' \int_0^{\infty} \mathrm{d}y \,F_1(\tau,\tau',y,t,t',x),\\
f_2(t,t',x) &= \int_{t}^{t_2} \mathrm{d}\tau \int_{t}^{t'} \mathrm{d}\tau' \int_0^{\infty} \mathrm{d}y \,F_2(\tau,\tau',y,t,t',x).
\end{align}$$ Аналитические выражения для подынтегральных функций здесь известны. Понятно, что заковыристым местом тут является "временная" часть, так что сконцентрируемся на ней. Вот для начала пусть у нас был бы интеграл такого вида
$$f(t) = \int_{t_0}^t \mathrm{d}\tau F(\tau),$$ который нужно было бы посчитать на некоторой сетке $\lbrace t_i, \ i = 1, \ldots N\rbrace, где $t_N \equiv t$. Разумеется, чем считать для каждого $t_i$ значение $f_i \equiv f(t_i)$ гораздо разумнее посчитать $I_i = \int_{t_{i-1}}^{t_i}\mathrm{d}\tau F(\tau)$, так что $f_i = \sum_{j=1}^i I_j.$ А теперь пусть подынтегральное выражение зависит от $t$. Введём опять $I_i = \int_{t_{i-1}}^{t_i} \mathrm{d}\tau F(\tau,t_i),$ так что $f(t_1) \equiv f_1 = I_1.$ Тогда $$f_{i+1} = \int_{t_0}^{t_{i+1}} \mathrm{d}\tau F(\tau,t_{i+1}) = \int_{t_0}^{t_i} \mathrm{d}\tau F(\tau,t_{i+1}) + I_{i+1} = f_i + I_{i+1} + \Delta t_i \int_{t_0}^{t_i} \mathrm{d}\tau \partial_t F(\tau,t)\rvert_{t=t_i} + O(\Delta t_i^2), $$ где $\Delta t_i \equiv t_{i+1} - t_i.$ Ну, то есть, по сути, разложение $f(t_i + \Delta t_i)$ до линейного члена, а потом формула Лейбница. Только в формуле Лейбница, понятно, явным образом $I_{i+1} = F(t_i,t_i) \Delta t_i.$ Ну и мы возвращаемся к исходной проблеме, только с $F(\tau,t) \to \partial_t F(\tau,t)$, и никакого облегчения жизни не видать. В общем, я чего-то не вижу или действительно в общем случае ничего умнее, чем просто вычислять интегралы для каждого элемента сетки, особо нет? Что нельзя вот свести задачу к вычислению каких-то интегралов "поменьше", а потом их просто склеивать.

 Профиль  
                  
 
 Re: Интеграл с переменным верхним пределом
Сообщение07.03.2021, 15:34 
Заслуженный участник
Аватара пользователя


03/06/08
2337
МО
Gickle в сообщении #1508163 писал(а):
Разумеется, чем считать для каждого $t_i$ значение $f_i \equiv f(t_i)$ гораздо разумнее посчитать $I_i = \int_{t_{i-1}}^{t_i}\mathrm{d}\tau F(\tau)$, так что

Не совсем понятно, если имеется возможность посчитать интеграл для $[t_{i-1}, t_i]$, что мешает посчитать на всем промежутке?

 Профиль  
                  
 
 Re: Интеграл с переменным верхним пределом
Сообщение07.03.2021, 15:47 
Заслуженный участник


29/12/14
504
пианист в сообщении #1508228 писал(а):
Gickle в сообщении #1508163 писал(а):
Разумеется, чем считать для каждого $t_i$ значение $f_i \equiv f(t_i)$ гораздо разумнее посчитать $I_i = \int_{t_{i-1}}^{t_i}\mathrm{d}\tau F(\tau)$, так что

Не совсем понятно, если имеется возможность посчитать интеграл для $[t_{i-1}, t_i]$, что мешает посчитать на всем промежутке?

Да ничего не мешает формально. Но так менее выгодно же получается. Ну, грубо говоря, вот выбрали мы метод трапеций. Тогда при вычислении интеграла для $t_i$ мы в любом случае автоматически считаем трапеции и для всех $t_{j<i}$. Так что если мы каждый раз будем считать интеграл на всё промежутке, то мы просто будем проделывать лишнюю работу, не прибавляя при этом в точности. Поэтому и разумнее посчитать сначала "маленькие интегральчики", а потом их просто "склеивать". Ну вот я подумал, может, что-то подобное можно сделать и в случае, когда подынтегральное выражение тоже зависит от $t$.

 Профиль  
                  
 
 Re: Интеграл с переменным верхним пределом
Сообщение08.03.2021, 08:49 


12/07/15
3348
г. Чехов
Gickle в сообщении #1508163 писал(а):
Введём опять $I_i = \int_{t_{i-1}}^{t_i} \mathrm{d}\tau F(\tau,t_i),$

Ошибочная запись. Почему $t$ заменено на $t_i$ в подынтегральной части? Пересчитывайте каждый раз, нету тут никаких возможностей оптимизации.

 Профиль  
                  
 
 Re: Интеграл с переменным верхним пределом
Сообщение08.03.2021, 15:36 


14/01/11
3062
Gickle в сообщении #1508163 писал(а):
А теперь пусть подынтегральное выражение зависит от $t$.

Стоп, разве так можно делать? Можете переписать подынтегральное выражение так, чтобы в нём не встречались пределы интегрирования?

 Профиль  
                  
 
 Re: Интеграл с переменным верхним пределом
Сообщение08.03.2021, 19:40 
Заслуженный участник


29/12/14
504
Mihaylo в сообщении #1508294 писал(а):
Ошибочная запись. Почему $t$ заменено на $t_i$ в подынтегральной части?

Эта запись не может быть ошибочной в принципе, поскольку это просто определение $I_i$. Логика, повторюсь, такая:

1. Для того, чтобы посчитать $f(t) = \int_{t_0}^{t} \mathrm{d}\tau F(\tau)$ в узлах $t_i$, достаточно вычислить только "маленькие интегральчики" $I_i = \int_{t_{i-1}}^{t_i} \mathrm{d} \tau F(\tau).$ Это делать "выгоднее", чем считать $f_i \equiv f(t_i) = \int_{t_0}^{t_i} \mathrm{d}\tau F(\tau)$ для всех $t_i$ в лоб.

2. Пусть теперь $F(\tau) \to F(\tau,t)$, так что $f(t) = \int_{t_0}^t \mathrm{d} \tau F(\tau,t)$. Ну и вот встаёт вопрос, можно ли в каком-то контролируемом приближении опять свести задачу к вычислению "маленьких" интегральчиков. Ну и вот я привёл очевидные рассуждения, что вычислить аналог "маленьких интегральчиков" из предыдущего случая, $I_i = \int_{t_{i-1}}^{t_i} \mathrm{d}\tau  F(\tau,t_i)$, теперь уже недостаточно. Но, может, есть какое-то приближение похитрее (а-ля "вычисли маленькие интегральчики для самой функции, её производной и ещё вот это, тогда $f_i$ выражается через них вот так, а ошибку можно оценить вот так"). В конце концов, математики-прикладники чего только не выдумывали.

Sender в сообщении #1508341 писал(а):
Стоп, разве так можно делать? Можете переписать подынтегральное выражение так, чтобы в нём не встречались пределы интегрирования?

Как именно можно или нельзя делать? Рассматривать интегралы вида $\int_{t_0}^t \mathrm{d}\tau F(\tau,t)$ никто не запрещает, разумеется. И это вот игрушечная версия интеграла, которая у меня возникает из физики ("настоящие версии" приведены в первых двух формулах).

 Профиль  
                  
 
 Re: Интеграл с переменным верхним пределом
Сообщение08.03.2021, 19:50 


12/07/15
3348
г. Чехов
Gickle в сообщении #1508360 писал(а):
Эта запись не может быть ошибочной в принципе

Кто сказал? Почему вы вместо $t$ подставляете $t_i$ вместо $t_N$, по какому определению?

Gickle в сообщении #1508163 писал(а):
$t_N \equiv t$

 Профиль  
                  
 
 Re: Интеграл с переменным верхним пределом
Сообщение08.03.2021, 20:13 
Заслуженный участник


29/12/14
504
Mihaylo
Хм, ну да, какие-то дурацкие обозначения я ввёл вообще. Ну, вроде очевидно, что имеется в виду, не? Интеграл, как я говорил, с переменным верхним пределом $t$. Аналитически интеграл не считается, так что надо считать численно для какого-то конечного числа значений $t$ $\implies$ задаём сетку $\lbrace t_i\rbrace$ и считаем для этих выбранных $t_i$ интеграл численно. Если подынтегральное выражение само от $t$ не зависит, то достаточно посчитать интегральчики от $t_{j-1}$ до $t_j$, а потом значения $f(t_i)$ получать, суммируя эти самые интегральчики. Если же и сам подынтегральное выражение зависит от $t$, то простое обобщение предыдущего метода не работает, как наглядно демонстрируют мои простые соображения из первого сообщения. Вопрос: могут ли привести соображения посложнее к какой-то контролируемой схеме, при которой каждый раз полный интеграл для выбранного $t_i$ считать не надо, а достаточно опять посчитать просто "маленькие интегральчики" (какую-то группу таких интегральчиков), а потом их "склеивать", чтобы получить $f(t_i)$ с предсказуемой ошибкой для всех $t_i$ на сетке.

 Профиль  
                  
 
 Re: Интеграл с переменным верхним пределом
Сообщение08.03.2021, 21:44 


14/01/11
3062
Gickle в сообщении #1508360 писал(а):
Как именно можно или нельзя делать? Рассматривать интегралы вида $\int_{t_0}^t \mathrm{d}\tau F(\tau,t)$ никто не запрещает, разумеется.

Пардон, это я запутался. Но тут непонятно, что можно сделать, маленькие интегральчики могут быть полезны, только если они линейно вписываются в общую картину, например, если (в одномерном случае)$F(\tau,t)=\sum_jG_j(\tau)H_j(t).$

 Профиль  
                  
 
 Re: Интеграл с переменным верхним пределом
Сообщение08.03.2021, 21:57 
Заслуженный участник


29/12/14
504
Sender в сообщении #1508386 писал(а):
Пардон, это я запутался. Но тут непонятно, что можно сделать, маленькие интегральчики могут быть полезны, только если они линейно вписываются в общую картину, например, если (в одномерном случае)$F(\tau,t)=\sum_jG_j(\tau)H_j(t).$

Ну вот у меня тоже подобное ощущение. Что в общем случае никаких особых ухищрений не придумать и нужно честно считать интеграл для каждого аргумента на сетке. Но подумал, мол, мало ли. В конце концов, до некоторых схем, используемыех в численных методах, я бы тоже никогда в жизни не додумался. :)

(Оффтоп)

Впрочем, понятно также, что если подынтегральное выражение "не слишком безумное", а шаг сетки "достаточно мал", то при вычислении каждого последующего интеграла $f(t_{i+1})$ можно пользоваться некоторыми предыдущими результатами. В частности, например, если метод интегрирования выбран с адаптивной сеткой, то понятно, что для вычисления $f(t_{i+1})$ стоит стартовать с сеткой от $f(t_i)$. Ну и всё в таком духе. Подозреваю, что во некоторых современных библиотеках такое реализовано. Но это так, мысли вслух. Это уже вопрос именно к "кодовой части", а не к алгоритмической.

 Профиль  
                  
 
 Re: Интеграл с переменным верхним пределом
Сообщение11.03.2021, 20:42 
Аватара пользователя


26/05/12
1700
приходит весна?
Когда вы переходите от $$\int\limits_{t_0}^t\mathrm{d}\tau\,F(\tau)$$ к $$\int\limits_{t_0}^t\mathrm{d}\tau\,F(\tau,\;t)$$ у вас происходит кардинальный скачок качества. В первом случае у вас обычный интеграл, а во втором — интеграл двумерной функции по контуру. Эти факты, что контур интегрирования является отрезком, параллельным одной из естественных осей координат подынтегральной функции, и что сам интеграл записан в виде обычного, конечно, скрывают этот левел-ап, но он есть и от него никуда не деться: интегрирование при разных значениях t ведётся по совершенно разным контурам. Они могут быть близки, но это не отменяет их принципиальное отличие. Так что если вы не можете воспользоваться особенностями подынтегральной функции (теорема Стокса и еже с ней, например; факторизацию вам уже предложили), то в общем случае ваши интегралы будут разными, и воспользоваться предыдущим, чтобы посчитать следующий, не получится.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group