For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings

 

Need to speed up your development?
Have a look at our:

Samples & Tools

 

Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

Related pages

vector * matrix result in false value.

Anonymous's picture
Forums: 

Dear Sir!

Currently, I have difficulty in solve reason about false result value.

I am testing vector * matrix ...

That is :

math_Matrix LC (0, 5, 0, 8); /* 6*9 matrix

each matrix value is as follos.

LC(0,0) = 0 LC(0,1) = 0 LC(0,2) = 0

LC(0,3) = 0 LC(0,4) = 0 LC(0,5) = 0

LC(0,6) = 0 LC(0,7) = 0 LC(0,8) = 0

LC(1,0) = 0.1818 LC(1,1) = 0 LC(1,2) = 0

LC(1,3) = 0 LC(1,4) = 0.2727 LC(1,5) = 0

LC(1,6) = -0.2727 LC(1,7) = 0 LC(1,8) = 0

LC(2,0) = 0 LC(2,1) = 0.1818 LC(2,2) = 0

LC(2,3) = 0 LC(2,4) = 0 LC(2,5) = -0.2727

LC(2,6) = 0 LC(2,7) = 0.2727 LC(2,8) = 0

LC(3,0) = 0.2727 LC(3,1) = 0 LC(3,2) = 0

LC(3,3) = 0 LC(3,4) = 0.9091 LC(3,5) = 0

LC(3,6) = 0.0909 LC(3,7) = 0 LC(3,8) = 0

LC(4,0) = 0 LC(4,1) = -0.2727 LC(4,2) = 0

LC(4,3) = 0 LC(4,4) = 0 LC(4,5) = 0

LC(4,6) = 0.9091 LC(4,7) = 0.0909 LC(4,8) = 0

LC(5,0) = 0.5454 LC(5,1) = -0.3636 LC(5,2) = 0

LC(5,3) = -1 LC(5,4) = 0.8182 LC(5,5) = 0.5455

LC(5,6) = -0.8182 LC(5,7) = -0.5455 LC(5,8) = 0

math_Vector Risidual(0,8);

Risidual(0) = 0; Risidual(1) = 0;

Risidual(2) = 0; Risidual(3) = -2;

Risidual(4) = 3; Risidual(5) = 2;

Risidual(6) = 3; Risidual(7) = 2;

Risidual(8) = 0;

math_Vector Xresult(0, 5);

math_Matrix ILC = LC.Transposed();

Because Vector 1*9 and matrix 6*9,

I have to transpose matrix as above.

Xresult.TMultiply(Risidual, ILC);

The Xresult Vector is 6*1 vector.

Xresult vector result in [0,0,0,0,0,0]

But Right valuse that Manual computation

is [0,0,0,3,2,2].

Why not result in false value.

Please tell me know why this phenomenon

occurred.

I looking forward to your response as soon

as possible.

Thanks.

Best Regards.