我有一些功能,功能衍生
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