由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 这种数值的问题怎么办呢
相关主题
数值计算里的几个损失精度的操作做题,级数求和
问个加号重载的问题这个给分数求和的Python程序为嘛陷入死循环出不来?大牛给帮忙看看。
a[i]=i++居然有正负零
一个数据结构中的数学求和问题求教 (转载)关于gdb的问题, 谢谢
n*(n-1)*(n+1)/3 re:一个数据结构中的数学求和问题求教 (转载)C++文件读取数值问题
嵌套循环,层数可变 怎么实现[合集] 讨论一道很简单的题...
两个关于matrix的问题请教急求一个能读取BMP每个象素RGB信息的软件 (转载)
问个算法,求两组交换元素后求和之间相差最小值python 如何查找数值并判断是否空
相关话题的讨论汇总
话题: 数值话题: 结果话题: 稳定话题: laplace话题: 配对
进入Programming版参与讨论
1 (共1页)
k****f
发帖数: 3794
1
做laplace逆变换
中间结果是一堆浮点数求和:有大有小,有正有负
大的能够到10^40,小的能小到10^(-40),
求和结果是应该在10^(-40)附近。
现在程序写出来,可是不稳定。。
经常变成负的(应该是正的结果)。
有谁给推荐一个数值稳定的laplace变换软件包
不能用bignum,速度实在是太慢了。
O*******d
发帖数: 20343
2
建议读一下这个帖子。 就是把正负结果分开加起来,最后作总的加法。
http://www.mitbbs.com/article_t/Programming/24172384.html
k****f
发帖数: 3794
3
就是这样子的式子
b_i是在【-100,100】之间的,n大概是40左右
怎么算才会稳定呢?

【在 k****f 的大作中提到】
: 做laplace逆变换
: 中间结果是一堆浮点数求和:有大有小,有正有负
: 大的能够到10^40,小的能小到10^(-40),
: 求和结果是应该在10^(-40)附近。
: 现在程序写出来,可是不稳定。。
: 经常变成负的(应该是正的结果)。
: 有谁给推荐一个数值稳定的laplace变换软件包
: 不能用bignum,速度实在是太慢了。

t****t
发帖数: 6806
4
分子全是b_j-1?不是b_k-1?
BTW, M$的公式真丑

【在 k****f 的大作中提到】
: 就是这样子的式子
: b_i是在【-100,100】之间的,n大概是40左右
: 怎么算才会稳定呢?

k****f
发帖数: 3794
5
nod,全是b_j -1,
选定所有b_j>1,每个b_j,求n个分式的积。对所有的积再求和。
刚好是正负号交错的序列。不知道有什么好技巧,要求数值很稳定的。
好像跟超几何分布有关的。

【在 t****t 的大作中提到】
: 分子全是b_j-1?不是b_k-1?
: BTW, M$的公式真丑

t****t
发帖数: 6806
6
数值计算主要就是减小误差了,所以你把正负分开,都从小到大排列,然后从小加到大,再
相减
你应该没有能够对消的项吧,如果有,要先对消

【在 k****f 的大作中提到】
: nod,全是b_j -1,
: 选定所有b_j>1,每个b_j,求n个分式的积。对所有的积再求和。
: 刚好是正负号交错的序列。不知道有什么好技巧,要求数值很稳定的。
: 好像跟超几何分布有关的。

k****f
发帖数: 3794
7
好像没有的。正负分开也不行的。
关键是有大数相减得一个小数
这很难处理的。
结果应该是很小的数。

【在 t****t 的大作中提到】
: 数值计算主要就是减小误差了,所以你把正负分开,都从小到大排列,然后从小加到大,再
: 相减
: 你应该没有能够对消的项吧,如果有,要先对消

t****t
发帖数: 6806
8
你还是自己推导吧...看有什么变换的办法能提高相减的精度,

【在 k****f 的大作中提到】
: 好像没有的。正负分开也不行的。
: 关键是有大数相减得一个小数
: 这很难处理的。
: 结果应该是很小的数。

d*****l
发帖数: 8441
9
你的交错级数满足莱布尼兹收敛准则吗?

【在 k****f 的大作中提到】
: 做laplace逆变换
: 中间结果是一堆浮点数求和:有大有小,有正有负
: 大的能够到10^40,小的能小到10^(-40),
: 求和结果是应该在10^(-40)附近。
: 现在程序写出来,可是不稳定。。
: 经常变成负的(应该是正的结果)。
: 有谁给推荐一个数值稳定的laplace变换软件包
: 不能用bignum,速度实在是太慢了。

d*****l
发帖数: 8441
10
我觉得正好相反,是要正的和负的加,而且是两个操作数的绝对值越接近越好。

【在 O*******d 的大作中提到】
: 建议读一下这个帖子。 就是把正负结果分开加起来,最后作总的加法。
: http://www.mitbbs.com/article_t/Programming/24172384.html

k****f
发帖数: 3794
11
是有限项的,无所谓收敛
不过终于解决了,用big num的长整数算
速度慢了上百倍。不过数值终于稳定了

【在 d*****l 的大作中提到】
: 你的交错级数满足莱布尼兹收敛准则吗?
O*******d
发帖数: 20343
12
我说的正负分开不是按照运算符号分开,而是按照每一项的具体运算结果的正负。这样
作,你作的都是加法, 只有在
最后总正和总负相加时,才作一次减法。

【在 k****f 的大作中提到】
: 好像没有的。正负分开也不行的。
: 关键是有大数相减得一个小数
: 这很难处理的。
: 结果应该是很小的数。

d*****l
发帖数: 8441
13
有没有试一试将同等数量级(相近)的数值配对相减,最后
将这些差值加起来呢?
也有可能需要多次这种配对,(对这些差值再按照绝对值
相近的配对相减,。。。,直到最后)
反正是不能把特大的和特小的配对加减,那样会损失精度的。

【在 k****f 的大作中提到】
: 是有限项的,无所谓收敛
: 不过终于解决了,用big num的长整数算
: 速度慢了上百倍。不过数值终于稳定了

d*****l
发帖数: 8441
14
我又看了一下你的运算式子,那些乘积是有理分式的连乘。
我想,只要每一个连乘结果的动态范围不是出奇的大就应该不是
非常的难。首先我们把它的2N个分子分母都表示成连乘。跟连续
加减相似,我们先将各个因子按照大小排序,然后将最小的和最大
的配对相乘,次小的和次大的配对相乘,。。。,这样就能保证
中间结果的精度和动态范围了。

【在 k****f 的大作中提到】
: 就是这样子的式子
: b_i是在【-100,100】之间的,n大概是40左右
: 怎么算才会稳定呢?

1 (共1页)
进入Programming版参与讨论
相关主题
python 如何查找数值并判断是否空n*(n-1)*(n+1)/3 re:一个数据结构中的数学求和问题求教 (转载)
一个python得小问题嵌套循环,层数可变 怎么实现
弱问:搞数值模拟和计算,linux的优势到底在哪?两个关于matrix的问题请教
请教一个算法问题 (转载)问个算法,求两组交换元素后求和之间相差最小值
数值计算里的几个损失精度的操作做题,级数求和
问个加号重载的问题这个给分数求和的Python程序为嘛陷入死循环出不来?大牛给帮忙看看。
a[i]=i++居然有正负零
一个数据结构中的数学求和问题求教 (转载)关于gdb的问题, 谢谢
相关话题的讨论汇总
话题: 数值话题: 结果话题: 稳定话题: laplace话题: 配对