OpenJudge

07:迭代法解方程

总时间限制:
2000ms
内存限制:
65536kB
描述
对函数y = f(x) = x*x*x + x + a(其中a大于0)。要直接求y=0时x的取值并不容易,但因为y是单调递增的函数,我们可以利用这个性质求x的近似值。取x1=-a,显然f(-a)小于0,取x2=0,显然f(a)大于0。我们规定近似误差不超过b(比如b=0.001)。这时我们取x=(x2-x1)/2,再判断(x2-x1)是否小于b,如果小于b,x就是我们要求的值,否则我们需要判断f(x)的取值,如果f(x)大于0,令x2=x,重新求解;如果f(x)小于0,令x1=x,也重新求解;如果f(x)恰好等于0,则以此x应作为最终x的取值。我们把这种求解的过程称为迭代法。
输入
第一行为数据数量n。其余个行每行包含两个浮点数a和b。
输出
输出为n行,每行输出对应的x和y的值。
样例输入
3
23 0.01
23 0.001
23 0.0001
样例输出
-2.726196 0.012314
-2.726547 0.004137
-2.726767 -0.000974
提示
除a,b外,其余浮点数均应为double类型变量。
来源
计算概论05
全局题号
1699
提交次数
14
尝试人数
7
通过人数
7