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

📄 d5r7.frm

📁 常用的数值算法的VB程序
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   4650
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   4650
   ScaleWidth      =   4680
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton Command1 
      Caption         =   "Command1"
      Height          =   375
      Left            =   3240
      TabIndex        =   0
      Top             =   3960
      Width           =   1095
   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 D5R7
    'Driver for routine CHDER
    NVAL = 40
    PIO2 = 1.5707963
    Dim C(40), CDER(40)
    A = -PIO2
    B = PIO2
    Call CHEBFT(A, B, C(), NVAL)
    'Test derivative
    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 CHDER(A, B, C(), CDER(), MVAL)
    Print Tab(5); "    X         Actual       Cheby. Deriv."
    For I = -8 To 8 Step 1
        X = I * PIO2 / 10#
        Print Tab(5); Format$(X, "#0.000000");
        Print Tab(19); Format$(FDER(X), "#0.000000");
        AAA = CHEBEV(A, B, CDER(), MVAL, X)
        Print Tab(34); Format$(AAA, "#0.000000")
    Next I
End Sub
Function FUNC(X)
    FUNC = (X ^ 2) * (X ^ 2 - 2#) * Sin(X)
End Function
Function FDER(X)
    'Derivative of FUNC
    AAA = 4# * X * ((X ^ 2) - 1#) * Sin(X)
    FDER = AAA + (X ^ 2) * (X ^ 2 - 2#) * Cos(X)
End Function
Sub CHDER(A, B, C(), CDER(), N)
    CDER(N) = 0#
    CDER(N - 1) = 2 * (N - 1) * C(N)
    If N >= 3 Then
        For J = N - 2 To 1 Step -1
            CDER(J) = CDER(J + 2) + 2 * J * C(J + 1)
        Next J
    End If
    CON = 2# / (B - A)
    For J = 1 To N
        CDER(J) = CDER(J) * CON
    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
   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




⌨️ 快捷键说明

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