MATLAB利用solve函数解多元一次方程组
matlab求解多元方程组示例:
syms k1 k2 k3; [k1 k2 k3] = solve(-3-k3==6, 2-k1-k2+2*k3==11, 2*k1+k2-k3+1==6)
或者用
[k1 k2 k3] = solve(‘-3-k3=6’, ‘2-k1-k2+2*k3=11’, ‘2*k1+k2-k3+1=6’)
另外,可以指定未知数为哪个
[k1 k2 k3] = solve(‘-3-k3=6’, ‘2-k1-k2+2*k3=11’, ‘2*k1+k2-k3+1=6’,k1,k2,k3)
结果:
k1 = 23 k2 = -50 k3 = -9
注意:等式不用引号,按其他示例加上引号会报错;
等号要用‘==’而不是‘=’
总结:1.使用引号,用=;
2.不使用引号,用==;
之前老是报错:
错误使用 solve>getEqns (line 418) List of equations must not be empty. 出错 solve (line 226) [eqns,vars,options] = getEqns(varargin{:});
原因是用了引号,等式变成字符串,我这个版本的matlab似乎无法识别