利用Python求一个数的平方根,保留两位小数
数学角度分析
假设给定的数值是b,设x=√a ,那么x^2=a,最后就可以建立一个方程式
f(x)= x^2 - a ,把这个函数视为一个曲线的斜率,也就是说原函数F(x) 的导函数 F`(x) = f(x)=x^2 - a, 将这个问题转换成梯度下降的问题,给定一个初始值,和一个学习率,递归去接最优值。
最总方程式: start= start - lean_rata*f(x)
Python代码实现
# 给定初始值为4
import math
# 给定初始值为4
a = 4
# 从零开始寻找
start = 0
# 给定一个学习率
lean_rata = 0.01
for i in range(1000):
start = start - lean_rata*(start**2 - a)
print('%d 的平方根为:%.2f ,真实值为:%.2f' % (a, start, math.sqrt(a)))
只是个人理解,若有不对的地方请多多指教。