【问题标题】:How to solve simple linear algebra equations using symbolic objects?如何使用符号对象求解简单的线性代数方程?
【发布时间】:2013-01-17 19:09:27
【问题描述】:

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

方程式在表格上:

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

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

【问题讨论】:

    标签: matlab linear-algebra symbolic-math algebra


    【解决方案1】:

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

    【讨论】:

    • 看,我知道这非常简单。 :) 谢谢。你知道矩阵B叫什么吗? (我在报告中如何称呼它?)
    • 我会称它为“不均匀性”或只是方程系统的“右手边”......而且,我更愿意称它为向量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2011-10-04
    相关资源
    最近更新 更多