zhaojumping 发表于 2012-2-28 16:57 
嗯,那个帖子和附件看了,主要还是卡在矩阵上,比如怎么解二次矩阵方程,这个确实在学校没学过。其实如果 ...
二次矩阵方程都是交给电脑来算,但是Dynare一般不用待定系数法。
Dynare的解模型是基于Sims和Klein算法的。他对BK算法进行的修改和提升,BK算法最大的弱点就在碰到singular matrix的时候就没法做jordon decompostion。但是DSGE出现singular模型的情况很多,所以就需要修改成泛用性很强的算法,就是后来Klein's的算法,这个算法用的QZ decompostion,是Schur decomposition的泛用式,可以把任何矩阵都分解成一个酉矩阵(unitary matrix)和一个共轭转置(Hermitian matrix)夹住一个主对角为特征值的上三角矩阵。这个过程需要generalised eigenvalue是用数值求解来算的,其实思想很简单,就是迭代。
Anderson-Moore算法是一个待定系数法,这个算法速度非常快,你需要在Dynare里面明确告诉Dynare用这个算法才行,不然Dynare就用其他的默认算法。
准确来说,Dynare不是个黑盒子,所有程序你都能看到,点开那些程序来读就行了。思想全部都在那些程序里面,但是需要很深的数学和编程的功底。所以你看Dynare的开发团队都没有年轻人。
还是那句话,数学基础永远走在前面,我上说的那些东西,都属于
高等矩阵分析,
不是高等线性代数。所以你在线性代数的书上面找不到这些东西。
最后跟你说一下这两个学科的区别,高等线性代数的主角是向量,侧重点是向量空间,子空间,和泛函分析的结合,比如希尔伯特空间和它的延展,巴拿赫空间上的理论论证。高等矩阵分析的主角是矩阵,侧重点是矩阵算法,分解,求导,分块,和在各个工程学和计算机科学上的应用。