您的位置:首页 > 编程语言 > Java开发

用Java计算矩阵的上三角矩阵

2017-03-06 00:00 295 查看
今天在《科学计算方法》课堂上,老师让我们用MATLAB把一个矩阵转换为“上三角矩阵”,我想用Java试一下:

/**
* 求一个矩阵的上三角矩阵
* Created by Administrator on 2017/3/6.
*/
public class Shuzu {
public static void main(String[] args) {
double[][]  a= new double[4][4];         //可以在定义时直接初始化矩阵啊,比如int[]={2,3,4};
int w=1;
for(int i=0;i<4;i++ ){
for(int j=0;j<4;j++){
a[i][j]=w;             //如果上面定义时是  int[][]  a= new int[4][];就会出现空指针异常,
// 因为电脑不知道将值分配到哪里
w++;
}
}
double[] m=new double[4];
for(int k=0;k<3;k++){
for(int i=k+1;i<4;i++){
if(a[k][k]==0)break;            //如果除数等于零,会报错,永远要相信电脑是不会乱给你报错的
m[i]=a[i][k]/a[k][k];            //AruthmrticException/by zero.因为除数为零了,所以异常,说明
//这个矩阵不是满秩矩阵
for(int j=k;j<3;j++)
a[i][j]=a[i][j]-a[k][j]*m[i];
}}
for(int i=0;i<4;i++ ){
for(int j=0;j<4;j++){
System.out.print ("    "+a[i][j]);
}
System.out.println();}
}
}

逻辑能力非常重要,当需要使用多个循环时,一定要分清楚每一个循环的结构(即这个循环所要完成的事情),可以从里向外,也可以从外向里(个人推荐从外向里,再从里向外)。画图尤其重要,在纸上画一画总是好的。

/int[][] aa={{2,3},{3,3},{4,4},{3,4}};数组的赋值要么在定义的时候直接完成,否则只能遍历赋值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  矩阵 上三角矩阵