3

这可能非常简单,但我在设置矩阵以使用符号对象求解两个线性方程时遇到了麻烦。

方程在表格上:

(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 循环?

(我意识到这是非常简单的东西,很容易通过搜索找到。问题是我不知道这叫什么,所以我不知道要找什么。)

4

1 回答 1

3

这只是B = subs(B,x,[0 0])

于 2013-02-02T16:24:25.480 回答