我有一些功能,功能衍生
int somefunction(//parameters here, let's say int x) {
return something Let's say x*x+2*x+3 or does not matter
}
如何找到这个函数的导数?如果我有
int f(int x) {
return sin(x);
}
衍生后它必须返回cos(x)。
我有一些功能,功能衍生
int somefunction(//parameters here, let's say int x) {
return something Let's say x*x+2*x+3 or does not matter
}
如何找到这个函数的导数?如果我有
int f(int x) {
return sin(x);
}
衍生后它必须返回cos(x)。
您可以通过查看小间隔内的梯度来近似导数。例如
const double DELTA=0.0001;
double dfbydx(int x) {
return (f(x+DELTA) - f(x))/DELTA;
}
根据你正在评估的功能,你可以从(f(x+DELTA) - f(x-DELTA))/2*DELTA
而不是取得更好的成绩。
(我假设你的问题“诠释”是一个错字如果他们真的是使用整数你可能有精度问题,这种方式。)
aaa谢谢安迪,那么我应该使用浮点数或双精度是吗?它会更正确 – 2010-06-03 13:18:42
@davit是的,当你开始寻找像这样的小范围,你将需要使用浮点数或双精度。您的原始功能对于某些用途而言并非不正确,但它们不够精确,无法从中获取衍生产品。 – 2010-06-03 13:24:48
感谢例如,如果我们要编写使用牛顿方法的程序或类似这样的东西,我想学习如何在编程中实现派生程序,因为有时候需要找到最大的函数打开一些间隔或像这样的东西 – 2010-06-03 13:29:07
你可以得到大多采用多numerical techniques如Numerical ordinary Differential Equations
看的一个任意函数的数值积分:Another question
但你可以得到积分结果与一个库里,比如函数定义Maple,Mathematica,Sage或SymPy
我相信他在谈论'黑匣子'功能f(即你不知道它是什么)。如果你能评估f,你能否在某个点评估f的导数,那我的问题就是这个问题。 – 2010-06-03 17:18:49
相关:http://stackoverflow.com/questions/422594/衍生产品 - 在cc – 2010-06-03 13:12:45