2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Неберущийся интеграл - как искать?
Сообщение28.01.2008, 14:59 


17/12/07
16
Возникла необходимость вычислить интеграл, аналитически, хоть как-нибудь. Интеграл по всей видимости не выражается через элементарные функции, значит, надо искать решение через специальные, или как-то по другому.
Интеграл вот такой:

$$\int_0^k sin(\frac {P_n(x)} {Q_m(x)}) dx$$
где P(x) и Q(x) - полиномы степени n и m соответственно.

Подозреваю =) что аналитического решения нет вообще, тогда, хотелось бы узнать методы или приемы для его вычисления, только не численно. Или в каком направлении копать...

 Профиль  
                  
 
 
Сообщение29.01.2008, 03:56 
Заслуженный участник


22/01/07
605
Ну, если Q(x) не обращается в ноль на [0,k], то можно разложить в ряд и интегрировать почленно. Если, кроме того, P/Q - правильная дробь, то, используя представление
$$
\sin\left(\frac PQ\right) =
\sum_{j=0}^l\frac{(-1)^{j}}{(2j+1)!}\left(\frac PQ\right)^{2j+1}+r_{2l+1}(P/Q)
$$
и метод Остроградского, получаем:
$$
\int_0^k \sin\left(P(x)/Q(x)\right)dx=\frac{U_l(x)}{Q^{2l}(x)}\Big|_0^k+\int_0^k\frac{V_l(x)}{Q(x)}dx+
\int_0^k r_{2l+1}(P(x)/Q(x))dx.
$$
Последнее слагаемое стремится к нулю, когда $l\to\infty$. Поэтому представляет интерес, как себя ведут многочлены $U_l(x)$, $V_l(x)$ при $l\to\infty$. В частности $\deg V_l<\deg Q$, и возникает вопрос, а не стремится ли $V_l$ к какому-то многочлену $V$? Если вдруг да, то получим
$$
\int_0^k \sin\left(P(x)/Q(x)\right)dx=\lim_{l\to\infty}\frac{U_l(x)}{Q^{2l}(x)}\Big|_0^k+\int_0^k\frac{V(x)}{Q(x)}dx.
$$
В простейшем случае $P/Q=1/(x+a)$, $a>0$, $k>0$ это предположение верно, $V_l(x)\equiv1$ и решение представляется в виде ряда. Поскольку многочлены $U_l(x)$, $V_l(x)$ в методе Остроградского вычисляются методом неопределенных коэффициентов, то несложно запрограммировать их нахождение для данной функции $P/Q$ в какой-нибудь математической среде вроде Maple или Mathematica, и попробовать проверить, имеются ли у них какие-то хорошие свойства при $l\to\infty$. К примеру, можно взять сначала $1/(x^2+1)$ и посмотреть, имеет ли предел $V_l(x)$ и чему он равен. Если *вдруг* предел есть и выражается обозримым образом, то можно попробовать $1/(x^2+a^2)$, а также посмотреть свойства $U_l(X)$ и т.д.

Вряд ли конечно, можно расчитывать получить явные формулы для произвольных дробно-рациональных функций, но, в принципе, не исключено, что наблюдая за простейшими частными случаями, удастся найти какие-то процедуры, которые для данной $P/Q$ находят представление интеграла в виде рядов или чего-нибудь еще. :)

Если не удастся найти явные формулы, то можно, взяв достаточно большое l, чтобы остаток был мал (которое определяется максимумом $|P/Q|$ на [0,k] и заданной погрешностью), с помощью компьютера проинтегрировать многочлен Тейлора и получить приближенное значение.

 Профиль  
                  
 
 
Сообщение29.01.2008, 17:37 


17/12/07
16
Большое Спасибо за подробный ответ. Похоже что действительно такие интегралы решать надо через разложения в ряд, хотя видел как выражают неберущиеся интегралы через функцию Лапласа, интегральные синусы и т.п. - сейчас пытаюсь разобраться, нашел тут несколько подробных статей на эту тему.
$P/Q$ на самом деле не совсем произвольная дробно-рациональная функция, а именно: на отрезке [0,k] она принимает всего k значений, при чем эти значения изменяются в целых x, т.е. я этот интеграл могу вычислить простым суммированием от 0 до k для всех целых x. Вот. Но суть была именно в том, чтобы получить какое-либо аналитическое решение, которое бы сократило количество арифметических операций, например, чтобы можно было применить формулу для нахождения определенного интеграла.
Про метод Остроградского попробую что-нибудь поискать...
В любом случае спасибо!

 Профиль  
                  
 
 
Сообщение29.01.2008, 17:56 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Desich1024 писал(а):
$P/Q$ на самом деле не совсем произвольная дробно-рациональная функция, а именно: на отрезке [0,k] она принимает всего k значений...


А что, разве такие бывают? Приведите пример хотя бы одной (отличной от константы).

 Профиль  
                  
 
 
Сообщение29.01.2008, 20:40 


17/12/07
16
Профессор Снэйп писал(а):
Desich1024 писал(а):
$P/Q$ на самом деле не совсем произвольная дробно-рациональная функция, а именно: на отрезке [0,k] она принимает всего k значений...


А что, разве такие бывают? Приведите пример хотя бы одной (отличной от константы).


А почему бы им не быть? Просто до них еще дело не дошло, надо с интегралом сначала разобраться... Ну а вообще это будет обычное частное двух полиномов с коеэффициентами, при чем коеэффициентов будет ~k, или больше. Вы наверное слышали про аппроксимацию Эрмита-Паде и про ее свойство хорошо приближать функции с разрывами? Вот, по задумке, поэтому и используется дробно-рациональная функция. График у нее будет что-то наподобие ступенек на отрезках [x, x+1], для целых x.

 Профиль  
                  
 
 
Сообщение30.01.2008, 00:46 


17/12/07
16
Хотя, вобще-то, понял юмор. Я имел ввиду: $k$ РАЗЛИЧНЫХ значений на промежутке [0,k]. А вообще значений у функции будет бесконечность. Но такую функцию, которая имеет ВСЕГО $k$ значений, думаю, тоже построить возможно.

 Профиль  
                  
 
 
Сообщение30.01.2008, 01:46 
Заслуженный участник


22/01/07
605
Может, имеет смысл привести исходную постановку задачи?
Скажем, если речь идет о суммировании значений какой-то гладкой функции от 0 до k, то для этого есть формула Эйлера (Эйлера-Маклорена), там как раз сумма заменяется на интеграл. Аппроксимация ступенчатой функции, а затем поиск приближенного значения интеграла всяко не будет быстрее. И параметров, чтобы получить сколько-нибудь приемлемую точность, надо будет брать гораздо больше k.

 Профиль  
                  
 
 
Сообщение30.01.2008, 04:21 
Экс-модератор
Аватара пользователя


30/11/06
1265
 !  Desich1024
Правила форума не допускают транслитерации. Исправьте, пожалуйста. Если у Вас проблемы с клавиатурой, Вы всегда можете использовать, например, translit.ru.

 Профиль  
                  
 
 
Сообщение30.01.2008, 07:32 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Так ничего и не понял.

Что такое аппроксимация Эрмита-Паде, я не знаю. Зато знаю другое. Если $P(x)$ и $Q(x)$ --- полиномы (с действительными коэффициентами), то на отрезке $[0,k]$ (отрезок действительной прямой, $k > 0$) функция $f(x) = P(x)/Q(x)$ будет либо равна константе (в случае, если $P(x) = cQ(x)$), либо принимать бесконечно много значений. Разрывы она может иметь только в точках, являющихся корнями полинома $Q(x)$, причём каждый такой разрыв будет либо устранимым, либо разрывом второго рода (с вертикальной асимптотой).

Может быть имелось в виду, что та функция, которую аппроксимируют полиномами, является ступенчатой и принимает всего $k$ значений на отрезке $[0,k]$ (число $k$, надо полагать, целое)?

 Профиль  
                  
 
 
Сообщение31.01.2008, 00:38 


17/12/07
16
Gafield писал(а):
Может, имеет смысл привести исходную постановку задачи?... Аппроксимация ступенчатой функции, а затем поиск приближенного значения интеграла всяко не будет быстрее.

Дело в том, что в подинтегральном выражении содержится, скажем, некий параметр $a$, который менят свое значение в процессе функционирования алгоритма, а вот сам интеграл, в общем-то не меняется (если не считать параметр $a$). При этом интеграл достаточно вычислить один раз, а затем, уже в оптимизированном выражении, менять значение параметра. При этом все затраты на аппроксимацию и т.п. становятся незначительными, по сравнению с тем, если бы мы вычисляли сумму (интеграл) каждый раз. Вот, собственно, и вся задача.

Gafield писал(а):
Скажем, если речь идет о суммировании значений какой-то гладкой функции от 0 до k, то для этого есть формула Эйлера (Эйлера-Маклорена), там как раз сумма заменяется на интеграл.

Ага, и вправду есть =) Это Вы прямо таки в точку попали! Нашел эту формулу, кажется как раз то что надо! =) Там правда много производных, но это все должно в итоге окупиться я думаю. До того как написать в форум, пытался найти что-то вроде "нахождение целочисленного интеграла", но безуспешно. Хотя интеграл в этой формуле также присутствует, задачу теперь можно упростить. Частное полиномов можно заменить на "просто" полином. Даже может быть, в таком случае, решение с разложением в ряд, будет допустимо.

Gafield писал(а):
И параметров, чтобы получить сколько-нибудь приемлемую точность, надо будет брать гораздо больше k.

В новой постановке задачи k параметров уже достаточно, что меня очень радует =) Т.е. теперь интеграл выглядит вот так:
$$\int_0^k sin(P_n(x))dx$$
где P(x) - полином степени n

В реальной задаче он может быть несколько сложнее =) но если такой решить не удастся, дальше можно тоже не мучаться =)

Добавлено спустя 27 минут 27 секунд:

Профессор Снэйп писал(а):
Если $P(x)$ и $Q(x)$ --- полиномы (с действительными коэффициентами), то на отрезке $[0,k]$ (отрезок действительной прямой, $k > 0$) функция $f(x) = P(x)/Q(x)$ будет либо равна константе (в случае, если $P(x) = cQ(x)$), либо принимать бесконечно много значений. Разрывы она может иметь только в точках, являющихся корнями полинома $Q(x)$, причём каждый такой разрыв будет либо устранимым, либо разрывом второго рода (с вертикальной асимптотой).

Ну я о таких разрывах и говорил, я же в следующем сообщении пояснил что всего значений - бесконечность, а вот различных значений, в общем случае, k. Т.е. представте себе ступеньчатую функцию, у которой длина всех ступенек - единица. На интервале [0,k] у нее будет k ступенек, соответственно k различных значений, и разрывы будут типа "сдвиг", т.е. насколько я помню, устранимые 1 рода.
Вот, а по поводу неустранимых разрывов, кажется, видел аппроксимацию также, дробно-рациональной функцией типа "Полином/Полином", но в любом случае надобность в этом уже отпала, достаточно одного полинома для рассматриваемой (в этом топике) задачи.

 Профиль  
                  
 
 
Сообщение31.01.2008, 02:14 
Заслуженный участник


22/01/07
605
Хмм... исходной постановки так и нет. Если порядок многочлена равен двум, то вычисляется в специальных функциях. Если больше, то не знаю, но в общем случае вряд ли. Опять же, делая предположения, из предыдущего поста вроде следует, что надо приблизить некоторую функцию, зависящую от параметра, чтобы найти некоторое аналитическое приближение интеграла от ее синуса, причем, опять же, видимо, функция гладкая. А сама задача касается все же ряда. Какая должна быть точность, насколько велико может быть значение $k$, фиксировано оно или хочется аналитической зависимости и от него тоже и т.п., остается только гадать. Чтобы приблизить даже очень хорошую функцию, вроде косинуса, полиномом на отрезке [0,k] для большого k, надо опять же значительно больше коэффициентов, чем k. Если это затем раскладывать в ряд, то получится очень много операций. Это только для приближения синуса, а есть еще погрешность, связанная с остаточным членом в формуле Эйлера. Опять же, каков характер завиимости от $a$? Даже в случае аналитической зависимости функции от $x$ и $a$ без каких-то дополнительных предположений получить хорошеее приближение в аналитическом виде нереально. Это вопрос сложности описания или количества информации. Надеяться решить задачу в таком общем случае - это вроде того, что взяв файлы в 1Мb, надеяться сжимать их архиватором до 1Kb, чтобы было удобнее. Другое дело, что в каком-то конкретном случае, который реально требуется, может, в принципе, существует способ считать эту сумму от параметра проще, чем каждый раз в лоб. Но без точной постановки задачи это бессмысленно обсуждать.

 Профиль  
                  
 
 
Сообщение31.01.2008, 03:18 


17/12/07
16
Gafield писал(а):
Но без точной постановки задачи это бессмысленно обсуждать.

OK. Попробую описать поточнее. Тут, впринципе все примитивно довольно таки. Возьму самый простой вариант. Есть функция $f(x) = sin(a*x)$, где $a$ - параметр, $x$ - переменная. Есть $k$ различных значений, которые принимает переменная $x$. Надо вычислить сумму значений $f(x)$ в этих $k$ различных точках сначала при a1, потом при a2 и т.д. При чем, a2 мы узнаем только когда вычислим сумму $f(x)$ при a1. Число $k$ фиксировано с самого начала и не меняется, точно также как и значения $x$. Предлагается аппроксимировать все $k$ значений переменной $x$ полиномом степени $k$ на равномерной сетке от 0 до k, а затем заменить переменную $x$ некоторой функцией, т.е. полиномом получается, и найти интеграл, т.к. в такой постановке все новые $x$ будут с фиксированным шагом изменяться и возможно применить интеграл для вычисления суммы. Теоретически, после нахождения аналитически интеграла, возможно отдельно выделить параметр $a$, все остальное выражение, включая операции с коеэффициентами полинома и что там еще будет - посчитать и запомнить.
$k$ может быть довольно большим от, скажем 100, до 10000. Как вариант, можно взять вместо полинома тригонометрический ряд.
Возможно, я что-то упустил, скажите что уточнить.

 Профиль  
                  
 
 
Сообщение31.01.2008, 18:35 
Заслуженный участник


22/01/07
605
С этого стоило начинать :)
Фактически переменная здесь получается $a$. Числа $x_i$ - параметры. В каких пределах меняются $x_i$ и $a$? Известно ли еще что-либо про них? Какова требуемая точность?

 Профиль  
                  
 
 
Сообщение31.01.2008, 21:01 


17/12/07
16
Gafield писал(а):
С этого стоило начинать :)

Ну, по моему замыслу, все равно задача упирается в интеграл, поэтому не видел смысла описывать в таком виде.

Gafield писал(а):
Фактически переменная здесь получается $a$. Числа $x_i$ - параметры.

Как бы да, если рассматривать задачу с точки зрения всех итераций $a_1... a_n$, но если рассматривать каждую итерацию в отдельности (заглянуть внутрь одной итерации), то все-таки $x$.

Gafield писал(а):
В каких пределах меняются $x_i$ и $a$? Известно ли еще что-либо про них? Какова требуемая точность?

Исходные $x_i$ заранее нормализуются так как нам удобнее, например на отрезке [-3.14, 3.14]. Затем аппроксимируем многочленом.
$a$ может быть любым, но известно, что $|a_{n+1}-a_n| <= b$. $b$ может экспоненциально возрастать или убывать в процессе работы алгоритма. Но лучше его не рассматривать пока. Вроде больше ничего не известно.
Точность должна стремиться к варианту как если бы мы вычисляли изначальную сумму.

 Профиль  
                  
 
 
Сообщение31.01.2008, 23:30 
Заслуженный участник


22/01/07
605
При таких допущениях думаю, что упростить вычисление вряд ли получится. Дело в том, что сама задача сложная в том смысле, что имеется много параметров, т.е. надо учесть много информации. Даже при 10^2 слагаемых график суммы синусов на промежутке порядка нескольких сотен выглядит как какая-то случайная функция. И эту сложность просто переформулировкой не убрать, она присуща самой задаче. Скажем, при замене $x_i$ на многочлен порядка 10^4, получится интеграл от быстро осцилирующей функции на интервале [0,10^4] и существование простого ответа для него совсем не очевидно. Кроме того, в остаточном члене будут производные от многочлена в точке $x=10^4$. Получить результат с большой точностью таким образом невозможно.
В качестве примера, когда наоборот можно получить простое описание, рассмотрим ту же задачу, но при дополнительных условиях,что $x_i\in [-1,1]$ и требуется найти $a$ на отрезка [-1,1]. Разложение по формуле Тейлора даст ответ с требуемой точностью. Получается, что достаточно найти где-то десять моментов $m_j=\sum_i x_i^{2j+1}$, $j=0,1,...$. Итого: при малых $a$ можно достаточно точно описать решение, используя только несколько чисел $m_j$ (их можно найти заранее), а не сами $x_i$. То есть, количество информации, нужной для описания, невелико. Для произвольных $a$ результат существенно зависит от всех коэффициентов по отдельности, и придумать для сложной суммы другое выражение, дающее результат с той же точностью, вряд ли удастся.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



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

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


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

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