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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Roger Stafford
Roger Stafford am 19 Aug. 2013

1 Stimme

C = [ cross(A',B(:,1)) , cross(A',B(:,2)) , cross(A',B(:,3)) ]\(D');

4 Kommentare

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 am 19 Aug. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

joseph agno
joseph agno am 7 Okt. 2020

0 Stimmen

  • 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 am 11 Okt. 2020

0 Stimmen

if n corss n = ny
how to write cross in symbol notation form in matlab
muhammad asif
muhammad asif am 11 Okt. 2020

0 Stimmen

circle statement

1 Kommentar

Steven Lord
Steven Lord am 11 Okt. 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!

Melden Sie sich an, um zu kommentieren.

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by