java 逆矩阵,java – 如何创建逆变换矩阵

这是我在计算机图形学课程中使用的一些代码,基本上我使用高斯Jordan消除来计算矩阵的逆.对于可逆的矩阵,其行列式值必须不等于零.我没有在我的代码中处理过这种情况,我不打算为你做这一切.

Matrix4* Matrix4::FindInverse(Matrix4 &a){

int n = R;

int i = 0;

int j = 0;

float pivot = 0;

Matrix4* invA = NULL;

//TODO: Check whether the matrix is invertible.Else Return

invA = new Matrix4();

invA->SetMatrix4(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1);

for(i = 0; i < n; i++){

pivot = a.v[i][i];

if(pivot != 1.0 and pivot != 0){

for(int t = i; t < n; t++){

a.v[i][t] = a.v[i][t]/pivot;

invA->v[i][t] = invA->v[i][t]/pivot;

}

}

//Update to the new pivot which must be 1.0

pivot = a.v[i][i];

for(j = 0; j < n; j++){

if( j==i ){

continue;

}

else{

float l = a.v[j][i]/pivot;

for(int m = 0; m < n; m++){

a.v[j][m] = a.v[j][m] - l * a.v[i][m];

invA->v[j][m] = invA->v[j][m] - (l * invA->v[i][m]);

}

}

}

}

return invA;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值