如何使用具有多个非整数系数的wxMaxima对方程进行部分分数扩展
How to do a partial fractions expand of an equation with wxMaxima that has several non integer coefficients
你好吗?
我在 wxMaxima 中进行部分分数展开时遇到问题,我有以下等式,其中有几个非整数系数
3.63353804840429*10^-8*z^2-7.322452324955847*10^-8*z+3.687492572586066*10^-8
X(z) = ----------------------------------------------------------------------------
1.0*z^2-1.999945180935844*z+0.9999451809358438
当我尝试对该等式进行分形计算时,wxMaxima 根本没有这样做,如下图所示
我知道至少分母有实根,因为当我应用求解时,结果有两个非常接近一个的实根,如下所示
float(solve(denom(PIDz))));
(%o185) [z=0.9999451810050616,z=0.9999999999307788]
我认为问题是由于非整数系数或由于十进制数量但我不知道如何解决它。
如何解决?
22 年 1 月 15 日更新:
我的post的初始方程是为以下工厂进行PID控制的计算方程(以下方程是用Scilab获得的)
79.728153*z+79.433306
-----------------------------
z^2-1.9889465*z+0.9889465
21 年 1 月 17 日更新:
按照@Robert Dodier 教授的方法,但是使用 x(z) 然后我找到了 x(z) 的分母系数之间的关系,然后我用代数系数替换这些系数,如下所示
dd1: z^2 - (cd - 2)*z + cd;
(dd1) z^2-(cd-2)*z+cd
nn1: nn1: an*z^2 + bn*z + cn;
(nn1) an*z^2+bn*z+cn
nn1/dd1;
(%o3) (an*z^2+bn*z+cn)
-------------------
(z^2-(cd-2)*z+cd)
partfrac (nn1/dd1, z);
%o4 (an*cd+bn-2*an)*z+cn-an*cd)
----------------------------- + an
(z^2-(1 + cd)*z+cd)
我已经用分子中的几种组合对其进行了测试,我的意思是,一阶方程和二阶方程的所有系数都在分子上,它们之间没有任何关系。之后,找到作为一阶项系数 (cd - 2) 的分母系数与作为独立项的 cd 之间的关系,我得到了上述 %o4。在图像“Salida de partfrac”
中可以看到以数字方式获得的完全相同的结果形式
也就是说,当 maxima 在分母中找到那种方程时,它不会对分母进行因式分解。
在此先感谢您的帮助。
我无法从您所说的内容中判断出发生了什么。在这一点上,我的建议是在 es.whosebug.com 中重新发布,我会再试一次;我可以读写西班牙语。我想你会更清楚地表达问题。
无论如何,这是我从 Scilab 得到的方程式。不知道有没有用
(%i2) dd:z^2-1.9889465*z+0.9889465;
2
(%o2) z - 1.9889465 z + 0.9889465
(%i3) dd1: z^2 - (1 + cd)*z + cd;
2
(%o3) z - (cd + 1) z + cd
(%i4) nn:79.728153*z+79.433306;
(%o4) 79.728153 z + 79.433306
(%i5) nn1: bn*z + cn;
(%o5) bn z + cn
(%i6) nn1/dd1;
bn z + cn
(%o6) --------------------
2
z - (cd + 1) z + cd
(%i7) partfrac (nn1/dd1, z);
cn + bn cd cn + bn
(%o7) ----------------- - ----------------
(cd - 1) (z - cd) (cd - 1) (z - 1)
(%i8) factor (dd1);
(%o8) (z - 1) (z - cd)
最后一位 %o8 表明分母有一个单位根。这会给您带来并发症吗?
我用 cd
替换了 0.9889465,然后用 1 + cd
替换了 1.9889465——如果系数之间有任何其他已知关系,最好使用它们。我没有看到其他系数有任何关系,所以我只是将它们替换为 bn
和 cn
。目的是进行任何操作,然后用它们的数值替换常量 cd
、bn
、cn
。
Scilab 的结果是如何得出的?我在想也许这应该象征性地完成,或者至少也应该用有理数来完成。
编辑:这是我再次尝试后得到的结果。此结果与 OP 在日期为 17/01/21 的编辑中显示的结果之间的一个区别(我猜那一定是 17/01/22)在 dd1
中——我认为 [=20 的系数=] 应该是 -(1 + cd)
,而不是 2 - cd
.
(%i2) dd1: z^2 - (1 + cd)*z + cd;
2
(%o2) z - (cd + 1) z + cd
(%i3) nn1: an*z^2 + bn*z + cn;
2
(%o3) an z + bn z + cn
(%i4) nn1/dd1;
2
an z + bn z + cn
(%o4) --------------------
2
z - (cd + 1) z + cd
(%i5) factor(dd1);
(%o5) (z - 1) (z - cd)
(%i6) partfrac (nn1/dd1, z);
2
cn + an cd + bn cd cn + bn + an
(%o6) ------------------- - ---------------- + an
(cd - 1) (z - cd) (cd - 1) (z - 1)
你好吗?
我在 wxMaxima 中进行部分分数展开时遇到问题,我有以下等式,其中有几个非整数系数
3.63353804840429*10^-8*z^2-7.322452324955847*10^-8*z+3.687492572586066*10^-8
X(z) = ----------------------------------------------------------------------------
1.0*z^2-1.999945180935844*z+0.9999451809358438
当我尝试对该等式进行分形计算时,wxMaxima 根本没有这样做,如下图所示
我知道至少分母有实根,因为当我应用求解时,结果有两个非常接近一个的实根,如下所示
float(solve(denom(PIDz))));
(%o185) [z=0.9999451810050616,z=0.9999999999307788]
我认为问题是由于非整数系数或由于十进制数量但我不知道如何解决它。
如何解决?
22 年 1 月 15 日更新:
我的post的初始方程是为以下工厂进行PID控制的计算方程(以下方程是用Scilab获得的)
79.728153*z+79.433306
-----------------------------
z^2-1.9889465*z+0.9889465
21 年 1 月 17 日更新:
按照@Robert Dodier 教授的方法,但是使用 x(z) 然后我找到了 x(z) 的分母系数之间的关系,然后我用代数系数替换这些系数,如下所示
dd1: z^2 - (cd - 2)*z + cd;
(dd1) z^2-(cd-2)*z+cd
nn1: nn1: an*z^2 + bn*z + cn;
(nn1) an*z^2+bn*z+cn
nn1/dd1;
(%o3) (an*z^2+bn*z+cn)
-------------------
(z^2-(cd-2)*z+cd)
partfrac (nn1/dd1, z);
%o4 (an*cd+bn-2*an)*z+cn-an*cd)
----------------------------- + an
(z^2-(1 + cd)*z+cd)
我已经用分子中的几种组合对其进行了测试,我的意思是,一阶方程和二阶方程的所有系数都在分子上,它们之间没有任何关系。之后,找到作为一阶项系数 (cd - 2) 的分母系数与作为独立项的 cd 之间的关系,我得到了上述 %o4。在图像“Salida de partfrac”
中可以看到以数字方式获得的完全相同的结果形式也就是说,当 maxima 在分母中找到那种方程时,它不会对分母进行因式分解。
在此先感谢您的帮助。
我无法从您所说的内容中判断出发生了什么。在这一点上,我的建议是在 es.whosebug.com 中重新发布,我会再试一次;我可以读写西班牙语。我想你会更清楚地表达问题。
无论如何,这是我从 Scilab 得到的方程式。不知道有没有用
(%i2) dd:z^2-1.9889465*z+0.9889465;
2
(%o2) z - 1.9889465 z + 0.9889465
(%i3) dd1: z^2 - (1 + cd)*z + cd;
2
(%o3) z - (cd + 1) z + cd
(%i4) nn:79.728153*z+79.433306;
(%o4) 79.728153 z + 79.433306
(%i5) nn1: bn*z + cn;
(%o5) bn z + cn
(%i6) nn1/dd1;
bn z + cn
(%o6) --------------------
2
z - (cd + 1) z + cd
(%i7) partfrac (nn1/dd1, z);
cn + bn cd cn + bn
(%o7) ----------------- - ----------------
(cd - 1) (z - cd) (cd - 1) (z - 1)
(%i8) factor (dd1);
(%o8) (z - 1) (z - cd)
最后一位 %o8 表明分母有一个单位根。这会给您带来并发症吗?
我用 cd
替换了 0.9889465,然后用 1 + cd
替换了 1.9889465——如果系数之间有任何其他已知关系,最好使用它们。我没有看到其他系数有任何关系,所以我只是将它们替换为 bn
和 cn
。目的是进行任何操作,然后用它们的数值替换常量 cd
、bn
、cn
。
Scilab 的结果是如何得出的?我在想也许这应该象征性地完成,或者至少也应该用有理数来完成。
编辑:这是我再次尝试后得到的结果。此结果与 OP 在日期为 17/01/21 的编辑中显示的结果之间的一个区别(我猜那一定是 17/01/22)在 dd1
中——我认为 [=20 的系数=] 应该是 -(1 + cd)
,而不是 2 - cd
.
(%i2) dd1: z^2 - (1 + cd)*z + cd;
2
(%o2) z - (cd + 1) z + cd
(%i3) nn1: an*z^2 + bn*z + cn;
2
(%o3) an z + bn z + cn
(%i4) nn1/dd1;
2
an z + bn z + cn
(%o4) --------------------
2
z - (cd + 1) z + cd
(%i5) factor(dd1);
(%o5) (z - 1) (z - cd)
(%i6) partfrac (nn1/dd1, z);
2
cn + an cd + bn cd cn + bn + an
(%o6) ------------------- - ---------------- + an
(cd - 1) (z - cd) (cd - 1) (z - 1)