青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 18,  comments - 104,  trackbacks - 0

最近項目里總是要對很龐大的公式求導,很煩人,手工求導容易出錯。
當然MATLAB是個好選擇,不過當它要錢的時候,您可能就不這么認為了。
于是,實現(xiàn)了一個可以編譯期求導(不用擔心運行時負擔)的小型庫,還不完全,僅支持多項式,sin,cos,pow,exp,log等函數(shù)求導。
后期的表達式優(yōu)化做的不是很好。
下面是一些測試代碼,完整的源碼在http://www.boostpro.com/vault/index.php?action=downloadfile&filename=[math]AD.zip
實現(xiàn)部分很復雜,請多多指教。

只有1個函數(shù), d(...)
支持高階,多元求導。

d(exp, var)(value1, value2, ...)
exp內(nèi)可以有多個變量,var表示要對其求導的變量,value表示求導以后用于計算表達式的變量的值。

比如:
d(d(x*x*x, x),x)(3.0)                           表示對x*x*x求二階導數(shù)在x=3.0時候的值。
d(d(x*x*y, x), y)(3.0, 4.0)                   表示d(x*x*y)/(dxdy)在x=3.0,y=4.0的值。
d(d(x*x*x, x) +d(y*x, y), y) (2.0)        則表示 (d(x*x*x)/dx + d(y*x)/dy)/dy == 0。

可以直接用cout把求導后的表達式輸出,不用給變量給值。
cout<<d(x*x, x)     //  結果是:2*x

這里沒有用任何迭代,是直接對表達式求導的。返回值是求導后的表達式,本質是一個仿函數(shù)??梢杂胋oost::function保存起來使用。
例如:

boost::function<double (double)> df = d(pow(x, const_<10>::type()), x); //df 參數(shù)為1個double,返回double

然后就可以在任何地方使用 df 了:

double res = df(3.0)   // res == pow(3, 9)

 1#include "ad.h"
 2#include <iostream>
 3#include <iterator>
 4
 5using namespace std;
 6
 7int main()
 8{
 9    variable<0>::type x;
10    variable<1>::type y;
11
12    double res[14];
13
14    res[0= d(pow(x, const_<10>::type()), x)(2.0);
15
16    res[1= d(x * x * x, x)(2.0);
17    res[2= d(x + x + x, x)(2.0);
18    res[3= d(x - x - x, x)(2.0);
19    res[4= d(x / x, x)(2.0);
20
21    res[5= d(pow(x, var(3.0)), x)(2.0);
22    res[6= d(pow(var(3.0), x), x)(2.0);
23    res[7= d(pow(x, x), x)(2.0);
24
25    res[8= d(log(x), x)(2.0);
26    res[9= d(exp(x), x)(2.0);
27
28    res[10= d(sin(x), x)(2.0);
29    res[11= d(cos(x), x)(2.0);
30
31    res[12= d(d(sin(x) * cos(y), x), y)(2.03.0);
32
33    res[13= (d(log(x) + x, x) * x)(2.0);
34
35    copy(res, res + 14, ostream_iterator<double>(cout, "\n"));
36
37    cout<<d(pow(x, const_<10>::type()), x)<<endl;
38
39    cout<<d(x * x * x, x)<<endl;
40    cout<<d(x + x + x, x)<<endl;
41    cout<<d(x - x - x, x)<<endl;
42    cout<<d(x / x / x, x)<<endl;
43
44    cout<<d(pow(x, var(3.0)), x)<<endl;
45    cout<<d(pow(var(3.0), x), x)<<endl;
46    cout<<d(pow(x, x), x)<<endl;
47
48    cout<<d(log(x), x)<<endl;
49    cout<<d(exp(x), x)<<endl;
50
51    cout<<d(sin(x), x)<<endl;
52    cout<<d(cos(x), x)<<endl;
53
54    cout<<d(d(sin(x) * cos(y), x), y)<<endl;
55
56    cout<<(d(log(x) + x, x) * x)<<endl;
57
58    return 0;
59}

60

輸出結果如下:
 1512
 212
 33
 4-1
 50
 612
 79.88751
 86.77259
 90.5
107.38906
11-0.416147
120.909297
13-0.0587266
143
15pow(x,9)
16(((x+x)*x)+(x*x))
173
18-1
19(-1/(x*x))
20(pow(x,3)*(3*(1/x)))
21(pow(3,x)*log(3))
22(pow(x,x)*(log(x)+1))
23(1/x)
24exp(x)
25cos(x)
26sin(x)
27(cos(x)*sin(y))
28(((1/x)+1)*x)
29

posted on 2009-05-01 23:50 尹東斐 閱讀(2616) 評論(6)  編輯 收藏 引用

FeedBack:
# re: 自動求導模板庫[未登錄]
2009-05-02 13:50 | wang feng
能否返回一個函數(shù)指針?
比如:
typedef double (fp*) ( const vector<double>&, const double);
fp f1;
........
fp f2 = d(f1);  回復  更多評論
  
# re: 自動求導模板庫
2009-05-02 22:22 | yindf
@wang feng

因為是編譯期求導的,所以不可能接受一個函數(shù)指針,編譯器需要表達式的信息在編譯期對表達式求導,結果是一個求導后的表達式,值是在后面帶進去的。

函數(shù)指針需要在運行期才能知道具體函數(shù),一般用迭代法求導。  回復  更多評論
  
# re: 自動求導模板庫
2009-12-06 16:10 | ztf
請問,下載的文件應該放在哪里?該如何引用 啊,我太菜了,給了東西都不會用  回復  更多評論
  
# re: 自動求導模板庫
2009-12-07 11:10 | 尹東斐
下載的文件放在和其他程序文件相同的目錄下,然后#include“ad.h”
要不你可以放在其他文件下,然后#include “xxx/ad.h"

具體用法參見前面的example。  回復  更多評論
  
# re: 自動求導模板庫
2011-09-08 08:49 | 哥哥小情歌
把上面的代碼改為Java形式的!  回復  更多評論
  
# re: 自動求導模板庫
2012-09-18 11:29 | 謝謝
謝謝樓主 順便鄙視下樓上 不懂禮貌  回復  更多評論
  
<2010年2月>
31123456
78910111213
14151617181920
21222324252627
28123456
78910111213

常用鏈接

留言簿(4)

隨筆檔案

文章分類

文章檔案

相冊

好友博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产在线精品二区| 欧美黑人国产人伦爽爽爽| 国产精品免费福利| 亚洲在线观看| 亚洲欧美国产高清| 国色天香一区二区| 蜜桃久久av一区| 欧美激情小视频| 午夜久久资源| 久久―日本道色综合久久| 亚洲久久视频| 亚洲欧美国产精品va在线观看| 国内揄拍国内精品少妇国语| 欧美激情精品久久久久久蜜臀 | 玖玖玖国产精品| 久热国产精品视频| 一区二区三区国产盗摄| 香蕉乱码成人久久天堂爱免费| 好看的av在线不卡观看| 最新国产の精品合集bt伙计| 欧美三级网址| 久久久精品日韩欧美| 欧美成人久久| 欧美三级电影网| 久久久青草婷婷精品综合日韩 | 欧美一区三区三区高中清蜜桃 | 一区二区在线观看av| 亚洲人成小说网站色在线| 国产一区二区三区免费在线观看| 欧美国产视频在线| 国产日韩欧美在线播放| 日韩视频在线播放| 在线看片成人| 亚洲欧美一区二区原创| 亚洲免费电影在线观看| 久久精品国产久精国产思思| 亚洲在线中文字幕| 欧美激情性爽国产精品17p| 久久久综合网站| 国产精品高潮呻吟久久av无限| 欧美成人免费全部| 国产有码一区二区| 亚洲一区二区免费视频| 亚洲视频在线观看| 欧美电影免费观看高清完整版| 欧美一区三区三区高中清蜜桃| 欧美精品v日韩精品v国产精品| 久久久久久亚洲精品杨幂换脸 | 国产欧美日韩精品a在线观看| 亚洲片在线资源| 亚洲国产精彩中文乱码av在线播放| 亚洲调教视频在线观看| 在线视频日韩| 欧美久久久久久| 亚洲日本电影| 亚洲美女av黄| 欧美精品九九| 亚洲激情欧美激情| 亚洲精品影院在线观看| 欧美激情亚洲国产| 亚洲日韩第九十九页| 日韩一级片网址| 欧美国产日韩一区二区三区| 亚洲福利在线视频| 亚洲经典在线| 欧美久久久久久蜜桃| 亚洲看片免费| 亚洲欧美国产高清| 国产精品中文在线| 午夜免费日韩视频| 久热这里只精品99re8久| 亚洲成人在线免费| 欧美成人激情视频| 日韩视频一区二区三区在线播放免费观看 | 国产亚洲精品久久久久动| 性xx色xx综合久久久xx| 久久在线播放| 亚洲精品久久久久| 国产精品第一区| 午夜精品视频| 噜噜噜91成人网| 在线精品国产欧美| 欧美成人午夜激情在线| 亚洲美洲欧洲综合国产一区| 亚洲综合日韩| 激情成人中文字幕| 欧美国产国产综合| 亚洲午夜激情| 欧美 日韩 国产一区二区在线视频| 伊人春色精品| 欧美私人网站| 久久成人精品视频| 亚洲欧洲在线免费| 欧美一区二区三区精品| 亚洲国内欧美| 国产精品毛片va一区二区三区 | 亚洲一区二区视频在线观看| 久久久亚洲影院你懂的| 亚洲精品国产系列| 国产乱码精品一区二区三区忘忧草 | 亚洲精品一区二区三区婷婷月| 午夜激情久久久| 亚洲电影免费观看高清完整版在线观看| 欧美成人综合一区| 久久成人人人人精品欧| 亚洲国产日本| 久久成人在线| 一区二区三区四区国产精品| 黄色亚洲免费| 国产精品欧美在线| 欧美国产免费| 欧美专区在线| 亚洲午夜91| 亚洲国产日韩精品| 老司机午夜精品视频在线观看| 亚洲视频在线观看三级| 亚洲国产欧美一区二区三区久久| 国产精品专区h在线观看| 欧美日韩一区三区| 欧美不卡三区| 麻豆精品一区二区综合av| 午夜久久一区| 亚洲欧美另类久久久精品2019| 亚洲精品视频二区| 亚洲国产激情| 欧美国产综合一区二区| 老司机精品视频一区二区三区| 久久aⅴ国产紧身牛仔裤| 亚洲欧美久久久| 99精品视频网| 日韩午夜免费视频| 亚洲人成网站在线观看播放| 亚洲第一二三四五区| 韩国福利一区| 一区二区三区在线免费观看| 国产亚洲福利社区一区| 国产欧美日韩亚洲一区二区三区| 欧美少妇一区| 欧美视频一区二区三区在线观看 | 久久久中精品2020中文| 久久精品中文字幕一区| 久久久国产精品亚洲一区| 久久久精品国产免费观看同学| 久久精品国产在热久久| 久久精品一区二区三区不卡牛牛 | 9l视频自拍蝌蚪9l视频成人| 亚洲精品美女91| 夜夜嗨av一区二区三区中文字幕| 欧美**人妖| 欧美精品激情在线观看| 欧美日韩亚洲91| 国产精品亚洲人在线观看| 国产精品你懂的在线欣赏| 国产精品久久久久毛片大屁完整版| 国产精品av久久久久久麻豆网| 国产精品美女久久福利网站| 国产精品永久免费| 伊人狠狠色j香婷婷综合| 最新高清无码专区| 亚洲已满18点击进入久久| 羞羞漫画18久久大片| 久久亚洲私人国产精品va媚药| 欧美aa在线视频| 亚洲乱码国产乱码精品精98午夜| 中文在线一区| 久久久久国产精品www| 欧美国产日产韩国视频| 国产精品久久久免费| 国产一区二区三区电影在线观看| 1024成人网色www| 日韩一级免费| 久久久久久伊人| 亚洲人成欧美中文字幕| 午夜精品久久久久久久男人的天堂| 久久久精品国产99久久精品芒果| 欧美国产先锋| 国产日韩欧美自拍| 日韩视频在线免费观看| 欧美一区国产一区| 亚洲日本在线视频观看| 欧美一级二级三级蜜桃| 欧美成人一区二区三区| 国产欧美一区二区精品婷婷| 日韩亚洲国产欧美| 久久在线视频在线| 一区二区三区精品视频在线观看| 久久久精品网| 国产精品欧美久久| 日韩视频永久免费观看| 久久一二三区| 亚洲一二三四久久| 欧美精品免费观看二区| 伊人久久久大香线蕉综合直播| 亚洲欧美日韩网| 亚洲精品美女91| 美日韩免费视频| 国产在线精品一区二区夜色| 亚洲欧美日本伦理| 日韩视频亚洲视频| 欧美精品一区视频|