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

📄 cubicsplines.vb

📁 这里是用VB写的数学库。以前用C、C++写的比较多。内容有:复数运算、矩阵运算、解方程、积分微分等。非常有用。
💻 VB
字号:
' The Constant and Line classes resides in the 
' Extreme.Mathematics.Curves namespace.
Imports Extreme.Mathematics.Curves

Namespace Extreme.Mathematics.QuickStart.VB
    ' Illustrates the use of the Constant class in the
    ' Extreme.Mathematics.Curve namespace of the Extreme Optimization 
    ' Mathematics Library for .NET.
    Module UsingElementaryFunctions

        Sub Main()
            ' A cubic spline is a piecewise curve that is made up
            ' of pieces of cubic polynomials. Its value as well as its first
            ' derivative are continuous, giving it a smooth appearance.
            ' 
            ' Cubic splines are implemented by the CubicSpline class, 
            ' which inherits from PiecewiseCurve.
            '
            ' For an example of piecewise constant and piecewise 
            ' linear curves, see the PiecewiseCurves QuickStart
            ' Sample.
            '

            ' 
            ' Creating Cubic Splines
            '

            ' In order to define a spline curve completely, two extra
            ' conditions must be imposed.

            ' 'Natural' splines have zero second derivatives. This is
            ' the default.

            ' The data points are specified as double arrays containing
            ' the x and y values:
            Dim xValues As Double() = {1, 2, 3, 4, 5, 6}
            Dim yValues As Double() = {1, 3, 4, 3, 4, 2}
            Dim naturalSpline As CubicSpline = New CubicSpline(xValues, yValues)

            ' 'Clamped' splines have a fixed slope or first derivative at the 
            ' leftmost and rightmost points. The slopes are specified as
            ' two extra parameters in the constructor:
            Dim clampedSpline As CubicSpline = New CubicSpline(xValues, yValues, -1, 1)

            '
            ' Curve Parameters
            '

            ' The shape of any curve is determined by a set of parameters.
            ' These parameters can be retrieved and set through the
            ' Parameters collection. The number of parameters for a curve 
            ' is given by this collection's Count property.
            '
            ' Cubic splines have 2n+2 parameters, where n is the number of
            ' data points. The first n parameters are the x-values. The next
            ' n parameters are the y-values. The last two parameters are
            ' the values of the derivative at the first and last point. For natural
            ' splines, these parameters are unused.

            Console.WriteLine("naturalSpline.Parameters.Count = {0}", _
                naturalSpline.Parameters.Count)
            ' Parameters can easily be retrieved:
            Console.WriteLine("naturalSpline.Parameters(0) = {0}", _
                naturalSpline.Parameters(0))
            ' Parameters can also be set:
            naturalSpline.Parameters(0) = 1

            '
            ' Piecewise curve methods and properties
            '

            ' The NumberOfIntervals property returns the number of subintervals
            ' on which the curve has unique definitions.
            Console.WriteLine("Number of intervals: {0}", _
                naturalSpline.NumberOfIntervals)

            ' The IndexOf method returns the index of the interval
            ' that contains a specific value.
            Console.WriteLine("naturalSpline.IndexOf(1.4) = {0}", naturalSpline.IndexOf(1.4))
            ' The method returns -1 when the value is smaller than the lower bound
            ' of the first interval, and NumberOfIntervals if the value is equal to or larger than
            ' the upper bound of the last interval.

            '
            ' Curve Methods
            '

            ' The ValueAt method returns the y value of the
            ' curve at the specified x value:
            Console.WriteLine("naturalSpline.ValueAt(2.4) = {0}", naturalSpline.ValueAt(2.4))

            ' The SlopeAt method returns the slope of the curve
            ' a the specified x value:
            Console.WriteLine("naturalSpline.SlopeAt(2) = {0}", naturalSpline.SlopeAt(2))
            ' You can verify that the clamped spline has the correct slope at the end points:
            Console.WriteLine("clampedSpline.SlopeAt(1) = {0}", clampedSpline.SlopeAt(1))
            Console.WriteLine("clampedSpline.SlopeAt(6) = {0}", clampedSpline.SlopeAt(6))

            ' Cubic splines do not have a defined derivative. The GetDerivative method
            ' returns a GeneralCurve:
            Dim derivative As Curve = naturalSpline.GetDerivative()
            Console.WriteLine("Type of derivative: {0}", derivative.GetType().ToString())
            Console.WriteLine("derivative(2) = {0}", derivative.ValueAt(2))

            ' You can get a Line that is the tangent to a curve
            ' at a specified x value using the TangentAt method:
            Dim tangent As Line = clampedSpline.TangentAt(2)
            Console.WriteLine("Slope of tangent line at 2 = {0}", tangent.Slope)

            ' The integral of a spline curve can be calculated exactly. This technique is
            ' often used to approximate the integral of a tabulated function:
            Console.WriteLine("Integral of naturalSpline between 1.4 and 4.6 = {0}", _
                naturalSpline.Integral(1.4, 4.6))

            Console.Write("Press Enter key to exit...")
            Console.ReadLine()

        End Sub

    End Module

End Namespace

⌨️ 快捷键说明

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