開源Go語言數值演算法庫 An open numerical library purely based on Go programming language
關於goNum
goNum是一款完全以Go語言為基礎的開源數值演算法庫,它可以使你像呼叫其它go函式一樣使用其進行數值運算,且不依賴於任何外部庫。 限於作者業餘時間有限,目前功能還在一步步完善,演算法還在慢慢新增。 絕大部分演算法進行了典型狀態測試,但不保證所有演算法在所有狀態下都是安全的、可靠的。 另外,需要注意的是,此演算法庫旨在解決問題,而不是實現語言的某些能力,即使作者正在努力使得go語言的獨特性在其中充分體現。 如果您對作者的工作滿意,請留心關注goNum的更新狀態;如果您對作者的工作有所建議,請電郵:chengfengcool@sina.com。 或者,承蒙賞識,如果您願意捐助關於goNum工作,請電郵聯絡作者。
歡迎有志之士加入開發。
安裝環境
Linux或者Windows
- go 1.11(推薦)或更新版本;
- [可選] LiteIDE X34或更新版本;
- 請關注Linux和Windows換行符的區別。
安裝方法
-
線上安裝 1.1 安裝go; 1.2執行go get命令:
go get github.com/chfenger/goNum
- 下載原始碼安裝 2.1 下載原始碼,並解壓到指定資料夾(例如“UserDir”)下的src目錄或其子目錄(例如“UserDir/src/”或“UserDir/src/xxx/xxx/”)下; 2.2 新增UserDir到GOPATH; 2.3 重啟IDE或終端即可。
演算法
(持續更新中...)
- 基本數學
- 排列
- 二分法
- 組合
- 階乘
- 切片元素最大值
- 切片元素絕對值最大值
- 切片元素從大到小排序
- 切片元素最小值
- 切片元素絕對值最小值
- 切片元素從小到大排序
- 1範數
- 無窮範數
- 次冪擴充套件
- 角度的三角函式和反三角函式
- 矩陣
- 矩陣定義與操作
- 求矩陣行列式的列主元消去法
- 返回n階單位矩陣(二維切片表示)
- 求矩陣逆的列主元消去法
- 求對稱正定矩陣的平方根分解法
- 求矩陣Doolittlede LU分解
- 求對稱矩陣全部特徵值及其特徵向量,經典雅可比法
- 求對稱矩陣全部特徵值及其特徵向量,雅可比過關法
- 求矩陣A的主特徵值及其特徵向量
- 解一般方程
- 求解非線性方程的牛頓迭代
- 搜尋法求方程解
- 單點弦截法
- 雙點弦截法
- 簡單迭代求解類x=g(x)方程的解
- 簡單迭代求解類x=g(x)方程的解(Aitken加速)
- 插值
- Hermite插值
- Hermite插值函式
- Lagrange插值
- Lagrange插值函式
- Newton插值
- Newton前向插值
- 用節點處的一階導數表示的三次樣條插值函式(一階導數邊界條件)
- 用節點處的一階導數表示的三次樣條插值函式(二階導數邊界條件)
- 用節點處的二階導數表示的三次樣條插值函式(一階導數邊界條件)
- 用節點處的二階導數表示的三次樣條插值函式(二階導數邊界條件)
- 數值積分
- 1-8級復化Newton-Cotes求積分公式
- 1-8級逐次分半復化Newton-Cotes求積分公式
- 不超過8次的Gauss-Lagendre求積分公式
- 1-8級Newton-Cotes求積分公式
- Rumberg(龍貝格)求積分公式
- 解線性方程組
- 求解矛盾方程組的最小二乘法
- 追趕法求解嚴格對角佔優的三對角係數矩陣方程組
- 線性代數方程組的列主元消去法
- 解n階線性方程組的Jocobi迭代法(簡單迭代法)
- 解n階線性方程組的Seidel迭代法
- 解n階線性方程組的SOR(逐次超鬆弛)迭代法
- 資料擬合
- 多項式擬合
- 常微分方程
- 4步Adams外推(ODE)
- 三步Adams內插公式(ODE)
- Euler法(ODE)
- Euler預估校正(ODE)
- 梯形法(ODE)
- 二級二階Runge-Kutta法
- 四級四階Runge-Kutta法
許可證書
goNum是一款開源自由演算法庫,您可以根據自己的需求釋出或者修改,但這一切需要在GNU GPL(General Public License) v3.0 或者較新版本的許可下進行。關於此許可證內容詳見根目錄下LICENSE檔案或者http://www.gnu.org/licenses/。
程鋒 版權所有 2018
致謝
- 非常感謝家人朋友們的支援和理解,為此推辭了許多業餘活動.
- 特別感謝Google提供如此美妙的程式語言,希望再接再勵,繼續改善使之豐富。
- 感謝某實驗室提供的免費伺服器。感謝某實驗室提供的免費伺服器。
相關文章
- The Go Programming LanguageGo
- Dropbox 開源其 Go 語言庫Go
- Go 語言開源 Excelize 基礎庫影片教程GoExcelize
- go語言變數的宣告與賦值Go變數賦值
- [Go 夜讀 第 139 期] Go 語言 Excelize 開源基礎庫介紹GoExcelize
- go語言變數Go變數
- go語言變數宣告後的預設值Go變數
- Go語言誕生5週年!10大Go語言開源專案推薦Go
- GO語言————4.4 變數Go變數
- GO語言————6.2 函式引數與返回值Go函式
- Go語言————1、初識GO語言Go
- 1901:The C programming language !(C語言)C語言
- go語言教程哪裡有?go 語言優秀開源專案彙總Go
- Go 語言開源 CI/CD 容器 Drone 介紹Go
- go語言安卓開發Go安卓
- go開源庫之jwt-go使用GoJWT
- 初學Go語言 變數Go變數
- Go 語言變數作用域Go變數
- Go語言庫系列之emailGoAI
- go語言標準庫 - logGo
- go語言標準庫 - timeGo
- go 語言位操作庫 bitsetGo
- Go_go語言初探Go
- GO語言Go
- GO語言————2、GO語言環境安裝Go
- 開源go-zero作者描述自己從Java到Go語言經歷 - RedditGoJava
- GO語言必備的五大開源工具!Go開源工具
- Go語言引數傳遞是傳值?還是傳引用 ?Go
- Go語言引數傳遞是傳值還是傳引用Go
- Go 語言入門教程:變數Go變數
- go語言獲取外部引數Go
- go語言標準庫 - strconvGo
- Go語言運算元據庫Go
- Go 語言 viper 庫上手實踐Go
- Go語言面試題分享:選擇題11道(2)go語言開發Go面試題
- go 語言常量Go
- Go語言mapGo
- go 語言切片Go