找回密码
 欢迎注册
查看: 33210|回复: 14

[原创] 被Mathematica的bug气失眠了,求确认

[复制链接]
发表于 2012-7-3 04:44:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
版本 7.0 PolynomialQ函数 In[1]:=PolynomialQ[x1,x2] Out[1]:=True In[2]:=PolynomialQ[Log[x],x2] Out[2]:=True In[3]:=PolynomialQ[Log[x],xn] Out[3]:=True
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-3 08:22:36 | 显示全部楼层
第二个参数似乎只能是x,而不可以是x1
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-3 09:27:37 | 显示全部楼层
1# zeroieme 失眠不至于吧,呵呵. ============ 第一个第二个都是可以理解的.因为都是关于变量的常量表达式,所以是True. 第三个我也吃惊了,查了文档,发现:
The vari need not be symbols; PolynomialQ[f[a]+f[a]^2,f[a]] -> True.
就明白了: PolynomialQ 的第二个参数是既可以是变量,也可以是表达式. 如果前面的表达式是后面的表达式的多项式的形式,PolynomialQ 就返回True 另外需要注意的是,表达式都是Unevaluated的符号形式的.PolynomialQ 执行的是pattern matching 算法. 所以楼主的第三个也是常量多项式. ============ 所以,个人理解,应该不是bug
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-3 09:46:43 | 显示全部楼层
才发现,楼主帖子的时间戳是 凌晨4点44, 这个,..... 熬夜不好啊, 熬夜容易长胡子,长痘痘的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-7-3 11:33:33 | 显示全部楼层
才发现,楼主帖子的时间戳是 凌晨4点44, 这个,..... 熬夜不好啊, 熬夜容易长胡子,长痘痘的 wayne 发表于 2012-7-3 09:46
谢谢关心,不是熬夜,是临睡发现的问题不吐不快。调了2天的程序被玩死。 PolynomialQ[f[a]+f[a]^2,f[a]] -> True. 没问题 但PolynomialQ[f[a]+f[a]^2,AnyOne[a]] -> True. 问题就大了 PolynomialQ[Log[x], x] False PolynomialQ[Log[x], Sqrt[x]] True PolynomialQ[Log[x], Exp[x]] True PolynomialQ[Sin[x], Log[x]] True ………… 而x下标本来是下标不同数字代表不同变量,却成为x的函数。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-3 11:57:08 | 显示全部楼层
5# zeroieme PolynomialQ[f[a]+f[a]^2,AnyOne[a]] -> True. 没关系. PolynomialQ[f[f[a]]+f[a]^2,f[a]] -> True. 就是有问题了.
而x下标本来是下标不同数字代表不同变量,却成为x的函数。
这有何不可了? 这就相当于多元函数 f(x,y) =x*y+x^2+y^2 关于x的常数项是 y^2 一样
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-3 12:07:53 | 显示全部楼层
查了一下wikipedia的多项式环的词条. 多项式形如: 这里的 X只是一个形式符号. 可以对比一下这些结果:
  1. a =.; PolynomialQ[x^2 + a x y^2 - b Sin[c], {x, y}]
复制代码
  1. a = Sin[x]; PolynomialQ[x^2 + a x y^2 - b Sin[c], {x, y}]
复制代码
  1. a =.; y =.; x = Sin[a]; PolynomialQ[x^2 + f[a] x y^2 - b Sin[c], {x, y}]
复制代码
  1. a =.; y =.; x = Sin[a]; PolynomialQ[x^2 + f[a] f[x] y^2 - b Sin[c], {x, y}]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-7-3 13:06:12 | 显示全部楼层
5# zeroieme PolynomialQ[f[a]+f[a]^2,AnyOne[a]] -> True. 没关系. PolynomialQ[f[f[a]]+f[a]^2,f[a]] -> True. 就是有问题了. 这有何不可了? 这就相当于多元函数 f(x,y) =x*y+x^2+y^2 关于x的常数项是 ... wayne 发表于 2012-7-3 11:57
跟我给的例子不同吧 这个是正常的 PolynomialQ[Log[x], x] False 一旦自变量x换成随便一个x的非直接计算函数,那么结果必然True PolynomialQ[Log[x], Sign[x]]-> True PolynomialQ[Log[x], Sin[x]]-> True ClearAll["Global`*"]; PolynomialQ[f[x], g[x]]-> True
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-3 16:22:49 | 显示全部楼层
貌似不是bug,赫赫,PolynomialQ[Sin[Sin[x]], Sin[x]]的结果就不是True的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-7-3 19:18:13 | 显示全部楼层
貌似不是bug,赫赫,PolynomialQ[Sin[Sin[x]], Sin[x]]的结果就不是True的。 zgg___ 发表于 2012-7-3 16:22
要是永远错的我还可以反着用 新案例 {PolynomialQ[Zeta1, Alpha], PolynomialQ[Zeta1, Mu], PolynomialQ[Zeta1, Sigma], PolynomialQ[Zeta1, Psi], PolynomialQ[Zeta1, Nu]} {True, True, True, True, True}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-24 07:13 , Processed in 0.033024 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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