我正在尝试进行一些参数估计,并希望选择最小化预测方程中的平方误差的参数估计 超过大约 30 个变量 .如果方程是线性的,我只需计算 30 个偏导数,将它们全部设置为零,然后使用线性方程求解器。但不幸的是方程是非线性的 它的衍生物也是如此。
如果方程是在单个变量上,我将只使用 Newton's method (也称为牛顿-拉夫森)。网络上有丰富的示例和代码来实现牛顿单变量函数的方法。
鉴于我有大约 30 个变量,我如何使用牛顿法为这个问题编写数字解决方案 ?我有封闭形式的方程,可以计算一阶和二阶导数,但我不知道如何从那里开始。我在网上找到了大量的处理方法,但它们很快就变成了重矩阵表示法。我找到了 something moderately helpful在维基百科上,但我无法将其翻译成代码。
我担心分解的地方在于矩阵代数和矩阵求逆。我可以使用线性方程求解器反转矩阵,但我担心获得正确的行和列,避免转置错误等。
确切地说:
最后一点是我想要帮助的。任何直接帮助或指向良好来源的指针将受到热烈欢迎。
编辑:由于我有封闭形式的一阶和二阶导数,我想利用它们并避免更慢的收敛方法,如单纯形搜索。
最佳答案
您可以在 C 语言的数字食谱网页中找到您需要的内容。有一个free version available online . Here (PDF) 是包含用 C 实现的 Newton-Raphson 方法的章节。您可能还想查看 Netlib 中提供的内容。 (LINPack 等人)。
关于minimization - 如何使用牛顿法找到非线性多元函数的最小值(代码不是线性代数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/392173/