【问题标题】:large number of linear equations in MATLABMATLAB中的大量线性方程
【发布时间】:2023-03-16 14:48:01
【问题描述】:

我想使用solve() 来求解大型线性方程组。 solve() 函数需要方程和变量。我使用循环来生成方程,我的变量包含在一个大数组中。这是我正在尝试做的简单代码:

x = sym('x',[1 3])
eqn = sym('eqn', [1,3])
eqn1 = 2*x1 + x2 + x3 - 2 == 0
eqn2 = 2*x2 -x2 -x1- x3 == 3
eqn3 = 2*x2+ x1 + 3*x3 == -10
Y = solve(eqn, x)

MATLAB 无法识别我的变量 x1。我已经使用以下代码解决了相同的系统:

syms x1 x2 x3
eqn1 = 2*x1 + x2 + x3 == 2
eqn2 =   2*x2 -x2 -x1 - x3 == 3
eqn3 = 2*x2+ x1 + 3*x3 == -10
X = solve([eqn1, eqn2, eqn3, eqn4], [x1 x2 x3])
structfun(@subs,X)

但这对于大量方程是没有用的。我做错了什么?

【问题讨论】:

    标签: matlab linear-algebra


    【解决方案1】:

    您不需要符号 (syms)。这是一个标准的线性方程组,可以表示为: Ax = b 其中A = [2 1 1; -1 1 -1; 1 2 3]x = [x1; x2; x3]b = [0; 3; -10]

    要求解 x,首先要定义

    A = [2 1 1; -1 1 -1; 1 2 3]

    b = [0; 3; -10]

    然后使用解决

    x = A\b

    PS。您的问题中有一些奇怪的东西,例如。在 eq.2 eqn2 = 2*x2 -x2 -x1- x3 == 3 我假设你省略了简单的这个到 -x1 +x2 -x3 ==3

    PS2。这是非常标准的 Matlab,您可以在文档中的标准 mldivide page 下找到很多信息,以及在 SO 上的很多类似问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多