有大佬知道如何设置精度阈值吗
mathematica吧
全部回复
仅看楼主
level 3
呵呵阳光男孩
楼主
计算的结果可能到10的-20次方这样,但是mathematica好像这么小的数字直接默认为0了,网上找的方法有限还不好用
2025年06月19日 07点06分
1
level 5
蜡笔小新🐘
以计算矩阵特征值和特征向量为例,有矩阵H,其中每个矩阵元的精度设为无限(即,写成分数形式,不要出现小数点)。然后Eigensystem[N[H, 32]]。其中N[H,32]的意思是把矩阵H的所有矩阵元的精度设为32位有效数字。总之用N函数把无限精度的数字限制成你想要的精度就行了。
2025年06月20日 10点06分
0
王皮尔磁子
@呵呵阳光男孩
1. + 10^(-20)得到 1. 是因为机器精度(约为16位)数1.加上无限精度的分数10^(-20),最终得到机器精度的结果, 这一点可以使用 1.`30 + 10^(-20) // FullForm 轻易克服: 30位精度数加上无限精度的分数得到30位精度的结果
2025年06月20日 12点06分
呵呵阳光男孩
N函数我试过了,我发现这个mathematics当它计算比如1+10^-20时最后的结果直接出1.
2025年06月20日 11点06分
呵呵阳光男孩
@王皮尔磁子
soga,感谢,我来试试
2025年06月21日 01点06分
吧务
level 15
xzcyr
反正帖子挖上来你们也不看是吧:
https://tieba.baidu.com/p/6173198239
https://tieba.baidu.com/p/6655887021
2025年07月05日 05点07分
4
1