.NET的數學庫NMath實用教程——建立最小二乘法

NMath是一個適用於全部.NET語言,如C#、Visual Basic、F#和.NET的數學庫,它包含了.NET平臺上的面向對象數字計算的基礎類。咱們將以連載的形式向你們介紹NMath的實用教程,有任何建議或提示請在下方評論區留言,以便學習交流。函數

本節將介紹如何利用.NET/C#/VB/F#等建立最小二乘法解決方法。學習


線性方程Ax = y的最小二乘解由矩形矩陣A和y的矢量值構成。例如:3d

  • C#最小二乘法示例:
    var A =
       new DoubleMatrix( "4x2[1.0 20.0 1.0 30.0 40.0 1.0 50.0 1.0]" );
    var y = new DoubleVector( "[.446 .601 .786 .928]" );
    
    var lsq = new DoubleLeastSquares( A, y );
  • VB最小二乘法示例:
    Dim A =
      New DoubleMatrix("4x2[1.0 20.0 1.0 30.0 40.0 1.0 50.0 1.0]")
    Dim Y = New DoubleVector("[.446 .601 .786 .928]")
    Dim LSQ = New DoubleLeastSquares(A, Y)

能夠使用構造函數的可選布爾參數來添加模型的截距參數。若是爲真,則在求解最小二乘解以前,將一列可選布爾參數預先添加到矩陣A的深拷貝中。例如:對象

  • C#最小二乘法示例:
    var lsq = new FloatComplexLeastSquares ( A, y, true );
  • VB最小二乘法示例:
    Dim LSQ As New FloatComplexLeastSquares(A, Y, True)

對於高級用戶,您能夠指定用於計算的非默認容差有效等級。A的有效等級經過將那些小於容差乘以最大奇異值的奇異值視爲零來肯定。所以:blog

  • C#最小二乘法示例:
    double tolerance = 1e-5;
    var lsq =
       new DoubleComplexLeastSquares( A, y, false, tolerance );
  • VB最小二乘法示例:
    Dim Tolerance As Double = "1e-5"
    Dim LQS As New DoubleComplexLeastSquares(A, Y, False, Tolerance)

更多NMath實用教程敬請關注!教程

相關文章
相關標籤/搜索