对Plot函数的理解
mathematica吧
全部回复
仅看楼主
level 1
SUZHIMAN22 楼主
mathematica中,plot的第一个输入对象有什么要求
代码1:
Plot[D[x/Sqrt[100 + x^2], x], {x, 0, 20}]
会报错
把表达式中的求导直接算出来,然后再绘图
代码二:
Plot[x/Sqrt[100 + x^2], {x, 0, 20}]
可以成功运行
请问一下plot的基本原理是什么,为什么会错?
2019年09月24日 03点09分 1
level 1
SUZHIMAN22 楼主
Plot[D[Sqrt[x^2 + 100]], {x, 0, 20}]可以跑通,有人能够解释一下吗
2019年09月24日 03点09分 2
吧务
level 15
因为Plot有HoldAll属性,把D[x/Sqrt[100 + x^2], x]直接放进Plot,它会先把x的具体数值代到这个表达式里再计算表达式,结果自然出错。要突破Plot属性,可以用Evaluate强制计算:
Plot[D[x/Sqrt[100 + x^2], x] // Evaluate, {x, 0, 20}]
或者用文档里没有的选项Evaluated:
Plot[D[x/Sqrt[100 + x^2], x], {x, 0, 20}, Evaluated -> True]
至于
Plot[D[Sqrt[x^2 + 100]], {x, 0, 20}]
这是因为D[expr]返回的是expr,所以在这个例子里HoldAll没有对计算结果造成影响……话说我是今天才知道D原来也有个单变量的语法,或许我得感谢诸位新手的开拓精神,让我见识了这么多文档里没写的语法?
2019年10月05日 05点10分 3
1