wayne 发表于 2013-1-16 08:37:02

90# 云梦
mathe在83楼给的答案绝对不会错的,顶多有效数字不够精确,但该方法的优势就是a,b差距越大,正确的有效数字越多

云梦 发表于 2013-1-16 08:54:58

本帖最后由 云梦 于 2013-1-16 09:03 编辑

直接写作:
$sqrt(x^2-b^2)= ({a(x+sqrt(x^2-b^2))}/ {b(x+sqrt(x^2-a^2))})^x *b/a*sqrt(x^2-a^2)$
将$x~=b$代入右边,可以得出$sqrt(x^2-b^2)$
比如a=Pi, b=199298代入可以得出1.1589959974805705323877472925915 ...
mathe 发表于 2013-1-15 19:53 http://bbs.emath.ac.cn/images/common/back.gif
对于a,b数值较大时可以用近似的方法,这个结果是正确的,不过在精度范围内数值有误。正确结果是:
199298.+3.3700080336380261112958081980797681549397669735133013440572313861110974446761201758583236636480294456121543417417068459631705192799345307341778241826412212376737953176117307839954716897361043070782489875885303752563281566527448552686264308553159983141631165399210189847917112875638214665345134904767117069126099255619603448829048326694912412287567891687670819258973037556229162542538088843615579428271324262155837914966458553049662954050656415026269052625561492133141267826306426425779203092713091968650874438650 E-2034174
当a,b 在小于10^13内能快速计算出正确出结果,正是计算器的优势。

wayne 发表于 2013-1-16 09:04:26

92# 云梦
当a,b 在小于10^13内能快速计算出正确出结果,正是计算器的优势。

有点吃惊,你的计算器还能算这种极度病态的题。
里面的算法不大可能是普适的吧?
我怀疑是定制的,呵呵

=======
极度病态这个词,是一科学术语,我怕有人理解成带感情色彩的那种了。
是指牵涉的数值的数量级差别很大,以至于普通的数值算法都失效

云梦 发表于 2013-1-16 09:09:35

是的,计算器计算输出结果范围是10^(10^-16)~10^(10^16),但不存在病态。最大有效精度设置为1024位,更多的我也不需要了。内部常数均为2048位。

云梦 发表于 2013-1-16 09:22:20

计算器操作过程很简单:
π "STO" A
199298 "STO" B
"3nd"" F(x)"
完毕。

STO 是寄存器存储键
3nd 是第三档函数
F(x) 是这个方程的求解
如果结果表达为x.xxxxxxxxxxxxxxxxxx形式,可以直接进行验算。
验算操作:
0"x,y"x"F(x)"
0 代表验算模式,1代表求解模式。
"x,y" 多参数输入时的分割标识。
x为要验算的数据。可以实现把x存在寄存器内(C~Z),A和B已被占用。也可以采用粘贴的方法,输入到计算器。

云梦 发表于 2013-1-16 09:24:24

是不是很简单?对于常用的东西都可以实现变成程序,加到计算器里,只要安排个按键就可以了。

郭先抢 发表于 2013-1-16 13:08:06

92# 云梦


我还是对你的计算结果怀疑,因为我觉得不可能有那么多连续的零在一起的!

云梦 发表于 2013-1-16 14:08:22

92# 云梦


我还是对你的计算结果怀疑,因为我觉得不可能有那么多连续的零在一起的!
郭先抢 发表于 2013-1-16 13:08 http://bbs.emath.ac.cn/images/common/back.gif
怀疑是对的,没有怀疑就没有进取。不要照搬、模仿,更不要相信一切。自己去尝试,去验证,才最终能信服。

mathe 发表于 2013-1-16 17:34:09


对于a,b数值较大时可以用近似的方法,这个结果是正确的,不过在精度范围内数值有误。正确结果是:
199298.+3.3700080336380261112958081980797681549397669735133013440572313861110974446761201758583236636 ...
云梦 发表于 2013-1-16 08:54 http://bbs.emath.ac.cn/images/common/back.gif
这个结果同我的完全一致呀。
其实很容易估计,只要上面的差值很小的情况下,我上面的方法精度会非常高。
当然,如果差值不是很小的情况,那么就需要泰勒展开再取几项高阶误差即可。

mathe 发表于 2013-1-16 17:35:02

92# 云梦


有点吃惊,你的计算器还能算这种极度病态的题。
里面的算法不大可能是普适的吧?
我怀疑是定制的,呵呵

=======
极度病态这个词,是一科学术语,我怕有人理解成带感情色彩的那种了。
是指牵涉 ...
wayne 发表于 2013-1-16 09:04 http://bbs.emath.ac.cn/images/common/back.gif
感觉是特殊问题特殊处理,不可能处理一般情况
页: 1 2 3 4 5 6 7 8 9 [10] 11 12 13
查看完整版本: 真正的高精度科学计算器