matlab - 使用 mldivide 约束参数
问题描述
我有一个形式的矩阵方程AX = B
。我知道的大小为 1000x3 A
。B
我想 cacluate X
,这是一个 3x3 矩阵。但是,该矩阵的某些项是零和一。即X
是形式[a 0 b; 0 c d; 0 0 1]
;
当我 calcualte 时X = A\B
,我得到了、和的很好的近似值a
,但是我期望为零的值是非常小的数字。b
c
d
有没有办法将一些参数限制为零?
解决方案
考虑独立解决每一行。从技术上讲,您有 3 个形式为 的方程组A*x_i=b_i
,分别为A
[1000x3]、x_i
[3x1]、b_i
[1000x1]。
现在,您可以制作x_i
任何形状,特别是,您可以删除零(连同 A 中将它们相乘的向量)。如果您知道x_3
是[k 0 m]
(随机示例),这与求解x_3
大小 [2x1] ( [k m]
) 和A
大小 [1000x2] 相同。
不要浪费计算乘以零
推荐阅读
- javascript - 在使用赛普拉斯进行测试时,有没有办法可以防止下载
- javascript - On Scroll - 添加类 - 对于页面上的每个元素
- node.js - Nodejs Redis Scan不返回所有项目
- c++ - 如何将“IF CONDITION”重写为 ON 3 分钟和 OFF 10 分钟直到 4 小时(240 分钟)
- android - ViewModel 和 LiveData 观察者未调用
- google-cloud-dataflow - CDAP DataFusion GET 管道运行无效 IAP 凭证错误
- spring - 基于 Java 的 ETL 应用程序
- perl - Perl - 匹配文件中的开始/结束字符串
- python - 字典推导中 for 循环的 in 关键字如何工作?
- django - Django 3.0.7 版,/cart/ 'cart' 处的 TemplateSyntaxError 不是已注册的标签库