}
else if (fabs(f(b)) <= e)
{
printf("solution: %lg\n", b);
}
else if (f(a)*f(b) > 0)
{
printf("f(%lg)*f(%lg) > 0 ! need <= 0 !\n", a, b);
}
else
{
while (fabs(b-a) > e)
{
double c = (a+b)/2.0;
if (f(a)* f ( c ) < 0)
b = c;
else
a = c;
}
printf("solution: %lg\n", (a+b)/2.0);
}
return 0;
}
7.方法总结7.1二分法解题的基本步骤:
1)计算f(x)的有根区间[a,b]端点处的值f(a),f(b)。
2)计算f(x)的区间中点的值f((a+b)/2)。
3)进行函数值的符号比较。
4)根据误差估计二分到一定次数达到精度,从而求得近似值。
7.2二分法的优缺点:
优点:算法简单,容易理解,且总是收敛的
缺点:收敛速度太慢,浪费时间
所以,在以后的学习过程中,我们将根据方程的形式和二分法的优缺点不单独将其用于求根,只用其为根求得一个较好的近似值,方便其他方法的运算。
8. 结 论(1)针对现实中的许多剖面设计、轨道设计等关键参数方程中三角函数多、计算工作量较大、迭代收敛条件强等问题,采取数学变化的方法将该方程转化成一个只包含对数函数和多项式函数的新方程,并提出了寻找求解区间的步长搜索算法和自适应步长搜索算法,进而使用二分法求新方程的数值解。
(2)数学分析和数值实践表明,该算法不仅能够正确判断设计方程是否有解,而且在有解的情况下能够正确求出该解,计算量小,计算过程稳定。
参考文献【1】曾毅; 改进的遗传算法在非线性方程组求解中的应用[J]; 华东交通大学学报; 2004 年04期; 136-138
【2】许小勇,宋昔芳; 一种求解非线性方程全部实根的算法与实现 [J];科技广场;2007年01期; 15-17
【3】王兴华,郭学萍; 二分法及其各种变形收敛性的统一判定法则 [J];高等学校计算数学学报; 1999年04期
【4】苗慧; 解非线性方程的若干算法的收敛性分析 [D];浙江大学; 2006年
【5】李晓霞; 关于若干迭代算法的收敛性分析 [D];浙江大学; 2002年
【6】李庆扬,王能超,易大义;数值分析第4版 TUP 清华大学; 2001年5月