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

📄 matrixvectoroperations.vb

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

Namespace Extreme.Mathematics.QuickStart.VB
    ' Illustrates operations on GeneralMatrix objects and combined
    ' operations on DoubleVector and GeneralMatrix objects from the
    ' Extreme.Mathematics.LinearAlgebra namespace of the Extreme Optimization
    ' Mathematics Library for .NET.
    Module MatrixVectorOperations

        Sub Main()
            ' For details on the basic workings of Vector 
            ' objects, including constructing, copying and
            ' cloning vectors, see the BasicVectors QuickStart
            ' Sample.
            '
            ' For details on the basic workings of GeneralMatrix
            ' objects, including constructing, copying and
            ' cloning vectors, see the BasicVectors QuickStart
            ' Sample.
            '
            ' Let's create some vectors to work with.
            Dim v1 As Vector = New GeneralVector(1, 2, 3, 4, 5)
            Dim v2 As Vector = New GeneralVector(1, -2, 3, -4, 5)
            Console.WriteLine("v1 = {0:F4}", v1)
            Console.WriteLine("v2 = {0:F4}", v2)
            ' These will hold results.
            Dim v As Vector

            ' Also, here are a couple of matrices.
            ' We start out with a 5x5 identity matrix:
            Dim m1 As GeneralMatrix = GeneralMatrix.GetIdentity(5)
            ' Now we use the GetDiagonal method and combine it
            ' with the SetValue method of the Vector class to
            ' set some of the off-diagonal elements:
            m1.GetDiagonal(1).SetValue(2)
            m1.GetDiagonal(2).SetValue(3)
            m1.GetDiagonal(-1).SetValue(4)
            Console.WriteLine("m1 = {0:F4}", m1)
            ' We define our second matrix by hand:
            Dim m2 As GeneralMatrix = New GeneralMatrix(5, 5, New Double() _
                { _
                1, 2, 3, 4, 5, _
                1, 3, 5, 7, 9, _
                1, 4, 9, 16, 25, _
                1, 8, 27, 64, 125, _
                1, -1, 1, -1, 1 _
                })
            Console.WriteLine("m2 = {0:F4}", m2)
            ' This one holds the results:
            Dim m As GeneralMatrix
            Console.WriteLine()

            '
            ' Matrix arithmetic
            '

            ' The GeneralMatrix class defines Shared methods for
            ' addition, subtraction, and multiplication of
            ' matrices. Overloaded operators are available 
            ' in languages that support them.
            ' Addition:
            Console.WriteLine("Matrix arithmetic:")
            m = Matrix.Add(m1, m2)
            Console.WriteLine("m1 + m2 = {0:F4}", m)
            ' Subtraction:
            m = Matrix.Subtract(m1, m2)
            Console.WriteLine("m1 - m2 = {0:F4}", m)
            ' Multiplication is the true matrix product:
            m = Matrix.Multiply(m1, m2)
            Console.WriteLine("m1 * m2 = {0:F4}", m)
            Console.WriteLine()

            '
            ' Matrix-Vector products
            '

            ' The GeneralMatrix class defines Shared Add, Subtract, and
            ' Multiply methods for vectors and matrices. 
            ' Overloaded operators are available in languages
            ' that support them.
            Console.WriteLine("Matrix-vector products:")
            v = Matrix.Multiply(m1, v1)
            Console.WriteLine("m1 v1 = {0:F4}", v)
            ' You can also multiply a vector by a matrix on the right.
            ' This is equivalent to multiplying on the left by the 
            ' transpose of the matrix:
            v = Matrix.Multiply(v1, m1)
            Console.WriteLine("v1 m1 = {0:F4}", v)

            ' Now for some methods of the DoubleVector class that
            ' involve matrices:
            ' Add a product of a matrix and a vector:
            v.Add(m1, v1)
            Console.WriteLine("v + m1 v1 = {0:F4}", v)
            ' Or add a scaled product. Use a negative factor
            ' to subtract:
            v.Add(-2, m1, v2)
            Console.WriteLine("v - 2 m1 v2 = {0:F4}", v)
            ' You can also use static Subtract methods:
            v.Subtract(m1, v1)
            Console.WriteLine("v - m1 v1 = {0:F4}", v)
            Console.WriteLine()

            '
            ' Matrix norms
            '
            Console.WriteLine("Matrix norms")
            ' Matrix norms are not as easily defined as
            ' vector norms. Three matrix norms are available.
            ' 1. The one-norm through the OneNorm property:
            Dim a As Double = m2.OneNorm()
            Console.WriteLine("OneNorm of m2 = {0}", a)
            ' 2. The infinity norm through the 
            '    InfinityNorm property:
            a = m2.InfinityNorm()
            Console.WriteLine("InfinityNorm of m2 = {0}", a)
            ' 3. The Frobenius norm is often used because it
            '    is easy to calculate.
            a = m2.FrobeniusNorm()
            Console.WriteLine("FrobeniusNorm of m2 = {0}", a)
            Console.WriteLine()

            ' The trace of a matrix is the sum of its diagonal
            ' elements. It is returned by the Trace property:
            a = m2.Trace
            Console.WriteLine("Trace(m2) = {0}", a)

            ' The Transpose method returns the transpose of a 
            ' matrix. This transposed matrix shares element storage
            ' with the original matrix. Use the CloneData method
            ' to give the transpose its own data storage.
            m = m2.Transpose()
            Console.WriteLine("Transpose(m2) = {0:F4}", m)

            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 + -