我是从MATLAB到Python的新手。我现在有一个用Python求解方程组的问题。例如,在Matlab中
R = solve( a1*[x1; x2] == [y1;y2], ...
a2*[x3; x4] == [y3;y4], ...
a3*[x5; x6] == [y5;y6], ...
x2 == y3, x3 == y2, ...
x4 == y5, x5 == y4, ...
[ x2 x3 x4 x5 ...
y1 y2 y3 y4 y5 y6]... % unknown
);
y1 = simplify(R.y1);
y10 = simplify(R.y10);
a1..a5是系数y1y10,这是我要解的,它们应该是解后的符号表达式。如何在Python中实现这一点?在
NumPy没有符号解的概念。可以按如下方式使用SymPy:
输出是
{(y1/3, 0, 0, 0, 0, y6/5, y1, 0, 0, 0, 0, y6)}
,表示大多数变量必须是0,x1必须是y1/3,x5必须是y6/6,并且变量y1、y2可以是什么。在上面使用^{} ,因为系统在每个未知项中都是线性的。其他solvers可用于非线性方程。在
注意,方程可以输入为
lhs - rhs
(如上所述)或Eq(lhs, rhs)
。而不是lhs == rhs
,它在Python中会立即计算为False。在相关问题 更多 >
编程相关推荐