首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mathematica 9-函数定义问题

Mathematica 9-函数定义问题
EN

Stack Overflow用户
提问于 2014-02-13 19:19:59
回答 1查看 83关注 0票数 0

请原谅这个初学者的问题。我在任何Mathematica教程中都找不到合适的答案。

我搞不懂为什么一个函数的定义或一个简单替换的定义会产生不同的结果。考虑这个例子(Mathematica 9代码):

代码语言:javascript
复制
In[397]:= ClearAll["Global`*"]

In[398]:= Test := 3 c^2 + d^4

In[399]:= v[f_] := D[f, c]

In[400]:= v[Test]

Out[400]= 6 c

这个作用于变量的简单导数函数"v“的第一个定义很好。定义替换测试= ...替换该变量会产生预期的结果(它得到关于c的3c^2+d^4并回答6c)。

但是,如果我定义一个函数,而不是简单的替换,这将不起作用:

代码语言:javascript
复制
In[401]:= TestFunction[a_, b_] := 3 a^2 + b^4

In[403]:= vFunction[f_[a_, b_]] := D[f[a, b], a]

In[405]:= vFunction[TestFunction[a, b]]

Out[405]= \!\(
\*SubscriptBox[\(\[PartialD]\), \(3\ 
\*SuperscriptBox[\(a\), \(2\)]\)]\((3\ 
\*SuperscriptBox[\(a\), \(2\)] + 
\*SuperscriptBox[\(b\), \(4\)])\)\)

为什么会这样呢?我在这里冒着看起来像个笨蛋的风险,但请开导我!

为了您的方便,我上载了我的工作簿here的副本

非常感谢,

迈克尔

EN

回答 1

Stack Overflow用户

发布于 2014-02-14 00:50:04

改为这样做

代码语言:javascript
复制
vFunction[f_,a_,b_]:=D[f[a,b],a];

当您需要派生工具时,只需使用vFunction[TestFunction,a,b]即可获得。

当您写下f[x]时,它指的是f的估计值和参数值x。因此,从技术上讲,f[x]不再是一个函数。您想要作为vFunction[]的参数的是函数TestFunction,而不是计算值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21752710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档