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

正文內(nèi)容

飛行器實(shí)時(shí)仿真算法研究本科畢業(yè)論文(留存版)

  

【正文】 ............................................ 30 第 5 章 結(jié)論 ................................................................................................................ 31 致 謝 .......................................................................................................................... 32 參考文獻(xiàn) ...................................................................................................................... 33 畢業(yè)設(shè)計(jì)小結(jié) .............................................................................................................. 34 附 錄 .......................................................................................................................... 35 本科畢業(yè)設(shè)計(jì)論文 III 摘 要 本文研究的主要內(nèi)容是飛行器實(shí)時(shí)仿真算法,包括向量、矩陣、隨機(jī)數(shù)、插值、微分方程的初值問題。 ,加深對(duì)飛行力學(xué)、飛行仿真計(jì)算等專業(yè)知識(shí)的理解,完成基于 C++的飛行仿真算法開發(fā)。滿足如下要求。 5. 支持多線程。 4.設(shè)計(jì)一種基于 xml 格式的插值表。 向量結(jié)構(gòu) 體 既然已經(jīng)選擇丟棄 GSL 提供的向量結(jié)構(gòu)體,那么就要重新定義或選擇新的向量類型。 VectorViewdouble c_view(c_vec)。} size_t index(size_t i) const { return getSlice().start() + i*getSlice().stride() 。 本科畢業(yè)設(shè)計(jì)論文 10 ................. T operator [](size_t i) const { return cref(i) 。 getSlice() const 。 slice viewSlice_。而輸入則需放到 AlmostVector 類中,作為 Vector 和 VectorView 類的共有函數(shù)。 但這種方法的不便之處是使用了局部變量。但是如何把它當(dāng)做二維數(shù)據(jù) 來讀取是個(gè)問題。 對(duì)隨機(jī)數(shù)算法的測(cè)試通常是使用數(shù)值仿真來做統(tǒng)計(jì)測(cè)試,用隨機(jī)數(shù)來估計(jì)一些能用概率論求解出精確值的量,然后和精確值做比較即可測(cè)量該算法的隨機(jī)性。 unsigned long int Min()。 } 使用示例 include include using namespace gslcpp。插值法就是尋求近似函數(shù)的方法之一 [4]。二分法的時(shí)間復(fù)雜度是 O( N2log )。 //是否使用加速器 size_t cache。 size)。 private: virtual double RawInterp(const vectordoubleamp。 //自變量 , independent variable const vector vectordouble amp。 RTX 提供的關(guān)機(jī)處理函數(shù)使得應(yīng)用程序可以在 windows 出現(xiàn)錯(cuò)誤時(shí)繼續(xù)運(yùn)行,某些函數(shù)可以在沒有操作系統(tǒng)的情況下依然正常執(zhí)行。 線性 插值 拉格朗日 三次樣條 1 階 2 階 3 階 4 階 1 維 7874150 5774730 4122784 2769474 1877545 1465980 2 維 3663710 2021627 836020 412075 222817 269202 3 維 1969490 823054 209880 77002 47331 59627 4 維 1097230 357223 59643 24421 14818 18854 表 41 插值算法性能對(duì)比 根據(jù)以上測(cè)試數(shù)據(jù)可知,對(duì)網(wǎng)格數(shù)據(jù)使用線性插值速度非???,可以達(dá)到每秒鐘百萬(wàn)次。 本科畢業(yè)設(shè)計(jì)論文 33 參考文獻(xiàn) [1] William H. Press. NUMERICAL RECIPES, Third Edition, Cambridge University Press[J]. 2020 [2] Ardence Company, RTX SDK Release Notes, US. 2020. [3] GSL Reference Manual Edition . 2020 [4]飛行器系統(tǒng)仿真 [M] . 2020 [5] Kenh C. Johnson .Multidimensional Interpolation Methods . 2020 。 測(cè)試算例 2 此算例對(duì)插值類進(jìn)行測(cè)試,對(duì)拉格朗日和三次樣條測(cè)試分別進(jìn)行統(tǒng)計(jì),插值數(shù)據(jù)為網(wǎng)格數(shù) 據(jù)。 3. 并且 RTX 提供了附加的向?qū)Ш驼{(diào)試工具,可以無(wú)縫的嵌入到微軟的標(biāo)準(zhǔn)開發(fā)工具中。 關(guān)于外插的選擇,使用如下枚舉量: /*外插使用線性插值 */ enum ExtrapControl { /**不允許外插 */ NEITHER, /** 當(dāng)輸入數(shù)據(jù) x x_min 時(shí)允許外插 */ MINEX, /** 當(dāng)輸入數(shù)據(jù) x x_max 時(shí)允許外插 */ MAXEX, /** 當(dāng)輸入數(shù)據(jù) x x_min 或 x x_max 時(shí)允許外插 */ 本科畢業(yè)設(shè)計(jì)論文 28 BOTH }。 interp_data)。 i)。比較好的情況是在 6 的附近,比如 8的話,只需要 2 步即可覆蓋,再使用二分法,一步就可確定位置。 另一種簡(jiǎn)單的搜索算法是二分法,利用有序表的有序特征進(jìn)行對(duì)半搜索。雖然其函數(shù)關(guān)系 )(xfy? 在某個(gè)區(qū)間 ],[ ba 上式客觀存在的,但是卻不知道具體的解析表達(dá)式,只能通過觀察、測(cè)量或?qū)嶒?yàn)得到函數(shù)在區(qū)間 ],[ ba 上一些離散的函數(shù)值,導(dǎo)數(shù)值等,因此,希望對(duì)這樣的函數(shù)用一個(gè)比較簡(jiǎn)單的函數(shù)表達(dá)式來近似地給出整體上的描述。 現(xiàn)在一切都非常明了,構(gòu)造函數(shù)的具體實(shí)現(xiàn)也是非常簡(jiǎ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)。 /*打印所有的算法及其對(duì)應(yīng)的枚舉量 */ void printAllNames()。 隨機(jī)數(shù) 一個(gè)好的隨機(jī)數(shù)生成算法必須能夠在理論上和統(tǒng)計(jì)上同時(shí)滿足所需特性。 矩陣 GSL 提供的矩陣類型使用起來非常麻煩,由于是對(duì) c 語(yǔ)言中的數(shù)組進(jìn)行包裝,所以用戶時(shí)刻都要注意內(nèi)存的變化,花費(fèi)大量精力減少內(nèi)存泄露 ,并且每種數(shù)據(jù)類型都有不同的函數(shù)版本,且不支持用戶自定義類型,所以我決定使用 GSL的算法,重寫構(gòu)架矩陣類,并且給出 C++的接口,支持多種類型,包括未知的用戶自定義類型,盡量減少用戶對(duì)程序本身的維護(hù)工作量,使用戶能專注于算法本 本科畢業(yè)設(shè)計(jì)論文 14 身。當(dāng)然也可以用下面這種方式實(shí)現(xiàn): double var[5] = { , , , 1, }。由于輸出只需要對(duì)對(duì)象具有只讀權(quán)限即可,而輸入則要求對(duì)對(duì)象的讀寫權(quán)限。 … }。 本科畢業(yè)設(shè)計(jì)論文 11 slice slice_。 vec, const sliceamp。} size_t start() const { return getSlice().start() 。 VectorViewdouble view(vec)。如果沒有定義的話,那么那些計(jì)算過程將使用全局靜態(tài)變量,以 提高計(jì)算速度。 2. 支持多線程。 3. 支持基本的向量數(shù)學(xué)運(yùn)算,如 +*/,范數(shù),支持叉乘等等。 本科畢業(yè)設(shè)計(jì)論文 3 第 2 章 需求分析 向量 需要設(shè)計(jì)一個(gè)類,能對(duì)數(shù)學(xué)上的向量進(jìn)行描述和運(yùn)算。flight vehicle simulation alogrithm,。 在第三章中對(duì)每一部分都做了詳細(xì)的論述,并使用 C++語(yǔ)言給出具體的實(shí)現(xiàn)和接口,盡量使得算法庫(kù)具有較高的代碼可重復(fù)使用性,較快的執(zhí)行速度,較高的效率和簡(jiǎn)單的接口。 GSL 的優(yōu)點(diǎn)是運(yùn)行速度快,尤其矩陣和向量是使用第三方庫(kù) CBLAS,所以矩陣運(yùn)算的速度和 matlab 不相上下 (matlab 矩陣底層也是用 CBLAS 庫(kù)實(shí)現(xiàn)的 )。 矩陣 設(shè)計(jì)一個(gè)類,能對(duì)數(shù)學(xué)上的矩陣進(jìn)行描述和運(yùn)算。 6. 可以保存每種隨機(jī)數(shù)算法的當(dāng)前狀態(tài),并且也可以導(dǎo)入已存的狀態(tài)。 project 目錄中為工程文件??勺円晥D是對(duì)其所指向的向量擁有讀寫權(quán)限,而常視圖則只有讀權(quán) 限。 GneVector 接口 根據(jù)以上的分析就可以寫出 GneVector 類的接口 //基類 template typename T class GneVector { public: //constructor GneVector(); virtual ~GneVector(); 本科畢業(yè)設(shè)計(jì)論文 9 //三個(gè)類都要重寫的方法 virtual const sliceamp。 virtual const valarrayTamp。 s) const。 //以下兩個(gè)構(gòu)造函數(shù)是為了 //Vector Vector //VectorView Vector //ConstVectorView Vector Vector(const GneVectorT amp。 …… . }。avec)。上面的方式的優(yōu)點(diǎn)是,初始化列表里的數(shù)據(jù)不限制為常量。 3. rows_,行數(shù)。所以類 CRandom 的接口大致如下 class CRandom { public: /*構(gòu)造函數(shù)提供默認(rèn)隨機(jī)數(shù)算法 ,也可以動(dòng)態(tài)設(shè)置 */ CRandom(RNG_ORDER type = RNG_TAUS)。 (gsl_rng_coveyou)。 } 性能分析 以下列舉了一些隨機(jī)數(shù)生成算法的相 對(duì)性能,速度最快的是 taus,, gfsr4 和mt19937。為了快速實(shí)現(xiàn)此 功能,可以先僅考慮一維情況。 相關(guān)性搜索需要一個(gè)緩存,存儲(chǔ)上次搜索后得到的下標(biāo)。 //在第 i 維自變量中尋找 x 所對(duì)應(yīng)的下標(biāo),二分法 size_t Locate(const doubleamp。線性插值和 1 階拉格朗日插值等價(jià),但是由于線性插值是最常用的插值算法,為了提高速度,這里單獨(dú)作為一個(gè)類來設(shè)計(jì)。 139。 本科畢業(yè)設(shè)計(jì)論文 29 第 4 章 實(shí)時(shí)環(huán)境測(cè)試 測(cè)試環(huán)境 cpu: AMD Athlon 64 X2 Dual 系統(tǒng): RTX 操作系統(tǒng) 內(nèi)存: 1GB RTX 全稱 realtime extension,即實(shí)時(shí)操作系統(tǒng),提供對(duì) windows 操作系統(tǒng)的擴(kuò)展功能。 double end_time = .....。矩陣維數(shù)超過 1000 時(shí),矩陣求逆等復(fù)雜運(yùn)算會(huì)很慢。隨機(jī)數(shù)類提供了非常多的生成器以滿足不同的需求,并且浮點(diǎn)數(shù)生成速度接近每秒鐘百萬(wàn)次。 大致代碼如下 : double start_time = .....。 Extrap。 //連加 .............. }。 線性插值 最簡(jiǎn)單的插值算法是一維線性插值。//存放自變量 vector double amp。用上圖來解釋,假如某一次插 值調(diào)用使得我們要確定 50 的位置,那么下一次插值很有可能是確定 5 5 53 或者 4 48 的位置,總之很有可能在50 附近,大跨度的跳躍很少發(fā)生。 圖 37 繼承關(guān)系 我們的基類要能夠做和插值有關(guān)的所有事情,但是除了插值算法的實(shí)現(xiàn)。 i++) { double u = ()。 由于在構(gòu)造函數(shù)中假 設(shè)每種算法都對(duì)應(yīng)一個(gè)枚舉量,所以自己構(gòu)建一個(gè)堆棧,把每種算法的指針按照枚舉結(jié)構(gòu)體的順序壓棧,在此使用 C++標(biāo)準(zhǔn)庫(kù)中的 vector模板構(gòu)造堆棧, /* gsl_rng_type 為算法結(jié)構(gòu)體,每種算法都維護(hù)這樣一個(gè)結(jié)構(gòu)體 */ typedef vectorconst gsl_rng_type* TypeA
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1