首页 文章

用Mathematica求解非线性矩阵系统

提问于
浏览
0

我试图用Mathematica找到矩阵方程的非线性系统的解 . 解决方案空间太复杂,无法尝试使用Solve,因此我尝试使用FindInstance . 这是一个非线性系统的最简单的例子,我试图找到一个解决方案:

T + A + C + CBA = 0
I - A - C - ABC = 0

其中A,B,C是任何矩阵,Det [T] = 1,I是维度为2x2的单位矩阵 . 我还希望所有矩阵只有整数条目 . 我正在使用该命令

FindInstance[{T + a + c + c.b.a == z, IdentityMatrix[2] - a - c - 
    a.b.c == z, Det[T]==1} , Integers]

其中z是零矩阵 . 但是,每次执行此操作时,它都会响应“FindInstance :: exvar:系统包含一个独立于变量的非常量表达式 . ”

重试命令为

FindInstance[{T + a + c + c.b.a == z, 
   IdentityMatrix[2] - a - c - a.b.c == z, 
   Det[T] == 1}  /. {a -> {{1, 0}, {0, 1}}}, Integers]

返回“FindInstance :: exvar:系统包含一个非常量表达式b,独立于变量 . ”

如何使用FindInstance或Solve找到该系统的解决方案,而无需通过修复“自变量”自行找到解决方案?

1 回答

  • 0

    我发现我遇到了语法问题 .

    解决这些矩阵方程的正确语法如下:

    A = {{A11, A12}, {A21, A22}}
    
    B = {{B11, B12}, {B21, B22}}
    
    C = {{C11, C12}, {C21, C22}}
    
    T = {{T11, T12}, {T21, T22}}
    
    FindInstance[{T + A + C + C.B.A==0, IdentityMatrix[2] - A - C - A.B.C==0, Det[T]==1}, 
    {T11, T12, T21, T22, A11, A12, A21, A22, B11, B12, B21, B22, C11, C12, C21, C22}, 
    Integers]
    

相关问题