我阅读了Matlab文档,仍然很难理解Matlab求解方程中多个变量的顺序
例如
syms f1(R,L) f2(R,L);
f1 = (80+R)^2 + (120*pi*L)^2 - 232^2;
f2 = R^2 + (120*pi*L)^2 - 176^2;
[R,L] = solve (f1,f2);
fprintf('Resistor is %s Ωn',round(R,3));
fprintf('Inductance is %s Hn',round(L,3));
若我用Z
替换变量L
,结果将是相反的。它似乎是按字母顺序排列的,我不知道它的确切规则是什么
根据您链接的solve
文档:
Y = solve(eqns,vars)
求解变量vars
的方程组eqns
,并返回包含解的结构。如果未指定vars
,solve
将使用symvar
查找要求解的变量。
您没有指定要为哪些变量求解,因此MATLAB试图通过调用symvar
来推断这一点。symvar
返回的标识符的顺序似乎没有明确记录,所以我不建议依赖任何特定的顺序。
如果您想指定solve
应该为哪些变量求解,以及它们在输出中的顺序,请将它们作为solve
:的第二个参数在数组中传递
[R, L] = solve([f1, f2], [R, L]);