Универсального алгоритма для конечных сумм и рядов произвольного вида, как я понимаю, нет.
Это так странно, учитывая, что для неопределенных интегралов
он существует.
Между прочим, хорошая мысль! Действительно, почему бы не попробовать свести одну задачу к другой. Пусть у нас есть бесконечный ряд
![$\sum\limits_{k=0}^{\infty}f(k)$ $\sum\limits_{k=0}^{\infty}f(k)$](https://dxdy-01.korotkov.co.uk/f/8/d/4/8d4745635caca703e0d99024571c7d0682.png)
, в общем случае не обязательно сходящийся. Требуется найти замкнутую формулу для суммы
![$\sum\limits_{k=0}^{n-1}f(k)$ $\sum\limits_{k=0}^{n-1}f(k)$](https://dxdy-02.korotkov.co.uk/f/9/f/b/9fbe782d796cedf9f5a5493ea4310d5c82.png)
.
Обозначим
![$g(n)=\sum\limits_{k=0}^{n-1}f(k)$ $g(n)=\sum\limits_{k=0}^{n-1}f(k)$](https://dxdy-01.korotkov.co.uk/f/8/3/e/83ec0bca0ab9384f55a54fb732ef901382.png)
. Здесь
![$g(n)$ $g(n)$](https://dxdy-04.korotkov.co.uk/f/f/0/1/f010a0fda7cdcc04209d9381ef5fca2782.png)
можно назвать
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
-й частичной суммой ряда. Почему именно
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
-й? Потому что в данную сумму входит ровно
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
первых членов ряда. Я знаю, в большинстве случаев принято искать общую формулу вот для такой суммы:
![$\sum\limits_{k=0}^{n}f(k)$ $\sum\limits_{k=0}^{n}f(k)$](https://dxdy-04.korotkov.co.uk/f/b/c/1/bc14e70981498c56db3166d74e3f6bee82.png)
, в которую входит
![$n+1$ $n+1$](https://dxdy-04.korotkov.co.uk/f/3/f/1/3f18d8f60c110e865571bba5ba67dcc682.png)
член, от
![$0$ $0$](https://dxdy-03.korotkov.co.uk/f/2/9/6/29632a9bf827ce0200454dd32fc3be8282.png)
до
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
. В некоторых случаях это действительно удобно, и о них мы поговорим позже. Но на самом деле это не принципиально: если найдена замкнутая формула для
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
членов, нетрудно по ней построить аналогичную формулу и для
![$n+1$ $n+1$](https://dxdy-04.korotkov.co.uk/f/3/f/1/3f18d8f60c110e865571bba5ba67dcc682.png)
членов. И наоборот.
Далее нужно обратить внимание на следующее: очевидно, что
![$g(n+1)-g(n)=f(n)$ $g(n+1)-g(n)=f(n)$](https://dxdy-02.korotkov.co.uk/f/d/3/7/d37e4d5776033a162300927fe1d449d982.png)
. Такое уравнение называется линейным неоднородным разностным уравнением первого порядка. Про такие уравнения известно, что в "однородном" случае (когда правая часть нулевая) они решаются легко и просто. Потому что существует метод их решения. Про неоднородные же уравнения можно сказать, что общее решение неоднородного уравнения получается как сумма общего решения однородного уравнения и какого-либо частного решения неоднородного уравнения. Однако же общих способов определения частного решения не существует (или не известно)! И это понятно: если бы они существовали, существовал бы и алгоритм по свертыванию частичных сумм в замкнутые формулы, типа того, который существует для интегралов. Тем не менее, для некоторых специальных видов функции в правой части уравнения существуют стандартные приемы решения этого уравнения. Например, всем известный телескопический ряд
![$f(k)=1/(k+1)/(k+2)$ $f(k)=1/(k+1)/(k+2)$](https://dxdy-04.korotkov.co.uk/f/7/a/9/7a9bc5ce06cc63f2022c812d21ba8ff982.png)
, который легко "раскладывается" на две "половины":
![$f(k)=1/(k+1)-1/(k+2)$ $f(k)=1/(k+1)-1/(k+2)$](https://dxdy-03.korotkov.co.uk/f/2/0/d/20d980f0e0ff8929297fe09c55b3973482.png)
. Здесь сразу же очевидно, что
![$g(n)=-1/(n+1)$ $g(n)=-1/(n+1)$](https://dxdy-03.korotkov.co.uk/f/6/0/5/605e6eb7e6eabd55c33d75b251c76d1c82.png)
. Т.е. решение сразу готово.
Кстати, глядя на разностное уравнение
![$g(n+1)-g(n)=f(n)$ $g(n+1)-g(n)=f(n)$](https://dxdy-02.korotkov.co.uk/f/d/3/7/d37e4d5776033a162300927fe1d449d982.png)
можно подумать, что функция
![$g(n)$ $g(n)$](https://dxdy-04.korotkov.co.uk/f/f/0/1/f010a0fda7cdcc04209d9381ef5fca2782.png)
может быть найдена с точностью до константы. Т.е. если
![$g(n)$ $g(n)$](https://dxdy-04.korotkov.co.uk/f/f/0/1/f010a0fda7cdcc04209d9381ef5fca2782.png)
является решением уравнения, то и
![$g(n)+C$ $g(n)+C$](https://dxdy-02.korotkov.co.uk/f/1/f/7/1f722e1e74fb1b269660f1459ba5d30882.png)
также будет решением, где
![$C$ $C$](https://dxdy-02.korotkov.co.uk/f/9/b/3/9b325b9e31e85137d1de765f43c0f8bc82.png)
- некоторая константа. На самом деле, это не так! Ведь мы уже договорились, что
![$g(n)$ $g(n)$](https://dxdy-04.korotkov.co.uk/f/f/0/1/f010a0fda7cdcc04209d9381ef5fca2782.png)
означает сумму
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
первых членов ряда. В таком случае сумма нуля членов должна равняться нулю, т.е. должно быть верным
![$g(0)=0$ $g(0)=0$](https://dxdy-03.korotkov.co.uk/f/e/e/4/ee44e6df185411a4c73f4e1550f4d63782.png)
. Кажется, что не всегда это возможно, например, не в случае
![$g(n)=-1/(n+1)$ $g(n)=-1/(n+1)$](https://dxdy-03.korotkov.co.uk/f/6/0/5/605e6eb7e6eabd55c33d75b251c76d1c82.png)
. На самом деле, дело в том, что решение было найдено не верно! Правильное решение выглядит так:
![$g(n)=1-1/(n+1)=n/(n+1)$ $g(n)=1-1/(n+1)=n/(n+1)$](https://dxdy-01.korotkov.co.uk/f/0/8/1/081b4c3e647d06c4c6323aa14aee38a282.png)
.
Ок, если общих методов не существует, значит, остается только перебрать все возможные типы специальных функций и посмотреть, к какому из них относится наша функция. Затем применить к ней соответствующий прием и записать решение. Либо констатировать, что решения нет (в элементарных функциях), если ни к какому не относится. Наверняка, автоматизированные сервисы именно так и работают. Быть может, однако, здесь можно придумать что-то еще...
![$$$$***$$$$ $$$$***$$$$](https://dxdy-02.korotkov.co.uk/f/d/0/d/d0debde2e2118afc6fc1a29e6e29baec82.png)
1)
Преобразование ФурьеНайдем преобразование Фурье для обеих частей нашего разностного уравнения!
Применяя преобразование, получим
![$F($\omega$)=e^{i\omega}G($\omega$)-G($\omega$)$ $F($\omega$)=e^{i\omega}G($\omega$)-G($\omega$)$](https://dxdy-02.korotkov.co.uk/f/d/0/9/d092539333d303040bfffd00efd6ba2382.png)
.
Здесь большими буквами обозначены фурье-образы для функций, обозначенных соответствующими маленькими буквами.
Решаем это уравнение и получаем
![$G($\omega$)=F($\omega$)/(e^{i\omega}-1)$ $G($\omega$)=F($\omega$)/(e^{i\omega}-1)$](https://dxdy-02.korotkov.co.uk/f/9/e/1/9e138a2a1bb05b50843d848c7dda151582.png)
.
Ну, и всё. Осталось сделать только обратное преобразование. Обратное преобразование - всегда некоторый интеграл. Если он выражается в элементарных функциях, значит, и функция
![$g(n)$ $g(n)$](https://dxdy-04.korotkov.co.uk/f/f/0/1/f010a0fda7cdcc04209d9381ef5fca2782.png)
тоже в них выражается. Главное только при решении интеграла не получить исходный ряд. Как говорится, в расследовании главное не выйти на самого себя :)
Можно также оставить этот интеграл, как есть, считая его самого "замкнутой формой".
На самом деле, основная проблема здесь заключается в том, что для большинства функций преобразование Фурье попросту не существует. Оно существует только для нескольких специальных видов функций.
Можно ли то же самое проделать с уравнением, применяя преобразование Лапласа? Здесь я бы уже не был так уверен. Дело в том, что преобразование Лапласа применяется к функциям, равным нулю в отрицательной области. Казалось бы, это не имеет особого значения, поскольку сам интеграл преобразования берется в промежутке от нуля до бесконечности, так что какая разница? Дело в том, однако, что функция
![$f(x+1)$ $f(x+1)$](https://dxdy-01.korotkov.co.uk/f/c/7/2/c72205132909cad9548e2a37e096ce2182.png)
получена сдвигом функции
![$f(x)$ $f(x)$](https://dxdy-04.korotkov.co.uk/f/7/9/9/7997339883ac20f551e7f35efff0a2b982.png)
на единицу влево. Значит, у нее появились ненулевые значения в отрицательной области. Если мы затем начнем ее интегрировать от нуля до бесконечности, не потеряем ли мы часть значений? Это ведь совсем не то же самое, что сдвинуть функцию
![$f(x)$ $f(x)$](https://dxdy-04.korotkov.co.uk/f/7/9/9/7997339883ac20f551e7f35efff0a2b982.png)
вправо. Потому что в этом случае ее значения на отрезке
![$[0;1]$ $[0;1]$](https://dxdy-03.korotkov.co.uk/f/2/1/a/21ad730ee7df0b97abd700cb0f8426e682.png)
станут равны нулю, и в этом случае действительно уже всё равно, от какого значения ее интегрировать: от 0 или от 1.
Короче, я бы в данном случае перестраховался и искал преобразование для какого-нибудь такого уравнения:
![$f(x)=\eta(x)-\eta(x-1)$ $f(x)=\eta(x)-\eta(x-1)$](https://dxdy-04.korotkov.co.uk/f/b/5/5/b5580eea417c55449072ac1540ab0b2d82.png)
. Затем, если решение будет найдено, тогда функцию
![$g(x)$ $g(x)$](https://dxdy-04.korotkov.co.uk/f/f/f/c/ffcbbb391bc04da2d07f7aef493d3e2a82.png)
можно было бы получить из тождества
![$g(x)=\eta(x-1)$ $g(x)=\eta(x-1)$](https://dxdy-03.korotkov.co.uk/f/2/f/c/2fc0e78419d013c33381e3d40fe28ab482.png)
.
![$$$$***$$$$ $$$$***$$$$](https://dxdy-02.korotkov.co.uk/f/d/0/d/d0debde2e2118afc6fc1a29e6e29baec82.png)
2)
Интегральное уравнениеМожно действовать и более прямолинейно. Представим, что в уравнении
![$g(n+1)-g(n)=f(n)$ $g(n+1)-g(n)=f(n)$](https://dxdy-02.korotkov.co.uk/f/d/3/7/d37e4d5776033a162300927fe1d449d982.png)
функция
![$g(n)$ $g(n)$](https://dxdy-04.korotkov.co.uk/f/f/0/1/f010a0fda7cdcc04209d9381ef5fca2782.png)
является первообразной для некоторой функции
![$h(n)$ $h(n)$](https://dxdy-04.korotkov.co.uk/f/7/2/b/72b322da8035af6f39a0a9b5134877a282.png)
. В таком случае уравнение можно переписать так:
![$\[f(x) = \int\limits_x^{x + 1} {h(t)dt} \]$ $\[f(x) = \int\limits_x^{x + 1} {h(t)dt} \]$](https://dxdy-01.korotkov.co.uk/f/4/a/0/4a06dc77a544dfb4eb2e9c4802f9e02082.png)
.
Получилось интегральное уравнение относительно неизвестной функции
![$h(x)$ $h(x)$](https://dxdy-01.korotkov.co.uk/f/8/2/b/82b61730744eb40135709391ec01cbdb82.png)
с известной функцией
![$f(x)$ $f(x)$](https://dxdy-04.korotkov.co.uk/f/7/9/9/7997339883ac20f551e7f35efff0a2b982.png)
. Понятно, что если решение этого уравнения существует в элементарных функциях, то... а хотя, нет. Если
![$h(x)$ $h(x)$](https://dxdy-01.korotkov.co.uk/f/8/2/b/82b61730744eb40135709391ec01cbdb82.png)
- элементарная функция, то ее первообразная - вовсе не обязательно. Тем не менее, ясно, что было бы полезно решить такое уравнение.
Для этого я перепишу уравнение так:
![$\[f(x) = \int\limits_0^\infty {K(x,t)h(t)dt} \]$ $\[f(x) = \int\limits_0^\infty {K(x,t)h(t)dt} \]$](https://dxdy-04.korotkov.co.uk/f/7/0/2/7021a5a2d67538a93212766e9e99ab7282.png)
Здесь функция
![$K(x,t)$ $K(x,t)$](https://dxdy-02.korotkov.co.uk/f/1/1/5/115fdeebb0a9a4a85cac3aeece3892c482.png)
равна единице, когда
![$\[x \le t \le x + 1\]$ $\[x \le t \le x + 1\]$](https://dxdy-03.korotkov.co.uk/f/a/0/7/a075ab5b88d84dc787f05459f1bb626c82.png)
, и нулю во всех остальных случаях.
Такая форма будет эквивалентной хотя бы для положительных значений
![$x$ $x$](https://dxdy-04.korotkov.co.uk/f/3/3/2/332cc365a4987aacce0ead01b8bdcc0b82.png)
, а только такие, на самом деле, нас и интересуют. Можно получить и общую форму, верную и для отрицательных значений
![$x$ $x$](https://dxdy-04.korotkov.co.uk/f/3/3/2/332cc365a4987aacce0ead01b8bdcc0b82.png)
. Для этого всего лишь нужно поменять нижний предел интеграла с нуля на минус бесконечность. Однако я все-таки остановлюсь на нуле, поскольку дальше этот интеграл будем рассматривать, как свертку двух функций, от которой можно взять преобразование Лапласа. А свертка для преобразования Лапласа формулируется именно в виде интеграла от 0 до бесконечности. Хотя, я не знаю, почему это именно так: на мой взгляд, если сформулировать ее от минус бесконечности до бесконечности, ошибки не произойдет - особенно если считать, что все функции равны нулю в отрицательной области (кроме, конечно,
![$K$ $K$](https://dxdy-02.korotkov.co.uk/f/d/6/3/d6328eaebbcd5c358f426dbea4bdbf7082.png)
). В случае с преобразованиями Фурье именно так и делают. Но да бог с ним: сформулирую, как принято, чтобы не отклоняться от правил и не наделать ошибок.
Полученное уравнение называют неоднородным уравнением Фредгольма первого рода, функция
![$K(x,t)$ $K(x,t)$](https://dxdy-02.korotkov.co.uk/f/1/1/5/115fdeebb0a9a4a85cac3aeece3892c482.png)
называется ядром этого уравнения. Полученное уравнение можно решить с помощью преобразования Лапласа, если удастся свести функцию
![$K(x,t)$ $K(x,t)$](https://dxdy-02.korotkov.co.uk/f/1/1/5/115fdeebb0a9a4a85cac3aeece3892c482.png)
к некоторой функции
![$q(x-t)$ $q(x-t)$](https://dxdy-04.korotkov.co.uk/f/f/9/c/f9cb83866013e420e07500884e09833f82.png)
одного аргумента, потому что в этом случае интеграл этого уравнения станет сверткой двух функций,
![$q(x)$ $q(x)$](https://dxdy-01.korotkov.co.uk/f/0/3/f/03fdf3c6a83ab1f3f304bbc20f6cdadf82.png)
и
![$h(x)$ $h(x)$](https://dxdy-01.korotkov.co.uk/f/8/2/b/82b61730744eb40135709391ec01cbdb82.png)
. А преобразование Лапласа от свертки равно произведению лаплас-образов каждой из двух функций
![$q(x)$ $q(x)$](https://dxdy-01.korotkov.co.uk/f/0/3/f/03fdf3c6a83ab1f3f304bbc20f6cdadf82.png)
и
![$h(x)$ $h(x)$](https://dxdy-01.korotkov.co.uk/f/8/2/b/82b61730744eb40135709391ec01cbdb82.png)
по отдельности. Поэтому именно это я дальше и попытаюсь сделать.
Функцию
![$K(x,t)$ $K(x,t)$](https://dxdy-02.korotkov.co.uk/f/1/1/5/115fdeebb0a9a4a85cac3aeece3892c482.png)
лучше всего будет представить в виде разности двух единичных ступенчатых функций – функций Хевисайда
![$\theta(x)$ $\theta(x)$](https://dxdy-04.korotkov.co.uk/f/3/a/b/3ab4ff1c70fe605f97558f9dbf4debbd82.png)
.
Во-первых, потому что нужна единая формула для
![$K$ $K$](https://dxdy-02.korotkov.co.uk/f/d/6/3/d6328eaebbcd5c358f426dbea4bdbf7082.png)
для всех возможных случаев (а не так, что здесь 1, там 0, и т.д.).
Во-вторых, потому что нужна функция одного аргумента, на место которого можно будет подставить
![$x-t$ $x-t$](https://dxdy-02.korotkov.co.uk/f/d/1/a/d1acd1fa85db4625d3a5462520bfb52482.png)
, чтобы получилась свертка.
В-третьих, потому что преобразование Лапласа хорошо берется от ступенчатой функции.
Итак,
![$\[K(x,t) = \theta (x + 1 - t) - \theta (x - t) = q(x - t)\]$ $\[K(x,t) = \theta (x + 1 - t) - \theta (x - t) = q(x - t)\]$](https://dxdy-02.korotkov.co.uk/f/d/9/9/d992cc2133969a79b81a86366481776a82.png)
, где
![$\[q(x) = \theta (x + 1) - \theta (x)\]$ $\[q(x) = \theta (x + 1) - \theta (x)\]$](https://dxdy-03.korotkov.co.uk/f/2/7/1/271cad58a63cd9951df77d0b96a182b882.png)
.
Тогда интегральное уравнение можно переписать так:
![$\[f(x) = \int\limits_0^\infty {q(x - t)h(t)dt} \]$ $\[f(x) = \int\limits_0^\infty {q(x - t)h(t)dt} \]$](https://dxdy-03.korotkov.co.uk/f/a/4/7/a47e5071a889a25dc588ad5bde12556e82.png)
.
Дальше, как можно догадаться, берем преобразование Лапласа от обеих частей уравнения.
Обозначим:
![$F(s)$ $F(s)$](https://dxdy-01.korotkov.co.uk/f/c/5/b/c5b9092ca2a1b0e178870eea4271114a82.png)
- образ функции
![$f(x)$ $f(x)$](https://dxdy-04.korotkov.co.uk/f/7/9/9/7997339883ac20f551e7f35efff0a2b982.png)
![$H(s)$ $H(s)$](https://dxdy-03.korotkov.co.uk/f/6/4/f/64f22e2ec56b8c1ddff891772b3cb16582.png)
- образ функции
![$h(x)$ $h(x)$](https://dxdy-01.korotkov.co.uk/f/8/2/b/82b61730744eb40135709391ec01cbdb82.png)
![$Q(s)$ $Q(s)$](https://dxdy-02.korotkov.co.uk/f/9/d/0/9d0cf1a9c41deaf9f08449c153cc363f82.png)
- образ функции
![$q(x)$ $q(x)$](https://dxdy-01.korotkov.co.uk/f/0/3/f/03fdf3c6a83ab1f3f304bbc20f6cdadf82.png)
При этом
![$\[Q(s) = {e^s}/s - 1/s = ({e^s} - 1)/s\]$ $\[Q(s) = {e^s}/s - 1/s = ({e^s} - 1)/s\]$](https://dxdy-04.korotkov.co.uk/f/b/5/f/b5f256a50517fd59036aeb0ea587b67082.png)
.
Тогда получаем уравнение
![$F(s)=Q(s)H(s)=H(s)\[({e^s} - 1)/s\]$ $F(s)=Q(s)H(s)=H(s)\[({e^s} - 1)/s\]$](https://dxdy-04.korotkov.co.uk/f/b/4/a/b4a414bf8c0da4bb4b987f79e687b09582.png)
, решая которое, получаем
![$\[H(s) = sF(s)/({e^s} - 1)\]$ $\[H(s) = sF(s)/({e^s} - 1)\]$](https://dxdy-01.korotkov.co.uk/f/8/d/d/8dd9d25e199fff133855f6c329f1826282.png)
.
На самом деле, этот же результат можно было получить намного короче, если вспомнить, что для случая, когда
![$g(x)$ $g(x)$](https://dxdy-04.korotkov.co.uk/f/f/f/c/ffcbbb391bc04da2d07f7aef493d3e2a82.png)
является первообразной для
![$h(x)$ $h(x)$](https://dxdy-01.korotkov.co.uk/f/8/2/b/82b61730744eb40135709391ec01cbdb82.png)
, верно
![$H(s)=sG(s)-g(0)=sG(s)$ $H(s)=sG(s)-g(0)=sG(s)$](https://dxdy-03.korotkov.co.uk/f/6/8/9/689f69c21a88a957811f5cf6e813048782.png)
. А получать
![$G(s)$ $G(s)$](https://dxdy-02.korotkov.co.uk/f/1/6/d/16d83d6852a95a90cc382ca9075847b782.png)
мы уже умеем - это было описано в предыдущем пункте.
Самое интересное - что теперь со всем этим делать. Оригинал для
![$F(s)$ $F(s)$](https://dxdy-01.korotkov.co.uk/f/c/5/b/c5b9092ca2a1b0e178870eea4271114a82.png)
нам известен - это
![$f(x)$ $f(x)$](https://dxdy-04.korotkov.co.uk/f/7/9/9/7997339883ac20f551e7f35efff0a2b982.png)
. Остается получить оригинал для
![$\[s/({e^s} - 1)\]$ $\[s/({e^s} - 1)\]$](https://dxdy-03.korotkov.co.uk/f/2/d/5/2d57ce71981f6325403407574b8bbaa082.png)
, составить свертку для этих двух функций - это и будет "замкнутая форма" для
![$h(x)$ $h(x)$](https://dxdy-01.korotkov.co.uk/f/8/2/b/82b61730744eb40135709391ec01cbdb82.png)
. Проблема в том, что оригинал для
![$\[s/({e^s} - 1)\]$ $\[s/({e^s} - 1)\]$](https://dxdy-03.korotkov.co.uk/f/2/d/5/2d57ce71981f6325403407574b8bbaa082.png)
(как и для
![$\[1/({e^s} - 1)\]$ $\[1/({e^s} - 1)\]$](https://dxdy-01.korotkov.co.uk/f/c/5/d/c5df0fb2bc258d25cbc05d838c4d681c82.png)
) не существует в элементарных функциях. Для
![$\[1/({e^s} - 1)\]$ $\[1/({e^s} - 1)\]$](https://dxdy-01.korotkov.co.uk/f/c/5/d/c5df0fb2bc258d25cbc05d838c4d681c82.png)
это будет, скорее всего, бесконечная сумма дельта-функций Дирака с разной степенью сдвига. Для
![$\[s/({e^s} - 1)\]$ $\[s/({e^s} - 1)\]$](https://dxdy-03.korotkov.co.uk/f/2/d/5/2d57ce71981f6325403407574b8bbaa082.png)
- что-нибудь и того хуже.
Но я предлагаю не заморачиваться слишком сильно, а сразу брать свою функцию
![$f(x)$ $f(x)$](https://dxdy-04.korotkov.co.uk/f/7/9/9/7997339883ac20f551e7f35efff0a2b982.png)
и идти с ней куда-нибудь на сервис
www.wolframalpha.com. Там применить к ней преобразование Лапласа (Laplace transform). Если получилось что-то осмысленное, умножить на
![$\[s/({e^s} - 1)\]$ $\[s/({e^s} - 1)\]$](https://dxdy-03.korotkov.co.uk/f/2/d/5/2d57ce71981f6325403407574b8bbaa082.png)
или на
![$\[1/({e^s} - 1)\]$ $\[1/({e^s} - 1)\]$](https://dxdy-01.korotkov.co.uk/f/c/5/d/c5df0fb2bc258d25cbc05d838c4d681c82.png)
, а затем применить обратное преобразование Лапласа (inverse Laplace transform). Если опять получился результат в элементарных функциях, значит, метод сработал.
![$$$$***$$$$ $$$$***$$$$](https://dxdy-02.korotkov.co.uk/f/d/0/d/d0debde2e2118afc6fc1a29e6e29baec82.png)
3)
Метод операторовУравнение
![$g(n+1)-g(n)=f(n)$ $g(n+1)-g(n)=f(n)$](https://dxdy-02.korotkov.co.uk/f/d/3/7/d37e4d5776033a162300927fe1d449d982.png)
можно переписать в виде
![$\[\Delta g(n) = f(n)\]$ $\[\Delta g(n) = f(n)\]$](https://dxdy-04.korotkov.co.uk/f/7/0/3/70318ffbe42f7673f0a2eb03ac4acbc882.png)
. Здесь
![$\Delta$ $\Delta$](https://dxdy-04.korotkov.co.uk/f/7/e/9/7e9fe18dc67705c858c077c5ee292ab482.png)
- оператор, означающий взятие от функции ее первой конечной разности:
![$\[\Delta f(n) = f(n + 1) - f(n)\]$ $\[\Delta f(n) = f(n + 1) - f(n)\]$](https://dxdy-04.korotkov.co.uk/f/f/0/9/f092b8d62b8495d0ea87d439118fc28282.png)
. Этот оператор можно представить в виде
![$\[\Delta = E - 1\]$ $\[\Delta = E - 1\]$](https://dxdy-04.korotkov.co.uk/f/f/5/8/f58c1b4f9fadcc4c9c00fcc49fe1b3ea82.png)
, где
![$E$ $E$](https://dxdy-01.korotkov.co.uk/f/8/4/d/84df98c65d88c6adf15d4645ffa25e4782.png)
- оператор сдвига (т.е. такой, что
![$Ef(x)=f(x+1)$ $Ef(x)=f(x+1)$](https://dxdy-01.korotkov.co.uk/f/c/d/b/cdbc2f4a35bee34f74178bffeeccef1982.png)
),
![$1$ $1$](https://dxdy-01.korotkov.co.uk/f/0/3/4/034d0a6be0424bffe9a6e7ac9236c0f582.png)
- тождественный оператор, т.е. такой, что ставит функцию в соответствие самой себе:
![$1f(x)=f(x)$ $1f(x)=f(x)$](https://dxdy-01.korotkov.co.uk/f/c/a/c/cac80fc222c065a88a30f29ac8512fe382.png)
.
Тогда наше уравнение принимает вид
![$(E-1)g(n)=f(n)$ $(E-1)g(n)=f(n)$](https://dxdy-04.korotkov.co.uk/f/7/8/f/78fc1a7b06dcefac8bd2baf5498fb90682.png)
. Решая его, получаем:
![$\[g(n) = f(n)/(E - 1) = - (1/(1 - E))f(n) = - (1 + E + {E^2} + {E^3} + ...)f(n) = - \sum\limits_{k = 0}^\infty {f(n + k)} \]$ $\[g(n) = f(n)/(E - 1) = - (1/(1 - E))f(n) = - (1 + E + {E^2} + {E^3} + ...)f(n) = - \sum\limits_{k = 0}^\infty {f(n + k)} \]$](https://dxdy-01.korotkov.co.uk/f/0/e/3/0e3697f3bc6d8be34f24545d9d98598782.png)
Получился совершенно точный, но при этом абсолютно бесполезный результат.
Подробнее об элементарной теории операторов можно почитать в книжке Грэхема и Кнута "Конкретная математика" (глава 5: специальные приемы).
![$$$$***$$$$ $$$$***$$$$](https://dxdy-02.korotkov.co.uk/f/d/0/d/d0debde2e2118afc6fc1a29e6e29baec82.png)
4)
Производящая функция
z-преобразованиеЭтот метод, пожалуй, единственный позволяет получить какие-то конкретные результаты на практике.
Пусть есть последовательность
![${a_k}$ ${a_k}$](https://dxdy-03.korotkov.co.uk/f/a/4/6/a4676315b6c3be6aec28ddf03caf797f82.png)
, где
![$k=1,2,3,...$ $k=1,2,3,...$](https://dxdy-01.korotkov.co.uk/f/8/3/9/8392f93fcd6d96e04946b29b712f209082.png)
.
Производящей функцией такой последовательности называется функция
![$A(x)$ $A(x)$](https://dxdy-01.korotkov.co.uk/f/4/4/4/44464d5df0694c6ba968e633ffaf880682.png)
такая, что
![$\[A(x) = \sum\limits_{k = 0}^\infty {{a_k}{x^k}} \]$ $\[A(x) = \sum\limits_{k = 0}^\infty {{a_k}{x^k}} \]$](https://dxdy-01.korotkov.co.uk/f/0/7/a/07a3142141a3fc1390e9e87c3b16b02a82.png)
.
При этом сама последовательность
![${a_k}$ ${a_k}$](https://dxdy-03.korotkov.co.uk/f/a/4/6/a4676315b6c3be6aec28ddf03caf797f82.png)
может быть задана какой-нибудь функцией
![$f$ $f$](https://dxdy-02.korotkov.co.uk/f/1/9/0/190083ef7a1625fbc75f243cffb9c96d82.png)
:
![$a_k=f(k)$ $a_k=f(k)$](https://dxdy-01.korotkov.co.uk/f/0/7/1/07183b62acfa8744100398a93dc6111582.png)
.
Метод начинается с того, что надо как-то получить замкнутую форму для функции
![$A(x)$ $A(x)$](https://dxdy-01.korotkov.co.uk/f/4/4/4/44464d5df0694c6ba968e633ffaf880682.png)
. И здесь даже не надо строить иллюзий: никаких общих методов это сделать нет! Возможно, эта задача даже сложнее, чем получить замкнутую формулу для частичной суммы. За исключением некоторых случаев, например, для последовательности
![${1/k!}$ ${1/k!}$](https://dxdy-03.korotkov.co.uk/f/a/c/c/acc43eb10de7c6e31d454fd54386361282.png)
получить замкнутую формулу в элементарных функциях в принципе невозможно (сейчас это будет доказано), тогда как производящей функцией этой последовательности является самая обычная экспонента.
Собственно, я даже догадываюсь, с чем связано это затруднение. Получение производящей функции по последовательности - это задача, обратная задаче разложения функции в ряд Тейлора. А обратные задачи в большинстве случаев решаются почему-то труднее прямых. Сравнить, например, интегрирование с дифференцированием. Существует общий метод получить производную ЛЮБОЙ элементарной функции. И даже иногда, если она не элементарная. Однако интеграл от элементарной функции - не всегда элементарная функция.
Кстати, не один я так считаю. Например, Иванов Б. Н. в своей книге "Дискретная математика. Алгоритмы и программы", в
главе 3 пишет, что как правило, поиск производящей функции по определению прямыми методами является сложной задачей. Однако заметим, что сама последовательность может быть восстановлена по производящей функции (т.е. обратная задача решается хорошо - мое прим.).
Ничего удивительного, кстати говоря. Как только функция A(x) получена, мы сразу же можем вычислить сумму бесконечного ряда, просто подставив x=1 в A(x) (конечно, если функция A(x) существует в этой точке). Однако в общем случае вычисление бесконечных рядов - задача нетривиальная.
Метод производящей функции, однако, обладает той интересной особенностью, что нет необходимости следить за сходимостью полученного ряда, поскольку символ
![$x$ $x$](https://dxdy-04.korotkov.co.uk/f/3/3/2/332cc365a4987aacce0ead01b8bdcc0b82.png)
в разложении не означает какого-то числа, которое можно было бы подставить на его место. Это просто формальный символ. И тем не менее, метод позволяет получать какие-то содержательные результаты, верность которых затем можно проверять, например, по индукции. Однако прежде чем проверить какой-то результат, его требуется откуда-то получить. Вот это и есть такой метод.
Короче, начинаем с того, что замкнутая форма для
![$A(x)$ $A(x)$](https://dxdy-01.korotkov.co.uk/f/4/4/4/44464d5df0694c6ba968e633ffaf880682.png)
у нас откуда-то уже имеется, на этом не останавливаемся. Тогда коэффициент при
![$x^n$ $x^n$](https://dxdy-03.korotkov.co.uk/f/e/f/4/ef4740140c8741b5abffcf442f79c1c782.png)
в разложении функции
![$A(x)/(1-x)$ $A(x)/(1-x)$](https://dxdy-01.korotkov.co.uk/f/8/c/7/8c7a91e046d50ce21c2c7943ea57edec82.png)
в ряд Тейлора будет равен
![$\[\sum\limits_{k = 0}^n {{a_k}} \]$ $\[\sum\limits_{k = 0}^n {{a_k}} \]$](https://dxdy-04.korotkov.co.uk/f/7/c/9/7c9c61270a013931ffa6db7cdd7cfe9a82.png)
. Вот здесь как раз возникает случай, когда суммируется
![$n+1$ $n+1$](https://dxdy-04.korotkov.co.uk/f/3/f/1/3f18d8f60c110e865571bba5ba67dcc682.png)
членов ряда, от
![$0$ $0$](https://dxdy-03.korotkov.co.uk/f/2/9/6/29632a9bf827ce0200454dd32fc3be8282.png)
до
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
.
На доказательстве этого факта я не останавливаюсь. Можно воспользоваться
методом производящего ряда, где для рекуррентной формулы получают соответствующее уравнение в производящих функциях. Получится уравнение, похожее на уравнение для фурье-образов из первого пункта, типа такого:
![$B(x)=xB(x)+A(x)$ $B(x)=xB(x)+A(x)$](https://dxdy-03.korotkov.co.uk/f/a/d/9/ad94166423ca5fd287e9956eaaf46a8182.png)
. Можно использовать свертку двух последовательностей, одну из которых задать, как {
![$1,1,1,...$ $1,1,1,...$](https://dxdy-02.korotkov.co.uk/f/9/4/8/9487374fc618ae348b07dcf95a4de45482.png)
}. Про свертку последовательностей можно почитать в википедии, в статье "Производящая функция последовательности". Само доказательство есть в книге Грэхема и Кнута "Конкретная математика", в главе 7 "Производящие функции". В разделе "Основные маневры" говорится, что "умножение производящей функции на
![$1/(1-z)$ $1/(1-z)$](https://dxdy-04.korotkov.co.uk/f/f/1/d/f1d2d98657d009c02768c3d5b4514d6082.png)
дает производящую функцию для последовательности частичных сумм исходной посдедовательности". При этом под частичной суммой, очевидно, у них понимается сумма
![$n+1$ $n+1$](https://dxdy-04.korotkov.co.uk/f/3/f/1/3f18d8f60c110e865571bba5ba67dcc682.png)
начальных членов.
Короче, вся соль теперь в том, как найти замкнутую форму для коэффициента при
![$x^n$ $x^n$](https://dxdy-03.korotkov.co.uk/f/e/f/4/ef4740140c8741b5abffcf442f79c1c782.png)
в разложении
![$A(x)/(1-x)$ $A(x)/(1-x)$](https://dxdy-01.korotkov.co.uk/f/8/c/7/8c7a91e046d50ce21c2c7943ea57edec82.png)
в ряд Тейлора. В этом может помочь
z-преобразование.
По определению, z-преобразование последовательности функций {
![f(k) f(k)](https://dxdy-01.korotkov.co.uk/f/8/1/e/81e5382b144a7899c134e7dbfca94c2982.png)
}, это функция
![$F(z)$ $F(z)$](https://dxdy-03.korotkov.co.uk/f/a/0/7/a077e8a1e7851032868f2b0535f5b4f782.png)
такая, что
![$F(z)=A(1/z)$ $F(z)=A(1/z)$](https://dxdy-01.korotkov.co.uk/f/8/4/7/847a30a32d140d919fdab25f7f4695e782.png)
. z-преобразование существует не для всех видов функций, а только для тех, что растут не быстрее экспоненты, но не суть.
Таким образом, очевидно, что z-преобразование применяется не к одной конкретной функции, а сразу ко всей последовательности. При этом смысл этого преобразования в том, что по функции
![$F(z)$ $F(z)$](https://dxdy-03.korotkov.co.uk/f/a/0/7/a077e8a1e7851032868f2b0535f5b4f782.png)
можно получить произвольный член последовательности {
![f(k) f(k)](https://dxdy-01.korotkov.co.uk/f/8/1/e/81e5382b144a7899c134e7dbfca94c2982.png)
} по формуле
![$$\[f(k) = \frac{1}{{2\pi i}}\oint\limits_C {F(z){z^{k - 1}}dz} \]$$ $$\[f(k) = \frac{1}{{2\pi i}}\oint\limits_C {F(z){z^{k - 1}}dz} \]$$](https://dxdy-03.korotkov.co.uk/f/2/3/e/23eb940ba2fef5c8d60f4b94f774c5c282.png)
. Интеграл берется по любому замкнутому контуру, включающему все особые точки
![$F(z)$ $F(z)$](https://dxdy-03.korotkov.co.uk/f/a/0/7/a077e8a1e7851032868f2b0535f5b4f782.png)
. Спрашивается, зачем нужна функция
![$f(k)$ $f(k)$](https://dxdy-04.korotkov.co.uk/f/f/6/6/f660653b05ee1d473f7ec62585ab093782.png)
, если она и так уже имеется по условию? Ни зачем она не нужна! Нужен член последовательности частичных сумм. А это значит, что надо найти z-преобразование вот для такой производящей функции:
![$A(x)/(1-x)$ $A(x)/(1-x)$](https://dxdy-01.korotkov.co.uk/f/8/c/7/8c7a91e046d50ce21c2c7943ea57edec82.png)
. А затем применить к нему обратное z-преобразование.
Как видно, поиск частичной суммы ряда опять свелся к некоторому интегралу, пусть и комплексному. Но это не так уж и страшно, как сейчас станет ясно.
Обозначим {
![$b_k$ $b_k$](https://dxdy-01.korotkov.co.uk/f/c/1/a/c1a30f400620a0b6da57046c4b40e16b82.png)
} последовательность частичных сумм исходной последовательности {
![$a_k$ $a_k$](https://dxdy-01.korotkov.co.uk/f/8/8/8/888b6c2a06fc366952ac84a80c43f5f782.png)
}. Здесь
![$b_k=g(k)$ $b_k=g(k)$](https://dxdy-03.korotkov.co.uk/f/6/4/5/645698a04323bf834c0ec0f216a5e79d82.png)
, где
![$g(k)=f(0)+...+f(n)$ $g(k)=f(0)+...+f(n)$](https://dxdy-03.korotkov.co.uk/f/2/1/2/212c32c7dfe0f8a4fb67d2ea7f9c7bed82.png)
. Как видно, здесь придется отойти от первоначального определения функции
![$g(n)$ $g(n)$](https://dxdy-04.korotkov.co.uk/f/f/0/1/f010a0fda7cdcc04209d9381ef5fca2782.png)
, как суммы
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
первых членов рядов, и складывать уже
![$n+1$ $n+1$](https://dxdy-04.korotkov.co.uk/f/3/f/1/3f18d8f60c110e865571bba5ba67dcc682.png)
начальный член.
Производящей функцией последовательности {
![$b_k$ $b_k$](https://dxdy-01.korotkov.co.uk/f/c/1/a/c1a30f400620a0b6da57046c4b40e16b82.png)
} обозначим
![$B(x)$ $B(x)$](https://dxdy-03.korotkov.co.uk/f/2/d/b/2db4600926e163031bddf4b03c0bd8ad82.png)
, где
![$B(x)=A(x)/(1-x)$ $B(x)=A(x)/(1-x)$](https://dxdy-02.korotkov.co.uk/f/9/6/5/965f2a38ae3d114c4eb87f59fd49ed6682.png)
. Ну а z-преобразование для
![$B(x)$ $B(x)$](https://dxdy-03.korotkov.co.uk/f/2/d/b/2db4600926e163031bddf4b03c0bd8ad82.png)
обозначим, как
![$G(z)=B(1/z)$ $G(z)=B(1/z)$](https://dxdy-03.korotkov.co.uk/f/6/1/b/61bfa07eb014db4c05438a40f3f2afa982.png)
.
Тогда
![$\[G(z) = B(1/z) = \frac{{A(1/z)}}{{1 - 1/z}} = \frac{{F(z)}}{{1 - 1/z}} = \frac{{zF(z)}}{{z - 1}}\]$ $\[G(z) = B(1/z) = \frac{{A(1/z)}}{{1 - 1/z}} = \frac{{F(z)}}{{1 - 1/z}} = \frac{{zF(z)}}{{z - 1}}\]$](https://dxdy-04.korotkov.co.uk/f/3/c/8/3c8dea15be2d0f3e674d0fa384bc6d5f82.png)
,
откуда получаем
![$$\[g(k) = \frac{1}{{2\pi i}}\oint\limits_C {G(z){z^{k - 1}}dz} = \frac{1}{{2\pi i}}\oint\limits_C {\frac{{zF(z)}}{{z - 1}}{z^{k - 1}}dz} = \frac{1}{{2\pi i}}\oint\limits_C {\frac{{{z^k}F(z)}}{{z - 1}}dz} \]$$ $$\[g(k) = \frac{1}{{2\pi i}}\oint\limits_C {G(z){z^{k - 1}}dz} = \frac{1}{{2\pi i}}\oint\limits_C {\frac{{zF(z)}}{{z - 1}}{z^{k - 1}}dz} = \frac{1}{{2\pi i}}\oint\limits_C {\frac{{{z^k}F(z)}}{{z - 1}}dz} \]$$](https://dxdy-04.korotkov.co.uk/f/7/d/a/7daa0768b73a61940541d831c8a1ef0282.png)
.
Рассмотрим какой-нибудь пример.