freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

飛行器實時仿真算法研究本科畢業(yè)論文-wenkub

2022-09-07 20:04:29 本頁面
 

【正文】 編譯性語言中,常用的科學計算仿真庫也有很多, GSL 最為通用,與 blitz++和 MTL 并稱為當前三 大支持科學計算的數(shù)值庫。 、掌握 GSL、 VC++軟件的仿真程序設(shè)計,完成基 于 RTX 實時環(huán)境算法庫開發(fā)。多維插值 本科畢業(yè)設(shè)計論文 IV ABSTRACT This paper is mainly on realtime simulate algorithm of flight vehicle, including vector,matrix,random number,interpolation. Other parts of numeric algorithm are also mentioned in the source code. Each of them is discussed in the third chapter in detail, and by using C++ language, the specific implementation and the user interface is given. The purpose of this is to make this algorithm library reusable, high speed, high efficiency, and simple interface. Some test examples are given in the the end of the paper. KEY WORDS GSL,。 在第三章中對每一部分都做了詳細的論述,并使用 C++語言給出具體的實現(xiàn)和接口,盡量使得算法庫具有較高的代碼可重復使用性,較快的執(zhí)行速度,較高的效率和簡單的接口。 2. 鞏固所學專業(yè)基礎(chǔ)知識和專業(yè)知識,加深對飛 行力學、飛行仿真計算等專業(yè)知識的理解,完成基于 C++的飛行仿真算法開發(fā)。 3.學習、掌握 GSL、 VC++軟件的仿真程序設(shè)計,完成基于 RTX 實時環(huán)境算法庫開發(fā)。 論文結(jié)尾給出了該算法庫在 RTX 系統(tǒng)下的測試示例。flight vehicle simulation alogrithm,。 國內(nèi)外發(fā)展情況 就目前來看,最常用的科學計算仿真工具應該是 matlab 莫屬了, matlab 有很多優(yōu)點,界面友好,易于操作,強大的工具箱,對矩陣支持良好。 GSL 全稱 GNU Scientific Library,是 GNU 項目的組成部分,遵循 GPL 協(xié)議。缺點是使用非常不方便,用戶要負責大量的內(nèi)存分配和釋放工作,時刻注意內(nèi)存是否泄漏,花費大量精力去維護代碼,而不是專注于算法本身。 本科畢業(yè)設(shè)計論文 3 第 2 章 需求分析 向量 需要設(shè)計一個類,能對數(shù)學上的向量進行描述和運算。 2. 支持通過操作符 []和 ()對元素進行隨機存取。 6. 提供向量視圖功能 (可對向量的局部作為一個獨立向量進行操作 )。 并且 矩陣 中的元素在內(nèi)存中所占的空間的大小是相同的。 3. 支持基本的向量數(shù)學運算,如 +*/,范數(shù),支持叉乘等等。 7. 支持 C++輸入 和輸出,即需重載 和 操作符。 3. 可以返回區(qū)間 [0,1)中浮點數(shù)。 7. 可以動態(tài)改變隨機數(shù)算法。 2. 支持多線程。 6.接口簡單明了,使用方便。 example 目錄中為工程代碼使用的示例。 所有文件都要包含的預編譯頭文件是 ,預編譯宏定義大致如下: ifdef WIN32 ifdef NSL_DLL ifdef DLL_EXPORT define NSL_VAR extern __declspec(dllexport) define NSL_EXPORT __declspec(dllexport) else define NSL_VAR extern __declspec(dllimport) define NSL_EXPORT __declspec(dllimport) .................... 本科畢業(yè)設(shè)計論文 6 /* Turn range checking on by default, unless the user defines NSL_RANGE_CHECK_OFF, or defines NSL_RANGE_CHECK to 0 explicitly */ ifdef NSL_RANGE_CHECK_OFF ifndef NSL_RANGE_CHECK define NSL_RANGE_CHECK 0 else ................. define NSL_SUPPORT_MULTITHREAD 上述宏定義非常方便,如果要重新編譯此庫文件,若在 windows 環(huán)境下,則需要同時定義 WIN32, NSL_DLL,和 DLL_EXPORT 即可。如果沒有定義的話,那么那些計算過程將使用全局靜態(tài)變量,以 提高計算速度。 valarray 模板類不支持泛型運算 (接口上 ),內(nèi)存不可動態(tài)改變,元素的插入和刪除也無從談起了,但是它對元素的數(shù) 學運算支持非常好,對 +, +=,*=, sin, cos 等等操作符都進行了重載,使用非常方便。后來我試著用 private 繼承方式,然后在視圖類中重寫需要的函數(shù),重寫非常簡單,只是對基類函數(shù)的調(diào)用而已。考慮如下情況: Vectordouble vec(10)。 VectorViewdouble view(vec)。 此時 VectorView 類內(nèi)部的實現(xiàn)將非常復雜,會擁有兩個非常相似的構(gòu)造函數(shù),而且編譯器會給出警告。 GneVector 一般矩 陣類, AlmostVector 類, ConstVectorView 常視圖類,VectorView 類和 Vector 向量類,它們之間的繼承關(guān)系如下: 圖 31 繼承關(guān)系圖 根據(jù)類的抽象設(shè)計原則,最底層的類應該具有最通用的方法和數(shù)據(jù),若需要使用未知的方法,可將此方法聲明為虛函數(shù),留給派生類取定義。 getSlice() const = 0。} size_t start() const { return getSlice().start() 。 .................... }。 slice viewSlice_。 constVal() const 。 vec, const sliceamp。} }。 //override this function in VectorView and Vector virtual valarrayTamp。 … }。 本科畢業(yè)設(shè)計論文 11 slice slice_。 constVal() const。 val, const sliceamp。 vec) 。 … }。 getSlice() const 。 vec) 。 補充說明 上面接口中使用到的 slice 類型是 C++標準庫中 valarray 類的組成部分,大致結(jié)構(gòu)如下 : class slice { public: ................... protected: size_t _Start, _Len, _Stride。由于輸出只需要對對象具有只讀權(quán)限即可,而輸入則要求對對象的讀寫權(quán)限。 輸入輸出函數(shù)的聲明如下: friend std::ostreamamp。 friend std::istreamamp。 最后介紹本類初始化時的一個特點。當然也可以用下面這種方式實現(xiàn): double var[5] = { , , , 1, }。 // Error – invalid 不幸的是這不符合 C++的語法規(guī)則,變通一下,使用如下方式: Vectordouble v((double[]) { , , , 1, }, 5)。 v , , , 1, 。通常來說,初始化列表必須是在編譯時可確定的,但用上面的方式,初始化列表里的 元素可以使變量,甚至是一個函數(shù)的返回值,只要能轉(zhuǎn)換為 Vector模板對應的實例化類型就可以了。 矩陣 GSL 提供的矩陣類型使用起來非常麻煩,由于是對 c 語言中的數(shù)組進行包裝,所以用戶時刻都要注意內(nèi)存的變化,花費大量精力減少內(nèi)存泄露 ,并且每種數(shù)據(jù)類型都有不同的函數(shù)版本,且不支持用戶自定義類型,所以我決定使用 GSL的算法,重寫構(gòu)架矩陣類,并且給出 C++的接口,支持多種類型,包括未知的用戶自定義類型,盡量減少用戶對程序本身的維護工作量,使用戶能專注于算法本 本科畢業(yè)設(shè)計論文 14 身。 class mslice { public: ………… . private: size_t startRow_。 }。 4. cols_,列數(shù)。 隨機數(shù) 一個好的隨機數(shù)生成算法必須能夠在理論上和統(tǒng)計上同時滿足所需特性。我要做的就是使用 GSL 提供的算法,給出隨機數(shù)生成器的 C++統(tǒng)一接口,并且在運行時可以改變隨機數(shù)算法和種子。但是用戶使用的時候,不必關(guān)心狀態(tài)到底是怎么變的,這是算法內(nèi)部要考慮的事。 virtual ~CRandom()。 /*打印所有的算法及其對應的枚舉量 */ void printAllNames()。 /*省略代碼 */ }。 /*type_stack 為我們構(gòu)造的堆棧 , 由于是此類對象所共享的變量, 所以設(shè)為靜態(tài) */ static const TypeArray type_stack。 (gsl_rng_cmrg)。 現(xiàn)在一切都非常明了,構(gòu)造函數(shù)的具體實現(xiàn)也是非常簡單 CRandom::CRandom(RNG_ORDER type /*= RNG_TAUS*/) { if (type () || type RNG_ORDER(0)) { gsl_error(type of generator not exists, __FILE__, __LINE__, GSL_ENOMEM)。 // use default seed printf (generator is %s\n, ())。 // [0,1)區(qū)間的浮點數(shù) int int_rand = ()。數(shù)學上被證明為最好的算法是那些基于 ranlux 的算法。雖然其函數(shù)關(guān)系 )(xfy? 在某個區(qū)間 ],[ ba 上式客觀存在的,但是卻不知道具體的解析表達式,只能通過觀察、測量或?qū)嶒灥玫胶瘮?shù)在區(qū)間 ],[ ba 上一些離散的函數(shù)值,導數(shù)值等,因此,希望對這樣的函數(shù)用一個比較簡單的函數(shù)表達式來近似地給出整體上的描述。插值基類并不是給用戶使用的,而是給派生類使用。之后就可以從這個基類縱派生出想要的派生類,并在派生類中完成具體的插值算 本科畢業(yè)設(shè)計論文 22 法,從而得到不同的插值類,并且共享基類的接口。注意我們對輸入的插值表是有要求的,必須是有序遞增或遞減的,而且在同一維中不能有相同值。 另一種簡單的搜索算法是二分法,利用有序表的有序特征進行對半搜索。但是注意這是建立在有序表的基礎(chǔ)上。所以在如果數(shù)據(jù)量很多,每次都是從頭到尾的二分法搜索的話,會執(zhí)行很多重復搜索步驟,效率也不會讓人滿意。還需要對搜索區(qū)間進行分段。比較好的情況是在 6 的附近,比如 8的話,只需要 2 步即可覆蓋,再使用二分法,一步就可確定位置。 // 總區(qū)間分段 }ACCEL。 yy。 x, const size_tamp。 i)。 idpVar, const vectorsize_tamp。插值公式如下 101 0010 1 yxx xxyxx xxy F it ?????? (31) 比如對函數(shù)在區(qū)間 ]1,1[? 中選取等距的 6 個點進行采樣,然后使用采樣點和采樣值進行線性插值。 拉格朗日插值 拉格朗日插值屬于多項式插值,其一維 n 點插值公式如下: ? ???? ??? nknkiikik i yxxxxyF it0 0 (32) n 維 n 點插值公式如下: ????????? ?????????? ????? ??? ???個個nnkii ikinnkii ikinkiikikinnknknknnnn nnnnn xxxxxxxxyxxxxy F i t????????????????????????????????????? ??????????????? 002010002222 2221111 1112211 (33) 上述 n 維插值公式翻譯成代碼的難點是連乘和連加的個數(shù)不確定,是個變量,用for 循環(huán)是很難完成的。 interp_data)。 jlo)。
點擊復制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1