《工程数值算法及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
查看全部↓