摘要:
之前发现,牛顿法在迭代的过程中容易收敛到局部。现在想通过减少变量的个数(不求解内部点的位置)来避免此种情况。主要参考Efficient Simulation of Secondary Motion in Rig-Space这篇论文的方法。方法的基本思路是,在解算的过程中,不考虑内部点的加速度,认为内... 阅读全文
摘要:
看牛顿法的改进今天继续看Numerical Optimization这本书,在看第六章,实用牛顿法。6.1 提到“不准确”的牛顿法。意思是每次确定迭代方向都要解方程,很慢,实际上也不一定要解出非常精确的迭代方向。于是尝试用一些迭代解法(例如,共轭梯度法)去解 H*x + G = 0这个方程。6.2 ... 阅读全文
摘要:
今天把测试Hessian的代码加进去了,但是发现Hessian并无大的问题。测试例子:一根圆柱向指定方向弯曲。下面对比,在有弯曲方向参数,与无方向参数(该参数被被乘以0)的情况下,各帧迭代的函数值。无方向参数:帧号12345第1次迭代073777.396480615269.3317631566548... 阅读全文
摘要:
今天发现之前迭代过程的终止条件写错了,应该是梯度值小于某值时终止,而不是梯度值+Hessian*增量小于某值终止。因为增量本身就是求解 梯度值 + Hessian * x = 0 得来的啊。。。改掉了之后迭代次数明显增多,模拟速度变慢。应该允许用户设定迭代终止阈值,控制模拟精确度。但是,最重要的问题... 阅读全文