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

📄 form1.frm

📁 大学里数学系必学的一们课程数值分析中的经典算法————三次样条插值的程序vb版本
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form1 
   ClientHeight    =   6720
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   7845
   LinkTopic       =   "Form1"
   ScaleHeight     =   6720
   ScaleWidth      =   7845
   StartUpPosition =   3  '窗口缺省
   Begin VB.TextBox Text14 
      Height          =   495
      Left            =   6480
      TabIndex        =   25
      Text            =   "0.6868"
      Top             =   1560
      Width           =   975
   End
   Begin VB.TextBox Text13 
      Height          =   495
      Left            =   6480
      TabIndex        =   24
      Text            =   "1.0000"
      Top             =   600
      Width           =   975
   End
   Begin VB.TextBox Text12 
      Height          =   735
      Left            =   1560
      TabIndex        =   23
      Top             =   6000
      Width           =   3975
   End
   Begin VB.TextBox Text11 
      Height          =   855
      Left            =   2280
      TabIndex        =   21
      Text            =   "0.25"
      Top             =   4320
      Width           =   2655
   End
   Begin VB.CommandButton Command1 
      Caption         =   "计算对应的y值"
      Height          =   615
      Left            =   1680
      TabIndex        =   20
      Top             =   5280
      Width           =   3735
   End
   Begin VB.TextBox Text10 
      Height          =   495
      Left            =   5160
      TabIndex        =   9
      Text            =   "0.7280"
      Top             =   1560
      Width           =   975
   End
   Begin VB.TextBox Text9 
      Height          =   495
      Left            =   3840
      TabIndex        =   8
      Text            =   "0.6708"
      Top             =   1560
      Width           =   975
   End
   Begin VB.TextBox Text8 
      Height          =   495
      Left            =   2640
      TabIndex        =   7
      Text            =   "0.6245"
      Top             =   1560
      Width           =   975
   End
   Begin VB.TextBox Text7 
      Height          =   495
      Left            =   1440
      TabIndex        =   6
      Text            =   "0.5477"
      Top             =   1560
      Width           =   975
   End
   Begin VB.TextBox Text6 
      Height          =   495
      Left            =   120
      TabIndex        =   5
      Text            =   "0.5000"
      Top             =   1560
      Width           =   975
   End
   Begin VB.TextBox Text5 
      Height          =   495
      Left            =   5160
      TabIndex        =   4
      Text            =   "0.53"
      Top             =   600
      Width           =   975
   End
   Begin VB.TextBox Text4 
      Height          =   495
      Left            =   3840
      TabIndex        =   3
      Text            =   "0.45"
      Top             =   600
      Width           =   975
   End
   Begin VB.TextBox Text3 
      Height          =   495
      Left            =   2640
      TabIndex        =   2
      Text            =   "0.39"
      Top             =   600
      Width           =   975
   End
   Begin VB.TextBox Text2 
      Height          =   495
      Left            =   1440
      TabIndex        =   1
      Text            =   "0.30"
      Top             =   600
      Width           =   975
   End
   Begin VB.TextBox Text1 
      Height          =   495
      Left            =   240
      TabIndex        =   0
      Text            =   "0.25"
      Top             =   600
      Width           =   975
   End
   Begin VB.Label Label13 
      Caption         =   "s'(0.53)"
      Height          =   255
      Left            =   6480
      TabIndex        =   27
      Top             =   1320
      Width           =   975
   End
   Begin VB.Label Label12 
      Caption         =   "s'(0.25)"
      Height          =   255
      Left            =   6480
      TabIndex        =   26
      Top             =   360
      Width           =   975
   End
   Begin VB.Label Label11 
      Caption         =   "要求的x值"
      Height          =   855
      Left            =   1680
      TabIndex        =   22
      Top             =   4320
      Width           =   495
   End
   Begin VB.Label Label10 
      Caption         =   "y4"
      Height          =   255
      Left            =   5160
      TabIndex        =   19
      Top             =   1320
      Width           =   855
   End
   Begin VB.Label Label9 
      Caption         =   "y3"
      Height          =   255
      Left            =   3840
      TabIndex        =   18
      Top             =   1320
      Width           =   855
   End
   Begin VB.Label Label8 
      Caption         =   "y2"
      Height          =   255
      Left            =   2640
      TabIndex        =   17
      Top             =   1320
      Width           =   855
   End
   Begin VB.Label Label7 
      Caption         =   "y1"
      Height          =   255
      Left            =   1440
      TabIndex        =   16
      Top             =   1320
      Width           =   855
   End
   Begin VB.Label Label6 
      Caption         =   "y0"
      Height          =   255
      Left            =   240
      TabIndex        =   15
      Top             =   1320
      Width           =   855
   End
   Begin VB.Label Label5 
      Caption         =   "x4"
      Height          =   255
      Left            =   5160
      TabIndex        =   14
      Top             =   360
      Width           =   855
   End
   Begin VB.Label Label4 
      Caption         =   "x3"
      Height          =   255
      Left            =   3840
      TabIndex        =   13
      Top             =   360
      Width           =   855
   End
   Begin VB.Label Label3 
      Caption         =   "x2"
      Height          =   255
      Left            =   2640
      TabIndex        =   12
      Top             =   360
      Width           =   855
   End
   Begin VB.Label Label2 
      Caption         =   "x1"
      Height          =   255
      Left            =   1440
      TabIndex        =   11
      Top             =   360
      Width           =   855
   End
   Begin VB.Label Label1 
      Caption         =   "x0"
      Height          =   255
      Left            =   240
      TabIndex        =   10
      Top             =   360
      Width           =   855
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Dim xx As Double
Dim yy As Double
Dim x(4) As Double
Dim y(4) As Double
Dim m(4) As Double
Dim h(3) As Double
Dim a(4) As Double
Dim b(4) As Double
Dim aa(4) As Double
Dim bb(4) As Double


x(0) = Text1.Text
x(1) = Text2.Text
x(2) = Text3.Text
x(3) = Text4.Text
x(4) = Text5.Text
xx = Text11.Text


y(0) = Text6.Text
y(1) = Text7.Text
y(2) = Text8.Text
y(3) = Text9.Text
y(4) = Text10.Text

m(0) = Text13.Text
m(4) = Text14.Text

For i = 0 To 3
h(i) = x(i + 1) - x(i)
Next i

For i = 1 To 3
a(i) = h(i - 1) / (h(i - 1) + h(i))
b(i) = 3 * ((1 - a(i)) * (y(i) - y(i - 1)) / h(i - 1) + a(i) * (y(i + 1) - y(i)) / h(i))
Next i

aa(0) = -a(0) / 2
bb(0) = b(0) / 2

For i = 1 To 3
aa(i) = -a(i) / (2 + (1 - a(i)) * aa(i - 1))
bb(i) = (b(i) - (1 - a(i)) * bb(i - 1)) / (2 + (1 - a(i)) * aa(i - 1))
Next i


For i = 3 To 1 Step -1
m(i) = aa(i) * m(i + 1) + bb(i)
Next i


For i = 0 To 3 Step 1
   If xx >= x(i) And xx <= x(i + 1) Then
     yy = (1 + 2 * (xx - x(i)) / (x(i + 1) - x(i))) * (xx - x(i + 1)) * (xx - x(i + 1)) / ((x(i) - x(i + 1)) * (x(i) - x(i + 1))) * y(i) + (1 + 2 * (xx - x(i + 1)) / (x(i) - x(i + 1))) * (xx - x(i)) * (xx - x(i)) / ((x(i + 1) - x(i)) * (x(i + 1) - x(i))) * y(i + 1) + (xx - x(i)) * (xx - x(i + 1)) * (xx - x(i + 1)) / ((x(i) - x(i + 1)) * (x(i) - x(i + 1))) * m(i) + (xx - x(i + 1)) * (xx - x(i)) * (xx - x(i)) / ((x(i + 1) - x(i)) * (x(i + 1) - x(i))) * m(i + 1)
  
     End If
Next i


   If xx < x(0) Or xx > x(4) Then
         MsgBox "你输入的数据不在这个区间里"
         Text12.Text = "错误输入"
   Else: Text12.Text = ccstr(yy)
   
   End If
         



End Sub
Function ccstr(a As Double)


  If 0 < a And a < 1 Then ccstr = "0" + CStr(a) '特殊情况 为-1到1 之间的数字
  If -1 < a And a < 0 Then ccstr = "-0" + CStr(Abs(a))
  If CStr(a) = "0" Then ccstr = "0"
  If Abs(a) >= 1 Then ccstr = CStr(a)
      
  End Function
  

⌨️ 快捷键说明

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