【问题标题】:Issue solving linear system using Solve使用 Solve 解决问题的线性系统
【发布时间】:2016-09-10 20:02:43
【问题描述】:

我有一个由 4 个线性方程组组成的系统,就变量而言,我从求解以前的系统中获得,但 Solve 函数不返回输出,尽管它看起来是一个非常简单的求解系统:

Solve[{
 -d5c2 dn5t1 - d5c3 dn5t1 - a3 n3t1 - 
  (d4c1 n4t1 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2)
    ==  dn3t1,
 -a3 n3t2 - (d5c2 dn5t1 n5t2)/n5t1 - 
  (d5c3 dn5t1 n5t2)/n5t1 -
  (d4c1 n4t2 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) 
    == dn3t2,
 -a3 n3t3 - 
  (d4c1 n4t3 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) - 
  (d5c2 dn5t1 n5t3)/n5t1 - (d5c3 dn5t1 n5t3)/n5t1 
    ==  dn3t3,
 -a3 n3t4 - 
  (d4c1 n4t4 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) -
  (d5c2 dn5t1 n5t4)/n5t1 - (d5c3 dn5t1 n5t4)/n5t1
    == dn3t4
       }, {a3, d5c2, d5c3, d4c1}]

返回空白输出:

{}

我是这门语言的新手; Solve 可以处理的非数值表达式的大小或类似的东西是否有某种限制?

【问题讨论】:

  • 空白输出可能意味着“无解”,即您的某些方程相互矛盾。试试Solve[{a==2,a==3},{a}],结果一样。

标签: wolfram-mathematica


【解决方案1】:

您的系统没有解决方案。展示如何将其转换为典型线性代数形式可能会很有用:

sys={
 -d5c2 dn5t1 - d5c3 dn5t1 - a3 n3t1 - 
  (d4c1 n4t1 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2)
    ==  dn3t1,
 -a3 n3t2 - (d5c2 dn5t1 n5t2)/n5t1 - 
  (d5c3 dn5t1 n5t2)/n5t1 -
  (d4c1 n4t2 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) 
    == dn3t2,
 -a3 n3t3 - 
  (d4c1 n4t3 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) - 
  (d5c2 dn5t1 n5t3)/n5t1 - (d5c3 dn5t1 n5t3)/n5t1 
    ==  dn3t3,
 -a3 n3t4 - 
  (d4c1 n4t4 (dn4t2 n5t1 - dn4t1 n5t2))/(n4t2 n5t1 - n4t1 n5t2) -
  (d5c2 dn5t1 n5t4)/n5t1 - (d5c3 dn5t1 n5t4)/n5t1
    == dn3t4
       }

lhs = sys[[All, 1]];
rhs = sys[[All, 2]];

(m = Transpose[Coefficient[lhs, #] & /@ {a3, d5c2, d5c3, d4c1}]) // MatrixForm

此时您可以尝试LinearSolve[m,rhs],但是在这种情况下它会报告

遇到无解的线性方程

我们看到这是因为行列式为零。

  Det[m] 

0

基本上,您的未知数 d5c2d5c3 在每个方程中具有相同的系数,因此您实际上有四个方程并且只有三个未知数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-23
    • 2021-02-16
    • 1970-01-01
    • 2019-01-21
    • 2017-12-28
    • 1970-01-01
    • 2017-03-26
    相关资源
    最近更新 更多