1 | initial version |
Mmmh, I've found another way that might work in some situations: use the exponential of the matrix:
$$e^M=\sum_{k\geq 0} \frac{1}{k!}M^k$$
then use derivatives to recover the powers of the matrix:
$$\left(\frac{\partial}{\partial k} \right)^k e^M = M^k$$
For example:
sage: B = matrix(SR, 2, [1,2,3,4])
... var('t')
... f = exp(t*B)[1,1]
sage: print n(f.derivative(t,4)(t=0))
634.000000000000
sage: print n((B^4)[1,1])
634.000000000000
In order words, the function f = exp(t*B)[1,1] has as derivatives the coeffient [1,1] of M^k. Maybe that works for you. This could be useful in combination with LazyPowerSeries, as seen in the sage book in french.
2 | exposition is more clear |
Mmmh, I've found another way that might work in some situations: use the exponential of the matrix:
$$e^M=\sum_{k\geq 0} \frac{1}{k!}M^k$$
then use derivatives to recover the powers of the matrix:
$$\left(\frac{\partial}{\partial k} \right)^k e^M = M^k$$
For example:
sage: B = matrix(SR, 2, [1,2,3,4])
... var('t')
... f = exp(t*B)[1,1]
sage: print n(f.derivative(t,4)(t=0))
634.000000000000
sage: print n((B^4)[1,1])
634.000000000000
In order words, the k-th order derivative of the function f = exp(t*B)[1,1] has as derivatives is $\frac{1}{k!}$ of the coeffient [1,1] coefficient of M^k. Maybe that works for you. solves your problem. This could be useful in combination with LazyPowerSeries, as seen in the sage book in french.
3 | errata |
Mmmh, I've found another way that might work in some situations: use the exponential of the matrix:
$$e^M=\sum_{k\geq 0} \frac{1}{k!}M^k$$
then use derivatives to recover the powers of the matrix:
$$\left(\frac{\partial}{\partial k} \right)^k e^M = M^k$$
For example:
sage: B = matrix(SR, 2, [1,2,3,4])
... var('t')
... f = exp(t*B)[1,1]
sage: print n(f.derivative(t,4)(t=0))
634.000000000000
sage: print n((B^4)[1,1])
634.000000000000
In order words, the k-th order derivative of the function f = exp(t*B)[1,1] at zero is $\frac{1}{k!}$ of the [1,1] coefficient of M^k. B^k. Maybe that solves your problem. This could be useful in combination with LazyPowerSeries, as seen in the sage book in french.
4 | idea with fourier transform |
Mmmh, I've found another way that might work in some situations: use the exponential of the matrix:
$$e^M=\sum_{k\geq 0} \frac{1}{k!}M^k$$
then use derivatives to recover the powers of the matrix:
$$\left(\frac{\partial}{\partial k} \right)^k e^M = M^k$$
For example:
sage: B = matrix(SR, 2, [1,2,3,4])
... var('t')
... f = exp(t*B)[1,1]
sage: print n(f.derivative(t,4)(t=0))
634.000000000000
sage: print n((B^4)[1,1])
634.000000000000
In order words, the k-th order derivative of the function f = exp(t*B)[1,1] at zero is the [1,1] coefficient of B^k. Maybe that solves your problem.
This could be useful in combination with LazyPowerSeries, as seen in the sage book in french.
Once you've got the function $f = (e^M)_{ij}$, you could get the function k -> k-th order derivative of $f$ = (i,j) entry of $M^k$ by Fourier transform, product with $\psi^k$, and inverse Fourier transform. But those integrals may be non-trivial...
5 | No.5 Revision |
Mmmh, I've found another way that might work in some situations: use the exponential of the matrix:
$$e^M=\sum_{k\geq 0} \frac{1}{k!}M^k$$
then use derivatives to recover the powers of the matrix:
$$\left(\frac{\partial}{\partial k} \right)^k e^M = M^k$$
For example:
sage: B = matrix(SR, 2, [1,2,3,4])
... var('t')
... f = exp(t*B)[1,1]
sage: print n(f.derivative(t,4)(t=0))
634.000000000000
sage: print n((B^4)[1,1])
634.000000000000
In order words, the k-th order derivative of the function f = exp(t*B)[1,1] at zero is the [1,1] coefficient of B^k. Maybe that solves your problem.
This could be useful in combination with LazyPowerSeries, as seen in the sage book in french.
Once you've got the function $f = (e^M)_{ij}$, you could get the function k -> k-th [k-th order derivative of $f$ $f$] = (i,j) [(i,j) entry of $M^k$ $M^k$] by Fourier transform, product with $\psi^k$, and inverse Fourier transform. But those integrals may be non-trivial...