Matlab - resolución de múltiples ecuaciones

 
Vista:
sin imagen de perfil
Val: 45
Ha aumentado su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

resolución de múltiples ecuaciones

Publicado por Patricia (26 intervenciones) el 06/07/2017 13:43:37
Hola a todos,
Tengo un problema con matlab, resulta que tengo bastantes matrices de 4x4 en matlab ( sistemas de ecuaciones con 4 ecuaciones cada una) y realmente lo que representa es la posición y la orientación de un robot, mi objetivo aquí sería de alguna manera unir todas las matrices (ecuaciones) de forma que tenga que tener todas las ecuaciones en cuenta para poder resolverlas.

Esto lo tengo que hacer porque cada matriz me está representando una posición y una orientación especifica de mi robot por lo cual obteniendo todas y resolviendo las ecuaciones obtendría un error en la posición y en la orientación por eso tendría que tener en cuenta todas las posiciones y orientaciones posibles, ese es el porqué de que quiera tener en cuenta todas las ecuaciones (realmente el proceso hasta la obtención de las matrices es un poco más complicado, lo he explicado por encima para que me entendáis mejor)

Os agradecería muchísimo vuestra ayuda. Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

resolución de múltiples ecuaciones

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 07/07/2017 05:02:22
concatena todas esas matrices de 4 por 4 utilizando vertcat y guárdalas en una sola variable, voy a suponer que la llames matriz y también voy a suponer que tu última fila de esa matriz es el valor que debe satisfacer las variables X, Y, Z , entonces dada matriz puedes hacer :

1
2
3
4
5
a=matriz(:,3)
b=matriz(:,4)
c=a'*a;
d=(b'*a)';
solucion=c\d;

en solución obtienes el valor de X, Y Z que minimizan el error cuadrático medio : aquí un ejemplo random

1
2
3
4
5
a=rand(8,3);
b=rand(8,1);
c=a'*a;
d=(b'*a)';
solucion=c\d;: 


saludos
https://www.facebook.com/royethmatlab/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 45
Ha aumentado su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

resolución de múltiples ecuaciones

Publicado por Patricia (26 intervenciones) el 10/07/2017 10:41:48
Hola Jesús,

Acabo de ver tu respuesta y creo que no me he explicado del todo bien, voy a intentar poner un ejemplo,
Cada vez que yo ejecuto mi programa1 éste me devuelve un par de matrices.
Una vez obtenida mi matriz si yo ejecuto mi programa2 (os dejo el código), me devuelve una matriz de error :

syms x11 x12 x13 x21 x22 x23 x31 x32 x33
X = [x11, x12, x13; x21, x22, x23; x31, x32, x33]
[x11, x12, x13, x21, x22, x23, x31, x32, x33 ]= solve (relref(1:3,1:3)*X == pTmef1(1:3,1:3))

donde relref y pTmef1 son matrices que me ha devuelto mi programa1

si vuelvo a ejecutar mi programa1 en otras condiciones obtengo otras matrices y por lo tanto obtendré otro error, bueno pues, mi objetivo aquí seria resolver la sacar el error teniendo en cuenta las matrices obtenidas en las distintas situaciones, he estado echando un vistazo y esto tendría que hacerse mediante métodos. He estado mirando uno de ellos que seria el K-medoids pero no se como usarlo en mi caso ni si sería correcto usar este método.

Si me pudieseis ayudar os lo agradecería muchísimo, gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 45
Ha aumentado su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

resolución de múltiples ecuaciones

Publicado por Patricia (26 intervenciones) el 10/07/2017 11:08:51
También he visto el método K-means
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

resolución de múltiples ecuaciones

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 10/07/2017 16:21:14
conozco los métodos de agrupamiento que mencionas y sirven solo para formar grupos, lo que tú mencionas en la pregunta inicial es :
"unir todas las matrices (ecuaciones) de forma que tenga que tener todas las ecuaciones en cuenta para poder resolverlas." los métodos que sirven para esto son otros, uno de ellos fue el que te adjunté en la respuesta, la minimización del error cuadrático medio


y si cada vez que ejecutas tu programa "programa1" te devuelve varias matrices que son sistemas de ecuaciones debes encargarte de unirlas en una sola matriz y buscar los valores que minimicen el error cuadrático medio , de hecho estás utilizando variables simbólicas cuando no es necesario ya que lo que tú quieres que se cumpla es solo una simple división matricial :
así que estas lineas :
syms x11 x12 x13 x21 x22 x23 x31 x32 x33
X = [x11, x12, x13; x21, x22, x23; x31, x32, x33]
[x11, x12, x13, x21, x22, x23, x31, x32, x33 ]= solve (relref(1:3,1:3)*X == pTmef1(1:3,1:3))


se resuelven mejor así:

1
x=relref(1:3,1:3)\pTmef1(1:3,1:3);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 45
Ha aumentado su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

resolución de múltiples ecuaciones

Publicado por Patricia (26 intervenciones) el 18/07/2017 08:20:08
Hola de nuevo Jesús,
he estado mirando lo que me dijistes y tienes razón, lo único que me falta sería que la solución que quiero encontrar es una matriz de error de 4x4 y si por ejemplo mis matrices son relref de 9x4 y pTmef1 (9x4) la matriz que me sale al hacer relref/pTmef1 es de 4x9 por lo que no sé como hacer que la solución que me resulte sea de 4x4.

Muchas gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

resolución de múltiples ecuaciones

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 18/07/2017 18:07:25
para que te resulte una matriz 4 por 4 la forma con esos tamaños es

relref'/pTmef1' o pTmef1'/relref'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 45
Ha aumentado su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

resolución de múltiples ecuaciones

Publicado por Patricia (26 intervenciones) el 19/07/2017 08:14:07
Muchas gracias por tu ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar