tracysmb 发表于 2007-4-28 01:49

求助 怎样使一个符号多项式按X升幂排列

怎样使一个符号多项式按X升幂排列

咕噜噜 发表于 2007-4-28 13:39

回复 #1 tracysmb 的帖子

降幂排列可以不,用collect(f,x)其中f为表达式,x就是你的变量x

tracysmb 发表于 2007-4-28 23:50

thanks!升幂呢?

tracysmb 发表于 2007-4-28 23:52

好像没用啊Sn =

a1*q^12+a1*q^13+a1*q^16+a1+a1*q^18+a1*q^20+a1*q^10+a1*q^9+a1*q^8+a1*q^7+a1*q^5+a1*q^15+a1*q^14+a1*q+a1*q^17+a1*q^19+a1*q^6+a1*q^21+a1*q^4+a1*q^23+a1*q^2+a1*q^3+a1*q^22+a1*q^25+a1*q^24+a1*q^26+a1*q^27+a1*q^28+a1*q^29+a1*q^11

>> collect(Sn,q)

ans =

a1*q^12+a1*q^13+a1*q^16+a1+a1*q^18+a1*q^20+a1*q^10......
collect 合并同类项啊

咕噜噜 发表于 2007-4-29 09:30

求助 怎样使一个符号多项式按X升幂排列

不会吧,我的书上写的是降幂排列啊
难道书错了?

咕噜噜 发表于 2007-4-29 10:39

回复 #4 tracysmb 的帖子

你的多项式比较长,我截取了一段用多项式求根然后再利用根求多项式排列了一下,可以了就,那个命令我也不知道怎么回事,^_^,可能是书写错了。
t=sym('a*q^12+a*q^13+a*q^16+a+a*q^18+a*q^20+a*q^10=0');
z=solve(t);
y=[-.91846991308766345110241065181859-.19804415730143605030891369399428*i
-.91846991308766345110241065181859+.19804415730143605030891369399428*i
-.87063480935270209738192192889228-.44847799408519015935469504320904*i
-.87063480935270209738192192889228+.44847799408519015935469504320904*i
-.59098258668623449302457183440812-1.0263359689097920808145699739398*i
-.59098258668623449302457183440812+1.0263359689097920808145699739398*i
-.57619900916599742383650234733897-.73668222986171349368313201403211*i
-.57619900916599742383650234733897+.73668222986171349368313201403211*i
-.13715373613165086565567188456091-.94306972355400808457376086159105*i
-.13715373613165086565567188456091+.94306972355400808457376086159105*i
.22092517412424943572759811797316-1.0087040281777089448881503074906*i
.22092517412424943572759811797316+1.0087040281777089448881503074906*i
.43155857183233074645711379622883-1.0148872092526024771555964780655*i
.43155857183233074645711379622883+1.0148872092526024771555964780655*i
.63857763595645332730103874236754-.70306415177456003859261729564817*i
.63857763595645332730103874236754+.70306415177456003859261729564817*i
.87607429279484027976511654129812-.20939738225595381192537413064752*i
.87607429279484027976511654129812+.20939738225595381192537413064752*i
.92630437971637454175021144915122-.50854680790016173441233382765621*i
.92630437971637454175021144915122+.50854680790016173441233382765621*i];
pp=poly(y);
p=poly2sym(round(pp))
其中y是上面solve命令求出的多项式的根,可能需要手工操作一下,因为matlab显示的时候不是以标准列向量的形式显示的,命令运行结果
x^20+x^18+x^16+x^13+x^12+x^10+1
这里没有a是因为你的多项式里面所有项的系数都是a的一次幂,所以计算的时候就去掉了

咕噜噜 发表于 2007-4-29 10:41

回复 #4 tracysmb 的帖子

其他我也没办法了

branch 发表于 2007-4-30 15:26

回复 #7 咕噜噜 的帖子

用horner勉强能达到效果

xjzuo 发表于 2007-4-30 15:56

这个很简单,换个思路就行了.
%%%-------------------------------------------------------%%%
打开Mathematica软件,利用命令 Expand 即可.
%%%-------------------------------------------------------%%%
页: [1]
查看完整版本: 求助 怎样使一个符号多项式按X升幂排列