hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 1063|回复: 9

多项式转化为初等对称多项式表达式的算法

[复制链接]

585

主题

769

帖子

2007

积分

大司空

Rank: 5Rank: 5

积分
2007
发表于 2023-10-2 16:29:31 | 显示全部楼层 |阅读模式
我觉得我发明了一个新算法,初步搜索没找到别人发表过。哪里能找到“很多结果”

另外我不明白下面的内容
https://reference.wolfram.com/la ... Polynomials.html.zh
当变量的顺序固定的时候,任意多项式f可以被唯一地表示为一个对称多项式p,称为f的对称部分,和一个不包含降幂单项式的余项q的和.
因为我的算法跟SymmetricReduction的结果不一致。而且以我的使用体验,我的结果更好。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

192

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:30:22 | 显示全部楼层
跟变量次序有关的Mathematica SymmetricReduction函数
  1. SymmetricReduction[5a^2+b^2,{a,b},{Subscript[s, 1] ,Subscript[s, 2]}]SymmetricReduction[5a^2+b^2,{b,a},{Subscript[s, 1] ,Subscript[s, 2]}]{SymmetricReduction[5a^2+b^2,{a,b},{Subscript[s, 1] ,Subscript[s, 2]}],SymmetricReduction[5a^2+b^2,{b,a},{Subscript[s, 1] ,Subscript[s, 2]}]}//Mean//Simplify
复制代码
究竟哪个才是正确/合理的?
回复

使用道具 举报

0

主题

179

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-10-2 16:30:58 | 显示全部楼层
变量多了更麻烦
  1. Table[SymmetricReduction[  6 a^3 - 3 a^2 b - 9 a b^2 + 10 b^3 - 5 a^2 c - 5 a b c + 10 a c^2 +    b c^2 + 5 c^3, \[Sigma], {Subscript[s, 1] , Subscript[s, 2],    Subscript[s, 3]}], {\[Sigma], Permutations[{a, b, c}]}]Mean[%] // Simplify
复制代码
回复

使用道具 举报

0

主题

188

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:31:52 | 显示全部楼层
SymmetricReduction希望对称部分满足f[a,b]=f[b,a]
或者f[a,b,c]=f[a,c,b]之类的
如果要对称部分,你要用Sum[f]/(n!)进行处理
大约就是这样的一个东西:
  1. n = 3(*f有3个变量*)f[a_, b_, c_] = a*100 + b*10 + c;Simplify[Plus @@ f @@@ Permutations[{a, b, c}]/n!]
复制代码
BTW,直接这样调用多好
  1. In[24]:= SymmetricReduction[5 a^2 + b^2, {a, b}]Out[24]= {-10 a b + 5 (a + b)^2, -4 b^2}
复制代码
回复

使用道具 举报

0

主题

170

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:32:45 | 显示全部楼层
Sum[f]/(n!)就是Mean/期望值,Permutations 已经包含n!了,我想知道的是期望值或者不同求算次序,哪个更“合理”,文献呐文献呐前人工作呐。

直接调用中间分析好看,下一步处理还是要换元的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

203

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:33:29 | 显示全部楼层
还有更多的转化算法
回复

使用道具 举报

0

主题

172

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:34:16 | 显示全部楼层
我也不知道啊……
你不说“合理”的标准,我自然没办法告诉你什么是“合理”的了
毕竟,很多时候这种问题应该看使用场合的
回复

使用道具 举报

0

主题

185

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:35:09 | 显示全部楼层
“合理”要下引号,就是我不知道有什么前人订立标准。
本身是对称多项式的转化有唯一结果。对于非对称多项式, 依我看,要相关变量的全排列置换后求平均才是合理的,就是Sum[f]/(n!)。然而那是组合爆炸,有没有一种算法能直接得到这平均值结果呢?
回复

使用道具 举报

0

主题

216

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:35:17 | 显示全部楼层
为什么要组合数?
从最高次一次次往下迭代不就好了?
比如a^5+a^5b^3+b^4
首先选一个元素,比如a,将a^x替换成mean(...)^x=sum(...)^x/n!
然后选下一个元素,比如b,这时候,将b^x替换成mean(...)^x=sum(...)^x/n!,而如果这里存在b^x mean(...)^y,替换成mean(ab,...)^min(x,y)*sum(...)^|x-y|/n!
如果还有下一个,继续按照类似的方式进行替换
时间复杂度O(n^2*m)(n个变量,每一个变量出现m次)
回复

使用道具 举报

0

主题

202

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:36:14 | 显示全部楼层
明白!我昨天说的是最笨的办法!
你能帮忙找文献,有什么人定义过哪个结果合理么? 觉得有个方向再想算法能避免白费心思。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-11-22 15:22 , Processed in 0.080998 second(s), 23 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

快速回复 返回顶部 返回列表