matlab 報錯:錯誤使用 solve>getEqns List of equations must not be empty; 出錯 solve [eqns, vars, options]

前言: 朋友使用的 matlab 2019 ,我用的 matlab 2014b 。我跟他說了一種解方程組方式,但是 2019 版本已經不再適用。我幫助他解決了這個問題。

他的 matlab 報錯如下:

錯誤使用 solve>getEqns (line 418)
List of equations must not be empty.

出錯 solve (line 226)
[eqns, vars, options] = getEqns(varagin[:]);

他的程序如下:

syms x y z

eq1 = 'x^2 + sin(y) - z = 100';
eq2 = 'x - y + z = 5';
eq3 = 'x * z + cos(y) = 6 * z';

[x, y, z] = solve(eq1, eq2, eq3, 'x', 'y', 'z');

問題出在:matlab 2019 中已經不接受向 solve 中傳入字符串。我們需要對方程組改進如下:

  • eq 賦值時去掉等號;
  • 表示公式的等式中的 = 改成 == 表示條件判斷;
  • solve 中去掉符號的單引號。

即如下:

syms x y z

eq1 = x^2 + sin(y) - z == 100;
eq2 = x - y + z == 5;
eq3 = x * z + cos(y) == 6 * z;

[x, y, z] = solve(eq1, eq2, eq3, x, y, z);

完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章