如何利用带条件的变换规则把多项式中的高阶幂次项去掉?
mathematica吧
全部回复
仅看楼主
level 1
诸位,问题如下,假设我有一个四次四项式s,可以通过条件“/;”把四次幂项给去掉吗,该如何操作?
s = x y + x^2 y + x^2 y^2 + x^3 y
s /. {x^n_ /; n >= 2 -> 0, y^m_ /; m > 1 -> 1}
s /. {x^n_ -> 0, y^m_ -> 1} /; n >= 2 && m > 1
s /. {x^n_ -> 0, y^m_ -> 0} /; n + m >= 4
以上三个中,第一个是分别作用的,但如果我想像第二个那样把条件统统放到背后来写,有可操作行吗,因为我第二个在这里报错了。
第三个就是想去掉四次幂项了,但因为第二个的想法没实现,所以,嘿嘿,报错了。
2018年12月05日 11点12分 1
level 1
我这发布违规内容了?
2018年12月06日 00点12分 2
吧务
level 7
Total[Table[
If[m + n >= 4, 0, x^m y^n], {m, 0, Exponent[s, x]}, {n, 0,
Exponent[s, y]}] CoefficientList[s, {x, y}], 2]
2018年12月06日 02点12分 4
吧务
level 7
s /. (x^n_ y^m_ /; n + m >= 4) | (x y^m_ /; m >= 3) | (x^n_ y /;
n >= 3) | (x^n_ /; n >= 4) | (y^m_ /; m >= 4) -> 0
2018年12月06日 02点12分 5
你好,我觉得(x^n_ y^m_ /; n + m >= 4) | (x y^m_ /; m >= 3) | (x^n_ y /; n >= 3)可以再简化下,变成(x^n_. y^m_. /; n + m >= 4)。 s /. (x^n_. y^m_. /; n + m >= 4) | (x^n_ /; n >= 4) | (y^m_ /; m >= 4) -> 0
2018年12月06日 08点12分
不过这样一来我还有个问题,(x^n_ y^m_ /; n + m >= 4)中的m,n是从2取起的,如果像这样s /. x^n_ /; n >= 1 -> 0 ,即强制令n从1取起,失败了,是说明这个n不仅是变量,而且是从2取起的是吗,哪怕加条件也是在这基础上的是吗?
2018年12月06日 08点12分
吧务
level 7
Total[Cases[s,
m__ /; Total[Exponent[m, #] & /@ Cases[m, _Symbol, Infinity]] < 4]]
2018年12月06日 05点12分 6
层主,Exponent[m, #] & /@ Cases[m, _Symbol, Infinity] 你这句是要算出每一项{x,y}的系数吧,那这样不知行不行呢?改成 Exponent[m, {x, y}] Total[Cases[s, m__ /; Total[Exponent[m, {x, y}]] < 4]]
2018年12月06日 09点12分
@sky无聊之人 嗯,没细想Exponent函数的用法
2018年12月07日 00点12分
1