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

今天在《科学计算方法》课堂上,老师让我们用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}};数组的赋值要么在定义的时候直接完成,否则只能遍历赋值

转载于:https://my.oschina.net/u/3321842/blog/852782

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值