Julia: рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдорд╛рд░реНрдЪ 2017  ┬╖  141рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: JuliaLang/julia

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, transpose рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ рдФрд░ рдЗрд╕ рджреБрд░реНрднрд╛рдЧреНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ:

julia> A = [randstring(3) for i=1:3, j=1:4]
3├Ч4 Array{String,2}:
 "J00"  "oaT"  "JGS"  "Gjs"
 "Ad9"  "vkM"  "QAF"  "UBF"
 "RSa"  "znD"  "WxF"  "0kV"

julia> A.'
ERROR: MethodError: no method matching transpose(::String)
Closest candidates are:
  transpose(::BitArray{2}) at linalg/bitarray.jl:265
  transpose(::Number) at number.jl:100
  transpose(::RowVector{T,CV} where CV<:(ConjArray{T,1,V} where V<:(AbstractArray{T,1} where T) where T) where T) at linalg/rowvector.jl:80
  ...
Stacktrace:
 [1] transpose_f!(::Base.#transpose, ::Array{String,2}, ::Array{String,2}) at ./linalg/transpose.jl:54
 [2] transpose(::Array{String,2}) at ./linalg/transpose.jl:121

рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╕рдордп рд╕реЗ, рд╣рдо рд▓реЛрдЧреЛрдВ рдХреЛ permutedims(A, (2,1)) рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЧрд╣рд░рд╛рдИ рд╕реЗ, рдпрд╣ рднрдпрд╛рдирдХ рд╣реИред рд╣рдо рдпрд╣рд╛рдВ рдХреИрд╕реЗ рдкрд╣реВрдВрдЪреЗрдВ? рдареАрдХ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ ctranspose рдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ "рдЖрд╕рдиреНрди" рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдПрдХ рдкреНрд░реЗрд░рдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк 2x2 рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ "рддрддреНрд╡" (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕) рдХрд╛ "рд╕рдВрдпреБрдЧреНрдо", рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдиреНрдирд┐рдХрдЯрди рд╣реИ - рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ ctranspose рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рддрд░реНрдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ:

  1. ctranspose рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
  2. ctranspose == conj тИШ transpose == conj тИШ transpose
  3. transpose рдЗрд╕рд▓рд┐рдП рднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:

  • рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ ctranspose == conj тИШ transpose == conj тИШ transpose рдХреЛ рдкрдХрдбрд╝рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд╛рдо рд╕реЗ рдпрд╣ рд▓рдЧрднрдЧ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд▓рдЧрддрд╛ рд╣реИред
  • рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ conj рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдПрд▓рд┐рдореЗрдВрдЯрд╡рд╛рдЗрдЬ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдорддрд▓рд╛рдм рд╕реЗ рдПрдХ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реЛрд▓реНрдбрдУрд╡рд░ рдХреА рддрд░рд╣ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдЙрдЪрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдирд╣реАрдВ рд╣реИ, рдЬрд┐рддрдирд╛ exp рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдПрд▓рд┐рдореЗрдВрдЯрд╡рд╛рдЗрдЬрд╝ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдЯрд┐рдХрд▓реА рдзреНрд╡рдирд┐ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреНрдпрд╛ expm рдПрдХ рдмреЗрд╣рддрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛрдЧреАред
  • рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд╕рдВрдпреБрдЧреНрдо (рдпрд╛рдиреА рдЖрд╕рдиреНрди) рдХреЛ рд▓реЗ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ ctranspose рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; рд╕рдВрдпреБрдЧреНрдорди рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдХрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред

рддрджрдиреБрд╕рд╛рд░, рдореИрдВ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░реВрдВрдЧрд╛:

  1. ctranspose (aka ' ) рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ ctranspose adjoint - рдпрд╣реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╣рдореЗрдВ рдЗрд╕ рдирд┐рд╣рд┐рддрд╛рд░реНрде рд╕реЗ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ conj тИШ transpose рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  2. conj.(A) рдкрдХреНрд╖ рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ conj(A) рдбрд┐рдкреНрд░реЗрдХреНрдЯ рдХрд░реЗрдВред
  3. recur::Bool=true рдХреАрд╡рд░реНрдб рдХреЗ рддрд░реНрдХ рдХреЛ adjoint ( ctranspose ) рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдХрд░рддрд╛ рд╣реИред
  4. recur::Bool=false рдХреАрд╡рд░реНрдб рдХреЗ рддрд░реНрдХ рдХреЛ transpose рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрд╕реЗ рд╕реНрд╡рдпрдВ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдирд╣реАрдВ рд╣реИред

рдмрд╣реБрдд рдХрдо рд╕реЗ рдХрдо, рдпрд╣ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦрдиреЗ рджреЗрдЧрд╛:

julia> A.'
4├Ч3 Array{String,2}:
 "J00"  "Ad9"  "RSa"
 "oaT"  "vkM"  "znD"
 "JGS"  "QAF"  "WxF"
 "Gjs"  "UBF"  "0kV"

рд╣рдо A' рдХреЛ рдЫреЛрдЯрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо conj рдФрд░ adjoint рдХрд╛ рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рдУрдВ (рдпрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЧреИрд░-рд╡рд╛рд╕реНрддрд╡рд┐рдХ, рдЧреИрд░ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ -complex рдорд╛рди)ред

[рдпрд╣ рдореБрджреНрджрд╛ ╧ЙтВБ-part рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рджреВрд╕рд░рд╛ рд╣реИред]

breaking decision linear algebra

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

(рдУрдЯреА: рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "7-рдЯреЗрдирд░реНрд╕ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрддреЗ рд╣реБрдП" рдЖрдЧреЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, "6-рдорд┐рдирд┐рд╕рд░реАрдЬ рдХреА рдмреЗрд╣рдж рд╕рдлрд▓рддрдо рдЕрдЧрд▓реА рдХрд┐рд╢реНрдд ...)

рд╕рднреА 141 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдкрд┐рдЫрд▓реЗ рдЕрдВрдХ рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА ... a

рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рддрддреНрд╡ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдорддрд▓рд╛рдм рд╕реЗ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реЛрд▓реНрдбрдУрд╡рд░ рдХреА рддрд░рд╣ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдЙрдЪрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдирд╣реАрдВ рд╣реИ

рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдЪ рдирд╣реАрдВ рд╣реИ, рдФрд░ exp рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди, рдФрд░ рд╕рдВрдпреБрдЧреНрдорди, рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рдпрд╣ рднреА рджреЗрдЦреЗрдВ https://github.com/JuliaLang/julia/pull/19996#issuecomment -272312876

рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди, рдФрд░ рд╕рдВрдпреБрдЧреНрдорди, рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред

рдЬрдм рддрдХ рдореИрдВ рдЧрд▓рдд рдирд╣реАрдВ рд╣реВрдБ, рдЙрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рд╣реА рдЧрдгрд┐рддреАрдп рд╕рдВрдпреБрдЧреНрдорди рдСрдкрд░реЗрд╢рди ctranspose рдмрдЬрд╛рдп conj (рдЬреЛ рдареАрдХ рдореЗрд░реА рдмрд╛рдд рдереА):

julia> v = rand(3) + rand(3)*im
3-element Array{Complex{Float64},1}:
 0.0647959+0.289528im
  0.420534+0.338313im
  0.690841+0.150667im

julia> v'v
0.879291582684847 + 0.0im

julia> conj(v)*v
ERROR: DimensionMismatch("Cannot multiply two vectors")
Stacktrace:
 [1] *(::Array{Complex{Float64},1}, ::Array{Complex{Float64},1}) at ./linalg/rowvector.jl:180

recur рд▓рд┐рдП рдПрдХ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐, рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рдЬрд╛рдБрдЪ рдХреА рдереА, рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░рджрд░реНрд╢рди рдЬреБрд░реНрдорд╛рдирд╛ рдерд╛, рдЬреЛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдк рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмреЗрд╕ рдХреЗрд╕ рдХреЗ рд╕рд╛рде рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ scalarsред

рд╣рдореЗрдВ рд╡реИрд╕реЗ рднреА 1.0 рдореЗрдВ рдХреАрд╡рд░реНрдб рдкреНрд░рджрд░реНрд╢рди рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@StefanKarpinski , рдЖрдк рдЧрд▓рдд рд╣реИрдВред рдЖрдк рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕рдВрдпреЛрдЬрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ adjoints - adjoints рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдерд╛рди рдЖрджрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рди рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдерд╛рди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдо рд╕рдореАрдк рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИред рдЬреИрд╕реЗ conj complex рдореЗрдВ рдПрдХ рдЬрдЯрд┐рд▓ рд╕реНрддрдВрдн рд╡реЗрдХреНрдЯрд░ рдХрд╛ рд╕рдВрдпреБрдЧреНрдорди рдПрдХ рдФрд░ рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╣рд╛рдпрдХ рдПрдХ рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░ (рдПрдХ "рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░") рд╣реИред

(рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк conj(v)*v рдЧреБрдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!)

рдбрд┐рдкреНрд░реЗрдХреНрдЯреЗрдЯрд┐рдВрдЧ рд╡реЗрдХреНрдЯрд░рдХреГрдд conj рд╢реЗрд╖ рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рдХреНрдпрд╛ рдЖрдк рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

https://en.wikipedia.org/wiki/Complexification#Complex_conjugation

(рдпрд╣ рдЙрдкрдЪрд╛рд░ рдмрд▓реНрдХрд┐ рдФрдкрдЪрд╛рд░рд┐рдХ рд╣реИ; рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк "рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдо рдореИрдЯреНрд░рд┐рдХреНрд╕" рдпрд╛ "рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдореА рд╡реЗрдХреНрдЯрд░" рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд╛рдЦреЛрдВ рдорд┐рд▓реЗрдВрдЧреЗред)

рдпрджрд┐ рд╕рдВрдпреБрдЧреНрдо рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рдорд╛рдирдЪрд┐рддреНрд░рдг (рдХреНрдпрд╛ conj рдЕрдм рдХрд░рддрд╛ рд╣реИ) рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдСрдкрд░реЗрд╢рди рд╣реИ рдЬреЛ рдЗрд╕реЗ рдореИрдк рдХрд░рдиреЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рд╕рдВрдпреБрдЧреНрдо covector (рдХреНрдпрд╛ ' рдХрд░рддрд╛ рд╣реИ), рддреЛ рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ conj рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ conj рдФрд░ adjoint рдмреАрдЪ рдПрдХ рдЕрдВрддрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЪрд╛рд╣рд┐рдП conj(A) рдлреЛрди conj рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдкрд░ рдпрд╛ рдХреЙрд▓ adjoint ? 2x2 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реБрдЭрд╛рд╡ рджреЗрдЧрд╛ рдХрд┐ conj(A) рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ adjoint рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп conj рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ adjoint , conj рдФрд░ conj. рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдкрд░реЗрд╢рди рдХрд░реЗрдЧрд╛:

  1. adjoint : рд╕реНрд╡реИрдк i рдФрд░ j рд╕реВрдЪрдХ рдФрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ adjoint рддрддреНрд╡реЛрдВ рдкрд░ рдореИрдк рдХрд░реЗрдВред
  2. conj : рдорд╛рдирдЪрд┐рддреНрд░ adjoint рддрддреНрд╡реЛрдВ рдкрд░ред
  3. conj. : рддрддреНрд╡реЛрдВ рдкрд░ conj рдирдХреНрд╢рд╛ред

conj(A) рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдкрд░ conj рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк 2x2 рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реИрдХреНрдЯрд░реЛрдВ рдХреЗ рд╕рдВрдпреБрдЧреНрдорди рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рдЖрдЗрдЧреЗрдирд╡реЗрд▓реНрдпреВрдЬ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рд╣реИ : рдИрдЬреЗрдирд╡рд▓ рдФрд░ рдИрдЬреЗрдирд╡реЗрдХреНрдЯрд░ рдЬрдЯрд┐рд▓-рд╕рдВрдпреБрдЧреНрдо рдЬреЛрдбрд╝реЗ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдЕрдм, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ 2d рд╕рд░рдгреА A рдХрд╛ рдЕрд╕рд▓реА 2x2 рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рдЬреЛ рдЕрд╡рд░реБрджреНрдз рд╡реИрдХреНрдЯрд░ v 2-рдШрдЯрдХ рд╡реИрдХреНрдЯрд░ рдХреЗ 1d рд╕рд░рдгрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрд┐рд╕реА рднреА eigenvalue ╬╗ A eigenvector v , рд╣рдо рдПрдХ рджреВрд╕рд░реЗ eigenvalue conj(╬╗) eigenvector conj(v) рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд░ conj рдХреЙрд▓ adjoint рдлрд┐рд░ рд╕реЗ рди рд╣реЛ рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рднреА рд╕рдореАрдкрд╡рд░реНрддреА, рд╕рдВрдпреБрдЧреНрдо-рдкрд╛рд░рдЧрдорди рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЖрд╕рдиреНрди рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреА рдкрд╕рдВрдж рдкрд░ рднреА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рднрд╛рд░рд┐рдд рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдЙрдкрдпреБрдХреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЙрдкрдпреБрдХреНрдд рддрд░реАрдХрд╛ рд╣реЛрддрд╛ рд╣реИ! рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐, Matrix , рд╣рдореЗрдВ рджрд┐рдП рдЧрдП рдорд╛рдирдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рдЕрдиреБрд░реВрдк рд╡рд┐рдЬреНрдЮрд╛рдкрди рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП dot(::Vector,::Vector) ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреБрдЫ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AbstractMatrix (рдпрд╛ рдЕрдиреНрдп рд░реИрдЦрд┐рдХ-рдСрдкрд░реЗрдЯрд░) рдкреНрд░рдХрд╛рд░ adjoint рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред)

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, 3 рдбреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреАрдЬрдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдЙрдЪрд┐рдд adjoint(A) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рднреА рдХреБрдЫ рдХрдард┐рдирд╛рдИ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ 3 рдбреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд░реИрдЦрд┐рдХ рд╕рдВрдЪрд╛рд▓рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд array3d * array2d рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИ) ред рд╢рд╛рдпрдж adjoint рдХреЛ рдХреЗрд╡рд▓ рд╕реНрдХреЗрд▓рд░, 1d рдФрд░ 2d рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдЕрджреНрдпрддрди рдХрд░реЗрдВ: рдУрд╣, рдЕрдЪреНрдЫрд╛: рд╣рдо ctranspose рдбреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП

(рдУрдЯреА: рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "7-рдЯреЗрдирд░реНрд╕ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрддреЗ рд╣реБрдП" рдЖрдЧреЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, "6-рдорд┐рдирд┐рд╕рд░реАрдЬ рдХреА рдмреЗрд╣рдж рд╕рдлрд▓рддрдо рдЕрдЧрд▓реА рдХрд┐рд╢реНрдд ...)

рдпрджрд┐ рдЖрдк 2x2 рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рд╣реИред

рдореИрдВ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ 2x2 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рддрддреНрд╡реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ

m(z::Complex) = [z.re -z.im; z.im z.re]

рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдордирдорд╛рдирд╛ рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ v рдлрд┐рд░ рд╣рдо рдЗрд╕ рдкрд╣рдЪрд╛рди рдХреЛ рд░рдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ:

conj(m.(v)) == m.(conj(v))

рдореИрдВ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдХрд░реВрдБрдЧрд╛ рдФрд░ ' рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░реВрдБрдЧрд╛, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА m рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ https://github.com/JuliaLang/julia/ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ m.(v)' == m.(v') рдкрдХрдбрд╝ рд▓реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдЖрдкрдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ @stevengj , рддреЛ conj(m.(v)) == m.(conj(v)) рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

conj(m(z)) == m(z) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдкрдХрд╛ m(z) рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдЧреБрдгрди рдХреЗ рддрд╣рдд рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд░реВрдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдорд╛рди рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ conj ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ z рдПрдХ рдЬрдЯрд┐рд▓ рд╕реНрдХреЗрд▓рд░ рд╣реИ, рддреЛ eigvals(z) == [z] , рд▓реЗрдХрд┐рди eigvals(m(z)) == [z, conj(z)] ред рдЬрдм m(z) рдЯреНрд░рд┐рдХ рдХреЛ рдЬрдЯрд┐рд▓ рдореИрдЯреНрд░реАрд╕ рддрдХ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреЗ рдЗрд╕ рджреЛрд╣рд░реАрдХрд░рдг рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдкреЗрдкрд░ рджреЗрдЦреЗрдВ)ред

рдЗрд╕реЗ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ z рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ (рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди) рд╣реИ, рд▓реЗрдХрд┐рди 2x2 рдЕрд╕рд▓реА рдореИрдЯреНрд░рд┐рдХреНрд╕ m(z) рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рд╣реИ (рдЖрдк рдЧреБрдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ m(z) рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ) ... рдЖрдк "complexify" рдЕрдЧрд░ m(z) рдПрдХ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ рдЬреИрд╕реЗ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдЧреБрдгрд╛ рдХрд░рдХреЗ m(z) * (2+3im) (рдирд╣реАрдВ m(z) * m(2+3im) ) рддреЛ рдЖрдк рдореВрд▓ рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ z рд▓рд┐рдП рдЕрдм рдПрдХ рдЕрд▓рдЧ рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд╝рд┐рдХ рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реБрдзрд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛: +1: рдореИрдВ рдЧрдгрд┐рддреАрдп рдкрдХреНрд╖ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ:

  • рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд╕рдВрдпреБрдЧреНрдорди рд░рд┐рдВрдЧ рдкрд░ рдПрдХ рдХреНрд░рд┐рдпрд╛ рд╣реИ (рдкрдврд╝реЗрдВ: рд╕рдВрдЦреНрдпрд╛рдПрдВ) рдЬреЛ рд╣рдорд╛рд░реЗ рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ / рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЧреБрдгрд╛рдВрдХ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рдпрд╣ рдХреНрд░рд┐рдпрд╛ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ (рдФрд░ рдЗрд╕рдХреЗ рдореИрдкрд┐рдВрдЧ, рд░реАрдб: рдореИрдЯреНрд░рд┐рд╕реЗрд╕) рдкрд░ рдПрдХ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕реЗ рд░рд┐рдВрдЧ рдХреЗ рдКрдкрд░ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рд░реИрдЦрд┐рдХрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдпреБрдЧреНрдорди рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╕рдВрдпреБрдЧреНрдорди рдЬрд░реВрд░реА рдЧреБрдгрд╛рдВрдХ рдХреЗ рд▓рд┐рдП рддрддреНрд╡рд╡рд╛рдЪрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рджрд┐рд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдХреНрдЯрд░ v , conj(v) = conj.(v) , рдФрд░ рдпрд╣ рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдХреНрдпрд╛ conj рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╛ рдХреЗрд╡рд▓ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рджреЛрдиреЛрдВ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ? (рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕-рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ 2x2-matrices рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдЯреАрд╡рди рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рд╣реИ рдЬрд┐рд╕рдХреЗ рдЧреБрдгрд╛рдВрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ / рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдВрдпреБрдЧреНрдорди рдХрд╛ рдпрд╣рд╛рдВ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИред)
  • adjoint рдХрд╛ рдПрдХ рдмреАрдЬрдЧрдгрд┐рддреАрдп рдЕрд░реНрде рд╣реИ рдЬреЛ рдХрд┐ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЛрдореЗрди рдореЗрдВ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ 1 рдФрд░ 2 рдФрд░ 3 , рд╕рднреА рднреМрддрд┐рдХреА рдореЗрдВ рдмрдбрд╝реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рднреА)ред рдпрджрд┐ adjoint рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП - рдПрдХ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди / рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ, рдпрд╣ рдХреНрд░рд┐рдпрд╛ рдЖрдо рддреМрд░ рдкрд░ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреАрд╡рд░реНрдб рддрд░реНрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬреЛ рднреА рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЗрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ adjoint рдереЛрдбрд╝рд╛ рдЙрдЪреНрдЪ-рдЪрд╛рд░реНрдЬ рд╣реИ?

@felixrehren , рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдк рдЙрд╕ рдЖрдВрддрд░рд┐рдХ рддрд░реНрдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ dot рдХрд╛ рдЕрд░реНрде рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред

рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдереЛрдбрд╝реА рд╕рд░рд▓ рд╣реЛрдЧреА:

  • conj as-is (рдПрд▓рд┐рдореЗрдВрдЯ рд╡рд╛рдЗрдЬ) рд░рдЦреЗрдВред
  • рдмрдирд╛рдУ a' рдХреЗ рдЕрдиреБрд░реВрдк adjoint(a) , рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА (рдФрд░ рдЗрд╕рд▓рд┐рдП рддрд╛рд░ рдЖрджрд┐ рдХреЗ рдПрд░реЗ рдЬрд╣рд╛рдВ рдХреЗ рд▓рд┐рдП рдЕрд╕рдлрд▓ рдмрдирд╛рдиреЗ рдХреЗ adjoint рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИ)ред
  • рдмрдирд╛рдУ a.' рдХреЗ рдЕрдиреБрд░реВрдк transpose(a) , рдФрд░ рдпрд╣ рдХрднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рдмрдирд╛рдирд╛ (рд╕рд┐рд░реНрдл рдПрдХ permutedims ), рдФрд░ рдЗрд╕рд▓рд┐рдП рддрддреНрд╡реЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА adjoint рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ред рдПрдХ рдЦрд┐рдВрдЪрд╛рд╡ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose рд▓рд┐рдП рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ a.' рд╕реЗ transpose(a, recur=true) рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рдпрд╣ рдЙрддрдирд╛ рд╣реА рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЛ transposerecursive(a) рдХреЙрд▓ рдХрд░реЗрдВред рд╣рдо рдмреЗрд╕ рдореЗрдВ transposerecursive рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЗрддрдиреА рджреБрд░реНрд▓рдн рд╣реЛрдЧреА рдХрд┐ рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд░рд▓ рд░рдЦрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ (рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП) рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реЛрдЧрд╛, рдФрд░ рдЕрднреА рднреА рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдореЛрд░реНрдЪреЗ рдкрд░ рдХрд╛рдлреА рд░рдХреНрд╖рд╛рддреНрдордХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рджрд┐рдирдЪрд░реНрдпрд╛ рдХреЗ рдЕрдм рддрдХ (рдЕрдзрд┐рдХрд╛рдВрд╢) рдорд╛рдирдХ рд╕рд░рдгреА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдорд╛рдирдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рджреГрдврд╝рддрд╛ рд╕реЗ рдирд┐рд╣рд┐рдд рд╣реИрдВред рдЕрдкрдиреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдпрд╛ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд▓реЙрдЯ рдореЗрдВ, рдЖрдк рдЕрдкрдиреЗ "рдлрд╝реАрд▓реНрдб" рдХрд╛ рдПрдХ рддрддреНрд╡ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдореИрдВ рдмрд╣рд╕ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЦреЗрддреЛрдВ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░рд╡рд╛рд╣ + , * , рдЖрджрд┐, рдФрд░ conj , рд▓реЗрдХрд┐рди рдирд╣реАрдВ transpose ред рдпрджрд┐ рдЖрдкрдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЬрдЯрд┐рд▓ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЬреЛ рдПрдХ 2x2 рдЕрд╕рд▓реА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рддрд░рд╣ рдПрдХ рд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗ рддрд╣рдд рдмрджрд▓ рдЬрд╛рддрд╛ рдерд╛ conj рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ - рд╣реИ, рддреЛ рдЙрд╕ рдХреЗ рдареАрдХ conj ред рдЕрдЧрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ 2x2 рдЕрд╕рд▓реА AbstractMatrix рдЬреЛ conj рддрд╣рдд рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдпрдХреАрдирди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдРрд╕реЗ рддрддреНрд╡ рдЖрд╕рдиреНрди рдХреЗ рддрд╣рдд рдирд╣реАрдВ рдмрджрд▓рдирд╛ @stevengj рдиреЗ рдХрд╣рд╛ рдХрд┐ рдореИрдВ рдЬрд┐рддрдирд╛ рдмреЗрд╣рддрд░ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ: рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд░реВрдкрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИ)ред

рд╡реИрд╕реЗ рднреА, 2x2 рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг рдореБрдЭреЗ рдПрдХ рд▓рд╛рд▓ рд╣реЗрд░рд┐рдВрдЧ рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдкреБрдирд░рд╛рд╡рд░реНрддреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдг рдмреНрд▓реЙрдХ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдкрд░ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реЙрд░реНрдЯрдХрдЯ рдерд╛ред рд╣рдо рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЛ рдЙрдЪрд┐рдд рджреЗрдЦрднрд╛рд▓ рдХреЗ рд╕рд╛рде рдХреНрдпреЛрдВ рдирд╣реАрдВ рдорд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ?

рддреЛ рдореЗрд░рд╛ "рд╕рд░рд▓реАрдХреГрдд" рд╕реБрдЭрд╛рд╡ рд╣реЛрдЧрд╛:

  • conj рдХреЛ рдЕрдкрдиреЗ рдкрд╛рд╕ рд░рдЦреЗрдВ (рдпрд╛ AbstractArray s рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рджреЗрдЦреЗрдВ)
  • a' рдПрдХ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рджреГрд╢реНрдп рдЬреИрд╕реЗ рдХрд┐ (a')[i,j] == conj(a[j,i])
  • a.' рдПрдХ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рджреГрд╢реНрдп рдЬреИрд╕реЗ рдХрд┐ (a.')[i,j] == a[j,i]
  • рдмреНрд▓реЙрдХ-рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдЗрддрдиреЗ рдкрд░ ( Base , рдпрд╛ рд╕рдВрднрд╡рддрдГ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдкреИрдХреЗрдЬ рдореЗрдВ) рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП BlockArray рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдВред рдпрдХреАрдирди, рдпрд╣ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП Matrix{Matrix} рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рд▓рдЪреАрд▓рд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрддрдирд╛ рд╣реА рдХреБрд╢рд▓ рднреАред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рдирд┐рдпрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЧрд▓реЗ рд▓рдЧрд╛рдиреЗ рдФрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реЛрдВрдЧреЗред

PS - @StefanKarpinski рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдмреВрд▓рд┐рдпрди рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рджреГрд╢реНрдп рдХрд╛ рдкреНрд░рдХрд╛рд░ рдмреВрд▓рд┐рдпрди рдореВрд▓реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдХрд╣реАрдВ рдФрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдЬреЛрдбрд╝реВрдВрдЧрд╛: рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд╛рд░рдЧрдорди рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рдХрд╖реНрдЯрдкреНрд░рдж рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдХрд┐ рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ рдЙрд╕ рд╕рд░рдгреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд▓рдкреЗрдЯ рд░рд╣рд╛ рд╣реИред рдЬреИрд╕реЗ transpose(Vector{Vector}) -> RowVector{RowVector} ред рдореИрдВрдиреЗ рд░рди-рдЯрд╛рдЗрдо рдЬреБрд░реНрдорд╛рдирд╛ рдХреЗ рдмрд┐рдирд╛ RowVector рд▓рд┐рдП рдЗрд╕ рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рд╣реИ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдХреНрд░рдордг рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ (рдЖрдХреНрд░рдордг рдХреЛ рд░реЛрдХрдирд╛) рднрд╛рд╖рд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╣реИред

NB: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ conj рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рд╕реЗ рд▓реМрдЯрд╛рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ - рдЗрд╕рд▓рд┐рдП ConjArray рджреГрд╢реНрдп рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реИрдВ, рдЪрд╛рд╣реЗ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝рд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛ рдпрд╛ рди рд╣реЛред

@stevengj - рдЖрдк "рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕" 2x2 рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЬрдЯрд┐рд▓ рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдХреЗ рдмрдЬрд╛рдп рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╡рд╣ рдмрд┐рдВрджреБ рдореЗрд░реЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд┐рдХрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкреНрд░реЗрд░рдгрд╛ рдХрд╛ рдкреНрд░рд╢реНрди рд╣реИ, рдЬреЛ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рддрд╛ рд╣реИред @andyferris рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреНрд░рд╕реНрддрд╛рд╡ рдФрд░

рдпрджрд┐ adjoint рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ adjoint рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЧрд▓рдд рд╣реИред

рдЬрдм рдЖрдкрдХреЛ рдПрдХ рдкрд▓ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рд╛ рдФрдЪрд┐рддреНрдп рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?

рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдПрдХ рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕реЗ рд╕реНрдХреЗрд▓рд░ рдкрд░ рдореИрдк рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрдЧрд░ a рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ, рддреЛ a'*a рд╕реНрдХреЗрд▓рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдпрд╣ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдкрд░ рдПрдХ рд╕рдорд╛рди рдирд┐рдХрдЯрддрд╛ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрдкрддреНрддрд┐ a'*A*a == (A'*a)'*a ред

рдпрджрд┐ a рд╡реИрдХреНрдЯрд░ рдХрд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ a' == adjoint(a) рдХрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдВред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рднреА рд╣реИрдВ:

julia> norm([[3,4]])
5.0

julia> dot([[3,4]], [[3,4]])
25

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, "рд╕рд╣рд╛рдпрдХ" рдпрд╛ "рджреЛрд╣рд░реА" рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рдкреНрд░рд╢реНрди рддреЛ рд╣реИ, рд╣рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ a' * b == dot(a,b) рд╕рднреА рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП a , b ?

рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реИ рдХрд┐ ' рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рд╣рд╛рдпрдХ рдХреЛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕рд░рдгреА рдСрдкрд░реЗрд╢рди рд╣реИ рдЬреЛ рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ conj рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпрд╛ рдЬрдЯрд┐рд▓ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛрддрд╛ рд╣реИред

рд╡рд╣рд╛рдБ рдПрдХ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ adjoints рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд╛рдо рдФрд░ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рддреАрдХ рд╣реИ, рдФрд░ рдпрд╣ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдз рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ "conjugate transpose" рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдСрдкрд░реЗрд╢рди рд╣реИ рдФрд░ "conjugate matrices рдХрд╛ 90 рдбрд┐рдЧреНрд░реА рддрдХ" рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рдпрд╣ рдбреЙрдЯ рдЙрддреНрдкрд╛рджреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдРрд╕рд╛ рдХреБрдЫ рд╣реЛрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, "рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╕рд░рдгреА рдСрдкрд░реЗрд╢рди рд╣реИ рдЬреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдФрд░ рд╕рдВрдпреБрдЧреНрдореЛрдВ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рддрд╛ рд╣реИ"ред

рдПрдХ transpose рдФрд░ рдПрдХ рдЕрд╕рдВрдмрджреНрдз "рдбреЙрдЯ рдЙрддреНрдкрд╛рдж" рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдорд╛рди рд╕рдВрдмрдВрдз рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рджреЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкреБрд╖реНрдЯ "рдбреЙрдЯ рдЙрддреНрдкрд╛рдж", рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИрдВ, рд▓рдЧрднрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдЧрднрдЧ рдирд╣реАрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ - рд╡реЗ рджреНрд╡рд┐-рдСрд░реНрдереЛрдЧреЛрдирд▓рд┐рдЯреА рд╕рдВрдмрдВрдзреЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдПрдХ рдСрдкрд░реЗрдЯрд░ рдЬрдЯрд┐рд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ- рд╕рдордорд┐рдд (рд╣рд░реНрдорд┐рдЯрд┐рдпрди рдирд╣реАрдВ) рд░реВрдк - рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЬреВрд▓рд┐рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджрд╛рд╡рд▓реА рдирд╣реАрдВ рд╣реИ, рдЬрдмрдХрд┐ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд╕рд╛рде рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд▓рдЧрддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ adjoint рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЫреЛрдбрд╝рдиреЗ рдХреЗ рджреМрд░рд╛рди transpose рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рдордЭрд╛ред рдЗрд╕рд▓рд┐рдП ' adjoint рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ conj тИШ transpose ?

рдЬреЛ рдЪреАрдЬ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдХрд░рддреА рд╣реИ рд╡рд╣ рд╣реИ: рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рдХреНрдпрд╛ рд╣реИ? рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореИрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реВрдБ рдореЗрдВ, рдпрд╣ рдХреЗ рдХрд╣рд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рддрддреНрд╡реЛрдВ scalars рд╣реИрдВред рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдЬрд╣рд╛рдВ рдПрдХ рдЧрдгрд┐рддрдЬреНрдЮ рдереЛрдбрд╝рд╛ рд╕рд╛ рдХрд╛рдЧрдЬ рдкрд░ рдПрдХ рдмреНрд▓реЙрдХ-рд╡реЗрдХреНрдЯрд░ / рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕рдВрд░рдЪрдирд╛ рд▓рд┐рдЦрддрд╛ рд╣реИ, рд╣рдо рдЕрднреА рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝реЗ рд╡реЗрдХреНрдЯрд░ / рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рд╢реЙрд░реНрдЯрд╣реИрдВрдб рд╣реИ рдЬрд╣рд╛рдВ рддрддреНрд╡ рд╕рдВрднрд╡рддрдГ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпрд╛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣реИрдВ (рдпрд╛рдиреА BlockArray )ред рдЖрдкрдХреЛ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕реНрдХреЗрд▓рд░ * рддрд╣рдд рдЧреБрдгрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдФрд░ рд╕реНрдХреЗрд▓рд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЖрдорддреМрд░ рдкрд░ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рджреЛрд╣рд░реА рд╣реЛрддрд╛ рд╣реИред

@ рдХреИрдВрдбреАрдлреЗрд░рд┐рд╕ , рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреЗрд▓рд░реНрд╕ рдПрдХ рд░рд┐рдВрдЧ (рд╕рдВрдЦреНрдпрд╛) рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╡реИрдХреНрдЯрд░ рд╕реЗ рдЧреБрдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ 3 * [[1,2], [3,4]] рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ [3,3] * [[1,2], [3,4]] рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рддреЛ, Array{Array{Number}} , рд╕рд╣реА рд╕реНрдХреЗрд▓рд░ рдкреНрд░рдХрд╛рд░ Number ред

рд╕рд╣рдордд - рд▓реЗрдХрд┐рди рддрддреНрд╡реЛрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ (рд╕рдорд╛рди) рд╕реНрдХреЗрд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирд╣реАрдВ?

рдЙрдкрдЪрд╛рд░, рдореИрдВрдиреЗ рд╡реИрд╕реЗ рднреА рджреЗрдЦрд╛ рд╣реИ, рдПрдХ рдЕрдВрдЧреВрдареА рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЕрдВрдЧреВрдареА + , * , рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдРрд╕рд╛ рдХреЛрдИ рдЙрдкрдЪрд╛рд░ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ adjoint , dot рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рдпрд╛ рдЬреЛ рднреА рд╣реЛред

(рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдЙрд╕ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЧрдгрд┐рддреАрдп рд╡рд╕реНрддреБ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рд╣рдо рдореЙрдбрд▓рд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред

рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ "рдЖрд╢реБрд▓рд┐рдкрд┐" рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдФрд░ "рддрддреНрд╡реЛрдВ" рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдкрд░рд┐рдорд┐рдд рдЖрдХрд╛рд░ рд╡рд╛рд▓реЗ рд╡реИрдХреНрдЯрд░, рдФрд░ рдЕрдирдВрдд рдЖрдпрд╛рдореА рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ "рдореИрдЯреНрд░рд┐рд╕реЗрд╕" рд╣реЛрдирд╛ рдХрд╛рдлреА рдЖрдо рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдХреНрд░реЛрд╕реНрдХреЛрдкрд┐рдХ рдореИрдХреНрд╕рд╡реЗрд▓ рд╕рдореАрдХрд░рдгреЛрдВ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

image

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2-рдШрдЯрдХ рд╡реИрдХреНрдЯрд░ рдкрд░ рдЕрднрд┐рдирдп рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░реЛрдВ (рдЬреИрд╕реЗ рдХрд░реНрд▓) рдХрд╛ 2x2 рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рдЬрд┐рдирдХреЗ "рддрддреНрд╡" 3-рдШрдЯрдХ рд╡реЗрдХреНрдЯрд░ рдлрд╝реАрд▓реНрдб рд╣реИрдВред рдпреЗ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЕрджрд┐рд╢ рдХреНрд╖реЗрддреНрд░ рдкрд░ рд╡реИрдХреНрдЯрд░ рд╣реИрдВред рдХреБрдЫ рдЕрд░реНрдереЛрдВ рдореЗрдВ, рдпрджрд┐ рдЖрдк рдкрд░реНрдпрд╛рдкреНрдд рджреВрд░ рддрдХ рдбреНрд░рд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╡реИрдХреНрдЯрд░ рдХреЗ "рддрддреНрд╡" рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реИрдВ - рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЦреЗрддреЛрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШрдЯрдХ - рд▓реЗрдХрд┐рди рдпрд╣ рдЙрддрдирд╛ рд╣реА рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИред

рдпрд╛ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рд╣рдо рд╣рдореЗрд╢рд╛ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рдЖрдзрд╛рд░ рдореЗрдВ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдЧреБрдгрд╛рдВрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрдЧреВрдареА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреА рд╕рд░рдгреА рдкреНрд░рдХреГрддрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдЖрдзрд╛рд░ рдореБрдХреНрдд рдирд╣реАрдВ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ)?

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рдЕрднреА рднреА рд╣реИ рдХрд┐ adjoints рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рд╣реИ, рдирд╣реАрдВ? рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред

(рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрдзрд╛рд░-рдореБрдХреНрдд рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдпрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рддрддреНрд╡ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ ala SymPy рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдЬреЛ рдПрдХ рдЕрдореВрд░реНрдд рдЧрдгрд┐рддреАрдп рд╡рд╕реНрддреБ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ, рдФрд░ рдирд┐рдХрдЯрддрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрдм рдмрд╣реБрдЧреБрдгрд┐рдд рдХрдВрдкреНрдпреВрдЯрд░реНрд╕ a рдЕрднрд┐рдиреНрди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред)

рдореИрдВ рд╕рд┐рд░реНрдл рдмреЗрд╣рддрд░ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреЛрдИ рдЦрд╛рд╕ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ :)

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ, рдирд┐рдХрдЯрд╡рд░реНрддреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрджрд┐ рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП [E, H] рдХреЛ BlockVector рд░реВрдк рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рддреЛ (рдЕрд╕реАрдо рд░реВрдк рд╕реЗ?) рдХрдИ рддрддреНрд╡ рдЬрдЯрд┐рд▓ рд╣реИрдВ, рдпрд╛ 2-рд╡реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд┐рдирдХреЗ рддрддреНрд╡ рд╕рджрд┐рд╢ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, BlockVector рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдкреНрд░рд╛рдкреНрдп рд╣реЛрдЧрд╛ред

рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕рд▓рд┐рдП, рд╢рд╛рдпрдж рдореИрдВ рдЗрд╕ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

рдПрдХ рд╡реЗрдХреНрдЯрд░ v , рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ length(v) рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдЖрдпрд╛рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдпрд╛рдиреА рд╕реНрдХреЗрд▓рд░ рдЧреБрдгрд╛рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ (рдкреВрд░реА рддрд░рд╣ рд╕реЗ) рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдПрдХ рддрддреНрд╡ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рднреА рдХрд┐ v[i] i th рд╕реНрдХреЗрд▓рд░ рдЧреБрдгрд╛рдВрдХ рджреЗрддрд╛ рд╣реИред рдЖрдЬ рддрдХ, рдореИрдВрдиреЗ "рдЕрдореВрд░реНрдд рд╡реЗрдХреНрдЯрд░" рдХреЗ рд░реВрдк рдореЗрдВ AbstractVector рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рдХреБрдЫ рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдПрдХ рддрддреНрд╡ рдХреЗ рдЧреБрдгрд╛рдВрдХ рд░рдЦрддреА рд╣реИ рдЬрд┐рд╕реЗ рдХреБрдЫ рдЖрдзрд╛рд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдкрддрд╛ рд╣реИред

рдпрд╣ рдПрдХ рд╕рд░рд▓ рдФрд░ рдЙрдкрдпреЛрдЧреА рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ / рдЕрд╡реНрдпрд╡рд╣рд╛рд░рд┐рдХ рд╣реИред

(EDIT: рдпрд╣ рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Vector{T} , T рдХреЛ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред)

рд▓реЗрдХрд┐рди рдореИрдВ [3,3] * [[1,2], [3,4]] рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ ... рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ [3,3] рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рдирд╣реАрдВ рд╣реИред (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА [3,3]' * [[1,2], [3,4]] рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ - рдЬреЛ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ)ред

рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХреЛрдиреЗ-рдорд╛рдорд▓реЗ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ: рд╣рдо рдпрд╣ рдХрд╣рддреЗ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ v1' * v2 рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реИ (рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ "рд╕реНрдХреЗрд▓рд░" рд▓реМрдЯрд╛рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди [3,3]' * [[1,2], [3,4]] == [12, 18] ред рдПрдХ рдЖрдХрд╕реНрдорд┐рдХ рдЙрджрд╛рд╣рд░рдг, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред

рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ [3,3] рдПрдХ рдЕрджрд┐рд╢ рд╣реИ: scalars рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░рд┐рдВрдЧ рдореЗрдВ рддрддреНрд╡ рд╣реИрдВ, рдФрд░ рд╡рд╣рд╛рдБ рдкреНрд░рдкрддреНрд░ рдХреЗ рддрддреНрд╡реЛрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рддрд░реАрдХреЗ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ [a,b] рдПрдХ рд░рд┐рдВрдЧ рдореЗрдВ (рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡реИрдХреНрдЯрд░ / рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЗрд╕рдХреЗ рдКрдкрд░)ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рд╡реИрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдпрд╛ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрдЧреВрдареА рдЦреБрдж рдПрдХ рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░рд┐рдВрдЧ рдХреЗ рдКрдкрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рдмрдирд╛рддреА рд╣реИ, рд╡рд╣ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИред (рдЖрдк рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рдВрдХреЗрддрди рдХреЛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡реИрдХреНрдЯрд░ рдХреЛ рдЫрд┐рдкрд╛ рд╕рдХрддрд╛ рд╣реИ! рдпрд╛ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред) рдЬреИрд╕рд╛ рдХрд┐ @ рдХреИрдВрдбреАрдлреЗрд░рд┐рд╕ рд╣реЛ рд░рд╣рд╛ рдерд╛, рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреНрдпрд╛ рд╣реИ рд╕рдВрджрд░реНрдн рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдирд┐рдХрдЯрд╡рд░реНрддреА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╕реНрдХреЗрд▓рд░ рддрддреНрд╡реЛрдВ рдХрд╛ рд╕рдВрдпреБрдЧреНрдорди рдХрд╛рд░реНрдп рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдХрд░рддрд╛ рд╣реИ - рдФрд░ рдЕрдХреНрд╕рд░, рдЕрдЧрд░ рдПрдХ рд╕реНрдХреЗрд▓рд░ s рдХреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ s рд╕рдВрдпреБрдЧреНрдорди рдХрд░рдирд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдо рдирд┐рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ред рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рджрд┐рдП рдЧрдП рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд░рд┐рдВрдЧрд░ рдСрдл рд░рд┐рдВрдЧрд░ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдХрдЯрд╡рд░реНрддреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рдареАрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдордЭреМрддрд╛, рдордЯрд▓рдм-рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП, рдЗрд╕реЗ рд╕реБрдкрд░ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрдиреЗ рдХрд╛ рдорддрд▓рдм рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд┐рдХрдЯрддрд╛ рдФрд░ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╕реНрдХреЗрд▓рд░реНрд╕ + рдбрд┐рд╕реНрдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░рд┐рдВрдЧ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╣реЛрдиреЗ рдкрд░ conj рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рджреВ рдХрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ [3,3] рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ: рдЕрджрд┐рд╢ рд╡рд▓рдп рдореЗрдВ рдЕрджрд┐рд╢ рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ

рдРрд╕реЗ рд╕реНрдХреЗрд▓рд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ + , * рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░рд┐рдВрдЧ рдХрд╛ рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИред рдпрд╣ * рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдореИрдВ [3,3] * [3,3] рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдХрдЯрд╡рд░реНрддреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рдареАрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдордЭреМрддрд╛, рдордЯрд▓рдм-рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП, рдЗрд╕реЗ рд╕реБрдкрд░ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрдиреЗ рдХрд╛ рдорддрд▓рдм рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд┐рдХрдЯрддрд╛ рдФрд░ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╕реНрдХреЗрд▓рд░реНрд╕ + рдбрд┐рд╕реНрдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░рд┐рдВрдЧ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╣реЛрдиреЗ рдкрд░ conj рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рджреВ рдХрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдЕрдЧрд░ рд╣рдо рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╛рд╡реЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реИ рдФрд░ рдпрд╣ рд╣рдордиреЗ рдЕрдм рддрдХ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реНрдХреЗрд▓рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрдкрдЯреЗ рд╕рд░рдгреА рдХреЗ рд╣реИрдВ рдФрд░ рдпрд╣реА рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ BlockVector рдФрд░ BlockMatrix (рдФрд░ BlockDiagonal , рдЖрджрд┐) рдмрдирд╛рдиреЗ рдХреА рддрдХрдиреАрдХ рд╣реИ, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рд░рдгреА рдХрд╛ рдПрдХ рдХреБрд╢рд▓, рдЪрдкрдЯрд╛ рджреГрд╢реНрдп рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП "рд╕реБрдкрд░ рдЧрдВрднреАрд░" "рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдХрдо рд╕реЗ рдХрдо, рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдпрд╣ рднреА рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдкреБрдирд░рд╛рд╡рд░реНрддреА рджреГрд╖реНрдЯрд┐рдХреЛрдг (рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрдг рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП BlockMatrix([A B; C D]) рдХреЗ рдмрджрд▓реЗ рдореЗрдВ рдЬреЛ рдПрдХ рдЕрдЪреНрдЫреЗ рд╢рдмреНрджрд╛рд░реНрде рдФрд░ рд╕рдВрднрд╡рддрдГ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдХреЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпреЗ рд╣реИрдВ рдЕрдВрдХ рдмрд╣рд╕ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рд╣реИрдВ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рднреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрд╛рдо рд╣реЛрдЧрд╛ред

@ рдХреИрдВрдбреАрдлрд╝рд╛рдпрд░ рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рд╡реЗ рдПрдХ рдЕрдВрдЧреВрдареА рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ * рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░ рд╣реИрдВ рдХрд┐ * рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд░рд┐рдВрдЧ рд╕рдВрд░рдЪрдирд╛ рджреЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░ рд╣реИрдВ: рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЗрд╕рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рддрд░реАрдХрд╛ рд╣реИред

(рд╕реНрдХреЗрд▓рд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рд╕реНрдХреЗрд▓рд░реНрд╕ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрдкрдЯреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИрдВ! рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИред 1-рдЖрдпрд╛рдореА рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ 1-рдЖрдпрд╛рдореА рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ 2-рдЖрдпрд╛рдореА; рди рд╣реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡; рд╡рд┐рд╢реЗрд╖ред рдЪрддреБрд░реНрднреБрдЬ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ 2-рдЖрдпрд╛рдореА рд╣реЛрддреЗ рд╣реИрдВред рдСрдХреНрдЯреЛрдирд┐рдпрди 2-рдЖрдпрд╛рдореА рд╣реЛрддреЗ рд╣реИрдВ рдХреНрд╡реИрд░реНрдЯрдирд┐рдпрди, 4-рдЖрдпрд╛рдореА рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░, рдФрд░ 8-рдЖрдпрд╛рдореА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдУрдВ рдкрд░ред рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬрд╝реЛрд░ рджреЗрдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рдСрдХреНрдЯреЛрдирд┐рдпрди "8-рдЖрдпрд╛рдореА" рд╣реИрдВред рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрдирдХреЗ рд╕реНрдХреЗрд▓рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ; рд╡реЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╛рди рд╣реИред рдФрд░ рдЖрдкрдХреЛ рдорд┐рд▓рддрд╛ рд╣реИред рдРрд╕реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдмрд╣реБрдд рд▓рдВрдмреА рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ [рдЫрдВрдЯрдиреА рд╡рд╛рд▓реА] рдмрд╣реБрдкрдж рдХреЗ рдЫрд▓реНрд▓реЗ, рдпрд╛ рд╕рдВрдЦреНрдпрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдмреАрдЬреАрдп рд╡рд┐рд╕реНрддрд╛рд░, рдЬрд┐рдирдореЗрдВ рд╕реЗ рджреЛрдиреЛрдВ рдореЗрдВ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдЬреАрд╡рдВрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВред рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рдЦрд░рдЧреЛрд╢ рдХреЗ рдЫреЗрдж рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ - рд╣рдоред рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рд╢рд╛рдпрдж рдПрдХ рдкреНрд░рд╡рдЪрди рд╡рд┐рд╖рдп? :))

@felixrehren , рдПрдХ рд░рд┐рдВрдЧ R рдХреЗ рдКрдкрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЛ рдПрдХ рдбрд╛рдпрд░реЗрдХреНрдЯ-рд╕рдо рд╕реНрдкреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ R рдХреЗ рдКрдкрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рднреА рд╣реИред рд╡реИрдХреНрдЯрд░ рдХреЛ рдЦреБрдж рдХреЛ "рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░рд┐рдВрдЧ" рдХрд╣рдирд╛ рдирд┐рд░рд░реНрдердХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рд╡реЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЕрдВрдЧреВрдареАред рдпрд╣ рддрд░реНрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ [[1,2], [3,4]] рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рд╕рдВрдпреБрдЧреНрдорди рдФрд░ рд╡рд┐рд╢реЗрд╖рдг рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рд╣реИрдВ; рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдХрд┐ "рд╕реНрдХреЗрд▓рд░ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рдВрдпреБрдЧреНрдорди" рдХреЛ рдпрд╣рд╛рдБ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рд▓рдЧрддрд╛ рд╣реИ - "рдЧрдВрднреАрд░" рдХреЗ рд╡рд┐рдкрд░реАрдд - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреАрдЪреЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдорд╛рдорд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред

рджреЛ рддрддреНрд╡реЛрдВ рдХреЗ "2-рдШрдЯрдХ рдХреЙрд▓рдо рд╡реИрдХреНрдЯрд░" (| u |; | v of) рдХреЗ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдХреБрдЫ рд░рд┐рдВрдЧ рдореЗрдВ рдХреБрдЫ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдкреЗрд╕ H рдореЗрдВ uтЯй рдФрд░ | vbert (рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЛ, рдХрд╣реЗрдВ), Dirac рд╕рдВрдХреЗрддрди рдореЗрдВ: "рд╡реИрдХреНрдЯрд░ рдХреЗ рд╡реИрдХреНрдЯрд░ред" рдпрд╣ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж | (| u direct; | vтЯй), - (| w,,ред ZтЯй)тЯй = тЯиu | wтЯй + тЯиv | zтЯй рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рдпреЛрдЧ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдкреЗрд╕ HтКХH рд╣реИред (| тЯиV | тЯиu) adjoint рдЗрд╕рд▓рд┐рдП рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░ "рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░" рд╕реЗ рдорд┐рд▓рдХрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХрд╛ рддрддреНрд╡ рдЦреБрдж рдХреЛ рдСрдкрд░реЗрдЯрд░реЛрдВ рд░реИрдЦрд┐рдХ рд╣реИрдВ: adjoint рд╣реИ"рдкреБрдирд░рд╛рд╡рд░реНрддреА" ред рдпрд╣ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдо рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдЬреЛ рдПрдХ рд╣реА рд╣рд┐рд▓реНрдмрд░реНрдЯ рдЕрдВрддрд░рд┐рдХреНрд╖ H differentH рдХреЗ рдПрдХ рддрддреНрд╡ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдВрдбрд░рд▓рд┐рдВрдЧ рд░рд┐рдВрдЧ рдХреЗ рд╕рдВрдпреБрдЧреНрдорди рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдЖрдк рдЪрддреБрд░реНрднреБрдЬ, рд╡рдЧреИрд░рд╣ рдкрд░ рд╡реИрдХреНрдЯрд░ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрдХрд░ рдорд╛рдорд▓реЗ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рд╡реЗрдХреНрдЯрд░ рдХреЗ "рддрддреНрд╡" рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд "рдЬрдЯрд┐рд▓" рд░рд┐рдВрдЧ рдХреЗ рддрддреНрд╡ рднреА рд╣реИрдВ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрди рддрддреНрд╡реЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди рдФрд░ рд╕рдВрдпреБрдЧреНрдо рдПрдХ рд╣реА рдмрд╛рдд рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рднреА рдкреНрд░рддреНрдпрдХреНрд╖-рдЙрддреНрдкрд╛рдж рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИред

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ, рд╡рд╕реНрддреБ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реВрдЪрдирд╛ рдХреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдЕрджрд┐рд╢ рд╡рд▓рдп (рдЗрд╕рд▓рд┐рдП рд╕рдВрдпреБрдЧреНрдо, рдЬреЛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдХрд╛ рдПрдХ рддрддреНрд╡ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ)ред
  • рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж (рдЗрд╕рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ, рдЬреЛ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди рдХрд╛ рдПрдХ рддрддреНрд╡ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ)ред

Vector{T<:Number} , рд╣рдореЗрдВ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕реНрдХреЗрд▓рд░ рдХреА рдЕрдВрдЧреВрдареА T (рдпрд╛ complex(T) рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП) рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╕рд╛рдорд╛рдиреНрдп рдпреВрдХреНрд▓реЛрдирд┐рдпрди рдПрдХ рд╣реИ ред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╡реЗрдХреНрдЯрд░ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖-рдпреЛрдЧ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдкреЗрд╕ рд╣реИ рдФрд░ рд░рд┐рдВрдЧ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕реНрдХреЗрд▓рд░ рд░рд┐рдВрдЧ рдХрд╛ рдкреНрд░рдЪрд╛рд░ рд╣реИ, рдФрд░ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рддрддреНрд╡реЛрдВ рдХреЗ рдбреЙрдЯ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдпреЛрдЧ рд╣реИред (рдпрджрд┐ рд╕реНрдХреИрд▓рд░реНрд╕ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдбреЙрдЯ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЕрднрд┐рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд╡реЗрдХреНрдЯрд░ / рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдкреЗрд╕ рдирд╣реАрдВ рд╣реИред)

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдХреЗрд▓рд░ T<:Number , рддреЛ conj(x::T) == adjoint(x::T) ред

рддреЛ, рдпрджрд┐ рдЖрдк 2x2 рдореИрдЯреНрд░рд┐рд╕реЗрд╕ m(z)::Array{T,2} рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ z::Complex{T} рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рдкреНрд░рдХрд╛рд░ z рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджреЛрдиреЛрдВ рднрд┐рдиреНрди T рдФрд░ рдПрдХ рдЕрд▓рдЧ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред z , рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рдордХрдХреНрд╖ рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП conj рдпрд╛ adjoint рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЖрдкрдХреЛ @felixrehren рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕реЗ рджреЗрдЦ рдХрд░ рдпрджрд┐ рд╕реНрдХреЗрд▓рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ, рддреЛ рдПрдХ рдСрдХреНрдЯреЗрд░рд┐рдпрди рдХреЛ 8 рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╕реНрдХреЗрд▓рд░ рдЧреБрдгрд╛рдВрдХ рдПрдХ рдСрдХреНрдЯреЗрд░рд┐рдпрди рдерд╛, рддреЛ рддреБрдЪреНрдЫ рдЖрдпрд╛рдо -1 рдЖрдзрд╛рд░ рд╣реИ рдЬреЛ рд╕рднреА рдСрдХреНрдЯреЗрд░рд┐рдпрди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВрдиреЗ рдЬреЛ рдХрд╣рд╛ рд╣реИ, рд╡рд╣ рдЕрд▓рдЧ рд╣реИ (рдпрд╛ рдореЗрд░рд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ: рдореБрд╕реНрдХрд╛рди :), рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ AbstractVector{T1} рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдЖрдпрд╛рдореАрддрд╛ рдХреЗ AbstractVector{T2} рдХреЗ рд▓рд┐рдП рдЖрдЗрд╕реЛрдореЛрд░реНрдлрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ( length )ред рд▓реЗрдХрд┐рди T1 рдФрд░ T2 рджреЛрдиреЛрдВ рдХреЛ рдЬреВрд▓рд┐рдпрд╛ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рддрд╣рдд + рдФрд░ * (рдФрд░ рд╕рдорд░реВрдкрддрд╛ + рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ] рд▓реЗрдХрд┐рди * , рдпрд╛ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдпрд╛ рдирд┐рдХрдЯрддрд╛ рдирд╣реАрдВ)ред

@stevengj рдореИрдВ рд╣рдореЗрд╢рд╛ рдмрд┐рд▓реНрдХреБрд▓ рдореЗрд░реА рддрд░рд╣ рдкреНрд░рддреНрдпрдХреНрд╖ рдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рдЧрдпрд╛ рд╣реИ BlockVector ред рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ (рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд) рдЕрдзреВрд░реЗ рдЖрдзрд╛рд░ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЖрдзрд╛рд░ рдкрд░ рдЖрдк рдкрд╣рд▓реЗ cтВБтЯй | XтВВ + cтВВтЯй | XтВВтЯй рдЬреИрд╕реЗ рд╕реБрдкрд░рдкреЛрдЬрд╝рд┐рд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рджреВрд╕рд░реЗ рдореЗрдВ cтВБтЯй | YтВГ + cтВД | YтВВтЯй рджреВрд╕рд░реЗ рдореЗрдВред "рдкреНрд░рддреНрдпрдХреНрд╖ рдпреЛрдЧ" рдЙрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕реНрдерд╛рди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рджреЗрдЦрдиреЗ рдореЗрдВ (cтВБтЯй | XтВВ + cтВВтЯй | XтВВтЯй) + (cтВБтЯй | YтВГ + cтВД | YтВВтЯй) рдХреА рддрд░рд╣ рд▓рдЧрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡рд┐рд╢реЗрд╖ рдЪреАрдЬ рдЬреЛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ рдЖрдпрд╛рдо рдЪрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рдЕрд▓рдЧ рдХрд░рддреА рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ cтВБтЯй | XтВВ + cтВБтЯй | XтВВтЯй + cтВГ | YтВБтЯй + cтВД | YтВВтЯй) рдХреЛрд╖реНрдардХ рд╣реИ - рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд▓рдЧрддрд╛ рд╣реИ; рд╕реАрдзрд╛ рдпреЛрдЧ рдХрд╛рдЧрдЬ рдкрд░ рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИ (рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреИрдЯрд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рдорд░реВрдкрддрд╛ рдХрд╛ рд▓рд╛рдн рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рд╢рд╛рдпрдж рдЗрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рдЖрджрд┐ред )ред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ X spaceY рдЕрднреА рднреА рдПрдХ рдЪрд╛рд░-рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдВ рд╕реНрдХреЗрд▓рд░ рдЬрдЯрд┐рд▓ рд╣реИрдВред

рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореБрдЭреЗ eltype(v) == Complex{...} рдФрд░ length(v) == 4 рдмрдЬрд╛рдп eltype(v) == Vector{Complex{...}} рдФрд░ length(v) == 2 ред рдпрд╣ рдореБрдЭреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░рд┐рдВрдЧ рдФрд░ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЗрдЦрдиреЗ рдФрд░ рдЙрд╕рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рднреА "рдЪрдкрдЯрд╛" рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк "рд╡реИрд╢реНрд╡рд┐рдХ" рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝рд┐рд╢рди рдФрд░ рддрддреНрд╡рд╡рд╛рдЪрдХ conj рд╣реИрдВ рддрд╛рдХрд┐ рдЖрд╕рдиреНрди рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХреЗ?

(рдЖрдк рджреЛ рдкреЛрд╕реНрдЯреЛрдВ рдореЗрдВ рдорд┐рд▓реЗ рдЬрдм рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рд▓рд┐рдЦ рд░рд╣рд╛ рдерд╛, @stevengj : smile :)

рдмреЗрд╢рдХ, рдЕрдЧрд░ рд╣рдо рд╕реАрдзреЗ рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рдореНрдореЗрд▓рди рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЕрднреА рдХрд░рддреЗ рд╣реИрдВ) BlockArray рдмрдЬрд╛рдп, рдпрд╣ рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕реБрд╕рдВрдЧрдд рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ! рд╣рдо рдЕрджрд┐рд╢ рдХреНрд╖реЗрддреНрд░ (рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд▓реНрдк) рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рдкреНрд░рднрд╛рд╡реА рдЪрдкрдЯрд╛ рдЖрдпрд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЖрдХрд╛рд░) рдЬреЛ рдХрд┐ рд╣рдо рдЬреЛ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд░реНрдХ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реИред

рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рд╕реЗ рдЦреБрд╢ рд╣реВрдВ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕ рдЪрд░реНрдЪрд╛ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рджред

@ рдХреИрдВрдбреАрдлреЗрд░рд┐рд╕ , рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рджреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИрдВ

рдлрд┐рд░, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдмрд╛рдд рдХреНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ eltype(::Vector{Vector{Complex}}) Complex рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдХрд┐ length рдХреЛ рд▓рдВрдмрд╛рдИ рдХрд╛ рдпреЛрдЧ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдЕрдкрдиреЗ "рдЪрдкрдЯрд╛" рд╕рдорд░реВрдкрддрд╛ рдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖-рдпреЛрдЧ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдирд┐рдХрдЯрд╡рд░реНрддреА рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдФрд░ рдпрджрд┐ рдЖрдк "рдХреЗрд╡рд▓ рдмреЗрд╣рддрд░ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмрд┐рдВрджреБ рдирд╣реАрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ", рддреЛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдордВрдЪ рдкрд░ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддреНрдпрдХреНрд╖-рдпреЛрдЧ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдЕрд░реНрде рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдзреНрдпрд╛рддреНрдорд┐рдХ рддрд░реНрдХ рдХреЗ рдмрд┐рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рднреНрд░рдорд┐рдд рд╣реИред

рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рджреЛ рд╕реНрдерд╛рди рд╣реИрдВ рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ "рд╕рдорд╛рди" рд╕реНрдерд╛рди рд╣реИрдВ

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рдерд╛ рдХрд┐, рдмрд┐рд▓реНрдХреБрд▓ред

рдлрд┐рд░, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдмрд╛рдд рдХреНрдпрд╛ рд╣реИ

рдореИрдВ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдЖрдк AbstractArray рд╕рд╛рде рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ eltype рдмреЗрд╣рддрд░ рдПрдХ рд░рд┐рдВрдЧ рд╣реЛ ( + , * рдФрд░ conj ) рдЬреЛ рдмрд╛рд╣рд░ рдирд┐рдпрдо рд░рдЦрддрд╛ рд╣реИ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Vector рдХреНрдпреЛрдВрдХрд┐ [1,2] * [3,4] рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ length рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░реЗрдВрдЧреЗред рд╣рд╛рдВ, рдпрд╣ рдЕрд╕реАрдо рд░реВрдк рд╕реЗ рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдо рддреМрд░ рдкрд░ рдЬреВрд▓рд┐рдпрд╛ AbstractVector рдЕрд╕реАрдо рдЖрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЬреВрд▓рд┐рдпрд╛ рдкрд░ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд░реНрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рд╕рд░рдгреА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп BlockArray рдпрд╛ рд╕рдорд╛рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рд░рд╛рд╢рд┐ рдХреЛ рдирд┐рд░реВрдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рдХрд╛рдлреА рдмреНрд░реЗрдХрд┐рдВрдЧ рд╕реБрдЭрд╛рд╡ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдбрд╛рдЙрдирд╕рд╛рдЗрдбреНрд╕ рд╣реИрдВ (рдХреБрдЫ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдореИрдВ рджреБрдЦреА рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реВрдВ рдЕрдЧрд░ рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ "рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд╣реАрдВ рд╣реИ"ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдпрд╣ рднреА рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдиреЗрд╕реНрдЯреЗрдб рд╕рд░рдгреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдмрд╛рддреЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЕрдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рддрд╛ рд╣реИред

рдпрд╣ рд╕рдм рд╕реАрдзреЗ рдУрдкреА рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдЪрдкрдЯрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рд╣рдо рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд╛рд░рдЧрдорди / adjoints рдХреЛ рдЦреЛрджреЗрдВрдЧреЗ, рдФрд░ рдпрджрд┐ рд╣рдордиреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд╛рд░рдЧрдорди / adjoints рдХреЛ рдЦреЛрджрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдЪрдкрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдпрджрд┐ рд╣рдо рдПрдХ рдЪрдкрдЯрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЖрд╕рдиреНрди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП ред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдирд┐рд░реНрдгрдп рд▓рдЧ рд░рд╣рд╛ рдерд╛ред

рдХреНрдпрд╛ рдЖрдк рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ eltype(::Vector{Vector{Complex}}) Complex рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдХрд┐ length рдХреЛ рд▓рдВрдмрд╛рдИ рдХрд╛ рдпреЛрдЧ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдирд╣реАрдВ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╢рд╛рдпрдж рдореИрдВрдиреЗ рдЬреЛ рд▓рд┐рдЦрд╛ рдерд╛ рд╡рд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ - рдореИрдВ рдХреЗрд╡рд▓ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рджреЛ рдирдП рд╕реБрд╡рд┐рдзрд╛ рдХрд╛рд░реНрдп рдХреБрдЫ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдХрд╛рдо рдЖ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрднреА-рдХрднреА рдЖрдк рдЙрд╕ рд░рд┐рдВрдЧ рдХреЗ zero рдпрд╛ one рдЪрд╛рд╣реЗрдВ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдЖрдкрдХреЗ "рдЪрдкрдЯрд╛" рд╕рдорд░реВрдкрддрд╛ рдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖-рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рд╛рдБред рдореИрдВ 100% рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдлрд╛рдпрджреЗ (рдФрд░ рдХреБрдЫ рдиреБрдХрд╕рд╛рди) рд╣реИрдВред

рдпрд╣рд╛рдБ рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд▓реМрдЯрддреЗ рд╣реБрдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ @stevengj рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдпрд╣рд╛рдБ рдЬрд╛рдиреЗ рдХрд╛ рдорд╛рд░реНрдЧ рд╣реИ, рдЕрд░реНрдерд╛рдд:

  • conj as-is (рдПрд▓рд┐рдореЗрдВрдЯ рд╡рд╛рдЗрдЬ) рд░рдЦреЗрдВред
  • рдмрдирд╛рдУ a' рдХреЗ рдЕрдиреБрд░реВрдк adjoint(a) , рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА (рдФрд░ рдЗрд╕рд▓рд┐рдП рддрд╛рд░ рдЖрджрд┐ рдХреЗ рдПрд░реЗ рдЬрд╣рд╛рдВ adjoint рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИ рдХреЗ рд▓рд┐рдП рдЕрд╕рдлрд▓) рдмрдирд╛рддреЗ рд╣реИрдВред
  • рдмрдирд╛рдУ a.' рдХреЗ рдЕрдиреБрд░реВрдк transpose(a) , рдФрд░ рдпрд╣ рдХрднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рдмрдирд╛рдирд╛ (рд╕рд┐рд░реНрдл рдПрдХ permutedims ), рдФрд░ рдЗрд╕рд▓рд┐рдП рддрддреНрд╡реЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВред

рдореБрдЦреНрдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ "рдЯреЙрдбреЛрд╕" рдЬрд┐рд╕реЗ рдЗрд╕ рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. [] ctranspose рдирд╛рдо рдмрджрд▓реЗрдВ adjoint ред
  2. [] transpose рдХреЛ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓реЗрдВред
  3. [] рдЪрд┐рддреНрд░рд╛ рдмрд╛рд╣рд░ рдпрд╣ рдХреИрд╕реЗ рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣рд╕реНрддрд╛рдВрддрд░рдг рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рджреБрд░реНрд▓рдн рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ 1.0 рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ NEWS рдореЗрдВ рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред ctranspose рд╕реЗ adjoint рдмрджрд▓рдирд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рдореВрд▓реНрдпрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо 1.0 рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ)ред рдХреНрдпрд╛ рдХреБрдЫ рдФрд░ рд╣реИ рдЬреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

@StefanKarpinski , рд╣рдореЗрдВ RowVector рд▓рд┐рдП рдЗрд╕реА рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ RowVector Transpose рдФрд░ Adjoint рдЖрд▓рд╕реА рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose рдФрд░ рдЖрд▓рд╕реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП adjoint рдХреНрд░рдорд╢рдГ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рд╣реЛрдЧреАред рдФрд░ Conj (рдЖрд▓рд╕реА conj ) рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдХрдо рд╕реЗ рдХрдо рд╕реНрдкрд░реНрд╢ рд╕рдВрдмрдВрдзреА рдХреБрдЫ рдмрджрд▓рд╛рд╡

  • рдХреБрдЫ рджреГрд╢реНрдп transpose рдФрд░ adjoint AbstractMatrix
  • adjoint(::Diagonal) рдкреБрдирд░рд╛рд╡рд░реНрддреА (рдпрдХреАрдирди рд╣рдореЗрдВ рдЗрд╕ "рдмрдЧ" рдХреЛ Diagonal transpose рдФрд░ ctranspose рдЬреБрд▓рд┐рдпрд╛ v0.6.0 рд╕реЗ рдкрд╣рд▓реЗ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)
  • рдЪреАрдЬреЛрдВ рдореЗрдВ рдЙрдЪрд┐рдд "рд╕реНрдХреЗрд▓рд░" рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: v = Vector{Vector{Float64}}(); dot(v,v) (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ - рдпрд╣ zero(Vector{Float64}) рд▓реМрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ)

рдареАрдХ рд╣реИ, рдореИрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрдирд╛ рд╣реИ, рдФрд░ рдореИрдВ рднреА рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдЗрд╕ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ Diagonal рдпрд╣рд╛рдБ (рд╡рд╣рд╛рдБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреА рдЖрд╢рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдПрдХ рдмреНрд▓реЙрдХ рд╡рд┐рдХрд░реНрдг рд╕рдВрд░рдЪрдирд╛, рдЬреИрд╕реЗ getindex , рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╛рд░рдЧрдорди рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдмрдирд╛рдирд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд▓рдЧрддрд╛ рд╣реИ)ред

рдЬрд╣рд╛рдВ рдореИрдВ рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВ, рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рдореЗрд░реЗ рд╕рднреА рдЪрд░реНрдЪрд╛ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реАрдзреЗ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ inv , det , expm ред eig , рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, det(::Diagonal{T}) where T рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рд╕рд┐рд░реНрдл рд╕рднреА рд╡рд┐рдХрд░реНрдг рддрддреНрд╡реЛрдВ рдХреЗ рдЙрддреНрдкрд╛рдж рдХреЛ рд▓реЗрддреА рд╣реИред T <: Number рд▓рд┐рдП рд╢рд╛рдирджрд╛рд░ рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рд╕рднреА рддрддреНрд╡ рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХреЗ рд╡рд░реНрдЧ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рд╣реИрдВред (рдмреЗрд╢рдХ, рдЕрдЧрд░ рд╡реЗ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХреЗ рд╡рд░реНрдЧ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рддрддреНрд╡ рдПрдХ рдЕрдВрдЧреВрдареА рдХреЗ рд░реВрдк рдореЗрдВ, рдФрд░ рдпрд╣ рд╕рдм рдХрд╛рдлреА рд╕рдордЭрджрд╛рд░ рд╣реИ - рднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрдХреНрд╖рд╛рдВрддрд░рд┐рдд (рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: adjoint) рд╕рд╣реА рдмрд╛рдд рд╣реИ)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╣рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд▓реЙрдХ-рд╡рд┐рдХрд░реНрдг рдореИрдЯреНрд░рд┐рдХреНрд╕ Diagonal{Matrix{T}} , рдпрд╛ рдХрд┐рд╕реА рднреА рдмреНрд▓реЙрдХ-рдореИрдЯреНрд░рд┐рдХреНрд╕ Matrix{Matrix{T}} рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рд╕реНрдХреЗрд▓рд░ T рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдХ рдХреА рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Ie рдпрджрд┐ рдЖрдХрд╛рд░ (3 тКХ 4) ├Ч (3 тКХ 4) (рд╡рд┐рдХрд░реНрдг рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ 2 ├Ч 2 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЬреЛ рдЖрдпрд╛рдо 3 ├Ч 3, 4 ├Ч 4 рдФрд░ рдорд┐рд▓рд╛рди-рд╡рд┐рдХрд░реНрдг рддрддреНрд╡реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ), рддреЛ det рд╡рд╛рдкрд╕реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред "рдЪрдкрдЯрд╛" 7 ├Ч 7 рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдХ, рдпрд╛ рдЗрд╕реЗ рдмрд╕ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ 2 ├Ч 2 рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рд╡реЗ рд╣реИрдВ (рдФрд░ рддреНрд░реБрдЯрд┐-рдЖрдЙрдЯ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ)?

(рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдЕрд╕реНрдкрд╖реНрдЯ рднрд╛рд╖рд╛ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП)

рдореБрдЭреЗ a' рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдирдП a.' рдиреЛрдЯреЗрд╢рди рдХреЛ рдмрд╣реБрдд рднреНрд░рдорд┐рдд рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рдЖрдкрдиреЗ рдореБрдЭреЗ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдореЗрд░реЗ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореБрдЭреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ a.' рджрд┐рдЦрд╛рдпрд╛, рддреЛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ transpose.(a) рдЕрд░реНрдерд╛рдд a рдХрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣реЛрдКрдВрдЧрд╛ рдЧрд▓рддред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдЖрдкрдиреЗ рдореБрдЭреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ a' рдФрд░ a.' рджреЛрдиреЛрдВ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдереЗ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рднреА рддрддреНрд╡рд╡рд╛рдкрд╕реА рдХреА, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ a.' рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдПрд▓рд┐рдореЗрдВрдЯ рд╡рд╛рдЗрдЬ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐, рдФрд░ рдореИрдВ рдлрд┐рд░ рд╕реЗ рдЧрд▓рдд рд╣реЛрдЧрд╛ред

рдмреЗрд╢рдХ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ . рдХрд╛ рдореЗрд░рд╛ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рдЧрд▓рдд рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реВрдВ рдЬреЛ рдЙрд╕ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╛рдЦреНрдпрд╛рдпрд┐рдд рдХрд░реЗрдЧрд╛ред рдЙрд╕ рдЕрдВрдд рддрдХ, рдореИрдВ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП .' рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ред

@ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ MATLAB рд╕реЗ рдирд┐рдХрд▓реА рд╣реИред рдПрдХ рдмрд╛рд░ (рдХрд╛рдлреА рдЕрджреНрднреБрдд) рдбреЙрдЯ-рдХреЙрд▓ рдкреНрд░рд╕рд╛рд░рдг рд╕рд┐рдВрдЯреИрдХреНрд╕ v0.5 рдХреЗ рд▓рд┐рдП рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рдереЛрдбрд╝рд╛ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реЛ рдЧрдпрд╛ред

рд╣рдо MATLAB рд╕реЗ рдЕрд▓рдЧ рдЕрдкрдирд╛ рд░рд╛рд╕реНрддрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ - рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣реАрдВ рдЕрд▓рдЧ рдЪрд░реНрдЪрд╛ рд╣реБрдИ рдереА (рдХрд┐рд╕реА рдХреЛ рдпрд╛рдж рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рд╣реИ?)ред

рдЖрд╣, рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдПрдХ рдФрд░ рдХрд╛рд░реНрдп:

  • [] issymmetric рдФрд░ ishermitian рдХрд╛ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП transpose рдФрд░ adjoint - рдкреНрд░рддреНрдпреЗрдХ рдЬреЛрдбрд╝реА рдХрд╛ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдЬреЛрдбрд╝реА рдХрд╛ рдЙрддреНрддрд░рд╡рд░реНрддреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИред

Matlab .' рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдирдП . рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд╛рдлреА рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИред рдореИрдВ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реЛрдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рддрдм рд╣рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрд▓рдмреНрдз рд╣реИред рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рднреА рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рд╣реИ?

рдЪрд▓рд┐рдП рдпрд╣рд╛рдВ рдкрд░ рдЯреНрд░рд╛рдВрд╕рдЬреЗрдВрдб рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ: https://github.com/JuliaLang/julia/issues/21037ред

рдореЗрд░реЗ рдкрд╛рд╕ transpose / ctranspose / adjoint рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдареЛрд╕ рд░рд╛рдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп A::Matrix{Matrix{T}} рдХреЛ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рддрд░рд╣ рдирд╣реАрдВ рдорд╛рдиреВрдВрдЧрд╛ рдПрдХ рдЖрд▓рд╕реА hvcat рднрд╛рд╡рдирд╛, рдЬреЛ @andyferris рдХрдо рд╕реЗ рдХрдо рднрд╛рдЧ рдореЗрдВ рд▓рдЧрддреА рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ A рдХреЗ рддрддреНрд╡ рд╕рднреА рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХреЗ рд╡рд░реНрдЧ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдереЗ (рдпрд╛рдиреА рдПрдХ рд░рд┐рдВрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ), рддреЛ рдореБрдЭреЗ рдЙрд╕ рдЖрдХрд╛рд░ рдХреЗ рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП det(A) рдЙрдореНрдореАрдж рд╣реЛрдЧреАред рдпрджрд┐ рд╡реЗ рдЖрдпрддрд╛рдХрд╛рд░ рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдХреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рдЙрдореНрдореАрдж рдХрд░реВрдВрдЧрд╛ред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдПрдХ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ / рдЖрд▓рд╕реА рдмрд┐рд▓реНрд▓реА рдкреНрд░рдХрд╛рд░ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рднреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЪрдкрдЯрд╛ рдбреЗрдЯрд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛ getindex рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ Matrix рдпрд╛ рдореМрдЬреВрджрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рдХрд╛рд░реЛрдВ рдЬреИрд╕реЗ Diagonal рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдпрд╣ рд░рд╛рд╣рдд рд╣реИ, @martinholtersред рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдкрд╣рд▓реЗ рдЬреЛ рдореИрдВ рдШрдмрд░рд╛ рд░рд╣рд╛ рдерд╛, рд╡рд╣ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдкреВрд░реЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреА рд░реВрдкрд░реЗрдЦрд╛ рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдмреНрд▓реЙрдХ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП Matrix{Matrix} рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬрд╣рд╛рдВ рдЙрдкрдорд╛рддреНрд░рд╛ рдореЗрдВ рднрд┐рдиреНрди рдЖрдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ)ред

рдореИрдВ рдХреНрдпрд╛ "рдЪрдкрдЯреЗ" рдХреЗ рд╕рд╛рде рдмрд╣рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рддрддреНрд╡ рдХреНрдпрд╛ рд╣реИрдВ, рдХрд╛ рдХреЛрдИ рдлреИрдВрд╕реА рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдмрд╕ рддрддреНрд╡реЛрдВ рдХреЛ рдЕрдкрдиреЗ рдЧреБрдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЕрдВрдЧреВрдареА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреБрдирд░рд╛рд╡рд░реНрддреА ctranspose / adjoint рддрддреНрд╡реЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд╣реА рдФрд░ рдЙрдкрдпреЛрдЧреА рд▓рдЧрддрд╛ рд╣реИред (рджреВрд╕рд░рд╛ рдорд╛рдорд▓рд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рддрддреНрд╡реЛрдВ рдХрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд┐рдХрдЯрддрд╛ рднреА рд╕рд╣реА рд╣реИ)ред

рдереЛрдбрд╝рд╛ рдФрд░ рдкреАрдЫреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП - transpose(x) = x рдФрд░ ctranpsose(x) = conj(x) рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдиреЛ-рдСрдк рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдореВрд▓ рдкреНрд░реЗрд░рдгрд╛ рдХреНрдпрд╛ рдереА? рдпреЗ рд╣рдореЗрд╢рд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рд▓рдЧрддреЗ рдереЗред

рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП - рд╕рдВрдХреНрд░рдордг (x) = x рдФрд░ ctranpsose (x) = conj (x) рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдиреЛ-рдСрдк рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкреНрд░реЗрд░рдгрд╛ рдХреНрдпрд╛ рдереА? рдпреЗ рд╣рдореЗрд╢рд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рд▓рдЧрддреЗ рдереЗред

рдпрд╣ рдХрд╕реНрдЯрдо рд░реИрдЦрд┐рдХ-рд╕рдВрдЪрд╛рд▓рдХ рдкреНрд░рдХрд╛рд░реЛрдВ (рдЬреЛ рдХрд┐ AbstractArray рдХреЗ рдЙрдкрдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ) рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдерд╛, рдЬреЛ ctranspose рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдерд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЧрд▓рдд рдХрджрдо рд╕реЗ https://github.com/JuliaLang/julia/issues/13171

рд╣рдореЗрдВ рджреЛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ - рджреЛрдиреЛрдВ рдореЗрдВ, transpose рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛:

  1. рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА ctranspose ред
  2. рдкреБрдирд░рд╛рд╡рд░реНрддреА ctranspose ред

@stevengj , @jiahao , @andreasnoack - рдЖрдкрдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдБ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реИрдВ? рдЕрдиреНрдп?

рдореИрдВ рдХреЗ рдмрд╛рдж рд╕реЗ @jiahao рдХреЗ JuliaCon 2017 рдмрд╛рдд рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБред

рдореЗрд░реЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЛ "рд╕реНрдХреЗрд▓рд░" рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ T рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ T рдПрдХ рдлрд╝реАрд▓реНрдб рд╣реИ ( + , * рдФрд░ conj ( - рднреА / , .. рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ) ред)) рддрдм рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ Base.LinAlg рд╡рд┐рдлрд▓ рдХреНрдпреЛрдВ рд╣реЛрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, OTOH рдпрд╣ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдкрд╛рд░рдЧрдорди рд▓реЗрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп (рдФрд░ рдорд╛рдиреНрдп) рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ "рдЧрдгрд┐рддреАрдп" рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрд▓ рдХреЗ рд╕реЗрдЯ рдХреЗ "рдкрд╣рд▓реЗ рдХреЗ рдЖрджреЗрд╢" рд╕реЗрдЯ, "рджреВрд╕рд░реЗ рдХреНрд░рдо" рдХреЗ рд╕реЗрдЯ рдСрдл рд╕реНрдХреЗрд▓рд░ рдХреЗ рд╕реЗрдЯ, "рддреАрд╕рд░реЗ" рдХреЗ рд╕реЗрдЯреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рд╕реЗ рдЙрддреНрдкрдиреНрди рдЕрдЬреАрдм рдмрдпрд╛рдиреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдЖрджреЗрд╢ "рд╕реНрдХреЗрд▓рд░ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕реЗрдЯ, рдФрд░ рдЗрддрдиреЗ рдкрд░ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ (рдФрд░ рдЕрд╡рд╕рд░) рд╣реИ рдЬрдм рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ - рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ "рд╕рдЪреНрдЪреЗ" рд╕реНрдХреЗрд▓рд░ рдХреЗ "рдкреНрд░рдердо рдХреНрд░рдо" рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рд╕реНрдХреЗрд▓рд░реЛрдВ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ "рджреВрд╕рд░реЗ рдХреНрд░рдо" рд╕рд░рдгрд┐рдпреЛрдВ рдЖрджрд┐ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @stevengj , рдЦреБрдж рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд▓рдВрдмреА рдЪрд░реНрдЪрд╛ рдЗрд╕ рддрдереНрдп рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реБрдИ рд╣реИ рдХрд┐, рд╣рд╛рдБ, рдЖрдк рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ "рдЖрджреЗрд╢" рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдПрдХ рдЖрддреНрдордирд┐рд░реНрднрд░ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдврд╛рдВрдЪреЗ рдореЗрдВ (рдЧ) рд╕рдВрдХреНрд░рдордг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЬрд┐рдпрд╛рдУ рдХреА рдмрд╛рдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдИ рдЧрдИ рд╣реИ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ / рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрд░рд░реНрд╕ рдХреЛ рд╕рд░рдгрд┐рдпреЛрдВ (рдпрд╛ рдирд╣реАрдВ) рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рдмреНрджрд╛рд░реНрде рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рддреЗ рд╣реИрдВ, рдореИрдЯреНрд░рд┐рд╕ (рдпрд╛ рдирд╣реАрдВ) рдФрд░ рдЗрддрдиреЗ рдкрд░ рд╕реЗ рд╡реИрдХреНрдЯрд░ рдХреЛ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдкрд╕рдВрдж рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ "рдордирдорд╛рдирд╛ рдХреНрд░рдо" рд╕рд░рдгреА рдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдиреЗ "рд╕реНрдХреЗрд▓рд░реНрд╕" рдХреЛ рдХреБрдЫ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рд╕рд┐рдЦрд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдЬреВрд▓рд┐рдпрд╛ рд╡рд┐рдзрд┐ рдЬреЛ рдРрд╕рд╛ рдХрд░рддреА рд╣реИ рд╡рд╣ transpose(x::Number) = x ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдпрджрд┐ рд╣рдо рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд╣рдЯрд╛рдХрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рд╕реНрдХреЗрд▓рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╣рдорд╛рд░реЗ рд╢рдмреНрджрд╛рд░реНрде рднреЗрдж рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ - рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд▓рд╛ рдХрджрдо Base.LinAlg рдХреЛ рдкрд╣рд▓реЗ-рдСрд░реНрдбрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рджреВрд╕рд░реЗ-рдСрд░реНрдбрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдЗрддрдиреЗ рдкрд░ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд╕рд┐рдЦрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рджреЛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИ, рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛:

  • "рд╕рд░рдгреА" рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдкреНрдЯ-рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛ рд░рдЦреЗрдВ, рддрд╛рдХрд┐ transpose(::AbstractMatrix{T}) рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реЛ рдЬрдм T AbstractMatOrVec рди рд╣реЛ, рдФрд░ рди рдХрд┐ рдЬрдм T Number , рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдмрдирд╛рдПрдВ (рдСрдкреНрдЯ-рдЗрди, рдСрдкреНрдЯ-рдЖрдЙрдЯ, рдЬреЛ рднреА рд╣реЛ) рдЕрдиреНрдпрдерд╛ред (рдХреБрдЫ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рдпрд╣ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП transpose рдкрджреНрдзрддрд┐ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ transpose рдкрджреНрдзрддрд┐ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╛рд╣рд░реА (рдмрд╛рд╣рд░реА) рд╣реИ ) рд╕рд░рдгреА)ред
  • рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдЬрд╝реЛрд░ AbstractArray рдПрд╕ рд╕рд╣рд┐рдд Array рд░реЛрдВ рдкрд╣рд▓реЗ рдХреЗ рдЖрджреЗрд╢ (рдЙрдирдХреЗ рддрддреНрд╡реЛрдВ рдЕрджрд┐рд╢ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ), рдФрд░ рдПрдХ рдЕрд▓рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ AbstractArray рдкреНрд░рдХрд╛рд░ (рдХрд╣рдирд╛ NestedArray ) рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдФрд░ "рдирд┐рд╢рд╛рди" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрдирдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рди рдХрд┐ рд╕реНрдХреЗрд▓рд░ред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмреЛрдЭ рд╕реЗ рдХрдо рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдПрд░реЗ рдФрд░ рд╕реНрдХреЗрд▓рд░реНрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рдордЬрдмреВрдд рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдкреГрдердХреНрдХрд░рдг рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореБрдЭреЗ (рдХреЗ рд╕рд╛рде) рдереЛрдбрд╝реА рдЕрд╕рдВрдЧрдд рд▓рдЧрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреЗрд▓ рд╕рдВрдкрддреНрддрд┐ transpose рдмрд╛рд░реЗ рдореЗрдВ "рд╕рд┐рдЦрд╛рдпрд╛" рдЬрд╛рдирд╛ рдерд╛ред рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Matrix{Float64} рд╕реНрдХреЗрд▓рд░реНрд╕ (рдкреНрд░рдердо-рдХреНрд░рдо рд╕рд░рдгреА) рдХрд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ рдФрд░ Matrix{Matrix{Float64}} рдПрдХ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ (рджреНрд╡рд┐рддреАрдп-рдХреНрд░рдо рд╕рд░рдгреА) рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рдХреЛрдИ рд╕рд░рдгреА "рдкреНрд░рдердо рдХреНрд░рдо" рд╣реИ рдпрд╛ рдЬреЛ рднреА рд╣реЛред рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдореИрдВрдиреЗ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛ рджреЗрдЧрд╛ (рдЗрд╕рд▓рд┐рдП рдореИрдВ ["abc", "def"].' рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ) рдлрд┐рд░ рднреА рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдордЭрджрд╛рд░ / рдЙрдкрдпреЛрдЧреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓рд╛рдкрди рдмрдирд╛рдП рд░рдЦреЗрдВред

рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╡реАрдгрд╛ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЬреВрд▓рд┐рдпрд╛рдХреЙрди рдореЗрдВ @ @StefanKarpinski рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ "рдХрд╛рдо" рд╕реЗ рдКрдкрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ "рд╡рд░реНрдХрд┐рдВрдЧ" рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ / рд╡реЗрдХреНрдЯрд░ рдмреАрдЬрдЧрдгрд┐рдд RowVector "

TLDR рдерд╛ - рдордд рдмрдирд╛рдУ ( c ) transpose рдпрд╛ рддреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛ рдпрд╛ рди рд╣реЛ - рдЗрд╕реЗ рджреЛрдиреЛрдВ (рдпрд╛рдиреА рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп) рд╣реЛрдиреЗ рджреЛред

рд╡реЗ рдЕрдЪреНрдЫреЗ рдмрд┐рдВрджреБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ (c)transpose рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрддреЛрдВ рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА (рдпрджрд┐ рд╕рднреА рдирд╣реАрдВ) рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ ' рдФрд░ .' рдЧреИрд░-рдорд╛рдерд┐ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ Vector{String} рдФрд░ Vector{PyObject} 1xn рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдореЗрдВред рдЯрд╛рдЗрдк рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реЛрдЪ рдпрд╣ рдереА рдХрд┐ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рд╕рд╣реА рдереА рдФрд░ "рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рд╣реА рд▓реЗрдХрд┐рди рдХрд╖реНрдЯрдкреНрд░рдж" "рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓реЗрдХрд┐рди рдЧрд▓рдд" рд╕реЗ рдмреЗрд╣рддрд░ рдереАред

рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдкрд╣рд▓реА рдЧреЛрд▓реА рдореЗрдВ рдЖрдкрдХрд╛ рд╕реБрдЭрд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдХреЗрд╡рд▓ рд╕рд░рдгреА-рдЬреИрд╕реЗ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ T<:AbstractVecOrMat рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдХреЛ "рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓реЗрдХрд┐рди рдмрд╣реБрдд рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЧрд▓рдд" рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗред рдпрд╣ рдЕрднреА рднреА рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рдСрдкрд░реЗрдЯрд░ рдЬреИрд╕реЗ рдкреНрд░рдХрд╛рд░ AbstractMatrix рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ AbstractArray рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕рд░рдгреА ( getindex ) рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ , рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдирд╣реАрдВред

@ рдХреИрдВрдбреАрдлрд░рд┐рд╕ , рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд╕рд╣рд╛рдпрдХ рдФрд░ рджреЛрд╣рд░реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ, рдФрд░ ctranspose(x::Number) = conj(x) рд╕рд╣реА рд╣реИред

рдореЗрд░реА рднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ transpose рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧ "рдиреЙрди-рдореИрдереА" рд╣реИрдВ, рдФрд░ ctranspose (рдпрд╛рдиреА рдЬрд╣рд╛рдВ рд╕рдВрдпреБрдЧреНрдорди рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ) рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧ рдореИрдереА рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдБ рдХреЛрдИ рдЕрдиреНрдп рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ) )ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose рдФрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА ctranspose рдкрдХреНрд╖ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдирд┐рдЬреА рддреМрд░ рдкрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд▓реЙрдХ рдПрд░реЗ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ Arrays n https://github.com/KristofferC/BlockArrays.jl рдпрд╣ред

рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, @KristofferCред

рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╛рдиреНрдп рдмрд┐рдВрджреБ рд╣реИ рдЬреЛ @stevengj рдКрдкрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдЖрдкрдХреЗ рддрддреНрд╡ рдЬреИрд╕реЗ рдЧрдгрд┐рддреАрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ рд╡реИрдХреНрдЯрд░ рдпрд╛ рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди AbstractArray s рдирд╣реАрдВред рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрди рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддреА (рд╕реА) рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдП - рдпрдХреАрди рдирд╣реАрдВ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛ред

рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рд╕реБрд╕реНрдд / # linalg рдмрд╛рддрдЪреАрдд рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВред рдЙрдкрд░реЛрдХреНрдд рдзрд╛рдЧреЗ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИред рд╢рдмреНрджрд╛рд░реНрде рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╡рд░реНрддрдиреА рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред (рдЙрд╕ рдмрд╛рддрдЪреАрдд рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж! :))

рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдкрд░реЗрд╢рди рдореМрдЬреВрдж рд╣реИрдВ:
1) "рдЧрдгрд┐рддреАрдп рд╕рд╣рд╛рдпрдХ" (рдкреБрдирд░рд╛рд╡рд░реНрддреА рдФрд░ рдЖрд▓рд╕реА)
2) "рдЧрдгрд┐рддреАрдп рд╕рдВрдХреНрд░рдордг" (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдФрд░ рдЖрд▓рд╕реА)
3) "рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдкрд░рд┐рд╡рд░реНрддрди" (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдФрд░? рдЙрддреНрд╕реБрдХ?)

рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐: ctranspose рд▓рд┐рдП "рдЧрдгрд┐рддреАрдп рдЖрд╕рдиреНрди" рдорд╛рдирдЪрд┐рддреНрд░, "рдЧрдгрд┐рддреАрдп рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг" рд╕реЗ transpose , рдФрд░ "рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд░реВрдкрд╛рдВрддрд░" рд╕реЗ permutedims(C, (2, 1)) рджреЛ-рдЖрдпрд╛рдореА C рдФрд░ reshape(C, 1, length(C)) рдПрдХ-рд╡рд┐рд╖рдпрдХ C ред рдореБрджреНрджрд╛: "рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╣рд╕реНрддрд╛рдВрддрд░рдг" рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рд╣реИ, рдФрд░ permutedims / reshape рдХрд╣рд╛рдиреА рдХреБрдЫ рднреНрд░рд╛рдордХ / рдЕрдкреНрд░рд╛рдХреГрддрд┐рдХ / рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред

рдпрд╣ рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реБрдЖ: рдкрд╣рд▓реЗ "рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╕рдВрдХреНрд░рдордг" рдХреЛ " transpose(x::Any) = x , ctranspose(x::Any) = conj(x) , рдФрд░ conj(x::Any) = x рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдиреЛ-рдСрдк рдХрдорд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ" рдЧрдгрд┐рддреАрдп рдЖрд╕рдиреНрди "/" рдЧрдгрд┐рддреАрдп рдкрд╛рд░рдЧрдорди "рдХреЗ рд╕рд╛рде рдЬрдмреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрди рдХрдорд┐рдпреЛрдВ рдиреЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ "рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╣рд╕реНрддрд╛рдВрддрд░рдг" рдХреЗ рд▓рд┐рдП [c]transpose рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ ' / .' рд╕реЗрд╡рд╛ рдХреАред рдорд╣рд╛рдиред рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ [c]transpose рд╕рдВрдЪрд╛рд▓рди рдХреЛ рднреА рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╡рд┐рдлрд▓ рдХрд░ рджрд┐рдпрд╛ (рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдВ) рдЙрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП [c]transpose рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛ред рдЖрдЙрдЪред рдЗрд╕рд▓рд┐рдП рдЙрди рд╕рд╛рдорд╛рдиреНрдп рдиреЛ-рдСрдк рдХрдорд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреА рдЙрдкрдЬ рдереАред

рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдЖрджрд░реНрд╢ рдкрд░рд┐рдгрд╛рдо: "рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╕рдВрдХреНрд░рдордг" рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреАрдХреГрдд, рдкреНрд░рд╛рдХреГрддрд┐рдХ рдФрд░ рдХреЙрдореНрдкреИрдХреНрдЯ рдЭреБрдХрд╛рд╡ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рд╕реНрдердЧрди рдФрд░ рд╕рдВрдХреНрд░рдордг рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд░реЗрдВред рдЙрдкрдпреЛрдЧ рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред

рджреЛ рд╡реНрдпрд╛рдкрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдореМрдЬреВрдж рд╣реИрдВ:

(рез) рдЧрдгрд┐рддреАрдп рд╕рдВрд╢реНрд▓рд┐рд╖реНрдЯ, рдЧрдгрд┐рддреАрдп рдкрд╛рд░рдЧрдорди, рдФрд░ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд░реВрдкрд╛рдВрддрд░ рддреАрди рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рд╢рдмреНрджрд╛рд░реНрде рд░реВрдк рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдХреНрд░рд┐рдпрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрд╕рд╛рдЗрдбреНрд╕: рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╕рдлрд╛рдИ рд╕реЗ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореБрд╢реНрдХрд┐рд▓ рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд╛рдЙрдирд╕рд╛рдЗрдбреНрд╕: рд╕рдордЭрд╛рдиреЗ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рдСрдкрд░реЗрд╢рдиред

(2) рдЬреВрддрд╛-рд╕реАрдВрдЧ рддреАрди рдСрдкрд░реЗрд╢рди рдХреЛ рджреЛ рдореЗрдВред рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рддреАрди рд░реВрдк рдореМрдЬреВрдж рд╣реИрдВ:

(2a) transpose рд╢рдмреНрджрд╛рд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ "рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг" рдХрд░реЗрдВ, рдЬреЛ рдЖрдо рдорд╛рдорд▓реЛрдВ рдореЗрдВ "рдЧрдгрд┐рддреАрдп рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг" рднреА рд╣реИред рдЕрдкрд╕рд╛рдЗрдбреНрд╕: рджреЛ рдСрдкрд░реЗрд╢рдиред рдЕрд╕рдВрджрд┐рдЧреНрдз рд░реВрдк рд╕реЗ рдЕрджрд┐рд╢ рддрддреНрд╡реЛрдВ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдбрд╛рдЙрдирд╕рд╛рдЗрдбреНрд╕: рдХрд┐рд╕реА рдХреЛ "рдЧрдгрд┐рддреАрдп рд╕рдВрдХреНрд░рдордг" рдХреА рдЙрдореНрдореАрдж рд╣реИ, рд╢рдмреНрджрд╛рд░реНрде рдЪреБрдкрдЪрд╛рдк рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдХрд┐ рдЕрд╕рдВрджрд┐рдЧреНрдз рд░реВрдк рд╕реЗ рдЕрджрд┐рд╢ рддрддреНрд╡реЛрдВ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ, рддреЛ "рдЧрдгрд┐рддреАрдп рд╕рдВрдХреНрд░рдордг" рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдкреНрд░рдХрд╛рд░ рдФрд░ / рдпрд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

(реи рдмреА) рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА "рдЧрдгрд┐рдд" рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдЧреБрдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдЬрдм рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдкрд░ рд╕реНрдердЧрди / рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдпрджрд┐ рдХрдВрдЯреЗрдирд░ / рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ "рдореИрдереА" рд╣реИрдВ, рддреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░реЗрдВ; рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рди рдХрд░реЗрдВред рдЕрдкрд╕рд╛рдЗрдбреНрд╕: рджреЛ рдСрдкрд░реЗрд╢рдиред рдХрдИ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдбрд╛рдЙрдирд╕рд╛рдЗрдбреНрд╕: рдЬреЗрдиреЗрд░рд┐рдХ рди-рдСрдк [c]transpose рдХрдорд┐рдпрд╛рдВ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реИрдВ, рдпрд╛рдиреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЧреБрдг рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдЪреБрдкрдЪрд╛рдк рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ "рдореИрдереА" рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рдЖрд╡реЗрджрди рдХреЛ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдПрдХ "рдЧреИрд░-рдореИрдереА" рдкреНрд░рдХрд╛рд░ рдХреЛ рдЧрдгрд┐рддреАрдп рд╕рдВрдХреНрд░рдордг рдХрд░рддрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рдХреЛрдИ рд╡рд╕реНрддреБ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ "рдореИрдереА" рд╣реИ рдпрд╛ рдирд╣реАрдВред (рдЬреИрд╕реЗ, рдпрджрд┐ рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ рд╕рд╛рд░ рд╣реИ? рдХреНрдпрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА / рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд┐рд░реНрдгрдп рд╣реИ рддреЛ рд░рдирдЯрд╛рдЗрдо рдФрд░ рдПрд▓реАрдореЗрдВрдЯреАрд╡, рдпрд╛ рд░рдирдЯрд╛рдЗрдо рдФрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рднреА рддрддреНрд╡реЛрдВ рдкрд░ рдЕрдкрдиреЗ рд╕рд╛рдореВрд╣рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реНрд╡реАрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?)

(2c) adjoint ( ctranspose ) "рдЧрдгрд┐рддреАрдп рдирд┐рдХрдЯрддрд╛" рдФрд░ transpose "рдЧрдгрд┐рддреАрдп рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг" рд░рдЦреЗрдВ, рдФрд░ adjoint рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ (рдЬреЗрдирд░рд┐рдХ рдлрд╝реЙрд▓рдмреИрдХ) рддрд░реАрдХреЛрдВ рдХреЛ рдкреЗрд╢ рди рдХрд░реЗрдВред рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реНрдХреЗрд▓рд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП / transpose (рдЬреИрд╕реЗ adjoint(s::AbstractString) = s )ред рдЕрдкрд╕рд╛рдЗрдбреНрд╕: рджреЛ рдСрдкрд░реЗрд╢рдиред рд╕рд╣реА рдЧрдгрд┐рддреАрдп рд╢рдмреНрджрд╛рд░реНрдеред рдбрд╛рдЙрдирд╕рд╛рдЗрдбреНрд╕: рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП adjoint / transpose рдЯреБрдХрдбрд╝рд╛-рдЯреБрдХрдбрд╝рд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред "рдореИрдереА" рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╕рдВрдХреНрд░рдордг рдХреЗ рдЖрд╡реЗрджрди рдХреЛ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ (1) рдФрд░ (2 рдП) (2 рдмреА) рдФрд░ (2 рд╕реА) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╡реНрдпрд╛рдкрдХ рд╕рдорд░реНрдерди рдорд┐рд▓рд╛ред

рдХреГрдкрдпрд╛ # 19344, # 21037, # 13171, рдФрд░ рд╕реНрд▓реИрдХ / # рд▓рд┐рдирд╛рд▓рдЧ рдореЗрдВ рдЕрдзрд┐рдХ рдЪрд░реНрдЪрд╛ рдкрд╛рдПрдВред рд╢реНрд░реЗрд╖реНрда!

рдЕрдЪреНрдЫрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рд╡рд┐рдХрд▓реНрдк 1 рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдПрдЧреА: рдЧрдгрд┐рддреАрдп рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдФрд░ рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХрд╛рд░ рд╣реИрдВред рддрдм рдХреЗ рдЕрд░реНрде A' рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ A (рдзреНрдпрд╛рди рджреЗрдВ: рдирд╣реАрдВ рдЕрдкрдиреЗ рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА)ред рд╡рд┐рдкрдХреНрд╖ рдпрд╣рд╛рдБ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╣реБрдд рд╕рд╛рд░реЗ convert s рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдХреНрдпрд╛ рдпрд╣?) рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЕрддреНрдпрдзрд┐рдХ рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, рдореИрдВ рд╕рдВрджреЗрд╣ рд╕реЗ рдЕрдзрд┐рдХ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рд▓рд╛рдн рдЗрд╕ рд╡реНрдпрд╡рдзрд╛рди рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред

рдзрдиреНрдпрд╡рд╛рдж, рдЙрддреНрдХреГрд╖реНрдЯ рд░рд╛рдЗрдЯрдЕрдкред рдореИрдВ рд╡реЛрдЯ рджреЗрддрд╛ рд╣реВрдВ (1)ред

рд╢рд╛рдирджрд╛рд░ рд▓реЗрдЦрдиред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ (1) рд╡рд░реНрддрдиреА рд╣реЛ рд╕рдХрддреА рд╣реИ:

  • рд╕рд╣рд╛рдпрдХ: a' (рдкреБрдирд░рд╛рд╡рд░реНрддреА, рдЖрд▓рд╕реА)
  • рдЧрдгрд┐рддреАрдп рд╕рдВрдХреНрд░рдордг: conj(a') (рдкреБрдирд░рд╛рд╡рд░реНрддреА, рдЖрд▓рд╕реА)
  • рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдкрд░рд┐рд╡рд░реНрддрди: a.' (рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА, рдЙрддреНрд╕реБрдХ)

рдЗрд╕рд▓рд┐рдП рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдХрд┐рд╕реА рднреА рдирдП рдСрдкрд░реЗрдЯрд░ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдП - рд╕рдорд╡рд░реНрддреА рдФрд░ рд╕рдВрдпреБрдЧреНрдорди рдХреЗ рд▓рд┐рдП рдЧрдгрд┐рддреАрдп рдкрд╛рд░рдЧрдорди рд╕рд┐рд░реНрдл рдПрдХ (рдЖрд▓рд╕реА рдФрд░ рдЗрд╕рд▓рд┐рдП рдХреБрд╢рд▓) рд░рдЪрдирд╛ рд╣реЛрдЧреАред рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рджреЛ рд╕рдорд╛рди рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдСрдкрд░реЗрдЯрд░, рдЕрд░реНрдерд╛рддреН ' рдФрд░ .' , рдХрд╛рдлреА рдЕрд▓рдЧ рд╢рдмреНрджред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рд╕рдмрд╕реЗ рд╕рд╣реА рдЬреЗрдиреЗрд░рд┐рдХ рдХреЛрдб рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ ' рдпрд╛ .' рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕рдХрд╛ 99% рд╕рдЯреАрдХ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдирдХрд╛ рдорддрд▓рдм "рдореБрдЭреЗ рдЗрд╕ рдЪреАрдЬрд╝ рдХрд╛ рд╕рдиреНрджрд░реНрдн рджреЗрдирд╛" рд╣реИ рдпрд╛ "рд╕реНрд╡реИрдк"? рдЗрд╕ рдЪреАрдЬ рдХреЗ рдЖрдпрд╛рдо тАЭред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдХрд┐рд╕реА рдиреЗ ' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдЗрд╕ рдЪреАрдЬ рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ рд╕реНрд╡реИрдк" рдХрд┐рдпрд╛ рд╣реИ, рдЙрдирдХрд╛ рдХреЛрдб рдЙрди рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧрд▓рдд рд╣реЛрдЧрд╛ рдЬрд┐рдирдХреЗ рд╕реНрдХреЗрд▓рд░ рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдЧреИрд░-рддреБрдЪреНрдЫ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдПрдВред рдХреБрдЫ рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдХрд┐рд╕реА рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорддрд▓рдм рдерд╛ "рдореБрдЭреЗ рдЗрд╕ рдХреЗ рдирд┐рдХрдЯрд╡рд░реНрддреА рдХрд╛ рд╕рдВрдпреБрдЧреНрдорди рджреЗрдВ", рдореИрдВ рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ conj(a') рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ a.' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдорддрд▓рдм " a рдХреЗ рдЖрдпрд╛рдо рд╕реНрд╡реИрдк"ред

рд╕рднреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди @andreasnoack рдЗрд╕ рдорд╛рдорд▓реЗ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рдВрднрд╡ рд▓рдЧрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореБрдЭреЗ рднреА рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЪрд░реНрдЪрд╛ рдХрд╣реАрдВ рдФрд░ рдЪрд▓реА рдЧрдИ рдереАред рдореИрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ (рд╕реНрдкрд╖реНрдЯ?) рдмрд╛рдд рдереА рдЬреЛ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рдпрд╛рдж рдЖ рдЧрдИ рдереА, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рд╣рдо рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рд▓рд┐рдП .' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ !

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, vector.' рдХреЛ рдЕрдм RowVector рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА (рдЪреВрдБрдХрд┐ RowVector рдПрдХ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ, "рджреЛрд╣рд░реЗ" рд╡реЗрдХреНрдЯрд░ рдкрд░ рд╣рдорд╛рд░рд╛ рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕) - рдпрд╣ рдмрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдПрдХ Matrix ред рдЬрдм рдореИрдВ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ "рдЧреИрд░-рд╕рдВрдпреБрдЧреНрдорди рдкрд╛рд░рдЧрдорди" рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдЬреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╣ conj(adjoint(a)) рд▓реЗ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣реА рд╣рдо рд╕рднреА рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрдВрдЧреЗ (рдЕрдм рддрдХ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ) MATLAB рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ "рдмреБрд░рд╛" рдЖрджрдд рд╕рд┐рд░реНрдл рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдерд╛ a.' рдмрдЬрд╛рдп a' рдХрд┐рд╕реА рднреА рдореИрдЯреНрд░рд┐рдХреНрд╕ (рдпрд╛ рд╕рджрд┐рд╢) рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдерд╛ transposing рдХреЗ рд▓рд┐рдП, рдЬрдм рдХреНрдпрд╛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ adjoint (рдпрд╛ рджреЛрд╣рд░реА) - рдирд╛рдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдпрд╣рд╛рдВ рдПрдХ рдмрдбрд╝реА рдорджрдж рд╣реЛрдЧреА)ред

рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдпрд╣ рднреА рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕реНрдерд╛рди рдЦреЛрд▓рддрд╛ рд╣реИред рдкрд╣рд▓реЗ vector' рдФрд░ vector.' рдХреЛ "рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрдЬрд╝реЛрдЬрд╝" рдХрд░рдиреЗ рдФрд░ рджреЛрд╣рд░реА рд╡реЗрдХреНрдЯрд░ рдЬреИрд╕реА рдЪреАрдЬрд╝ рд▓реЗрдиреЗ рдХреА рджреЛрд╣рд░реА рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред рдЕрдм рдХрд┐ .' рд╕рд░рдгреА рдЖрдХрд╛рд░ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ ' рдПрдХ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ, рд╣рдо RowVector рдХреЛ 1D DualVector рдпрд╛ рдХреБрдЫ рдФрд░ рдореЗрдВ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдкреВрд░реА рддрд░рд╣ рд╕реЗред (рд╢рд╛рдпрдж рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП - рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рднреВрдЦ рд╣реИ, рддреЛ рдЖрдЗрдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдмрдирд╛рддреЗ рд╣реИрдВред)

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рд╕реБрд╕реНрдд рд╕реЗ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдКрдВрдЧрд╛:

1) transpose LinAlg Base рдЖрдЧреЗ рдмрдврд╝реЗрдВ рдФрд░ depwarns (0.7 рдХреЗрд╡рд▓) рдЬреЛрдбрд╝реЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдм RowVector рд░рд╣рд╛ рд╣реИ рдпрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА (рдпрджрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ)
2) рд╣рд░ рдЬрдЧрд╣ ctranspose рд╕реЗ adjoint рдирд╛рдо рдмрджрд▓реЗрдВ
3) Vector , ConjVector рдФрд░ RowVector ' рдФрд░ conj рд╕рдВрдпреЛрдЬрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ, рд╕рдВрднрд╡рддрдГ * , рд╕рдВрднрд╡рддрдГ RowVector рдирд╛рдо рдмрджрд▓реЗрдВред (рдпрд╣рд╛рдБ рд╣рдо conj(vector) рдЖрд▓рд╕реА рднреА рдмрдирд╛рддреЗ рд╣реИрдВ)ред
4) рдПрдХ рдЖрд▓рд╕реА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЬреЛрдбрд╝реЛ рдЬреЛ conj рдФрд░ ConjMatrix рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рддрд╛ рд╣реИ
5) A_mul_Bc рд╣рдЯрд╛ рджреЗрдВред A_mul_B! рд╕реЗ mul! (рдпрд╛ *! ) рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВред
6) рд▓рд╛рдн

@stevengj рдиреЗ рд▓рд┐рдЦрд╛:

@ рдХреИрдВрдбреАрдлрд░рд┐рд╕ , рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд╕рд╣рд╛рдпрдХ рдФрд░ рджреЛрд╣рд░реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ, рдФрд░ ctranspose(x::Number) = conj(x) рд╕рд╣реА рд╣реИред

рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред

рдореЗрд░реА рднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдХреНрд░рдордг рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧ "рдиреЙрди-рдореИрдереА" рд╣реИрдВ, рдФрд░ ctranspose (...) рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧ рдореИрдереА рд╣реИрдВ

рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдФрдкрдЪрд╛рд░рд┐рдХ рд╣реЛрдЧрд╛: transpose рдХрд╛ рд╕рднреА рдЙрдкрдпреЛрдЧ "рдиреЙрди-рдореИрдереА" рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ adjoint рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЙрдкрдпреЛрдЧ "рдореИрдереА" рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, vector.' рдХреЛ рдЕрдм RowVector рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА (рдХреНрдпреЛрдВрдХрд┐ RowVector рдПрдХ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ, "рджреЛрд╣рд░реЗ" рд╡реЗрдХреНрдЯрд░ рдкрд░ рд╣рдорд╛рд░рд╛ рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕ рд╣реИ) - рдпрд╣ рдмрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдПрдХ Matrix ред

рд╣рдо рдЕрднреА рднреА .' рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрд▓рд╕реА рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП X .= f.(x, y.') рдЕрднреА рднреА рдЧреИрд░-рдЖрд╡рдВрдЯрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣рд╛рдБ рдПрдХ рдкреНрд░рд╢реНрди рд╣реИ: рд╣рдореЗрдВ issymmetric(::AbstractMatrix{<:AbstractMatrix}) рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рдпрд╣ transpose рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЪреЗрдХ рд╣реЛрдЧрд╛? рдореИрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ; рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рддрддреНрд╡ transpose ред OTOH рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдорд╛рдиреНрдп рд╣реИ рдХрд┐ issymmetric(::Matrix{String}) ...

Symmetric btw рдореЗрдВ рд▓рд┐рдкрдЯреЗ рд░рд╣рдиреЗ рдкрд░ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд╣реАрдВ рд╣реИ

julia> A = [rand(2, 2) for i in 1:2, j in 1:2]; A[1, 2] = A[2, 1]; As = Symmetric(A);

julia> issymmetric(A)
false

julia> issymmetric(As)
true

julia> A == As
true

рд╣рд╛рдВ, рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рд╕рдВрдЧрддрд┐рдпрд╛рдВ рдмрд╣реБрдд рд╣реИрдВред (рд╕рд░рдгреА рдХреЛрдб рдореЗрдВ transpose , adjoint рдФрд░ conj рдХреЗ рд╣рд░ рдЙрджрд╛рд╣рд░рдг рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╣реБрдП рдореИрдВ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдЖрдпрд╛ рдерд╛)ред

рдЬрдм рддрдХ рдЕрдиреНрдпрдерд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдм рддрдХ рдореИрдВ рдРрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реВрдВрдЧрд╛ рдЬреЛ issymmetric(a) == (a == a.') рдФрд░ ishermitian(a) == (a == a') ред рдпреЗ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдмрд╣реБрдд рд╕рд╣рдЬ рд▓рдЧрддреЗ рд╣реИрдВ рдФрд░ AFAICT issymmetric рдХрд╛ рдореМрдЬреВрджрд╛ рдЙрдкрдпреЛрдЧ Number рддрддреНрд╡ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ (рдпрд╛ рдЕрдХреНрд╕рд░ рдЕрдиреНрдп рдЧрд▓рддрд┐рдпрд╛рдБ / рдзрд╛рд░рдгрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдиреЗрд╕реНрдЯреЗрдб рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдПрдВрдЧреА) ред

(рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди issymmetric(a) == (a == conj(adjoint(a))) ... рди рддреЛ "рд╕реБрдВрджрд░" рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рди рд╣реА рдпрд╣ "рдбреЗрдЯрд╛" рд╕рд░рдгрд┐рдпреЛрдВ ( String , рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ Number рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ

рдЬрдм рддрдХ рдЕрдиреНрдпрдерд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдм рддрдХ рдореИрдВ рдРрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реВрдВрдЧрд╛ рдЬреЛ issymmetric(a) == (a == a.') рдФрд░ ishermitian(a) == (a == a')

рдореЗрд░реЗ рд▓рд┐рдП рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдЕрджреНрдпрддрди: рдореЗрд░реЗ рдорди рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред рд╕рдордорд┐рдд рд╢рд╛рдпрдж рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рд▓рд┐рдП рд╣реИ

рдмрд╕ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕реБрдЭрд╛рд╡: рджреЛ рд╡реИрдХреНрдЯрд░ ( dotu ) рдХреЗ рдЙрддреНрдкрд╛рдж рдкрд░ рдПрдХ рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ, рдФрд░ x.тАЩy рдПрдХ рд╕реНрдХреЗрд▓рд░ рд▓реМрдЯрд╛рдирд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ Matrix рд╕реЗ transpose(::Vector) рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд░рд╣реВрдВрдЧрд╛

рд╣рд╛рдВ, рдпрд╣ рдПрдХ RowVector рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рд╕реНрдХреЗрд▓рд░ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд╛рд░рдЧрдорди рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред

рд╕рдВрднрд╡рддрдГ рдореВрд░реНрдд рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рдХрдИ рд▓реЛрдЧ "рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдСрдлрд╝ рд░рд┐рдВрдЧрд░ рд╕реНрдХреЗрд▓реНрд╕" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд░рд╣рддреЗ рд╣реИрдВред рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рд╕рджрд┐рд╢ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рддрдВрддреБрдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд▓рдп рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдмреАрдЬреАрдп рд╕рдВрд░рдЪрдирд╛ рдЬреЛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд┐рдирдХреЗ рд╕реНрдХреЗрд▓рд░ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝реАрд▓реНрдб рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд░рд┐рдВрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, "рдореЙрдбреНрдпреВрд▓" рдХрд╣рд▓рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреЗрд╕ рдореЗрдВ рд╣реИрдВрдбрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдереЛрдбрд╝рд╛ рдмрд╣реБрдд рдЧреВрдврд╝ рд╣реИрдВ ... рдПрд░ред .. рдорд╛рдкрд╛рдВрдХред

рдЪреВрдВрдХрд┐ рд╣рдо рдкреВрд░реНрдгрд╛рдВрдХ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХрд╛ред рдмреЗрд╢рдХ, рд╣рдо рдкреВрд░реНрдгрд╛рдВрдХ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рднреА рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рдХрд╛ рдЖрдВрд╢рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рдореЙрдбреНрдпреВрд▓рд░ рдкреВрд░реНрдгрд╛рдВрдХ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рдХреЗ рдПрд░реЗ рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдЧреИрд░-рдкреНрд░рд╛рдЗрдо рдорд╛рдкрд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╣рдо рдПрдХ рд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рдирд╣реАрдВ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рд╣реИ (рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рдХреЗрд╡рд▓ + рдФрд░ * рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╣рд╛рдВ, рдЬреВрд▓рд┐рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдореЙрдбреНрдпреВрд▓ рдкрд░ рдФрд░ рд╕рд╛рде рд╣реА рд╕рдЪреНрдЪреЗ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдмреАрдЬреАрдп рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдЪрд╛рд╣рд┐рдП)ред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд╕рдореБрджрд╛рдп рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рджрд░реНрд╢рди рдпрд╣ рд╣реИ рдХрд┐ Base рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ "рд╕рд╛рдорд╛рдиреНрдп 'рд╕рд╛рдорд╛рдиреНрдп рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рд░реВрдЯреАрди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреВрд░реНрдгрд╛рдВрдХ-рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдбреЙрди рдХреЗ рд▓рд┐рдП

рдХреНрд░реЙрд╕рдкреЛрд╕реНрдЯрд┐рдВрдЧ https://github.com/JuliaLang/julia/pull/23424#issuecomment -346678279

рдореИрдВ # 5332 рдФрд░ # 20978 рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрдмрджреНрдз рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдмреЛрд░реНрдб рдкрд░ рд╣реВрдВред рдореИрдВ рд╢рдмреНрджрд╛рд╡рд▓реА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдФрд░ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде рдмреЛрд░реНрдб рдкрд░ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рдЗрд╕ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЦреБрдж рдХреЛ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рд░реНрд╡реЛрддреНрддрдо рд╕реЗрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рд╣реЛрддрд╛ рд╣реИред

рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЦреБрдж рдХреЛ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдордирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЧрд▓рддрдлрд╣рдореА рдХреЗ рдПрдХ рд╣реА рд╕реЗрдЯ рдкрд░ рднрд╛рдЧрддрд╛ рд╣реВрдВред рдЙрди рдЧрд▓рддрдлрд╣рдореА рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдкрд░реНрдпрд╛рдкреНрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрдЯрд┐рд▓рддрд╛ рдпрд╣ рдкрд╕рдВрдж LinAlg рдкрд░ рдмрд▓ рджреЗрддреА рд╣реИ: рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдФрд░ рд╕рд░рдгреА-рдлреНрд▓рд┐рдк рдмрд▓реЛрдВ LinAlg рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, LinAlg рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдмрд╣реБрдд рдмрдбрд╝реЗ рд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдЖрдо рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рд╕рдВрдпреЛрдЬрди рдЯрд╛рдЗрдк рдХрд░реЗрдВред

рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, mul(A, B) рдЬрд╣рд╛рдВ A рдФрд░ B рдирдВрдЧреЗ рд╣реЛрдВ, рдЖрд╕-рдкрд╛рд╕ рд▓рд┐рдкрдЯреЗ, рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝-рд░реИрдк рдпрд╛ рдЕрд░реЗрдВрдЬ-рдлреНрд▓рд┐рдк рд▓рд┐рдкрдЯреЗ Matrix s рд╣реЛрдВред рдЯреНрд░рд╛рдВрдЬрд╝реЛрдЬрд╝ рдФрд░ рдПрд░реЗ-рдлреНрд▓рд┐рдк рдХреЛ рднреНрд░рдорд┐рдд рдХрд┐рдП рдмрд┐рдирд╛, A Matrix , рдПрдХ рд╕рд╣рд╛рдпрдХ рд▓рд┐рдкрдЯреЗ Matrix , рдпрд╛ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝-рд▓рд┐рдкрдЯреЗ Matrix (рдФрд░ рдЗрд╕реА рддрд░рд╣ B )ред рдЗрд╕рд▓рд┐рдП mul(A, B) рдиреМ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╛рд░рдЧрдорди рдФрд░ рд╕рд░рдгреА-рдлреНрд▓рд┐рдк, A Matrix , рдПрдХ рд╕рд╣рд╛рдпрдХ-рд▓рд┐рдкрдЯреЗ Matrix , рдПрдХ рдЯреНрд░рд╛рдВрдЬрд╝реЛрдЬрд╝-рд▓рд┐рдкрдЯреЗ Matrix , рдпрд╛ рдПрдХ рд╕рд░рдгреА- рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдлреНрд▓рд┐рдк-рд▓рд┐рдкрдЯреЗ Matrix (рдФрд░ рдЗрд╕реА рддрд░рд╣ B )ред рддреЛ рдЕрдм mul(A, B) рд╕реЛрд▓рд╣ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рддреЗрдЬреА рд╕реЗ рдмрд┐рдЧрдбрд╝рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд┐рдирд╛ рдкреБрд╖реНрдЯрд┐ рдХреЗ mul!(C, A, B) рд╕рддреНрддрд╛рдИрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рднреНрд░рдо рдХреЗ рд╕рд╛рде mul!(C, A, B) рдЪреМрдВрд╕рда рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдорд░реНрдерди рдХреА рдЬрд░реВрд░рдд рд╣реИред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорд┐рд╢реНрд░рдг рдХреЛ рдФрд░ рдЬрдЯрд┐рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Vector s рдФрд░ рдЧреИрд░- Matrix рдореИрдЯреНрд░рд┐рдХреНрд╕ / рдСрдкрд░реЗрдЯрд░ рдкреНрд░рдХрд╛рд░ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВред

рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред рд╢реНрд░реЗрд╖реНрда!

рдпрд╣ рдкреЛрд╕реНрдЯ рдЬреАрдердм, рд╕реНрд▓реИрдХ рдФрд░ рдЯреНрд░рд╛рдЗрдПрдЬ рдкрд░ рд╣рд╛рд▓рд┐рдпрд╛ рдЪрд░реНрдЪрд╛ рдХреЛ рд╕рдореЗрдХрд┐рдд / рд╕рдореАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдЧреЗ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд░рд╛рд╕реНрддреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИред (рдЖрдзреНрдпрд╛рддреНрдорд┐рдХ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА https://github.com/JuliaLang/julia/issues/20978#issuecomment-315902532 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдХрд░ рдкреИрджрд╛ рд╣реБрдЖ рдХрд┐ 1.0 рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред)

рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд▓рдЧ рдСрдкрд░реЗрд╢рди рдЬрд╛рд░реА рд╣реИрдВ:

  • рд╕рд╣рд╛рдпрдХ (рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рддреАрдп, рдкреБрдирд░рд╛рд╡рд░реНрддреА, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрд▓рд╕реА)
  • рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг (рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рддреАрдп, рдкреБрдирд░рд╛рд╡рд░реНрддреА, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрд▓рд╕реА)
  • рд╕рд░рдгреА-рдлреНрд▓рд┐рдк (рд╕рд╛рд░-рд╕рд░рдгреА-рдЖрдИрд╕реА, рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ? рдЖрд▓рд╕реА? рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ)

рдорд╛рд╕реНрдЯрд░ рдкрд░ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐

  • Adjoint рдХреЛ adjoint / ' (рд▓реЗрдХрд┐рди ' рдерд▓рдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рднрд╛рд╡реЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ A[c|t]_(mul|rdiv|ldiv)_B[c|t][!] рдХреЙрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрддрд╛рд░рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдордзреНрдпрд╡рд░реНрддреА рдЙрддреНрд╕реБрдХ рдкреНрд░реЗрдЬреЗрдВрд╕ / рдЯреНрд░рд╛рдВрдЬрд╝реЛрдЬрд╝ рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ) ред

  • рдкрдХреНрд╖рд╛рдВрддрд░рд┐рдд рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ transpose / .' (рдХреЗ рд░реВрдк рдореЗрдВ рд╣реА рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде adjoint )ред

  • рд╕рд░рдгреА-рдлреНрд▓рд┐рдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ permutedims(C, (2, 1)) рдХреЗ рд▓рд┐рдП рджреЛ рдЖрдпрд╛рдореА C рдФрд░ reshape(C, 1, length(C)) рдПрдХ рдЖрдпрд╛рдореА рдХреЗ рд▓рд┐рдП C ред

рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдореБрджреНрджреЛрдВ

  1. 5332: A[c|t]_(mul|rdiv|ldiv)_B[c|t] рдХрдо рдХрд░рдиреЗ рдФрд░ рд╡рд┐рдзрд┐ рдирд╛рдореЛрдВ рдХреЗ рд╕рдВрдмрджреНрдз рдХреЙрдореНрдмреАрдиреЗрдЯрд░рд┐рдпрд▓ рд╕рдВрдЧреНрд░рд╣ рдХреЛ 1.0 рд╕реЗ рдЧрд╛рдпрдм рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдХрдорд┐рдВрдЧ / рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд▓рд╕реА рд╕рд╣рд╛рдпрдХ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

  2. 13171: Adjoint (n├йe ctranspose ) рдФрд░ рдкреВрд░реНрд╡ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп transpose(x::Any) = x , ctranspose(x::Any) = conj(x) , рдФрд░ conj(x::Any) = x рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдиреЛ-рдСрдк рдлрд╝реЙрд▓рдмреИрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░рдгреА-рдлреНрд▓рд┐рдк рдХреЗ рд╕рд╛рде рдкреВрд░реНрд╡рд╕рдВрдмрдВрдзрд┐рдд рдереЗред рдЗрди рдХрдорд┐рдпреЛрдВ рдиреЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ [c]transpose рдСрдкрд░реЗрд╢рди рдХрд┐рдП, рдЬреЛ рдЪреБрдкрдЪрд╛рдк рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ (рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ) рдЙрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП [c]transpose рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛рдУрдВ рдХреЛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЪреБрдкрдЪрд╛рдк рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдирд╛ рдмреБрд░реА рдЦрдмрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрди рдХрдорд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ (# 17075)ред рдЕрдзрд┐рдХ рдореМрди рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рдирд╣реАрдВ рджреЗрдирд╛ рдорд╣рд╛рди рд╣реЛрдЧрд╛ред

  3. 17075, # 17374, # 19205: рдкреВрд░реНрд╡рд╡рд░реНрддреА рдХрдорд┐рдпреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдХреЗ рд╕рд░рдгреА-рдлреНрд▓рд┐рдк рдХреЛ рдХрдо рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдФрд░ (рдорд╛рдлреА, рдореЗрд░реА рдЧрд▓рддреА) рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрдо-рд╕реЗ-рдорд╣рд╛рди рдорд╣рд╛рди рдкрджрд╛рд╡рдирдд рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ, рдЙрд╕ рдирд┐рд╖реНрдХрд╛рд╕рди (рдХреНрд╖рдгрд┐рдХ рд░реВрдк рд╕реЗ) рдиреЗ рд╢рд┐рдХрд╛рдпрддреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ рджрд┐рдпрд╛ред рд╕рд░рдгреА-рдлреНрд▓рд┐рдк рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЭреБрдХрд╛рд╡ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

  4. 21037: 1.0 рдХреЗ рд▓рд┐рдП рдЕрдм-рднреНрд░рд╛рдордХ .' рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╣рдЯрд╛рдирд╛ рдкреНрдпрд╛рд░рд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реНрдпреБрдХреНрдд рд╡рд┐рд╢реЗрд╖ рд▓реЛрдЕрд░рд┐рдВрдЧ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрди рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╛рдЗрди рдЙрджреНрджреЗрд╢реНрдп

рд╡рд┐рд╢реЗрд╖ рдирд┐рдЪрд▓реА рдФрд░ рд╕рдВрдмрджреНрдз рд╡рд┐рдзрд┐ рдирд╛рдореЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВ, рдореМрди рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ, рд╕рдВрдХреНрд░рдордг рдФрд░ рд╕рд░рдгреА рдлреНрд▓рд┐рдк рдХреЗ рд▓рд┐рдП рд╕рд╣рдЬ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЭреБрдХрд╛рд╡ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ, рдФрд░ .' рдирд┐рдХрд╛рд▓реЗрдВред рдиреНрдпреВрдирддрдо рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдЯреВрдЯрдиреЗ рдХреЗ рд╕рд╛рде рдкреВрд░реНрд╡рд╡рд░реНрддреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡

рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рджреЛ рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  1. рдХреЙрд▓ adjoint adjoint , conjadjoint ("conjugate adjoint"), рдФрд░ рд╕рд░рдгреА transpose рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред adjoint рдФрд░ conjadjoint LinAlg , рдФрд░ transpose Base рдореЗрдВ рдЬреАрддреЗ рд╣реИрдВред

  2. рдХреЙрд▓ adjoint adjoint , transpose , рдФрд░ рд╕рд░рдгреА-рдлреНрд▓рд┐рдк flip ред adjoint рдФрд░ transpose LinAlg , рдФрд░ flip Base рдореЗрдВ рдЬреАрддреЗ рд╣реИрдВред

рдкрд╣рд▓реЗ рдмреНрд▓рд╢ рдкрд░ рдпреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗрд╡рд▓ рд╕рддрд╣реА рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдЧреЗ рдХреА рдкрд░реАрдХреНрд╖рд╛ рд╕реЗ рдЧрд╣рд░реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдВрддрд░ рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИред рдЗрди рдирд╛рдордХрд░рдг рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рддрд╣реА рдЧреБрдгреЛрдВ рдХреА рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реБрдП, рдЖрдЗрдП рдЙрди рдЧрд╣рди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдВрддрд░реЛрдВ рдкрд░ рдПрдХ рдирдЬрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред

рдЕрдВрддрд░, рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рджреГрд╢реНрдп

  1. рдЬрдЯрд┐рд▓рддрд╛:

    рд╕рд░рдгреА-рдлреНрд▓рд┐рдк transpose рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡, LinAlg рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рд░рдгреА-рдлреНрд▓рд┐рдк рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред рдирддреАрдЬрддрди, LinAlg рдХреЛ рдЖрдо рд╕рдВрдЪрд╛рд▓рди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдкреНрд░рдХрд╛рд░ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рд╕реЗрдЯ рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП; https://github.com/JuliaLang/julia/pull/23424#issuecomment -346678279 рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдЪрд┐рддреНрд░рдг рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░реНрдЪрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддреА рд╣реИред

    рдкреНрд░рд╕реНрддрд╛рд╡ рджреЛ рдХреЗ рд▓рд┐рдП LinAlg рд╕рдорд░реНрдерди рдХреЗрд╡рд▓ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдФрд░ рдирд┐рдХрдЯрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ LinAlg рдЕрдм рдХрд░рддрд╛ рд╣реИред

  2. рдЯреВрдЯрдирд╛:

    рдкреНрд░рд╕реНрддрд╛рд╡ рдПрдХ рдореМрдЬреВрджрд╛ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рдореВрд▓ рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддрд╛ рд╣реИ: transpose -рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрдЬрд╛рдп рд╕рд░рдгреА-рдлреНрд▓рд┐рдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рднреА transpose -рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рдЧреБрдгрди рдФрд░ рдмрд╛рдИрдВ / рд╕рд╣реА-рдбрд┐рд╡реАрдЬрди рдореЗрдВ рдкрд░рд┐рдЪрд╛рд▓рди LinAlg рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрдмрджреНрдз transpose рдЕрд░реНрде рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред) рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рд╣реИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдЪреБрдк рдЯреВрдЯрдирд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рднреА рд╡рд░реНрддрдорд╛рди рд╢рдмреНрджрд╛рд░реНрде рдкрд░ (рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рдпрд╛ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ) рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

    рдкреНрд░рд╕реНрддрд╛рд╡ рджреЛ рд╕рднреА рдореМрдЬреВрджрд╛ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рдореВрд▓ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред

  3. рдпреБрдЧреНрдорди:

    рдкреНрд░рд╕реНрддрд╛рд╡ рдПрдХ рдПрдХ рд░реЗрдЦреАрдп рдмреАрдЬреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛ (рдкрдХреНрд╖рд╛рдВрддрд░рд┐рдд) рдореЗрдВ рд▓рд╛рддрд╛ рд╣реИ Base рдореЗрдВ, рдФрд░ рдПрдХ рд╕рд╛рд░-рд╕рд░рдгреА рдЕрд╡рдзрд╛рд░рдгрд╛ (рд╕рд░рдгреА-рдлреНрд▓рд┐рдк) LinAlg , рджреГрдврд╝рддрд╛ рд╕реЗ рдпреБрдЧреНрдорди Base рдФрд░ LinAlg ред

    рдкреНрд░рд╕реНрддрд╛рд╡ рджреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╛рд░ рд╕рд╛рд░ рдФрд░ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдЪреАрдЬреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреВрд░реНрд╡ рдХреЛ рдХреЗрд╡рд▓ рдЖрдзрд╛рд░ рдореЗрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдХреЗрд╡рд▓ LinAlg рдореЗрдВ рд░рд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдирдпрд╛ рдпреБрдЧреНрдорди рдирд╣реАрдВ рд╣реИред

  4. рдореМрди рдмрдирд╛рдо рдЬреЛрд░ рд╕реЗ рд╡рд┐рдлрд▓рддрд╛:

    рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдЪреБрдкрдЪрд╛рдк рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ transpose рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ, рдЯреНрд░рд╛рдВрд╕рдкреЛрдЯреЗрдВрдЯ рд╢рдмреНрджрд╛рд░реНрде (рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕рд░рдгреА-рдлреНрд▓рд┐рдк рд╢рдмреНрджрд╛рд░реНрде рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ)ред

    рдкреНрд░рд╕реНрддрд╛рд╡ рджреЛ рдХреЗ рддрд╣рдд рдПрдирд╛рд▓реЙрдЧ рдПрдХ рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд░рдгреА рдкрд░ transpose рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рд╕рд░рдгреА-рдлреНрд▓рд┐рдк рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, transpose рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ flip рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВред

  5. .' : .' рди рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рддрд░реНрдХ transpose рдХреА рд▓рдВрдмрд╛рдИ рд╣реИред рдкреНрд░рд╕реНрддрд╛рд╡ рдПрдХ рдиреЗ .' рдХреЛ transpose рдФрд░ conjadjoint , рдЬреЛ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдкреНрд░рд╕реНрддрд╛рд╡ рджреЛ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдирд╛рдо flip рдФрд░ transpose рдХрд░рддрд╛ рд╣реИред

1.0 рдХреЗ рд░рд╛рд╕реНрддреЛрдВ рдореЗрдВ рдЕрдВрддрд░

рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рддрд╣рдд 1.0 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ? 1.0 рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЛ рдХреЗ рддрд╣рдд рд╕рд░рд▓ рд╣реИ, рддреЛ рдЪрд▓реЛ рд╡рд╣рд╛рдБ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдкреНрд░рд╕реНрддрд╛рд╡ рджреЛ рдХреЗ рддрд╣рдд 1.0 рдкрде

  1. LinAlg рдореЗрдВ рдЖрд▓рд╕реА рдирд┐рдХрдЯрддрд╛ рдФрд░ рдЖрд╡рд░рдг рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ, Adjoint рдФрд░ Transpose рдХрд╣реЗрдВред рдЙрди рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдкреНрд░реЗрд╖рдг рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд A[c|t]_{mul|ldiv|rdiv}_B[c|t][!] рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХреЛрдб рд╡рд╛рд▓реЗ mul[!] / ldiv[!] / rdiv[!] рдкрд░рд┐рдЪрдп рдХрд░реЗрдВред рдкреВрд░реНрд╡ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЫреЛрдЯреЗ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдж рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВред

    рдпрд╣ рдХрджрдо рдХреБрдЫ рднреА рдирд╣реАрдВ рддреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рддреБрд░рдВрдд .' рдХреЗ рд╡рд┐рд╢реЗрд╖ рд▓реЛрдЕрд░рд┐рдВрдЧ рдФрд░ рдбреЗрдкреНрд░рд┐рд╕рд┐рдПрд╢рди рдХреЛ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ:

  2. A[c|t]_{mul|ldiv|rdiv}_B[c|t] рдкреИрджрд╛рд╡рд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рд╢реЗрд╖ рдХрдорд┐рдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ ' / .' Adjoint / Transpose ; рдкреВрд░реНрд╡ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреАрдЪреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ A[c|t]_{mul|ldiv|rdiv}_B[c|t] рдХреЙрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп mul / ldiv / rdiv рдХреЙрд▓реНрд╕ рдмрдиреЗрдВред A[c|t]_{mul|ldiv|rdiv}_B[c|t][!] рд╕реЗ mul[!] / ldiv[!] / rdiv[!] рд╡рд┐рдзрд┐рдпрд╛рдБред .' рдШрдЯрд╛рдПрдБред

    рдпреЗ рдХрджрдо 0.7 рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (1) рдХреЛрдб рд╡рд┐рд╢реЗрд╖ рд╣рд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рдХрд░рдиреЗ рдкрд░ рднрд░реЛрд╕рд╛: рд╡реЗ рджреЛ рдмрд╛рддреЗрдВ рдХреЗрд╡рд▓ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ A[c|t]_{mul|ldiv|rdiv}_B[c|t] рдЧреИрд░ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ Base / LinAlg рдкреНрд░рдХрд╛рд░ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ MethodError s рдХрд╛ рд╕рдВрдХреЗрдд рд╣реЛрдЧрд╛ рдХрд┐ рдирдИ рдХрдо рдкреИрджрд╛рд╡рд╛рд░ рдХреНрдпрд╛ рд╣реИ / рдЯреВрдЯреЗ рд╣реБрдП рдХреЛрдб рдХреА рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред (2) рдЕрд▓рдЧ-рдерд▓рдЧ ' s / .' s рдкрд░ рдирд┐рд░реНрднрд░ рдХреЛрдб рд╕рдЦреНрддреА рд╕реЗ рдмрд░реНрддрд╛рд╡ рдХрд░рдиреЗ рд╕реЗ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдлрд▓рддрд╛ рдореЛрдб рд╕реНрдкрд╖реНрдЯ MethodError s рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪрд╛рд░реЛрдВ рдУрд░, рдЯреВрдЯрдирд╛ рд╕реАрдорд┐рдд рд╣реИ рдФрд░ рдЬреЛрд░ рд╕реЗред

    рдФрд░ рдпрд╣ 1.0 рдХреЗ рд▓рд┐рдП рдХрдбрд╝рд╛рдИ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред

    рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, Adjoint(A) / Transpose(A) рдЖрд▓рд╕реА рдЕрдзрд┐рдирд┐рд░реНрдгрдп рдФрд░ рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╣реЛрдЧрд╛, рдФрд░ adjoint(A) / transpose(A) рдЙрддреНрд╕реБрдХ рдЖрд╕рдиреНрди рдФрд░ рдкрд╛рд░рдЧрдорди рд╣реЛрдЧрд╛ред рдмрд╛рдж рдХреЗ рдирд╛рдо рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛, рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛ, рддреЛ 0.7 рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рд╡рд░реНрддрдиреА рдХреЗ рд▓рд┐рдП рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП eagereval(Adjoint(A)) / eagereval(Transpose(A)) eagereval eageradjoint(A) / eagertranspose(A) ред рд╡рдВрдЪрди рдорд╛рдорд▓реЗ рдореЗрдВ, adjoint / transpose рдлрд┐рд░ 1.0 рдореЗрдВ рдкреБрдирд░реНрдЦрд░реАрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ Adjoint(A) / Transpose(A) рдЖрд╕рдкрд╛рд╕, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реЛрдЧрд╛) рдЬрд╝рд░реВрд░реА)ред

    рдЖрдЦрд┐рд░рдХрд╛рд░...

  3. flip рдФрд░ / рдпрд╛ Flip Base рдкрд░рд┐рдЪрдп рджреЗрдВред рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЬреЛрдбрд╝ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди 1.x рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рддрд╣рдд 1.0 рдкрде

рдкреНрд░рд╕реНрддрд╛рд╡ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдиреАрдЪреЗ рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░рд╛рд╕реНрддреЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рджреА рдЧрдИ рд╣реИред рдкрд╣рд▓рд╛ рдкрде 0.7 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рдореЗрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдореМрди рд╡рд┐рдЪреНрдЫреЗрдж рд╢рд╛рдорд┐рд▓ рд╣реИред рджреВрд╕рд░рд╛ рд░рд╛рд╕реНрддрд╛ рдореВрдХ рдЯреВрдЯрдиреЗ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рд╢рд╛рдорд┐рд▓ рд╣реИ 0.7-> 1.0ред рджреЛрдиреЛрдВ рд░реВрдкрд░реЗрдЦрд╛рдПрдБ рд▓рдЧрд╛рддрд╛рд░ рдХреЛрдбрдмреЗрд╕ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреА рд╣реИрдВ; рдХрдо рдирд┐рд░рдВрддрд░ рд╕рдордХрдХреНрд╖ рдХреБрдЫ рдХрд╛рд░реНрдп / рдордВрдерди рдХреЛ рд╕рдореЗрдХрд┐рдд / рдЯрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрднрд╛рд╡рдирд╛ рдЕрдзрд┐рдХ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рдФрд░ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╡рдг рд╣реЛрдЧреАред рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдХрд╛рдо рдкрд╣рд▓реЗ рдорд╛рд░реНрдЧ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВред

рдкреНрд░рд╕реНрддрд╛рд╡ рдПрдХ рдХреЗ рддрд╣рдд рдкрд╣рд▓рд╛ рд░рд╛рд╕реНрддрд╛ (рдореВрдХ рдЯреВрдЯрдиреЗ рдХреЗ рд╕рд╛рде)
  1. transpose рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рд╕рд░рдгреА-рдлрд╝реНрд▓рд┐рдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рднреА transpose -рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рднреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА A[c|t]_{mul|ldiv|rdiv}_B[c|t][!] рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╢реБрд░реБрдЖрдд At_... рдпрд╛ ..._Bt[!] рдЦрд╝рддреНрдо рд╣реЛрдиреЗ рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Symmetric / issymmetric рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рднреА рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред transpose рдХреЛ Base ред

    рдпреЗ рдмрджрд▓рд╛рд╡ рдЪреБрдкрдЪрд╛рдк рдФрд░ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЯреВрдЯреЗрдВрдЧреЗред

  2. conjadjoint LinAlg рдкрд░рд┐рдЪрдп рджреЗрдВред рдЗрд╕ рдЪрд░рдг рдХреЛ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдЪрд░рдг рдореЗрдВ рдЫреБрдЖ рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдореВрд▓ рд╢рдмреНрджрд╛рд░реНрде рд░реВрдк рдореЗрдВ, рдФрд░ рдЕрдм conjadjoint ( Aca_... рдФрд░ ..._Bca[!] рдирд╛рдо рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╡рд┐рднрд┐рдиреНрди рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде) ред рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рде рд╕рд░рдгреА-рдлреНрд▓рд┐рдк (рдЕрдм transpose ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЕрдм conjadjoint ), рдФрд░ LinAlg рдореЗрдВ рдЖрд╕рдиреНрди рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) ca A[c|t|ca]_{mul|ldiv|rdiv}_B[c|t|ca][!] рдХреЗ рдмреАрдЪ

  3. рдЖрд▓рд╕реА adjoint рдФрд░ рдкрдХреНрд╖рд╛рдВрддрд░рд┐рдд (рдмреБрд▓рд╛рдпрд╛ рдкрд░рд┐рдЪрдп conjadjoint рдореЗрдВ) LinAlg , рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ Adjoint рдФрд░ ConjAdjoint ред рдПрдХ рдЖрд▓рд╕реА рд╕рд░рдгреА-рдлреНрд▓рд┐рдк (рдмреБрд▓рд╛рдпрд╛ рдкрд░рд┐рдЪрдп transpose рдореЗрдВ) рдкреНрд░рдХрд╛рд░ рдЖрд╡рд░рдг Base , рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ Transpose ред рдЙрди рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдкреНрд░реЗрд╖рдг рдФрд░ рдЗрд╕реА A[c|t|ca]_{mul|ldiv|rdiv}_B[c|t|ca][!] рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХреЛрдб рд╡рд╛рд▓реЗ mul[!] / ldiv[!] / rdiv[!] рддрд░реАрдХреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдВред рдкреВрд░реНрд╡ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЫреЛрдЯреЗ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдж рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВред

  4. A[c|t]_{mul|ldiv|rdiv}_B[c|t] рдкреИрджрд╛рд╡рд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рд╢реЗрд╖ рдХрдорд┐рдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ ' / .' Adjoint / Transpose ; рдкреВрд░реНрд╡-рд╡рд┐рд╢реЗрд╖-рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдо рдХрд┐рдП рдЧрдП рднрд╛рд╡ A[c|t]_{mul|ldiv|rdiv}_B[c|t] рдХреЙрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп mul / ldiv / rdiv рдХреЙрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╢рдмреНрджрд╛рд░реНрде рдЪреБрдкрдЪрд╛рдк рдмрджрд▓ рдЬрд╛рдПрдЧрд╛)ред A[c|t]_{mul|ldiv|rdiv}_B[c|t][!] рд▓реЗрдХрд░ mul[!] / ldiv[!] / rdiv[!] рддрд░реАрдХреЗред рдЗрд╕реА рддрд░рд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП Aca_... / ...Bca[!] рддрд░реАрдХреЛрдВ рдХреЛ mul[!] / ldiv[!] / rdiv[!] рд╕рдордХрдХреНрд╖реЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣рдЯрд╛ рджреЗрдВред .' рдбрд┐рдкреНрд░реЗрдХреНрдЯ рдХрд░реЗрдВред

рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ 0.7 рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореМрдЬреВрджрд╛ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╡реНрдпрд╛рдкрдХ, рдореВрдХ рдЯреВрдЯрди рд╣реЛрдЧреАред рд╡рд┐рд╢реЗрд╖ рдХрдо рд╣рдЯрд╛рдиреЗ рд╕реЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдПрдХ рд╣реА рд╕реАрдорд┐рдд, рдЬрд╝реЛрд░ рд╕реЗ рдЯреВрдЯрдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ Adjoint(A) / Transpose(A) / ConjAdjoint(A) рдХреНрд░рдорд╢рдГ рдЖрд▓рд╕реА adjoint, рд╕рд░рдгреА-рдлреНрд▓рд┐рдк, рдФрд░ рд╣рд╕реНрддрд╛рдВрддрд░рдг, рдФрд░ adjoint(A) / transpose(A) рдорд┐рд▓реЗрдЧрд╛ред / conjadjoint(A) рдХреНрд░рдорд╢рдГ рдЙрддреНрд╕реБрдХрддрд╛, рд╕рд░рдгреА-рдлреНрд▓рд┐рдк рдФрд░ рд╕рдВрдХреНрд░рдордг рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдВрдЧреЗред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдирд╛рдо рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛, рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛ, рддреЛ рдХреБрдЫ рдЕрдиреНрдп рд╡рд░реНрддрдиреА рдХреЛ рднреА 0.7 (рд░реЗрдлрд░реАред рдКрдкрд░) рдореЗрдВ рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдп / рдордВрдерди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП ConjAdjoint рдкрд╣рд▓реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдзрд┐рдХ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рдФрд░ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╡рдг рд╣реЛрдЧрд╛ред

рдкреНрд░рд╕реНрддрд╛рд╡ рдПрдХ рдХреЗ рддрд╣рдд рджреВрд╕рд░рд╛ рд░рд╛рд╕реНрддрд╛ (рдореМрди рдЯреВрдЯрдиреЗ рд╕реЗ рдмрдЪрдирд╛)
  1. рдЙрддреНрд╕реБрдХ рдкрд░рд┐рдЪрдп conjadjoint рдореЗрдВ LinAlg ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ transpose (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП A[c|t]_{mul|ldiv|rdiv}_B[c|t][!] t ) conjadjoint рдФрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рдирд╛рдореЛрдВ рд╕реЗ рдпреБрдХреНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВред рдирдП conjadjoint рд╕рдордХрдХреНрд╖реЛрдВ рдХреЗ рд╕рднреА transpose -рд╕рдВрдмрдВрдзрд┐рдд рдирд╛рдо рдЫреЛрдЯреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдмрдирд╛рдУред transpose conjadjoint рд╕рдордХрдХреНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА transpose -рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╛рдо рд▓рд┐рдЦреЗрдВред

  2. рдЖрд▓рд╕реА adjoint рдФрд░ рдкрдХреНрд╖рд╛рдВрддрд░рд┐рдд (рдмреБрд▓рд╛рдпрд╛ рдкрд░рд┐рдЪрдп conjadjoint рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдЖрд╡рд░рдг) LinAlg , рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ Adjoint рдФрд░ ConjAdjoint ред рдЙрди рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдкреНрд░реЗрд╖рдг рдФрд░ рдЗрд╕реА A[c|ca]_{mul|ldiv|rdiv}_B[c|ca][!] рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХреЛрдб рд╡рд╛рд▓реЗ mul[!] / ldiv[!] / rdiv[!] рддрд░реАрдХреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдВред рдкреВрд░реНрд╡ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЫреЛрдЯреЗ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдж рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВред

  3. Base рдореЗрдВ рдПрдХ рдЖрд▓рд╕реА рд╕рд░рдгреА-рдлреНрд▓рд┐рдк рдЖрд╡рд░рдг рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдВ, рдЬрд┐рд╕реЗ Transpose (рдХреБрдЫ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА transpose рдХреЛ conjadjoint рдЯреНрд░рд╛рдВрд╕рдЬреЗрдВрдб рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рдШрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд╕рд░рдгреА-рдлреНрд▓рд┐рдк ( Transpose ) рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЛрдВ рдХреЛ Base рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝реЗрдВред рдлрд┐рд░ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП LinAlg рд╡рд┐рдзрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдПрдХ рд╕рд╛рде рд╕рд░рдгреА-рдлреНрд▓рд┐рдк (рдЕрдм Transpose , рд▓реЗрдХрд┐рди transpose ) рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдЕрдм conjadjoint рдФрд░ ConjAdjoint ), рдФрд░ рдореЗрдВ adjoint LinAlg рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП mul[!] / rdiv[!] / ldiv[!] рд╕рдордХрдХреНрд╖реЛрдВ рдХреА A[c|t|ca]_{mul|ldiv|rdiv}_B[c|t|ca][!] рд╡рд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ)ред

  4. A[c|t]_{mul|ldiv|rdiv}_B[c|t] рдкреИрджрд╛рд╡рд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рд╢реЗрд╖ рдХрдорд┐рдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ ' / .' Adjoint / Transpose ; рдкреВрд░реНрд╡ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреАрдЪреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ A[c|t]_{mul|ldiv|rdiv}_B[c|t] рдХреЙрд▓ рдЙрдкрдЬрддреА рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп mul / ldiv / rdiv рдХреЙрд▓реНрд╕ рдмрдиреЗрдВред A[c|t]_{mul|ldiv|rdiv}_B[c|t][!] рд▓реЗрдХрд░ mul[!] / ldiv[!] / rdiv[!] рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВред .' рдбрд┐рдкреНрд░реЗрдХреНрдЯ рдХрд░реЗрдВред

рдкреВрд░реНрд╡рд╡рд░реНрддреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ 0.7 рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреЛрдИ рдореВрдХ рдЯреВрдЯрдирд╛ рдирд╣реАрдВ, рдХреЗрд╡рд▓ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдХрдо рд╣рдЯрд╛рдиреЗ рд╕реЗ рдЬреЛрд░ рд╕реЗ рдЯреВрдЯрдирд╛ред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ Adjoint(A) / Transpose(A) / ConjAdjoint(A) рдХреНрд░рдорд╢рдГ рдЖрд▓рд╕реА рд╕рд╣рд╛рдпрдХ, рд╕рд░рдгреА-рдлреНрд▓рд┐рдк, рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред adjoint(A) / conjadjoint(A) рдХреНрд░рдорд╢рдГ рдЙрддреНрд╕реБрдХрддрд╛ рдФрд░ рд╕рдВрдХреНрд░рдордг рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдВрдЧреЗред transpose(A) conjadjoint рдШрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛; transpose 1.0 рдореЗрдВ рдкреБрдирд░реНрдЦрд░реАрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рд╡рд╛рдВрдЫрд┐рддред adjoint рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рдмрдиреЗ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ 0.7 рдореЗрдВ рдПрдХ рдФрд░ рд╡рд░реНрддрдиреА рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдкрджрд╛рд╡рдирдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред conjadjoint рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╕реАрдзреЗ 0.7 рдореЗрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреБрдЫ рдХрд╛рд░реНрдп / рдордВрдерди рд╕реЗ рдмрдЪрддреЗ рд╣реБрдП, 1 рдФрд░ 2 рдХреЛ рдХреБрдЫ рд╣рдж рддрдХ рд╕рдореЗрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдзрд┐рдХ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рдФрд░ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╡рдг рд╣реЛрдЧрд╛ред

#

рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдорд╣рд╛рди рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЖрдо рддреМрд░ рдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡ 2 рд╕реЗ рднреА рд╕рд╣рдордд рд╣реВрдВ, рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░рдг рдХреЗ рд╕рд╛рде рдХрд┐ рд╕рдВрдпреБрдЧреНрдорди рд╕рдореАрдкрд╡рд░реНрддреА рд╕рднреА рдорд╛рдирдХ рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдФрд░ рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдпрд╣ рдмрд╣реБрдд рднреНрд░рд╛рдордХ рд▓рдЧрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЖрд╕рдиреНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрднреА-рдХрднреА рдЧрдгрд┐рдд рдХреА рдХреБрдЫ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рд╕рд╛рджреЗ рдкрд╛рд░рдЧрдорди рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рдг рд╕рдВрдпреБрдЧреНрдо рд╣реИ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдпреБрдЧреНрдорди рд╣реЛрддрд╛ рд╣реИ)ред

рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ / рдкреНрд░реЗрд░рд┐рдд рдерд╛ рдХрд┐ рдЧрдгрд┐рддреАрдп transpose рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдХреБрдЫ рдирд┐рдЬреА рдЪрд░реНрдЪрд╛ (рдХрд╣реАрдВ 14 рд╕реЗ 18 рдЬреБрд▓рд╛рдИ рдХреЗ рдмреАрдЪ) рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЕрдЪрд╛рдирдХ рдПрдХ рдЧрдгрд┐рддреАрдп рдФрд░ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдмрджрд▓рд╛рд╡ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
@ Sacha0 рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ

рдпрд╣ рдХреИрд╕реЗ рдкреИрджрд╛ рд╣реБрдЖ: рдкрд╣рд▓реЗ "рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╕рдВрдХреНрд░рдордг" рдХреЛ "рдЧрдгрд┐рддреАрдп рд╕рдорд╛рдпреЛрдЬрди" / "рдЧрдгрд┐рддреАрдп рд╕рдВрдХреНрд░рдордг" рдХреЗ рд╕рд╛рде рдХрдмреВрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ (рд╕рдВрд░рдЪрдирд╛рддреНрдордХ) рд╣рд╕реНрддрд╛рдВрддрд░рдг "рд╕реНрдердЧрд┐рдд" рдХреЗ рд╕рд╛рде рдЬрдмреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ "рдЧрдгрд┐рддреАрдп рд╕рдВрдХреНрд░рдордг" рдХрд╣реАрдВ рд╕реЗ рднреА рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ? рдкреВрд░реНрдгрддрд╛ / рдЖрддреНрдо-рд╕рдорддрд╛ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдФрд░ рдХреНрдпреЛрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рджреЛрд╣рд░рд╛рдпрд╛ / рд╕рдВрдХреНрд╖реЗрдк рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдЙрд╕ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рд░ рдЧрдгрд┐рддреАрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ transpose рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд░реИрдЦрд┐рдХ рдирдХреНрд╢реЗ рдкрд░ рдПрдХ RowVector s рдкрд░, рдЕрд░реНрдерд╛рдд рдпрд╣ RowVector рд╕реЗ RowVector рдореИрдк рдХрд░реЗрдЧрд╛ред рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдХрдореА рдХреЗ рддрд░реНрдХ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рджреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ (рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░) рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдирдП рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд flip рд╕рдВрдЪрд╛рд▓рдиред

рдзрдиреНрдпрд╡рд╛рдж @ Sacha0 рдорд╣рд╛рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡ 2 рдХрд╛ рдкрдХреНрд╖ рд▓реЗрддрд╛ рд╣реВрдВ (рдХреЙрд▓ adjoint , transpose , рдФрд░ рд╕рд░рдгреА-рдлреНрд▓рд┐рдк flip ред adjoint рдФрд░ transpose рд▓рд╛рдЗрд╡ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ LinAlg , рдФрд░ flip Base ред)ред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо (рдЬреЛ рдкреНрд░рд╛рдердорд┐рдХ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ v1.0 рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдВ рдПрдХ рдХреНрд▓реАрдирд░ рддрд░реАрдХреЗ рдХреА рдЕрдиреБрдорддрд┐ рднреА рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреА рдмрд╛рддреЛрдВ рд╕реЗ рдКрдкрд░ рд╕рд╣рдордд рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрди рдмрд╛рддреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВред

рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рддрд░реНрдХ рдпрд╣ рд╣реИ рдХрд┐ .' -syntax рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЙрджрд╛ Matrix{String} рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдорд╛рдирддреЗ рд╣реБрдП (# 21037) рджреВрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ transpose(A) рдХреЗ рдмрдЬрд╛рдп A.' , рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ flip рд╕рдорд╛рд░реЛрд╣ рдПрдХ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдХрдо рдФрд░ transpose(A) рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ permutedims(A, (2,1)) рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ)ред

LinAlg рдФрд░ Base рдмреАрдЪ рдХрд╛ рдбрд┐рдХреВрдкрд┐рдВрдЧ рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡ 2 рджреЗрддрд╛ рд╣реИ рд╡рд╣ рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рди рдХреЗрд╡рд▓ LinAlg рдХреЗрд╡рд▓ Transpose рдФрд░ Adjoint рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЗрдЦрднрд╛рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо transpose рдФрд░ adjoint LinAlg рдСрдкрд░реЗрд╢рди, рдФрд░ flip рдПрдХ рд╕рд╛рдорд╛рдиреНрдп AbstractMatrix рдЪреАрдЬ рдЬреЛ рд╕рд┐рд░реНрдл рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЭрдЯрдХрддреА рд╣реИред

рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ transpose(::Matrix{String}) рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╢рд┐рдХрд╛рдпрддреЗрдВ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИрдВ рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ? рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡реИрд╕реЗ рднреА рд╢реБрд░реВ рд╕реЗ рдлрд╝реНрд▓рд┐рдк рдХрд┐рдП рдЧрдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдирд╛рдордХрд░рдг рдпреЛрдЬрдирд╛ (рдкреНрд░рд╕реНрддрд╛рд╡ 2) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЕрдиреБрдЧрд╛рдореА рдФрд░ рдкрд╛рд░рдЧрдорди рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рдмрд╣реБрдд рдорд╛рдирдХ рд╢рдмреНрдж рд╣реИрдВ, рдФрд░ рдпрд╣ рдХрдо рдЯреВрдЯ рд░рд╣рд╛ рд╣реИ ...

рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣рд╛ рдХрд┐ рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ / рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдПрдХ рдЧрдгрд┐рддреАрдп рдкрд░рд┐рд╡рд░реНрддрди рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

@ рдЬреВрдереЛ рдпрд╣ рдПрдХ рд╣реА рддрд░реНрдХ рд╣реИ рдХрд┐ рд╕рдиреНрдирд┐рдХрдЯ рд╣реИ, рдпрд╣ рд╕рдВрдпреБрдЧреНрдорд┐рдд рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╡реИрдз рд░реИрдВрдХ-рдПрдХ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рд░реИрдЦрд┐рдХ рдкрд░рд┐рдЪрд╛рд▓рдХ рд╣реИрдВ, рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдФрд░ рдирд┐рдХрдЯрд╡рд░реНрддреА рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВ), рдФрд░ рдПрдХ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдиреНрдирд┐рдХрдЯрди рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИ ...)ред рд▓реЛрдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЗрд╕реНрдЯреЗрдб, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд╕рд╛рде рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЕрднреА рднреА "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдпрд╛ рд╕рджрд┐рд╢ рдХреЗ рдирд┐рдХрдЯ" рдХреЗ рд▓рд┐рдП .' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдореИрдВ рднреА рдРрд╕рд╛ рдХрд░рддрд╛ рдерд╛ред рдпрд╣рд╛рдВ, ' рди рдХреЗрд╡рд▓ рдорд╛рдиреНрдп рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рднреА рд╣реЛрдЧрд╛ (рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЬреЛ рдЬрдЯрд┐рд▓ рдореВрд▓реНрдпрд╡рд╛рди рдФрд░ / рдпрд╛ рдиреЗрд╕реНрдЯреЗрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рдиреЗрд╕реНрдЯреЗрдб рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдореИрдЯреНрд░рд┐рд╕ рдкрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдВрдХреНрд░рдордг рдХрд╛ рдЕрдзрд┐рдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рд╕рдореАрдХрд░рдг рдЖрдкрдХреЛ conj(adjoint(a)) , рдЬреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рджреБрд░реНрд▓рдн рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ (рдпрд╣ рджреБрд░реНрд▓рдн рд╣реИ рдХрд┐ рдореИрдВ рдЦреБрд╢ рд╣реВрдБ рдЕрдЧрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ - рдКрдкрд░ рдФрд░ рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реБрдП рд╡рд┐рднрд┐рдиреНрди рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕реЗ "рдЧрдгрд┐рддреАрдп рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг" рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЪреАрдЬреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдореИрдВрдиреЗ conjadoint рдЪреБрдирд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдорд╣рд╛рди рд╢рдмреНрджрд╛рд╡рд▓реА IMO рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд╡рд╛рдп рд╢рд╛рдпрдж transpose рд╕реНрд╡рдпрдВ)ред рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдСрдкрд░реЗрд╢рди рдЬреЛ рдПрдХ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЙрди рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рд╕реНрд╡рдпрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред

рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ transpose(::Matrix{String}) рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╢рд┐рдХрд╛рдпрддреЗрдВ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ? рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡реИрд╕реЗ рднреА рд╢реБрд░реВ рд╕реЗ рдлрд╝реНрд▓рд┐рдк рдХрд┐рдП рдЧрдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреА рдмрд╛рдд рдХрд╛рдлреА рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рд╣рд░реА (рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди) рдЙрддреНрдкрд╛рдж рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╢рд╛рдпрдж рдЗрд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдк рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрдо рд╣реИред рдЗрд╕рд▓рд┐рдП map(f, product(a, b)) рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рдмрдЬрд╛рдп рд╣рдо broadcast(f, a, transpose(b)) рдпрд╛ рдХреЗрд╡рд▓ f.(a, b.') рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреБрдЫ рдкрд╛рддреНрд░реЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╢рдХреНрддрд┐ рд╣реИред

рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░: рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рдФрд░ рднреА рдЕрдзрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП (рдЕрд░реНрдерд╛рдд flip ), рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо permutedims(a) = permutedims(a, (2,1)) рдореЗрдВ рдХреНрд░рдордЪрдп рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ flip рдЬрд┐рддрдирд╛ рдХрдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реНрдг permutedims(a, (2,1)) рдлреЙрд░реНрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдХрдо рдЕрдкреНрд░рд┐рдп рд╣реИ (рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рд┐рдЦрд╛рдиреЗ рдХрд╛ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИ)ред

( @ Sacha0 рдпрд╣рд╛рдБ рдЖрдкрдХреЗ Adjoint рдФрд░ Transpose рд░реИрдкрд░, рдпрд╛ RowVector + MappedArray рдЬреЛ рднреА рдлрд╝реНрд▓рд┐рдк рдХрд░реЗрдВ) рдХреЗ рдмреАрдЪ рдЪреБрдирд╛рд╡ рдореЗрдВред рдкрд╣рд▓реЗ рдХреА рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореИрдЯреНрд░рд┐рд╕ (рд╢рд╛рдпрдж рд╕рд┐рд░реНрдл PermutedDimsArray ), рдореИрдВ рдЕрднреА рднреА рдмрд╛рдж рдХрд╛ рдкрдХреНрд╖ рд▓реЗрддрд╛ рд╣реВрдВ ...)

рдиреЗрд╕реНрдЯреЗрдб рдЬрдЯрд┐рд▓ рдореИрдЯреНрд░рд┐рд╕ рдкрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдВрдХреНрд░рдордг рдХрд╛ рдЕрдзрд┐рдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рд╕рдореАрдХрд░рдг рдЖрдкрдХреЛ conj(adjoint(a))

рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЕрдкрдиреЗ рд╕рдореАрдХрд░рдгреЛрдВ рдореЗрдВ conj(adjoint(a)) рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреИрд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ conj рдЬреЛ рдЖрдк рдЕрдкрдиреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдФрд░ рд╢рд╛рдпрдж adjoint , рдпрд╛рдиреА рд╢рд╛рдпрдж рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ adjoint.(adjoint(a)) ред

рдпрд╣ рд╢рд╛рдпрдж рдореБрдЭреЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд / рдирд┐рд╖реНрдХрд╛рд╕рд┐рдд рдХрд░ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдкреВрд░реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВред рдореИрдВ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдХрдареЛрд░ рдХрд╛рд░рдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реИрдХреНрдЯрд░ рдФрд░ рдСрдкрд░реЗрдЯрд░ / рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рд╕реНрдХреЗрд▓рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдЫрд▓реНрд▓реЗ рджреНрд╡рд╛рд░рд╛) рд╡реЗрдХреНрдЯрд░ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдФрд░ рдЗрд╕рд▓рд┐рдП Base.LinAlg рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЦреНрдп рддрд░реНрдХ

рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдПрдХ рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕реЗ рд╕реНрдХреЗрд▓рд░ рдкрд░ рдореИрдк рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ рддреЛ 'a' * рдЕрджрд┐рд╢ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреИрд╕реЗ рдЬреВрд▓рд┐рдпрд╛ рдмреЗрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИ: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд a=[rand(2,2),rand(2,2)] рдФрд░ рдирд┐рд░реАрдХреНрд╖рдг a'*a ред рдпрд╣ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рдирд╣реАрдВ рд╣реИред рддреЛ рдХреНрдпрд╛ рдЕрдм a рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡реЗрдХреНрдЯрд░ рд╕реЗ рднрд░рд╛ рд╡реЗрдХреНрдЯрд░ рд╣реИ? рдЙрдкрд░реЛрдХреНрдд рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдХреЗрд▓рд░ рд╣реИ рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдк 2x2 рдореИрдЯреНрд░реАрд╕ рдХреА рд░рд┐рдВрдЧ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдЖрдкрдиреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЙрди рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ, рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рдгрд╛рдо рдЕрднреАрд╖реНрдЯ рд╣реИред рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЗрдирд░ рдЙрддреНрдкрд╛рдж рд╡реИрд╕реЗ рднреА рд╢рд╛рдпрдж рд╣реА рдХрднреА рдореЙрдбреНрдпреВрд▓ рдЖрджрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдмреЗрд╕ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдкрд░реЗрд╢рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рднрд▓реЗ рд╣реА рдЙрдкрд░реЛрдХреНрдд рдХрдерди рдореИрдЯреНрд░рд┐рд╕ рд╕реЗ рднрд░реЗ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд░реЗ рдкреНрд░реЗрд░рдгрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡реНрдпрд╛рдЦреНрдпрд╛ adjoint рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рд╕рдЪреНрдЪреА рдкреНрд░реЗрд░рдгрд╛ transpose (рдЬреЛ рдХрд┐ рдЧрдгрд┐рддреАрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ рдХрднреА рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдлреНрд▓рд┐рдк рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЗрдВрдбрд┐рд╕реЗрд╕ рдЕрд░реНрде рдореЗрдВ) рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдирдпрд╛ рд╕реНрдХреЗрд▓рд░ рдлрд╝реАрд▓реНрдб рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЕрдЬреАрдм рдмреЛрдЭ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ adjoint transpose conj рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВред

рддреЛ рдХреНрдпреЛрдВ, рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде, рди рдХреЗрд╡рд▓ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реИред рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╢реИрддрд╛рди рдХреЗ рд╡рдХреАрд▓ рдХреА рднреВрдорд┐рдХрд╛:

  • рдХрд┐рддрдиреЗ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рдХрдЯрд╡рд░реНрддреА рдХреЗ рд╡рд░реНрддрдорд╛рди рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ / рднрд░реЛрд╕рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
  • рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдиреНрдп рднрд╛рд╖рд╛рдПрдВ рд╣реИрдВ? (Matlab, matrices рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)

рдЬреИрд╕рд╛ рдХрд┐ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдЬрд░реВрд░реА рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдмрд╕ рд╡реИрдзрддрд╛ рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдард╛ рд░рд╣рд╛ рд╣реВрдВ (рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рднреА), рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ transpose рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдПред

рдпрд╣ рд╢рд╛рдпрдж рдореБрдЭреЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд / рдирд┐рд╖реНрдХрд╛рд╕рд┐рдд рдХрд░ рджреЗрдЧрд╛

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдордЬрд╛рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓реЛрдХрдкреНрд░рд┐рдп рд░рд╛рдп рд╣реЛрдиреЗ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреЗрд╡рд▓ рдмреБрд░рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рддрд╛ рд╣реИ, рд╡рд╣ рдкреНрд░рддрд┐рдмрдВрдз рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж рднреА рдкреНрд░рддрд┐рдмрдВрдз рд╕реНрдерд╛рдпреА рдирд╣реАрдВ рд╣реИ ред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдХрдареЛрд░ рдХрд╛рд░рдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реИрдХреНрдЯрд░ рдФрд░ рдСрдкрд░реЗрдЯрд░ / рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рд╕реНрдХреЗрд▓рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдФрд░ рдпрджрд┐ рдЖрдк рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдХреЗ рдмрдЬрд╛рдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛) )ред

рдЗрд╕ рдХрдерди рд╕реЗ рдореБрдЭреЗ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд╡реИрдХреНрдЯрд░ рдХрд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░, рдпрд╛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░, рдпрд╛ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░, рдлрд┐рд░ рднреА + рдФрд░ * scalar рд╕рд╛рде рдПрдХ рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдмрдирд╛рддрд╛ рд╣реИ (рдкреБрдирд░реНрд╕рдВрд░рдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд), рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд░реВрдк рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╕реНрдерд╛рди рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд┐ рд╡реИрдХреНрдЯрд░ рдХреЗрд╡рд▓ "рд╕реНрдХреЗрд▓рд░ рдХреЗ рдХреЙрд▓рдо" рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЧрдгрд┐рдд, рднреМрддрд┐рдХреА рдФрд░ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рджреЛрдиреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдмрдирд╛рдУ a=[rand(2,2),rand(2,2)] рдФрд░ рдирд┐рд░реАрдХреНрд╖рдг a'*a ред рдпрд╣ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ a рдХреА "рд╕реНрдХреЗрд▓рд░ рд░рд┐рдВрдЧ" 2x2 рдореИрдЯреНрд░реАрд╕ рдХреА рдЕрдВрдЧреВрдареА рд╣реИред рддреЛ рдпрд╣ рдПрдХ рднрд╛рд╖рд╛рдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рди рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЙрд╕рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣рд╕ a'*a рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ) рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдмрд▓реНрдХрд┐ рдкрд░рд┐рдкрддреНрд░ рд▓рдЧрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдПрдХ рдирдпрд╛ рд╕реНрдХреЗрд▓рд░ рдлрд╝реАрд▓реНрдб рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЕрдЬреАрдм рдмреЛрдЭ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ adjoint рдФрд░ transpose conj рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреЛрдЭ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕реМрдВрджрд░реНрдпрд╡рд╛рджреА рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ Number рдХрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рднрд▓реЗ рд╣реА рдЖрдк рдорд╛рдирддреЗ рд╣реЛрдВ рдХрд┐ Number рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рд╣реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдЗрддрдиреА рддреБрдЪреНрдЫ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдпрдж рд╣реА рдмреЛрдЭ рд╣реЛред

рддреЛ рдХреНрдпреЛрдВ, рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде, рди рдХреЗрд╡рд▓ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реИред

https://github.com/KristofferC/BlockArrays.jl/ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд :)

"рдкреНрд░рддрд┐рдмрдВрдз" рдордЬрд╛рдХ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдорд╛рдлреАред рдпрд╣ рдореЗрд░реА рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рдЖрдЧреЗ рди рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд┐рдХрдЯрддрд╛ (рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдирд╣реАрдВ) рдмрд╕ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЙрд╕ рдирд┐рд░реНрдгрдп рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рд╕рд┐рд░реНрдл рдХреБрдЫ рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@StefanKarpinski : рд╕реНрдХреЗрд▓рд░ рд░рд┐рдВрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рдореЗрдВ рд╣реИ: рдХреНрдпрд╛ 2x2 рд╕реНрд╡рдпрдВ рд╕реНрдХреЗрд▓рд░ рд╣реИрдВ, рдпрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИ рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд Number рд╕реНрдХреЗрд▓рд░ рд╣реИ?

рдкреВрд░реНрд╡ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдФрд░ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЙрди 'рд╕реНрдХреЗрд▓рд░' рдкрд░ conj рдпрд╛ adjoint рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдк рднреА рд╣реЛрдВрдЧреЗ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рдореИрдВ рдмрд╛рдж рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВред рдореИрдВ рдЕрдкрдиреА рдиреМрдХрд░реА рдореЗрдВ рд╕реБрдкрд░ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдЯреИрдВрд╕рд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╕рдореВрд╣-рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЙрдк-рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдордирдорд╛рдиреЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реИрдХреНрдЯрд░ рдХреА рдореЗрд░реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХреЙрд▓рдо рддрдХ рд╣реА рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд╡реИрдХреНрдЯрд░, рдХреНрдпрд╛ рд╡реЗ рд╕рд┐рд░реНрдл рд╢реБрджреНрдз рд╡реИрдХреНрдЯрд░ рд╣реИрдВ рдпрд╛ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рднреА рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдкреВрд░реНрд╡ рдорд╛рдорд▓реЗ рдореЗрдВ, dot(v,w) рдХреЛ рдЕрдкрдиреЗ рддрддреНрд╡реЛрдВ рдкрд░ рд╕рдВрднрд╡рддрдГ vecdot рдХреЙрд▓ рдХрд░рдХреЗ, рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдо рд╕реЗ рдХрдо vecdot(v,w) рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЕрднрд┐рдирдп рдХрд░рдХреЗ рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рддрд╛рдХрд┐ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рд╣рд╛рдпрдХ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдПрдХ рдиреНрдпреВрдирддрдо рддрдп рд╣реЛред

рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╕рд╛рди рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose рдФрд░ рдмрд╕ рдЗрд╕реЗ рдЧреИрд░-рдЧрдгрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕рдореАрдХрд░рдгреЛрдВ рдореЗрдВ рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрдгрд┐рддреАрдп рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╣реИред рдПрдХ рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ dot рдХреЛ dot рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ vecdot , рдЗрд╕рд▓рд┐рдП рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреИрдиреЛрдирд┐рдХрд▓ рдЗрдирд░ рдЙрддреНрдкрд╛рдж рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдХреНрд░рдордг рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИ .. рдФрд░ рдореИрдВ рд╕реЛрдЪ рднреА рдирд╣реАрдВ рд╕рдХрддрд╛ рдХрд┐ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИред (рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд▓реЗрдЦ рдХреЗ "рдПрдХ рд░реЗрдЦреАрдп рдирдХреНрд╢реЗ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг" рдкрд░ рд╡рд┐рдЪрд╛рд░ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЗ рдХрд╛рд░рдг рдХрдо рд╕реЗ рдХрдо рддреАрди рдЧреБрдирд╛ рд╣реИред)

рдореИрдВрдиреЗ рднреА рдЕрдХреНрд╕рд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдкрд╛рдпрд╛ рд╣реИ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЙрд╕ рдЕрд╕рдВрдЧрддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдкрд░реЗрд╢рд╛рди рдХрд░ рд░рд╣реА рд╣реИ - рд╣рдо рд░рд┐рдВрдЧ рдФрд░ рдлрд╝реАрд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд░рд╣рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ 2x2 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рдпрд╣рд╛рдБ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рди рд╣реА рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдВрдХреНрд░рдордг (рдФрд░ рдирд┐рдХрдЯрддрд╛) рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ )ред

рдореБрдЭреЗ рд╕рдордЭрд╛рдиреЗ рджреЛред рдЬрд┐рди рдЪреАрдЬреЛрдВ рд╕реЗ рдореИрдВ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╕рд╣рдордд рд╣реВрдВ

  1. рд╕реНрдХреЗрд▓рд░ рд╡реИрдз рд░реИрдВрдХ -1 рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░ рд╣реИрдВред рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП LinAlg рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдЬреИрд╕реЗ adjoint рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ adjoint(z::Complex) = conj(z) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред (рд╡реИрдХреНрдЯрд░ рдХреЗ рдкрд░реЗ рдФрд░ рд╕реНрдХреЗрдЯрд░ рдХреЗ рдореИрдЯреНрд░реАрд╕ , LinAlg рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рднреА рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рддрдХ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ) рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП - @stevengj рдЬреИрд╕реЗ рдХрд┐ рдЕрдирдВрдд рдЖрдХрд╛рд░ рдХреЗ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди (рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдерд╛рди) рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  2. рд╣рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдВ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд┐рдХ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ z = x + y*im Z = x*[1 0; 0 1] + y*[0 1; -1 0] рдФрд░ рд╕рдВрдЪрд╛рд▓рди + , - , * , / рдФрд░ \ рдЗрд╕ рд╕рдорд░реВрдкрддрд╛ рдореЗрдВ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИрдВред (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ conj(z) adjoint(Z) / transpose(Z) / flip(Z) - рдЕрдзрд┐рдХ рд╣реИ рдХрд┐ рдмрд╛рдж рдореЗрдВ)ред
  3. рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡рд░реНрддрдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреБрдирд░рд╛рд╡рд░реНрддреА adjoint рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐)ред

рдпрд╣ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Base.LinAlg 1 рдФрд░ 2 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛ, рд▓реЗрдХрд┐рди IMO 3 рдХреЗрд╡рд▓ Base рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдЧрд░ рдпрд╣ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ (рдЕрдиреНрдпрдерд╛ рдореИрдВ https: / рдЬреИрд╕реЗ рдмрд╛рд╣рд░реА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЯрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ) /github.com/KristofferC/BlockArrays.jl)ред

рдореБрдЭреЗ рдЕрдм рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╣рдо 2 рдФрд░ 3 рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдХреБрдЫ рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ ( @ рдЬреВрдереЛ рдиреЗ рдЗрд╕реЗ рднреА рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛)ред рдиреАрдЪреЗ, рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ 3. рдмреНрд▓реЙрдХ рдореИрдЯреНрд░реАрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА adjoint рдФрд░ рдЕрдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрдВ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣реИред рдЖрдЗрдП рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ 2x2 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ m = [z1 z2; z3 z4] рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдЖрдЗрд╕реЛрдореЛрд░реНрдлрд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ M = [Z1 Z2; Z3 Z4] , рдФрд░ рдПрдХ рдорд╛рдирдХ 2x2 рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ b = [m1 m2; m3 m4] рдЬрд╣рд╛рдВ m1 рдЖрджрд┐ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ рд╡рд░реНрдЧ рд╣реИред Number рдореИрдЯреНрд░рд┐рд╕реЗрд╕ред рдЖрдо рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрд╛рд░реНрдерд┐рдХ рдЙрддреНрддрд░ рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ:

| рдСрдкрд░реЗрд╢рди | z | Z | m | M | b |
| - | - | - | - | - | - |
| + , - , * | рдкреБрдирд░рд╛рд╡рд░реНрддреА | рдкреБрдирд░рд╛рд╡рд░реНрддреА | рдкреБрдирд░рд╛рд╡рд░реНрддреА | рдкреБрдирд░рд╛рд╡рд░реНрддреА | рдкреБрдирд░рд╛рд╡рд░реНрддреА |
| conj | conj(z) | Z' рдпрд╛ Z.' рдпрд╛ flip(Z) | conj.(m) | adjoint.(M) (рдпрд╛ transpose.(M) ) | conj.(b) |
| adjoint | conj(z) | Z' рдпрд╛ Z.' рдпрд╛ flip(Z) | flip(conj.(m)) рдпрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА | flip(transpose.(m)) рдпрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА | рдкреБрдирд░рд╛рд╡рд░реНрддреА |
| trace | z | Z | z1 + z4 | Z1 + Z4 | trace(m1) + trace(m4) |
| det | z | Z | z1*z4 - z2*z3 | Z1*Z3 - Z2*Z3 | det(m1) * det(m4 - m2*inv(m1)*m3) (рдпрджрд┐ m1 рдЙрд▓реНрдЯрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ ) |

trace рдФрд░ det рдЬреЛ рд╡рд╛рдкрд╕реА рдХреЗ рд╕реНрдХреЗрд▓рд░ рдХреА рддрд░рд╣ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ LinAlg рд▓рд┐рдП рд╣рдорд╛рд░реА рдЬреВрд▓рд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рд╕рдВрднрд╡рддрдГ Complex рд╣рдорд╛рд░реЗ 2x2 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХреЛ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддреА рд╣реИред trace(Z) рдЬрд╣рд╛рдВ Z = [1 0; 0 1] 2 , рдЬрдмрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ 1 рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИред рдЗрд╕реА рддрд░рд╣ rank(Z) ред

рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ 2x2 рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Number рдиреАрдЪреЗ рдЬреИрд╕реЗ рдШрдЯрд╛рдХрд░:

struct CNumber{T <: Real} <: Number
    m::Matrix{T}
end
CNumber(x::Real, y::Real) = CNumber([x y; -y x])

+(c1::CNumber, c2::CNumber) = CNumber(c1.m + c2.m)
-(c1::CNumber, c2::CNumber) = CNumber(c1.m - c2.m)
*(c1::CNumber, c2::CNumber) = CNumber(c1.m * c2.m)
/(c1::CNumber, c2::CNumber) = CNumber(c1.m / c2.m)
\(c1::CNumber, c2::CNumber) = CNumber(c1.m \ c2.m)
conj(c::CNumber) = CNumber(transpose(c.m))
zero(c::CNumber{T}) where {T} = CNumber(zero(T), zero(T))
one(c::CNumber{T}) where {T} = CNumber(one(T), one(T))

рдЗрди рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде, рд╕рд╛рдорд╛рдиреНрдп LinAlg рд╡рд┐рдзрд┐рдпрд╛рдВ рд╢рд╛рдпрдж рдареАрдХ рдХрд╛рдо рдХрд░реЗрдВрдЧреАред

рдирд┐рд╖реНрдХрд░реНрд╖ рдореИрдВ рдЗрд╕рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ: рдкреБрдирд░рд╛рд╡рд░реНрддреА adjoint рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдФрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдЗрд╕реЗ "рд╕реНрдХреЗрд▓рд░" 2x2 рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЧрдгрд┐рддреАрдп рд╢реБрджреНрдзрддрд╛ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ Z рдКрдкрд░ рд▓реЗрдмрд▓ рдХрд┐рдпрд╛ рдерд╛ред рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

рдкреЗрд╢реЗрд╡рд░реЛрдВ

  • рдмреНрд▓реЙрдХ рд╕рд░рдгреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛
  • рд╡реИрдХреНрдЯрд░ рдХреЗ рд╡реИрдХреНрдЯрд░ рд╡реИрдз рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдмреНрд▓реЙрдХ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕, + , * , conj , рдЖрджрд┐ рдХреЗ рддрд╣рдд рдорд╛рдиреНрдп рд▓реАрдирд┐рдпрд░ рдСрдкрд░реЗрдЯрд░реНрд╕ рд╣реЛрддреЗ рд╣реИрдВред (рдКрдкрд░ Z рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП CNumber рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ), рддреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ?

рд╡рд┐рдкрдХреНрд╖

  • LinAlg рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓рддрд╛ (рдЬреЛ рд╕рдВрднрд╡рддрдГ рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ рдореЗрдВ рд░рд╣ рд╕рдХрддреА рд╣реИ)ред
  • eig(block_matrix) рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ (рд▓реЗрдХрд┐рди рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ) рд╣реИред рдЕрдЧрд░ рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ LinAlg eig рдФрд░ LinAlg рдХрд╛ рд╕рдорд░реНрдерди рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдмрдЧ рддрдм рддрдХ рдорд╛рдирддрд╛ рд╣реВрдВ рдЬрдм рддрдХ рдпрд╣ рддрдп рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред LinAlg рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдпрд╣ рджреЗрдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рд╣рдо рдХрднреА рднреА "рд╕рдорд╛рдкреНрдд" рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
  • рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рддрд░реАрдХреЗ рд╕реЗ transpose рдЬреИрд╕реЗ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рдбреЗрдЯрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЕрд╕реБрд╡рд┐рдзрд╛,

рдореЗрд░реЗ рд▓рд┐рдП рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ - рдХреНрдпрд╛ рд╣рдо рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ LinAlg AbstractArray s рдХреЗ рддрддреНрд╡ "рд╕реНрдХреЗрд▓рд░" ( Number рд╕рдмрдЯрд┐рдк рдпрд╛ рдбрдХ-рдЯрд╛рдЗрдкрд┐рдВрдЧ) рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд░рдЦрддреЗ рд╣реИрдВред рдФрд░ рдмрд╛рд╣рд░реА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рджреВрд░ рдХрд░реЗрдВ? рдпрд╛ рд╣рдо Base рдФрд░ LinAlg рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдЧрд▓реЗ рд▓рдЧрд╛рддреЗ рд╣реИрдВ?

рдПрдХ рджрд┐рди рдкрд╣рд▓реЗ рддрдХ рдХреА рдпреЛрдЬрдирд╛ рдмрд╛рдж рдХреА рдереАред

@ Sacha0 рдореИрдВ рдпрд╣рд╛рдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ RowVector рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ: рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose , RowVector рд╕рд╣рд╛рдпрдХ рддрд╛рд░ рдФрд░ рдЕрдиреНрдп рдбреЗрдЯрд╛) рдФрд░ рдЕрдм рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреЗ рдорди рдореЗрдВ рдХреНрдпрд╛ рдерд╛ред

рд╣рд╛рд▓рд┐рдпрд╛ рдЪрд░реНрдЪрд╛рдУрдВ рд╕реЗ, рдореИрдВ рдЗрди рдорд╛рдорд▓реЛрдВ рдХреЛ рдЗрд╕ рдЕрдиреБрдорд╛рди рд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

| | рд╡реЗрдХреНрдЯрд░ | рдореИрдЯреНрд░рд┐рдХреНрд╕ |
| - | - | - |
| adjoint | RowVector рдкреБрдирд░рд╛рд╡рд░реНрддреА adjoint | AdjointMatrix рдпрд╛ TransposedMatrix рдкреБрдирд░рд╛рд╡рд░реНрддреА adjoint |
| transpose | RowVector рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose | TransposeMatrix рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose |
| flip | рдПрдХ рдкреНрд░рддрд┐ рдпрд╛ PermutedDimsArray ? | рдПрдХ рдкреНрд░рддрд┐ рдпрд╛ PermutedDimsArray ? |
| conj AbstractArray | рдЖрд▓рд╕реА рдпрд╛ рдЙрддреНрд╕реБрдХ? | рдЖрд▓рд╕реА рдпрд╛ рдЙрддреНрд╕реБрдХ? |
| conj RowVector рдпрд╛ TransposedMatrix | рдЖрд▓рд╕реА | рдЖрд▓рд╕реА |

(рдбреЗрдЯрд╛ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрдордд рдЖрдпрд╛рдореЛрдВ рд╕реЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рддреАрдп рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рдпрд╛рд╕ред)

рддреЛ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рд╕рд╡рд╛рд▓ рдореБрдЭреЗ рдЕрд╕реНрдерд┐рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  • рдХреНрдпрд╛ рд╣рдо рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose рдпрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? adjoint рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
  • рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рд╣рдо conj(transpose(array)) == adjoint(array) рдорд╛рди рд▓реЗрддреЗ рд░рд╣реЗрдВрдЧреЗ?
  • рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рдЖрд▓рд╕реА рд╣реЛрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рдпрд╛рдВ рдХреЗ рд╕рднреА рд╡рд░реНрддрдорд╛рди BLAS рд╕рдВрдЪрд╛рд▓рдиред рдХреНрдпрд╛ рд╣рдо рд╕рднреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП conj рдЖрд▓рд╕реА рдмрдирд╛рддреЗ рд╣реИрдВ?
  • рдЕрдЧрд░ рд╣рдо flip рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдЖрд▓рд╕реА рдпрд╛ рдЙрддреНрд╕реБрдХ рд╣реИ?

FYI рдХрд░реЗрдВ рдореИрдВрдиреЗ # 24839 рдкрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ "рдлрд╝реНрд▓рд┐рдкрд┐рдВрдЧ" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо-рдШрд░реНрд╖рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, permutedims рд▓рд┐рдП рдЫреЛрдЯреЗ рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред

рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ @ рд╕рдЦрд╛ 0 рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЖрдзрд╛рд░реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЗрд╕рд╕реЗ: рдпрд╣ рдЕрдм рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП , рдФрд░ рдЙрд╕ рд╕реЗ рджреВрд░ рдПрдХ рдЕрдВрддрд┐рдо рдорд┐рдирдЯ рдкрд░рд┐рд╡рд░реНрддрди рд╢рд╛рдпрдж рдмреАрдорд╛рд░ рдХреА рд╕рд▓рд╛рд╣ рджреА рд╣реИред рдЯреНрд░рд╛рдВрд╕рдЬреЗрдВрдб рдХреЛ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдЖрд╕рдиреНрди (= conjтИШadjoint ) рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рдпрд╣ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред

FWIW, Mathematica Transpose рдФрд░ рди рд╣реА ConjugateTranspose рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

untitled

рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣рд╛ рдХрд┐ рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ / рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдПрдХ рдЧрдгрд┐рддреАрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕рд░рд╕рд░реА рддреМрд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред [...] рдкреВрд░реНрдгрддрд╛ / рдЖрддреНрдо-рд╕рдорддрд╛ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдФрд░ рдХреНрдпреЛрдВ рдЗрд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рджреЛрд╣рд░рд╛рдпрд╛ / рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореИрдВ рдЗрд╕ рднрд╛рд╡рдирд╛ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕реЗ рд╕рдордп рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рд╕реБрд▓рдн рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд╕рдордЭрд╛рддреЗ рд╣реБрдП рдХрд┐ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╕рдиреНрди рдФрд░ рдкрд╛рд░рдЧрдорди рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреНрдпреЛрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд░реВрдк рдореЗрдВ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реИ рдФрд░ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд╕реБрд╕рдВрдЧрдд, рд╡реНрдпрд╛рдкрдХ рд▓реЗрдЦрди рдЬреИрд╕реЗ рдХрд┐ рдКрдкрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рднрд╛рд░реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рдордп рд▓реЗрддреЗ рд╣реИрдВред рд╕рдордп рдХрдо рд╣реЛ рд░рд╣рд╛ рд╣реИ, рджрд┐рди рдХреЗ рджреМрд░рд╛рди рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдкрджреЛрдВ / рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдХрд░ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдХреБрдЫ рдкреЛрд╕реНрдЯреЛрдВ рдореЗрдВ рднреНрд░рдо рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛; рдХреГрдкрдпрд╛ рдореЗрд░реЗ рд╕рд╛рде рд╕рд╣рди рдХрд░реЗрдВ рдЬрдм рдореИрдВ рдРрд╕рд╛ рдЯреБрдХрдбрд╝рд╛ рдХрд░рддрд╛ рд╣реВрдВ :)ред рд╢реНрд░реЗрд╖реНрда!

рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдХрд┐ рдХреНрдпреЛрдВ ... рдкрд░рд┐рднрд╛рд╖рд╛ рджреНрд╡рд╛рд░рд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ...

рдореИрдВ рдмрд╣реБрдд рд╕реБрдВрджрд░ рд╣реВрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛ рд╣реИ, рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ adjoint(A) рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рд╡рд╛рдж рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ transpose(A) рдХреЛ рднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рдХреНрдпрд╛ рдХреЛрдИ рдирдпрд╛ рдХрд╛рд░реНрдп flip(A) рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдореИрдВ рдмрд╣реБрдд рд╕реБрдВрджрд░ рд╣реВрдВ, рдЬрд┐рд╕рдиреЗ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдирд┐рдХрдЯрд╡рд░реНрддреА (рдП) рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рджреЗрдЦреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, https://github.com/JuliaLang/julia/issues/20978#issuecomment-347777577 рдФрд░ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ :)ред рд╢реНрд░реЗрд╖реНрда!

рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмреБрдирд┐рдпрд╛рджреА рд╣реИред dot(x,y) рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рдд рдПрдХ рдЕрджрд┐рд╢ рдкрджрд╛рд░реНрде рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЖрд╕рдиреНрди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдпрд╣ рд╣реИ рдХрд┐ dot(A'*x, y) == dot(x, A*y) ред рдкреБрдирд░реНрдорд┐рд▓рди (рджреЛрдиреЛрдВ dot рдФрд░ adjoint ) рдЗрди рджреЛрдиреЛрдВ рдЧреБрдгреЛрдВ рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИред

(рдбреЙрдЯ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рд╕рдВрдмрдВрдз рдкреВрд░реЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд▓рдВрдмрди рдФрд░ рдмреАрдЬрдЧрдгрд┐рдд рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдЪрд╛рд▓рди рд╣реИрдВред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рд╣реИ, рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ 90 рдбрд┐рдЧреНрд░реА рд╕реЗ рдШреБрдорд╛рдХрд░ ( rot90 рдордЯрд▓рдм рдореЗрдВ)ред )ред)

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП flip рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдорддрд▓рдм рдФрд░ рдиреЗрдореНрдкреА рджреЛрдиреЛрдВ рд╣реА flip рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо flipdim ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░реЗрдЦреАрдп рдирдХреНрд╢реЗ рдкрд░ рдПрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдореВрд░реНрдд рдЧрдгрд┐рддреАрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ рдкрд╛рд░рдЧрдорди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рд╕рд░рд▓ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдВрдХреНрд░рдордг рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реЛрдЧреА рдЬреЛ рд╡реИрдХреНрдЯрд░ рдкрд░ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рд░реЛрд╡реЗрдХреНрдЯрд░реЛрдВ рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рд░реЛрд╡реЗрдХреНрдЯрд░ рдХрд╛ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХрд░реЗрдЧрд╛ рд░реЛрд╡реЗрдХреНрдЯрд░ рдХреЛред

рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд░рд▓ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣рд╕реНрддрд╛рдВрддрд░рдг рдирд╣реАрдВ рд╣реИ рдФрд░ рдмрд╕ рдЗрд╕реЗ рдЧреИрд░-рдЧрдгрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕рдореАрдХрд░рдгреЛрдВ рдореЗрдВ рднреА рд░реИрдЦрд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрдгрд┐рддреАрдп рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╣реИред

рд╕рдВрдХреНрд░рдордг (рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧрдгрд┐рддреАрдп рдЕрд░реНрде рдореЗрдВ рдХрднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдлреНрд▓рд┐рдк рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ)

рдпрд╣ рдереЛрдбрд╝рд╛ рдЧреЛрд▓-рдордЯреЛрд▓ рдкреНрд░рддреАрдд рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд╕рд╛рде рд╕рд╣рди рдХрд░реЗрдВ :)ред

рдЬреВрд▓рд┐рдпрд╛ рдХреЗ adjoint рдЕрд░реНрде рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рдирд┐рдХрдЯрддрд╛ рд╕реЗ рд╣реИ ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпреВ рдФрд░ рд╡реА рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рджреЛрд╣рд░реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдпреВ * рдФрд░ рд╡реА рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдорд╛рдирдХ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди (Banach рд░рд┐рдХреНрдд рд╕реНрдерд╛рди) , рдФрд░ рд░реИрдЦрд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░ A: U -> V рдХреЗ рд▓рд┐рдП, рдлрд┐рд░ A рдХреЗ рдирд┐рдХрдЯрд╡рд░реНрддреА, рдЖрдорддреМрд░ рдкрд░ рдирд┐рд░реВрдкрд┐рдд A , рдПрдХ рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ A рд╣реИ *: рд╡реА * -> рдпреВ * ред рдпрд╣реА рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдирд┐рдХрдЯрд╕реНрде рд╕реНрдерд╛рди рджреЛрд╣рд░реЗ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдПрдиреНрд╕ рдП ^ рдЯреА рджреЛрд╣рд░реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмреАрдЪ рдПрдХ рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрди рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдиреНрдирд┐рдХрдЯ рдХреА рдкрд░рд┐рдЪрд┐рдд рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рд╛рдордВрдЬрд╕реНрдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ? :)

рдЙрддреНрддрд░ рдЙрди рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдкреВрд░реНрдг рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╕реНрдерд╛рди (рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдерд╛рди) рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдПрдХ рдорд╛рдирджрдВрдб рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╕реНрдерд╛рди (рд╣рд┐рд▓реНрдмрд░реНрдЯ) рдПрдХ рдкреВрд░реНрдг рдЖрджрд░реНрд╢ рд╕реНрдерд╛рди (Banach) рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ (рд╣рд░реНрдореАрд╢рд┐рдпрди) рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдВрдЬреА рд╣реИ: рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдирдХ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реЛрдиреЗ рд╕реЗ, рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рд╕рдмрд╕реЗ рд╕реБрдВрджрд░ рдкреНрд░рдореЗрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рд░рд┐рдЬреНрдЬрд╝ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рдореЗрдп рдЕрд░реНрдерд╛рддреН рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд░рд┐рд╕реНрдЬрд╝ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рдореЗрдп рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдерд╛рди рдЕрдкрдиреЗ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ рд╣реИред рдирддреАрдЬрддрди, рд╣рд┐рд▓реНрдмрд░реНрдЯ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рдЙрдирдХреЗ рджреЛрд╣рд░реЗ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рднреЗрдж рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдкрд╣рдЪрд╛рди рдмрдирд╛рдирд╛ рдХрд┐ рдЖрдк A *: V -> U рдХреА рдмрдЬрд╛рдп A *: V * -> U * рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд░рдорд┐рдЯрд┐рдпрди рдХреА рдкрд░рд┐рдЪрд┐рдд рдзрд╛рд░рдгрд╛ рдкрд░ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗ ред

рдФрд░ рдПрдХ рд╣реА рдкрд╣рдЪрд╛рди рдЖрдо рддреМрд░ рдкрд░ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рдЧрдорди рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдП ^ рдЯреА: рд╡реА -> рдпреВ, рдкрд╛рд░рдЧрдорди рдХреА рдкрд░рд┐рдЪрд┐рдд рдзрд╛рд░рдгрд╛ рдХреА рдЙрдкрдЬред рддреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд╛рдБ, рд╕рдВрдХреНрд░рдордг рдХреА рдЖрдо рдзрд╛рд░рдгрд╛ рд╕рдмрд╕реЗ рдкрд░рд┐рдЪрд┐рдд (рд╣рд┐рд▓реНрдмрд░реНрдЯ) рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдорд╛рдиреНрдп рдзрд╛рд░рдгрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рдЖрд╕рдиреНрди рдХреА рдЖрдо рдзрд╛рд░рдгрд╛ рдЙрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдорд╛рдиреНрдп рдзрд╛рд░рдгрд╛ рд╣реИред рд╢реНрд░реЗрд╖реНрда!

рдПрдХ рдореГрдд рдШреЛрдбрд╝реЗ рдХреА рдкрд┐рдЯрд╛рдИ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЧрдгрд┐рддреАрдп рдЙрд▓рдЭрди рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред рдЕрд╕рд╣рдорддрд┐ рдХрд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ Vector{T} рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рдП рдЬрдм T Number рдЙрдк-рдкреНрд░рдХрд╛рд░ рди рд╣реЛ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рд╕рд░рдгреА-рдЬреИрд╕реА рдЙрдк-рд╕рдВрд░рдЪрдирд╛ рди рд╣реЛред

рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдПрдХ рд╕реНрдХреВрд▓ @stevengj рдХрд╛ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ

рдПрдХ рд░рд┐рдВрдЧ рдЖрд░ рдХреЗ рдКрдкрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЛ рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖-рдпреЛрдЧ рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрд░ рдХреЗ рдКрдкрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рднреА рд╣реИред

рдЕрдирдВрдд-рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди, рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЛрдбреБрд▓реЛ рдХреБрдЫ рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ, рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╡реИрдХреНрдЯрд░ рдХреЛ рдмреНрд▓реЙрдХ рд╡реИрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЛ рдПрдХ Vector{Vector{T<:Number}} рдХреЛ рдорд╛рдирд╕рд┐рдХ рд░реВрдк рд╕реЗ "рдЪрдкрдЯрд╛" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдПрдХ рд╕рд░рд▓ Vector{T} ред рдЗрд╕ рдкреНрд░рддрд┐рдорд╛рди рдХреЗ рднреАрддрд░, рд░реЗрдЦреАрдп рд╕рдВрдЪрд╛рд▓рдХ рдЬрд┐рдиреНрд╣реЗрдВ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рдореИрдЯреНрд░реАрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд╕рдорд╛рди рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ adjoint рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, transpose рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЧрдгрд┐рддреАрдп рдЕрд░реНрде ред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕рд╣реА рдХрд░реЗрдВ рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ, рд╡реЗ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ Vector{Matrix{T}} рдЬреИрд╕реА рдХреЛрдИ рдкреНрд░рд╛рдХреГрддрд┐рдХ-рдкрд░реНрдпрд╛рдкреНрдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣ рдирд╣реАрдВ рдорд╛рди рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдВрддрд░рд┐рдХ Matrix рдПрдХ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ @stevengj рдиреЗ рдХрд╣рд╛ рд╣реИ,

рдпрджрд┐ рдЖрдк 2x2 рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рд╣реИред

)

рд╡рд┐рдЪрд╛рд░ рдХрд╛ рджреВрд╕рд░рд╛ рд╕реНрдХреВрд▓ рдпрд╣ рд╣реИ рдХрд┐ Vector{T} рд╣рдореЗрд╢рд╛ рд╕реНрдХреЗрд▓ рдХреЗ рдКрдкрд░ рдПрдХ рд╕рд╛рд░ рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╢рдмреНрдж рдХреЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдЕрд░реНрде рдореЗрдВ) T , T рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред рдЗрд╕ рдкреНрд░рддрд┐рдорд╛рди рдореЗрдВ, рдПрдХ Vector{Vector{T'}} рдХреЛ рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рдпреЛрдЧ рд╕реНрдерд╛рди рдХреЗ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕реНрдХреЗрд▓рд░ рдкрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ Vector{T'} ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, transpose(Matrix{T}) рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдмрд╕ рдмрд╛рд╣рд░реА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдлреНрд▓рд┐рдк рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдХреЗрд▓рд░ рдХреА рд╡реИрдз рдЕрдВрдЧреВрдареА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП T рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ (рдХрдореНрдпреВрдЯреЗрдЯрд┐рд╡) рдЬреЛрдбрд╝ рдФрд░ рдЧреБрдгрди рдХреА рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдзрд╛рд░рдгрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред Vector{Vector{T'}} рдЬреИрд╕реЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рджреЛ "рд╕реНрдХреЗрд▓" Vector{T'} рдХреЛ рдПрдХ рдФрд░ Vector{T'} рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЬрдмрдХрд┐ рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдирд┐рдпрдо рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдПрд▓рд┐рдореЗрдВрдЯрд╡рд╛рдЗрдЬрд╝ рдорд▓реНрдЯреАрдкреНрд▓рд┐рдХреЗрд╢рди, рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рдЬрд╛ рджреЗрддрд╛ рд╣реИ рдХрд┐ T' рдХреЛ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдП), рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рдЕрдиреНрдп рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рддрд╣рдд adjoint рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рд╣рд░реНрдорд┐рдЯрд┐рдпрди рдирд┐рдХрдЯрддрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдерд╛рди рдкрд░ рд░реЗрдЦреАрдп рдкрд░рд┐рдЪрд╛рд▓рдХреЛрдВ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рд╣реИ, рдЬрд┐рд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдХреЗрд▓рд░ рдлрд╝реАрд▓реНрдб рдпрд╛ рддреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпрд╛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рд╣рдо adjoint рдХреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ Matrix{T} рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ T рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ (рдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ) рдХрд╛ рдХреБрдЫ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл рдЫрдбрд╝реА рдХрд░реВрдБрдЧрд╛ рдЬрдЯрд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╡рд╣ рдорд╛рдорд▓рд╛ рдЕрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо рд╣реИ)ред рдЗрд╕ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдореЗрдВ, adjoint рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдлреНрд▓рд┐рдк рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ conjugate рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ conjugate(T) рдХреА рд╕рд╣реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреА рдкреНрд░рдХреГрддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдЕрдЧрд░ рдпрд╣ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рд╡рд░реНрдгрд┐рдд 2x2 рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ, рддреЛ conjugate рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдлреНрд▓рд┐рдк рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, conjugate рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдореЗрд╢рд╛ рдореИрдЯ рдлреНрд▓рд┐рдк рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝реА рдЧрдбрд╝рдмрдбрд╝ рд╣реЛрдЧреАред

рдпрд╣рд╛рдВ рдореЗрд░реЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ: рдХреЛрдИ "рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╕рд╣реА" рдЙрддреНрддрд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ transpose рдХреЛ рдЙрди рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рдирдХреЗ рддрддреНрд╡реЛрдВ рдореЗрдВ рдЖрдЧреЗ рдЬрдЯрд┐рд▓ рдЙрдк-рдирд┐рд░реНрдорд╛рдг рд╣реИред рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдЙрдирдХреЗ рдЕрдореВрд░реНрдд рдмреАрдЬреАрдп рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рдЪреБрди рд░рд╣рд╛ рд╣реИред рдлрд┐рд░ рднреА, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЫрд▓реНрд▓реЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрддрд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЙрд╕ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдЧреИрд░-рдорд╛рдирдХ рд░рд┐рдВрдЧреЛрдВ рдкрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЧреВрдврд╝ рдЧрдгрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ Base рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ( permutedims(A, (2,1)) рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд░рд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде) рдЬрд┐рд╕рдХрд╛ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝рд┐рд╢рди рдХреЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдмрд╕ рдореИрдЯреНрд░рд┐рд╕ рдХреЛ рдлрд╝реНрд▓рд┐рдк рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рдХреБрдЫ рднреА рд╣реЛред transpose рдпрд╛ flip рдпрд╛ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ adjoint рдФрд░ рдПрдХ рдЕрд▓рдЧ рдЯреНрд░рд╛рдВрдЬрд╝реЛрдЬрд╝ рдлрд╝рдВрдХреНрд╢рди (рд╕рдВрднрд╡рддрдГ рдПрдХ рдЕрд▓рдЧ рдирд╛рдо рдХреЗ рд╕рд╛рде) LinAlg рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдереЗ, рдХреНрдпреЛрдВрдХрд┐ рддрдм рд╡реЗ рдмреНрд▓реЙрдХ рд╡реИрдХреНрдЯрд░ / рдореИрдЯреНрд░рд┐рд╕ рдФрд░ рдкреНрд░рддреНрдпрдХреНрд╖ рдпреЛрдЧ рдХреЗ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рдереЗред рд╡реИрдХреНрдЯрд░ рдХреЗ рд╡реИрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП "рдЙрджреНрджреЗрд╢реНрдп рдЧрдгрд┐рддреАрдп рд╢реБрджреНрдзрддрд╛" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдЙрд╕ рдирд┐рд░реНрдгрдп рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд░рдирд╛ рдареАрдХ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рд╡рд╛рджреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреА рд╣реИред

рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╕рд╣рд╛рдпрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рдирд┐рдХрдЯрддрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпреВ рдФрд░ рд╡реА рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рджреЛрд╣рд░реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдпреВ * рдФрд░ рд╡реА рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдорд╛рдирдХ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди (Banach рд░рд┐рдХреНрдд рд╕реНрдерд╛рди) , рдФрд░ рд░реИрдЦрд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░ A: U -> V рдХреЗ рд▓рд┐рдП, рдлрд┐рд░ A рдХреЗ рд╣рд░рдорд┐рдЯрд┐рдпрди рдирд┐рдХрдЯрддрд╛, рдЖрдорддреМрд░ рдкрд░ A рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдПрдХ рд░реИрдЦрд┐рдХ рдирдХреНрд╢рд╛ рд╣реИ рдП *: рд╡реА * -> рдпреВ *ред рдпрд╣реА рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдореАрдкрддрд╛ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдкрд╛рд░рдЧрдорди A ^ t рджреЛрд╣рд░реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмреАрдЪ рдПрдХ рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ рдЖрдк рдЗрди рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдиреНрдирд┐рдХрдЯ рдХреА рдкрд░рд┐рдЪрд┐рдд рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рд╛рдордВрдЬрд╕реНрдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ? :)

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдЖрдк рдпрд╣рд╛рдБ рдЬреЛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ, рд▓реЗрдХрд┐рди (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ), рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЗрд╕реЗ рдирд┐рдХрдЯрд╡рд░реНрддреА (рд╣рд░реНрдорд┐рдЯрд┐рдпрди рдХреЗ рдмрд┐рдирд╛) рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдП ^ рдЯреА рдпрд╛ рдП ^ * (рдХрднреА рдП ^ рдбреИрдЧрд░) рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдкрд░реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлреИрд▓реА рд╣реБрдИ рд╣реИ, рдФрд░ рд╢реНрд░реЗрдгреА рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд┐рд╕реА рднреА monoidal рд╢реНрд░реЗрдгреА рдореЗрдВ рдореМрдЬреВрдж рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП n- рдЖрдпрд╛рдореА рдЙрдиреНрдореБрдЦ cateogory рдХреЛрдмрд░реНрдбрд┐рдЬреНрдо рдХреЗ рд╕рд╛рде рд░реЗрдЦреАрдп рдирдХреНрд╢реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ), рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдирд┐рдХрдЯрд╡рд░реНрддреА рджреЛрд╕реНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдП рдФрд░ рдП рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ , рдЪреВрдВрдХрд┐ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ)ред рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рджреЗрдВ, рдЗрд╕рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред V * рдХреЗ рддрддреНрд╡ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░реИрдЦрд┐рдХ рдирдХреНрд╢реЗ f: V-> рд╕реНрдХреЗрд▓рд░ рд╣реИрдВ, рдФрд░ рд░реИрдЦрд┐рдХ рдирдХреНрд╢реЗ A: U-> V рдФрд░ U рд╕реЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ v рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ f (Av) = (A ^ tf) (v) рд╣реИ ред рдЪреВрдВрдХрд┐ f рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рди рд╣реА A ^ t рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИред

рдЙрддреНрддрд░ рдЙрди рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рдЬрд┐рдирдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рдкреВрд░реНрдг рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╕реНрдерд╛рди (рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдерд╛рди)ред рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдПрдХ рдорд╛рдирджрдВрдб рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╕реНрдерд╛рди (рд╣рд┐рд▓реНрдмрд░реНрдЯ) рдПрдХ рдкреВрд░реНрдг рдЖрджрд░реНрд╢ рд╕реНрдерд╛рди (Banach) рд╣реИ, рдФрд░ рдЬрд┐рд╕рд╕реЗ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рд╣рд╛рдпрдХ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдВрдЬреА рд╣реИ: рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдирдХ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реЛрдиреЗ рд╕реЗ, рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рд╕рдмрд╕реЗ рд╕реБрдВрджрд░ рдкреНрд░рдореЗрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рд░рд┐рдЬреНрдЬрд╝ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рдореЗрдп рдЕрд░реНрдерд╛рддреН рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд░рд┐рд╕реНрдЬрд╝ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рдореЗрдп рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдерд╛рди рдЕрдкрдиреЗ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ рд╣реИред рдирддреАрдЬрддрди, рд╣рд┐рд▓реНрдмрд░реНрдЯ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рдЙрдирдХреЗ рджреЛрд╣рд░реЗ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рднреЗрдж рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдкрд╣рдЪрд╛рди рдмрдирд╛рдирд╛ рдХрд┐ рдЖрдк A *: V -> U рдХреА рдмрдЬрд╛рдп A *: V * -> U * рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд░рдорд┐рдЯрд┐рдпрди рдХреА рдкрд░рд┐рдЪрд┐рдд рдзрд╛рд░рдгрд╛ рдкрд░ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗред

рдлрд┐рд░, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рд╣реИред рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ, рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж sesquilinear form dot conj (V) x V -> рд╕реНрдХреЗрд▓рд░ (рд╕рдВрдпреБрдЧреНрдорд┐рдд рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде conj (V)) рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ V рд╕реЗ V * (рдпрд╛ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ conj (V) рд╕реЗ V *) рддрдХ рдХрд╛ рдирдХреНрд╢рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд┐рдЬреНрдЬрд╝ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рдореЗрдп рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдореЗрдВ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдореАрдкрддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж dot рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдФрд░ рдПрдХ рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ A рдХреЗ рд╣рд░рдорд┐рдЬрд┐рдпрди рдРрд╕рд╛ рд╣реИ
dot(w, Av) = dot(A' w, v) ред рдЗрд╕рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдЖрдк рдпрд╣рд╛рдБ рдЬреЛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ, рд▓реЗрдХрд┐рди (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ), рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЗрд╕реЗ рдирд┐рдХрдЯрд╡рд░реНрддреА (рд╣рд░реНрдорд┐рдЯрд┐рдпрди рдХреЗ рдмрд┐рдирд╛) рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдП ^ рдЯреА рдпрд╛ рдП ^ * (рдХрднреА рдП ^ рдбреИрдЧрд░) рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред [...]

@ рдЬреБрдереЛ , рдХреГрдкрдпрд╛ рджреЗрдЦреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкреГрд╖реНрда ред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЧрдгрд┐рдд рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рдЕрд╕рдВрдЧрддрддрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди:
https://en.wikipedia.org/wiki/Transpose_of_a_linear_map
рдЦрд╛рд╕ рддрд░реАрдХреЗ рд╕реЗ
https://en.wikipedia.org/wiki/Transpose_of_a_linear_map#Relation_to_the_Hermitian_adjoint
рдФрд░ рд╢реНрд░реЗрдгреА рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдмреЗрд╢реБрдорд╛рд░ рд╕рдВрджрд░реНрдн, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
https://arxiv.org/pdf/0908.3347v1.pdf

https://en.wikipedia.org/wiki/Transpose_of_a_linear_map
рдЦрд╛рд╕ рддрд░реАрдХреЗ рд╕реЗ
https://en.wikipedia.org/wiki/Transpose_of_a_linear_map#Relation_to_the_Hermitian_adjoint

@ рдЬреВрдереЛ , рдореБрдЭреЗ рдЙрд╕ рдкреЗрдЬ рд╕реЗрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрд╕рдВрдЧрддрддрд╛ рдирд╣реАрдВ рджрд┐рдЦрддреА ред рд╢реНрд░реЗрд╖реНрда!

рдореИрдВ @ Sacha0 рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд░ рднреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ permutedims рдХреЗ рд╕рд╛рде рдЕрдм рдХреЗ рд▓рд┐рдП рднреА рдареАрдХ рд╣реВрдВ; рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ flip рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред

@ Sacha0 , рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрд╕ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрдврд╝рд╛
рджрд┐рдП рдЧрдП A рдХреЗ рд▓рд┐рдП: U-> V,
рдкрд╛рд░рдЧрдорди (рдП) = рджреЛрд╣рд░реА (рдП) = (рдХрднреА-рдХрднреА) рднреА рд╕реНрдердЧрд┐рдд (рдП): рд╡реА * -> рдпреВ *
hermitian adjoint (A) = рдбреИрдЧрд░ (A) = (рдЖрдорддреМрд░ рдкрд░ рд╕рд┐рд░реНрдл) adjoint (A): V-> рдпреВ
рдФрд░ рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдВрдмрдВрдз рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдВрддрд░рд┐рдХреНрд╖ рд╕реЗ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди (рдпрд╛рдиреА рд░рд┐рдЬреНрдЬрд╝ ...) рдХреЗ рдирдХреНрд╢реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣реЗрд░реНрдорд┐рдЯрд┐рдпрди рдЖрд╕рдиреНрди рдореЗрдВ рд╕рдВрдпреБрдЧреНрдорди рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╕рдВрдХреНрд░рдордг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рдПрдХ рд╣реЗрд░реНрдореИрдЯрд┐рдирд┐рдпрди рдирд┐рдХрдЯрддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЯреНрд░рд╛рдВрд╕рдЬреЗрдВрдб рдХреЛ рдХреНрдпрд╛ рдХрд╣рддреЗ рд╣реИрдВ? рдЖрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХрд┐ рдЖрдкрдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдХреНрдпрд╛ рдерд╛, рдЖрдкрдиреЗ рдЕрднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ

рдЖрдо рддреМрд░ рдкрд░ рдП рд╕реЗ рдирд┐рд░реВрдкрд┐рдд рд╣рд░реНрдорд┐рдЯрд┐рдпрди рдП , рдПрдХ рд░реИрдЦрд┐рдХ рдирдХреНрд╢рд╛ A : V * -> U * рд╣реИред рдпрд╣реА рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдореАрдкрддрд╛ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд╛рд░рдЧрдорди A ^ t рджреЛрд╣рд░реЗ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИред

рддреЛ рдкрд╛рд░рдЧрдорди рдФрд░ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рдЖрд╕рдиреНрди рд╣реИрдВ рддреЛ A: U-> V рдХреЛ V -> U рд╕реЗ рдирдХреНрд╢реЗ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВ? рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдЧреЗ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХрд╣реАрдВ рдФрд░ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реВрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ http://staff.um.edu.mt/jmus1/banach.pdf рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ рдЬреЛ Banach рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ рд╣рд░рдорд┐рдЯрд┐рдпрди adjoint (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд░реИрдЦрд┐рдХ рдФрд░ рдкреНрд░рддрд┐рд╡рд┐рд╖ рдирд╣реАрдВред рдкрд░рд┐рд╡рд░реНрддрди)ред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ (рдФрд░ рдЕрдиреНрдп рд╕рдВрджрд░реНрдн) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрди рджреЛ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рд┐рд▓реНрдмрд░реНрдЯ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рдмрд╛рдирдЪ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдХреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рдЖрд╕рдиреНрди рдХреА рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рд╣реИ (рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рди рд╣реА рдПрдХ рдорд╛рдирдХ)ред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣ рдмрджрд▓рд╛рд╡ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛, рдХрд┐ рдХреЛрдИ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЬреВрд▓рд┐рдпрд╛ рдмреЗрд╕ рдХреЗ рд▓рд┐рдП: рдореИрдВ рд╣рд░реНрдорд┐рд╕рд┐рдпрди рд╕рдВрдпреБрдЧреНрдорди рдХреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдиреЗ рдХрд╛ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ; рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрдХреНрд╕рд░ рд╕рд╣реА рдмрд╛рдд рд╣реЛрдЧреАред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдзрд╛рд░ рдХреЛ рдЪрддреБрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬрдм рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ Number ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ T рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде, рдЧреИрд░-рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ (рдФрд░ рдирд┐рдХрдЯрддрд╛ рдХреА рд╕рдВрдмрджреНрдз рд╕рдВрд╢реЛрдзрд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ) рдХреЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдореЗрдВ рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ, рдФрд░ рди рд╣реА рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рдкреНрд░реЗрд░рдгрд╛ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рд╕ рдереА, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░рдХрд╛рд░ (рдмреЗрд╕ рдпрд╛ рдкреИрдХреЗрдЬ рдореЗрдВ) рдЬреВрд▓рд┐рдпрди рдЕрдзрд┐рдХ рд╣реИ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ @andyferris рдиреЗ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдмрд╛рдХреА рд╕рднреА LinAlg рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмреНрд▓реЙрдХ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреА рдзрд╛рд░рдгрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ inv (рдЕрдХреЗрд▓реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдлреИрдХреНрдЯрд░рд╢рд┐рдкреНрд╕ рдЖрджрд┐) рдЬреИрд╕реА рд╕рд░рд▓ рдЪреАрдЬреЗрдВ рднреАред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдВрдпреБрдЧреНрдорди рдпрд╣рд╛рдБ рд░рд╣рдирд╛ рд╣реИ (рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдареАрдХ рд╣реИ), рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП dot рдФрд░ vecdot рддрддреНрд╡реЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ: рддрддреНрд╡реЛрдВ рдкрд░ dot x'y (рдЬреЛ рддрддреНрд╡реЛрдВ рдХреЗ рдкрд░рд┐рдкрдХреНрд╡ рд╣реЛрдиреЗ рдкрд░ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ) рдФрд░ vecdot dot рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рддрддреНрд╡реЛрдВ рдкрд░ред рддреЛ рдореИрдЯреНрд░рд┐рдХ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреЗрд▓рд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдПрдХ рдкреАрдЖрд░ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА рдпрджрд┐ рд▓реЛрдЧ рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ adjoint рд╕рд╛рде рдЕрд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред

рдХреЗ рд░реВрдк рдореЗрдВ transpose , рдпрд╣ рд╕рд┐рд░реНрдл рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рднреА рдЙрди рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ transpose рдХрд╛ рд╢рдмреНрдж рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВрдЧреЗред рдЕрднреА рднреА conj(adjoint()) рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose ред

рдЯреНрд░рд╛рдЗрдПрдЬ рд╕реЛрдЪрддрд╛ рд╣реИ @ рд╕рдЦрд╛ 0 рдХреЛ рдкреНрд░рд╕реНрддрд╛рд╡ 2 рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рд╕рдХреЗрдВред

рдореИрдВ @ttparker рдХреЗ рд╕рд╛рде рджреГрдврд╝рддрд╛ рд╕реЗ рд╕рд╣рдордд

1 - рдХреЗ рд▓рд┐рдП LinAlg , рдПрдХ AbstractVector v рдПрдХ рд╣реИ length(v) (рдЕрджрд┐рд╢) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рдЬрди рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ v[1] , v[2] , ..., v[length(v)] ред

(рдФрд░ рдЗрд╕реА рддрд░рд╣ AbstractMatrix )ред

рдпрд╣ рд╢рд╛рдпрдж рдпрд╣ рдзрд╛рд░рдгрд╛ рд╣реЛрдЧреА рдХрд┐ рдХрдИ рд▓реЛрдЧ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдЖрдПрдВрдЧреЗ, рдФрд░ рдЖрдзрд╛рд░ рд╡реИрдХреНрдЯрд░, рд░реИрдВрдХ, рдЖрджрд┐ рдХреА рдРрд╕реА рд╕рд░рд▓ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛрдиреЗ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд░рд▓ рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИред (рдХрдИ рд▓реЛрдЧ рд╢рд╛рдпрдж рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдареАрдХ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЖрдзрд╛рд░ рд╣реИред)

рд╣рдорд╛рд░рд╛ рд╡рд░реНрддрдорд╛рди рддрд░реАрдХрд╛ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рд╣реИ:

2 - LinAlg , рдПрдХ AbstractVector v length(v) рдЕрдореВрд░реНрдд рд╡реИрдХреНрдЯрд░ рдХрд╛ рдПрдХ рд╕реАрдзрд╛ рдпреЛрдЧ рд╣реИред рд╣рдо рд╕реНрдХреЗрд▓рд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ Number рддрд╛рдХрд┐ LinAlg рд╡реЗ рдорд╛рдиреНрдп рдПрдХ рдЖрдпрд╛рдореА рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░ / рд╡реИрдХреНрдЯрд░ рд╣реЛрдВред

рдФрд░ рдЗрд╕реА рддрд░рд╣ (рдмреНрд▓реЙрдХ) рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдПред рдпрд╣ MATLAB, рд░реИрдЦрд┐рдХ, eigen, рдЖрджрд┐ рдореЗрдВ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрддрд╣рд╛рд╢рд╛ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╣реИ, рдФрд░ рдпрд╣ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░рдХрд╛рд░ / рдкреНрд░реЗрд╖рдг рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдм рд╣реИ рдХрд┐ рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИред

рдореИрдВ рдЬрд┐рд╕ рдХрд╛рд░рдг рд╕реЗ рд╡рд┐рдХрд▓реНрдк 2 рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ / рдкреНрд░реЗрд╖рдг рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рд╣рдореЗрдВ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

3 - LinAlg , рд╣рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ + , * , conj рддрд╣рдд рд░реИрдЦрд┐рдХрддрд╛ (рдЖрджрд┐) рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд▓рдХреНрд╖реНрдп рд╣реИ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ / рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдкрд░реЗ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ), рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА adjoint рдФрд░ 2 рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ + , * рдФрд░ conj рд╕реНрд╡рдпрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИрдВ) рдФрд░ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ @ рд╕рдЦрд╛ 0 рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ 2 рдФрд░ рдЯреНрд░рд╛рдЗрдПрдЬ рдирд┐рд░реНрдгрдп рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ :)

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдЧреЗ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХрд╣реАрдВ рдФрд░ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реВрдВред

рдЪреАрдпрд░реНрд╕, рдЪрд▓реЛ рдХрд░рддреЗ рд╣реИрдВ! рдореИрдВ рдЖрдЧреЗ рдСрдлрд╝рд▓рд╛рдЗрди рдЪреИрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реВрдВ :)ред рд╢реНрд░реЗрд╖реНрда!

рдЕрдЪреНрдЫрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдПрдВрдбреА! :)

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд рдПрдВрдбреА, рдХрдо рд╕реЗ рдХрдо adjoint (рдЬреЛ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рд╡рд┐рд╖рдп рдерд╛) рдХреЗ рд▓рд┐рдПред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose рд▓рд┐рдП рдПрдХ рдЕрдВрддрд┐рдо рдпрд╛рдЪрд┐рдХрд╛, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреА рд╢рд╛рдВрддрд┐ (рдЙрдореНрдореАрдж) рд░рдЦреВрдВред
рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╛рдпрджреЗ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдВрдХреНрд░рдордг рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:

  • рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛ рднреАред рдпрд╣ рднреА рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдХреИрд╕реЗ рдЬрд╛рдиреЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реА рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдЧрдгрд┐рдд рд╕реЗ рд▓реЗрдХрд░ рдЙрдирдХреЗ рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдорд▓реЗ рддрдХ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВрдЧреЗред
  • рдЖрд▓рд╕реА flip рдкреНрд░рдХрд╛рд░ рдпрд╛ PermutedDimsArray LinAlg рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдб рдХреЗ рдмрдЬрд╛рдп рдлрд╝реНрд▓рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реВрдВ; рдХреНрдпрд╛ рдореИрдВ рдЕрднреА рднреА рдЗрд╕реЗ рдЕрдиреНрдп рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ (рдЕрдзрд┐рдорд╛рдирддрдГ BLAS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рд╕рд╛рде рдЧреБрдгрд╛ рдХрд░ рдкрд╛рдКрдВрдЧрд╛?

  • рдПрдХ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose рдФрд░ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА adjoint , рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ conj(transpose(a)) рд░реВрдк рдореЗрдВ рдПрдХ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЖрд╕рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА conj(adjoint(a)) ред рдФрд░ рдЕрднреА рднреА рд╕рдм рдХреБрдЫ LinAlg рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░реЗрдЧрд╛ред

рддреЛ рдиреБрдХрд╕рд╛рди рдХреНрдпрд╛ рд╣реИрдВред рдореИрдВ рдХреЛрдИ рдирд╣реАрдВ рджреЗрдЦрддрд╛ред рдореИрдВ рдЕрднреА рднреА рдЕрдкрдиреА рдмрд╛рдд рдкрд░ рдХрд╛рдпрдо рд╣реВрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рднреА transpose рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рдЧрдгрд┐рддреАрдп рдЕрд░реНрде рдореЗрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдЖрдЧреЗ рдмрд╣рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдПрдХ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдФрд░ рдЬрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдПрдХ рдЧрдгрд┐рддреАрдп рдЯреИрдирд╕реНрдкреЛрдЬрд╝ рд╣реИ? рдпрд╣ рдХрд┐рд╕реА рднреА рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ adjoint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдПрдХ рдРрд╕рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬрд╣рд╛рдВ рдЕрдзрд┐рдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рднрд░реЗ рд╡реЗрдХреНрдЯрд░ рдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрдгрд┐рддреАрдп рдХрд╛рд░рдг рд╣реИ рдЬреЛ рд╕реНрд╡рдпрдВ рдЬрдЯрд┐рд▓ рд╣реИрдВред

рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдЧрдгрд┐рддрдЬреНрдЮ (рдЬреЛ рдХрд┐рд╕реА рд╕реЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╛рдлреА рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░реЗрдЧрд╛) рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд╛рд░рдЧрдорди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

A = Array[1 &, {2, 3, 4, 5}];
Dimensions[A]  # returns {2, 3, 4, 5}
Dimensions[Transpose[A]] # returns {3, 2, 4, 5}

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдУрд╣, рдпрд╣ рднреА рдКрдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рдереА, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ

рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВред рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдареЛрд╕ рд╕рд╣рдорддрд┐ рд╣реИ рдХрд┐ transpose рдХреЛ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЬреИрд╕реЗ https://github.com/JuliaLang/julia/issues/20978#issuecomment -285880225, https://github.com/ рдЬреВрд▓рд┐рдпрд╛рд▓реИрдВрдЧ / рдЬреВрд▓рд┐рдпрд╛ / рдореБрджреНрджреЗ / 20978 # рдЬрд╛рд░реА рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ -285942526, https://github.com/JuliaLang/julia/issues/20978#issuecomment -285993057, https://github.com/JuliaLang/julia/issues/20978#issuommentment 348464449, рдФрд░ https://github.com/JuliaLang/julia/pull/23424 рддрдм @ Sacha0 рдиреЗ рджреЛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдП, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА flip рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдВ, рдЬрд┐рд╕реЗ рдордЬрдмреВрдд рд╕рдорд░реНрдерди рдорд┐рд▓рд╛ (рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╣рд▓реЗ рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ред ред рддрдм @JeffBezanson рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рд╣рдореЗрдВ flip рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ рд╣рдо permutedims рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рджреВрд╕рд░рд╛ рддрд░реНрдХ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдордЬрдмреВрдд рд╕рдорд░реНрдерди рднреА рдорд┐рд▓рд╛ред

рддреЛ рдЕрдм рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ transpose рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди "рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рд╡рд┐рд╢реЗрд╖ рдХрдорд┐рдВрдЧ рдФрд░ рдЖрд▓рд╕реА рдмрдирд╛рдо рдЙрддреНрд╕реБрдХ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЬрд┐рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢рд╛рдпрдж рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реЛрдВрдЧреЗ рдпрд╛ рдЙрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ ред рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рд╡рд░реНрддрдиреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ ( .' рдФрд░ permutedims рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рджреВрд╕рд░рд╛ рддрд░реНрдХ рджреЗрдирд╛)ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рд╣рдорддрд┐ рд▓рдЧрднрдЧ 180 рдбрд┐рдЧреНрд░реА рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп рдореЗрдВ ( @ Sacha0 рдХреА рдкреЛрд╕реНрдЯ https://github.com/JuliaLang/julia/issues/20978#issuecomment-347360279 рдкрд░) рдмрджрд▓ рдЧрдИ рд╣реИред рдХреНрдпрд╛ рд╕рдЪреНрдЪрд╛ рдХрд╛ рдкрдж рдЗрддрдирд╛ рд▓рдЪрд░ рдерд╛ рдХрд┐ рдЗрд╕рдиреЗ рд╕рднреА рдХреЗ рдорди рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛? (рдпрд╣ рдареАрдХ рд╣реИ рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ, рддреЛ рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпреЛрдВ рд╣рдо рдПрдХ рдРрд╕реЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рд╣рдо рд╕рднреА рд╕рд╣рдордд рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рдпрд╣ рдЧрд▓рдд рд╣реИред)

рдореИрдВ рднреВрд▓ рдЬрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣рдо рд╕рд┐рд░реНрдл transpose(::AbstractMatrix{AbstractMatrix}) (рдФрд░ рд╕рдВрднрд╡рддрдГ transpose(::AbstractMatrix{AbstractVector}) рднреА) рдкреБрдирд░рд╛рд╡рд░реНрддреА рдФрд░ transpose рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рдард┐рдХрд╛рдиреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдореИрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛, рдЬрд╣рд╛рдВ рдЖрдк tranpose рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рд╣рдорддрд┐ рд▓рдЧрднрдЧ 180 рдбрд┐рдЧреНрд░реА рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп рдореЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИ ( @ Sacha0 рдХреА рдкреЛрд╕реНрдЯ # 20978 (рдЯрд┐рдкреНрдкрдгреА) рдХреЗ рд╕рдордп рдХреЗ рдЖрд╕рдкрд╛рд╕)ред рдХреНрдпрд╛ рд╕рдЪреНрдЪрд╛ рдХрд╛ рдкрдж рдЗрддрдирд╛ рд▓рдЪрд░ рдерд╛ рдХрд┐ рдЗрд╕рдиреЗ рд╕рднреА рдХреЗ рдорди рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛? (рдпрд╣ рдареАрдХ рд╣реИ рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ, рддреЛ рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпреЛрдВ рд╣рдо рдПрдХ рдРрд╕реЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рд╣рдо рд╕рднреА рд╕рд╣рдордд рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рдпрд╣ рдЧрд▓рдд рд╣реИред)

рдпрджрд┐ рдХреЗрд╡рд▓ рдореИрдВ рд╣реА рдЗрддрдирд╛ e рд╣реЛрддрд╛ рддреЛ e рдЖрдк рдЬреЛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдо рд╕рд╣рдорддрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдмрдиреА рдереАред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, (1) рдкреНрд░рддрд┐рднрд╛рдЧреА рдЬреЛ рдпрдерд╛рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрдХреНрд╖ рд▓реЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рд╕реНрдордп рдХреЗ рдХрд╛рд░рдг рдЪрд░реНрдЪрд╛ рд╕реЗ рд╣рдЯ рдЧрдП, рдПрдХ рд░рд╛рдп рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реМрдЯ рдЖрдП; рдФрд░ (2) рдЕрдиреНрдп рдкрдХреНрд╖реЛрдВ рдиреЗ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдпрдерд╛рд╕реНрдерд┐рддрд┐ рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдЪрд▓рди рд╣реЛрдЧрд╛ (рдФрд░ рдпрд╣ рдХреИрд╕реЗ рд╡рд┐рдореЛрдЪрди рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддрд╛ рд╣реИ) рдиреЗ рдпрдерд╛рд╕реНрдерд┐рддрд┐ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рдордЬрдмреВрдд рд░рд╛рдп рдмрдирд╛рдИ рдФрд░ рдЙрд╕ рд░рд╛рдп рдХреЛ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ред

рдХреГрдкрдпрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдЪрд░реНрдЪрд╛ 2014 рдХреЗ рдмрд╛рдж рд╕реЗ рдЬреАрдердм рдкрд░ рдПрдХ рдпрд╛ рд░реВрдк рдореЗрдВ рдЪрд▓ рд░рд╣реА рд╣реИ, рдФрд░ рдкрд╣рд▓реЗ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреА рдЪрд░реНрдЪрд╛рдПрдВ рдердХрд╛рдК рдФрд░ рдЪрдХреНрд░реАрдп рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрдердХ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ --- рдЬреИрд╕реЗ рд▓реЗрдЦрди рдХреЛрдб, рдЬреЛ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╣реИ --- рдкрд░рд┐рдгрд╛рдо рдЙрди рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЖрдХрд░реНрд╖рдг рд╣реИред рдирддреАрдЬрддрди, рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рдПрдХ рдЕрд╡рдзрд┐ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рджреМрд░рд╛рди рд▓реЛрдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдЙрд╕ рдПрдЯреНрд░рд┐рд╢рди рдереНрд░реЗрд╢реЛрд▓реНрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд░рд╣рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдм рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рд╢реБрднрдХрд╛рдордирд╛рдПрдВ! :)

рдореИрдВ AbstractArrays рдХреЗ рд▓рд┐рдП рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд╛рд░рдЧрдорди рдФрд░ ctranspose рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡реЛрдЯ рдбрд╛рд▓реВрдБрдЧрд╛, рджреЛрдиреЛрдВ AbstractArray {T} рдкрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдВ T <: AbstractArrayред

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╡реНрдпрд╡рд╣рд╛рд░ 'рд╕рд╣реА' рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рд╕рд╛рде рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдЪрд╛рд░ рдореЗрдВ, рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдСрдкреНрдЯ-рдЗрди рд╣реЛрддрд╛ рд╣реИ: рдЖрдк рдСрдкреНрдЯ-рдЗрди рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдПрдХ AbstractArray рдмрдирд╛рддреЗ рд╣реИрдВ рдпрд╛ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рдЪреБрдирддреЗ рд╣реИрдВред
Base.transpose(AbstractArray{MyType}) рдпрд╛ Base.transpose(AbstractArray{T}) where T<: MyAbstractType ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд╛рд░рдЧрдорди рдХреЗ рд▓рд┐рдП рдмрддрдЦ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рд░рдгрдиреАрддрд┐ (рдмрд┐рдирд╛ рдкреВрдЫреЗ рдмрд╕ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐) рдКрдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдЖрд╢реНрдЪрд░реНрдп рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрд▓рдЧ ctranspose рдФрд░ adjoint, рдпрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреНрд░рд╕реНрддрд╛рд╡ рдЬреИрд╕реЗ conjadjoint рдФрд░ рдлреНрд▓рд┐рдк рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдкреИрдХреЗрдЬ рдЕрдиреБрд░рдХреНрд╖рдХ рдЙрди рд╕рднреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред

рдПрдХ рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдирдП рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЗ рддрд╣рдд рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдард┐рди рд╣реЛрдЧрд╛: рд╕рд╛рдорд╛рдиреНрдп, рдкрд░рд┐рд╡рд░реНрддрди, ctranspose рдФрд░ conj рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рднреА рдХреЛ рд╡рд┐рдЪрд╛рд░ (рдпрд╛ рдЖрд▓рд╕реА рдореВрд▓реНрдпрд╛рдВрдХрди) рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд┐ ReshapedArray рдФрд░ SubAray рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд╕реНрдкрд░ рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред (рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЬреНрдЮреЗрдп рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдХреЗрд╡рд▓ @view рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордпред) рдпрд╣ A*_mul_B* рдХрдо рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдкрд░ BLAS рдЭрдВрдбреЗ 'рдПрди' рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдШрдиреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП 'рдЯреА', рдФрд░ 'рд╕реА', рдЬреИрд╕рд╛ рдХрд┐ рдХрд╣реАрдВ рдФрд░ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд░ normal , transpose , ctranspose , рдФрд░ conj рдЗрд▓рд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдпрд╣ рдХрд╣рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛
рдмрд░рд╛рдмрд░реА рдкрд░ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ BLAS рд╕реНрд╡рдпрдВ рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рд▓рд┐рдП 'N', рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдХреЗ рд▓рд┐рдП 'T', рдФрд░ ctranspose рдХреЗ рд▓рд┐рдП 'C' рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдкрд╛рд╕ рд╕рдВрдпреБрдЧреНрдорди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдзреНрд╡рдЬ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЧрд▓рддреА рд╣реИред

рдЕрдВрдд рдореЗрдВ, рдЙрдЪреНрдЪ рдЖрдпрд╛рдореА Arrays рдФрд░ reshapes рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрд┐ рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ ctranspose рдХреЗ рдЙрдЪрд┐рдд рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреЛ рд╕рднреА рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЙрд▓реНрдЯрд╛ рдХрд░рдирд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд
рдкрд╛рд░рдЧрдорди (A :: Array {T, 3}) = рдХреНрд░рдордмрджреНрдзрддрд╛ (A, (3, 2, 1))ред

рдЪреАрдпрд░реНрд╕!

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд▓реЛрдЧреЛрдВ рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рдВрдмрд╛рдИ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ рд╡рд╣ рд╡реЗрдХреНрдЯрд░ adjoints / transpose (рд▓реЗрдХрд┐рди рдХрднреА рднреА рдЗрд╕рдХреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд╣рд▓реВ) рдирд╣реАрдВ рд╣реИ, рдЬрдм рддрдХ @andyferris рдиреЗ рдХрджрдо рдирд╣реАрдВ

рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЯреНрд░рд╛рдВрд╕рдЬреЗрдВрдб рдФрд░ adjoint / ctranspose рдХреЛ рдХрднреА рдЕрдзрд┐рдХ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдорд┐рд▓реА, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд╣рд▓реВ рдХреЛ рдирд╣реАрдВ, рдЬрд┐рд╕реЗ рд▓рдЧрднрдЧ рдЪреБрдкрдЪрд╛рдк https://github.com/JuliaLang/julia/pull/7th4 рдореЗрдВ рдПрдХрд▓ рдкреНрд░реЗрд░рдгрд╛ рдмреНрд▓реЙрдХ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд┐рдХрдЯрддрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдг рдФрд░ рдкреНрд░реЗрд░рдгрд╛рдПрдБ (рддрдереНрдпреЛрдВ рдХреЗ рдмрд╛рдж) рджреА рдЧрдИ рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ рдЗрд╕ рдмрд╛рдд рдкрд░ рд╕рд╣рдордд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫрд╛ (рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓) рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдореЗрдВ рдПрдХ рднреА рдкреНрд░реЗрд░рдгрд╛ рдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрдореА рд╣реИред

рдЗрди рдЪрд░реНрдЪрд╛рдУрдВ рдореЗрдВ рдХреБрдЫ рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рдЪрд▓ рд░рд╣реА рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрднреА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

  • рд╣рдордиреЗ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рдкреЛрд░реНрдЯрд┐рдВрдЧ рдмреНрд▓реЙрдХ рдореИрдЯреНрд░рд┐рд╕ (рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рджреЗрд╢реА рд╕рдВрд░рдЪрдирд╛рдПрдВ) LinAlg рдореЗрдВ рд╕рд╛рд░реНрдердХ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: рдХреЛрдИ рднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рд╛рдорд╛рди рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ ( + , * рдФрд░ conj рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреНрд░рдХреГрддрд┐ рд╣реИ), рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдм рдХреБрдЫ (рдпрдерд╛рд╕реНрдерд┐рддрд┐), рдпрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪреЗрдХ рдпрд╛ рдЯреНрд░реЗрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдбреЗрдЯрд╛ рдХреЗ 2D рд╕рд░рдгреА рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА transpose , flip , permutedims рд╕рд┐рдВрдЯреИрдХреНрд╕ рдорд┐рд▓рд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ PR рдХреЛ рдкрд╣рд▓реЗ рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдХрдо рд╡рд░реНрдг рд╣реИрдВ, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЕрдЧрд░ рд╣рдо рдХреБрдЫ рдФрд░ рднреА рдХрд░рддреЗ рд╣реИрдВ), рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪреЗрдХ рдпрд╛ рд▓рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд╛рд░рдЧрдорди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╢рд╛рдпрдж transpose(x::Any) = x ...)ред
  • рдЬреВрд▓рд┐рдпрд╛ рдкрд╛рд░реНрд╕рд░ рдореЗрдВ x' * y -> Ac_mul_B(x, y) рдЬреИрд╕рд╛ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдПрдХ рдорд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ v1.0 рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рддрдм рддрдХ рд╕рдВрднрд╡ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рддреЗрдЬреА рд╕реЗ рдмреАрдПрд▓рдПрдПрд╕ (рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рдпрд╛рдВ) рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЖрд▓рд╕реА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЯреНрд░рд╛рдВрд╕рдЬреЗрдВрдб рдФрд░ рд╕рд╣рд╛рдпрдХ рд╣реИред
  • LinAlg рдореЗрдВ рдХреЛрдб рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИ рдФрд░ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди рдЬреИрд╕реА рдХрдИ рдЪреАрдЬреЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛-рдЕрдиреБрдХреВрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдирдП broadcast рдЬреИрд╕реЗ рдкреНрд░реЗрд╖рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рдеред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рд╕рд╣реА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рднреЗрдЬрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╕рдВрдпреБрдЧреНрдорд┐рдд рдореИрдереНрдпреВрдЬ рдХреЗ ajdointed рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдЧреНрдорд┐рдд reshaped ajdointed рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ v1.0 рдирд╣реАрдВ рдмрдирд╛рдПрдЧрд╛ рдФрд░ рд╣рдо рдХреЛрдб рдХреЛ рдмрд╣реБрдд рдЦрд░рд╛рдм рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рддрд┐рдЧрдорди рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рд╕рд╛рдЪрд╛ рдиреЗ рдмрддрд╛рдпрд╛ (рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ) рддрддреНрд╡реЛрдВ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ (рдкреБрдирд░рд╛рд╡рд░реНрддреА рдирд┐рдХрдЯрддрд╛, рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкрд╛рд░рдЧрдорди, рд╕рдВрдпреБрдЧреНрдорди, рдХреБрдЫ рднреА рдирд╣реАрдВ) рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдирдП рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрдирд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдХрд╛рдо рдХрд░ рд╕рдХреЗрдВред рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЕрдЧрд░ рд╣рдо v1.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рднрд╛рд╖рд╛ рдХреЛ рд╕реНрдерд┐рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рдЕрд░реНрдереЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд▓рд╛рдиреЗ рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рддреАрд╕рд░реА рд╣реИред рдореИрдВ рдХрд╣реВрдВрдЧрд╛: рднрд╛рд╖рд╛ (рдкрд╛рд░реНрд╕рд░ рд╕рд╣рд┐рдд) рд╕рдмрд╕реЗ рд╕реНрдерд┐рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХреЗ рдмрд╛рдж Base , рдЗрд╕рдХреЗ рдмрд╛рдж stdlib (рдЬрд┐рд╕рдореЗрдВ LinAlg рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛) BLAS , Sparse , рдЖрджрд┐ рдПрдХ рджрд┐рди)ред рдпрд╣ рдПрдХ рдРрд╕рд╛ рдмрджрд▓рд╛рд╡ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ (рдЬреНрдпрд╛рджрд╛рддрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдбреЗрд╡рд▓рдкрд░реНрд╕) рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд▓реЛрдЧреЛрдВ рдХреА рд░рд╛рдп рдпрд╣рд╛рдВ рдЕрд▓рдЧ рд╣реИред

рдПрдВрдбреА рдкрд░ рд╣рд╛рдЬрд┐рд░! :)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реИ, рд╡рд╣ рд╣реИ adjoint рдФрд░ transpose рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрд▓рд╕реА?

рдХреНрдпрд╛ рдЕрдм рдЗрд╕реЗ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЕрдЧрд▓рд╛ рдКрдкрд░: "рд╕реНрдХреЗрд▓рд░ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗ рдЬрд╛рдирд╛"

рд▓реЗрдХрд┐рди рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ 3 рдбреА рдЯреНрд░рд╛рдВрдЬрд╝реЛрдЬрд╝ рдФрд░ рдЯреЗрдирд░ рдЧреБрдгрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреАрдбреАрдИ рд╕реЙрд▓реНрд╡рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ? рдЧрдВрднреАрд░ рдХреА рддрд░рд╣, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдкрд╛рдЧрд▓рдкрди рдХреЗ рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдУрдкреА рд╣реЛрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВред

рдирд╣реАрдВ

:)

рдХреНрдпрд╛ рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ 3D рдЯреНрд░рд╛рдВрдЬрд╝реЛрдЬрд╝ рдФрд░ рджрд╕рд┐рдпреЛрдВ рдЧреБрдгрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ PDE рд╕реЙрд▓реНрд╡рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рд╖рдп рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдЕрд▓рдЧ-рдЕрд▓рдЧ 3 рдбреА рдЯреНрд░рд╛рдВрдЬрд╝реЛрдЬрд╝ рдФрд░ рдЯреЗрдирд╕рд░ рдЧреБрдгрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕

рдХреНрдпрд╛ TensorOperations.jl рдХреЛ рдпрд╣рд╛рдБ рдЖрдкрдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ? (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рд╕реНрддрд░ рдкрд░ "рдПрдХ рдЕрдЪреНрдЫрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕" рдХрд╛ рдорддрд▓рдм рдПрдХ рдЯреЗрдВрд╕рд░ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ рдХреА рддрд░рд╣ рд╣реИ, рдЬреЛ рдХрд┐ TensorOperations рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЛрдб рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдереЛрдбрд╝рд╛ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реИ)ред

рд╣рд╛рдБ, TensorOperations.jl рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдереЛрдбрд╝рд╛ рдордЬрд╛рдХ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╣ рдорд┐рд▓ рдЧрдпрд╛ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЬрд░реВрд░рдд рдереА,ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

TotalVerb picture TotalVerb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ararslan picture ararslan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arshpreetsingh picture arshpreetsingh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

i-apellaniz picture i-apellaniz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

omus picture omus  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ