S9G7 平方根的估算
根号2的近似值 1.414... 要求得值可近似值可用十分逼近法,但这个计算量偏大,这次就用 Geogebra 来自动执行根号2的估算过程。

任务一 十分逼近法

说明:在表格区A2输入1,A3输入=A2+1,拖拉复制到10;B列记录A列平方的结果,B2输入=A2*A2,拖拉复制至100;C列记录增加0.1的结果,在C1输入0.1,C2输入1,C3输入=C2+C$1;复制B列到D列,得到C列对应的平方,在E列、G列、I列依次增加0.01、0.001、0.0001,F列、H列、J列记录E列、G列、I列的平方。
操作:
A3=A2+1
B2=A2*A2
#估算第1位小数
C1=0.1, C2=1, C3=C2+C$1
D2=C2*C2
#估算第2位小数
E1=0.01, E2=1.4, E3=E2+E$1
F2=E2*E2
#估算第3位小数
G1=0.001, G2=1.41, G3=G2+G$1
H2=G2*G2
#估算第4位小数
I1=0.0001, I2=1.414, I3=I2+I$1
J2= I2*I2
任务二 用CountIf自动更新

说明:利用CountIf自动更新无理数的近似值,为统计D列有多少个数比被开方数小,于是在D1输入=CountIf(k<n,n,D2:D11)-1 ,为更新数字,在E2输入=C2+C1*D1,依次把D1公式复制到F1、H1、J1,E2公式复制到C2、G2、I2,最后创建[更新]按钮,加上文本显示.
操作:
n=2
输入框输入根号,关联到[n]
D1=CountIf(k<n,n,D2:D11)-1
F1=CountIf(k<n,n,F2:F11)-1
H1=CountIf(k<n,nH2:H11)-1
J1=CountIf(k<n,n,J2:J11)-1
E2=C2+C1*D1
C2=A2+A1*B1
G2=E2+E1*F1
I2=G2+G1*H1
建立[更新]按钮 UpdateConstruction()
输入文本

除了建立[更新]按钮之外,还可以设置滑动条的脚本如下:

小结
Geogebra 的试算表很适合做大量有规律的运算。对于这个十分逼近法的流程,就很适合用试算表来处理。要让这个计算可以自动化,就需要一些小巧思,在此节主要是利用 CountIf 来判断。而根号二的估计除了使用十分逼近法外,也有种二分逼近法,每次取中间值来做判断。鼓励大家可尝试来改写一个二分逼近法的版本。
相关链接
【GGB】https://www.geogebra.org/classic/uub2xcms
【Bili】https://www.bilibili.com/video/BV1vQ4y1R7n5
【youtube】https://www.youtube.com/playlist?list=PLXH05kw-i_5K4LNUB8Bh8q8UM-2RgMb0Q