栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何对多项式进行变量的复杂更改(在Mathematica中)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何对多项式进行变量的复杂更改(在Mathematica中)

对于有利于使用af而不是wz的可变顺序,可以通过形成替换多项式的Groebner基来完成这种重写。然后使用

PolynomialReduce
相对于相同顺序重写多项式。

这是一个例子。我将从替换规则开始,以便构造一个多项式,以便我们知道预期的结果。

reprules = {a -> w*z, b -> x*y, c -> (w^3 + z^3),  d -> (x + y), e -> (w^3*x + y*z^3), f -> (w^3*y + x*z^3)};

现在重铸为多项式关系。

reppolys = Apply[Subtract, reprules, 1];

在这里,我们创建一个示例。

poly =  a^2*b + 3*b^2*c^3 - 2*d*e*f + 11*b*f^2 - 5 a*d^2*e /. reprules // ExpandOut[11]= -2*w^6*x^2*y - 2*w^6*x*y^2 + 3*w^9*x^2*y^2 + 11*w^6*x*y^3 -   5*w^4*x^3*z - 10*w^4*x^2*y*z - 5*w^4*x*y^2*z + w^2*x*y*z^2 - 2*w^3*x^3*z^3 -   2*w^3*x^2*y*z^3 - 2*w^3*x*y^2*z^3 + 22*w^3*x^2*y^2*z^3 + 9*w^6*x^2*y^2*z^3 -   2*w^3*y^3*z^3 - 5*w*x^2*y*z^4 - 10*w*x*y^2*z^4 - 5*w*y^3*z^4 -  2*x^2*y*z^6 + 11*x^3*y*z^6 - 2*x*y^2*z^6 + 9*w^3*x^2*y^2*z^6 + 3*x^2*y^2*z^9

形成上面提到的Groebner基础。

gb = GroebnerBasis[reppolys, {w, x, y, z, a, b, c, d, e, f}];

用它来减少我们的投入以恢复预期的结果。

PolynomialReduce[poly,   gb, {w, x, y, z, a, b, c, d, e, f}][[2]]Out[12]= a^2*b + 3*b^2*c^3 - 5*a*d^2*e - 2*d*e*f + 11*b*f^2

- -编辑 - -

注释询问有关Groebner基地的描述。对于我自己对Mathematica功能的理解,有一篇关于TMJ的老文章。可以在找到

http://library.wolfram.com/infocenter/Articles/2179/

在与该主题相关的更好的书籍中,有UTM系列文字

Cox,Lottle和O’Shea的理想,综艺和算法。

Adams和Loustaunau(AMS)对Gröbner基地的介绍也相当不错。

-–结束编辑-

丹尼尔·里奇布劳



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/570395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号