文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么在Java项目中实现一个求逆矩阵算法

2023-05-31 00:59

关注

这篇文章给大家介绍怎么在Java项目中实现一个求逆矩阵算法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

实现方法如下:

package demo;public class MatrixInverse {  public static double Det(double [][]Matrix,int N)//计算n阶行列式(N=n-1)  {    int T0;    int T1;    int T2;    double Num;    int Cha;    double [][] B;    if(N>0)    {      Cha=0;      B=new double[N][N];      Num=0;      if(N==1)      {        return Matrix[0][0]*Matrix[1][1]-Matrix[0][1]*Matrix[1][0];      }      for (T0=0;T0<=N;T0++)//T0循环      {        for (T1=1;T1<=N;T1++)//T1循环        {          for (T2=0;T2<=N-1;T2++)//T2循环          {            if(T2==T0)            {              Cha=1;            }            B[T1-1][T2]=Matrix[T1][T2+Cha];          }          //T2循环          Cha=0;        }        //T1循环        Num=Num+Matrix[0][T0]*Det(B,N-1)*Math.pow((-1),T0);      }      //T0循环      return Num;    } else if(N==0)        {      return Matrix[0][0];    }    return 0;  }  public static double Inverse(double[][]Matrix,int N,double[][]MatrixC){    int T0;    int T1;    int T2;    int T3;    double [][]B;    double Num=0;    int Chay=0;    int Chax=0;    B=new double[N][N];    double add;    add=1/Det(Matrix,N);    for ( T0=0;T0<=N;T0++)    {      for (T3=0;T3<=N;T3++)      {        for (T1=0;T1<=N-1;T1++)        {          if(T1<T0)          {            Chax=0;          } else          {            Chax=1;          }          for (T2=0;T2<=N-1;T2++)          {            if(T2<T3)            {              Chay=0;            } else            {              Chay=1;            }            B[T1][T2]=Matrix[T1+Chax][T2+Chay];          }          //T2循环        }//T1循环        Det(B,N-1);        MatrixC[T3][T0]=Det(B,N-1)*add*(Math.pow(-1, T0+T3));      }    }    return 0;  }  public static void main(String[]args)//测试  {    double[][] TestMatrix = {           {1, 22, 34,22},           {1, 11,5,21} ,           {0,1,5,11},           {7,2,13,19}};    double[][]InMatrix=new double[4][4];    Inverse(TestMatrix,3,InMatrix);    String str=new String("");    for (int i=0;i<4;i++)    {      for (int j=0;j<4;j++)      {        String strr=String.valueOf(InMatrix[i][j]);        str+=strr;        str+=" ";      }      str+="\n";    }    System.out.println("编程网测试结果:");    System.out.println(str);  }}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯