C 平方根 /巴比伦法
C++ Square root / Babylonian method?
我找到了这种计算YouTube视频中平方根的方法,但是我无法理解其背后的数学概念,代码可以完美地工作,任何人都可以向我解释这在此中会发生什么代码?
#include <iostream>
using namespace std;
int main(){
float estimation = 1, num;
cout << " input :";
cin >> num;
for (int i = 0; i < 20; i++){
estimation = (estimation + (num / estimation)) / 2;
}
cout << estimation << 'n';
return 0;
}
链接:https://www.youtube.com/watch?v=qbaj1kqjyeu
这是f(x)=x²-a
的牛顿方法
N(x) = x - f(x)/f'(x) = x - (x²-a)/(2x) = (x+a/x)/2
计算数量也很有帮助
( N(x) - sqrt(a) ) / (N(x) + sqrt(a) )
= ( x - sqrt(a) )² / ( x + sqrt(a) )²
表明每个步骤中的错误大约是上一个错误的平方,或者也表示,有效数字的数量在每个步骤中或多或少都会倍增。
它只是估计正方根的巴比伦方法:
https://www.deltacollege.edu/dept/basicmath/babylonian.htm
巴比伦广场根
步骤1:猜测。
步骤2:将您的原始号码除以您的猜测。
步骤3:找到这些数字的平均值。
步骤4:使用此平均值作为下一个猜测。
在上面的代码中:
步骤1(估算平方根的数字(作为用户的输入,并存储在num
中。在这种情况下,estimation
是1
:
cin >> num;
步骤2和步骤3一起:
estimation = (estimation + (num / estimation)) / 2;
步骤4:
for (int i = 0; i < 20; i++){
// ...
}
在这种情况下,该过程重复20次。
另外,如果它始终以estimation
为1
,那么如果将其设置为num/2
,则会更好。
相关文章:
- 平方根内禀反比
- 简单的平方根
- 是否有一个C++函数可以准确返回平方根反比的内置 CPU 操作 RSQRTSS 的值?
- 试图找到一个数字的平方根,但代码不起作用。C++
- 使用二分法查找数的平方根时出现问题
- 如何使用C 获取周期十进加点号的平方根
- C 平方根 /巴比伦法
- 这种浮点平方根近似是如何工作的
- 使用位移算法计算平方根始终输出相同的数字
- C 查找无SQRT函数循环故障的平方根
- 如何获取数组中每个数字的平方根 (C++)
- 为什么我不能在犰狳中得到这个对称正定矩阵的平方根?
- 平方根代码C 无SQRT()
- 编程手动平方根函数
- 如何在C 中找到具有20位精度的平方根
- 确定平方根是否是整数
- 歧义平方根
- 求解平方根反比
- 是否有用于双精度平方根反比的快速 C 或 C++ 标准库函数
- 如何利用遗传算法求C中数的平方根来实现选择和交叉