阅读以下说明和流程图,填补流程图中的空缺(1)~ (5) ,将解答填入答题纸的对

练习题库2022-08-02  33

问题 阅读以下说明和流程图,填补流程图中的空缺(1)~ (5) ,将解答填入答题纸的对应栏内。【说明】平面上一个封闭区域内稳定的温度函数是一个调和函数。如果区域边界上各点的温度是己知的(非常数),那么就可以用数值方法近似地计算出区域内各点的温度。假设封闭区域是矩形,可将整个矩形用许多横竖线切分成比较细小的网格,并以最简单的方式建立坐标系统,从而可以将问题描述为:己知调和函数u(i,j)在矩形 {0≤i≤m; 0≤j≤n}四边上的值,求函数u在矩形内部各个网格点{(i,j)|i=1,....m-1; j=1,.....,n-1}上的近似值。根据调和函数的特点可以推导出近似算式:该矩形内任一网格点上的函数值等于其上下左右四个相邻网格点上函数值的算术平均值。这样,我们就可以用法代法来进行数值计算了。首先将该矩形内部所有网格点上的函数值设置为一个常数,例如 u(0,0); 然后通过该法代式计算矩形内各网格点上的新值。这样反复进行法代计算,若某次迭代后所 有的新值与原值之差别都小于预定的要求(如0.01),则结束求解过程。【流程图】

选项

答案

解析 (1) 0 或任意一个负数
(2) (u(i,j+1)+u(i,j-1)+u(i-1,j)+u(i+1,j))/4 或等价表示
(3) max
(4) new 或 ((u(i,j+1)+u(i,j-1)+u(i-1,j)+u(i+1,j))/4 或等价表示
(5) max

本题考查算法(数值计算)流程的描述。
封闭区域内稳定(没有奇异点)的温度场、磁场等都是调和函数。已知边界上的值,就可以近似计算区域内各点的值。对于网格化后的矩形区域 {0≤i ≤m; 0≤j ≤n ,其边界点为 {(0,j)丨j=0,…,n}、{((i,0)丨i=0,…,m}、{(m,j)丨j=0,…,n}、{((i,n)丨i=0,..,m} ,其内点为{(i,j)丨i=1,… m-1 ;j=1 ,...,n-1} 。
本题采用迭代法进行近似计算。初始时,设矩形每个内点处的u(i,j)均等于常数
u(0,0) 。每次迭代需要再计算出所有内点处的 u(i,j)新值。为了检查迭代能否结束,需要,算出所有内点处函数 u 的新值与旧值之差的绝对值是否都小于 0.01 (或判断其最大值是否小于 0.01)。为此,每次算出的新值需要先暂存于一个临时变量 new 。它应是点(i,j)上下左右四个点处 u 值的算术平均值,因此 (2) 处应填(u(i,j+1)+u(i,j-1)+u(i-1,j)+u(i+1,j))/4。
为了计算本次选代中新老值之差的绝对值 lu(i,j)-newl 的最大值max,需要先对 max赋一个不可能再低的值(由于绝对值总是非负,所以max常先存0)。因此(1)处可以填0(填任何一个负数也是可以的)。
当某个内点处新老u值之差的绝对值超过max时,就需要将该值赋给max。因此, (3)处应填max。不管是否更新了max,此后新值就可以替代老值了。因此 (4) 处应填 new 。
(5) 处应填本次迭代求出的最大值max ,以判断它是否小于0.01,是否达到了近似要求。如果已经达到误差要求,则计算结束,所有的u(i,j)就是计算结果。否则,还需要继续进行迭代。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2427163.html

最新回复(0)