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

Community Treasure Hunt

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

Start Hunting!

Translated by