亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qrdecomposition.java

?? java語言實現的矩陣計算程序包: 本包使用java語言開發
?? JAVA
字號:
package Jama;
import Jama.util.*;

/** QR Decomposition.
<P>
   For an m-by-n matrix A with m >= n, the QR decomposition is an m-by-n
   orthogonal matrix Q and an n-by-n upper triangular matrix R so that
   A = Q*R.
<P>
   The QR decompostion always exists, even if the matrix does not have
   full rank, so the constructor will never fail.  The primary use of the
   QR decomposition is in the least squares solution of nonsquare systems
   of simultaneous linear equations.  This will fail if isFullRank()
   returns false.
*/

public class QRDecomposition implements java.io.Serializable {

/* ------------------------
   Class variables
 * ------------------------ */

   /** Array for internal storage of decomposition.
   @serial internal array storage.
   */
   private double[][] QR;

   /** Row and column dimensions.
   @serial column dimension.
   @serial row dimension.
   */
   private int m, n;

   /** Array for internal storage of diagonal of R.
   @serial diagonal of R.
   */
   private double[] Rdiag;

/* ------------------------
   Constructor
 * ------------------------ */

   /** QR Decomposition, computed by Householder reflections.
   @param A    Rectangular matrix
   @return     Structure to access R and the Householder vectors and compute Q.
   */

   public QRDecomposition (Matrix A) {
      // Initialize.
      QR = A.getArrayCopy();
      m = A.getRowDimension();
      n = A.getColumnDimension();
      Rdiag = new double[n];

      // Main loop.
      for (int k = 0; k < n; k++) {
         // Compute 2-norm of k-th column without under/overflow.
         double nrm = 0;
         for (int i = k; i < m; i++) {
            nrm = Maths.hypot(nrm,QR[i][k]);
         }

         if (nrm != 0.0) {
            // Form k-th Householder vector.
            if (QR[k][k] < 0) {
               nrm = -nrm;
            }
            for (int i = k; i < m; i++) {
               QR[i][k] /= nrm;
            }
            QR[k][k] += 1.0;

            // Apply transformation to remaining columns.
            for (int j = k+1; j < n; j++) {
               double s = 0.0;
               for (int i = k; i < m; i++) {
                  s += QR[i][k]*QR[i][j];
               }
               s = -s/QR[k][k];
               for (int i = k; i < m; i++) {
                  QR[i][j] += s*QR[i][k];
               }
            }
         }
         Rdiag[k] = -nrm;
      }
   }

/* ------------------------
   Public Methods
 * ------------------------ */

   /** Is the matrix full rank?
   @return     true if R, and hence A, has full rank.
   */

   public boolean isFullRank () {
      for (int j = 0; j < n; j++) {
         if (Rdiag[j] == 0)
            return false;
      }
      return true;
   }

   /** Return the Householder vectors
   @return     Lower trapezoidal matrix whose columns define the reflections
   */

   public Matrix getH () {
      Matrix X = new Matrix(m,n);
      double[][] H = X.getArray();
      for (int i = 0; i < m; i++) {
         for (int j = 0; j < n; j++) {
            if (i >= j) {
               H[i][j] = QR[i][j];
            } else {
               H[i][j] = 0.0;
            }
         }
      }
      return X;
   }

   /** Return the upper triangular factor
   @return     R
   */

   public Matrix getR () {
      Matrix X = new Matrix(n,n);
      double[][] R = X.getArray();
      for (int i = 0; i < n; i++) {
         for (int j = 0; j < n; j++) {
            if (i < j) {
               R[i][j] = QR[i][j];
            } else if (i == j) {
               R[i][j] = Rdiag[i];
            } else {
               R[i][j] = 0.0;
            }
         }
      }
      return X;
   }

   /** Generate and return the (economy-sized) orthogonal factor
   @return     Q
   */

   public Matrix getQ () {
      Matrix X = new Matrix(m,n);
      double[][] Q = X.getArray();
      for (int k = n-1; k >= 0; k--) {
         for (int i = 0; i < m; i++) {
            Q[i][k] = 0.0;
         }
         Q[k][k] = 1.0;
         for (int j = k; j < n; j++) {
            if (QR[k][k] != 0) {
               double s = 0.0;
               for (int i = k; i < m; i++) {
                  s += QR[i][k]*Q[i][j];
               }
               s = -s/QR[k][k];
               for (int i = k; i < m; i++) {
                  Q[i][j] += s*QR[i][k];
               }
            }
         }
      }
      return X;
   }

   /** Least squares solution of A*X = B
   @param B    A Matrix with as many rows as A and any number of columns.
   @return     X that minimizes the two norm of Q*R*X-B.
   @exception  IllegalArgumentException  Matrix row dimensions must agree.
   @exception  RuntimeException  Matrix is rank deficient.
   */

   public Matrix solve (Matrix B) {
      if (B.getRowDimension() != m) {
         throw new IllegalArgumentException("Matrix row dimensions must agree.");
      }
      if (!this.isFullRank()) {
         throw new RuntimeException("Matrix is rank deficient.");
      }

      // Copy right hand side
      int nx = B.getColumnDimension();
      double[][] X = B.getArrayCopy();

      // Compute Y = transpose(Q)*B
      for (int k = 0; k < n; k++) {
         for (int j = 0; j < nx; j++) {
            double s = 0.0;
            for (int i = k; i < m; i++) {
               s += QR[i][k]*X[i][j];
            }
            s = -s/QR[k][k];
            for (int i = k; i < m; i++) {
               X[i][j] += s*QR[i][k];
            }
         }
      }
      // Solve R*X = Y;
      for (int k = n-1; k >= 0; k--) {
         for (int j = 0; j < nx; j++) {
            X[k][j] /= Rdiag[k];
         }
         for (int i = 0; i < k; i++) {
            for (int j = 0; j < nx; j++) {
               X[i][j] -= X[k][j]*QR[i][k];
            }
         }
      }
      return (new Matrix(X,n,nx).getMatrix(0,n-1,0,nx-1));
   }
   public static void main (String argv[]) {
     double[][] A = {
       {1,1,1},{2,-1,-1},{2,-4,-5}
     };
     double[][] B = {
       {1,2,2},{1,-1,-4},{1,-1,-5}
     };
     Matrix aa = new Matrix(A);
     QRDecomposition qr = new QRDecomposition(aa);
     Matrix H = qr.getR();
     double[][] bb = H.getArray();
     for(int i=0;i<bb.length;i++){
       for(int j=0;j<bb[i].length;j++){
         System.out.println("bb["+i+"]["+j+"] = "+bb[i][j]);
       }
     }
   }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图一区二区| 日韩欧美一级在线播放| 美女一区二区久久| 亚洲天堂成人网| 26uuu精品一区二区三区四区在线| 不卡一区二区中文字幕| 奇米在线7777在线精品| 亚洲欧美激情小说另类| 久久精品一区二区三区av| 欧美日韩精品高清| 最新欧美精品一区二区三区| 亚洲国产一区二区三区青草影视| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲日本中文字幕区| 26uuu国产电影一区二区| 国产精品毛片高清在线完整版| 粉嫩蜜臀av国产精品网站| 国产精品污www在线观看| 成人avav在线| 亚洲精品国产精华液| 欧美乱熟臀69xxxxxx| 狠狠色丁香婷婷综合| 国产精品久久一卡二卡| 欧美久久一区二区| 国产曰批免费观看久久久| 性做久久久久久| 国产区在线观看成人精品| 99久久精品一区| 一区二区三区在线观看国产| 91精品国产欧美一区二区成人| www.av精品| 国产一区二区调教| 麻豆国产欧美日韩综合精品二区 | 亚洲一区二区中文在线| 中文字幕在线不卡视频| 亚洲国产欧美日韩另类综合 | 国产精品1024| 国产一区二区福利| 国产精选一区二区三区| 久久国产精品99久久久久久老狼| 日本午夜精品视频在线观看| 天堂av在线一区| 日韩中文字幕1| 人人狠狠综合久久亚洲| 免费成人在线观看视频| 麻豆精品视频在线| 国产盗摄女厕一区二区三区| 豆国产96在线|亚洲| 成人激情视频网站| 99麻豆久久久国产精品免费| 91丨porny丨首页| 一本到不卡精品视频在线观看 | 久久天堂av综合合色蜜桃网| 蜜桃av一区二区在线观看| 99久久精品99国产精品 | 亚洲一区二区成人在线观看| 亚洲欧美日韩综合aⅴ视频| 亚洲免费在线电影| 亚洲国产日韩a在线播放性色| 午夜精品一区二区三区免费视频| 日韩成人精品在线| 国产精品一区三区| 99国产精品国产精品毛片| 欧美视频一区在线| 精品久久一区二区三区| 中文在线一区二区| 一级中文字幕一区二区| 日本成人在线电影网| 国产最新精品免费| 日本韩国一区二区三区| 欧美精品123区| 久久在线免费观看| 亚洲男人的天堂在线观看| 日韩成人一区二区| 国产99一区视频免费| 欧美亚洲国产一区在线观看网站| 91精品国产福利| 中文字幕不卡在线观看| 亚洲亚洲人成综合网络| 精品夜夜嗨av一区二区三区| av不卡在线观看| 欧美福利视频导航| 国产精品嫩草影院com| 五月婷婷综合网| 国产99久久久国产精品潘金| 欧美视频中文字幕| 欧美国产丝袜视频| 三级欧美韩日大片在线看| 国产成人免费网站| 欧美日韩三级视频| 国产女主播视频一区二区| 亚洲国产视频a| 成人国产精品免费观看动漫| 欧美片网站yy| 综合av第一页| 寂寞少妇一区二区三区| 欧美亚洲动漫制服丝袜| 国产欧美一区二区精品久导航 | 不卡视频一二三| 9191成人精品久久| 国产精品国产三级国产普通话三级 | 91亚洲精品久久久蜜桃| 欧美一三区三区四区免费在线看 | 国内外成人在线| 欧美色爱综合网| 国产精品传媒在线| 国产精品一区二区三区乱码| 538在线一区二区精品国产| 亚洲欧美在线视频观看| 国产一区二区影院| 欧美一区二区美女| 亚洲国产另类精品专区| 色拍拍在线精品视频8848| 日韩和欧美一区二区| 99国产欧美另类久久久精品| 久久精品水蜜桃av综合天堂| 免费成人美女在线观看.| 欧美性一二三区| 亚洲美女区一区| 97se亚洲国产综合自在线不卡| 欧美激情一区在线| 国产一区二区电影| 精品理论电影在线观看| 日本vs亚洲vs韩国一区三区二区 | 欧美一卡在线观看| 午夜私人影院久久久久| 在线观看视频一区二区| 中文字幕一区二区三区不卡在线| 国产精华液一区二区三区| 精品99久久久久久| 美国十次综合导航| 精品国产成人系列| 九色|91porny| 欧美电影精品一区二区| 日韩不卡一区二区| 日韩欧美国产一二三区| 美女被吸乳得到大胸91| 欧美岛国在线观看| 久久福利资源站| 欧美精品一区二区久久婷婷| 韩国女主播一区| 国产午夜亚洲精品羞羞网站| 懂色av一区二区在线播放| 国产精品欧美综合在线| www.欧美亚洲| 亚洲一线二线三线视频| 欧美理论片在线| 久久精品久久久精品美女| 日韩欧美不卡在线观看视频| 精品写真视频在线观看| 久久久亚洲精品石原莉奈| 国产99久久久精品| 亚洲蜜臀av乱码久久精品蜜桃| 在线视频欧美精品| 日本vs亚洲vs韩国一区三区二区| 精品毛片乱码1区2区3区| 国产精品一区二区黑丝| 成人免费在线视频观看| 欧美影院一区二区三区| 免费在线观看成人| 久久久久久**毛片大全| 91丨国产丨九色丨pron| 亚洲aⅴ怡春院| 欧美岛国在线观看| 99久久99久久精品免费观看| 亚洲电影视频在线| 欧美精品一区二区三区蜜桃视频 | 欧美一级国产精品| 国产一区二区三区综合| 亚洲精品日产精品乱码不卡| 欧美久久久久免费| 福利电影一区二区三区| 亚洲一二三级电影| 久久久噜噜噜久久中文字幕色伊伊| 成人app网站| 日韩国产精品久久| 欧美国产精品专区| 欧美日韩国产美女| 国产成人8x视频一区二区| 亚洲图片自拍偷拍| 欧美高清在线精品一区| 欧美精品自拍偷拍动漫精品| 韩国理伦片一区二区三区在线播放| 亚洲欧美激情在线| 久久亚洲综合色一区二区三区| 97精品久久久午夜一区二区三区 | 欧美不卡一区二区三区四区| 成人免费的视频| 日本大胆欧美人术艺术动态| 日韩成人精品视频| 成人免费毛片片v| 亚洲与欧洲av电影| 久久久精品黄色| 欧美日韩国产片| 99久久99精品久久久久久 | 国产伦精品一区二区三区免费| 亚洲精品国产a久久久久久| 2020国产精品久久精品美国| 欧美在线影院一区二区| 国产高清精品久久久久|