java n*n矩阵求值及求逆矩阵
java版的先写出来了,用的跟c语言相同的算法,然后看看能不能以后加个框做成程序:
import java.math.*;
import java.util.*;
import java.text.*;
public class matrix {static int map1[][]=new int [110][110];static int just[][]=new int [110][110];public static void printf(int n,int map[][]){int i,j;for(i=1;i<=n;i++ ){for(j=1;j<n;j++)System.out.print(map[i][j]+" ");System.out.println(map[i][j]);}}public static void get(int numi,int numj,int map[][],int n){int i,j,k,l;for(i=0;i<n+10;i++)for(j=0;j<n+10;j++)just[i][j]=1;for(i=1;i<=n-1;i++)//求余子式矩阵 for(j=1;j<=n-1;j++){if(i>=numi&&j<numj)just[i][j]=map[i+1][j];else if(i>=numi&&j>=numj)just[i][j]=map[i+1][j+1];else if(i<numi&&j>=numj)just[i][j]=map[i][j+1];else if(i<numi&&j<numj)just[i][j]=map[i][j];}}//static int map[][]=new int [110][110];public static int getans(int nn){int map[][]=new int [110][110]; for(int i=1;i<=nn;i++)for(int j=1;j<=nn;j++)map[i][j]=just[i][j];if(nn==2)return map[1][1]*map[2][2]-map[1][2]*map[2][1];else if(nn==1)return map[1][1];else{int cnb=0;for(int i=1;i<=nn;i++){get(1,i,map,nn);//得到当前余子式 just // printf("pay attention!\n");//print(map,nn); //print(just,nn-1);if(i%2==1)cnb+=map[1][i]*getans(nn-1);elsecnb-=map[1][i]*getans(nn-1);}return cnb;}}public static int gcd(int m,int n){
// if(m<n)
// matrix.gcd(n,m);
// if(n==0)
// return m;
//
// else
// return matrix.gcd(n,m%n);int mm=m;int nn=n;if(mm<nn){int c=mm;mm=nn;nn=c;}int w=1;while(w!=0){w=mm%nn;mm=nn;nn=w;}return mm;}public static void ans(int n,int m){if(n*m<0){System.out.print("-");ans(Math.abs(n),Math.abs(m));return ;}if(m==1)System.out.print(n+"\t");else if(n%m==0)System.out.print(n/m+"\t");elseSystem.out.print((n/matrix.gcd(m, n))+"/"+(m/matrix.gcd(m, n))+"\t");}public static void main(String[] args) {// TODO 自动生成的方法存根Scanner cin=new Scanner(System.in);int i,j,k,l,m,p;while(true){int n=cin.nextInt();int ans=0;for(i=0;i<n+10;i++)for(j=0;j<n+10;j++)map1[i][j]=1;for(i=1;i<=n;i++)for(j=1;j<=n;j++){map1[i][j]=cin.nextInt();just[i][j]=map1[i][j];}int ans1=matrix.getans(n);System.out.println("矩阵的值为:");System.out.println(ans1);int map2[][]=new int [110][110];for(i=1;i<=n;i++)for(j=1;j<=n;j++){map2[i][j]=map1[j][i];just[i][j]=map2[i][j];}System.out.println("转置矩阵为:");matrix.printf(n, map2);int help2=matrix.getans(n);System.out.println(help2);if(help2==0){System.out.println("No inverse matrix");continue;}System.out.println("逆矩阵为:");for(i=1;i<=n;i++){for(j=1;j<=n;j++){matrix.get(i, j, map2, n);//boolean b=((i+j)%2==0);if((i+j)%2==0)matrix.ans(matrix.getans(n-1), help2);elsematrix.ans(matrix.getans(n-1)*-1, help2);}System.out.println();}System.out.println();}}}
java n*n矩阵求值及求逆矩阵相关推荐
- java求矩阵_java实现的n*n矩阵求值及求逆矩阵算法示例
本文实例讲述了java实现的n*n矩阵求值及求逆矩阵算法.分享给大家供大家参考,具体如下: 先来看看运行结果: java版的写出来了,用的跟c语言相同的算法,然后看看能不能以后加个框做成程序: imp ...
- C语言 n*n矩阵求值及求逆矩阵
求出矩阵的值以及输出逆矩阵,英语不好,略拗口. 上代码: #include<stdio.h> #include<string.h> #include<math.h> ...
- c语言逆值,C语言 n*n矩阵求值及求逆矩阵
求出矩阵的值以及输出逆矩阵,英语不好,略拗口. 上代码: #include #include #include int map1[110][110],i,j,k,l,m,n,p,vis[110][11 ...
- java求矩阵的逆矩阵_java n*n矩阵求值及求逆矩阵
展开全部 import java.math.*; import java.util.*; import java.text.*; public class matrix { static int ma ...
- 5.2 matlab多项式计算(多项式的四则运算、求导、求值、求根)
1.多项式的表示 在MATLAB中创建多项式向量时,注意三点: (1)多项式系数向量的顺序是从高到低. (2)多项式系数向量包含0次项系数,所以其长度为多项式最高次数加1. (3)如果有的项没有,系数 ...
- matlab多项式的求值,多项式求值的MATLAB实现
公茂果老师的课件中,给出了四种多项式求值的算法,下面给出代码示例: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %E-mail: [email protected] ...
- c语言程序设计报告表达式求值,表达式求值C语言实验报告
表达式求值实验报告 李一鹏 PB12001076 数学系 1. 实验题目:表达式求值 2. 实验目的:熟悉栈与队列 3. 实验内容: 话说令狐冲只告诉东方不败:"东方姑娘你会永远活在我的心中 ...
- 用Python对数学函数进行求值、求偏导
from sympy import *# x = Symbol("x") # y = diff(x**3+x, x) # print(y) # result = y.subs('x ...
- 12 More Effective C++—条款16/17 (2/8原理与延缓求值)
1 "2/8"原理 二八原理指一件事情的20%需要投入80%的精力来做,即要分清主次点.这种情况在程序编写的时候尤为突出.关键性能点.重要逻辑代码一般都是集中在小部分区域,而这部分 ...
最新文章
- 语义分割--DeconvNet--Learning Deconvolution Network for Semantic Segmentation
- D3DPOOL(资源池)
- crontab命令linux,crontab命令
- 原创:微信小程序源码解说:石头剪刀布(附源码下载)
- 多客服功能终于也向所有微信认证的订阅号开放了
- CryEngine3 引擎非商业用途将免费
- C语言一看就能上手的干货!你确定你不来看吗?
- Android RecyclerView (十)组件化封装
- noip模拟赛 蒜头君打地鼠
- mysql 周 获取日期_MySQL获取日期周、月、天,生成序号
- 最好的git教程,没有之一
- java 微博 开源_微博开源框架Motan初体验
- tp框架中构造函数__construct()与初始化函数_initialize()的区别
- 关闭windows笔记本自带键盘
- wpf初学者-wpf控件简单介绍
- 女生玩游戏什么款式蓝牙耳机好用?小清新高颜值游戏蓝牙耳机推荐
- 洛阳理工学院linux实验报告,谁来给我抄实验报告啊!这一张又一张写得。。。。...
- re.search与re.findall的区别
- js 中文汉字按拼音排序,浏览器英文环境也可正确运行
- 一文了解BLDC与PMSM的区别