Function NSZ(Xo, Yo, Z) As Single  'Ham Noi suy 2 bien
Dim i, j As Integer
        cao = Z.Rows.Count 'Xac dinh so hang
        Rong = Z.Columns.Count 'Xac dinh so cot
    Dim A1, A2, B1, B2, Y, X, Tim As Single 'Cac diem chan
    For i = 2 To cao
         If Z(i, 1) <= Xo And Xo <= Z(i + 1, 1) Then
                n = i
                    For j = 2 To Rong
                        If Z(1, j) <= Yo And Yo <= Z(1, j + 1) Then
                            m = j
                            Y = Z(1, m + 1) - Z(1, m)
                            X = Z(n + 1, 1) - Z(n, 1)
                            B1 = Z(n, m + 1)
                            B2 = Z(n + 1, m + 1)
                            A1 = Z(n, m)
                            A2 = Z(n + 1, m)
                            Tim = (A1 * (Z(1, m + 1) - Yo) * (Z(n + 1, 1) - Xo) + A2 * (Xo - Z(n, 1)) * (Z(1, m + 1) - Yo) + B1 * (Yo - Z(1, m)) * (Z(n + 1, 1) - Xo) + B2 * (Xo - Z(n, 1)) * (Yo - Z(1, m))) / (X * Y)
                        End If
                    Next j
    Exit For
        End If
    Next i
        NSZ = Tim
End Function
Function NS(SoX, X, Y) As Double
    Dim i As Integer
    Dim n, cao As Integer
    cao = X.Rows.Count
        For i = 1 To cao
            If X(i) <= SoX And SoX <= X(i + 1) Then
                n = i
                NS = Y(n) + (SoX - X(n)) * (Y(n + 1) - Y(n)) / (X(n + 1) - X(n))
        Exit For
            End If
        Next i
End Function
Function NSP(SoX, X, Y) As Double 'Ham noi suy parabol
Dim a, b, c, Ya, Yb, Yc, t As Double
Dim i, n, cao As Integer
cao = X.Rows.Count
    For i = 1 To cao - 2
        a = X(i)
        b = X(i + 2)
            If a <= SoX And SoX <= b Then
            n = i
            c = X(i + 1)
            Ya = Y(n)
            Yb = Y(n + 2)
            Yc = Y(n + 1)
            t = 2 * (SoX - a) / (b - a)
            NSP = Ya + (Yc - Ya) * t + (Yb - 2 * Yc + Ya) * t * (t - 1) / 2
        Exit For
            End If
    Next i
End Function