Thanks to visit codestin.com
Credit goes to github.com

Skip to content

开源Go语言数值算法库(An open numerical library purely based on Go programming language)

License

Notifications You must be signed in to change notification settings

chenchongswjtu/goNum

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

更新

  • 2018-12-13 增加常微分方程数值解法
  • 2018-12-13 增加定积分的数值算法,角度的三角和反三角函数
  • 2018-12-11 增加多项式拟合函数,次幂方法向整数的扩展,切片与矩阵的转换

关于goNum

goNum是一款完全以Go语言为基础的开源数值算法库,它可以使你像调用其它go函数一样使用其进行数值运算,且不依赖于任何外部库。 限于作者业余时间有限,目前功能还在一步步完善,算法还在慢慢添加。 绝大部分算法进行了典型状态测试,但不保证所有算法在所有状态下都是安全的、可靠的。 另外,需要注意的是,此算法库旨在解决问题,而不是实现语言的某些能力,即使作者正在努力使得go语言的独特性在其中充分体现。 如果您对作者的工作满意,请留心关注goNum的更新状态;如果您对作者的工作有所建议,请电邮:[email protected]。 或者,承蒙赏识,如果您愿意捐助关于goNum工作,请电邮联系作者。

欢迎有志之士加入开发。

安装环境

Linux或者Windows

  1. go 1.11(推荐)或更新版本;
  2. [可选] LiteIDE X34或更新版本;
  3. 请关注Linux和Windows换行符的区别。

安装方法

1. 在线安装

  1. 安装go;
  2. 运行go get命令:
go get github.com/chfenger/goNum

2. 下载源码安装

  1. 下载源代码,并解压到指定文件夹(例如“UserDir”)下的src目录或其子目录(例如“UserDir/src/”或“UserDir/src/xxx/xxx/”)下;
  2. 添加UserDir到GOPATH;
  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

致谢

  1. 非常感谢家人朋友们的支持和理解,为此推辞了许多业余活动.
  2. 特别感谢Google提供如此美妙的编程语言,希望再接再励,继续改善使之丰富。
  3. 感谢某实验室提供的免费服务器。

About

开源Go语言数值算法库(An open numerical library purely based on Go programming language)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%