Mmmh, I've found another way that might work in some situations: use the exponential of the matrix:
eM=∑k≥01k!Mk
then use derivatives to recover the powers of the matrix:
(∂∂k)keM=Mk
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:
eM=∑k≥01k!Mk
then use derivatives to recover the powers of the matrix:
(∂∂k)keM=Mk
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 1k! 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:
eM=∑k≥01k!Mk
then use derivatives to recover the powers of the matrix:
(∂∂k)keM=Mk
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 1k! 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:
eM=∑k≥01k!Mk
then use derivatives to recover the powers of the matrix:
(∂∂k)keM=Mk
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=(eM)ij, you could get the function k -> k-th order derivative of f = (i,j) entry of Mk by Fourier transform, product with ψ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:
eM=∑k≥01k!Mk
then use derivatives to recover the powers of the matrix:
(∂∂k)keM=Mk
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=(eM)ij, you could get the function k -> k-th [k-th order derivative of f f] = (i,j) [(i,j) entry of Mk Mk] by Fourier transform, product with ψk, and inverse Fourier transform. But those integrals may be non-trivial...