3的平方根(怎样盘算一个数的平方根?)
看到这个标题,您或许会有两个想法:
1.按按盘算器就知道了,比如:√2=2^0.5=
1.4142135623730950488016887242097……;
2.是不是要介绍“手算开平方”?实在负疚,曾经的我也不是个十分专心的学生,竟是忘了。当然,百度一下,再度研究贴文也是可以的,不过兴致待定。
其实,本文想说的还就是和想法1有关。您有没有想过:盘算器又是怎样盘算的呢?
我不肯定盘算器背后的算法必定是什么,但我肯定的知道一种比拟可行的办法:应用迭代函数迭代盘算n次方根。今天就先来看看“二次方根”或“平方根”的盘算办法。
二次方根迭代函数如下:
f(x)=x/2+C/(2*x)
其中:
x^2=C
或
C^0.5=x
即:函数中的C是被开方数,x是求解目的“二次方根”。
(备注:呃,请不要问我这个迭代函数是怎么来的,据说和“泰勒级数”有关,这得从“数学剖析”中寻找答案,汗……)
什么是“迭代”?
①猜测一个初始值x0,比如:x0=1(不会猜,就选1);
②盘算函数值x1,其中:x1=f(x0),即把x0代入迭代函数求值;
③迭代:x0=x1;
④重复循环②③两步直至符合指定的精度请求。
可见:迭代就是把上一次输出的成果作为下一次输入的成果并重复履行。
这样做神奇吗?来让我们试试。
例1.求根号2的值。
①x0=1
②x1= x/2+C/(2*x)=1/2+2/(2*1)=1.5
③x0=x1=1.5
④x1= x/2+C/(2*x)=1.5/2+2/(2*1.5)≈1.416666667
⑤x0=x1=1.416666667
⑥x1= x/2+C/(2*x)=1.416666667/2+2/(2*1.416666667)≈1.414215686
⑦百思特网x0=x1=1.414215686
⑧x1= x/2+C/(2*x)=1.414215686/2+2/(2*1.414215686)≈1.414213562
⑨……
只需迭代4次就可以得到9位小数精度,足够敷衍很多盘算须要了。
例2.求1234567的平方根。
嘿嘿,手算根本是不可能的,小数位数多,会让人抓狂的,下面是电子表格盘算的数据,供参考:
第1次 1
第2次 617284
第3次 308643
第4次 154323.5
第5次 77165.74993
第6次 38590.87441
第7次 19311.4327百思特网9
第8次 9687.68106
第9次 4907.558926
第10次 2579.561651
第11次 1529.078654
第12次 1168.235696
第13次 1112.507369
第14次 1111.111582
第15次 1111.110706
……
迭代了15次后,到达了一般稳固精度请求。不过,如果初始值不是1,而是与精确值更接近一些,比如1000,则迭代次数会大幅降低,如下:
第1次 1000
第2次 1117.2835
第3次 1111.127757
第4次 1111.110706
……
仅需4次。初值的选百思特网择是很主要的,好的初值估量,算是核心技巧。
本文算是帮您打开了一扇门,但同时,您会发明更多关上的门,比如:三次方根呢?四次、五次、小数次、无理数次……方根呢?比如:被开方数是小数、负数、无理数……呢?嘿嘿,这会让我们头很大的。