浅谈数值稳定性.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈数值稳定性 分类: 基础数学 2014-11-26 14:16 675人阅读 评论(0) 收藏 举报 今天谈论的重点是数值稳定性,在计算机编程中,有很多算法都需要考虑数值稳定性。比如在机器学习算法中我学过的Logistic回归的牛顿迭代解法,在牛顿迭代时需要解线性方程组,由于Hessian矩阵是对称正定的,用Cholesky矩阵分解不但可以大大减少运算量,而且还具有很好的数值稳定性。借此机会来更多地了解一下数值稳定性。 ? 在计算机编程中,有时候同一个计算问题,不同算法中舍入误差对计算的结果产生的影响各不相同,舍入误差对计算结果的精确度影响小的算法,具有较好的数值稳定性;反之,算法的数值稳定性差。所设计的算法的舍入误差在一定条件下要能够控制。否则就像蝴蝶效应一样,使风和日丽的美洲几个月后出现狂风暴雨。 ? 接下来我们先来看一个比较经典的例子。 ? 题目:计算如下积分的值 ? ???? ? 分析:很容易,可以进行如下推导过程 ? ???? ? 根据这个递推式,可以计算任意的,但是我们再计算一下放大的误差,得到 ? ?????? ? 可以看出误差是逐渐放大的,在一定范围内无法控制,这样做的结果就是最终答案与真实答案相差十万八千里。 ? 为了提高数值的稳定性,我们在设计算法时需要遵循如下几个原则 ? (1)尽量减少运算次数 (2)加法运算时,避免大数加小数 (3)避免两个相近数相减 (4)避免小数做除数或大数做乘数 ? (1)尽量减少运算次数 ? ???比如计算多项式的秦九韶算法,再比如下例 ? ??? 题目:计算的值,要求精确到。 ? ??? 分析:用两种方法进行比较,以此说明运算次数的重要性。首先采用如下公式计算 ? ???????? ? ???????? 即得到 ? ???????? ? ???????? 要精确到,就要计算100000项,而且还有精度损失,此方法效率太低。再考虑另一种方法 ? ???????? ? ???????? 这样的话取,得到 ? ???????? ? ???????? 要精确到,只需要计算前4项就行了,因为 ? ????????? ? ?????????可以看出第二种方式大大减少了计算量,精度相应也会损失很少。 ? ? (2)加法运算时,避免大数加小数 ? ????? 针对浮点数来说,由于有效数字的保留问题,大数会“吃掉”小数。 ? ? (3)避免两个相近数相减 ? ????比如在二次方程求根问题中,解,如果并且接近,这样求出 ? ???? ? ??? 其中有两个相近的数相减,这会导致误差增大,但是考虑另一种方法,先计算出 ? ???? ? ????然后再根据 ? ??? ? ??? 计算得到,这样做误差大大降低。 ? ? (4)避免小数做除数或大数做乘数 ? ????高斯消元中,选主元与不选主元计算得到的结果有差异,因为如果不选主元可能遇到小数做除数的情况。从 ??? 而导致结果出现偏差。

文档评论(0)

wuailuo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档