找回密码
 注册
Simdroid-非首页
查看: 130|回复: 9

[基础概念] 这个是不是bug啊?

[复制链接]
发表于 2012-9-19 21:57:52 | 显示全部楼层 |阅读模式 来自 德国
本帖最后由 desert007 于 2012-9-19 22:00 编辑



请各位帮我看看,这个是我概念的问题,还是Mathematica 8的bug啊。帮忙解答下!

我要算的对分子分母都是多项式的分式求导,分子分母分别定义然后再求导的结果,跟直接写成分式求导的结果差别很大。  我估计是哪的概念搞错了,请知道的人指教下。 谢谢!

本帖子中包含更多资源

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

×
发表于 2012-9-20 12:10:56 | 显示全部楼层 来自 北京
Simdroid开发平台
你给的代码不全, 不知道你的 num 和 den 是这么定义的
回复 不支持

使用道具 举报

 楼主| 发表于 2012-9-20 15:45:45 | 显示全部楼层 来自 德国
本帖最后由 desert007 于 2012-9-20 15:47 编辑
guocong89 发表于 2012-9-20 12:10
你给的代码不全, 不知道你的 num 和 den 是这么定义的

定义的方式是
  1. num[t_]:=f(g(t))
复制代码
,不过g(t)的定义方式是g= t的表达式。这样定义是不是存在问题啊?
num和den具体的表达式的话,代码里已经有输出结果了。
回复 不支持

使用道具 举报

发表于 2012-9-20 19:33:28 | 显示全部楼层 来自 北京
desert007 发表于 2012-9-20 15:45
定义的方式是,不过g(t)的定义方式是g= t的表达式。这样定义是不是存在问题啊?
num和den具体的表达式的话 ...
  1. f[t_] := t^2
  2. g[t_] := (1 + t)^2
  3. D[f[t]/g[t], t] /. t -> 2
  4. D[t^2/(1 + t)^2, t] /. t -> 2
复制代码
使用这种方法不会出现什么问题, Trace一下可以发现 f[t]/g[t] 的计算是优先于D的, 因此应该是你的函数定义有问题,或者哪里有临时变量干扰了计算, 你使用 Trace 跟踪一下计算步骤看看
回复 不支持

使用道具 举报

 楼主| 发表于 2012-9-20 21:22:10 | 显示全部楼层 来自 德国
本帖最后由 desert007 于 2012-9-20 21:22 编辑
guocong89 发表于 2012-9-20 19:33
使用这种方法不会出现什么问题, Trace一下可以发现 f[t]/g[t] 的计算是优先于D的, 因此应该是你的函数定 ...

谢谢,可能是临时变量的原因。
回复 不支持

使用道具 举报

 楼主| 发表于 2012-9-20 22:30:58 | 显示全部楼层 来自 德国
本帖最后由 desert007 于 2012-9-20 23:06 编辑
guocong89 发表于 2012-9-20 19:33
使用这种方法不会出现什么问题, Trace一下可以发现 f[t]/g[t] 的计算是优先于D的, 因此应该是你的函数定 ...

我绝望了, 我把完整的传上来,能帮我看看,我哪的概念出错了好吗? 谢谢了。

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

发表于 2012-9-21 18:26:14 | 显示全部楼层 来自 北京
desert007 发表于 2012-9-20 22:30
我绝望了, 我把完整的传上来,能帮我看看,我哪的概念出错了好吗? 谢谢了。
...

  我计算了一下,也许只是计算精度的问题
回复 不支持

使用道具 举报

 楼主| 发表于 2012-9-21 19:39:16 | 显示全部楼层 来自 德国
guocong89 发表于 2012-9-21 18:26
我计算了一下,也许只是计算精度的问题

嗯,可能是这样的。 谢谢你了! 我其实在用fortran计算这个东西,得到的结果更不理想点。
这个计算精度真不好搞啊,一点思路都没有,你有什么建议没?:handshake
回复 不支持

使用道具 举报

发表于 2012-9-21 22:01:24 | 显示全部楼层 来自 北京
desert007 发表于 2012-9-21 19:39
嗯,可能是这样的。 谢谢你了! 我其实在用fortran计算这个东西,得到的结果更不理想点。
这个计算精度真 ...

你缺乏有效数字的概念.比如你使用 1.5 这种数,可能不知道它在Mathematica中到底有多少位有效数字. 参考一下帮助里关于Precision的帮助.

Mathematica本来就不是为这种不精确的工程计算设计的.
回复 不支持

使用道具 举报

 楼主| 发表于 2012-9-24 18:51:42 | 显示全部楼层 来自 德国
guocong89 发表于 2012-9-21 22:01
你缺乏有效数字的概念.比如你使用 1.5 这种数,可能不知道它在Mathematica中到底有多少位有效数字. 参考一 ...

好的,谢谢!
回复 不支持

使用道具 举报

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

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-23 21:07 , Processed in 0.037017 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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