math函数python实现
文章平均质量分 81
双花诞
这个作者很懒,什么都没留下…
展开
-
math库的Python实现原理(根号运算)
本系列主要使用Python 实现,主要展示计算机基本数学运算是如何实现的,对于Python中math底层应该是c写的,所以直接在库里查不到源代码,其中所有内容均是查阅的资料,不一定是最高效的,但会尽量去找最高效的代码。下面是根号运算,数学公式使用牛顿迭代法,其中迭代条件为精度,可根据需要修改,大量提高精度不会额外消耗过多时间。def mysqrt(x): val = x last ...原创 2018-05-31 22:04:55 · 14379 阅读 · 0 评论 -
math库的Python实现原理(pow(a, x)运算)
首先声明这并不一定是实际的底层函数,只是查阅资料根据公式写的,对于指数函数暂时只使用了泰勒展开,若有其他方法欢迎提供原理或公式,该算法原理比较简单,就是泰勒展开,里面需要利用的ln函数在上面的文章中已经提供了,其实也是泰勒展开但情况比这个gen,不过下面依旧会提供依赖函数的源码,该系列的目的就是利用基本运算符号,+-*/%进行math库的实现,%不算基本运算,但是太简单和基本就不写单独的了,公式...原创 2018-06-24 02:12:58 · 3405 阅读 · 0 评论 -
math库的Python实现原理(ln(x)运算)
这个是很有用的一个运算,除了本身可以求自然对数,还是求指数函数需要用到的基础函数。实现原理就是泰勒展开,最简单是在x=1处进行泰勒展开:但该函数离1越远越难收敛,同时大于2时无法收敛,所以需要进行换元,然后重新展开:但是该换元在接近0时或者接近无穷大时收敛困难,处在1到10范围内收敛快且精度高,所以对大于10或小于1的值进行分解如下:ln(55000)=ln(5.5)+4ln10ln(0.00...原创 2018-06-22 17:05:56 · 34252 阅读 · 0 评论