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
2362
МО
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
28/01/25
3384
г. Чехов
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
3088
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
28/01/25
3384
г. Чехов
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
3088
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
1705
приходит весна?
Когда вы переходите от $$\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, Супермодераторы



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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