《工程數值算法及VB編程實例》一書分為上、下兩篇:上篇是工程數值算法應用程序編程基礎,主要介紹了數值算法所需的各種不同的用戶界面及建立方法,其中數值算法常用的用戶界面是一種非常實用的用戶界面,設有菜單,并在代碼中加有過濾器使運行后把計算結果保存到文本文檔,可從文本文檔中直接獲取計算書;下篇是工程數值算法應用實例,列舉了21個工程技術應用的實例來介紹VB數值算法,附送所有編程實例的源代碼供讀者下載使用。
本書可供企業工程技術人員、高等院校理工科學生學習和參考,也可供工程軟件開發的技術人員參考使用。
適讀人群 :本書可供企業工程技術人員、高等院校理工科學生學習和參考,也可供工程軟件開發的技術人員參考使用。
1 將數值算法的復雜計算編程化:數值算法的計算基本上都是高等數學的復雜運算,計算機編程大大提高了效率和準確性。
2 列舉20多個數值算法工程計算典型實例:作者從事工程軟件設計、程序開發的編程計算多年,積累了豐富工程實例,本書提供了所有計算的程序源代碼,供讀者直接調用參考。
《工程數值算法及VB編程實例》一書分為上、下兩篇:上篇是工程數值算法應用程序編程基礎,主要介紹了數值算法所需的各種不同的用戶界面及建立方法,其中數值算法常用的用戶界面是一種非常實用的用戶界面,設有菜單,并在代碼中加有過濾器使運行后把計算結果保存到文本文檔,可從文本文檔中直接獲取計算書。下篇是工程數值算法應用實例,本書的特點就是通過一些工程技術應用的實例來介紹VB數值算法。VB數值算法本身是很豐富的,它具有為工程技術等多學科服務的屬性,所以一旦與實際問題結合就會產生許許多多的豐富多彩的應用實例,將會更吸引人們去學習掌握它。
例如過去用傳統的方法計算可靠度都采用查表法,由可靠性系數u查表獲得可靠度,用VB數值算法采用調用伽瑪函數算法直接計算可靠度,這樣就不因中間查表而使運行的程序中斷,它就能使程序在連續運行中尋求程序里設定的佳可靠度范圍里優化主參數,這種調優方法將會很快被推廣應用。
又如VB數值算法里應用隨機數的蒙特卡洛法,此法在20世紀40年代是威勒蒙等為研制核武器而提出來的一種計算方法,20世紀60年代美國已解密,而在近20多年隨著微型計算機的發展而廣泛應用于各學科的計算。此法在工程上應用得較多的是解復雜的方程,本書中用它來求非線性方程的一個實根,論是高階的還是很繁復的方程式都能很快地求解。若用它來求一組實根也能較快地完成。
在VB數值算法中的布倫特法也有類似的功能。再有如對威布爾分布二參數估計的編程計算,能快捷地求出形狀參數的估計和特征壽命估計;在對威布爾分布三參數圖估計中實施輔助計算,能便捷地輔助獲得威布爾分布的三參數估計值。并用編程計算的方法實現二參數威布爾分布的假設檢驗和威布爾分布的異常值檢驗。這也是當今可靠性軟件用得較多的一部分。
還有在工程技術、科研項目計算中常常遇到某機構的數學模型,源自某微分方程或某偏微分方程,經過一系列推導已求解到了解析式,得到的卻是一個等階方程。此時若用一般的計算方法都非常困難。一般都會用牛頓迭代法來解,但是手工進行牛頓迭代法計算耗時長,計算準確度不高,容易出錯,但數值算法中的迭代法就是比較好的方法。還有如VB數值算法中的快速傅里葉變換的應用在提高信號分析的計算速度方面是公認的,在實例的計算中使我們親眼目睹它的分析信號的速度,這就使我們了解到雷達之所以具有指揮攔截導彈的能力,與快速傅里葉變換的作用是分不開的。
在本書后也選了MATLAB數值算法中的一例,即某二自由度振動系統的一般方程建模的矩陣形式,其基本思路是把原始方程化成四個一階方程矩陣方程組,后解得其特征根,由兩組共軛復根組成,它的虛部是振動的角頻率,實部是它的衰減系數。所以矩陣特征根反映了兩種振動模態的特征,使我們看到“特征”兩字的物理意義。
以上所描述的各個應用實例在本書中都有,所有實例中的源代碼在本書所附的光盤中也均有。的確通過實例的演算,使我們從純數值算法的層面進入到了另一層面,原本枯燥的東西一下變得精彩誘人。這就是具體的應用實例的魅力,這和許多引人入勝的科普讀物中的故事一樣,只不過本書是建立在特定的程序語言平臺上而已。但愿本書能引起更多讀者的興趣而深入到各章的源代碼的細節中去,從而掌握這門有用的編程技術,創造出更高水平的軟件來。
由于筆者水平有限,因此書中的不足之處在所難免,敬請讀者批評指正。
查看全部↓
上篇 工程數值算法應用程序編程基礎
1 編寫數值計算程序的一般步驟/1
1.1 明確編寫程序的目的和搞清楚相關的計算公式/2
【例1.1】 插值計算齒輪應力修正系數Ysa的計算程序_簡單界面/2
1.2 在簡單的界面上用BASIC編寫計算程序并完成調試/2
2 數值計算程序常用界面/6
2.1 下拉式菜單/7
2.2 RichTextBox控件/8
2.3 彈出式菜單/9
2.4 數值計算程序常用的用戶界面的重要工具——通用對話框/10
2.5 通用對話框的基本屬性與顯示通用對話框的方法/12
2.6 具有保存計算結果功能的常用界面的程序/15
【例2.1】 插值計算齒輪應力修正系數的常用界面/15
3 編制參數化界面的插值計算齒輪應力修正系數/19
3.1 關于二維規則函數表的插值計算/19
【例3.1】 把人工插值過程轉化為計算機程序處理過程,查詢齒輪應力修正系數Ysa/19
3.2 設計一個參數化界面的用戶界面/21
3.3 運行程序、調試/22
3.4 設計一個在常用界面中的參數化界面的插值計算齒輪應力修正系數Ysa程序/23
3.5 編寫各過程代碼指令/23
3.6 運行程序、調試/25
3.7 參數化界面源程序生成應用程序即被生成.exe執行文件/25
3.8 生成的執行文件.exe文件中的幫助系統和糾錯系統/26
3.9 編制數值計算程序的要點/33
下篇 工程數值算法應用實例
4 用“另存為”建立常用界面的拉格朗日插值計算程序/34
4.1 關于拉格朗日插值/34
【例4.1】 對函數f(x) =cosx和f(x) =ex,cosx的區間是(0, π) ,ex的區間是(0,1.0),進行拉格朗日插值編程計算/35
4.2 用另存為的辦法建立常用界面的計算程序/35
4.3 對窗體設計窗口、工程資源管理器、窗體文件屬性編輯器窗口進行改寫,建立常用界面的計算程序/37
4.4 在改建完成的窗體里改寫源代碼/39
4.5 運行結果及分析/43
5 有理函數插值法/44
5.1 關于有理函數插值/44
【例5.1】 對以下已知函數F(x)作插值編程計算/45
5.2 對已知有理函數F(x)作插值計算的程序編制/45
5.3 程序運行結果及分析/48
5.4 關于子程序/49
【例5.2】 編制傳址調用程序/51
【例5.3】 編制傳值調用程序/53
6 高斯法解系數矩陣及驗證/55
6.1 關于高斯-約當消去法/55
【例6.1】 已知某預測產值方程組的系數矩陣及右端向量調用高斯法子過程求出其解/55
6.2 高斯法解系數矩陣及驗證的程序編制/56
6.3 程序運行結果及分析/60
7 梯形求積法/62
7.1 關于梯形求積法/62
【例7.1】 對以下已知函數F(x)作數值積分/63
7.2 對已知函數F(x)數值積分計算程序進行編制/63
7.3 程序運行結果及分析/65
8 計算伽瑪函數Γ函數值/67
8.1 關于Γ函數/67
【例8.1】 計算x=0.2,0.4,…,1.0,1.2,…,10.0,20.0,…的Γ函數值/67
8.2 對Γ函數值計算程序進行編制/68
8.3 程序運行結果及分析/70
【例8.2】 由例8.1計算得已知x、Γ(x)值,用MATLAB繪制Γ函數圖形/70
8.4 用MATLAB繪制計算所得Γ函數圖形/71
9 計算不完全伽瑪函數、誤差函數/73
9.1 關于不完全伽瑪函數、誤差函數/73
【例9.1】 計算x<0,或x9.2 對不完全Γ函數值計算程序的編制/75
9.3 程序運行結果及分析/79
10 調用不完全伽瑪函數計算傳動軸強度可靠度/81
10.1 關于可靠性設計計算/81
10.2 傳動軸強度概率可靠性計算/83
10.3 傳動軸強度概率可靠性計算的程序編制/87
【例10.1】 調用不完全伽瑪函數傳動軸正態分布可靠性計算/87
10.4 采用查表法和采用調用不完全伽瑪函數法求得可靠度的結果對比/94
10.5 傳動軸疲勞強度的概率可靠性計算的程序編制/97
【例10.2】 調用不完全伽瑪函數傳動軸對數正態分布可靠性計算/97
10.6 采用查表法和采用調用不完全伽瑪函數法求得傳動軸對數分布可靠度的結果對比/104
11 調用不完全伽瑪函數實現變厚齒強度的概率可靠性調優計算/107
11.1 可靠性調優計算的介紹/107
【例11.1】 對某5t商用車轉向器變厚齒齒扇的齒根彎曲強度進行校核的調優計算與概率可靠性的調優計算/115
11.2 編制可實現變厚齒概率可靠性調優計算的程序/115
11.3 程序的運行結果及分析/132
11.4 概率可靠性設計的安全系數和傳統的強度校核的安全系數的不同/136
【例11.2】 對例11.1的結果編程計算求出安全系數nR、n'R/139
12 用蒙特卡洛法求膜簧優化計算一組實根/148
12.1 蒙特卡洛法對膜片彈簧非線性方程組優化解的介紹/148
【例12.1】 用蒙特卡洛法求膜片簧的三個主參數一組根的A-L式各系數/152
12.2 求三根的蒙特卡洛法的各系數計算程序的編制/152
12.3 各系數計算程序的運行結果/155
【例12.2】 用蒙特卡洛法求膜片簧的三個主參數一組根/156
12.4 蒙特卡洛法優化求三根的程序的編制/156
12.5 求三根程序的運行結果及分析/159
【例12.3】 對一組根值的驗證/161
12.6 蒙特卡洛法優化三根值的驗證程序編制/161
12.7 三根驗證程序的運行結果及分析/168
13 威布爾分布(二參數估計)用于某晶體管的可靠性分析/171
13.1 威布爾分布分析法的性質和優缺點/171
13.2 威布爾分布分析二參數圖估計法/172
【例13.1】 對晶體管的壽命試驗數據作威布爾分布分析(二參數估計)/172
13.3 VB平臺上的威布爾分布分析數值計算法/174
13.4 晶體管威布爾分析程序運行結果分析/180
13.5 用MATLAB的威布爾分布程序對本例的計算結果/182
14 威布爾分布(三參數圖估計)用于某產品的可靠性分析/184
14.1 威布爾分布分析三參數圖估計法/184
【例14.1】 對某產品定數截尾試驗,作三參數圖估計和輔助計算/184
14.2 基于MATLAB平臺威布爾分布三參數圖估計的輔助編程計算/186
14.3 基于VB平臺威布爾分布三參數圖估計輔助計算的程序編制/190
14.4 威布爾分布分析三參數圖估計輔助程序運行結果/195
15 威布爾分布假設檢驗/197
15.1 二參數威布爾分布假設檢驗方法的程序編制/197
【例15.1】 二參數威布爾分布假設檢驗對某特種軸承的壽命數據做檢驗/197
15.2 二參數威布爾分布假設檢驗計算結果及分析/200
15.3 威布爾分布異常值檢驗方法的程序編制/202
【例15.2】 根據某產品的一組壽命數據檢驗其是否來自同一個二參數威布爾分布/203
15.4 威布爾分布異常值檢驗計算結果及分析/206
16 用布倫特法求一個根優化膜片彈簧生產線上的佳磨削厚度/208
16.1 用布倫特法求根優化離合器膜片彈簧厚度的介紹/208
【例16.1】 用布倫特法求膜片彈簧的佳厚度/211
16.2 布倫特法求根優化離合器膜片彈簧厚度的程序編制/212
16.3 程序的運行結果/215
17 單純形法解決生產計劃線性規劃問題/216
【例17.1】 用單純形法解決某企業的生產計劃的線性規劃問題/216
17.1 用單純形法優化生產計劃的程序編制/218
17.2 程序運行結果及分析/223
18 用迭代法對超聲波振動加工變幅桿的優化設計/225
18.1 超聲波加工變幅桿的介紹/225
【例18.1】 已知45鋼的圓錐形變幅桿的初設定長度、兩端直徑、中孔直徑,求符合諧振要求的精確長度及放大系數/227
18.2 用迭代法對超聲加工變幅桿(帶中孔)的優化設計的程序編制/227
18.3 對超聲加工圓錐形變幅桿(帶中孔)優化的計算結果及分析/231
19 傅里葉變換算法/233
19.1 關于傅里葉分析/233
19.2 關于在機械振動中的傅里葉變換/233
19.3 關于在VB平臺實現傅里葉變換的算法/237
【例19.1】 采樣點數NN=32,含2×NN個元素的一組實型數組DATA(),作輸入、輸出參數,進行復數據快速傅里葉變換/240
19.4 復數據快速傅里葉變換算法的程序編制/241
19.5 程序運行結果及分析/252
20 快速傅里葉變換與直接計算法的比較/256
20.1 提高信號分析的計算速度/256
【例20.1】 快速傅里葉變換與直接計算法相比較快速法比直接法快多少倍/256
20.2 對快速傅里葉變換與直接計算法相比較快速法比直接法快多少倍的計算程序編制/258
20.3 程序計算的結果及分析/261
21 從特征根的共軛復根求得振動的固有頻率/263
21.1 某阻尼二自由度系統/263
【例21.1】 用MATLAB對某阻尼二自由度系統作固有頻率的計算/263
21.2 編制計算某阻尼二自由度系統的MATLAB程序/264
21.3 計算及結果分析/264
附錄/267
參考文獻/278
查看全部↓