VBnet 解矩阵,数学高手请进
如题:
以下为3个矩阵(由于书写不便,省略了大括号,希望大家能看的懂)
1 0 0 xi 0 -zi yi
Bi = 0 1 0 yi zi 0 -xi (i分别 = 1,2,3) ;
0 0 1 zi -yi xi 0
B1
B = B2 ;
B3
m1
L =m2 ;
m3
计算公式为:
(书写不便,请原谅)
“BT” 指 B 的转置矩阵,
“(BT *B)-1” 指矩阵 “(BT *B)”的逆矩阵
Y = (BT *B)-1 *BT *L
问题:
以上公式为坐标转换求参数的公式,我的目的是求出Y矩阵,
其中xi,yi,zi,m1,m2,m3均为已知
希望知道的给个解法即可,不要用MATLAB或坐标转换软件,因为我是要写一个解该矩阵的算法程序,也就是要自己编写一个坐标转换软件。谢谢
最好能有详细解题步骤(不需要写出程序,比如A*B 为一步骤,不过要确保A*B能够是相乘的)!
[解决办法]
#define CMPLX(struct complex)CMPLX{int re, int im}CMPLX cmult(CMPLX za, CMPLX zb){ CMPLX z; z.re = za.re * zb.re - za.im * zb.im; z.im = za.re * zb.im + za.im * zb.re; return z;}
用于复数的计算,涉及到两数相乘的问题
#define line 4 #define col 4 float a[line][col] = { "填入数字 "} float x[line] = { "填入数字 "}
main()
{ float i[line], y[col];
int i, j ,k;
for(i = 0; i < line; i++)
{ y[i] = 0; for(j = 0; j < col; j++) y[i] += a[i][j] * x[j]; }
for(k = 0; k < line; k++) printf( "\n[%d] = %-4.3f ", k + 1,y[k]); }
对角化矩阵与原始矩阵相乘的算法