Gafield писал(а):
Может, имеет смысл привести исходную постановку задачи?... Аппроксимация ступенчатой функции, а затем поиск приближенного значения интеграла всяко не будет быстрее.
Дело в том, что в подинтегральном выражении содержится, скажем, некий параметр
, который менят свое значение в процессе функционирования алгоритма, а вот сам интеграл, в общем-то не меняется (если не считать параметр
). При этом интеграл достаточно вычислить один раз, а затем, уже в оптимизированном выражении, менять значение параметра. При этом все затраты на аппроксимацию и т.п. становятся незначительными, по сравнению с тем, если бы мы вычисляли сумму (интеграл) каждый раз. Вот, собственно, и вся задача.
Gafield писал(а):
Скажем, если речь идет о суммировании значений какой-то гладкой функции от 0 до k, то для этого есть формула Эйлера (Эйлера-Маклорена), там как раз сумма заменяется на интеграл.
Ага, и вправду есть =) Это Вы прямо таки в точку попали! Нашел эту формулу, кажется как раз то что надо! =) Там правда много производных, но это все должно в итоге окупиться я думаю. До того как написать в форум, пытался найти что-то вроде "нахождение целочисленного интеграла", но безуспешно. Хотя интеграл в этой формуле также присутствует, задачу теперь можно упростить. Частное полиномов можно заменить на "просто" полином. Даже может быть, в таком случае, решение с разложением в ряд, будет допустимо.
Gafield писал(а):
И параметров, чтобы получить сколько-нибудь приемлемую точность, надо будет брать гораздо больше k.
В новой постановке задачи k параметров уже достаточно, что меня очень радует =) Т.е. теперь интеграл выглядит вот так:
где P(x) - полином степени n
В реальной задаче он может быть несколько сложнее =) но если такой решить не удастся, дальше можно тоже не мучаться =)
Добавлено спустя 27 минут 27 секунд:Профессор Снэйп писал(а):
Если
и
--- полиномы (с действительными коэффициентами), то на отрезке
(отрезок действительной прямой,
) функция
будет либо равна константе (в случае, если
), либо принимать бесконечно много значений. Разрывы она может иметь только в точках, являющихся корнями полинома
, причём каждый такой разрыв будет либо устранимым, либо разрывом второго рода (с вертикальной асимптотой).
Ну я о таких разрывах и говорил, я же в следующем сообщении пояснил что всего значений - бесконечность, а вот различных значений, в общем случае, k. Т.е. представте себе ступеньчатую функцию, у которой длина всех ступенек - единица. На интервале [0,k] у нее будет k ступенек, соответственно k различных значений, и разрывы будут типа "сдвиг", т.е. насколько я помню, устранимые 1 рода.
Вот, а по поводу неустранимых разрывов, кажется, видел аппроксимацию также, дробно-рациональной функцией типа "Полином/Полином", но в любом случае надобность в этом уже отпала, достаточно одного полинома для рассматриваемой (в этом топике) задачи.