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

📄 d5r6.frm

📁 常用的数值算法的VB程序
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   5040
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   5040
   ScaleWidth      =   4680
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton Command1 
      Caption         =   "Command1"
      Height          =   375
      Left            =   3000
      TabIndex        =   0
      Top             =   4320
      Width           =   1335
   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()
    'PROGRAM D5R6
    'Driver for routine CHINT
    NVAL = 40
    PIO2 = 1.5707963
    Dim C(40), CINT1(40)
    A = -PIO2
    B = PIO2
    Call CHEBFT(A, B, C(), NVAL)
    'Test integral
    Print
    Print Tab(5); "How many terms in Chebyshev evaluation?"
    'Input MVAL , between 6 and 40, MVAL=0 TO END
    MVAL = 20
    Print Tab(5); MVAL
    If (MVAL <= 0) Or (MVAL > NVAL) Then Exit Sub
    Call CHINT(A, B, C(), CINT1(), MVAL)
    Print Tab(5); "    X         Actual     Cheby. Integ."
    For I = -8 To 8 Step 1
        X = I * PIO2 / 10#
        Print Tab(5); Format$(X, "##.###000");
        Print Tab(18); Format$(FINT(X) - FINT(-PIO2), "##.###000");
        AAA = CHEBEV(A, B, CINT1(), MVAL, X)
        Print Tab(32); Format$(AAA, "##.###000")
    Next I
End Sub
Function FUNC(X)
    FUNC = (X ^ 2) * (X ^ 2 - 2#) * Sin(X)
End Function
Function FINT(X)
    'Integral of FUNC
    AAA = 4# * X * ((X ^ 2) - 7#) * Sin(X)
    FINT = AAA - ((X ^ 4) - 14# * (X ^ 2) + 28#) * Cos(X)
End Function
Sub CHINT(A, B, C(), CINT1(), N)
    CON = 0.25 * (B - A)
    Sum = 0#
    FAC = 1#
    For J = 2 To N - 1
        CINT1(J) = CON * (C(J - 1) - C(J + 1)) / (J - 1)
        Sum = Sum + FAC * CINT1(J)
        FAC = -FAC
    Next J
    CINT1(N) = CON * C(N - 1) / (N - 1)
    Sum = Sum + FAC * CINT1(N)
    CINT1(1) = 2# * Sum
End Sub
   Sub CHEBFT(A, B, C(), N)
      NMAX = 50
      Dim F(50)
      PI = 3.14159265358979
      BMA = 0.5 * (B - A)
      BPA = 0.5 * (B + A)
      For K = 1 To N
          Y = Cos(PI * (K - 0.5) / N)
          F(K) = FUNC(Y * BMA + BPA)
      Next K
      FAC = 2# / N
      For J = 1 To N
          Sum = 0#
          For K = 1 To N
              Sum = Sum + F(K) * Cos((PI * (J - 1)) * ((K - 0.5) / N))
          Next K
          C(J) = FAC * Sum
      Next J
   End Sub
   Function CHEBEV(A, B, C(), M, X)
      If (X - A) * (X - B) > 0# Then Print "X not in range."
      D = 0#
      DD = 0#
      Y = (2# * X - A - B) / (B - A)
      Y2 = 2# * Y
      For J = M To 2 Step -1
          SV = D
          D = Y2 * D - DD + C(J)
          DD = SV
      Next J
      CHEBEV = Y * D - DD + 0.5 * C(1)
   End Function




⌨️ 快捷键说明

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