guocong89 发表于 2011-4-11 19:27:39

mathematica多项式降幂排列问题

有人问这么一个问题,把 x^8-1 进行分解因式,得到结果 (-1 + x) (1 + x) (1 + x^2) (1 + x^4)那么有没有办法使结果降幂排列呢?

guocong89 发表于 2011-4-11 19:53:37

1# guocong89
我最初的想法和他是一致的,就是降幂排列是Factor的一个选项,但看一下帮助就知道并不是这么回事。

我觉得这是由Times本身的Orderless属性决定的。
通过以下函数我们可以得到降序排列的因子序列

res = Factor;
res = Sort,
Exponent[#1, x] > Exponent[#2, x] &]


{1 + x^4, 1 + x^2, 1 + x, -1 + x}


但是把Times Apply 到上述结果后,结果又还原为(-1 + x) (1 + x) (1 + x^2) (1 + x^4)

为了解决这个问题,我只能想到一个曲线救国的方针,

Unprotect;
oldAtt = Attributes;
ClearAttributes;
Times@@res
Attributes = oldAtt;
Protect;

但是感觉这么做好山寨,请问有没有更好的方式呢?

TBE_Legend 发表于 2011-4-12 08:47:24

我不认为有什么其他办法了。

esetlzn 发表于 2011-4-12 08:55:19

个人认为还有好方法,用Unprotect肯定不是最好方法!
晚上我来试试••••••••

TBE_Legend 发表于 2011-4-12 15:26:23

4# esetlzn

期待 :)

esetlzn 发表于 2011-4-12 18:47:07

[*]Clear["Global`*"][*]res = Factor;[*]antires = Sort, Exponent [#1, x] > Exponent [#2, x] &];[*]wow] = HoldForm;[*]wow

esetlzn 发表于 2011-4-12 18:50:30

我的答案还不够完美,有点定制的感觉!
对了大家教教我如何才能像2楼一样以代码的方式回复或发表主题?

esetlzn 发表于 2011-4-12 18:54:53

lz问的问题咋这么怪呢?
这个问题不实用哦!

guocong89 发表于 2011-4-12 20:26:55

7# esetlzn
在回复时用 把语句段包起来就行了,工具栏里那个 <> 符号就是快捷键

guocong89 发表于 2011-4-12 20:28:10

8# esetlzn
这个问题是QQ群里别人问的,不过多项式降幂排列问题确实是挺常见的,而且没有完美解决方案.

guocong89 发表于 2011-4-12 20:31:57

6# esetlzn
但是HoldForm并不好,因为这仅仅是强制mathematica不进行表达式化简,而且产生的结果不能够再参与运算了,比如
Expand]

esetlzn 发表于 2011-4-12 20:44:43

在我看来这问题只是最终结果表达格式的改变而已,结果不会再被用到了!

esetlzn 发表于 2011-4-12 20:49:49

11# guocong89
如果你实在要再用结果,把我的HoldForm改成Defer!

HyperGroups 发表于 2011-8-31 01:31:24

恩,要用结果也可以ReleaseHold一下,另外我也常遇到排版的问题,经常花大力气弄成想要的样式,然后复制到别的地方,或输出或截图。
"(-1+x) (1+x) (1+x^2) (1+x^4)" // StringSplit[#, " "] & //
Reverse // StringJoin
只是输出或显示用字符串也方便,另外也可以用HoldForm等写个小函数使得不用手动输入两个双引号。
也可以通过输入输出实现。
当然其他Print,Do,Table等等等来实现表面的降幂排列也有许多吧

chungyuandye 发表于 2011-8-31 21:31:45

本帖最后由 chungyuandye 于 2011-8-31 22:24 编辑

可把1+x^4也改成x^4+1嗎?

自問自答
ClearAttributes;
Apply > Exponent[#2, x] &] /.
Plus :> HoldForm]



wushi111 发表于 2011-9-3 11:24:20

高手啊都是。。。开眼界。。。。。。服了,谢谢啦
页: [1]
查看完整版本: mathematica多项式降幂排列问题