首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

VBnet 解矩阵,数学

2011-12-26 
VBnet 解矩阵,数学高手请进如题:以下为3个矩阵(由于书写不便,省略了大括号,希望大家能看的懂)100xi0-ziyiB

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]); }
对角化矩阵与原始矩阵相乘的算法

热点排行