程序设计讲义第二篇(2) 联系客服

发布时间 : 星期六 文章程序设计讲义第二篇(2)更新完毕开始阅读2e21a7d726fff705cc170a0c

b3 = (l - b1) * 0.6 b2 = Int(b3 * 100)

l = b1 + b2 / 100 + (b3 - b2 / 100) * 0.6 angle = l End Function

Private Function side(n As Integer, m As Integer) '反算已知点间边长函数过程 For i = 1 To yds

If ym(i) = dm(n) Then k1 = i If ym(i) = dm(m) Then k2 = i Next i

dx = xo(k1) - xo(k2): dy = yo(k1) - yo(k2) side = Sqr(dx ^ 2 + dy ^ 2) End Function

Private Sub inversion(A() As Double, W() As Double) '法方程系数阵求逆子程序 n = 2 * (zds - yds) '形参数组A()是约化后法方程系数数组,W()是工作数组。 For i = n To 1 Step -1 'i控制所求逆阵元素的行数,由下而上。

h = i * (i + 1) / 2 '约化后法方程系数阵中i行主对角线元素下标 c = A(h) '约化后法方程系数阵中i行主对角线元素 If i = n Then '求序号最大的逆阵元素

A(h) = 1 / A(h) '法方程系数阵下标最大的单元改存相应的逆阵元素 Else 'i

For j = n To i Step -1 '在i行内控制欲求逆阵元素的列数,由右而左。 ss = 0

If j = i Then ss = 1 '所求逆阵元素是主对角线上元素时,对应常数值(单位阵数值)为1

For k = n To i + 1 Step -1 '已求得逆阵元素在欲求未知数向量W()中序号,k循环还控制回代求解的乘积项数 '计算已充填进约化法方程系数阵的协因数元素序号,

'k < j时已知逆阵元素与欲求逆阵元素在约化法方程系数阵中在一列,反之不在一列 m1 = (j - 1) * j / 2 + k '约化法方程系数阵中j列中由下到上各元素。

If k > j Then m1 = (k - 1) * k / 2 + j '约化法方程系数阵中j行从右到左各元素序号。 m2 = (k - 1) * k / 2 + i '约化法方程系数阵中i行从右到左各元素序号 If m1 <> m2 Then 'm2总是小于或等于m1,只有在i=j时相等 ss = ss - A(m2) * A(m1) Else

ss = ss - A(m2) * W(k) '求主对角线上逆阵元素时属这种情况

17

End If Next k

W(j) = ss / c '求逆阵元素 Next j

For k = n To i Step -1 '将约化后法方程系数数组第i行元素置换为逆阵元素 h = (k - 1) * k / 2 + i A(h) = W(k) Next k End If Next i

End Sub '求逆完毕,此时约化法方程系数阵中元素已是逆阵元素

18