2014 dxdy logo

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

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




 
 Численное интегрирование с комплексными пределами
Сообщение14.08.2019, 14:55 
Здравствуйте! Прошу направить меня в нужное русло. Не могу разобраться с численным интегрированием (пишу программу). Попробую описать суть вопроса. Итак, допустим необходимо вычислить интеграл первого вида: $\int\limits_{a}^{b}f(t)dt$. Пусть $a$ и $b$ - действительные числа, а функция $f(t)$ - комплексная. В этом случае мне понятно как действовать. Выделяю действительную и мнимую части функции - обозначим их как $\operatorname{Re}[f(t)]$ и $\operatorname{Im}[f(t)]$, далее использую формулу $\int\limits_{a}^{b}\operatorname{Re}[f(t)]dt+i\int\limits_{a}^{b}\operatorname{Im}[f(t)]dt$. В итоге, всё сводится к двум интегралам от действительных функций, которые я вычисляю квадратурой Гаусса-Лежандра. Здесь всё понятно, программа отработана.

Теперь следующая ситуация. Допустим, необходимо вычислить интеграл второго вида:$\int\limits_{a+ib}^{c+id}f(t)dt$, т.е. нижний и верхний пределы интегрирования - комплексные (в общем случае), а подынтегральную функцию для простоты будем считать действительной, т.к. случай с комплексной функцией сводится к предыдущему случаю.

Итак, вопрос. Может, конечно, здесь всё очень просто и я не вижу очевидного из-за того, что "глаза замылены", но можно ли интеграл второго вида свести к нескольким интегралам первого вида, чтобы использовать привычные программно отработанные квадратуры или здесь уже требуются совершенно иные методы численного интегрирования? Спасибо.

 
 
 
 Re: Численное интегрирование с комплексными пределами
Сообщение14.08.2019, 15:07 
sv503 в сообщении #1410343 писал(а):
$\int\limits_{a+ib}^{c+id}f(t)dt$
Прежде чем что-либо вычислять, надо понять, что это значит. Так вот, Вы понимаете, что это за зверь такой интеграл такой и как его правильно воспринимать? Для сравнения: обычный интеграл (тот, что Вы писали выше) --- это интеграл Римана по отрезку, предел так называемых интегральных сумм.

 
 
 
 Re: Численное интегрирование с комплексными пределами
Сообщение14.08.2019, 15:16 
Аватара пользователя
nnosipov в сообщении #1410351 писал(а):
Прежде чем что-либо вычислять, надо понять, что это значит.
+++.

Добавлю, что в комплексной области интегралы берутся по контуру (см любой учебник ТФКП) , если либо контур конкретизирован, и тогда все сводится к обычному интегралу, либо показано, что интеграл от контура не зависит, и тогда все опять-таки сводится к обычному интегралу (или сумме), но при этом надо подумать о выборе "хорошего" контура.

 
 
 
 Re: Численное интегрирование с комплексными пределами
Сообщение14.08.2019, 15:56 
Цитата:
Прежде чем что-либо вычислять, надо понять, что это значит. Так вот, Вы понимаете, что это за зверь такой интеграл такой и как его правильно воспринимать? Для сравнения: обычный интеграл (тот, что Вы писали выше) --- это интеграл Римана по отрезку, предел так называемых интегральных сумм.

Я не математик, потому возможно не совсем ясно выражаюсь на строгом математическом языке. Попробую объяснить в терминах простого пользователя компьютера, вернее, пользователя программы. Так сказать, "на пальцах".

Итак, у меня под рукой есть старенькая программа MathCAD. Наверняка слышали о такой. Версия старая, - седьмая. Год выпуска - 1996г. Но это не суть. Суть в том, что эта программа умеет вычислять подобные интегралы с комплексными пределами. Вернее, не она сама, а встроенное в неё ядро Maple (тоже очень известная вещь), т.к. такое интегрирование там доступно только в символьных вычислениях. Но это тоже не суть. А теперь более важная суть. Когда я пытаюсь вычислить там интеграл, например, такой: $\int\limits_{1+i3}^{-2+i2}\sin(t)dt$, программа мне сразу выдаёт ответ. Приведу скриншот:

Изображение

При этом программа не спрашивает меня как Вы - что имел я ввиду под этим интегралом, как проходит путь интегрирования и т.д. Странно, да? :-)
Программа выдаёт мне ответ, и будьте уверены - он правильный, даже если интеграл неберущийся. И этот ответ выдаст любой известный математический пакет. Так вот, суть моей задачи - не получить ответ (в какой-то программе), а написать программу, которая выдаёт такой же правильный ответ используя известные человечеству методы численного интегрирования функций с комплексными пределами интегрирования, которые, как Вы видите, уже реализованы. И я хотел бы узнать - можно ли это реализовать уже известными мне способами (но я пока не знаю как сделать нужные преобразования), или же мне нужно обращаться к литературе, в которой описаны способы мне не известные (желательно указать в какую именно).

Ну вот, вроде объяснил понятнее. :-)

 
 
 
 Re: Численное интегрирование с комплексными пределами
Сообщение14.08.2019, 16:01 
Аватара пользователя
sv503 в сообщении #1410360 писал(а):
При этом программа не спрашивает меня как Вы - что имел я ввиду под этим интегралом, как проходит путь интегрирования и т.д. Странно, да?

это потому, что программа рассчитана на специалистов, которые знают как она работает, а не на придурков

 
 
 
 Re: Численное интегрирование с комплексными пределами
Сообщение14.08.2019, 16:09 
pogulyat_vyshel в сообщении #1410362 писал(а):
это потому, что программа рассчитана на специалистов, которые знают как она работает, а не на придурков

Слово "придурок" в мой адрес направлено? :-)
Никто исходных текстов программы Вам никогда не покажет, т.к. люди зарабатывают на этом деньги. Поэтому говорить о том, что пользователь знает как работает программа - просто глупо. Уверяю Вас - никто не знает кроме разработчиков программы. А вот математические методы известны.

Есть тут специалисты по численным методам имеющих непосредственное отношение к их реализации? Окромя специалиста pogulyat_vyshel, конечно. Теоретизирование и философствование тут мало кому интересно.

 
 
 
 Posted automatically
Сообщение14.08.2019, 16:12 
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Пургаторий (М)»
Причина переноса: переезжаем в профильный раздел.

 
 
 
 Re: Численное интегрирование с комплексными пределами
Сообщение14.08.2019, 16:34 
Аватара пользователя
sv503 в сообщении #1410360 писал(а):
При этом программа не спрашивает меня как Вы - что имел я ввиду под этим интегралом, как проходит путь интегрирования и т.д. Странно, да? :-)
Программа выдаёт мне ответ, и будьте уверены - он правильный, даже если интеграл неберущийся. И этот ответ выдаст любой известный математический пакет.
Я уверен, что ответ правильный в данном случае, просто потому, что эта функция $\sin(t)$ целая аналитическая и интеграл не зависит от контура. Странно, что вы о такой "мелочи" не слышали, по крайней мере не упоминаете. А вот возьмем, к примеру $|t|$, которая неаналитическая, там уже ответ будет зависеть от контура. Попробуйте ее? или $\int_{-1-i}^{1+i} t^{-1}\,dt$, там другие заморочки.

sv503 в сообщении #1410366 писал(а):
Никто исходных текстов программы Вам никогда не покажет, т.к. люди зарабатывают на этом деньги. Поэтому говорить о том, что пользователь знает как работает программа - просто глупо. Уверяю Вас - никто не знает кроме разработчиков программы.
Один мой коллега, лет так 25 назад получив неправильные ответы от Maple , обратился к ним за алгоритмом, и они были очень открыты. Есть некоторая разница между исходным текстом программы, алгоритмом в ней заложенным, и ответом на вопрос "как понимается данный интеграл" и с последним вопросом следует обращаться либо к документации, либо на форум поддержки Maple https://www.mapleprimes.com/. А математические методы начинаются с определения того, что надо посчитать.

 
 
 
 Re: Численное интегрирование с комплексными пределами
Сообщение14.08.2019, 19:08 
Аватара пользователя
sv503 в сообщении #1410343 писал(а):
Прошу направить меня в нужное русло.
Выполняю просьбу. Хотя, в принципе, nnosipov в самом первом ответе это уже сделал.
Вообще-то мне нравится, что человек вместо того, чтобы просто взять учебник ТФКП, пытается сначала разобраться в предмете самостоятельно. Ну давайте попробуем, никуда не подглядывая, определить, что такое интеграл в этом случае, а поможет нам в этом (или не поможет) самый простой случай: $f(t) \equiv 1$. Давайте подумаем, чему бы должен был равняться интеграл
$$\int\limits_{0+0i}^{1+0i} dt?$$
Ну, мнимая часть равна нулю, значит, наверное он должен равняться обычному интегралу
$$\int\limits_0^1 dt=1$$
А если теперь вверх:
$$\int\limits_{0+0i}^{0+1i} dt?$$
Уже интереснее. Ну, вроде бы, тот же результат должен получиться, всё ведь одинаково, только направление другое, так ведь? Или не так? О, а давайте попробуем нагло взять формулу Ньютона-Лейбница и у неё спросить?
Кажется, результаты не согласуются, да? Встаёт вопрос: а что такое первообразная для функции от комплексной переменной, который сразу же приводит к вопросу: а что такое производная функции от комплексной переменной? Попробуете сами ответить? Если получилось найти производную для функции $f(z)\equiv 1$, и для функции $f(z)=z$, то попробуйте найти производную от функции $f(z)= \operatorname{Re} z.$ Ну мы же хотели с самого простого случая начать, с вещественнозначных функций, а $f(z)=z$ — комплекснозначная :mrgreen:

Вот ещё вопрос, направляющий в русло: а мы ведь хотим, чтобы $\int_a^b dt + \int_b^c dt = \int_a^c dt$ выполнялось и в комплексном случае?

 
 
 
 Re: Численное интегрирование с комплексными пределами
Сообщение15.08.2019, 15:04 
sv503 в сообщении #1410366 писал(а):
Поэтому говорить о том, что пользователь знает как работает программа - просто глупо.
Что в данном случае делает Maple (и, видимо, MathCAD), прямо написано в Help (вчера было лень посмотреть, а сегодня заглянул):
Цитата:
If a and b are finite complex numbers, the int routine computes the definite integral over the straight line from a to b.
А что такое "the definite integral over the straight line from a to b", надо либо знать, либо заглянуть в учебник. Тогда станет ясно, какие методы для вычисления можно привлечь, чтобы
sv503 в сообщении #1410360 писал(а):
написать программу, которая выдаёт такой же правильный ответ

 
 
 [ Сообщений: 10 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group