5
$\begingroup$

In the latest version of Mathematica, D can compute derivatives of symbolic order, that is, the $n^{\text{th}}$ (partial) derivative, returning an expression containing $ n $, without the need to specify the value of $ n $.

My question is, does there exist any way to expand the functionality a little further to compute something like $ (\partial_x-1)^n f(x) $?

My present attempt is to consider it as a composition of the same operation $ n $ times:

Nest[D[#, x] - # &, f[x], n]

But in this way one has to set the value of $ n $ first, which is not what I want.


Update

For the information of those interested, the first five results are given by

TableForm[Table[{StringTemplate["n = ``"][i], Nest[D[#, x] - # &, f[x], i]}, {i, 5}], TableAlignments -> Right]

enter image description here

Yes they are summation of binomials. But my point is how to get an expression with an un-value-set $ n $.

Additionally, as I mentioned in the comment, e.g., $ f(x)=x^m \mathrm e^{-x} $, I hope to verify an identity of LaguerreL:

enter image description here

$\endgroup$
  • $\begingroup$ What would you get then? Certainly nothing better than Sum[Binomial[k, n] (-1)^(n - k) D[f[x], {x, k}], {k, 0, n}] unless you specify f. But something like $(\partial_x-g(x))^n f(x)$ would be definitely more interesting. $\endgroup$ – Henrik Schumacher Aug 17 '18 at 9:36
  • 1
    $\begingroup$ @HenrikSchumacher I assume that in this case the $1$ was the Identity operator. $\endgroup$ – rhermans Aug 17 '18 at 9:41
  • $\begingroup$ @HenrikSchumacher say, $ f(x)=x^m \mathrm e^{-x} $. $\endgroup$ – Αλέξανδρος Ζεγγ Aug 17 '18 at 9:50
4
$\begingroup$

Consider the operator:

op = Exp[x] D[Exp[-x] #, x]&;

Operating on a function $f(x)$ gives:

Simplify[op @ f[x]]

-f[x] + f'[x]

which is the desired shift operation. Clearly, nesting the above operation yields:

op @* op -> (Exp[x] D[Exp[-x] #, {x, 2}]&)
op @* op @* op -> (Exp[x] D[Exp[-x] #, {x,3}]&)

and so on. So, we can define a shift operator with:

shiftD[expr_, {x_, shift_, n_}] := Simplify @ Replace[
    Exp[shift x] D[Exp[-shift x] expr, {x, n}],
    Exp[shift x] Inactive[Sum][e_, iter_] :> Sum[Exp[shift x] e, iter]
]

Example:

r = shiftD[f[x], {x, 1, n}];
r //TeXForm

$\sum _{K(1)=0}^n (-1)^{K(1)} \binom{n}{K(1)} \frac{\partial ^{n-K(1)}f(x)}{\partial x^{n-K(1)}}$

Compare to explicit values for n:

r1 = NestList[D[#, x] - #&, f[x], 3]
r2 = Table[r, {n, 0, 3}]

r1 === r2

{f[x], -f[x] + f'[x], f[x] - 2 f'[x] + f''[x], -f[x] + 3 f'[x] - 3 f''[x] + f'''[x]}

{f[x], -f[x] + f'[x], f[x] - 2 f'[x] + f''[x], -f[x] + 3 f'[x] - 3 f''[x] + f'''[x]}

True

One can generalize this to arbitrary shifts:

shiftD[expr_, {x_, shift_, n_}] := With[{int = Integrate[shift, x]},
    Simplify @ Replace[
        Exp[int] D[Exp[-int] expr, {x, n}],
        Exp[int] Inactive[Sum][e_, iter_] :> Sum[Exp[int] e, iter]
    ]
]

For example:

r = shiftD[f[x], {x, x, n}];
r //TeXForm

$\sum _{K(1)=0}^n \sqrt{\pi } e^{\frac{x^2}{2}} 2^{K(1)} x^{-K(1)} \binom{n}{K(1)} \frac{\partial ^{n-K(1)}f(x)}{\partial x^{n-K(1)}} \, _2\tilde{F}_2\left(\frac{1}{2},1;\frac{1}{2} (-K(1)-1)+1,1-\frac{K(1)}{2};-\frac{x^2}{2}\right)$

Compare:

r1 = Simplify @ NestList[D[#, x] - # x&, f[x], 3]
r2 = Table[r, {n, 0, 3}]

r1 === r2

{f[x], -x f[x] + f'[x], (-1 + x^2) f[x] - 2 x f'[x] + f''[x], -x (-3 + x^2) f[x] + 3 (-1 + x^2) f'[x] - 3 x f''[x] + f'''[x]}

{f[x], -x f[x] + f'[x], (-1 + x^2) f[x] - 2 x f'[x] + f''[x], -x (-3 + x^2) f[x] + 3 (-1 + x^2) f'[x] - 3 x f''[x] + f'''[x]}

True

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.