Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Производные от суперпозиции функций.

Автор Марбол, февраля 9, 2012, 08:22

0 Пользователи и 1 гость просматривают эту тему.

Марбол

Здравствуйте!

В Википедии, в статье о полиномах Белла, я "нашёл" следующие сведения:

ЦитироватьДля последовательностей [tex]x_n[/tex], [tex]y_n[/tex], [tex]n[/tex] = 1, 2, ..., определён вид свёртки:

    [tex](x \diamondsuit y)_n = \sum_{j=1}^{n-1} {n \choose j} x_j y_{n-j}[/tex].

Заметим, что пределы суммирования 1 и n − 1, не 0 и n .

Положим, что [tex]x_n^{k\diamondsuit}[/tex] есть n-ый член последовательности

    [tex]\displaystyle\underbrace{x\diamondsuit\cdots\diamondsuit x}_{k\ \mathrm{factors}}.\,[/tex]

Тогда

    [tex]B_{n,k}(x_1,\dots,x_{n-k+1}) = {x_{n}^{k\diamondsuit} \over k!}.\,[/tex]

Например, вычислим [tex]B_{4,3}(x_1,x_2)[/tex]. Мы имеем

    [tex]x = ( x_1 \ , \ x_2 \ , \ x_3 \ , \ x_4 \ , \dots )[/tex]

    [tex]x \diamondsuit x = ( 0,\ 2 x_1^2 \ ,\ 6 x_1 x_2 \ , \ 8 x_1 x_3 + 6 x_2^2 \ , \dots )[/tex]

    [tex]x \diamondsuit x \diamondsuit x = ( 0 \ ,\ 0 \ , \ 6 x_1^3 \ , \ 36 x_1^2 x_2 \ , \dots )[/tex]

и таким образом,

    [tex]B_{4,3}(x_1,x_2) = \frac{ ( x \diamondsuit x \diamondsuit x)_4 }{3!} = 6 x_1^2 x_2[/tex].
Можно заметить, что
[tex](x \diamondsuit y) = (y \diamondsuit x)[/tex]
[tex](x \diamondsuit x) = x^{2\diamondsuit}[/tex]
[tex]((x \diamondsuit y) \diamondsuit z) = (z \diamondsuit (x \diamondsuit y))[/tex]
[tex]((x \diamondsuit x) \diamondsuit x) = (x \diamondsuit (x \diamondsuit x)) = x \diamondsuit x \diamondsuit x = x^{3\diamondsuit} = (x^{2\diamondsuit} \diamondsuit x)[/tex]
Поэтому для нахождения [tex]x^{k\diamondsuit}[/tex] достаточно уметь вычислить [tex]x^{2\diamondsuit}[/tex], а затем k-1-кратно применять это умение к [tex]x[/tex] в случаях k > 2. Так я получу полиномы Белла.

Марбол

Если обобщить всю информацию, то получается следующая формула:

[tex]{d^n \over dx^n} f(g(x)) = \sum_{k=1}^n {f^{(k)}(g(x)) (\diamondsuit_{j=1}^{k} G)_n\over k!}[/tex]

где

[tex]G = (g^{(1)}(x),  \dots , g^{(n)}(x))[/tex]

[tex]\diamondsuit_{j=1}^{1} G = G[/tex]

[tex]\diamondsuit_{j=1}^{2} G = G \diamondsuit G[/tex]

[tex]\diamondsuit_{j=1}^{N} G = G^{N\diamondsuit} = ((G^{N\diamondsuit})_1, \dots, (G^{N\diamondsuit})_N)[/tex]

[tex]\diamondsuit_{j=1}^{N+1} G = (\diamondsuit_{j=1}^{N} G) \diamondsuit G[/tex]

[tex](\diamondsuit_{j=1}^{2} G)_n = (G \diamondsuit G)_n = \sum_{i=1}^{n-1} {n \choose i} g^{(i)} g^{(n-i)}[/tex]

Марбол

Интересно, сколько времени займёт такой расчёт. Условно я считаю, что и сложение и умножение двух чисел занимают единичный отрезок времени. Я обозначу это условное время так: T(x+y) = T(x-y) = 1, T(x*y) = T(x/y) = 1 при T(x) = 0, T(y) = 0.
Тогда время вычисления производной заданного порядка равно:
[tex]T({d^n f(g(x)) \over dx^n})=T(\sum_{k=1}^n{f^{(k)} \over k!} G_{n}^{k\diamondsuit}) = T(\sum_{k=1}^n) \cdot[T(G_{n}^{k\diamondsuit})+T(x \cdot y) + T(k!)+T({x \over y})][/tex]
В частности, по составляющим,
[tex]T(\sum_{k=1}^n) = n[/tex]
[tex]T(k!) = k-2[/tex]
[tex]T(x \cdot y) + T({x \over y}) = 1+1 =2[/tex]

Вычисление свёртки степени [tex]k[/tex] равносильно вычислению свертки степени 2, подряд [tex]k-2[/tex] раз, с последующим однократным вычислением n-го члена свёртки степени 2:

[tex]T(G_n^{k\diamondsuit}) = T((G_n^{k-1\diamondsuit}\diamondsuit G)_n)=T(G^{2\diamondsuit}) \cdot (k-2)+T((x \diamondsuit y)_n)[/tex]

В частности,

[tex]T(G_n^{2\diamondsuit}) = T(\sum_{j=1}^{n-1} {n \choose j} g^{(i)} g^{(n-i)})[/tex]

[tex]T({n \choose i} g^{(i)} g^{(n-i)}) = T({n \choose i}) +T(g^{(i)} g^{(n-i)}) + T(x \cdot y) = T({n \choose i})+2[/tex]

[tex]T({n \choose i}) = T({n! \over i!}) + T((n-i)!) +T({x \over y}) = (n-i-1) +(n-i-2) +1=2n-2i-2[/tex]

[tex]T({n \choose i} g^{(i)} g^{(n-i)}) = 2n-2i=2(n-i)[/tex]

Поэтому, в целом,

[tex]T(G_n^{2\diamondsuit}) = \sum_{j=1}^{n-1} 2(n-i) = 2 \sum_{j=1}^{n-1} (n-i) =2(1+ 2 +\dots +n-1)=2{(n-1)(n-1+1) \over 2}=n(n-1)[/tex]

Для вычисления всей последовательности [tex]G^{2\diamondsuit}[/tex] нужно времени

[tex]T(G^{2\diamondsuit})=\sum_{k=1}^n n(n-1),[/tex] примерно  [tex]{n^3\over 3}[/tex]

... Допишу потом.

Марбол

Здравствуйте!

Допустим, имеем аналитическую функцию h(x). Она может быть выражена через две другие аналитические функции f(x) и g(x) в виде их суммы: h(x) = f(x) + g(x), - произведения: h(x) = f(x)g(x) - или суперпозиции: h(x) = f(g(x)). Допустим, что обе эти функции имеют производные всех порядков и что мы знаем значения этих производных в заданной точке x0. Тогда мы можем выразить производную h(n)(x0) = dnh(x)/dxn|x0 данной функции через комбинации производных f(i)(x0) = dif/dxi|x0 и g(j)(x0) = djg/dxj|x0, по соответствующим выражениям. Здесь i, j = 0, 1, 2, ..., n. В свою очередь, функции f(x) и g(x) также могут быть разложены на другие аналитические функции. При этом имеет смысл указать набор элементарных функций, задать для них формулы производных всех порядков и через них выражать все остальные, интересующие нас функции. Что я и сделал.

Марбол

Здравствуйте!

Цитата: Марбол от февраля 18, 2012, 10:18
комбинации производных f(i)(x0) = dif/dxi|x0 и g(j)(x0) = djg/dxj|x0
Правильно:
комбинации производных f(i)(g(x0)) = dif/dgi|x0 и g(j)(x0) = djg/dxj|x0

Марбол

Здравствуйте!

В одном немаловажном случае, когда заданная функция имеет вид

[tex]h(x)=f(x)^{g(x)},[/tex]

неприложимы три указанных представления: в виде суммы, произведения или суперпозиции двух функций [tex]f(x)[/tex] и [tex]g(x)[/tex]. В таком случае, данная функция должна быть преобразована к виду

[tex]p(q(x))=e^{q(x)},[/tex]

где

[tex]q(x)=g(x)\cdot ln f(x).[/tex]

Марбол

Цитата: Марбол от февраля 15, 2012, 21:05
Интересно, сколько времени займёт такой расчёт.

По моим выкладкам дальше получилось, что время вычисления производной [tex]n[/tex]-го порядка от суперпозиции двух функций занимает время, пропорциональное [tex]n^5[/tex], но на практике это ограничение для моих нужд не играет роли.

arseniiv

Цитата: Марбол от марта 19, 2012, 19:55
неприложимы три указанных представления: в виде суммы, произведения или суперпозиции двух функций [tex]f(x)[/tex] и [tex]g(x)[/tex]
Лучше, мне думается, использовать суперпозицию трёх функций: этих и (x, y) ↦ xy. Или частные производные вы пока не хотели бы включать?

Марбол

Здравствуйте!

Цитата: arseniiv от марта 22, 2012, 15:05
Или частные производные вы пока не хотели бы включать?
Частные производные, конечно, потом понадобятся, но пока у меня недостает времени на продолжение и даже применение этого метода.

Марбол

Здравствуйте!

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



Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр