TBE_Legend 发表于 2009-9-14 23:10:14

就一个简单的代入而已,maple的结果不对?【已经解决,是楼主自己看错了】

本帖最后由 TBE_Legend 于 2009-9-15 12:49 编辑

maple程序:
restart;
k1:=t0*g0^(-1/n1);
gama1:=(tao/k1)^n1;
gama2:=((tao-t0)/k2)^n2+g0;
GAMA1:=-subs({tao=-tao,t0=-t0,g0=-g0},gama1);
GAMA2:=-subs({tao=-tao,t0=-t0,g0=-g0},gama2);
mmtc程序:
k1=t0*g0^(-1/n1)
gama1=(tao/k1)^n1
gama2=((tao-t0)/k2)^n2+g0
GAMA1=gama1/.{tao->-tao,t0->-t0,g0->-g0}
GAMA2=gama2/.{tao->-tao,t0->-t0,g0->-g0}
各自的结果见图片,mmtc的结果应该是正确的。但为什么maple的结果是错误的呢?

maplelab 发表于 2009-9-15 00:11:58

本帖最后由 maplelab 于 2009-9-15 00:13 编辑

1# TBE_Legend

应该用eval做数学代换,而不是用subs做语法代换。
这并不是什么bug。

TBE_Legend 发表于 2009-9-15 01:33:07

1# TBE_Legend

应该用eval做数学代换,而不是用subs做语法代换。
这并不是什么bug。
maplelab 发表于 2009-9-15 00:11 http://forum.simwe.com/images/common/back.gif

发问时,我还是比较负责的,我看过help中的subs何eval的区别,我也试过本题用eval,但结果仍然有问题。

手头机器没maple,明早到办公室时,再试试。

PS:如果替换中只用一个替换 “tao=-tao” 结果就对了。

messenger 发表于 2009-9-15 09:41:12

我看了几遍,也没看出来哪错了 :L

maplelab 发表于 2009-9-15 12:29:39

我用eval昨晚就试过了,没有问题.

TBE_Legend 发表于 2009-9-15 12:37:47

我用eval昨晚就试过了,没有问题.
maplelab 发表于 2009-9-15 12:29 http://forum.simwe.com/images/common/back.gif

哦? 如果愿意的话贴下你的代码吧。

下面是我的:

eval的代码:

restart; k1 := t0*g0^(-1/n1); gama1 := (tao/k1)^n1; gama2 := ((tao-t0)/k2)^n2+g0; GAMA1 := -(eval(gama1, {g0 = -g0, t0 = -t0, tao = -tao})); GAMA2 := -(eval(gama2, {g0 = -g0, t0 = -t0, tao = -tao}))


能给出正确结果的代码:

restart; k1 := t0*g0^(-1/n1); gama1 := (tao/k1)^n1; gama2 := ((tao-t0)/k2)^n2+g0; GAMA1 := -subs({tao = -tao}, gama1); GAMA2 := -subs({tao = -tao}, gama2)

TBE_Legend 发表于 2009-9-15 12:46:45

好的,搞定了,结果都是对的,我看错误了。 不好意思,各位!:L
页: [1]
查看完整版本: 就一个简单的代入而已,maple的结果不对?【已经解决,是楼主自己看错了】