zoukankan      html  css  js  c++  java
  • 牛顿法继续不稳定

    今天发现之前迭代过程的终止条件写错了,应该是梯度值小于某值时终止,而不是梯度值+Hessian*增量小于某值终止。因为增量本身就是求解 梯度值 + Hessian * x = 0 得来的啊。。。

    改掉了之后迭代次数明显增多,模拟速度变慢。

    应该允许用户设定迭代终止阈值,控制模拟精确度。

    但是,最重要的问题是多个参数时,模拟的结果是错误的。

    当前圆柱弯曲的例子中,角度值增大到20度左右时,弯曲值被锁定为0,不知道什么原因。

    若把其中一个参数禁用掉(方法是乘以0),则模拟正常,但是如果动画速度太快,会有不稳定情形。

    下一步要找出模拟出错的原因。现在推测有以下几种:

    1. Hessian 算错,之前测过独立参数的Hessian,但是没有测过相关参数的Hessian。

    2. 梯度不连续? 

    3. 求解增量的方程病态。当前变量不再随意增长,而是该动的没有动。

    还要找找处理这种情况有没有现成的方法。

  • 相关阅读:
    网站备份list
    vnc checklist
    appnode iptables 规则后面覆盖前面的
    Appnode + Discuz checklist
    解决WORD文档无法显示链接的图像问题
    应用容器Application container
    要研究的内容
    转 Flex MXML编译成AS类
    Flex文件结构
    int a
  • 原文地址:https://www.cnblogs.com/dydx/p/4222590.html
Copyright © 2011-2022 走看看