📄 拉格朗日插值几何意义.frm
字号:
VERSION 5.00
Begin VB.Form Form6
BackColor = &H00FFFFFF&
Caption = "拉格朗日插值几何意义"
ClientHeight = 7155
ClientLeft = 60
ClientTop = 345
ClientWidth = 9900
LinkTopic = "Form6"
ScaleHeight = 7155
ScaleWidth = 9900
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton Command1
Caption = "拉格朗日插值的几何意义"
Height = 735
Left = 120
TabIndex = 0
Top = 240
Width = 1455
End
End
Attribute VB_Name = "Form6"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Rem 定义数组变量
Dim x(20), l(20, 200), ll(200), x1(200)
Rem 定义插值节点
k = 1
While k <= 20
x(k) = k - 1
k = k + 1
Wend
n = InputBox("请输入插值节点数:", "input")
n = Val(n)
Rem 计算插值基函数和插值基函数的累积和
m = 101
h = (x(n) - x(1)) / (m - 1)
i = 1
Do While i <= m
ll(i) = 0
xx = x(1) + (i - 1) * h
x1(i) = xx
k = 1
Do While k <= n
t = 1
j = 1
Do While j <= n
If j <> k Then
t = t * (xx - x(j)) / (x(k) - x(j))
End If
j = j + 1
Loop
l(k, i) = t
ll(i) = ll(i) + l(k, i)
k = k + 1
Loop
i = i + 1
Loop
Rem 输出坐标轴
Cls
x0 = 2000
y0 = 5000
Line (200, y0)-(15000, y0)
Line (x0, 500)-(x0, 9000)
Rem 输出横坐标的刻度,比例T0
t0 = 2000
i = 0
m1 = 0
Do While i <= n - 1
Line (x0 + t0 * i, y0 - 50)-(x0 + t0 * i, y0 + 50)
i = i + 1
Print m1
m1 = m1 + 1
Loop
Rem 输出插值基函数图形
k = 1
Do While k <= n
i1 = 60 * k
i2 = 0
If i1 > 255 Then
i1 = 255
i2 = 60 * (k - 4)
End If
i = 1
Do While i <= m - 1
Line (x0 + x1(i) * t0, y0 - l(k, i) * t0)-(x0 + x1(i + 1) * t0, y0 - l(k, i + 1) * t0), RGB(255, i1, i2)
i = i + 1
Loop
k = k + 1
Loop
Rem 输出基函数的累加和图形
i = 1
Do While i <= m - 1
Line (x0 + x1(i) * t0, y0 - ll(i) * t0)-(x0 + x1(i + 1) * t0, y0 - ll(i + 1) * t0), vbBlue
i = i + 1
Loop
End Sub
Private Sub Form_DblClick()
Unload Me
Form1.Show
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -