可以用牛顿法
理论上完全可行
所用的全是分数
可以百度一下牛顿法开平方
下面用软件举个开根号2的例子
用软件是为了提高精度
如果对精度要求不高,手算完全ok
比如算到577/408
误差只有0.000002
完全可以满足日常需求
而3位数的运算简直不要太简单
x=1
%初值代1
for i=1:5
%循环5次
x=sym(x-(x^2-2)/(2*x))
%把(x-(x^2-2)/(2*x))赋值给x
end
vpa(x,60)
%保留60位有效数字
x =
1
x =
3/2
误差0.08
x =
17/12
误差0.002
x =
577/408
误差0.000002
x =
665857/470832
误差0.000000000001
x =
886731088897/627013566048
误差2*10负16次方
ans =
1.41421356237309504880168962350253024361498192577619742849829
容易发现牛顿法算出来的结果是个分数,循环5次后的结果是886731088897/627013566048
四舍五入保留60位有效数字是
1.41421356237309504880168962350253024361498192577619742849829
在同等计算精度下
牛顿法远远快与于二分法
可以发现第3步循环时就算出了577/408
误差只有0.000002
仅仅3位数的运算就算出来了小数点后5位的精度
如果用二分法1.414215*1.414215单看这一步计算量就到达了7位数运算,可见运算量远远大于牛顿法