Derivada numérica de una matriz en función de una matriz de Rotación

quiero derivar una matriz A escribir una matriz de rotación numéricamente.

La matriz de rotación de la que estoy hablando es R i S O ( 3 ) y proviene de una elección de secuencia de ángulos de Euler ( 1 , 2 , 3 ) . Los ángulos involucrados son los llamados ángulos de balanceo-cabeceo-guiñada. ϕ i , θ i , ψ i (o ángulos cardánicos o ángulos de Tait-Bryan).

Por lo tanto:

R i ( ϕ i , θ i , ψ i ) = R i = R X ( ϕ i ) R y ( θ i ) R z ( ψ i ) ( 1 )

Si tuviera que derivar la matriz A escribir numéricamente un escalar α Yo lo haría:

A ( α ) A ( α + d ) d ( 2 )

En cambio, en mi caso, estaba pensando en hacerlo, ya que puedo escribir una matriz de rotación como R ( ω , β ) = mi X pag ( ω ^ β ) (dónde ω ^ es la matriz asimétrica asociada al vector ω R 3 ):

A ( R i ) A ( R i mi X pag ( mi i d ) ) d i { 1 , 2 , 3 } ( 3 )

con mi 1 = ( 1 0 0 ) , mi 2 = ( 0 1 0 ) , mi 3 = ( 0 0 1 )

no estoy seguro de ( 3 ) es correcto y no estoy seguro de que su denominador sea correcto.

¿Me podría ayudar?

Muchas gracias.

Respuestas (2)

Si tiene una secuencia de rotaciones sobre los ejes locales z 1 , z 2 y z 3 con ángulos q 1 , q 2 y q 3 entonces tienes las siguientes propiedades

R = R o t ( z 1 , q 1 ) R o t ( z 2 , q 2 ) R o t ( z 3 , q 3 ) R ˙ = [ ω × ] R ω = z 1 q ˙ 1 + R o t ( z 1 , q 1 ) ( z 2 q ˙ 2 + R o t ( z 2 , q 2 ) z 3 q ˙ 3 )

Nota la [ ω × ] La notación es la matriz de operadores de productos cruzados antisimétricos 3x3.

[ ( X y z ) × ] = [ 0 z y z 0 X y X 0 ]

Puede probar fácilmente lo anterior con dos rotaciones si acepta las reglas sobre cómo diferenciar vectores que se desplazan sobre marcos giratorios: (busque la derivada del marco giratorio). Ampliarlo a tres rotaciones es más tedioso, pero siguiendo la misma lógica.

R ˙ = R ˙ 1 R 2 R 3 + R 1 R ˙ 2 R 3 + R 1 R 2 R ˙ 3

Hola gracias por la respuesta que es interesante pero no es lo que estaba buscando. Aquí pedí explícitamente un método numérico para hacer una derivada de una matriz que es una función de una matriz de rotación que es algo diferente de lo que estás proponiendo. Me está dando una forma de calcular la derivada analítica de una matriz de rotación.
Solo puedo hablar de métodos analíticos (para eso me entrené), así que me disculpo si esta respuesta no fue útil para usted. Espero que consigas lo que pides.

El gradiente que buscas es un tensor de cuarto orden , F , que satisface

d A i j = F i j k yo d R k yo
Desde d R tiene 9 elementos independientes, para calcular necesitarás 9 derivadas numéricas
A ( R + h mi k yo ) A ( R ) h
dónde mi k yo es la matriz que tiene el ( k , yo ) elemento igual a la unidad, y todos los demás elementos iguales a cero. El h El parámetro debe elegirse para equilibrar el error de redondeo con la precisión. Para IEEE doble precisión es alrededor 10 8

Actualizar

Aquí hay una versión explícita de la técnica propuesta.

F i j k yo = A i j ( R + h mi k yo ) A i j ( R ) h

Hola, muchas gracias por tu respuesta, pero necesito entenderlo un poco mejor. Qué es d R k yo ¿para ti? y ¿cómo se puede definir el F i j k yo ? gracias por tu tiempo
@minidiable He actualizado mi respuesta con notación de índice explícita.