Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Polar Decomposition

Marcias_Martinez1
1,146 Views
Hi
Can anyone help in determining the function call in IMKL 10.1 (using C and Visual Studio 2008) to do a polar decomposition of a deformation gradient matrix F that is 3 by 3.
I need to determine the rotation matrix such that F = RU
If anyone knows please advice,
Thanks
Marcias
0 Kudos
1 Reply
mecej4
Honored Contributor III
1,146 Views
Given the SVD (singular value decomposition)

A = W S V*

you can obtain the left polar decomposition

A = U P

using

P = V S V*

U = W V*

Similarly, you can obtain the right polar decomposition (which is what you sought)

A = P U

using

P = W S W*

and

U = W V*

as before. Please note that the factors P in the left and right polar decompositions are different.

MKL/Lapack provides routines to perform the SVD. You may consider the intended application of the polar decomposition to see if you can use P and U in factorized form instead of forming them explicitly. In particular, if you are going to multiply some vector by P or U, you can accomplish that with two or three matrix-vector multiplications, avoiding the more costly matrix-matrix multiplications that are involved in explicitly forming P and U.
0 Kudos
Reply