【问题标题】:System of linear equations in matlab with 2 ways but can't get same resultsmatlab中的线性方程组有两种方法但不能得到相同的结果
【发布时间】:2015-03-11 17:30:01
【问题描述】:

我正在尝试用两种方法在 Matlab 中求解一个由 4 个线性方程组成的系统 第一:

A = [5,2,3,4;2,6,1,9;6,3,1,5;2,4,7,9];
B = [7;11;5;3];
X = [A\B]';

结果:

X =  0.5556   17.4667    4.4889  -11.0444

第二个:

[x,y,z,w] = solve('5*x+2*y+3*z+4*w-7','2*x+6*y+z+9*w-11','6*x+3*y+z+5*w-5','2*x+4*y+7*z+9*w-3')

结果:

X = -497/45, Y=5/9,  Z=262/15, W=202/45 

如您所见,第二种方式的结果顺序不正确。我用谷歌搜索方程,发现第一个顺序是正确的。

有没有人知道发生了什么以及如何解决它?

提前谢谢!

【问题讨论】:

    标签: matlab linear-equation


    【解决方案1】:

    调用solve时指定未知数的顺序:

    >> syms x y z w %// define symbolic variables (unknowns)
    >> [x0,y0,z0,w0] = solve('5*x+2*y+3*z+4*w-7',...
                             '2*x+6*y+z+9*w-11',...
                             '6*x+3*y+z+5*w-5',...
                             '2*x+4*y+7*z+9*w-3',...
                              x, y, z, w)
    x0 =
    5/9
    y0 =
    262/15
    z0 =
    202/45
    w0 =
    -497/45
    

    顺便说一句,一旦将xyzw 定义为符号变量,就可以避免使用引号:

    >> [x0,y0,z0,w0] = solve(5*x+2*y+3*z+4*w-7,...
                             2*x+6*y+z+9*w-11,...
                             6*x+3*y+z+5*w-5,...
                             2*x+4*y+7*z+9*w-3,...
                             x, y, z, w)
    x0 =
    5/9
    y0 =
    262/15
    z0 =
    202/45
    w0 =
    -497/45
    

    【讨论】:

    • 我也试过了,但是我得到的结果和以前一样。
    • 是的,但还是一样。
    • 只是为了确保:复制并粘贴此内容:clear all; syms x y z w; [x0,y0,z0,w0] = solve(5*x+2*y+3*z+4*w-7, 2*x+6*y+z+9*w-11, 6*x+3*y+z+5*w-5, 2*x+4*y+7*z+9*w-3,x, y, z, w)
    • 还是和以前一样。
    • @user2466795 - 我可以得到 Luis Mendo 发布的内容。我觉得你这边有问题。在最极端的情况下,关闭 MATLAB,重新启动它,然后输入 Luis Mendo 在上面对您的评论中告诉您的内容。
    猜你喜欢
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多