📄 form1.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 + -