
正文
逆矩阵java代码 编程求逆矩阵
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java怎么输出矩阵?如输入数字3,输出3×3的矩阵
可以使用嵌套的for循环来输出一个矩阵。以下是一个示例代码,它将创建一个大小为N×N的矩阵,其中N是从用户输入的数字中获取的。
import java.util.Scanner;
public class Matrix {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入矩阵的大小: ");
int n = scanner.nextInt();
// 创建一个大小为n x n的矩阵
int[][] matrix = new int[n][n];
// 初始化矩阵
for (int i = 0; i n; i++) {
for (int j = 0; j n; j++) {
matrix[i][j] = i * n + j + 1;
}
}
// 输出矩阵
for (int i = 0; i n; i++) {
for (int j = 0; j n; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}
在上面的示例代码中,首先从用户输入中获取矩阵的大小,然后使用两个for循环来创建一个大小为n×n的矩阵,并将其初始化。最后,再次使用两个for循环来输出矩阵的值。
相关问答
Q1: 编写求矩阵的逆矩阵用java实现
import java.io.*;
import java.util.StringTokenizer;
public class Test {
private int N;
private double[][] src;
private double[][] result;
public Test() {
}
public static void main(String[] args) throws Exception {
new Test().exec();
}
private void exec() throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print( "Input N: ");
System.out.flush();
String line = reader.readLine();
N = Integer.parseInt(line);
src = new double[N][];
result = new double[N][];
for(int i = 0; i N; i++) {
line = reader.readLine();
src[i] = new double[N];
result[i] = new double[N];
result[i][i] = 1;
StringTokenizer st = new StringTokenizer(line, ", ");
int index = 0;
while(st.hasMoreTokens()) {
src[i][index] = Double.parseDouble(st.nextToken());
index++;
}
}
calCol(0);
calColBack(N - 1);
reInit();
for (int i = 0; i N; i++) {
for (int j = 0; j N; j++) {
System.out.print(src[i][j] + ", ");
}
System.out.print( "\t ");
for (int j = 0; j N; j++) {
System.out.print(result[i][j] + ", ");
}
System.out.println();
}
}
private void reInit() {
for(int i = 0; i N; i++) {
double coefficient = 1 / src[i][i];
src[i][i] = 1;
for(int j = 0; j N; j++)
result[i][j] *= coefficient;
}
}
private void calColBack(int col) {
for(int i = col - 1; i = 0; i--) {
double coefficient = -1 * src[i][col] / src[col][col];
for(int z = 0; z N; z++) {
src[i][z] += coefficient * src[col][z];
result[i][z] += coefficient * result[col][z];
}
}
if(col 0)
calColBack(col - 1);
}
private void calCol(int col) {
for(int i = col + 1; i N; i++) {
double coefficient = -1 * src[i][col] / src[col][col];
for(int z = 0; z N; z++) {
src[i][z] += coefficient * src[col][z];
result[i][z] += coefficient * result[col][z];
}
}
if(col + 1 N)
calCol(col + 1);
}
}
Q2: java matrix
java matrix是什么,让我们一起了解一下?
Matrix 是一个基于javaEE技术集成的基础应用系统,是一个可以看见和运行的系统,matrix定义了一个稳定而有效的设计开发框架,结合代码生成器使用自动生成增删改查代码简化了应用开发过程。它集成了系统日志,事务控制、安全校验、权限管理等功能,为开发人员提供一个能够快速开发业务系统的框架,开发人员只需要专注于业务逻辑而不需要关注非功能需求。
那么Matrix有哪些方法可以控制图片变换?
1、setTranslate(float dx,float dy):控制Matrix进行位移。
2、setSkew(float kx,float ky):控制Matrix进行倾斜,kx、ky为X、Y方向上的比例。
3、setSkew(float kx,float ky,float px,float py):控制Matrix以px、py为轴心进行倾斜,kx、ky为X、Y方向上的倾斜比例。
4、setRotate(float degrees):控制Matrix进行depress角度的旋转,轴心为(0,0)。
5、setRotate(float degrees,float px,float py):控制Matrix进行depress角度的旋转,轴心为(px,py)。
6、setScale(float sx,float sy):设置Matrix进行缩放,sx、sy为X、Y方向上的缩放比例。
7、setScale(float sx,float sy,float px,float py):设置Matrix以(px,py)为轴心进行缩放,sx、sy为X、Y方向上的缩放比例。
matrix的入门操作代码如下: import org.junit.Test; import org.ujmp.core.DenseMatrix; import org.ujmp.core.Matrix; /** * Created by lionel on 16/11/29. */ public class MatrixTest { @Test public void test() { //创建4*4的 零矩阵 Matrix dense = DenseMatrix.Factory.zeros(4, 4); System.out.println(dense); /* 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 */ //设置矩阵dense第三行第四列的元素为5.0 dense.setAsDouble(5.0, 2, 3); //其他设置 dense.setAsDouble(1.0, 0, 0); dense.setAsDouble(3.0, 1, 1); dense.setAsDouble(4.0, 2, 2); dense.setAsDouble(-2.0, 3, 3); dense.setAsDouble(-2.0, 1, 3); System.out.println(dense); /* 1.0000 0.0000 0.0000 0.0000 0.0000 3.0000 0.0000 -2.0000 0.0000 0.0000 4.0000 5.0000 0.0000 0.0000 0.0000 -2.0000 */ //矩阵dense的转置 Matrix transpose = dense.transpose(); System.out.println(transpose); /* 1.0000 0.0000 0.0000 0.0000 0.0000 3.0000 0.0000 0.0000 0.0000 0.0000 4.0000 0.0000 0.0000 -2.0000 5.0000 -2.0000 */ //矩阵dense与矩阵transpose相加 System.out.println(dense.plus(transpose)); /* 2.0000 0.0000 0.0000 0.0000 0.0000 6.0000 0.0000 -2.0000 0.0000 0.0000 8.0000 5.0000 0.0000 -2.0000 5.0000 -4.0000 */ //矩阵dense与矩阵transpose相减 System.out.println(dense.minus(transpose)); /* 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -2.0000 0.0000 0.0000 0.0000 5.0000 0.0000 2.0000 -5.0000 0.0000 */ //矩阵dense与矩阵transpose相乘 Matrix matrixProduct = dense.mtimes(transpose); System.out.println(matrixProduct); /* 1.0000 0.0000 0.0000 0.0000 0.0000 13.0000 -10.0000 4.0000 0.0000 -10.0000 41.0000 -10.0000 0.0000 4.0000 -10.0000 4.0000 */ //矩阵dense 所有元素*2 Matrix scaled = dense.times(2); System.out.println(scaled); /* 2.0000 0.0000 0.0000 0.0000 0.0000 6.0000 0.0000 -4.0000 0.0000 0.0000 8.0000 10.0000 0.0000 0.0000 0.0000 -4.0000 */ //矩阵 dense 的逆矩阵 System.out.println(dense.inv()); /* 1.0000 0.0000 0.0000 0.0000 0.0000 0.3333 0.0000 -0.3333 0.0000 0.0000 0.2500 0.6250 -0.0000 -0.0000 -0.0000 -0.5000 */ //生成4*4随机矩阵,元素值在0,1之间 Matrix rand = Matrix.Factory.rand(4, 4); System.out.println(rand); /* 0.5478 0.5100 0.7078 0.0600 0.8316 0.4039 0.2553 0.0173 0.4354 0.7132 0.7865 0.7006 0.0394 0.4839 0.4374 0.6241 */ //生成4*4随机矩阵,元素值在-1,1之间 Matrix randn = Matrix.Factory.randn(4, 4); System.out.println(randn); /* 0.8655 0.6231 -0.4234 0.0802 0.7217 -0.7399 -0.5692 0.6421 -1.5557 0.4745 2.1110 1.5489 -0.8520 -0.7722 0.9025 -0.4664 */ //产生2*3 元素值都为1.0000的矩阵 Matrix ones = Matrix.Factory.ones(2, 3); System.out.println(ones); /* 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 */ } }
Q3: 如何用java程序利用二维数组创建一个矩阵,编写方法完成该矩阵的逆转,两个矩阵之和。
两个类,一个是矩阵对象类Matrix,另一个是测试类MatrixTest
可以实现矩阵创建,赋值,转置,加法,支持行列数不同逆矩阵java代码的矩阵
注1,转置方法将输出一个新逆矩阵java代码的矩阵,并不改变原有矩阵逆矩阵java代码的内容
注2:加法方法是a.add(b),b不发生变化,a发生变化,加法将改变a矩阵的内容,不会产生新矩阵
public class Matrix {
private int rows;
private int columns;
private Integer[][] m;
// 行列构造法
public Matrix(int rows, int columns) {
this.rows = rows;
this.columns = columns;
this.m = new Integer[rows][columns];
}
// 二维数组构造法
public Matrix(Integer[][] m) {
this.m = m;
this.rows = m.length;
this.columns = m[0].length;
}
// 转置
public Matrix exchange() {
Integer[][] result = new Integer[columns][rows];
for (int i = 0; i rows; i++) {
for (int j = 0; j columns; j++) {
result[j][i] = m[i][j];
}
}
return new Matrix(result);
}
// 加法
public void add(Matrix obj) {
if (obj.getRows() != rows || obj.getColumns() != columns) {
System.out.println("不同行列的矩阵不能相加");
} else {
Integer[][] objarray = obj.toArray();
for (int i = 0; i rows; i++) {
for (int j = 0; j columns; j++) {
m[i][j] += objarray[i][j];
}
}
}
}
// 矩阵赋值
public void setValue(int row, int column, int value) {
if (row rows column columns) {
m[row][column] = value;
} else {
System.out.println("索引超出边界");
}
}
public int getRows() {
return rows;
}
public int getColumns() {
return columns;
}
public Integer[][] toArray() {
return m;
}
public String toString() {
String result = "";
for (int i = 0; i rows; i++) {
for (int j = 0; j columns; j++) {
result = result + m[i][j] + " ";
}
result += "\r\n";
}
return result;
}
}
public class MatrixTest {
public static void main(String[] args) {
Matrix m1 = new Matrix(2, 3);
for (int i = 0; i 2; i++) {
for (int j = 0; j 3; j++) {
m1.setValue(i, j, i + j);
}
}
System.out.println(m1.toString());
System.out.println(m1.exchange().toString());
Matrix m2 = new Matrix(2, 3);
for (int i = 0; i 2; i++) {
for (int j = 0; j 3; j++) {
m2.setValue(i, j, (i + 1) * (j + 1));
}
}
System.out.println(m2.toString());
m1.add(m2);
System.out.println(m1.toString());
}
}
Q4: java里怎么求一个矩阵的逆?
1,2,3,1,0,0
4,5,6,0,1,0
7,8,9,0,0,1
经过变换成
1,0,0,*,*,*
0,1,0,*,*,*
0,0,1,*,*,*就可以了,右边星号表示的矩阵就是你要求的逆
简单的说(A,E)变换成(E,A的逆)
Q5: 如何求一个矩阵的逆矩阵?
如下参考:
1.启动复杂的MATLAB逆矩阵java代码,如下图所示。
2.输入“clear”和“CLC”代码(清除屏幕)如下图所示。
3.根据逆矩阵java代码你的要求建立矩阵系统(图中例子设矩阵A=[1,2,3,4],‘A’可以定义为你需要的任何字母)如下图所示。
4.使用代码B=inv(A),“B”可以定义为您需要的其逆矩阵java代码他字母,inv()中的字母是您需要反转的矩阵,如下图所示。
5.验证解的逆,如果两个矩阵的乘积是单位矩阵,则其逆是正确的,如下图所示。
关于逆矩阵java代码和编程求逆矩阵的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





