我正在尝试编写一个从用户那里接受系统变量的 Matlab 程序,但是变量比系统参数多。具体来说,三个方程中有六个变量:
w - d - M = 0
l - d - T = 0
N - T + M = 0
这可以用矩阵形式表示A*x=0
为
A = [1 0 0 -1 0 -1;
0 1 0 -1 -1 0;
0 0 1 0 -1 1];
x = [w l N d T M]';
在给定变量的已知子集的情况下,我希望能够解决这个系统。例如,如果用户给出d
, T
, M
,则系统对于其他三个变量很容易求解。如果用户提供w
, N
, M
, 那么它就变成了一个可解的 3-DOF 系统。等等。(如果用户对系统的指定过多或过少,那么当然可能会导致错误。)
给定这些组合中的任何一种,(先验)使用矩阵代数来计算未知量都很简单。但我不知道如何解决一般情况,除了使用符号工具箱(出于兼容性原因我不喜欢这样做)。
当我开始使用这种方法时,我认为这一步会很容易,但是我的线性代数已经生疏了;我错过了一些简单的东西吗?