这可能
非常简单,但我在设置矩阵以使用符号对象解决两个线性方程时遇到了麻烦。
等式的形式如下:
(1) a11*x1 + a12*x2 + b1 = 0
(2) a21*x1 + a22*x2 + b2 = 0
所以我有一个向量 {E}:
[ a11*x1 + a12*x2 + b1 ]
{E} = [ a21*x1 + a22*x2 + b2 ]
我想得到一个矩阵 [A] 和一个向量 {B},这样我就可以解方程,即 [A]*{X} + {B} = 0 => {X} = -[A]{B}.
哪里
[ x1 ]
{X} = [ x2 ]
[ a11 a12 ]
[A] = [ a21 a22 ]
[ b1 ]
{B} = [ b2 ]
矩阵 [A] 只是 {E} 的雅可比矩阵,但我必须在 {E} 上执行什么操作才能获得 {B},即不包含 x 的项?
这是我所做的:
x = sym('x', [2 1]);
a = sym('a', [2 2]);
b = sym('b', [2 1]);
E = a*x + b;
A = jacobian(E,x);
n = length(E);
B = -E;
for i = 1:n
for j = 1:n
B(i) = subs(B(i), x(j), 0);
end
end
X = AB
我认为一定有一些功能可以在一行中执行此操作。
所以基本上我的问题是:我能做什么来代替那些循环?
(我意识到这是非常简单的事情,通过搜索很容易找到。问题是我不知道这叫什么,所以我不知道要寻找什么。
这只是B = subs(B,x,[0 0])