python - python求解具有解> 0的联立方程
问题描述
我有联立方程(有很多方程),没有解决方案,我需要找到一个最佳解决方案。解决方案的每个元素都必须>0(没有 0 或负数)。
np.linalg.lstsq
可以得到最好的解决方案,但也可能出现负面因素。
scipy.optimize.nnls
可以在没有负元素的情况下得到最佳解,但也可能出现 0。
如何限制每个元素> 0 以获得最佳解决方案,或者是否有任何其他功能可以用来解决问题?
解决方案
对于每个参数p
,定义p_ = p - eps
为非常小eps
。
求解{p_}
,然后赋值p = p_ + eps
,你得到的所有参数都高于零。
在实践中,只需将 epsilon 添加到解决方案中即可。
如果这还不够,请解释原因。
推荐阅读
- c# - WebRequest 中的堆栈缓冲区溢出导致
- tidb - PD集群的时间同步需要多精确?如果 PD 服务器中的时间不一致怎么办?
- c - 如何使用命令或调试文件在 open-vswitch 的内存池中查找空闲元素的大小?
- append - 我正在尝试向现有的 excel 文件添加更多内容,谁能告诉我 gembox.speadsheet 有什么方法可以使用吗?
- javascript - 在滚动容器内使用 React-dates 的 DateRangePicker
- parameter-passing - 将信息传递到在 Vaadin 8 中使用 BrowserWindowOpener 打开的新 Web 浏览器窗口/选项卡
- android - 显示多个从 Firebase 发送的活动通知
- reactjs - Redux-form 通过 POST 请求传递数据。
- django - 启动项目后 Django 运行服务器错误
- vba - VBA 中 worksheetfunction.match 属性的困难