(1)迭代法求平方根
例题:
用迭代法求a的平方根,要求前后两次求出的x的差的绝对值小于10的-5次方。输出平方根时保留2位小数。x与a用double类型数据。
例:
输入:2 输出:1.41
把要求的数带入xn,即xn=a=2(然后进行循环)
(2)用牛顿迭代法求方程的根
例题:
用牛顿迭代法求方程在1.5附近的根:a*x*x*x+b*x*x+c*x+d=0.
从键盘上输入a,b,c,d,计算x的值。
例:
输入:2.0,-4,3,-6 输出:x=2.00
这个1.5,只是方程的根周围的一个数,也就是说可以用方程的根周围的一个数来求出方程的一个根。
(3)用二分法求方程的根
精度控制方式: f(c)的绝对值小于10的-5次方(c为中点)
给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下:
1、确定区间[a,b],验证f(a)·f(b)<0,给定精确度ξ.
2、求区间(a,b)的中点c.
3、计算f(c).
(1) 若f(c)=0(即|f(c)|<1e-5),则c就是函数的零点,程序结束;
(2) 若f(c)!=0 并且 f(a)·f(c)<0,则令b=c;
(3) 若f(c)!=0 并且 f(c)·f(b)<0,则令a=c.
(4) 重复2-3.
即用f(a)*f(b)<0这个特性来不断的逼近函数的根。其中可以先用f(c)=(f(a)+f(b))/2来大大的缩减循环的次数,然后通过f(a)*f(b)>0或者f(a)*f(b)<=0来不断的用f(c)替换f(a)或者f(b)进行循环,直到求出的函数的根在精度的要求的范围当中。
例题
用二分法求方程在(-10,10)之间的根:a*x*x*x+b*x*x+c*x+d=0.
从键盘上输入a,b,c,d,计算x,精度输入:2,-4,3,-6 输出:x=2.00为10的-5次方,输出时保留2位小数。
while(fabs(F(x2))>1e-5)
{
if(F(x0)*F(x2)<0)
{
x1=x2;
x2=(x0+x1)/2;
}
else
{
x0=x2;
x2=(x0+x1)/2;
}
}