今天把一维搜索和共轭梯度法加在牛顿法前面,发现模拟比较顺利了。这个是模拟的结果,从左到右硬度递增来自为知笔记(Wiz)附件列表rodCG.gifrodCG0.gifrodCG2.gif
分类:
其他好文 时间:
2015-02-05 17:54:29
阅读次数:
139
今天把蒙皮模拟算法实现了。具体方法是加载此前算出的权重矩阵,每个内部点都是表面点的加权平均。于是求解的时候唯一的未知数就是参数p了。这次牛顿法能够模拟,但是同之前不带权重的模拟算法一样,模拟过程中无法收敛到全局极值点。出问题的是这根棒。控制这根棒的参数有两个,一个是弯曲大小,另一个是弯曲方向。当强制...
分类:
其他好文 时间:
2015-02-04 20:09:53
阅读次数:
192
一维搜索方法的分类如下:
这篇文章主要讲解黄金分割法、二分法、牛顿法这三种一维搜索方法。黄金分割法只用到原函数,二分法用到函数的一阶导,牛顿法用到函数的二阶导。由于本文主要对研一上学期的课程中的部分算法进行程序实现,理论部分大多参考上课的课件。
黄金分割法:
基本概念:
算法思想:
算法流程图及优缺点...
分类:
其他好文 时间:
2015-02-04 18:43:28
阅读次数:
120
看最优化的文章时总能看到牛顿法和梯度下降法等基础算法,这里对牛顿法做个总结。
牛顿法一般的用途有:1、求方程的根;2、求极值
求方程的根
并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难。利用牛顿法,可以迭代求解。
原理是利用泰勒公式,在x0处展开,且展开到一阶,即f(x) = f(x0)+(x-x0)f'(x0)
求解方程f(x)=0,即f(x0)+(x-x0)*f'(x...
分类:
其他好文 时间:
2015-02-02 00:47:18
阅读次数:
232
之前发现,牛顿法在迭代的过程中容易收敛到局部。现在想通过减少变量的个数(不求解内部点的位置)来避免此种情况。主要参考Efficient Simulation of Secondary Motion in Rig-Space这篇论文的方法。方法的基本思路是,在解算的过程中,不考虑内部点的加速度,认为内...
分类:
其他好文 时间:
2015-01-19 12:21:50
阅读次数:
194
今天继续看Numerical Optimization这本书,在看第六章,实用牛顿法。6.1 提到“不准确”的牛顿法。意思是每次确定迭代方向都要解方程,很慢,实际上也不一定要解出非常精确的迭代方向。于是尝试用一些迭代解法(例如,共轭梯度法)去解 H*x + G = 0这个方程。6.2 提到通过共轭梯...
分类:
其他好文 时间:
2015-01-16 13:02:20
阅读次数:
135
今天发现之前迭代过程的终止条件写错了,应该是梯度值小于某值时终止,而不是梯度值+Hessian*增量小于某值终止。因为增量本身就是求解 梯度值 + Hessian * x = 0 得来的啊。。。改掉了之后迭代次数明显增多,模拟速度变慢。应该允许用户设定迭代终止阈值,控制模拟精确度。但是,最重要的问题...
分类:
其他好文 时间:
2015-01-13 23:09:23
阅读次数:
259
Implementint sqrt(int x).Compute and return the square root ofx.参考:http://standalone.iteye.com/blog/1847368参考的是一个用二分查找实现的,这道题还可以用什么牛顿法之类的如果middle * mi...
分类:
其他好文 时间:
2015-01-12 20:41:55
阅读次数:
122
数值分析学习心得:插值法:拉格朗日插值,埃米特插值函数逼近:最小二乘法求积分的算法:牛顿-科斯特公式,龙贝格求积公式,高斯求积公式求线性方程组的迭代法:jacobi迭代法,高斯-赛德尔迭代法求非线性方程的算法:牛顿法求常微分方程初值问题的算法:欧拉法,龙格-库塔法数值分析课程设计 浙江大学 陈越第1...
分类:
其他好文 时间:
2015-01-05 20:25:22
阅读次数:
427
1 梯度下降法我们使用梯度下降法是为了求目标函数最小值f(X)对应的X,那么我们怎么求最小值点x呢?注意我们的X不一定是一维的,可以是多维的,是一个向量。我们先把f(x)进行泰勒展开:这里的α是学习速率,是个标量,代表X变化的幅度;d表示的是单位步长,是一个矢量,有方向,单位长度为1,代表X变化的方...
分类:
其他好文 时间:
2014-12-18 22:07:28
阅读次数:
294