Cross Product and Vector Multiplication

If i have the following 4 vectors:
D=Ax(B*C)
How would I solve for C?
Try and make this a tab bit more clear. I have A is a 1x3 matrix, B is a 3x3 matrix C is a 3x1 matrix and D is a 1x3 matrix. I am trying to solve for C. The problem is stated as A cross the product B*C equals D.

4 comentarios

Azzi Abdelmalek
Azzi Abdelmalek el 19 de Ag. de 2013
What are your known parameters ?
Can you please verify that in MATLAB syntax,
D = cross(A,B*C)
?
Melissa
Melissa el 19 de Ag. de 2013
Its a stiffness and force equation for displacement. So D is reaction force of [Fx,Fy,Fz]. A is the position vector [x;y;d]. B is the transformation to global stiffness [3x3 DCM] and C is the displacement [x.y.z]
>> A=[1 2 3]; B=[1 2 3; 4 5 6; 7 8 9]; C=[4; 5; 6];
>> D=cross(A,B*C)
D =
13 -26 13

Iniciar sesión para comentar.

 Respuesta aceptada

Roger Stafford
Roger Stafford el 19 de Ag. de 2013
C = [ cross(A',B(:,1)) , cross(A',B(:,2)) , cross(A',B(:,3)) ]\(D');

4 comentarios

When attempting to use your code I receive:
C =
NaN
NaN
NaN
I was overly hasty. It is true that if
D=cross(A,B*C)
then
[cross(A',B(:,1)),cross(A',B(:,2)),cross(A',B(:,3))] * C = D'
However this matrix
[cross(A',B(:,1)),cross(A',B(:,2)),cross(A',B(:,3))]
is inherently singular, that is, its determinant is zero. In other words the equations you can obtain from
D=cross(A,B*C)
have infinitely many solutions for C. You cannot determine C uniquely from A, B, and D.
To visualize this better, consider this equation
Z = cross(X,Y)
where X and Y are vectors. If you are then given Z and X, there will obviously be infinitely many Y vectors that will satisfy the above equation. Any Y which is orthogonal to Z and has the appropriate component orthogonal to the X direction will be a solution. The same applies to your situation. You cannot determine C from A, B, and D.
Melissa
Melissa el 19 de Ag. de 2013
That makes sense. I went through the properties of cross product and multiplication and arrived at your equation but since it is singular then I cannot obtain C. Dang. Thank you for your time and explanation.
There is a way to obtain a unique value for C that satisfies your equation. Let C be given by:
C = B\(cross(D',A')/dot(A,A));
This is the unique C such that
D' = cross(A',B*C)
and
dot(B*C,A') = 0
That is, such that B*C is orthogonal to A'. It assumes that D is orthogonal to A and that B is non-singular.

Iniciar sesión para comentar.

Más respuestas (3)

joseph agno
joseph agno el 7 de Oct. de 2020

0 votos

  • Find the Matlab command to carry out the cross product of two vectors b and c and try it out on two vectors.
muhammad asif
muhammad asif el 11 de Oct. de 2020

0 votos

if n corss n = ny
how to write cross in symbol notation form in matlab
muhammad asif
muhammad asif el 11 de Oct. de 2020

0 votos

circle statement

1 comentario

Steven Lord
Steven Lord el 11 de Oct. de 2020
Do you mean n times n? If so use the * operator.
But please do not put your own files in any subdirectory under the matlabroot directory!

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Preguntada:

el 19 de Ag. de 2013

Comentada:

el 17 de Sept. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by