PHP Класс MathPHP\LinearAlgebra\Vector

Наследование: implements Countable, implements ArrayAccess, implements JsonSerializable
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
__construct ( array $A ) Constructor
__toString ( ) : string Print the vector as a string Ex: [1, 2, 3]
add ( Vector $B ) : Vector Add (A + B)
asColumnMatrix ( ) : Matrix Get the vector as an nx1 column matrix
asRowMatrix ( ) : Matrix Get the vector as a 1xn row matrix
count ( ) : integer ************************************************************************ Countable INTERFACE ************************************************************************
crossProduct ( Vector $B ) : Vector Cross product (AxB) https://en.wikipedia.org/wiki/Cross_product
directProduct ( Vector $B ) : Matrix Direct product (dyadic)
dotProduct ( Vector $B ) : number Dot product (inner product) (A⋅B) https://en.wikipedia.org/wiki/Dot_product
get ( integer $i ) : number Get a specific value at position i
getN ( ) : integer Get item count (n)
getVector ( ) : array Get matrix
innerProduct ( Vector $B ) : number Inner product (convience method for dot product) (A⋅B)
jsonSerialize ( ) ************************************************************************ JsonSerializable INTERFACE ************************************************************************
l1Norm ( ) : number l₁-norm (|x|₁) Also known as Taxicab norm or Manhattan norm
l2Norm ( ) : number l²-norm (|x|₂) Also known as Euclidean norm, Euclidean length, L² distance, ℓ² distance Used to normalize a vector.
length ( ) : number Vector length (magnitude) Same as l2-norm
maxNorm ( ) : number Max norm (infinity norm) (|x|∞)
normalize ( ) : Vector Normalize (Â) The normalized vector  is a vector in the same direction of A but with a norm (length) of 1. It is a unit vector.
offsetExists ( $i ) : boolean ************************************************************************ ArrayAccess INTERFACE ************************************************************************
offsetGet ( $i )
offsetSet ( $i, $value )
offsetUnset ( $i )
outerProduct ( Vector $B ) : Matrix Outer product (A⨂B) https://en.wikipedia.org/wiki/Outer_product
pNorm ( $p ) : number p-norm (|x|p) Also known as lp norm
perp ( Vector $B ) : Vector Perpendicular of A on B https://en.wikipedia.org/wiki/Vector_projection#Vector_projection
perpDotProduct ( Vector $B ) : number Perp dot product (A⊥⋅B) A modification of the two-dimensional dot product in which A is replaced by the perpendicular vector rotated 90º degrees.
perpendicular ( ) : Vector Perpendicular (A⊥) A vector perpendicular to A (A-perp) with the length that is rotated 90º counter clockwise.
projection ( Vector $B ) : Vector Projection of A onto B https://en.wikipedia.org/wiki/Vector_projection#Vector_projection
scalarDivide ( number $k ) : Vector Scalar divide kA = [k / a₁, k / a₂, k / a₃ .
scalarMultiply ( number $k ) : Vector Scalar multiplication (scale) kA = [k * a₁, k * a₂, k * a₃ .
subtract ( Vector $B ) : Vector Subtract (A - B)
sum ( ) : number Sum of all elements

Описание методов

__construct() публичный Метод

Constructor
public __construct ( array $A )
$A array 1 x n vector

__toString() публичный Метод

Print the vector as a string Ex: [1, 2, 3]
public __toString ( ) : string
Результат string

add() публичный Метод

A = [a₁, a₂, a₃] B = [b₁, b₂, b₃] A + B = [a₁ + b₁, a₂ + b₂, a₃ + b₃]
public add ( Vector $B ) : Vector
$B Vector
Результат Vector

asColumnMatrix() публичный Метод

Example: V = [1, 2, 3] [1] R = [2] [3]
public asColumnMatrix ( ) : Matrix
Результат Matrix

asRowMatrix() публичный Метод

Example: V = [1, 2, 3] R = [ [1, 2, 3] ]
public asRowMatrix ( ) : Matrix
Результат Matrix

count() публичный Метод

************************************************************************ Countable INTERFACE ************************************************************************
public count ( ) : integer
Результат integer

crossProduct() публичный Метод

| i j k | A x B = | a₀ a₁ a₂ | = |a₁ a₂| - |a₀ a₂| + |a₀ a₁| | b₀ b₁ b₂ | |b₁ b₂|i |b₀ b₂|j |b₀ b₁|k = (a₁b₂ - b₁a₂) - (a₀b₂ - b₀a₂) + (a₀b₁ - b₀a₁)
public crossProduct ( Vector $B ) : Vector
$B Vector
Результат Vector

directProduct() публичный Метод

[A₁] [A₁B₁ A₁B₂ A₁B₃] AB = ABᵀ = [A₂] [B₁ B₂ B₃] = [A₂B₁ A₂B₂ A₂B₃] [A₃] [A₃B₁ A₃B₂ A₃B₃]
public directProduct ( Vector $B ) : Matrix
$B Vector
Результат Matrix

dotProduct() публичный Метод

Dot product (inner product) (A⋅B) https://en.wikipedia.org/wiki/Dot_product
public dotProduct ( Vector $B ) : number
$B Vector
Результат number

get() публичный Метод

Get a specific value at position i
public get ( integer $i ) : number
$i integer index
Результат number

getN() публичный Метод

Get item count (n)
public getN ( ) : integer
Результат integer number of items

getVector() публичный Метод

Get matrix
public getVector ( ) : array
Результат array of arrays

innerProduct() публичный Метод

Inner product (convience method for dot product) (A⋅B)
public innerProduct ( Vector $B ) : number
$B Vector
Результат number

jsonSerialize() публичный Метод

************************************************************************ JsonSerializable INTERFACE ************************************************************************
public jsonSerialize ( )

l1Norm() публичный Метод

https://en.wikipedia.org/wiki/Norm_(mathematics)#Taxicab_norm_or_Manhattan_norm |x|₁ = ∑|xᵢ|
public l1Norm ( ) : number
Результат number

l2Norm() публичный Метод

http://mathworld.wolfram.com/L2-Norm.html https://en.wikipedia.org/wiki/Norm_(mathematics)#Euclidean_norm ______ |x|₂ = √∑|xᵢ|²
public l2Norm ( ) : number
Результат number

length() публичный Метод

Vector length (magnitude) Same as l2-norm
public length ( ) : number
Результат number

maxNorm() публичный Метод

|x|∞ = max |x|
public maxNorm ( ) : number
Результат number

normalize() публичный Метод

http://mathworld.wolfram.com/NormalizedVector.html A Â ≡ --- |A| where |A| is the l²-norm (|A|₂)
public normalize ( ) : Vector
Результат Vector

offsetExists() публичный Метод

************************************************************************ ArrayAccess INTERFACE ************************************************************************
public offsetExists ( $i ) : boolean
Результат boolean

offsetGet() публичный Метод

public offsetGet ( $i )

offsetSet() публичный Метод

public offsetSet ( $i, $value )

offsetUnset() публичный Метод

public offsetUnset ( $i )

outerProduct() публичный Метод

Outer product (A⨂B) https://en.wikipedia.org/wiki/Outer_product
public outerProduct ( Vector $B ) : Matrix
$B Vector
Результат Matrix

pNorm() публичный Метод

https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm |x|p = (∑|xᵢ|ᵖ)¹/ᵖ
public pNorm ( $p ) : number
Результат number

perp() публичный Метод

A⋅B⊥ perpᵇA = ---- B⊥ |B|²
public perp ( Vector $B ) : Vector
$B Vector
Результат Vector

perpDotProduct() публичный Метод

http://mathworld.wolfram.com/PerpDotProduct.html
public perpDotProduct ( Vector $B ) : number
$B Vector
Результат number

perpendicular() публичный Метод

[a] [-b] A = [b] A⊥ = [a]
public perpendicular ( ) : Vector
Результат Vector

projection() публичный Метод

A⋅B projᵇA = --- B |B|²
public projection ( Vector $B ) : Vector
$B Vector
Результат Vector

scalarDivide() публичный Метод

..]
public scalarDivide ( number $k ) : Vector
$k number Scale factor
Результат Vector

scalarMultiply() публичный Метод

..]
public scalarMultiply ( number $k ) : Vector
$k number Scale factor
Результат Vector

subtract() публичный Метод

A = [a₁, a₂, a₃] B = [b₁, b₂, b₃] A - B = [a₁ - b₁, a₂ - b₂, a₃ - b₃]
public subtract ( Vector $B ) : Vector
$B Vector
Результат Vector

sum() публичный Метод

Sum of all elements
public sum ( ) : number
Результат number