⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 计算方法的VB程序
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form1 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Householder变换"
   ClientHeight    =   3195
   ClientLeft      =   2610
   ClientTop       =   2475
   ClientWidth     =   5610
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   3195
   ScaleWidth      =   5610
   Begin VB.CommandButton Command3 
      Caption         =   "&About"
      Height          =   735
      Left            =   4560
      TabIndex        =   4
      Top             =   2400
      Width           =   975
   End
   Begin VB.CommandButton Command2 
      Caption         =   "&End"
      Height          =   735
      Left            =   3600
      TabIndex        =   2
      Top             =   2400
      Width           =   975
   End
   Begin VB.TextBox Text1 
      Height          =   3135
      Left            =   0
      ScrollBars      =   3  'Both
      TabIndex        =   1
      Text            =   "1,2,3,4;2,3,4,5;3,4,5,6;4,5,6,7;"
      Top             =   0
      Width           =   3495
   End
   Begin VB.CommandButton Command1 
      Caption         =   "O&k"
      Height          =   615
      Left            =   3600
      TabIndex        =   0
      Top             =   1800
      Width           =   1935
   End
   Begin VB.Label Label1 
      Caption         =   "请按照规定的输入格式将所需进行Household变换的矩阵写在左边的文本输入框内."
      BeginProperty Font 
         Name            =   "楷体_GB2312"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1695
      Left            =   3480
      TabIndex        =   3
      Top             =   0
      Width           =   2175
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Public z As Integer
Private Sub Command1_Click()
Dim t1 As Date
Dim t2 As Date
t1 = Time
Dim r As Integer
Dim B(MAX, MAX) As Double
forward = 0
backward = 0
W3 = 1
w2 = 1
s = Text1.Text
l = Len(s)
''temp = MsgBox(l, 48)
For N = 1 To l
If Mid(s, N, 1) = "," Then
forward = N
A(w2, W3) = CInt(Mid(s, backward + 1, forward - backward - 1))
backward = forward
W3 = W3 + 1
End If
If Mid(s, N, 1) = ";" Then
forward = N
A(w2, W3) = CInt(Mid(s, backward + 1, forward - backward - 1))
backward = forward
w2 = w2 + 1
w1 = W3
W3 = 1
End If
Next
For i = 1 To w1
    For j = i + 1 To w1
    If A(i, j) <> A(j, i) Then
    temp = MsgBox("该矩阵不是对称矩阵!!", 48, "提示")
    End
    End If
    Next j
Next i
Call Householder
t2 = Time
tm = CDbl(t2 - t1) * 24 * 3600
Form1.Hide
Form2.Show
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Command3_Click()
temp = MsgBox("理学院一队:王元", 64, "关于:作者")
End Sub

Private Sub Householder()
Dim s, r As Double
Dim s1(MAX, MAX), s2(MAX, MAX) As Double
Dim c As Double
For Number = 1 To w1 - 2
For i = Number + 1 To w1
s = s + A(i, Number) * A(i, Number)
Next i
s = Sqr(s)
If A(Number + 1, Number) < 0 Then
s = (-1) * s
End If
r = 2 * A(Number + 1, Number) * s + 2 * s * s
r = Sqr(r)
For i = 1 To Number
W(i) = 0
Next
W(Number + 1) = (A(Number + 1, Number) + s) / r
For i = Number + 2 To w1
W(i) = A(i, Number) / r
Next i
For i = 1 To w1
V(i) = 0
For j = 1 To w1
    V(i) = A(i, j) * W(j) + V(i)
Next j
Next i
For i = 1 To w1
c = c + W(i) * V(i)
Next i
For i = 1 To w1
Q(i) = V(i) - c * W(i)
Next i
For i = 1 To w1
 For j = 1 To w1
 s1(i, j) = W(i) * Q(j)
 s2(i, j) = Q(i) * W(j)
 A(i, j) = A(i, j) - 2 * s1(i, j) - 2 * s2(i, j)
 Next j
Next i
Next Number
Debug.Print w1
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -