![]() Registered Member ![]()
|
Hi board
Im working for few month on C++ software for camshaft profil reading machine All is quite working fine but i need help to process on matrix initialization. I need a specific form of matrix which each row increase power +1 and each column too. See the image of it below ![]() I really dont know how to proceed on Eigen... Anyone can help me ? It's little bit looks like vandermonde matrix but quite different i cant find if it exists any name for that |
![]() Registered Member ![]()
|
This type is what's called a symmetric square anti-Toeplitz matrix, we'll denote A.
It's what you get when you multiply a symmetric square Toeplitz matrix, T. by a reversal matrix, R (an anti-diagonal of 1s, from the "top right" to "bottom left"). So A = TR = RT. If you're working with small systems and don't need to optimize the use of your matrix, it's fine to stop here. Just write code that's easy to read and understand. In general, initialization costs are one time and can't be measured in larger applications, so they don't need to be optimized. But optimized storage of this type improves data locality, and circulant matrices have efficient actions and inverse actions (multiplication by A and (A^-1)), which has a big performance impact. If you need more details for an optimized approach, just ask in this thread. But prefer a simple one if you don't need optimization. With the related Toeplitz matrix, in dense format, it's generated by "shifting" a series of power sums, 0 to 2n. It's a good catch that the column-sums of some Vandermonde matrix is a series of power sums, 0 to some m. But I don't think this is useful for your application. |
Registered users: bartoloni, Bing [Bot], Google [Bot], Yahoo [Bot]