自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 高精度反正切函数的实现

高精度反正切函数的实现反正切函数的根本实现方法还是泰勒展开式逼近,但它不能单独采用,必须使自变量X趋进这个函数曲线的平滑度最高的点,这个点的收敛速度最快,反正切函数arctan(x)的这个点是0和无穷大。这里采用趋近零的方法,arctan(x)中的x的值大多是没法用泰勒展开式计算或计算量太大,时间太长。这里需要通过反正切公式推导出合适的新的公式,把对 Arctan(x)的直接运算转换成arctan(0.000…xxx)运算,然后通过公式反算回去:公式原型:Arctan(x)=Arctan(y)+Ar

2020-12-20 11:24:39 2057 1

原创 大数(正整数)除法之多精除以单精

大数运算中会经常遇到多精除以单精的情况,有时也会把某些除法分解成多精除以单精加快运行速度,这里所说单精数是不超过cpu位长二分这一的数,32位机是65535,在此以千进制数为例讲解一下具体实现, For i = 1 To 被除数数组长度 运算结果(i) = 被除数(i) \ 单精数 被除数(i + 1) = (被除数(i) M...

2017-08-05 15:04:28 550

原创 高精度加,减法算法

大数加,减法目前我所知道的算法:1)对于用子符串形式表示的数,可以直接相加,减,例:1 的ascii码为49,2 的ascii码为50,1+2的字符串相加为49+50=99 ,再减去一次48等于51,51是3的ascii码。2)对于直接用数的值表示的数,可以直接相加减,也可以换算成大的进制表示形式进行运算,理论上大进制表示的数运行效率更高,如:1234+4567,当十进制时要运行4次加法,...

2017-07-30 10:03:55 773

原创 大数除法之迭代法

上一篇文章讲到了估商法的原理,有了一个不错的效率,但在要求精度较大时,速度和迭代法相比差距很大。 除法:u/y=u*(1/y); 先讲一下倒数迭代式:x1=(2-y*x0)*x0,x0是y的倒数的近似值,它必须要小于y的倒数。另外迭代式中的乘法子程序要选用快速乘法(如FFT算法的乘法子程序)。 否则迭代法的除法速度是很慢的,远远小于估商法。 以...

2017-07-25 09:15:25 2057 1

原创 大数除法之估商法源码

Public Function myEXCEPT(str1 As StrToZx, str2 As StrToZx) As StrToZx        '除法子程序        Dim a() As Long        Dim b() As Long        Dim i As Long        Dim ysjg() As Long

2017-07-22 10:13:15 585

原创 大数除法之估商法

我用VB完整的实现了估商法,支持正负,小数,科学计数法,之所以说完整实现,是因为这个程序是我写的(落叶高精度表达式计算机)的子程序,能够和其它计算程序配合,实现高精度加减乘除,阶乘,乘方,开N次方,函数等混合运算.例:能够运行万位精度,开10000次方根正确运算,开N次方根是用的迭代法,为什么举这个例子,因为参入运算的子程序如果有问题,是计算不出正确结果的,现在这个计算机已完善:另外我再...

2017-07-22 10:04:43 3759

原创 落叶高精度表达式计算器1.2版

落叶高精度表达式计算器1.2版,针对1.1版有了以下改进:1:速度在以前的版本基础上有了大的改进,三角函数以前的万位精度6秒,提升到现在有2秒,对数函数以前的万位精度6秒,提升到现在的3.5秒,乘方程序原14秒左右,现5.5秒左右,整指数乘方提升了十多倍,反三角函数以前26秒,现提升到4-5秒。exp(x)以前的9秒, 现提升到2.3秒。2:针对原乘方程序中最大指数的限制,

2017-04-28 09:12:58 474

原创 发布两个高精计算公式

我在写高精函数时推导出两个数学公式,在我的程序算法中有比较重要的应用,特分享出来,因在网上没找到相同的公式,所以我以原创的方式发布:这两个公式都是先找到实例应用,再求理论推导的。公式原型:Arctan(x)=Arctan(y)+Arctan((x-y)/(1+x*y)),x和y的符号必须相同,且x≠0;当x>0;y正无限大时:Arctan(y)=pi/2,(x-y)/(1+x*y)=-1/x...

2017-04-12 19:54:21 335

原创 用倍角公式解三角函数, 反三角函数.

研究出一个非常有意义的方法,虽然速度很慢,以sin函数为例:精度取32,sin(1.23e-15) = 1.2299999999999999999999999999997E-15sin(1.23e-16) = 1.23E-16sin(1.23e-31) = 1.23E-31,这个计算结果表明,当自变量足够小时(和精度直接相关),sin(x)的值就是x本身,假如用三倍角公式(sin3x...

2017-03-13 14:08:54 2619

原创 落叶高精度表达式计算器v1.1版

落叶高精度表达式计算器v1.1版   针对1.0版作了以下更改:     纠正了开立方程序某一些特殊数精度不够的问题,纠正了自然对数函数中的一个辅助子函数的问题,万位精度自然对数运算时间由1.0版的7秒,变回现在的6秒,     纠正了乘方运算符和阶乘运算符运算等级定位不准的问题,填加了乘方程序对一些特殊值的判断。纠正了乘方运算小位数,高精度运算过慢的问题,例:123^10000万

2017-01-30 21:56:56 497

原创 高精度表达式计算器V1.0版

落叶高精度表达式计算器V1.0(32位)版     本计算器程序是在win7 32位系统上,使用VB6.0开发的,本程序的主要特点是:1) 高精度,支持万位精度的有理数常用运算;    包括:加,减,乘,除,乘方,开N次方,三角函数,反三角函数,双曲三角函数,反双曲三角函数等。2)  表达式运算,本程序没有采用常用计算器的边输入边计算,而是输入完所有数据或算式后,解析表达式,分

2016-12-28 10:28:12 1414

原创 多精度通用加法子程序源码

Type StrToZx                            '高精度数的结构头            ZhFhBz As Boolean                        '正负号标志,正为1,负为0            XsdWz As Long                          '小数点右边数字的长度。例1234.56中这个数是2

2016-12-12 22:12:19 507

原创 高精度乘方二

上面只是说到整指数,如果指数是小数,情况就复杂多了,有一种方法是先把小数化成分数如2的1.2次方就等于2的5分之6次方,等价于2的6次方,再开5次方,yroot(5,2^6)=2.2973967099940700135972538935559这个方法缺点很大,如2^0.1111111111111111等于2的10000000000000000次方,然后再开1111111111111111次方这...

2016-06-17 14:04:13 852

原创 高精度乘方一

先说说整指数乘方,百度上搜到一个程序,效率很高,代码简洁:int pow(int x,int n){int temp(x),res(1);while(n){if(n&1){res *= temp;}temp *= temp;n>>=1;}return res;}把2^61代入运算,内存变化图是这样的:61的二进制形式是111101res = 2 2...

2016-06-17 14:01:33 1554

原创 高精度反三角函数的实现

本帖最后由 落叶 于 2016-6-5 09:16 编辑 经过了几天艰难的查资料,对高精反三角函数实现并运行成功,分亨一下, 主要资料参考:http://blog.163.com/shikang999@1 ... 962012426103454943/ 因为加入了我的改进,和我自已的方法,所以我在原创中发布: 这里反三角函数的根本实现方法还是泰勒展开式,但它不能单独...

2016-06-05 09:22:33 4568 2

原创 对反正弦函数的泰勒公式的转换加速

反正弦函数的泰勒公式为:arcsin(x)=x+1/2*x^3/3+  1/2*3/4*x^5/5+ 1/2*3/4*5/6*x^7/7+.............   ∑(n=1~∞) [(2n)!]x^(2n+1)/[4^n*(n!)^2*(2n+1)]                   设 Gb 为 2  4  6  ....的最小公倍数   ,Ga 为 3  5  7

2016-05-30 14:53:13 8789

原创 高精度对数函数的实现二

针对泰勒展开式:ln(1+x)=x-x^2/2+x^3/3-……+(-1)^(k-1)*(x^k)/k(|x|转换成:ln(1+x)=x(1-x(1/2-x(1/3-x(1/4-x(1/5..........)))))这样转换并没有提高效率,但可以预算1/2 1/3 1/4 1/5.....针对一万精度,因为经过了开方优化,这里只需要10000\70=133次泰勒级数运算,所以可以预制133个万位...

2016-05-25 21:05:15 1771

原创 高精度对数函数的实现

针对高精对数,我目前已采用了容易编程和高效的方法。就是开方分解Ln(x)中的X(早先调试开方程序时就发现,大于零的数进行开方运算,当开方次数无限增加时,开方值无限接近1),当然开方不是乱用的,必需有理论或已有公式的支持,这个公式就是:,其实这个算法本身并不会使对数运算获得本质的提升,提速的根本是开平方有快速算法,这个和傅里叶变换对乘法的加速是一个原理,傅里叶变换本身也不会使乘法变快,提速的根本...

2016-05-22 18:39:11 3028

原创 如何调用GMP大数库中的开N次方函数mpz_root()

这个函数原型mpz_root(mpz_t rop,mpz_t op,unsigned long int n),它只提供N次根整数部分,这个函数在PDF文件中并没有注明传参的要求(也许是我没查到),即使是正整数不进行一些处理也得不到正确答案,如果要对小数开方,和需要更高的精度,也需要一些前期和后期的处理,因为我曾写过手工开N次方程序,昨天经过调试,发现两个函数前后处理大致一样,方法如下:  例:

2016-05-16 10:23:21 3156

原创 基于泰勒展开式的高精三角函数实现,方法三

对sin()的高精算法又进一步改进,分享一下,欢迎吧友们指正。还是针对sin()函数的泰勒展开式进行计算:用到改进公式:sinx=x−x⋅x^2(4⋅5⋅6⋅7⋅8⋅9−x^2(6⋅7⋅8⋅9−x^2(8⋅9−x^2)))/9!............. 此公式为本人原创,适合泰勒展开式中一部分公式加速运算,缺点是需要预先根据精度估算出所需的泰勒级数,程序变得复杂,冗余量很大,我在程序中最后没有...

2016-04-16 20:46:25 3991

原创 基于泰勒展开式的高精三角函数实现

以sin()函数为例谈谈我的三种实现:公式是sinx=x−x33!+x55!−x77!+x99!  ∑n=1∞(−1)nx(2n−1)(2n−1)!第一种是在硬算的基础上简单优化:下面是流程码               x2 = x*x                                                                     'x*x

2016-04-16 20:37:42 4568

落叶高精度表达式计算器v1.1版

超级,万能都被用完了,不好描述!

2017-01-31

落叶高精度表达式计算器v1.0(内含VB运行库)

落叶高精度表达式计算器V1.0(32位)版 本计算器程序是在win7 32位系统上,使用VB6.0开发的,本程序的主要特点是: 1) 高精度,支持万位精度的有理数常用运算; 包括:加,减,乘,除,乘方,开N次方,三角函数,反三角函数,双曲三角函数,反双曲三角函数等。 2) 表达式运算,本程序没有采用常用计算器的边输入边计算,而是输入完所有数据或算式后,解析表达式,分解运算符和数据,最后在运算出结果。 点击程序界面上的等于按钮,计算器开始运算。 3) 本计算器的各种运算函数大都是自已所写,没有调用大数库或其它数学库,仅大数开平方调用GMP大数库。 本计算器的各种子函数是通过定义的一个高精度数据结构接收和返回运算结果,这个高精度数据结构可以定义有符号(整数,小数,科学计数法表示的数), 函数内部集中对数值,小数点位置,指数进行运算,优点是调用简单,不易出错,可以说比较完善,综合运算能力强。 这点和大数库的实现不同, 大数库大都只提供对整数的运算,假如要对有理数运算, 一:你需要很多的调用前和调用后处理工作,这些工作并不需要很高的知识,但却需要很长时间的调试,它并不会因为你的水平很高而获得很大的时间提升。 二:很难进行综合运算。当你把某一个函数调顺后,进行综合运算时,会出现很多新的问题。 高精度数据结构VB定义为: Type StrToZx '高精度数的结构头 ZhFhBz As Boolean '正负号标志 XsdWz As Long '小数点右边数字的长度。例1234.567中这个数是3(为什么要这样定义,因为大多的基本运算都是右对齐的,这样定义减少了中间一些不必要的转换) JzBz As Integer '标记数组存的是什么进制的数(十进制或其它进制数) strlen As Long '运算数长度 Zx() As Long '存放运算数的数组 eE As Long '存放指数 End Type 4)综合运算,里面的三角函数,用户界面的算式,表达式运算,都是综合运算的体现,综合运算是大量基础运算的集合,中间稍有差错,就会算不出正确答案,里面内容繁琐,这里简单介绍一下。 5)本程序从2015年11月开始试编写,至2016年8月大致完成,开发周期很长,中间代码写了一两万行,从零基础到运行效率,综合效率的初中等水平,主要目的是练习编程,老外的数学软件已很强大,是我不可能相比的,我觉得我的程序如果把程序源码作为大数实例初级学习更合适。 6)程序中函数都具有输入值较验功能,若输入错误,会弹出提示窗口提示那一个函数输入错误。 7)由于本人是初次编程练习,且自身知识的不足,加上精力有限,最后的测试收尾也只是简单测试,里面肯定存在很大的不足和没发现的BUG,请网友们在论坛,或 我的邮箱:[email protected], 微博:qq_34030789,中指正,交流。 我若纠错后,会在下载网站更新,并根据您的地址发一份给您,谢谢! 再次欢迎大家使用本计算器,本计算器具有很好的表达式解析功能,会在以后的使用中获得很好的用户体验!

2016-12-26

落叶高精度表达式计算器v1.0

落叶高精度表达式计算器V1.0(32位)版 本计算器程序是在win7 32位系统上,使用VB6.0开发的,本程序的主要特点是: 1) 高精度,支持万位精度的有理数常用运算; 包括:加,减,乘,除,乘方,开N次方,三角函数,反三角函数,双曲三角函数,反双曲三角函数等。 2) 表达式运算,本程序没有采用常用计算器的边输入边计算,而是输入完所有数据或算式后,解析表达式,分解运算符和数据,最后在运算出结果。 点击程序界面上的等于按钮,计算器开始运算。 3) 本计算器的各种运算函数大都是自已所写,没有调用大数库或其它数学库,仅大数开平方调用GMP大数库。 本计算器的各种子函数是通过定义的一个高精度数据结构接收和返回运算结果,这个高精度数据结构可以定义有符号(整数,小数,科学计数法表示的数), 函数内部集中对数值,小数点位置,指数进行运算,优点是调用简单,不易出错,可以说比较完善,综合运算能力强。 这点和大数库的实现不同, 大数库大都只提供对整数的运算,假如要对有理数运算, 一:你需要很多的调用前和调用后处理工作,这些工作并不需要很高的知识,但却需要很长时间的调试,它并不会因为你的水平很高而获得很大的时间提升。 二:很难进行综合运算。当你把某一个函数调顺后,进行综合运算时,会出现很多新的问题。 高精度数据结构VB定义为: Type StrToZx '高精度数的结构头 ZhFhBz As Boolean '正负号标志 XsdWz As Long '小数点右边数字的长度。例1234.567中这个数是3(为什么要这样定义,因为大多的基本运算都是右对齐的,这样定义减少了中间一些不必要的转换) JzBz As Integer '标记数组存的是什么进制的数(十进制或其它进制数) strlen As Long '运算数长度 Zx() As Long '存放运算数的数组 eE As Long '存放指数 End Type 4)综合运算,里面的三角函数,用户界面的算式,表达式运算,都是综合运算的体现,综合运算是大量基础运算的集合,中间稍有差错,就会算不出正确答案,里面内容繁琐,这里简单介绍一下。 5)本程序从2015年11月开始试编写,至2016年8月大致完成,开发周期很长,中间代码写了一两万行,从零基础到运行效率,综合效率的初中等水平,主要目的是练习编程,老外的数学软件已很强大,是我不可能相比的,我觉得我的程序如果把程序源码作为大数实例初级学习更合适。 6)程序中函数都具有输入值较验功能,若输入错误,会弹出提示窗口提示那一个函数输入错误。 7)由于本人是初次编程练习,且自身知识的不足,加上精力有限,最后的测试收尾也只是简单测试,里面肯定存在很大的不足和没发现的BUG,请网友们在论坛,或 我的邮箱:[email protected], 微博:qq_34030789,中指正,交流。 我若纠错后,会在下载网站更新,并根据您的地址发一份给您,谢谢! 再次欢迎大家使用本计算器,本计算器具有很好的表达式解析功能,会在以后的使用中获得很好的用户体验!

2016-12-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除