MIT计算机JAVA课件lecture21.pdfVIP

  • 1
  • 0
  • 约9.24千字
  • 约 15页
  • 2017-08-26 发布于河南
  • 举报
1.00 第21讲 2005.10.28 矩阵 矩阵 • 矩阵是一个2维数组,有m行n列 -- 在数学符号里,我们使用标号1,...m和1,…n。 -- 在Java里,通常使用0,…m-1和0,…n-1 。 矩阵和线性系统 • 矩阵通常代表一系列的线性方程: -- n个未知x ,有m个方程 -- 系数a 已知,右边的b也已知 矩阵表示 矩阵,p.2 • 若n=m,得到只有唯一解方程组。困难: -- 若任意行(方程)或列(变量)是其他的线性组合, 则矩阵为退化矩阵或者说是不满秩的矩阵。没有解 答。你的模型很可能是错误的,需要修改。 -- 若行或列是几乎是线性组合,在计算过程中舍入误差 会使他们线性相关。即使有解答,我们也会因此而未 能得到。 -- 舍入误差能很快的累积。当在方程组中引入舍入误 差,你会得到解答,但你会发现这并不是一个解答。 (右边不和左边相一致) • 大的线性系统易于接近奇异(退化)。注意! -- 我们下一讲中将来解线性系统 矩阵,p.3 • 在本讲中我们介绍基本的矩阵知识和计算 --通常作为使用矩阵解决线性系统问题的基础 • Java中就有2维数组,以以下方式声明: double[][] squareMatrix= new double[5][5]; --但此数组没有嵌入式方法 矩阵,p.4 • 因此,这对于创建矩阵类是有用的: --创建方法来加,减,乘,组成矩阵方程等 • 只有很少部分矩阵用不同的方法来解决: --几乎所有的大矩阵都是很稀少的(99% 以上的 元素为0 ) --在列表或1维数组或其他数据结构中存储(i,j, 值) 2维数组 行的编号=data.length 2维数组就是: 这就是我们将要在矩阵类中保存矩阵数据的方法。 矩阵类,p.1 public class Matrix { private double[][] data; // 参考数组 //Matrix构造函数 public Matrix(int m, int n) { data = new double[m][n]; } 稀疏矩阵例子 Arc Cost矩阵 矩阵类,p.2 //设置矩阵恒等式的方法 public void setIdentity() { int i,j; int nrows = data.length; int ncols = data[0].length; for(i=0; inrows; i++) for(j=0; jncols; j++) if(i == j) data[i][j]= 1.0; else data[i][j]= 0.0; }

文档评论(0)

1亿VIP精品文档

相关文档