matlab多元一次方程组求解,程序出错,原因

syms x
syms y
syms z
syms s
s=solve('2x+3y+z=450000','x+2y+z=300000','2x+2y+z=350000','x','y','z')

有两种输入的方法:
第一种也就是你想输入的方法:

syms x y z;%注意在用syms定义多个变量时中间不能用逗号,而要用空格;
[x,y,z]=solve(2*x+3*y+z-450000,x+2*y+z-300000,2*x+2*y+z-350000,x,y,z)

第二种方法是不用定义符号变量:
clear x y z;
[x,y,z]=solve('2*x+3*y+z=450000','x+2*y+z=300000','2*x+2*y+z=350000','x','y','z')

说明:要注意上面两种方法的不同,在第一种方法中方程是2*x+3*y+z-450000,且由于定义了符号变量而不用再加引号,第二种不用定义符号变量,而直接使用引号。

结果是:
x =
50000
y =
100000
z =
50000
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-24
用数值解法比较好:
1.输入第系数矩阵:
a=[2 3 1;1 2 1;2 2 1];
2.输入增广矩阵:
b=[450000;300000;350000];
输入时注意是分号还是逗号。
3.用命令求解:
x=rref([a,b])也可用x=inv(a)*b或x=a\b
求出的x的值分别是x,y,z的值

希望能对你有帮助
相似回答