使用 Maxima 重新排列除法方程

Rearranging equation with division using Maxima

我正在尝试使用最大值重新排列方程,但是 coefmatrix 函数不适用于具有某些除法的方程,例如 RL_parallel

我得到的系数全为零

RL_series: Rs + %i*w*Ls;
RL_parallel: ratsimp( 1 / [1/Rp + 1/(%i*w*Lp)] );

display2d : false $
eq : RL_series  = RL_parallel $
vars : [Rs, Rp, Ls, Lp] $
coeffs : coefmatrix ([eq], vars);

coeffs . vars;

这里的主要问题是方程在指定的变量中不是线性的,所以不幸的是,提取系数矩阵没有任何意义。

我猜你想解 vars 的方程。在我看来,您需要额外的数据,但很可能是我遗漏了什么。

这是我得到的。注意 [ ... ] 是一个列表;使用 ( ... ) 对表达式进行分组。

(%i1) RL_series: Rs + %i*w*Ls;
(%o1)                            %i Ls w + Rs
(%i2) RL_parallel: ratsimp( 1 / (1/Rp + 1/(%i*w*Lp)) );
                                   Lp Rp w
(%o2)                            ------------
                                 Lp w - %i Rp
(%i3) eq : RL_series  = RL_parallel;
                                           Lp Rp w
(%o3)                     %i Ls w + Rs = ------------
                                         Lp w - %i Rp
(%i4) vars : [Rs, Rp, Ls, Lp];
(%o4)                          [Rs, Rp, Ls, Lp]
(%i5) denom(rhs(eq)) * eq;
(%o5)               (Lp w - %i Rp) (%i Ls w + Rs) = Lp Rp w
(%i6) expand (%);
                       2
(%o6)        %i Lp Ls w  + Lp Rs w + Ls Rp w - %i Rp Rs = Lp Rp w

假设vars是实数,我们可以将等式的实部和虚部分开。

(%i7) [realpart(%), imagpart(%)];
                                                   2
(%o7)         [Lp Rs w + Ls Rp w = Lp Rp w, Lp Ls w  - Rp Rs = 0]
(%i8) first(%) / (Lp*Rp*w);
                             Lp Rs w + Ls Rp w
(%o8)                        ----------------- = 1
                                  Lp Rp w
(%i9) expand (%);
                                  Rs   Ls
(%o9)                             -- + -- = 1
                                  Rp   Lp

所以其中一个方程有乘积 Xs*Xp,另一个方程有比值 Xs/Xp。也许这有助于指导对其他数据的搜索。

此时我不知道还能说些什么。如果有人可以对此发表评论,我很想听听。

编辑:OP 说目标是根据 Rs 和 Ls 求解 Rp 和 Lp。鉴于此,我们可以解决我们在 %o7.

中获得的两个方程
(%i10) %o7[2];
                                    2
(%o10)                       Lp Ls w  - Rp Rs = 0
(%i11) solve ([%o9, %o10], [Rp, Lp]);
                   2  2     2         2  2     2
                 Ls  w  + Rs        Ls  w  + Rs
(%o11)    [[Rp = ------------, Lp = ------------], [Rp = 0, Lp = 0]]
                      Rs                   2
                                       Ls w
(%i12) subst (%o11[1], [%o9, %o10]);
                         2  2            2
                       Ls  w           Rs
(%o12)             [------------ + ------------ = 1, 0 = 0]
                      2  2     2     2  2     2
                    Ls  w  + Rs    Ls  w  + Rs
(%i13) ratsimp(%);
(%o13)                          [1 = 1, 0 = 0]