Esta página está en construcción: perdonen los errores, repeticiones y temas inacabados.
 
This page is being developed: I am sorry for errors, duplications  and unfinished subjects.
 
 
Proyecto Danzante. Derivadas vectoriales. JCISER (incluido en Danzante)
 
En esta optimización nos encontramos con derivadas vectoriales en un campo escalar, descrito en detalle en Funciones a minimizar. Naturaleza.JCISER.
 
Las derivadas son dos vectores:

 Λ =  { δ/ δ p*i ( Σi,j ε Sa   ( || pi* -  pj*  ||   - Li,j ) 2  )  }         o sea        Λ =  {  δ/ δ p*i M)

bp =  - { δ/ δ p*i Σ wiA || pi* -  pi || 2 + wiB || pi*  -  (Rqi + t ) || 2 }       o sea       bp =  { -   δ/ δ p*i  Σj0 )

y una matriz diagonal

H ,        con   hi = δ2/ δ (p*i)2 ( wiA|| pi* -  pi || 2 + wiB|| pi* -  (Rqi + t ) || 2 )     o sea   hi =  δ2/ δ p*i2  j0i  

todos ellos componentes de matrices en los operadores 

  ▼J2 (X) d          y        ▼J (X)    

es decir el gradiente y el gradiente del gradiente de una función con 20 variables vectoriales, los 20 puntos en el espacio 3D de un esqueleto, y una variable más, numérica, λ .
 
Vamos a ver el número, naturaleza y dimensiones de estas derivadas
 
En general los vectores anteriores tienen la disposición  ( vector fila, como veremos):
 
 {    δ Σ/ δ p*0    δ Σ/ δ p*1    .    .     .       δ Σ/ δ p*19   }
 
en la que derivamos una cantidad Σ  numero real que es el valor escalar en ese punto respecto al que derivamos.
 
El punto en un punto en el espacio con tres dimensiones.
 
 δ Σ/ δ p i    es por definición    ( Σ pi +Δ pi - Σ pi  ) / Δ pi         y    Δ pi  es un vector 3D que desplaza p en una cierta dirección.
 
Ahora buen , el cociente nos depara algún problema de interpretación. En realidad esta derivada corresponde, engloba a 3, una por cada coordenada incrementada:
 
 δ Σ/ δ p i    es por definición    { ( Σ pix + Δ pix - Σ pix  ) / Δ pix  ,    ( Σ piy + Δ piy - Σ piy  ) / Δ piy  ,   ( Σ piz + Δ piz - Σ piz  ) / Δ piz  }
 
y ahora tenemos ya sólo variables numéricas: se trata de una campo escalar en el espacio 3d, con 60 componentes por las que derivar, y 60 derivadas, por lo tanto. Como cada punto podemos expresarlo como una suma vectorial de sus componentes (cambiamos i, indice de articulacion, por art, debido al nuevo uso del vector unitario i en el espacio):  (corr)
 
Δ part  =  Δ part x  i +  Δ part y  j  + Δ pix   part z  k         y su derivada parcial  
Δ part  =  Δ part x  i +  Δ part y  j  + Δ pix   part z  k
 
O sea,
Δ f = (  δ f/ δ x  )Δ x +  (  δ f/ δ y  ) Δ y +  (  δ f/ δ z  ) .  Δ z
 
es decir, el vector colunna  Δ f  es igual a la matriz Grad f   por el vector columna . Δ r  
 
El incremento de una función al incrementar su variable vectorial, es igual a la suma de los incrementos
de cada coordenada multiplicados por la derivada parcial de esa función respecto a esa coordenada.  
 
Y, en coordenadas curvilíneas, es decir, referidas a elementos de una curva, sin referencia exterior, se expresa como
 
Δ f  = grad f   . Δ r  
 
Por la tanto
 
el grad es una matriz de giro y escalado en el espacio 3D,
que lleva o transforma el vector incremento de la variable al vector incremento de la función.
 
Las derivadas que aparecen aquí lo son de un sumatorio. Eso quiere decir que hay que hallar la diferencia de dos sumatorios y luego dividir por el incremento. Esto es importante para recordar y aplicar, porque en ocasiones ( función bp , derivada de J0), cada componente del vector depende sólo de una articulación, con lo que la derivada de la suma puede tratarse (porque ofrece el mismo resultado, claro) como la suma de las derivadas de cada sumando:
 
    δ ΣJ0i/ δ p i     =   Σ  δ J0i / δ p i   
 
Pero en cuanto a Λ , derivada de M, no podemos decir lo mismo porque cada componente corresponde a un hueso que afecta en general a su vez a varias articulaciones:  a una, su anterior, las terminales: 3,7,11,15,19. A dos las intermedias: 4,5,6, 8,9,10, 12,13,14, 16,17,18, a tres el centro cadera, la 0; a 4 el centro de hombros, la 2. La 0 no tiene componente, porque el primer hueso es el 1.
 
    δ ΣM i/ δ p i     ≠   Σ  δ M i / δ p i   
 
De modo que el proceso será, en general: 1. Incrementar la variable. 2. Hallar el nuevo valor de la función sumatorio. 3. Hallar el incremento de la función (diferencia entre los valores incrementados y original). 4. Dividir el incremento de la función por el incremento de la variable.
 
 
Traemos de Optimizacion.JCISER.htm las consideraciones iniciales sobre estas derivadas.
 
Derivadas
Podemos derivar a lo bruto (incrementos de función divididos por incremento de variable) o analíticamente, aplicando las leyes de la derivada de funciones compuestas:    f '=df(x)/dx;    df2(x)/dx=2ff ';  d2f (x)/dx2 =2f f ''+2 f '2
9. Así que cuando tenemos derivadas de sumas, debemos sumar y luego derivar, y no invertir ese orden, porque una variación de una pi* pudiera afectar a más de un sumando (por ejemplo, la variación de una única articulación afectará a las longitudes de uno, dos o tres huesos, como apuntábamos en 7.
9'. Sólo tras comprobar que un desplazamiento de un punto pi no afecta a los demás podemos intercambiar eo orden de estos símbolos: derivada de suma deviene suma de derivadas, de las que todas menos i son nulas (ya que no afectan, todas las articulaciones son independientes).
10. Derivada segunda se escribe aquí como δ2/ δ p*i2   símbolo para  δ(  δ  / δ p*i )/ δ p*i      es decir, derivada de la derivada
11. Todas estas derivadas, primeras o segundas, corresponden al mismo incremento, ya que pertenecen a una misma iteración.
 
Campo Escalar
3. A diferencia del campo en la calibración., que era una distancia entre esqueletos de igual forma, esqueleto rígido podemos decir, en la optimización tenemos una función distancia compleja. entre esqueletos, pero no rígidos, porque cada articulación ha de sufrir una desplazamiento (vector en el espacio) diferente del de los demás, de modo que disminuya n las distancias al par de esqueletos que vamos a componer o sintetizar en el óptimo; y simultáneamente han de mantenerse las longitudes de los huesos obtenidas en la calibración, tomadas como valores verdaderas, lo que se ha de conseguir mediante la función J1.
4. El algoritmo de acercamiento por lo tanto será más complejo. En un lugar de un sólo ciclo de acercamiento, en la que cada etapa supone la variación de 3 elementos de giro global (de todo el esqueleto) independientes, lo que permite acercamientos individuales que pueden alternarse libremente e ir acumulándose en una matriz R, tal como se realiza en en la Calibración, en la Optimización contamos con una función a minimizar, J1, que debemos evaluar en cada etapa. Y cada etapa será modificar por desplazamiento una de las articulaciones, y evaluar la repercusión en J1, que toma en cuenta todo el esqueleto, es decir todas las articulaciones.
5. Podríamos trabajar en un círculo vicioso si atendemos primero a J0 (distancia de esqueleto óptimo a los dos originales y luego a M (longitudes de huesos constantes) sin lograr un acercamiento global porque ambas funciones son en cierto modo opuestas (mejorar una supone empeorar la otra).
Por ello contamos con J1, que atiende simultáneamente a ambos requerimientos, s3egún el método descrito más arriba.
7. Nos queda entonces decidir el orden de actualización de cda articulaciones, el cual, pensamos influirá probablemente en la velocidad de convergencia del algoritmo (¿quizá en la convergencia misma --si sí o si no-- ?)
 
8. Las derivadas a anular (o minimizar) se consiguen variando una a una las componentes del parámetro variable de las que depende, sea este una matriz o un vector, comprobando qué incrementos bajan el valor de la función y eligiendo los mejores. En todos estos casos el parámetro variable es pi* , un vector o mejor, una conjunto de posiciones (puntos) en el espacio. De modo que los incrementos individuales (números) a probar son 6, 3 coordenadas en dos sentidos opuestos. direcciones, de los que elegimos uno, como se hacía al reunir dos esqueletos en la calibración.
8'. Sólo que es la citada calibración un desplazamiento afectaba a todos loas articulaciones simultáneamente, mientras que en este caso, hay que elegir esa direccio entre 6 para cada una de las articulaciones p* por separado, sucesivamente, en un orden todavía no considerado.**********
8". Y además el valor de la función era una cantidad inmediata, la distancia entre dos esqueletos, mientras que en esta optimización, tenemos dos funciones, J0 y M a evaluar escalonadamente (según el método) y considerar.
8'". Así elegimos un desplazamiento* 20 puntos = 60 incrementos individuales. Como la función J y M son sumas, una mejora en un punto mejora (disminuye) ambas expresiones. El problema es que la modificación de un punto puede repercutir en los unidos a él en el esqueleto, modificando M, medida de 'errores' en longitudes de hueso. Por ello es necesaria una búsqueda de los mejores valores en la matriz de incrementos (?????).
  
Veamos aquí Optimización. Algoritmo.
 
 

 
Vuelta al Principio    Última actualización: jueves, 10 de noviembre de 2016    Visitantes:contador de visitas