【问题标题】:Findig a solution for a linear equation system which has more variable then equtions寻找变量多于方程的线性方程组的解
【发布时间】:2015-01-22 17:48:48
【问题描述】:

让我们把问题分成两部分,第二部分是可选的。

第 1 部分

我有 3 个带有 N 个变量的线性方程,其中 N 通常大于 3。

  • x1*a+x2*b+x3*c+x4*d[....]xN*p = B1
  • y1*a+y2*b+y3*c+y4*d[....]yN*p = B2
  • z1*a+z2*b+z3*c+z4*d[....]zN*p = B3

寻找(a,b,c,d,[...],p),其他都是不变的。

标准的高斯方法不起作用,因为矩阵会比高更宽。当然我可以用它来消除 2 个变量。你知道找出解决方案的算法吗? (我只需要一个。)解系数中的 0 越多越好,但不是必需的。

第 2 部分

解中的系数必须是非负的。

要求: 该算法必须足够快才能实时运行。 (在平均 pc 上每秒 1800 次)。所以试错法是行不通的。 该算法将在 C# 中实现,但如果您想编写代码,请随意使用伪语言。

【问题讨论】:

  • 这听起来像是家庭作业。你试过什么,你卡在哪里了?第 1 部分的答案只是基本的线性代数;找一本基本的教科书,它会解释矩阵比高宽的情况。
  • 然后请用一些链接或关键字为我指明正确的方向。这不是家庭作业,我可以向你保证。
  • math.stackexchange.com 是第一个问题的理想论坛。
  • 我想使用约束编程来找到系数。 R 中将范围限制为 0-1 适合我。我找到了一个 C# 求解器(Mono 所以微软求解器基础不起作用),它可能有效,但恐怕对我来说不够快。有人知道 C# 的一个好的约束求解器吗?
  • 解决此问题的另一种方法是 SVD。当我测试它时,我会写信给解决方案。

标签: algorithm math gaussian solver linear-equation


【解决方案1】:

将额外变量设置为零。现在我们有了矩阵方程

A.x = b,其中

   x1 x2 x3

A = y1 y2 y3 z1 z2 z3

b = (B1, B2, B3),作为列向量 现在反转 A。解决方案是;

X = A-1.x

用 Ctrl Shift Enter 在 Excel 中结束矩阵公式

【讨论】:

  • 奇异矩阵没有逆矩阵。
猜你喜欢
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多