hrefspace

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

mathematica求导绘制隐函数疑问!是不是bug呢?

[复制链接]

523

主题

523

帖子

1599

积分

大司空

Rank: 5Rank: 5

积分
1599
发表于 2023-10-4 13:31:02 | 显示全部楼层 |阅读模式
  1. Clear["Global`*"];(*mathematica11.2,win7(64bit)Clear all variables*)ff=2*a*Exp[2*x]-Log[x]+Log[a]gg=D[ff,{x}](*下面的是直接给出求导结果,为什么能画出两条曲线*)h1=ContourPlot[{ff==0,gg==0},{x,0.0001,6},{a,0.0001,1}](*下面有求导语句,为什么就画不出两条曲线?*)h2=ContourPlot[{ff==0,D[ff,{x}]==0},{x,0.0001,6},{a,0.0001,1}]
复制代码

Clear["Global`*"];(*mathematica11.2,win7(64bit)Clear all variables*)
ff=2*a*Exp[2*x]-Log[x]+Log[a]
gg=D[ff,{x}]
(*下面的是直接给出求导结果,为什么能画出两条曲线*)
h1=ContourPlot[{ff==0,gg==0},{x,0.0001,6},{a,0.0001,1}]
(*下面有求导语句,为什么就画不出两条曲线?*)
h2=ContourPlot[{ff==0,D[ff,{x}]==0},{x,0.0001,6},{a,0.0001,1}]

运行结果为了节省论坛空间,就不上传了,注意带颜色的文字,为什么求导后带入能出结果,而放在里面求导就不行了呢?
回复

使用道具 举报

0

主题

194

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-4 13:32:00 | 显示全部楼层
应该不是bug。逻辑上说挺合理的。

虽然对函数求导得到的是一个函数,但系统里定义的求导运算和Plot一样,不是数学函数,没记错的话,应该叫命令函数。

具体到当前的例子,有两个可能的解释。一个是它的返回值不是通常的函数。而ContourPlot的参数类型必须是数学函数。但直接看求导函数的返回结果,似乎又不是这样。

还有一个可能就是內建命令函数的运行顺序。

注意到在图绘制完成前的报错信息提示说:几个具体的浮点小数不是变量,而要求是变量。有这个要求的应该就是指求导运算那一步吧,而输入的显然是变量函数,怎么会变成具体的数字,导致报错?

最先被执行的是绘图指令。个人猜测是,执行过程中,先把输入的函数插值描点离散化。所以,里面的变量都变成数值散列了。然后这个时候又开始执行内部的求导。但求导的对象变成了数列,所以就报错了。最后系统跳过了这一部分,把图像绘制完成。
回复

使用道具 举报

0

主题

200

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-4 13:32:15 | 显示全部楼层
@chyanog @wayne 你们来看看这个问题应该如何解释?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 08:46 , Processed in 0.062082 second(s), 21 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

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