关于代码实现一个数求平方根
2017-12-21 19:16
549 查看
记该数为a,a的平方根记为x,则√a=x,写为x^2=a,
f(x)=x^2-a,那么求方根的问题就转化为求f(x)在x轴交点的问题;
若F(x)为f(x)的原函数,F'(x)=f(x)=x^2-a=0,就是求F(x)极值点的问题了(这样就转化到梯度下降上去了)
因此代码可以这样写:
关于python里 % 的用法,参照 https://www.cnblogs.com/vamei/archive/2013/03/12/2954938.html
部分结果为:
1的平方根(近似)为:1.00000000,真实值是:1.00000000
2的平方根(近似)为:1.41421356,真实值是:1.41421356
3的平方根(近似)为:1.73205081,真实值是:1.73205081
4的平方根(近似)为:2.00000000,真实值是:2.00000000
5的平方根(近似)为:2.23606798,真实值是:2.23606798
6的平方根(近似)为:2.44948974,真实值是:2.44948974
7的平方根(近似)为:2.64575131,真实值是:2.64575131
8的平方根(近似)为:2.82842712,真实值是:2.82842712
9的平方根(近似)为:3.00000000,真实值是:3.00000000
10的平方根(近似)为:3.16227766,真实值是:3.16227766
f(x)=x^2-a,那么求方根的问题就转化为求f(x)在x轴交点的问题;
若F(x)为f(x)的原函数,F'(x)=f(x)=x^2-a=0,就是求F(x)极值点的问题了(这样就转化到梯度下降上去了)
因此代码可以这样写:
import math if __name__ == "__main__": learning_rate = 0.01 for a in range(1,100): cur = 0 for i in range(1000): cur -= learning_rate*(cur**2 - a) print(' %d的平方根(近似)为:%.8f,真实值是:%.8f' % (a, cur, math.sqrt(a)))
关于python里 % 的用法,参照 https://www.cnblogs.com/vamei/archive/2013/03/12/2954938.html
部分结果为:
1的平方根(近似)为:1.00000000,真实值是:1.00000000
2的平方根(近似)为:1.41421356,真实值是:1.41421356
3的平方根(近似)为:1.73205081,真实值是:1.73205081
4的平方根(近似)为:2.00000000,真实值是:2.00000000
5的平方根(近似)为:2.23606798,真实值是:2.23606798
6的平方根(近似)为:2.44948974,真实值是:2.44948974
7的平方根(近似)为:2.64575131,真实值是:2.64575131
8的平方根(近似)为:2.82842712,真实值是:2.82842712
9的平方根(近似)为:3.00000000,真实值是:3.00000000
10的平方根(近似)为:3.16227766,真实值是:3.16227766
相关文章推荐
- 关于实现多个button只实现可以选中一个的代码
- 关于一个 date-time 时间服务的daemon process 的代码实现
- 关于AdoHelper的一个方便之处的代码实现细节
- 用PHP实现一个关于德州扑克算法的程序(四):代码
- 关于 数据源 导出excel (这是) 通过 画一个html 实现的、最简单、好理解、的代码、
- 分布式编程->Remoting的一个代码示例(借助Remoting实现发送信息功能)
- 有关打印、收藏等的JS代码(打印等主要使用了一个IE组件来实现)
- Remoting的一个代码示例(借助Remoting实现发送信息功能)
- 推荐一个关于AOP的AOP@WORK的专栏作者的AOP专题系列文章,主要关于Java下的AOP实现,毕竟Java下的AOP实现确实要比.Net下成熟得多,共12篇
- 一个控件几行代码实现换肤(可支持菜单)
- 一个关于图片处理的代码
- hchxxzx--》一个实现图片上传/产生缩略图/在上传图片上写字功能的完整页面代码
- 一个关于Oracle分页的实现方案
- 用java实现简单的网络通信,相当于一个最简单的控制台qq(附代码) 推荐
- 一个简单的态机模式工作流演示(2)(代码与实现)
- 分形介绍 && 一个简单的Kotch curve实现代码
- 一个相当不错的地区代码级联实现
- 关于上一个接口实现的解决方案
- [原创]一个关于日期比较与排列的代码!
- 一个基于TiledLayer实现的滚屏代码