# nlcpp **Repository Path**: ice_elegant/nlcpp ## Basic Information - **Project Name**: nlcpp - **Description**: 基于C++的数值计算算法库(Numerical Library in C Plus Plus) 目前包含的算法实现包括: 非线性方程的数值求解 线性方程组的求解 插值 数值积分 常微分方程的数值解法 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-03-23 - **Last Updated**: 2023-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # nlcpp 基于C++的数值算法库(基于Apache 2.0协议) ## 特性 ### 非线性方程的数值求解 + 二分法 + 一般迭代法 + 牛顿迭代法 ### 线性方程组的求解 + 雅克比迭代 + 高斯-赛德尔迭代 + 高斯消元法(全主元消元法) + LU分解法 ### 插值与拟合 + 拉格朗日插值、牛顿插值 + 分段插值 + 最小二乘法 ### 数值积分 + Newton-Cotes求积 + 复化求积 + Romberg求积 ### 常微分方程的数值解法 + Euler法(显式Euler法、改进Euler法) + 经典的四阶Runge-Kutta法 ## 状态 目前已经初步测试了上述算法,但是仍然有许多需要完善的地方,包括增加一些新的算法实现,优化已有算法代码的效率等。 ## 使用方法 本项目依赖于Eigen,仅使用了其矩阵类,一些常用线性代数的算法都在nlcpp中自行实现了(虽然还有很多需要优化的地方)。 Eigen是一个仅需将其头文件包含到代码中就可以使用的库,与此相同,nlcpp也仅仅包含头文件。 具体使用方法可以参考test目录下相关文件,那里调用了一些算法用例。 此外,test目录下还提供了一个CMakeList.txt文件,通过在test/build下执行 cmake .. cmake --build . 可以编译这些用例程序,并生成一个名为nlcpp的可执行文件。运行该文件可以执行所有测试。