作者:叔叔123 | 来源:互联网 | 2024-10-23 00:06
NANA介绍前言NANA库的功能解方程统计理论运算库实现矩阵运算数值分析算法仿生学算法神经网络笔者的话前言NANA库是笔者用C实现的SDK,笔者希望其成为一个用于教学
NANA介绍
- 前言
- NANA库的功能
- 解方程
- 统计理论运算库
- 实现矩阵运算
- 数值分析算法
- 仿生学算法
- 神经网络
- 笔者的话
前言
NANA库是笔者用C++实现的SDK,笔者希望其成为一个用于教学和数学爱好者学习数学的SDK。读者可以访问NANA源代码下载源代码。访问NANA相关文档查看相关文档。笔者希望给大家带来更丰富的内容,更稳定的SDK。
NANA库的功能
解方程
例如,一元二次方程的解法
/** ret返回值&#xff1a;1表示有两个是根* 0 两个相等的根* -1两个虚根* -2 */int QuadraticEquationSolving(double a, double b, double c, Complex &x1, Complex & x2) {if (fabs(a) <&#61; eps)return -2;//不满足条件int ret;double d &#61; b * b - 4.0*a*c;double r1, r2;double i1 &#61; 0.0;double i2 &#61; 0.0;double temp;if (d > fabs(eps)) {double root &#61; sqrt(d);temp &#61; -b - sign(b)*root;r1 &#61; 2.0 * c / temp;r2 &#61;temp / 2 / a;ret &#61; 1;}else if(fabs(d)<&#61;fabs(eps)){double root &#61; sqrt(d);temp &#61; -b - sign(b)*root;r2 &#61; r1 &#61; 2 * c / temp; ret &#61; 0;}else {double doua &#61; 2.0*a;r1 &#61; r2 &#61; -b / (doua);i1 &#61; sqrt(-d)/ doua;i2 &#61; -i1;ret &#61; -1;}x1 &#61; Complex(r1, i1);x2 &#61; Complex(r2, i2);return ret;}
统计理论运算库
例如&#xff0c;Box-muller变换生成正态分布的随机数
/**randn返回0-1的正态分布的随机数*类型T 允许的三种形式float double long double*/
template
void randn(T & y, uint seed &#61; 0, bool flag &#61; false) {if (!flag) {srand(time(NULL));}else {srand(seed);}T x1, x2;x1 &#61; rand() % RAND_MAX / (T)RAND_MAX;x2 &#61; rand() % RAND_MAX / (T)RAND_MAX;y &#61; sqrt(-2 * log(x1))*cos(2.0 * NA_PI*x2);
}
实现矩阵运算
数值分析算法
仿生学算法
GA模块中提供了遗传算法的实现过程
神经网络
笔者的话
笔者郑重承诺&#xff0c;NANA将永远免费&#xff0c;且在笔者能够码得动代码的岁月里&#xff0c;一直更新下去。