?? vectoroperations.vb
字號:
' The Vector class resides in the Extreme.Mathematics.LinearAlgebra namespace.
Imports Extreme.Mathematics.LinearAlgebra
' The delegate classes reside in the Extreme.Mathematics
' namespace.
Imports Extreme.Mathematics
Namespace Extreme.Mathematics.QuickStart.VB
' Illustrates operations on Vector objects from the
' Extreme.Mathematics.LinearAlgebra namespace of the Extreme Optimization
' Mathematics Library for .NET.
Module VectorOperations
Sub Main()
' For details on the basic workings of Vector
' 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)
Dim v3 As Vector = New GeneralVector(3, 2, 1, 0, -1)
' This one will hold results.
Dim v As Vector
'
' Vector Arithmetic
'
' The Vector class defines static methods for
' addition and subtraction:
Console.WriteLine("v1 = {0:F4}", v1)
Console.WriteLine("v2 = {0:F4}", v2)
Console.WriteLine("Basic arithmetic:")
v = Vector.Negate(v1)
Console.WriteLine("-v1 = {0:F4}", v)
v = Vector.Add(v1, v2)
Console.WriteLine("v1 + v2 = {0:F4}", v)
v = Vector.Subtract(v1, v2)
Console.WriteLine("v1 - v2 = {0:F4}", v)
' Vectors can only be multiplied or divided by
' a real number. For dot products, see the
' DotProduct method.
v = Vector.Multiply(5, v1)
Console.WriteLine("5 * v1 = {0:F4}", v)
' You can also apply these methods to Vector objects.
' In this case, they change the first operand.
Console.WriteLine("v3 = {0:F4}", v3)
v3.Add(v1)
' Note that this is different from the += operator!
' The += operator creates a new Vector object,
' whereas the Add method above does not.
Console.WriteLine("v3+v1 -> v3 = {0:F4}", v3)
' This method is overloaded so you can directly
' add a scaled vector:
v3.Add(-2, v1)
Console.WriteLine("v3-2v1 -> v3 = {0:F4}", v3)
Console.WriteLine()
'
' Norms, dot products, etc.
'
Console.WriteLine("Norms, dot products, etc.")
' The dot product is calculated in one of two ways:
' Using the static DotProduct method:
Dim a As Double = Vector.DotProduct(v1, v2)
' Or using the DotProduct method on one of the two
' vectors:
Dim b As Double = v1.DotProduct(v2)
Console.WriteLine("DotProduct(v1, v2) = {0} = {0:F4}", _
a, b)
' The Norm method returns the standard two norm
' of a Vector:
a = v1.Norm()
Console.WriteLine("|v1| = {0}", a)
' .the Norm method is overloaded to allow other norms,
' including the one-norm:
a = v1.Norm(1)
Console.WriteLine("one norm(v1) = {0}", a)
' ...the positive infinity norm, which returns the
' absolute value of the largest component:
a = v1.Norm(Double.PositiveInfinity)
Console.WriteLine("+inf norm(v1) = {0}", a)
' ...the negative infinity norm, which returns the
' absolute value of the smallest component:
a = v1.Norm(Double.NegativeInfinity)
Console.WriteLine("-inf norm(v1) = {0}", a)
' ...and even the zero norm, which simply returns
' the number of components of the vector:
a = v1.Norm(0)
Console.WriteLine("zero-norm(v1) = {0}", a)
' You can get the square of the two norm with the
' NormSquared method.
a = v1.NormSquared()
Console.WriteLine("|v1|^2 = {0}", a)
Console.WriteLine()
'
' Largest and smallest elements
'
' The Vector class defines methods to find the
' largest or smallest element or its index.
Console.WriteLine("v2 = {0:F4}", v2)
' The Max method returns the largest element:
Console.WriteLine("Max(v2) = {0}", v2.Max())
' The AbsoluteMax method returns the element with
' the largest absolute value.
Console.WriteLine("Absolute max(v2) = {0}", _
v2.AbsoluteMax())
' The Min method returns the smallest element:
Console.WriteLine("Min(v2) = {0}", v2.Min())
' The AbsoluteMin method returns the element with
' the smallest absolute value.
Console.WriteLine("Absolute min(v2) = {0}", _
v2.AbsoluteMin())
' Each of these methods has an equivalent method
' that returns the zero-based index of the element
' instead of its value, for example:
Console.WriteLine("Index of Min(v2) = {0}", _
v2.MinIndex())
' Finally, the Apply method lets you apply
' an arbitrary function to each element of the
' vector:
Dim f As RealFunction = _
New RealFunction(AddressOf Math.Exp)
v3.Apply(f)
Console.WriteLine("Exp(v3) = {0:F4}", v3)
' There is also a static method that returns a
' new Vector object:
v = Vector.Apply(f, v3)
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 + -