【问题标题】:Computationally solve system of equations with singular matrix计算求解具有奇异矩阵的方程组
【发布时间】:2013-09-27 18:14:09
【问题描述】:

我有这个奇异矩阵(我称之为 A)

-3a          1         0    0
 3a    -2a - 1         2    0
 0      2a        -a-b-2    3
 0           0     a+b     -3

我正在尝试求解 Ax = 0,使得 x 中的元素之和为 1。我想根据 a 和 b 求解 x。我知道如何手动执行此操作(使用高斯消元根据第四个分量编写所有分量,然后设置第四个分量以便对解决方案进行归一化)。但是有没有办法通过计算来做到这一点?我可以在 Python、Mathematica 或 R 中执行此操作。(或 MATLAB,但我认为没有办法在 MATLAB 中执行此操作。)

我复制的代码是通过向矩阵添加第五行来实现的,

1    1    1    1

然后使用 QR 分解来找到最小二乘解。但是,我认为我无法做到这一点,因为我没有 a 和 b 的值,我想根据 a 和 b 来解决解决方案。

【问题讨论】:

    标签: python r wolfram-mathematica linear-algebra


    【解决方案1】:
    In[1]:= A = {{-3a,1,0,0}, {3a,-2a-1,2,0}, {0,2a,-a-b-2,3}, {0,0,a+b,-3}};
    x = {p, q, r, s};
    sol = Reduce[A.x==0 && p+q+r+s==1 && Det[A]==0, x, Backsubstitution->True]
    
    Out[3]= (1+3*a+3*a^2+a^3+a^2*b) != 0 && 
    p == 1/(1+3*a+3*a^2+a^3+a^2*b) && 
    q == (3*a)/(1+3*a+3*a^2+a^3+a^2*b) && 
    r == (3*a^2)/(1+3*a+3*a^2+a^3+a^2*b) && 
    s == (a^3 + a^2*b)/(1+3*a+3*a^2+a^3+a^2*b)
    
    In[4]:= x=x/.ToRules[sol (* Watch out for that denominator!!! *)];
    Simplify[A.x]
    
    Out[5]= {0, 0, 0, 0}
    
    In[6]:= Simplify[Total[x]]
    
    Out[6]= 1
    

    【讨论】:

    • 谢谢,我不知道你能做到!
    • 你知道我如何在更大的系统上做到这一点,比如 11x11 吗?当我尝试时,它需要永远运行。
    • 如果您查看由小整数组成的 11x11 矩阵的行列式的大小,并且包含与 4x4 问题中包含变量的表达式的百分比大致相同,那么我想您会对您要求它解决的问题的大小。或者,简短的回答,不。但是,一些你真正对答案感兴趣的问题可能值得等待数天或数周。但是不知道它是否正在取得进展,或者如果它完成后会给出有用的答案,这很烦人。
    【解决方案2】:

    在 MATLAB 中有一种方法可以做到这一点,但我无法比这更进一步。

    syms a b
    A = [ -3*a,         1,           0,  0;
           3*a, - 2*a - 1,           2,  0;
             0,       2*a, - a - b - 2,  3;
             0,         0,       a + b, -3;
             1,         1,           1,  1];
    x = solve(A,[0 0 0 0 1]')
    

    我收到以下警告:

    Warning: 20 equations in 2 variables. 
    Warning: Explicit solution could not be found. 
    

    【讨论】:

      猜你喜欢
      • 2020-09-16
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      相关资源
      最近更新 更多