这可能非常简单,但我在设置矩阵时无法使用符号对象解决两个线性方程式。
方程式如下:
(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 = A\B
我认为必须有一些功能可以在一行中完成。
基本上我的问题是:我可以做什么而不是那些for循环?
(我意识到这是非常简单的,通过搜索很容易找到。问题是我不知道这叫什么,所以我不知道该找什么。)
答案 0 :(得分:2)
只是B = subs(B,x,[0 0])