前言
NANA库是笔者用C++实现的SDK,笔者希望其成为一个用于教学和数学爱好者学习数学的SDK。读者可以访问NANA源代码下载源代码。访问NANA相关文档查看相关文档。笔者希望给大家带来更丰富的内容,更稳定的SDK。
NANA库的功能
解方程
例如,一元二次方程的解法
/*
* ret返回值:1表示有两个是根
* 0 两个相等的根
* -1两个虚根
* -2
*/
int QuadraticEquationSolving(double a, double b, double c, Complex &x1, Complex & x2) {
if (fabs(a) <= eps)
return -2;//不满足条件
int ret;
double d = b * b - 4.0*a*c;
double r1, r2;
double i1 = 0.0;
double i2 = 0.0;
double temp;
if (d > fabs(eps)) {
double root = sqrt(d);
temp = -b - sign(b)*root;
r1 = 2.0 * c / temp;
r2 =temp / 2 / a;
ret = 1;
}
else if(fabs(d)<=fabs(eps)){
double root = sqrt(d);
temp = -b -