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 commentaires

Azzi Abdelmalek
Azzi Abdelmalek le 19 Août 2013
What are your known parameters ?
Can you please verify that in MATLAB syntax,
D = cross(A,B*C)
?
Melissa
Melissa le 19 Août 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

Connectez-vous pour commenter.

 Réponse acceptée

Roger Stafford
Roger Stafford le 19 Août 2013
C = [ cross(A',B(:,1)) , cross(A',B(:,2)) , cross(A',B(:,3)) ]\(D');

4 commentaires

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 le 19 Août 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.

Connectez-vous pour commenter.

Plus de réponses (3)

joseph agno
joseph agno le 7 Oct 2020

0 votes

  • 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 le 11 Oct 2020

0 votes

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

0 votes

circle statement

1 commentaire

Steven Lord
Steven Lord le 11 Oct 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!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Linear Algebra dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by