nonlinear-optimization - python中矩阵函数的非线性曲线拟合
问题描述
我有以下问题。我有一个称为 Z(x; t) 的 N x N 实矩阵,其中 x 和 t 通常可能是向量。我有 N_s 个观察值 (x_k, Z_k), k=1,..., N_s 并且我想找到参数 t 的向量,它可以在最小二乘意义上更好地逼近数据,这意味着我想要 t 最小化
S(t) = \sum_{k=1}^{N_s} \sum_{i=1}^{N} \sum_{j=1}^N (Z_{k, ij} - Z(x_k; t) )^2
这通常是矩阵函数的非线性拟合。我只找到必须拟合不能立即推广到矩阵函数(也不是向量函数)的标量函数的示例。我尝试使用 scipy.optimize.leastsq 函数、包 symfit 和 lmfit,但我仍然无法找到解决方案。最终,我最终编写了自己的代码......感谢任何帮助!
解决方案
您可以对多维数据进行曲线拟合。据我所知,没有一个低级算法明确支持多维数据,但它们确实最小化了最小二乘意义上的一维数组。拟合方法并不真正关心“自变量” x
,只是它们可以帮助您计算要最小化的数组 - 可能是计算模型函数以匹配y
数据。
也就是说:如果您可以编写一个函数来获取参数值并计算要最小化的矩阵,只需将该二维(on nd)数组展平为一维。合身不会介意。
推荐阅读
- regex - tcl 中带有方括号和变量的字符串上的 regsub 问题
- angular - Angular - 提供的数据源与数组、可观察对象或数据源不匹配
- python - Scipy GridData QhullError:中心点与面共面,或顶点与相邻面共面
- c - 为什么多个 fgets 语句会覆盖字符数组?
- php - 如何将表格中选定的行 ID 提供给我的模型?
- php - 在 php 中设置多个链接的样式
- c# - “NullValueHandling.Ignore”是否仅适用于 POCO?
- bash - 如何在bash中转义base64编码字符串中的引号?
- php - Laravel 5.8:引导数据表的雄辩分页
- javascript - 如何使用 SwiftSoup 抓取重定向的特定网站?