vB编写线性方程.docx
文本预览下载声明
实验一:线性方程组解算一、实验目的与要求⒈初步掌握线性方程组的算法;⒉初步掌握线性方程组在计算机上实现方法。二、实验安排⒈实验共需用2学时。⒉实验每个小组1人,用VB等语言在计算机上完成程序代码的编写,并调试通过,然后用算例印证程序的正确性。三、实验步骤及要点⒈在课余时间,提前准备线性方程组解算程序代码;⒉上机时写入代码,并调试运行;⒊用算例进行印证。四、实验原理利用高斯选主元消去法:五、程序代码Public Function guass(n As Integer, a() As Single, b() As Single, x() As Single)Dim iAs Integer, j As Integer, k As IntegerDim amax As Single, imax As Integer, s As SingleDim m As Single, t As Single, mm As SingleFor j = 1 To (n - 1)amax = Abs(a(j, j))imax = jFor i = j + 1 To nIf (Abs(a(i, j)) amax) Thenamax = Abs(a(i, j))imax = iEnd IfNext iIf (imax j) ThenFor k = j To nt = a(imax, k)a(imax, k) = a(j, k)a(j, k) = tNext kbmax = b(imax)b(imax) = b(j)b(j) = bmaxEnd IfFor i = j + 1 To nt = 1# / a(j, j)t = t * a(i, j)For k = j To na(i, k) = a(i, k) - a(j, k) * tNext kb(i) = b(i) - b(j) * tNext iNext jFor i = 1 To nm = 0mm = 0For j = iTo nm = m + a(i, j)mm = mm - a(i, j)Next jIf (m 0.000001 And mm 0.000001) ThenMsgBox 无穷多解EndEnd IfNext ix(n) = b(n) / a(n, n)For i = n - 1 To 1 Step -1m = 0For j = n Toi + 1 Step -1m = m + a(i, j) * x(j)Next jx(i) = (b(i) - m) / a(i, i)Next iEnd FunctionPrivate Sub Command1_Click()Dim s() As Single, x() As SingleDim a() As Single, b() As SingleDim iAs Integer, j As Integer, k As IntegerDim amax As Single, imax As IntegerDim m As Single, n As Integer, c As SingleDim p As StringIf Not IsNumeric(Text1.Text) ThenMsgBox 请输入数字, , 警告:Else:again:n = Val(Text1.Text)ReDima(n, n) As SingleReDimb(n) As Single, x(n) As SingleFor i = 1 To nFor j = 1 To na(i, j) = Val(InputBox(系数矩阵a ( i j )数值:, 输入框))Picture1.Print a(i, j); vbTab; ;Next jPicture1.Print Chr(13)Next iFor i = 1 To nb(i) = Val(InputBox(列向量b ( i )数值:, 输入框))Picture2.Print b(i); ;Picture2.Print Chr(13)Next iCall guass(n, a, b, x)For j = 1 To np = x( Str(j) )= Format(Str(x(j)), #0.0000)Picture3.Print p; ;Picture3.Print Chr(13)Next jOn Error GoTo again:End IfEnd SubPrivate Sub Command3_Click()Picture1.ClsPicture2.ClsPicture3.ClsText1.Text = End SubPrivate Sub Command4_Click()EndEnd SubPri
显示全部