用C++编写程序:采用二分法求x^2-2=0的近似算术平方根
时间: 2024-09-20 15:15:42 浏览: 47
在C++中,我们可以使用二分搜索法(也称折半查找法)来逼近一个方程的根,例如 `x^2 - 2 = 0` 的近似算术平方根。这个算法假设目标函数在一个区间内连续并递增,然后通过不断缩小搜索范围找到解。
下面是一个简单的二分查找求解 `sqrt(2)` 的C++代码示例:
```cpp
#include <iostream>
#include <cmath>
double binarySearchSqrt(double a) {
double lower_bound = 0.0;
double upper_bound = a;
// 当下界小于等于上界时继续迭代
while (lower_bound <= upper_bound) {
double mid = (lower_bound + upper_bound) / 2.0; // 计算中间值
if (pow(mid, 2) == a) { // 如果精确匹配,返回该值
return mid;
} else if (pow(mid, 2) < a) { // 如果平方小于目标值,调整下界
lower_bound = mid + 0.000001; // 考虑浮点数精度,稍微增大下限
} else { // 如果平方大于目标值,调整上界
upper_bound = mid - 0.000001; // 减小上限
}
}
return lower_bound; // 返回最终逼近的结果,通常非常接近实际根
}
int main() {
double target = 2.0;
double approx_root = binarySearchSqrt(target);
std::cout << "Approximate square root of " << target << " is " << approx_root << std::endl;
阅读全文