import java.util.Scanner;

/*求矩阵的伴随矩阵*/

public class ajoint_matrix {

private static float[][] get_complement(float[][] data, int i, int j) {

/* x和y为矩阵data的行数和列数 */

int x = data.length;

int y = data[0].length;

/* data2为所求剩余矩阵 */

float data2[][] = new float[x - 1][y - 1];

for (int k = 0; k < x - 1; k++) {

if (k < i) {

for (int kk = 0; kk < y - 1; kk++) {

if (kk < j) {

data2[k][kk] = data[k][kk];

} else {

data2[k][kk] = data[k][kk + 1];

}

}

} else {

for (int kk = 0; kk < y - 1; kk++) {

if (kk < j) {

data2[k][kk] = data[k + 1][kk];

} else {

data2[k][kk] = data[k + 1][kk + 1];

}

}

}

}

return data2;

}

/* 计算矩阵行列式 */

private static float cal_det(float[][] data) {

float ans=0;

/*若为2*2的矩阵可直接求值并返回*/

if(data[0].length==2){

ans=data[0][0]*data[1][1]-data[0][1]*data[1][0];

}

else{

for(int i=0;i

/*若矩阵不为2*2那么需求出矩阵第一行代数余子式的和*/

float[][] data_temp=get_complement(data, 0, i);

if(i%2==0){

/*递归*/

ans=ans+data[0][i]*cal_det(data_temp);

}

else{

ans=ans-data[0][i]*cal_det(data_temp);

}

}

}

return ans;

}

/*计算矩阵的伴随矩阵*/

private static float[][] ajoint(float[][] data) {

int M=data.length;

int N=data[0].length;

float data2[][]=new float[M][N];

for(int i=0;i

for(int j=0;j

if((i+j)%2==0){

data2[i][j]=cal_det(get_complement(data, i, j));

}

else{

data2[i][j]=-cal_det(get_complement(data, i, j));

}

}

}

/*将矩阵转置*/

return trans(data2);

}

/*转置矩阵*/

private static float [][]trans(float[][] data){

int i=data.length;

int j=data[0].length;

float[][] data2=new float[j][i];

for(int k2=0;k2

for(int k1=0;k1

data2[k2][k1]=data[k1][k2];

}

}

return data2;

}

public static void main(String[] args) {

/* 输入原矩阵矩阵 */

Scanner scan = new Scanner(System.in);

System.out.println("输入矩阵的行数和列数");

int x = scan.nextInt();

int y = scan.nextInt();

float data[][] = new float[x][y];

System.out.println("输入矩阵");

for (int k = 0; k < x; k++) {

for (int kk = 0; kk < y; kk++) {

data[k][kk] = scan.nextFloat();

}

}

System.out.println("该矩阵的伴随矩阵为:");

float data2[][]=new float[x][y];

data2=ajoint(data);

for(int i=0;i

{

for(int j=0;j

System.out.print(data2[i][j]+" ");

}

System.out.println();

}

}

}

java 求矩阵的伴随矩阵_求矩阵伴随矩阵的java实现相关推荐

  1. java输入两个整数_求平均值._用C语言编写:完成从键盘输入两个整数a和b,求平均值ave,并输出平均值...

    #includevoid main(){int a,b,ave;printf("输入两个整数:');scanf("%d%d",&a,&b);ave=(a+ ...

  2. 将矩阵转为一行_理解矩阵乘法

    理解矩阵乘法 考研需要考一门课<线性代数>,这门课其实是教矩阵. 刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下. 矩阵乘法也类似,矩阵乘以一个常数,就是所有位置都乘以这个数. ...

  3. java代码删除文件夹_删除文件夹的java类

    /** * @author www.nwu.edu.cn MiniRice * @author darkrice@gmail.com * @version    1.2 * */ http://www ...

  4. java中execution的作用_一文初步了解Java虚拟机

    大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 什么是JVM? JVM(Java Virtual Machin ...

  5. java语言用什么编程_使用什么编程语言开发Java?

    The Java Language is a language specification – you don't write a language in a language, it's a spe ...

  6. java反射获取方法内部_公共技术点之 Java 反射 Reflection

    本文为 Android 开源项目源码解析 公共技术点中的 Java 反射 部分 分析者:Mr.Simple,校对者:Trinea,校对状态:未完成 1. 了解 Java 中的反射 1.1 什么是 Ja ...

  7. 无忧考吧2017二级java_无忧考吧二级JAVA超级模拟软件下载_无忧考吧二级JAVA超级模拟软件官方下载-太平洋下载中心...

    无忧考吧二级JAVA超级模拟软件是一款可以帮助用户朋友来学习计算机二级java语言考试的软件,使用这款二级java模拟考试软件可以帮助用户快速的掌握学习内容和操作逻辑,让你顺利的通过二级java考试. ...

  8. java webservice报文过长_工作1-5年的Java程序猿到底需要怎样的一个技术栈?

    工作1-5年的Java程序猿到底需要怎样的一个技术栈? 前言: 具有1-5年开发经验的程序员 需要学习的内容其实还有很多很多. 今天跟大家交流一下希望分享出来的对大家能够有帮助,这是我这些年总结出的一 ...

  9. java 序列化概念和作用_结合代码详细解读Java序列化与反序列化概念理解

    Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列 ...

  10. 什么为java运行时的环境_什么是JRE?Java运行时环境简介(一)

    Java开发工具包(JDK),Java虚拟机(JVM)和Java运行时环境(JRE)共同构成了用于开发和运行Java应用程序的Java平台组件的强大功能. 实际上,运行时环境是一种旨在运行其他软件的软 ...

最新文章

  1. JSP 客户端请求概述
  2. 新员工安全生产知识学习读本
  3. python文件的用法,Python 文件 readlines() 使用方法及示例
  4. GRE核心词汇助记与精练-List10感觉,感情
  5. 数据结构题:根据所给权值设计相应的哈夫曼树,并设计哈夫曼编码
  6. 【Ubuntu-apt-换源】ubuntu系统换源后使用apt-get update时一直0%[执行中]
  7. Angularjs基础(三)
  8. android viewdraghelper 点击移动,ViewDragHelper使用时遇到的问题
  9. 辽宁师范大学计算机学院查寝吗,辽宁师范大学宿舍怎么样 住宿条件好不好
  10. 简单了解TransE
  11. 分析微商分销系统的缺陷
  12. 点下确认的那一刻,我的大脑在发生些什么?
  13. windows下用Mingw64编译qtw3d
  14. Keep your fork synced
  15. 微信里怎么添加预约链接_分享公众号预约怎么做
  16. cadence 通孔焊盘_allegro通孔类焊盘的制作方法
  17. 怎样在线压缩png图片大小?将这个压缩方法分享给大家
  18. MoviePy - 中文文档4-MoviePy实战案例-给MoviePy Logo做一个闪动的阴影效果
  19. 学go还是python?
  20. C语言:输出整数的质因子

热门文章

  1. 手游内存辅助开发教程
  2. epcs1s是epcs1系列的么_fpga的EPCS 配置的2种方法 FPGA下载程序的方法(EPCS)
  3. spyder使用笔记
  4. react PC端 适配 自适应
  5. WPS表格如何快速添加斜线表头
  6. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
  7. excel 度分秒转度
  8. 云服务器搭建Hadoop集群
  9. java md5加密解密_JAVA实现MD5加密解密
  10. 幼儿园数学目标_大班数学领域目标