Julia: рдмреЗрд╕ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдЬрдире░ 2018  ┬╖  146рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: JuliaLang/julia

рдпрджрд┐ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╣рд┐рд▓реНрдмрд░реНрдЯ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ? https://github.com/JuliaLang/julia/issues/16573 рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд, рд▓реЗрдХрд┐рди рдХрдо рд╕рд╛рдорд╛рдиреНрдп рдореБрджреНрджрд╛ рд╣реИред рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдирдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ рдЬреЛ рд╕рд░рдгрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВред

рдореИрдВ dot рд╕реЗ inner рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдпрд╛ рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ inner(x,y) рдХреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ x рдФрд░ y , рд╕рд░рдгреА рдорд╛рдорд▓реЗ рд╕рд╣рд┐рдд:

inner(x::AbstractVector, y::AbstractVector) = dot(x, y)

рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЙрдЪрд┐рдд рд╣реИ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдЬреВрд▓рд┐рдпрд╛ v1.0 рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

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

рдХреНрдпрд╛ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ #27401 рдХрд╛ рдЕрдм рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ?

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

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдмреЗрд╕ рдореЗрдВ рд░рдЦрдирд╛ рдлрд╛рдпрджреЗрдордВрдж рдХреНрдпреЛрдВ рд╣реИ? рдПрдХ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдЖрдк рдПрдХ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдХрдИ inner рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдЧрдгрд┐рддреАрдп рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдФрдкрдЪрд╛рд░рд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрдиреЗ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдмреЗрд╣рддрд░ рдлрд╛рдпрджрд╛ рдЙрдард╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХрд┐рд╕реА рднреА рдореАрдЯреНрд░рд┐рдХ рд╕реНрдерд╛рди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ Clustering.jl рд╕реЗ рд▓рд╛рдн рд╣реЛрдЧрд╛ (рдкреИрдХреЗрдЬ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддрдп рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж)ред рдХрдИ рдЕрдиреНрдп рджреВрд░реА-рдЖрдзрд╛рд░рд┐рдд рдпрд╛ рдкреНрд░рдХреНрд╖реЗрдкрдг-рдЖрдзрд╛рд░рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рднреА рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЖрдЬ рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рдкрд╛рд░ рдЖрдпрд╛, рдЬреЛ рдХрд┐ рдХрдВрдкреЛрдЬрд┐рдЯрд▓ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛: https://github.com/juliohm/CoDa.jl рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз inner рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдореЗрд░реЗ рдЕрдкрдиреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмреЗрд╕ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдФрд░ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдЕрдкрдиреЗ рд╣рд┐рд▓реНрдмрд░реНрдЯ рдЕрдВрддрд░рд┐рдХреНрд╖ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП dot рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ? рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

рдЖрдЧреЗ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж <x,y> (рдпрд╛ inner(x,y) ) рдХреЗ рд╕рд╛рде рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдерд╛рди рдореЗрдВ рд╡рд╕реНрддреБрдПрдВ рдЕрдирдВрдд рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рд╢рдмреНрджрд╛рд░реНрде x'*y рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рд╡рд╕реНрддреБрдПрдВ f рдФрд░ g рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдФрд░ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдЖрдорддреМрд░ рдкрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдПрдХреАрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: inner(f,g) = quadrature(f*g) ред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рдХрд╣рдирд╛ рднреНрд░рд╛рдордХ рд╣реИред

рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ CoDa.jl рдкреИрдХреЗрдЬ рдореЗрдВ рдмрддрд╛рдпрд╛ рд╣реИ, рд╡рд╣ рд╣реИ рдХрдВрдкреЛрдЬрд┐рдЯрд▓ рдбреЗрдЯрд╛ред рдХрдВрдкреЛрдЬреАрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рд╕рд┐рдВрдкреНрд▓реЗрдХреНрд╕ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрд╢рди x'*y рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЖрдЗрд╕реЛрдореЗрдЯреНрд░рд┐рдХ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди (рд▓реЙрдЧ-рд░реЗрд╢рд┐рдпреЛ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди) рдореМрдЬреВрдж рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдЕрдиреНрдп рдЬреНрдпреЛрдореЗрдЯреНрд░реА рдореЗрдВ рдХрдВрдкреЛрдЬрд┐рд╢рди рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреЛрдИ рдлрд┐рд░ рдХреЛрдСрд░реНрдбрд┐рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдбреЙрдЯ рдкреНрд░реЛрдбрдХреНрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдпрд╣ рдЖрдо рдмрд╛рдд рд╣реИред рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдореВрд▓ рд╕реНрдерд╛рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╕реНрддреБрдПрдВ рдореМрдЬреВрдж рд╣реИрдВред

рдореБрдЭреЗ рднрд╛рд╖рд╛ рдореЗрдВ dot рд╢рдмреНрдж рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдкрд┐рдЫрдбрд╝рд╛ рд╕рдВрдЧрддрддрд╛ рдорд╛рдВрдЧрддрд╛ рд╣реИ, рддреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг inner(x::AbstractVector, y::AbstractVector) = dot(x,y) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдЖрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдЖрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдмреЗрд╕ рдореЗрдВ рдирдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЖрдо рддреМрд░ рдкрд░ рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдФрдЪрд┐рддреНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдпрд╣реА рдЖрдкрддреНрддрд┐ рд╣реИред рдпрд╣ InnerProducts рдкреИрдХреЗрдЬ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рднрд╛рд╖рд╛ рдореЗрдВ рд╣реА рдирд┐рд░реНрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдпрд╣ рдкрд╣рд▓рд╛ рд╕рд╡рд╛рд▓ рдерд╛ рдЬреЛ @andreasnoack рдиреЗ рдКрдкрд░ рдкреВрдЫрд╛ рдерд╛ - рдЗрд╕рдХрд╛ рдХреБрдЫ рд╣рдж рддрдХ рдЕрд╕реНрдкрд╖реНрдЯ рдЙрддреНрддрд░ рдорд┐рд▓рд╛ "рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдЧрдгрд┐рддреАрдп рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдФрдкрдЪрд╛рд░рд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрдиреЗ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдмреЗрд╣рддрд░ рдлрд╛рдпрджрд╛ рдЙрдард╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА"ред рдРрд╕рд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмреЗрд╕ рдореЗрдВ рдХрд┐рд╕реА рдПрдХ рд╕реЗ рдХрдо рдФрдкрдЪрд╛рд░рд┐рдХ рд╣реИред Base.inner рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХреНрдпрд╛ рд╣реИ рдЬреЛ Base.inner InnerProducts.inner рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рд╢реНрди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдПрдХ рдареЛрд╕ рдЙрддреНрддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╡рд╣ рдЙрддреНрддрд░ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рд╢реНрди рдкреВрдЫрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рдмреБрдирд┐рдпрд╛рджреА рдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реНрдХ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХрд╣реАрдВ рдФрд░ рдЬреЛ рдмреЗрд╕ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдПрдХ рднрд╛рд╖рд╛ рдЬрд┐рд╕рдХрд╛ рдореБрдЦреНрдп рджрд░реНрд╢рдХ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╣реИ, рд▓реЛрдЧ рд╕рд╣реА рд╢рдмреНрджрд╛рд╡рд▓реА рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрдВрдЧреЗред norm Base.LinAlg рдФрд░ inner рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╣реА рд╕рдореВрд╣ рдореЗрдВ рд╣реИ, рдХреЛ рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЗрд╕ рд╡рд┐рд╕рдВрдЧрддрд┐ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рднрд╛рд╖рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА dot рд╣реИ, рдЬреЛ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдмрдЬрд╛рдп рдЗрддрдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрдпреЛрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рддреЛ рдЖрдк рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдореВрд▓ рднрд╛рд╖рд╛ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЖрдзрд╛рд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЧрд▓рдд рд╢рдмреНрджрд╛рд╡рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред norm рдлрд╝рдВрдХреНрд╢рди LinAlg рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ LinAlg рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред dot рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдиред рдХреНрдпрд╛ рдЖрдк рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ dot рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ inner рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП?

рддреЛ рдЖрдк рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдореВрд▓ рднрд╛рд╖рд╛ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдореИрдВрдиреЗ рдХрднреА рдирд╣реАрдВ рдХрд╣рд╛ рдХрд┐ред

рдЖрдзрд╛рд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЧрд▓рдд рд╢рдмреНрджрд╛рд╡рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдХреНрдпрд╛ рдЖрдк рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдмрд┐рдВрджреБ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдЖрдВрддрд░рд┐рдХ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдФрд░ рд░рдЪрдирд╛рддреНрдордХ рдбреЗрдЯрд╛ рдкрд░ рджреЗрдЦреЗрдВред рдЗрди рд╕рдореБрджрд╛рдпреЛрдВ рдХреЗ рд▓реЛрдЧ рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рдХрднреА рднреА dot рд╢рдмреНрдж рдХрд╛ рдкреНрд░рдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред "рдбреЙрдЯ" рдХрд┐рд╕реА рдЕрдиреНрдп рдЪреАрдЬрд╝ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди рд╢рдмреНрдж рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд╣реИред

dot рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ $#$ inner $ рдХрд░рдирд╛ dot рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдмреЗрд╕ рдореЗрдВ inner рдЬреЛрдбрд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдЕрд▓рдЧ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИред рдпрд╣ рдПрдХ "рд╕рд╣реА рд╢рдмреНрджрд╛рд╡рд▓реА" рдкреНрд░рд╢реНрди рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдФрд░ рдЕрдиреНрдп рд▓рд┐рдирд╛рд▓рдЧ рд▓реЛрдЧреЛрдВ рдХреЛ рд╣реИрд╢ рдЖрдЙрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдмрд╛рдЗрдХрд╢реЗрдб рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдерд╛ рдХрд┐ dot рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдирд╛рдо рдерд╛ред

https://github.com/JuliaLang/julia/issues/22227 рдФрд░ https://github.com/JuliaLang/julia/pull/22220 рдореЗрдВ рдЗрд╕рдХреА рдереЛрдбрд╝реА рдЪрд░реНрдЪрд╛ рд╣реБрдИред

рдбреЙрдЯ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдЗрдирд░ рдХрд░рдирд╛ рдбреЙрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрдирд░ рдХреЛ рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдЕрд▓рдЧ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИред

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

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

рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рдЙрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рд╢рдмреНрдж рд╣реИ рдЬрд┐рд╕рдХреА рдореИрдВ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЖрдВрддрд░рд┐рдХ, рдмрд╛рд╣рд░реА, рдЕрджрд┐рд╢ рдЧреБрдгрди... рдпреЗ рдЧрдгрд┐рддреАрдп рд╡рд╕реНрддреБрдПрдБ рд╣реИрдВред "рдбреЙрдЯ рдЙрддреНрдкрд╛рдж" рдПрдХ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ: рдпрд╣ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рджреЛ рдЕрдиреБрдХреНрд░рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ x1*y1 + x2*y2 + ... xn*yn рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдп рдЧрдгрд┐рддреАрдп рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рдмреЗрдХрд╛рд░ рдСрдкрд░реЗрд╢рди рд╣реИред

рдореИрдВрдиреЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдЬреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Base.inner рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ Base.dot ред рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдХреЛ рдХреБрдЫ рдФрдЪрд┐рддреНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдПрдХ рдирдпрд╛ рдСрдкрд░реЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрд╛рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рднрд╛рдЧ рдХреНрдпрд╛ рдерд╛); рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ dot рдЧрд▓рдд рдирд╛рдо рд╣реИ рдФрд░ inner рд╕рд╣реА рдирд╛рдо рд╣реИ (рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рддрдЪреАрдд рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ)ред

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

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

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕реЗ Base (рдпрд╛ LinAlg ) рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рдорд╛рдорд▓рд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдмреЛрдЭ рд╣реИ, рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреИрдХреЗрдЬ рдореЗрдВ рдбрд╛рд▓рдиреЗ рд╕реЗ рд╕рдЦреНрддреА рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░рдг рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рджреВрд╕рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЙрдЪрд┐рдд рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ? Clustering.jl рд╕реЗ рдЬреЗрдиреЗрд░рд┐рдХ рдХреЛрдб рдХреЛ рдЖрдкрдХреЗ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рджреЗрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд░реНрдХ рдмрд╣реБрдд рдЖрдХрд░реНрд╖рдХ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд┐ рд╣рдо LinAlg рдХреЛ рдПрдХ stdlib рдкреИрдХреЗрдЬ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЕрдЧрд░ рдореИрдВ LinearAlgebra рдирд╛рдордХ рдкреИрдХреЗрдЬ рдХрд╛ рд▓реЗрдЦрдХ рд╣реЛрддрд╛ рддреЛ рд╢рд╛рдпрдж рдореБрдЭреЗ рдПрдХ inner рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА

рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @andyferris рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдкреНрд░рддрд┐рд░реЛрдз рдХреЛ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдЬреЛ рдПрдХ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕реЗ рд▓реЗрдХрд░ рдореИрдВ рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдлрд┐рд░ рднреА, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреИрд╕реЗ рдХреЛрдб рд╡реГрджреНрдзрд┐ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ? рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдЕрдореВрд░реНрддрддрд╛ рдореЗрдВ рдмрдбрд╝реЗ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдХреЛрдб рдореЗрдВ рдПрдХ рдорд╛рдореВрд▓реА рдмрджрд▓рд╛рд╡ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред Clustering.jl рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдХрдИ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдХрд┐рд╕реА рднреА рдХрд░реНрдиреЗрд▓-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдЬрд┐рд╕реЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬреВрд▓рд┐рдпрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреА рдзрд╛рд░рдгрд╛ рдореМрдЬреВрдж рд╣реИред MultivariateStats.jl рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВред

рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд LinAlg рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЧрдгрд┐рддреАрдп рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдХрд╛ рдпрд╣ LinearAlgebra рдкреИрдХреЗрдЬ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЬреВрд▓рд┐рдпрд╛ рд╕рддреНрд░ рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ inner , outer рдЖрджрд┐ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреАред рдмрд┐рд▓реНрдХреБрд▓ рдЕрднреАред

рд╣рд╛рдВ, рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рднреА рдЬреВрд▓рд┐рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЧрдП рд╣реИрдВ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдХрдо рд╕реЗ рдХрдо v1.x рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреЛ рднреА using LinAlg рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА (рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ LinearAlgbebra рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, btw, рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕реЗ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдкреНрд░рддрд┐рдпреЛрдЧреА рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рд╣реИ) .

рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдорд╛рдирдХ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА using LinAlg рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЗрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХреЗрдВред

рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдЕрдЬреАрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдареАрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ * рддрд░реАрдХреЗ рдорд┐рд▓реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдмрд┐рдирд╛ using LinAlg ? (рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, LinAlg рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдореБрджреНрд░реА рдбрд╛рдХреВ рд╣реИ)ред

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

рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдЖрдкрд╕реЗ рдкреВрдЫрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХреЗред

рд▓рдХреНрд╖реНрдп рд╕рдВрд░рдЪрдирд╛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рд░рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ Composition рдирд╛рдордХ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ рдФрд░ рд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реИред рдореИрдВ рдХрдИ рдирдореВрдиреЗ (рдЬреИрд╕реЗ рдЪрдЯреНрдЯрд╛рди рдХреЗ рдирдореВрдиреЗ) рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЙрди рд╕рднреА рдХреЛ рдПрдХ рдмрдбрд╝реЗ Vector{Composition} (рдЬреИрд╕реЗ рд╕рдВрд░рдЪрдирд╛ =% рдкрд╛рдиреА,% рдЕрдирд╛рдЬ,% рд╣рд╡рд╛) рдореЗрдВ рдбрд╛рд▓ рджреЗрддрд╛ рд╣реВрдВред рдЕрдм рдореИрдВ рдбреЗрдЯрд╛ рдХреЗ рдЗрд╕ рд╡реЗрдХреНрдЯрд░ рдкрд░ рдПрдХ рдЕрдиреНрдп рдкреИрдХреЗрдЬ (рдЬреИрд╕реЗ MultivariateStats.jl) рдореЗрдВ рд▓рд╛рдЧреВ рдПрдХ рдХрд╛рд░рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдП рдЧрдП inner рдЙрддреНрдкрд╛рдж рдХреЗ рдмрд┐рдирд╛ рдЖрдк рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВрдЧреЗ?

рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдореБрдЭреЗ рдЬреЛ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ MultivariateStats.jl рдФрд░ CoDa.jl рджреЛрдиреЛрдВ рдХреЛ LinAlg.jl рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ред MultivariateStats.jl рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рд╕рд┐рд░реНрдл рдирд╛рдо inner рдХреЛ рджрд╛рдпрд░реЗ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред CoDa.jl рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ inner рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ MultivariateStats.jl рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдпрд╣реА рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣реЗ рд╣реИрдВ?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Composition{D} D рдХреЗ рддрд╣рдд + рдФрд░ * рдХреЗ рддрд╣рдд рдПрдХ рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рд╣реИред

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

рддреЛ, рдЖрдк adjoint(::Composition) -> DualComposition рдФрд░ *(::DualComposition, ::Composition) -> scalar (рд╡рд░реНрддрдорд╛рди рдореЗрдВ inner ) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред DualComposition рдХреЛ рдЕрдВрджрд░ Composition рд░рдЦрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

https://en.wikipedia.org/wiki/Dot_product рдореЗрдВ рдкрд╣рд▓рд╛ рд╡рд╛рдХреНрдп рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ dot рдХрд┐рдиреНрд╣реАрдВ рджреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдПрдХ рдСрдкрд░реЗрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ Number рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ inner рдХреЛ рдЕрдореВрд░реНрдд рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ Number рдФрд░ AbstractArray рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд▓реИрдк рд╣реЛрддрд╛ рд╣реИред

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

рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреБрдЫ рдХреНрдпреЛрдВ рд╣реИ:

inner(x,y) = sum(x.*y)
norm(x) = sqrt(inner(x,x))

export inner, norm

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

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

рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рдкрд░ рдФрд░ рдЬреЛрд░ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ, рдЬреЛ рд╕рд░рдгреА рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдмреЗрд╕ рдореЗрдВ export inner рдХрдерди рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ inner(x,y) = sum(x.*y) рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рд░рдгреА рдЬреИрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдКрдкрд░ рдХреА рддрд░рд╣ рдмреЗрд╕ рдореЗрдВ рдлреЙрд▓рдмреИрдХ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛ рдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рдХреНрд░рд╛рдпрд▓реЛрд╡ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИрдВ, рддреЛ рдЖрдк рдЙрд╕ рдЕрдирдВрдд рдЖрдпрд╛рдореА рдлрд╝рдВрдХреНрд╢рди рд╕реНрдкреЗрд╕ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рдкрд░рд┐рдорд┐рдд-рдЖрдпрд╛рдореА рдЙрдк-рд╕реНрдерд╛рди рдореЗрдВ рд░реИрдЦрд┐рдХ рд╕рдорд╕реНрдпрд╛ рдпрд╛ eigenproblem рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рд▓реЛрд╡ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдореЗрд░реА рдЕрдкрдиреА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдЬреЛ рд╡реЗрдХреНрдЯрд░/рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдкреЗрд╕ рдмрдирд╛рддреА рд╣реИрдВ рд▓реЗрдХрд┐рди <: AbstractArray рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВред рд╕рд╛рджреГрд╢реНрдп рд╕реЗ рдЬреЛ рд░реИрдВрдХ N>1 рдХреЗ рд╕рд╛рде рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдХреНрд░рд╛рдпрд▓реЛрд╡ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ 'рд╡реИрдХреНрдЯрд░' рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ vecdot рдФрд░ vecnorm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдЖрдпрд╛ рд╣реВрдВ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдФрд░ рдЖрджрд░реНрд╢ рдХреА рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдзрд╛рд░рдгрд╛ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреНрд░рд╛рдпрд▓реЛрд╡ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреИрдХреЗрдЬ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╣рд╛рдВ 'рд╡реЗрдХреНрдЯрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╢рд░реНрддреЗ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдПрдВ vecdot , vecnorm рдФрд░ рдХреБрдЫ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ ( scale! , zero , ...) рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмреЗрд╕ рдореЗрдВ рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рдерд╛, рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕рд╣реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╕реАрдзрд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рджрд╛рдПрдВ - vecdot рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ inner рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

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

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

рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рд╕реБрд╕рдВрдЧрдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдХреЗрдВрджреНрд░реАрдп рд╕реНрдерд╛рди рдореЗрдВ рд╣реЛрдЧрд╛ (рд╢рд╛рдпрдж рдЖрдзрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рдХрд┐рд╕реА рдХреЛ using VectorSpaces рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ) рдирд╛рдордХрд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рджреЛ рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:

рд╡рд┐рдХрд▓реНрдк 1 (рдореЗрд░реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЕрдм рддрдХ):
рдЙрдкрд╕рд░реНрдЧ vec рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╕рдордп рдЙрд╕ рд╡рд╕реНрддреБ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП

  • рдиреЗрд╕реНрдЯреЗрдб рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП vecdot рдФрд░ vecnorm рдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ (PR #25093)
  • рдПрдХ рдирдИ veclength рдкрд░рд┐рднрд╛рд╖рд╛ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ

рд╡рд┐рдХрд▓реНрдк 2 (рд╢рд╛рдпрдж рдмреЗрд╣рддрд░): рдЕрдзрд┐рдХ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рд╕рд╣реА рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

  • inner
  • dimension
  • рд▓реЗрдХрд┐рди norm рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдмрд╕ @stevengj рдХреЛ рдкрд┐рдВрдЧ рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА; рдореЗрд░реА рдХреНрд╖рдорд╛рдпрд╛рдЪрдирд╛ рдЕрдЧрд░ рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

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

@juliohm , inner(x,y) = sum(x.*y) рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рднреА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдзрд╛рд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рднрдпрд╛рдирдХ рдлреЙрд▓рдмреИрдХ рд╣реЛрдЧрд╛ред

рд▓реЗрдХрд┐рди dot рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдзрд╛рд░ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╕рдлрд▓) рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд╡реИрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░реИрдВрдХ N>1 рдпрд╛ рдиреЗрд╕реНрдЯреЗрдб рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рд╕рд░рдгреА (рдиреЗрд╕реНрдЯреЗрдб рд╡реИрдХреНрдЯрд░ рдПрдХрдорд╛рддреНрд░ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо norm рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕ рд░рд┐рдЯрд░реНрди рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдорд╛рдирджрдВрдб рдХреЗ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдХрд▓реНрдк рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА "рд╡реЗрдХреНрдЯрд░ рдорд╛рдирджрдВрдб" (рдлреНрд░реЛрдмреЗрдирд┐рдпрд╕ рдорд╛рдирджрдВрдб) рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдХрдо рдкреНрд░рднрд╛рд╡ рд╡рд╛рд▓рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╢рдмреНрджрд╛рд░реНрде vecnorm(x) = norm(vec(x)) рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп vecnorm(x) рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ " x рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рдП рдЬреЛ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕, x " (рдФрд░ vecdot рдХреЗ рд╕рдорд╛рди) рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрдХреНрдЯрд░ рдорд╛рдирджрдВрдб рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡реНрдпрд╛рдЦреНрдпрд╛ (рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди) рдореЗрдВ рдПрдХ рдмрджрд▓рд╛рд╡ рд╣реИ, рдмреЗрд╕ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди/рдХрд╛рд░реНрд░рд╡рд╛рдИ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реЛрдЧреА (рдкреАрдЖрд░ #25093) рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧреА (рд░реИрдВрдХ N рд╕рд░рдгреА рдЕрджрд┐рд╢ рдпрд╛ рд╕рджрд┐рд╢реЛрдВ рдХрд╛)ред рдПрдХ рдлрд╝рдВрдХреНрд╢рди veclength(x) рдЬреЛ x рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдЖрдпрд╛рдо рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ред

рдХрд╕реНрдЯрдо рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рддрдм рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рд╡реЗ рдирдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡реИрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдореЗрдВ "рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж" рджреЗрдЦрдирд╛ рдмрд╣реБрдд рдЖрдо рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╢реИрдХреНрд╖рдгрд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЬрд╣рд╛рдВ рдХреЛрдИ рдкрд░рд┐рдорд┐рдд-рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рдорд╛рдирддрд╛ рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ

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

рдЕрдВрджрд░реВрдиреА рдкреНрд░реЛрдбрдХреНрдЯ

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

рдбреЙрдЯ рдЙрддреНрдкрд╛рдж

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


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

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

рдпрд╣ рддрдп рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рд╡реЗ рдПрдХ рдирдП рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдерд╛рди рдпрд╛ рдмрдирдЪ рд╕реНрдерд╛рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрджрд┐ рдЖрдк рдПрдХ рдирдП рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдерд╛рди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрдХреАрдирди dot рдФрд░ norm рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЗ рд▓рд┐рдП рдХрдордмреИрдХ рдХреА рдХрдореА рд╣реИ), рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ adjoint рдпрджрд┐ рдЖрдк рдПрдХ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди рд╡рд╛рд▓реА рд╡рд╕реНрддреБ рдХреА рдореИрдкрд┐рдВрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ @ рдЬреБрдереЛ рдХрд╣рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рд░рдгреА-рд╕рд░рдгреА рдорд╛рдорд▓реЗ рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдВ рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЛрдИ рд╡рд╣рд╛рдВ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХреАрдХреГрдд рдирд╛рдо рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдРрд╕реЗ рдирд╛рдо/рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░ рдЦреЛрдЬрдирд╛ рдХрдард┐рди рд╣реИ рдЬреЛ рд╕рднреА рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░ рд╕рдХреЗрдВред vecdot рд╢рдмреНрджрд╛рд░реНрде рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП #25093 рджреЗрдЦреЗрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣рд╛рдВ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рд╣реИ, рдЦреБрджред

рдпрд╣рд╛рдВ рдХреБрдЫ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ

  1. x[i]' * y[i] рдХрд╛ рдпреЛрдЧред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрд╣ dot(x,y) рд╣реИред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╡реИрдХреНрдЯрд░ (рдЬрд╣рд╛рдВ рдпрд╣ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреЗрддрд╛ рд╣реИ) рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  2. рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рд╕рд╣рд┐рдд dot(x[i], y[i]) рдХрд╛ рдпреЛрдЧ, рдФрд░ conj(x)*y рдХреЗ рд▓рд┐рдП Number ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрд╣ vecdot(x,y) рд╣реИред
  3. рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди, рдЬреИрд╕реЗ inner(x,y) рдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рдЪреНрдЪреЗ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ inner(x[i],y[i]) рдпреЛрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ - рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ "рдкреБрдирд░рд╛рд╡рд░реНрддреА vecdot" рдЬреЛ @Jutho рдЪрд╛рд╣рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП A , рдпрд╣ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдкреНрд░реЗрд░рд┐рдд рдорд╛рдирджрдВрдб norm(A) рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИ рдЬреЛ рдХрд┐ рд╣рдорд╛рд░реА рд╡рд░реНрддрдорд╛рди norm рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП norm(A) рдХреЛ рдлреНрд░реЛрдмреЗрдирд┐рдпрд╕ рдорд╛рдирджрдВрдб рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рджреВрд░рдЧрд╛рдореА рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдЧрд╛ред

рдПрдХ рдкреНрд░рд╢реНрди (#25093 рдореЗрдВ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ) рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдореЗрдВ рдмреЗрд╕ рдореЗрдВ рдЗрди рддреАрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рд╣рдо рджреЛ (рдФрд░ рдХреМрди рд╕реЗ рджреЛ, рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреНрдпрд╛ рдХрд╣рддреЗ рд╣реИрдВ) рд╕реЗ рджреВрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред @рдЬреБрдереЛ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЖрдзрд╛рд░ рдореЗрдВ рд╡рд┐рдХрд▓реНрдк 2 рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╡рд┐рдХрд▓реНрдк 3 рдХреЗ рд▓рд┐рдП vecdot рдФрд░ vecnorm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рддрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реИ, рд▓реЗрдХрд┐рди рд╢рдмреНрджрд╛рд╡рд▓реА рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд▓реНрдХрд┐ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ, рдФрд░ рдЕрдирдВрдд-рдЖрдпрд╛рдореА рд╣рд┐рд▓реНрдмрд░реНрдЯ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреБрдирд┐рдпрд╛ рдХрд╛ рдЕрдВрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ (рдЬреЛ рд╣рдо vecdot рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕рд╕реЗ рдХреБрдЫ рд╣рдж рддрдХ рд╕реНрд╡рддрдВрддреНрд░) рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП dot рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП (рд╡рд╛рдкрд╕) рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╛рдиреА рд╡реНрдпрд╡рд╣рд╛рд░ 1 рдХреЛ рдЦрддреНрдо рдХрд░реЗрдВ, рдФрд░ dot(x::AbstractVector, y::AbstractVector) рдХреЛ sum dot(x[i],y[i]) $ рдХреЗ рдмрд░рд╛рдмрд░ рдмрдирд╛рдПрдВред рдлрд┐рд░ рднреА рдЗрд╕реЗ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рди рдХрд░реЗрдВ ( norm рдХреЗ рдЕрдиреБрд░реВрдк рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП)ред

рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЭреБрдХрд╛рд╡ dot рдХреЛ рдПрдХ рд╕рдЪреНрдЪреЗ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЬреЛ norm рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП), рдЗрд╕реЗ рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП dot(x[i],y[i]) рдХреЗ рдпреЛрдЧ рдореЗрдВ рдмрджрд▓рдирд╛ (рдпрд╛рдиреА рдмрджрд▓рдирд╛ рд╡реЗрдХреНрдЯрд░-рдСрдл-рдореИрдЯреНрд░рд┐рд╕ рдХреЗрд╕), рдФрд░ рдЗрд╕реЗ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдлрд┐рд░ vecdot рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ vecdot рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдХрд┐ @Jutho рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рдлреЙрд▓рдмреИрдХ vecdot(x,y) = dot(x,y) рдХреЗ рд╕рд╛рдеред рдЕрдВрдд рдореЗрдВ, рдХрд╣реЗрдВ рдХрд┐ рдирдП "рд╣рд┐рд▓реНрдмрд░реНрдЯ-рд╕реНрдкреЗрд╕" рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ dot рдФрд░ norm рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдХрдо-рд╡рд┐рдШрдЯрдирдХрд╛рд░реА, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

(рдПрдХ norm(x) = sqrt(real(dot(x,x))) рдлреЙрд▓рдмреИрдХ рднреА рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рдЦрддрд░рдирд╛рдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирдХрд▓реА рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд▓рд┐рдП рдХрдордЬреЛрд░ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рддрдХрдиреАрдХреА рдХрд╛рд░рдгреЛрдВ рд╕реЗ sqrt(dot(x,x)) рдХреЛ рдлреЙрд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд╣рдо рдПрдХ рдЪрд╛рд╣рддреЗ рд╣реИрдВ Real рдкрд░рд┐рдгрд╛рдо, Complex рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВред)

рдЗрд╕ рд╕реВрдЪрдирд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @stevengj ред рдмрд╕ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЯрд┐рдкреНрдкрдгреА:

рдлрд╝реЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде vecdot(x,y) = dot(x,y) ред рдЕрдВрдд рдореЗрдВ, рдХрд╣реЗрдВ рдХрд┐ рдирдП "рд╣рд┐рд▓реНрдмрд░реНрдЯ-рд╕реНрдкреЗрд╕" рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ dot рдФрд░ norm рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдореЗрдВ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред vecdot(x,y) = dot(x,y) рдлрд╝реЙрд▓рдмреИрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ vecdot рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП Any рддрд░реНрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐, рдпрджрд┐ dot рдФрд░ norm рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдорд╛рдирджрдВрдб рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ рдЬреИрд╕реЗ рдХрд┐рд╕реА рднреА рд╡реЗрдХреНрдЯрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрдм рднреА рдЬрдм рдПрдХ рдкреИрдХреЗрдЬ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдХреНрд░рд╛рдпрд▓реЛрд╡ рд╡рд┐рдзрд┐рдпрд╛рдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрдХреНрдЯрд░ рдЬреИрд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдЕрднреА рднреА рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗрд╕реНрдЯреЗрдб рдпрд╛ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЛ рд╡реЗрдХреНрдЯрд░ рдЬреИрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ vecdot рдФрд░ vecnorm рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдФрд░ рд╡реЗрдХреНрдЯрд░ рдЬреИрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдорд╛рдирджрдВрдб рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рднреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдХрд┐ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ norm рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдореИрдЯреНрд░рд┐рдХреНрд╕/рдСрдкрд░реЗрдЯрд░ рдорд╛рдирджрдВрдб рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП (рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреБрдЫ рдЕрд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ)ред рд╕реНрдЯреЛрдХреЗрд╕реНрдЯрд┐рдХ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ (рдкреЗрд░реЛрди-рдлреНрд░реЛрдмреЗрдирд┐рдпрд╕) рдЖрдЗрдЬреЗрдирд╡реИрд▓реНрдпреВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдЖрдЗрдЬреЗрдирд╡реЗрдХреНрдЯрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдВрджреБ рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рд╡рд┐рддрд░рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдХреНрд╡рд╛рдВрдЯрдо рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдореЗрдВ, рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рд╡рд┐рддрд░рдг рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдирд┐рд╢реНрдЪрд┐рдд рдореИрдЯреНрд░рд┐рдХреНрд╕ (рдШрдирддреНрд╡ рдореИрдЯреНрд░рд┐рдХреНрд╕) рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдВрджреБ (рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ eigenvalue рдХреЗ рдЕрдиреБрд░реВрдк eigenvector) рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдирдХреНрд╢рд╛ rho -> sum(A[i] rho A[i]^\dagger for i = 1:N) рдЬрд╣рд╛рдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ rho рдШрдирддреНрд╡ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ рдФрд░ A[i] рдкреНрд░рддреНрдпреЗрдХ i рдХреЗ рд▓рд┐рдП рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ (рдЬрд┐рд╕реЗ рдХреНрд░реЙрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ)ред рдмрдбрд╝реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЖрдпрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдВрджреБ рдШрдирддреНрд╡ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд░реНрдиреЛрд▓реНрдбреА рд╡рд┐рдзрд┐ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред

рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЭреБрдХрд╛рд╡ рдбреЙрдЯ рдХреЛ рдПрдХ рд╕рдЪреНрдЪреЗ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж (рдЬреЛ рдЖрджрд░реНрд╢ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕реЗ рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдбреЙрдЯ (x [i], y [i]) рдХреЗ рдпреЛрдЧ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдВрдд рдореЗрдВ, рдХрд╣реЗрдВ рдХрд┐ рдирдП "рд╣рд┐рд▓реНрдмрд░реНрдЯ-рд╕реНрдкреЗрд╕" рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдбреЙрдЯ рдФрд░ рдорд╛рдирджрдВрдб рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рд╣рд┐рд▓реНрдмрд░реНрдЯ-рд╕реНрдкреЗрд╕" рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдмреЗрд╢рдХ, рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рд╛рдорд╛рдиреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реБрдП, рдпрджрд┐ рдЗрд╕рдореЗрдВ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕реБрдЭрд╛рд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ norm рд╢рд╛рдорд┐рд▓ рд╣реИ рддреЛ рдпрд╣ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдлреНрд░реЛрдмреЗрдирд┐рдпрд╕ рдорд╛рдирджрдВрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рдЙрдЪреНрдЪ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд╕рд░рдгреА рд╡реЗрдХреНрдЯрд░ рдХреЗ рддрддреНрд╡ рд╣реИрдВ рд╕реНрдерд╛рди)ред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ "рдСрдкрд░реЗрдЯрд░ рдорд╛рдирджрдВрдб" рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА ( matnorm рдпрд╛ opnorm рдпрд╛ рдХреБрдЫ рдФрд░, рдпрд╛ norm ... рдкрд░ рдПрдХ рдХреАрд╡рд░реНрдб рддрд░реНрдХ)ред

@andyferris , рдХреГрдкрдпрд╛ рдореЗрд░реА рдЖрдЦрд┐рд░реА рдЯрд┐рдкреНрдкрдгреА рдиреЛрдЯ рдХрд░реЗрдВред norm рдФрд░ dot рд╕рд╛рдорд╛рдиреНрдп рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдкреЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╣реАрдВ рдмрди рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдЙрдЪреНрдЪ-рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рдиреЗрд╕реНрдЯреЗрдб рд╕рд░рдгрд┐рдпреЛрдВ рдЬреИрд╕реЗ рд╡реЗрдХреНрдЯрд░ рдЬреИрд╕реА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП vecdot рдФрд░ vecnorm рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ 'рдмреЗрд╣рддрд░' (рдХрдо рд╕реЗ рдХрдо рддреЛрдбрд╝рдиреЗ рдХреЗ рдЕрд░реНрде рдореЗрдВ) рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИрдВред

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

рдпрд╣рд╛рдБ рдЙрддреНрдкрд╛рдж рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореЗрд░реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЧрдгрд┐рдд рдСрдиреНрдХреЛрд▓реЙрдЬреА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
рдЕрдЧрд░ рдпрд╣ рд╕реНрдореГрддрд┐ рдХреЛ рдмреНрд░рд╢ рдХрд░рдиреЗ/рдЖрдо рд╕рд╣рдорддрд┐ рд▓рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдмреЛрдирд╕: рдХреЛрдИ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд░реЗрдлрд░реА рдирд╣реАрдВ

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, #25093 рдореЗрдВ @Jutho рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрдо рд╕реЗ рдХрдо рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рдкрд░рд┐рд╡рд░реНрддрди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ vec* рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝реА рдЕрдЬреАрдм рд╣реИред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ vec* рд╢рдмреНрджрд╛рд╡рд▓реА рд╡рд┐рд╖рдо рд╣реИред рдЗрд╕рд▓рд┐рдП рдорд╛рдирдХ рдирд╛рдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд╛рдпрджреЗрдордВрдж рд╣реЛрдЧрд╛ред

рдореИрдВ рднреА рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ vec* рд╢рдмреНрджрд╛рд╡рд▓реА рд╡рд┐рд╖рдо рд╣реИред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, vecdot рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдПрдХ рдирдИ рд╡рд┐рдзрд┐ inner рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ vecnorm "рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рдирд╣реАрдВ рдкрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ vecnorm рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЦрд░рд╛рдм, рд╡реЗрдХреНрдЯрд░ рдорд╛рдирджрдВрдб рд╣рдорд╛рд░реЗ рдЗрдЪреНрдЫрд┐рдд рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╢рдмреНрдж рд╣реИред

рдпрд╣рд╛рдВ рдореВрд▓ рдореБрджреНрджрд╛ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдФрд░ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп norm(A) рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреБрдЫ рдЕрд╕рдВрдмрджреНрдзрддрд╛ (рдЬреИрд╕реЗ vec* рдпрд╛ fro* ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдХреМрди рд╕рд╛ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИред

рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ inner рдлрд╝рдВрдХреНрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ vecdot рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рджреЛ рдирд╛рдо рд░рдЦрдирд╛ рдереЛрдбрд╝рд╛ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХрд┐ рдорд╛рдирджрдВрдб рдХреЛ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рдПред

рдореБрдЭреЗ vecdot рдирд╛рдо рднреА рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рдпрд╣ рднреА рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рд╣реИ ... рдЬрд┐рд╕реЗ inner рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо $#$1 inner vecdot рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╢рдмреНрджрд╛рд░реНрде рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

norm рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЬреЛ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрд▓рд╛, рд╢рд╛рдпрдж рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдмреЗрд╕ рдореЗрдВ рдорд╛рдирджрдВрдбреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ $#$ vecdot рдФрд░ vecnorm рдХреЗ рдмрдЬрд╛рдп inner(x,y) рдФрд░ innernorm(x) = sqrt(inner(x,x)) (рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред innernorm рдереЛрдбрд╝рд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИ рд▓реЗрдХрд┐рди рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИред

рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдЕрдВрдЧреВрдареЗред inner рдФрд░ innernorm рдирд╛рдо рд╕реНрдкрд╖реНрдЯ рдФрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред рдХрд╛рд╢ рд╡реЗ рдЗрд╕реЗ рдЬреВрд▓рд┐рдпрд╛ v1.0 рдореЗрдВ рдмрдирд╛ рдкрд╛рддреЗред

inner рдФрд░ innernorm рдореБрдЭреЗ рдареАрдХ рд▓рдЧрддреЗ рд╣реИрдВред

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

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

рдпрд╛рдиреА рдореИрдВ рдПрдХ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬреЛ рд╣рдореЗрд╢рд╛ рд╡реЗрдХреНрдЯрд░ рдорд╛рдирджрдВрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╣рдореЗрд╢рд╛ рдСрдкрд░реЗрдЯрд░ рдорд╛рдирджрдВрдб рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рджреЛрдиреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕реЗ рдФрд░ рднреА рдмреЗрд╣рддрд░ рдкрд╕рдВрдж рдХрд░реЗрдВ @andyferris : +1: рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдирджрдВрдб рдЬреЛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд░рд┐рдд рдорд╛рдирджрдВрдб рдирд╣реАрдВ рд╣реИрдВ, рдЙрдирдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдирд╛рдо norm рдХрд╛ рдЕрд░реНрде рдмрд┐рд▓реНрдХреБрд▓ norm(x) = sqrt(inner(x,x)) рд╣реЛрдЧрд╛, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ " norm рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рдХреЗ рдПрдХ рддрддреНрд╡ рдХрд╛ рдорд╛рдирджрдВрдб рджреЗрддрд╛ рд╣реИ"

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

рдЖрдк "рдорд╛рдирджрдВрдб" рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рднреНрд░рдорд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдСрдкрд░реЗрдЯрд░ рдорд╛рдирджрдВрдб "рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рдХрд╛ рдорд╛рдирджрдВрдб" рдирд╣реАрдВ рд╣реИред

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдиреБрдХреВрд▓реА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдПрдХреАрдХрд░рдг (ala quadgk) рдПрдХ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдирдХ рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рди рдХрд┐ рдЖрдВрддрд░рд┐рдХ-рдЙрддреНрдкрд╛рдж рд╕реНрдерд╛рди рдХреАред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рд╢рд╛рдпрдж рдЕрдкрдиреА рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдерд╛ред рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдИ рдорд╛рдиреНрдп рдорд╛рдирджрдВрдб рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд░ рдорд╛рдирджрдВрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

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

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

рдпрд╣ рдЙрдЪрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдореЗрдВ innernorm рд╣реИ рддреЛ рдЙрд╕реЗ рдПрдХ рдЕрд▓рдЧ norm рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА? рдореИрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡ рджреВрдВрдЧрд╛ рдХрд┐ рдмрдирдЪ рд╕реНрдкреЗрд╕ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ norm рдЬрдмрдХрд┐ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ norm рдФрд░ inner рджреЛрдиреЛрдВ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред рдлрд┐рд░ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ Banach рдпрд╛ рдЖрдВрддрд░рд┐рдХ-рдЙрддреНрдкрд╛рдж рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ (рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд┐ Banach рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдВрддрд░рд┐рдХ-рдЙрддреНрдкрд╛рдж рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ norm(x) рд╣рдореЗрд╢рд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡-рд╡рд╛рд░ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдорд╛рдирджрдВрдб (рдпрд╛рдиреА рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рдлреНрд░реЛрдмреЗрдирд┐рдпрд╕ рдорд╛рдирджрдВрдб) рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВ, рдпрд╛рдиреА рдореВрд▓ рд░реВрдк рд╕реЗ vecnorm рдЕрдм рд░рд┐рдХрд░реНрд╕рд┐рд╡ рдХреЗрд╕ рдореЙрдбреНрдпреВрд▓реЛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо dot(x,y) рдХреЛ рдЗрд╕реА рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( inner рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди dot рдореЗрдВ рдПрдХ рдЗрдВрдлрд┐рдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд▓рд╛рдн рд╣реИ x тЛЕ y )

рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдареАрдХ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ 0.7 рд╕реЗ рдкрд╣рд▓реЗ рдереЛрдбрд╝рд╛ рджреЗрд░ рд╣реЛ рд╕рдХрддреА рд╣реИ ...

рдХреНрдпрд╛ L2 рдЙрдЪреНрдЪ рдЖрдпрд╛рдореА рдореЗрдВ рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ?
рдпрд╣ рд▓реЗрдЦ рджреВрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдирджрдВрдб рд╕реЗ рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ
https://stats.stackexchange.com/questions/99171/why-is-euclidean-distance-not-a-good-metric-in-high-dimensions

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдбреЙрдЯ (рдПрдХреНрд╕, рд╡рд╛рдИ) рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдп рднреА, рд▓реЗрдХрд┐рди рдбреЙрдЯ рдореЗрдВ рдПрдХ рдЗрдВрдлрд┐рдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдг x y рдХрд╛ рд▓рд╛рдн рд╣реИ)

рдХреНрдпрд╛ рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ dot рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрдиреНрдлрд┐рдХреНрд╕ рдиреЛрдЯреЗрд╢рди dot рдирд╛рдордХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд╕ рдЬреВрд▓рд┐рдпрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП inner рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдЗрдиреНрдлрд┐рдХреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред рд╕рдВрднрд╡ рд╣реИ рдХрд┐?

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣реА рд╣реИ, рдбреЙрдЯ рдЙрддреНрдкрд╛рдж: рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд╕рд╛рде рдЖрд░ ^ рдПрди рдореЗрдВ рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдиреЛрдЯреЗрд╢рди x тЛЕ yред

@stevengj рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ, рд╣рд╛рдБред

@ o314 рдХреНрдпрд╛ L2 рдЙрдЪреНрдЪ рдЖрдпрд╛рдореАрддрд╛ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ? рд╢рд╛рдпрдж рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рд╕реЗ рдирдлрд░рдд рдХрд░рддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП norm(v::AbstractVector) рджреНрд╡рд╛рд░рд╛ рдЪреБрдирд╛ рдЧрдпрд╛ рдорд╛рдирджрдВрдб $#$1 length(v) #$ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ :) рдореИрдВ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдореЗрд░рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдпрд╛ рдЙрдЪреНрдЪ-рдЖрдпрд╛рдореА рд╕рд░рдгреА "L2 рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛" рд╣реИ - рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдХрд┐ рд╢рд╛рдпрдж рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

@juliohm рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпреЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЬрд╛ рд░рд╣реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рддреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред (рдлрд┐рд░ рд╕реЗ, рдкреБрдирд░рд╛рд╡рд░реНрддреА рдорд╛рдорд▓реЗ рдореЗрдВ рдореЙрдбреНрдпреВрд▓реЛ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдФрд░ inner рдФрд░ dot рдХреЗ рдмреАрдЪ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдВрддрд░реЛрдВ рдкрд░ рдкрд╣рд▓реЗ рдХреА рдЪрд░реНрдЪрд╛)ред

@stevengj , @andyferris рдХрд╛ рдЕрд░реНрде рдХреНрдпрд╛ рдерд╛, рдЗрд╕рдХреА рдореЗрд░реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐, рдмрддрдЦ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рддрдп рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ (рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрдХреНрдЯрд░ p -norm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ) рдпрд╛ рдПрдХ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ (рдФрд░ рдПрдХ рдкреНрд░реЗрд░рд┐рдд p -рдорд╛рдирджрдВрдб рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ)ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИ рдХрд┐ norm рдЗрдирдкреБрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реЗрдХреНрдЯрд░ рдорд╛рдирджрдВрдб рдпрд╛ рдкреНрд░реЗрд░рд┐рдд рдорд╛рдирджрдВрдб рдЪреБрдирдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдФрд░ vecnorm рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡реЗрдХреНрдЯрд░ рдорд╛рдирджрдВрдб (рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореБрдЭреЗ vecnorm рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╛рдо рдирд╣реАрдВ рдорд┐рд▓рд╛)ред рдПрдХ рдЕрдзрд┐рдХ рдХреНрд░рд╛рдВрддрд┐рдХрд╛рд░реА рдкрд░рд┐рд╡рд░реНрддрди norm рдХреЛ рд╣рдореЗрд╢рд╛ рд╡реЗрдХреНрдЯрд░ рдорд╛рдирджрдВрдб рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬрдм рдЖрдк рдкреНрд░реЗрд░рд┐рдд рдорд╛рдирджрдВрдб рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдПрдХ (рдХреАрд╡рд░реНрдб) рддрд░реНрдХ рдпрд╛ рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗред

рджреВрд╕рд░реА рдУрд░, рдореБрдЭреЗ innernorm рдирд╛рдо рд╕реЗ рднреА рдРрддрд░рд╛рдЬ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЗрд╕ рдмрд╛рдд рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдЖрдзрд╛рд░рд┐рдд рдорд╛рдирджрдВрдб рд╣реИ (рдпрд╛рдиреА рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ p=2 )ред рдореБрдЭреЗ рдХрд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЧреАрд▓реЗрд░ рдХреЛ рдЖрдВрдХрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ (vec)norm рдХреЛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП p рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХреЗрд╡рд▓ p=2 рдЖрд╕рд╛рди рд╣реИ рдЧрдгрдирд╛ рдХрд░рдирд╛ред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣реА рд╣реИ, рдбреЙрдЯ рдЙрддреНрдкрд╛рдж: рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд╕рд╛рде рдЖрд░ ^ рдПрди рдореЗрдВ рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдиреЛрдЯреЗрд╢рди x тЛЕ yред

рдореИрдВ рдЗрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдХрд┐ рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрднреА рднреА рд╕рд╛рдорд╛рдиреНрдп (рдЬреИрд╕реЗ рдЬрдЯрд┐рд▓) рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ x тЛЕ y рдиреЛрдЯреЗрд╢рди рджреЗрдЦрд╛ рд╣реЛред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рдЧрдгрд┐рддреАрдп рд╕рдВрдХреЗрддрди (x,y) рдпрд╛ Dirac рд╕рдВрдХреЗрддрди < x | y > рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рджреНрдпреБрдд рдЪреБрдВрдмрдХрддреНрд╡ рдореЗрдВ рдЕрдХреНрд╕рд░ 3-рдЖрдпрд╛рдореА рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП E тЛЕ B рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рднрд▓реЗ рд╣реА рдХреЛрдИ рдЬрдЯрд┐рд▓ рд╕рдВрдХреЗрддрди (рдЕрд░реНрдерд╛рдд рдЪрд░рдг) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реЛ, рдпрд╣ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдореБрдЭреЗ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА рдЕрдЧрд░ dot рдЬрдЯрд┐рд▓ рдпрд╛ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдВрдпреБрдЧреНрдорди рдХреЗ рдмрд┐рдирд╛ рд╕рд┐рд░реНрдл sum(x_i * y_i) рдмрди рдЧрдпрд╛, рдФрд░ inner рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдмрди рдЧрдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕рдВрднрд╡рддрдГ рдПрдХрд▓ рд░рд┐рд▓реАрдЬрд╝ рдЪрдХреНрд░ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдореИрдВ рдмреАрдЖрдИрдПрдо рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рд╣рдо 2 рдбреА рдФрд░ 3 рдбреА рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди 4 рдбреА, 5 рдбреА, 6 рдбреА рднреА 7 рдбреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдХрднреА рдЖрдЧреЗ рдирд╣реАрдВ рдЬрд╛рддреЗред рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рди рдЖрдпрд╛рдореЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХреМрди рд╕рд╛ рдЕрд╣рдВрдХрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдХрд╛рдлреА рд╣рдж рддрдХ рдХрд╛рдлреА рд╣реИред

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

рд╕рд░рдгреА рд╕реЗ рдкреНрд░реЗрд░рд┐рдд: рд╕рдорд╛рди рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред

norm2 = x -> x |> inner |> sqrt
norminf = ...
NMAX = 10
for N in 1:NMAX
    <strong i="13">@eval</strong> begin norm(a::Array{T,N}) where {T} = norm2 end
end
norm(a::Array{T,n}) where {T} = norminf

рдХреНрдпрд╛ рд╣рдо рдбреЙрдЯ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрдиреНрдлрд┐рдХреНрд╕ рдиреЛрдЯреЗрд╢рди рдбреЙрдЯ рдирд╛рдордХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреВрд▓рд┐рдпрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдмрд╕ рдЗрдиреНрдлрд┐рдХреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред рд╕рдВрднрд╡ рд╣реИ рдХрд┐?

norm(x::AbstractVector, p::Real=2) = vecnorm(x, p) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L498
vecdot(x::Number, y::Number) = conj(x) * y # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L657
dot(x::Number, y::Number) = vecdot(x, y) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L659
function dot(x::AbstractVector, y::AbstractVector) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L677

# Call optimized BLAS methods for vectors of numbers
dot(x::AbstractVector{<:Number}, y::AbstractVector{<:Number}) = vecdot(x, y) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L698

Dot / vecdot рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рдВрдпреБрдЧреНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдпрд╣ рддрдп рдХрд░рдирд╛ рдХрд┐ BLAS рдореЗрдВ рдХрдм рдЬрд╛рдирд╛ рд╣реИред рдЗрд╕реЗ рдХрд╣реАрдВ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╣реА рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдкреНрд░рдмрдВрдзрдиреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ L2 рдЙрдЪреНрдЪ рдЖрдпрд╛рдореАрддрд╛ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ? рд╢рд╛рдпрдж рдирд╣реАрдВ

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

рдЬрд╛рд╣рд┐рд░ рд╣реИ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреНрдп рдорд╛рдирджрдВрдб рднреА рдЙрдкрд▓рдмреНрдз рд╣реЛрдВред рдпрджрд┐ рд╣рдо norm(x) рдХреЛ рдЬрд╣рд╛рдВ рднреА рд╕рдВрднрд╡ рд╣реЛ, рддрддреНрд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ L2 рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ norm(x, p) рддрддреНрд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ LтВЪ рд╣реЛрдЧрд╛, рдФрд░ рд╣рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░реЗрд░рд┐рдд/ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди (рдЬреИрд╕реЗ opnorm ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдСрдкрд░реЗрдЯрд░ рдорд╛рдирджрдВрдбред

рдореИрдВ рдЗрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдХрд┐ рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрднреА рднреА рд╕рд╛рдорд╛рдиреНрдп (рдЬреИрд╕реЗ рдЬрдЯрд┐рд▓) рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ x тЛЕ y рдиреЛрдЯреЗрд╢рди рджреЗрдЦрд╛ рд╣реЛред

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

рд╣рдо dot рдХреЛ рдпрдерд╛рд╡рдд рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ inner рдХреЛ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рджреНрд╡рдВрджреНрд╡ рдкреИрджрд╛ рдХрд░реЗрдЧрд╛ - рд╕рдмрд╕реЗ рдЖрдо рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рд╕рдорд╛рди рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡рд┐рд╖рдо рдорд╛рдорд▓реЛрдВ рдореЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд╕рд░рдгрд┐рдпрд╛рдБ) рд╡реЗ рднрд┐рдиреНрди рд╣реЛрдВрдЧреЗред

рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ, рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ innernorm рдФрд░ inner рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд┐рд╕реА рдХреЛ рдкреАрдЖрд░ ASAP рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

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

рдореБрдЭреЗ рджреЛ рдореБрдЦреНрдп рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:

  • рдиреЙрди рдмреНрд░реЗрдХрд┐рдВрдЧ, рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ: inner(x,y) рдФрд░ innernorm(x) ред vecdot рдФрд░ vecnorm рдХреА рдЬрдЧрд╣, рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддреАред

  • рдмреНрд░реЗрдХрд┐рдВрдЧ: norm(x,p=2) рдХреЛ рд╣рдореЗрд╢рд╛ рдПрд▓рд┐рдореЗрдВрдЯ рд╡рд╛рдЗрдЬ рдФрд░ рд░рд┐рдХрд░реНрд╕рд┐рд╡ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓реЗрдВ, vecnorm рдХреА рдЬрдЧрд╣, рдФрд░ рдСрдкрд░реЗрдЯрд░/рдкреНрд░реЗрд░рд┐рдд рдорд╛рдирджрдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рди opnorm рдкреЗрд╢ рдХрд░реЗрдВред $#$8 vecdot #$ рдХреА рдЬрдЧрд╣, dot(x,y) рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡-рд╡рд╛рд░ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдПрдВред (рд╡реИрдХрд▓реНрдкрд┐рдХ: inner рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ dot рдФрд░ inner рджреЛрдиреЛрдВ рдХрд╛ рд╣реЛрдирд╛ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред)

рдЕрдЧрд░ рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд░ рд░рд╣рд╛ рдерд╛ рддреЛ рдореИрдВ 2 рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЪреБрдкрдЪрд╛рдк рдЗрд╕рдХрд╛ рдЕрд░реНрде рдмрджрд▓рдирд╛ рдмрд╣реБрдд рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ norm ред

рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рд╡рд┐рдХрд▓реНрдк inner рдФрд░ innernorm ( vecdot рдФрд░ vecnorm ) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдФрд░ norm(matrix) рд╕реЗ opnorm рдХреЛ рдкрджрд╛рд╡рдирдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред norm(matrix) = innernorm(matrix) рдлрд┐рд░ рд╕реЗ рдкреЗрд╢ рдХрд░реЗрдВред рдЗрд╕ рддрд░рд╣, рд▓реЛрдЧ рдЕрдВрддрддрдГ рдХреЗрд╡рд▓ inner рдФрд░ norm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо dot рдХреЛ рд╡реИрдХреНрдЯрд░-рдСрдл-рдПрд░реЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╡рд┐рд╖рдо рдЬрд╛рдирд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ ( inner рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреЗ рд╣реБрдП) рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП

innernorm рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡рд┐рд╖рдорддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрд▓ 1 рдпрд╛ рд▓рд┐рдирдл "рддрддреНрд╡рд╡рд╛рд░" рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП innernorm(x,p) рдПрдХ рдорд┐рдереНрдпрд╛ рдирд╛рдо рд╣реИред

рдореБрдЭреЗ рдЖрдкрдХрд╛ рдордзреНрдпрд╡рд░реНрддреА рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ innernorm(x) рдирд╛рдо рдкрд╕рдВрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ p=2 рдФрд░ рджреВрд╕рд░рд╛ рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕реА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдорд╛рдирджрдВрдб рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЬрд╛рдирддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди (vec)norm рдХреЗ рд╕рд╛рде, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ p рддрд░реНрдХ рдЕрдиреБрдорд╛рдирд┐рдд рдмреЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╣реИ рдпрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╣реИ рдпрд╣ рд▓реЗрдХрд┐рди рдлрд┐рд░ p != 2 рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪреЗрдВ рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрдкрдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдордзреНрдпрд╡рд░реНрддреА рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди vecnorm(matrix, p!=2) рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЧреИрд░-рдмрд╣рд┐рд╖реНрдХреГрдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИред

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

рдХреНрдпрд╛ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ innernorm рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдпрд╛ рдХреНрдпрд╛ рд╣рдо рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ vecnorm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдмрд╛рдж рдореЗрдВ norm рдХреЗ рдкрдХреНрд╖ рдореЗрдВ vecnorm рдХреЛ рд╣рдЯрд╛ рджреЗрдВ)?

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ dot рдХреЛ inner рд╕реЗ рдмрджрд▓рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдВрднрд╛рд╡рд┐рдд рд╣рдВрдЧрд╛рдореЗ рдирд╣реАрдВ рджреЗрдЦрддрд╛ ... рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдбреЙрдЯ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╣реИред

рдкрд░рд┐рд╡рд░реНрддрди рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреАрдЖрд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

  1. dot рдХреЛ inner рд╕реЗ рдмрджрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЕрд░реНрде рджреЗрдВред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЬреВрд▓рд┐рдпрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЗрдиреНрдлрд┐рдХреНрд╕ \cdot рд╕рдВрдХреЗрддрди рдмрд┐рдВрджреБ рдХреЛ рдЖрдВрддрд░рд┐рдХ рдмрдирд╛рдПрдВред
  2. рдорд╛рдирдХ рд░реВрдкреЛрдВ рдФрд░ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЕрдзрд┐рдХ рдЪрд░реНрдЪрд╛ рдФрд░ рдмрд╣рд┐рд╖реНрдХрд░рдг рдЪрдХреНрд░ред

рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдкреАрдЖрд░ 1 рдХреЛ рдЬреВрд▓рд┐рдпрд╛ v1.0 рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЯреВрдЯ рдирд╣реАрдВ рд░рд╣рд╛ рд╣реИред

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

рддреЛ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд 0.7 рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  1. norm(matrix) рд╕реЗ opnorm(matrix) рдФрд░ norm(vector of vectors) рд╕реЗ vecnorm рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
  2. dot([vector of arrays], [vector of arrays]) рдХреЛ sum рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрджрд╛рд╡рдирдд рдХрд░реЗрдВред
  3. рдХрд╣реЗрдВ рдХрд┐ vecdot(x,y) рдФрд░ vecnorm(x, p=2) рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж/рдорд╛рдирджрдВрдб рд╣реИрдВ ( p=2 рдХреЗ рд▓рд┐рдП), рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдмрдирд╛рдПрдВ (рдЬреЛ рдереЛрдбрд╝рд╛ рдЯреВрдЯ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╢рд╛рдпрдж рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ) .

рдлрд┐рд░, 1.0 рдореЗрдВ:

  1. vecnorm рд╕реЗ norm рдФрд░ vecdot рд╕реЗ dot рдХреЛ рд╣рдЯрд╛ рджреЗрдВред (рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ 1.0 рд░рд┐рд▓реАрдЬ рдирд┐рдпрдореЛрдВ, @StefanKarpinski рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ?)

(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ numpy.inner рдлрд╝рдВрдХреНрд╢рди, рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ, рд╣рдореЗрд╢рд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди inner рдФрд░ dot рдкрд░ NumPy рдХреА рд╢рдмреНрджрд╛рд╡рд▓реА рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рд░рд╣реА рд╣реИред)

рдЬрд┐рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдореИрдВ рдЗрд╕реЗ dot рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрддрдиреА рдЬрд╛рд░реА рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ:

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

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

рдордВрдЧрд▓рд╡рд╛рд░, рдордИ 15, 2018, 5:13 рдкреВрд░реНрд╡рд╛рд╣реНрди рд╕реНрдЯреАрд╡рди рдЬреА. рдЬреЙрдирд╕рди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ numpy.inner
https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.inner.html
рдХрд╛рд░реНрдп, рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ, рд╣рдореЗрд╢рд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред)

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/JuliaLang/julia/issues/25565#issuecomment-389144575 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ADMLbdcpeWo7M4prYz76NoqUPIkfVPP3ks5tysZlgaJpZM4ReGXu
.

рдХреЛрдИ рднреА рдХрд╛рд░рдг рдореЗрд░реЗ рд▓рд┐рдП рд╕рдореНрдореЛрд╣рдХ рдирд╣реАрдВ рд╣реИ:

>

  • рдЗрдВрдлрд┐рдХреНрд╕ рд╡реИрд░рд┐рдПрдВрдЯ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред

рд╣рд╛рдВ, рдФрд░ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЗрдВрдлрд┐рдХреНрд╕ рдиреЛрдЯреЗрд╢рди рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЖрдВрддрд░рд┐рдХ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

>

  • рд╕рд╛рдзрд╛рд░рдг рдкрд░рд┐рдорд┐рдд-рдЖрдпрд╛рдореА рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреИрд░-рдЧрдгрд┐рддрдЬреНрдЮреЛрдВ рдХреЗ рд▓рд┐рдП
    рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди, рдбреЙрдЯ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЖрдВрддрд░рд┐рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рдирд╛рдо рд╣реИ
    рдЙрддреНрдкрд╛рджред (рдЧрдгрд┐рддрдЬреНрдЮ рдЖрд╕рд╛рдиреА рд╕реЗ dot for . рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдпреЛрдЬрд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ
    рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдЖрдВрддрд░рд┐рдХ-рдЙрддреНрдкрд╛рдж рдлрд╝рдВрдХреНрд╢рди- "рдбреЙрдЯ рдЙрддреНрдкрд╛рдж" рдореЗрдВ рдирд╣реАрдВ рд╣реИ
    рдРрд╕реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рд┐рдд рдЕрд░реНрдеред)

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

>

  • рдЗрдирд░ рдФрд░ рдбреЙрдЯ рджреЛрдиреЛрдВ рдХрд╛ рд╣реЛрдирд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ
    рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЕрдиреНрдп рдирд╣реАрдВ (рдпрджрд┐ рд╣рдо рд╡рд░реНрддрдорд╛рди рдмрд┐рдВрджреБ рд░рдЦрддреЗ рд╣реИрдВ
    рдЕрд░реНрде)ред

рд╣рдореЗрдВ рджреЛрдиреЛрдВ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдХрдо рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ, рдЬрд┐рд╕рд╕реЗ рд╣рдо рд╕рд╣рдордд рд╣реИрдВ
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдбреЙрдЯред

>

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

рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдмрд╛рд╣рд░ рдореИрдВ рдбреЙрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдпреЛрдЧ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдЕрдзрд┐рдХ
рдбреЙрдЯ рдЗрдВрдлрд┐рдХреНрд╕ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЕрд░реНрде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реИрдВред

>

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд╕рд╛рде @juliohm рдХреА рдЖрдЦрд┐рд░реА рдкреЛрд╕реНрдЯ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред


рдХреЛрдИ рднреА рдХрд╛рд░рдг рдореЗрд░реЗ рд▓рд┐рдП рд╕рдореНрдореЛрд╣рдХ рдирд╣реАрдВ рд╣реИ:

рдЗрдВрдлрд┐рдХреНрд╕ рд╡реИрд░рд┐рдПрдВрдЯ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред

рд╣рд╛рдВ, рдФрд░ рдЗрдирдлрд┐рдХреНрд╕ рдиреЛрдЯреЗрд╢рди рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдирд╛рдо рдмрджрд▓рдХрд░ рдЗрдирд░ рд╣реЛ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

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

рдЗрдирд░ рдФрд░ рдбреЙрдЯ рджреЛрдиреЛрдВ рдХрд╛ рд╣реЛрдирд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реЛрдВрдЧреЗ рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЕрдиреНрдп рдирд╣реАрдВ (рдпрджрд┐ рд╣рдо рд╡рд░реНрддрдорд╛рди рдбреЙрдЯ рдЕрд░реНрде рд░рдЦрддреЗ рд╣реИрдВ)ред

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

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

рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдмрд╛рд╣рд░ рдореИрдВ рдбреЙрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдпреЛрдЧ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдбреЙрдЯ рдЗрдВрдлрд┐рдХреНрд╕ рдиреЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдЕрдзрд┐рдХ рдЕрд░реНрде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реИрдВред

рд╣рд╛рдВ, рдФрд░ рдЗрдирдлрд┐рдХреНрд╕ рдиреЛрдЯреЗрд╢рди рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдирд╛рдо рдмрджрд▓рдХрд░ рдЗрдирд░ рд╣реЛ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ const тЛЕ = inner рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рддрдм рдЖрдкрдХреА рд╢рдмреНрджрд╛рд╡рд▓реА рдЕрд╕рдВрдЧрдд рд╣реИред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЖрдк "рдбреЙрдЯ рдЙрддреНрдкрд╛рдж" рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ?

рдЧрдгрд┐рддрдЬреНрдЮреЛрдВ рдХреЛ рдЙрдирдХреА рдЗрдЪреНрдЫрд╛ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдЧрд▓рдд рд╢рдмреНрджрд╛рд╡рд▓реА рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рдирд╛

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

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

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

рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдмрд╛рд╣рд░ рдореИрдВ рдбреЙрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдпреЛрдЧ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдбреЙрдЯ рдЗрдВрдлрд┐рдХреНрд╕ рдиреЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдЕрдзрд┐рдХ рдЕрд░реНрде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реИрдВред

рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдФрд░ рдХрдИ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╡рд░реНрд╖реЛрдВ рд╕реЗ dot рд╣реИ рдФрд░ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред inner рдирдпрд╛ рдЯреВрдЯрдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдВрддрддрдГ, рдЗрд╕ (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп) рдлрд╝рдВрдХреНрд╢рди рдХреА рд╡рд░реНрддрдиреА рд╢рдмреНрджрд╛рд░реНрде рдФрд░ рдкрджрд╛рд╡рдирддрд┐ рдкрде рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдорд╛рдореВрд▓реА рдорд╛рдорд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢реЗрд╖ рд░рд╛рд╢рд┐ dot рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реИред

рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ const = рдЖрдВрддрд░рд┐рдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рддрдм рдЖрдкрдХреА рд╢рдмреНрджрд╛рд╡рд▓реА рдЕрд╕рдВрдЧрдд рд╣реИред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЖрдк "рдбреЙрдЯ рдЙрддреНрдкрд╛рдж" рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрднреА рднреА рдирд╣реАрдВ рд╕рдордЭреЗ рд╣реИрдВред рдбреЙрдЯ рдХреЛ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХрд╣рдиреЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╕рдВрдЧрддрд┐ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реИ , рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдФрд░ рдмреЗрдХрд╛рд░ рд╣реИред sum(x.*y) рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВред

рдпрджрд┐ dot рд╢рдмреНрдж рдХрд╛ рдЕрдВрдд рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ inner рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдЖрдкрджрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕рдХреА рдореИрдВ рдЖрдкрдХреЛ рдЧрд╛рд░рдВрдЯреА рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдирд╛рд░рд╛рдЬ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВрдЧреЗред рдореИрдВ рдХрдХреНрд╖рд╛ рдореЗрдВ рдкреНрд░реЛрдлреЗрд╕рд░реЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ: "рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЕрдм рд╣рдо рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдХрд┐рд╕реА (@stevengj) рдиреЗ рдЗрд╕реЗ рдбреЙрдЯ рдХрд╣рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред"

рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рддреЛ рдореИрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХрд░реВрдВрдЧрд╛ред

рдЖрдк рдЕрдХреЗрд▓реЗ @stevengj рд╣реИрдВ рдЬреЛ dot рд╢рдмреНрджрд╛рд╡рд▓реА рдкрд░ рдЬреЛрд░ рджреЗ рд░рд╣реЗ рд╣реИрдВ, рдХрд┐рд╕реА рдФрд░ рдиреЗ рдЗрд╕рдХрд╛ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рддрдереНрдп рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХреЗрдВред

рдпрд╣ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реИ, рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдФрд░ рдмреЗрдХрд╛рд░ рд╣реИред рдпреЛрдЧ (x.*y) рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВред

рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдбреЙрдЯ рдЙрддреНрдкрд╛рдж" рдХреЗрд╡рд▓ рдореЗрдВ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ const тЛЕ = inner рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ тЛЕ(x::AbstractVector{<:Real}, y::AbstractVector{<:Real}) = inner(x,y) рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣ рджреЛрдиреЛрдВ рддрд░реАрдХреЗ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: рдпрд╛ рддреЛ inner рдПрдХ рдЗрдиреНрдлрд┐рдХреНрд╕ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рдХреЗ рд░реВрдк рдореЗрдВ тЛЕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░ рдЖрдкрдХреА рднрд╛рд╖рд╛ рдореЗрдВ "рдЧрд▓рдд" рд╣реИ рдФрд░ рдирд╛рдордХрд░рдг рдЕрд╕рдВрдЧрдд рд╣реИ) рдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рдЗрдиреНрдлрд┐рдХреНрд╕ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рдирд╣реАрдВ рд╣реИ (рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред

рдореИрдВ рдХрдХреНрд╖рд╛ рдореЗрдВ рдкреНрд░реЛрдлреЗрд╕рд░реЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ: "рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЕрдм рд╣рдо рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдХрд┐рд╕реА (@stevengj) рдиреЗ рдЗрд╕реЗ рдбреЙрдЯ рдХрд╣рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред"

рд╣рд╛ рд╣рд╛, рдореИрдВ рдЗрд╕ рдХрд╛рд▓реНрдкрдирд┐рдХ рдирд╛рд░рд╛рдЬ рдкреНрд░реЛрдлреЗрд╕рд░ рд╕реЗ рдЧрд░реНрдореА рд▓реЗрдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВред рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдЖрдкрдХреЛ рдФрд░ рдЕрдзрд┐рдХ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдбреЙрдЯ рдЙрддреНрдкрд╛рдж" рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдореЗрдВ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдХрд┐ рдЧрдгрд┐рддрдЬреНрдЮ рдирд╛рд░рд╛рдЬ рд╣реИрдВ рдпрджрд┐ рдЗрд╕ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рд╣рд┐рд▓реНрдмрд░реНрдЯ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдПрдХ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдЖрдкрджрд╛ рд╣реЛрдЧреА

рдЧрдВрднреАрд░рддрд╛ рд╕реЗ?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд░реНрдЪрд╛ рдПрдХ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп, рдирд╛рдЧрд░рд┐рдХ рдФрд░ рд░рдЪрдирд╛рддреНрдордХ рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреА рд╣реИред рд░рд╛рдп рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣рдорд▓реЗ рдХрд░рдиреЗ рдпрд╛ рдХрд┐рд╕реА рдкрд░ рджреЛрд╖рд╛рд░реЛрдкрдг рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ рдФрд░ рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╕рднреА рдкрдХреНрд╖ рдЕрдкрдиреА рдмрд╛рдд рдкрд░ рдЕрдЪреНрдЫреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдмрд╣рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдХрдХреНрд╖рд╛ рдореЗрдВ рдкреНрд░реЛрдлреЗрд╕рд░реЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ: "рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЕрдм рд╣рдо рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдХрд┐рд╕реА (@stevengj) рдиреЗ рдЗрд╕реЗ рдбреЙрдЯ рдХрд╣рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред"

рдпрд╣рд╛рдВ рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕реНрдЯреАрд╡рди _is_ рдПрдХ рдкреНрд░реЛрдлреЗрд╕рд░ рд╣реИрдВред :рдЖрдБрдЦ рдорд╛рд░рдирд╛:

рдореИрдВ dot рдХреЛ inner рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрд╛рдбрд╝ рдкрд░ рд╣реВрдВред dot рд╢рдмреНрдж рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░, рдЬрдм рдпрд╣ рдкрд╛рдпрдерди рдФрд░ MATLAB рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ inner рд╢рдмреНрдж рднреА рдкрд╕рдВрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЧреИрд░-тДЭтБ┐ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИред

рд╕рдВрдпреЛрдЧ рд╕реЗ, рдЬрдм рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдХреМрди рд╕реЗ рддрд░реАрдХреЗ рдХрд░ рд░рд╣реЗ рдереЗ, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ dot рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реИрдХреНрдЯрд░/рдореИрдЯреНрд░рд┐рд╕ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реИ?

рдЗрдирд░ рдФрд░ рдбреЙрдЯ рджреЛрдиреЛрдВ рдХрд╛ рд╣реЛрдирд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реЛрдВрдЧреЗ рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЕрдиреНрдп рдирд╣реАрдВ (рдпрджрд┐ рд╣рдо рд╡рд░реНрддрдорд╛рди рдбреЙрдЯ рдЕрд░реНрде рд░рдЦрддреЗ рд╣реИрдВ)ред

@stevengj рдХреНрдпрд╛ vecdot рдХреЛ inner рд╕реЗ рдмрджрд▓рдирд╛ рдФрд░ рд╕рд╛рде рд╣реА $# dot рд░рдЦрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реЛрдЧрд╛? рдЕрднреА, рдЖрдк рдЬрд┐рд╕ рд╕рдЯреАрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдмрд╕ vecdot рдХреЗ рдмрдЬрд╛рдп inner рдХреЗ рд╕рд╛рдеред

рдареАрдХ рд╣реИ... рдЖрдЧреЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рд▓рд╛рдЗрд╡ рд╕реБрдЭрд╛рд╡ рдХреНрдпрд╛ рд╣реИрдВ? рдХреНрдпрд╛ рд╡реЗ:

  • рд╡реНрдпрд╛рдкрдХ рд╢реНрд░реЗрдгреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ dot рдХреЛ рдЕрдкрдирд╛рдПрдВред рдпрд╣ рд╡реИрдХреНрдЯрд░-рдСрдл-рд╡реЗрдХреНрдЯрд░ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░рд┐рдХрд░реНрд╕рд┐рд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдореИрдЯреНрд░рд┐рд╕ рдЖрджрд┐ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ ( @jebej рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ dot рдФрд░ inner рджреЛрдиреЛрдВ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдЯреАрд╡рди рдХрд╣рддреЗ рд╣реИрдВ, рд╣рдо рдХрдо рд╕реЗ рдХрдо рдмреЛрд▓рдЪрд╛рд▓ рдХреА рднрд╛рд╖рд╛ рдореЗрдВ dot рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХрд╛ рдЕрд░реНрде рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЧрд▓рдд рдирд╣реАрдВ рд╣реИ - рдпрд╣ рд╕рд┐рд░реНрдл рд╢рдмреНрджрд╛рд╡рд▓реА рд╣реИ)ред
  • norm рдХреЛ рдЙрдкрд░реЛрдХреНрдд dot рдФрд░ рд╕рднреА AbstractArray рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдФрд░ рд╕реБрд╕рдВрдЧрдд рдмрдирд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЕрдВрддрддрдГ рдСрдкрд░реЗрдЯрд░ рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП opnorm ( AbstractMatrix рдкрд░) рдХреЛ рдкреЗрд╢ рдХрд░рдирд╛ norm(matrix) == vecnorm(matrix) рдЙрдкрдпреБрдХреНрдд рдмрд╣рд┐рд╖реНрдХрд░рдг рдХреЗ рдмрд╛рджред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╢рд╛рдпрдж рд╣рдореЗрдВ рдЕрдм vecdot рдФрд░ vecnorm рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ?

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

@andyferris , рд╣рд╛рдБ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдХреЗрд╡рд▓ dot рдФрд░ norm рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЬреЛ рдЕрдм рдХрд┐рд╕реА рднреА рдЖрдпрд╛рдо рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдпрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рд╕рдВрдЪрд╛рд▓рди рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд╛рдирджрдВрдб рдХреЗ рд▓рд┐рдП рд╣рдо norm(x,p) рдХреЛ рдкреА-рдорд╛рдирджрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ opnorm , рдФрд░ рдЕрдм vecdot рдпрд╛ vecnorm рдирд╣реАрдВ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ dot рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ dot рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╡реИрдХреНрдЯрд░ (#22392) рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ рд╣реИ, рдХреБрдЫ рдРрд╕рд╛ рдЬрд┐рд╕ рдкрд░ #22220 рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдмрд╣рд╕ рд╣реБрдИ рдереА ( рдЬрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ vecdot рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ IIRC рдирд╣реАрдВ рдорд╛рдирд╛ рдЧрдпрд╛ рдерд╛)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕реЗ 0.7 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд┐рд▓реАрдЬрд╝ рдХреЛрдб рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, dot рдореЗрдВ 0.6 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рд╣реИ рдЬреЛ рдордирдорд╛рдиреЗ-рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рд╣реИ, рдХреБрдЫ рд╣рдж рддрдХ рджреБрд░реНрдШрдЯрдирд╛ рд╕реЗ (#22374)ред рдпрд╣рд╛рдВ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЙрд╕ 0.6 рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП norm рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ред

рдПрдХ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ norm(x,p) norm(x[i]) рдпрд╛ norm(x[i],p) $ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред рджреЛрдиреЛрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИрдВред рдореИрдВ рдкреВрд░реНрд╡ рдХреА рдУрд░ рдЭреБрдХрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ - x[i] рдХреБрдЫ рдордирдорд╛рдирд╛ рдЖрджрд░реНрд╢ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ norm рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкреА-рдорд╛рдирджрдВрдб рдирд╣реАрдВред norm рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рднреА рд╡рд╣реА рд╣реИ рдЬреЛ рдЕрдм vecnorm рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ vecnorm рд╕реЗ norm рдХреЛ рдкрджрд╛рд╡рдирдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред

@jebej , dot рджреЛрдиреЛрдВ рдорд╛рд╕реНрдЯрд░ рдкрд░ рдФрд░ 0.6 рдореЗрд░реЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: dot([3im],[4im]) рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 12+0im $ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

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

рдХрдИ рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЖрдо рд╕рд╣рдорддрд┐ рдмрдирддреЗ рджреЗрдЦрдирд╛ рдЕрджреНрднреБрдд рд╣реИ! :) (рдЬрдм рддрдХ рдХреЛрдИ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рд░рд╛ рдирд╣реАрдВ рджреЗрддрд╛ (рдХреГрдкрдпрд╛ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмреИрдВрдбрд╡рд┐рдбреНрде рд╣реИ!) рдпрд╛ рдПрдХ рдЕрд▓реНрдлрд╛ рдЯреИрдЧ рдкрд╣рд▓реЗ рд╣рд┐рдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╡рд░реНрддрдорд╛рди рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рдмрд┐рдВрджреБрдУрдВ рдХреЛ # 26997 рд╢рд┐рдкрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдПрдХ рд╢реЙрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рджреВрдВрдЧрд╛ред) рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда!

рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд▓рд┐рдВрдХ: https://math.stackexchange.com/a/476742

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

рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╛рдореВрд╣рд┐рдХ рдирд┐рд░реНрдгрдп рдерд╛:

# make dot what it is, a NOTATION
тЛЕ(x::AbstractVector, y::AbstractVector) = sum(x[i]*y[i] for i in indices(x))

# replace the name dot by the more general inner
inner(x, y) = # anything

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

рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдирд╛: рддрд╛рд▓реА: рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЖрдо рд╕рд╣рдорддрд┐ рдереАред рдКрдкрд░ рджреА рдЧрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝реЗрдВ, рдФрд░ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕рднреА рдХреИрд╕реЗ рд╕рд╣рдордд рд╣реБрдПред :+1:

рдпрд╛ рд╢рд╛рдпрдж рдореБрдЭреЗ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдХрд┐ рдпрд╣ рдЖрдо рд╕рд╣рдорддрд┐ рдХреИрд╕реЗ рдереА:

>

рджрд╛рдПрдВ - vecdot рдХреЛ рдЖрдВрддрд░рд┐рдХ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рджреНрд╡рд╛рд░рд╛ @andyferris

рд╡рд┐рдХрд▓реНрдк 2 (рд╢рд╛рдпрдж рдмреЗрд╣рддрд░): рдЕрдзрд┐рдХ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рд╕рд╣реА рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рднреАрддрд░реА
рдЖрдпрд╛рдо
рд▓реЗрдХрд┐рди рдЖрджрд░реНрд╢ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?

рджреНрд╡рд╛рд░рд╛ @Jutho

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, vecdot рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдЗрдирд░ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рджреНрд╡рд╛рд░рд╛ @Jutho

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

рджреНрд╡рд╛рд░рд╛ @jebej

рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ...

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

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

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

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

@juliohm , рд╕рднреА рддрд░реНрдХ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ рдХрд┐ рд╣рдо рджрд░реНрд╢рдХреЛрдВ рдХреЛ рдХреМрди рд╕реЛрдЪрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рд╕рднреА рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдЕрдЪреНрдЫреА рднрд╛рд╖рд╛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рддрд░реНрдХрд╕рдВрдЧрдд рд▓реЛрдЧ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЧрдгрд┐рдд рд╡рд░реНрддрдиреА рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ @stevengj рдХреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рд╕рд╣рдордд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ dot рдкрд░ рдЯрд┐рдХрд╛ рд░рд╣ рд╕рдХрддрд╛ рд╣реВрдВред рд╕рд╛рде рд╣реА, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рдЪрд░реНрдЪрд╛ рдЪрд▓ рд░рд╣реА рд╣реИ, рдореИрдВ рдЙрд╕реЗ рдирд╛рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрджреНрдзреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред @juliohm , рджреВрд╕рд░рд╛ рдЙрджреНрдзрд░рдг рдЬреЛ рдЖрдкрдиреЗ рдореБрдЭреЗ рджрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдореЗрд░рд╛ рдирд╣реАрдВ рд╣реИред

рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рднреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреНрдпрд╛рджрд╛рддрд░ рд╡рд┐рдкрдХреНрд╖ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ @stevengj рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреЗрд╢реЗрд╡рд░реЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред dot рдмрд╕ рдорддрд▓рдм sum(x[i]*y[i] for i ...) рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЧрдгрд┐рдд рдореЗрдВ рдЗрдВрдлрд┐рдХреНрд╕ рдбреЙрдЯ рдиреЛрдЯреЗрд╢рди рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдо рддреМрд░ рдкрд░ рдЕрд░реНрде рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрдВрдлрд┐рдХреНрд╕ рдбреЙрдЯ рдиреЛрдЯреЗрд╢рди рдЖрдо рддреМрд░ рдкрд░ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд╣реАрдВ) рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ ╧Г тЛЕ n рдХреЗ рд╕рд╛рде ╧Г рдкрд╛рдЙрд▓реА рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХрд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдФрд░ n рд╕реНрдХреЗрд▓рд░ рдХрд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ dot рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдкреАрдЫреЗ рдпрд╣ рдПрдХ рдкреНрд░реЗрд░рдгрд╛ рдереА, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реВрддреНрд░ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдмреАрдПрд▓рдПрдПрд╕ рдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ dot рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЬрдЯрд┐рд▓ рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП dotu рдФрд░ dotc рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рд╣реИред рдмреАрдПрд▓рдПрдПрд╕ рдкреГрд╖реНрдарднреВрдорд┐ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рднреНрд░рдорд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдЯрд┐рд▓ рд╡реИрдХреНрдЯрд░ рд╣реЛрдиреЗ рдкрд░, рд╡реЗ dot(conj(u),v) рдпрд╛ dot(u,v) рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрдм рд╡реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж (рдпрд╛рдиреА dotc ) рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ рдкрд╣рд▓реЗ рд╣рд╛рде рдореЗрдВ рд╡реЗрдХреНрдЯрд░ рдХреА рд╕рдВрдпреБрдЧреНрдорд┐рдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдпреЗ рдмрд┐рдирд╛ dotu рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВред

@Jutho рдмреЛрд▓реА рдЖрдкрдХреА рд╣реИ, рдЖрдкрдХреА рдкреВрд░реА рдЯрд┐рдкреНрдкрдгреА рдиреАрдЪреЗ рдХреЙрдкреА рдХреА рдЧрдИ рд╣реИ:

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

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

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

dotu рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд┐рд░реНрдпрд╛рдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рд╛рдордиреЗ рдЖрдИ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП #8300 рджреЗрдЦреЗрдВ)ред рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрднреА-рдХрднреА рдПрдХ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдп рд╣реЛрддрд╛ рд╣реИ: рдПрдХ рдЧреИрд░-рд╕рдВрдпреБрдЧреНрдорд┐рдд рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди "рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж" (рдЕрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ) рдЬреЛ рдПрдХ рд╕рдордорд┐рдд рдмрд┐рд▓рд┐рдирд┐рдпрд░ рд╣реИ (рд╕реЗрд╕рдХреНрд╡рд┐рд▓рд┐рдирд┐рдпрд░ рдирд╣реАрдВ) dotu(x,y) == dotu(y,x) (рд╕рдВрдпреБрдЧреНрдорд┐рдд рдирд╣реАрдВ) рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рднреА . рд▓реЗрдХрд┐рди рдЙрд╕ рдСрдкрд░реЗрд╢рди рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ тДВтБ┐ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрддреНрдкрд╛рдж рдЕрдХреНрд╕рд░ рдореИрдХреНрд╕рд╡реЗрд▓ рдХреЗ рд╕рдореАрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирдВрдд-рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди (рдлрд╝рдВрдХреНрд╢рдВрд╕) рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХрддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЛрддрд╛ рд╣реИ (рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ: рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣рд╛рдирд┐рдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдореИрдХреНрд╕рд╡реЗрд▓ рдСрдкрд░реЗрдЯрд░ рд╣реИ рдПрдХ "рдЬрдЯрд┐рд▓-рд╕рдордорд┐рдд рдореИрдЯреНрд░рд┐рдХреНрд╕" рдХреЗ рдЕрдиреБрд░реВрдк - рдЕрд╕рдВрдмрджреНрдз "рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж" рдХреЗ рддрд╣рдд рд╕рдордорд┐рдд)ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╣рдо dot(x,y) рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж (рд╕рдВрдпреБрдЧреНрдорд┐рдд рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд╕рд╛рде) рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд┐рд╕реА рднреА рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рдкрд░ рдЕрд╕рдВрдмрджреНрдз рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП dotu(x,y) рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдХрд╛рдлреА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реЛрдЧрд╛ред рдЬрд╣рд╛рдВ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ dotu рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ dot рдХреЗ рд╡рд┐рд░реБрджреНрдз рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реА рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЬрдм рдЖрдк рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рд╕рдВрдпреБрдЧреНрдорд┐рдд рдЙрддреНрдкрд╛рдж рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд╣реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

рд▓реЗрдХрд┐рди рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ dot(x,y) = sum(x[i]'*y[i] for i = 1:length(x)) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рд╣реЛрдЧреА, рдЬреЛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рд╕реНрдЯрд░ (0.6 рдирд╣реАрдВ) рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рдФрд░ inner(x,y) рдХреЛ рд╕рд╣реА рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд╛ рд▓рд╛рдн рд╣реИ, рдЬреЛ рджреЛрдиреЛрдВ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬреЛ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд╕рд░рдгреА рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рддрдп рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЙрд▓рдЭрди рдореЗрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рд╣реИред рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ dot рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬрдм рдЙрдирдХрд╛ рдорддрд▓рдм inner рдерд╛, рдФрд░ рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЙрдирдХрд╛ рдХреЛрдб рдХреБрдЫ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдпрд╣ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рдореЗрд░рд╛ рд╕рдВрджреЗрд╣ рдпрд╣ рд╣реИ рдХрд┐ 99% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ "рдЙрддреНрдкрд╛рдж рдХрд╛ рдпреЛрдЧ" рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рдкреИрдХреЗрдЬ рдкрд░ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдХреЗрд╡рд▓ sum рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ) )

@juliohm , рдореИрдВрдиреЗ рдЖрдкрдХреА рдкреЛрд╕реНрдЯ рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдкрдврд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдирд╛рдо рдКрдкрд░ (рдиреАрдЪреЗ рдХреЗ рдмрдЬрд╛рдп) рд╕рдВрдмрдВрдзрд┐рдд рдЙрджреНрдзрд░рдг рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЖрдкрдиреЗ @jebej рдХреЗ рдЙрджреНрдзрд░рдг рдХреЛ рдореЗрд░реЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рд╣реИред рдЙрд╕рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдорд╛рдлрд╝реАред

@stevengj , рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдЪрд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ dot(x,y) = sum(x[i]'*y[i] for i = 1:length(x)) рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред ╧Г тЛЕ n рдЬреИрд╕реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╣рд▓реЗ рдпрд╛ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХрд╛ рдЬрдЯрд┐рд▓/рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдВрдпреБрдЧреНрдорди рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред рддреЛ рдореИрдВ рдЬреЛ рдХрд╣ рд░рд╣рд╛ рдерд╛, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐, рдХрдИ (рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдирд╣реАрдВ) рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕реВрддреНрд░реЛрдВ рдореЗрдВ рдЗрдВрдлрд┐рдХреНрд╕ рдбреЙрдЯ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЕрд░реНрде dotu рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдпрд╛рдиреА sum(x[i]*y[i] for i = 1:length(x)) рдмрд┐рдирд╛ рд╕рдВрдпреБрдЧреНрдорди рдХреЗ, рдпрд╛ рддреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рдХреБрдЫ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдорд╛рдг рдХреЗ рд░реВрдк рдореЗрдВред

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

  • dot(x,y) = sum(x[i]*y[i] for i...) , рдЬреЛ рдЕрднреА рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реИ (рдЬреЛ рд╕рдВрднрд╡рддрдГ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдЬреЛ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╢рдмреНрдж рд╕реЗ рдХрдо рдпрд╛ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ) рд▓реЗрдХрд┐рди ╧Г тЛЕ n рдЬреИрд╕реЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ

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

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

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

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

  • рдЕрд╕рдВрдмрджреНрдз: Numpy dot (рдФрд░, рд╡рд┐рдЪрд┐рддреНрд░ рд░реВрдк рд╕реЗ, рдЖрдВрддрд░рд┐рдХ ), Mathematica's Dot , Maxima . , BLAS dotu

  • рд╕рдВрдпреБрдЧреНрдорд┐рдд: рдореИрдЯрд▓реИрдм рдХрд╛ dot , рдлреЛрд░рдЯреНрд░рд╛рди рдХрд╛ DOT_PRODUCT , рдореЗрдкрд▓ рдХрд╛ DotProduct , рдкреЗрдЯреНрд╕ рдХрд╛ VecDot , Numpy vdot , BLAS dotc (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреА рдХрдореА рдлреЛрд░рдЯреНрд░рд╛рди 77 рдореЗрдВ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдиреЗ рдЗрд╕ dot рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдмрдирд╛ рджрд┐рдпрд╛, рднрд▓реЗ рд╣реА рд╡реЗ рдЪрд╛рд╣реЗрдВ), Eigen's dot

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

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

(рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ тЯиu,vтЯй , тЯиu|vтЯй , рдпрд╛ (u,v) рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдиреЛрдЯреЗрд╢рди рд╣реИрдВ-рд╡реЗ рд╡рд╣реА рд╣реИрдВ рдЬреЛ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рд╕реНрд╡рдпрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ-рд▓реЗрдХрд┐рди рд╡реЗ рдиреЛрдЯреЗрд╢рди рдПрдХ рд╣реИрдВ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдиреЙрдирд╕реНрдЯрд╛рд░реНрдЯрд░ред рдпреВрдирд┐рдХреЛрдб рдмреНрд░реИрдХреЗрдЯ рдХреЛ рдлрд╝рдВрдХреНрд╢рди/рдореИрдХреНрд░реЛ рдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдХреБрдЫ рдЪрд░реНрдЪрд╛ рдереА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП # 8934 рдФрд░ # 8892, рд▓реЗрдХрд┐рди рдпрд╣ рдХрднреА рднреА рдХрд╣реАрдВ рдирд╣реАрдВ рдЧрдпрд╛ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд▓реНрдж рд╣реА рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред)

рдореИрдВ рдЖрдкрдХреЗ рдЖрдХрд▓рди @stevengj рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реВрдВред

рдореИрдВ рднреАред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╣рдо рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдирд┐рдХрд▓рддрд╛ рд╣реИред

@ рдЬреБрдереЛ рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдЙрдЪреНрдЪ рдСрд░реНрдбрд░ рдЯреЗрдВрд╕рд░ рдкрд░ рд╕рдВрдХреБрдЪрди рдХреЗ рд▓рд┐рдП рдкрд╛рдЙрд▓реА рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд╕рд╛рде рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рдХреЛ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ ... рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ, 3 рдбреА рд╣реИред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ u,vтЯй, тЯиu|vтЯй, рдпрд╛ (u,v) рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдиреЛрдЯреЗрд╢рди рд╣реИрдВ-рд╡реЗ рд╡рд╣реА рд╣реИрдВ рдЬреЛ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рд╕реНрд╡рдпрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ-рд▓реЗрдХрд┐рди рд╡реЗ рдиреЛрдЯреЗрд╢рди рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЙрдирд╕реНрдЯрд╛рд░реНрдЯрд░ рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ тЯиu,vтЯй рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

@StefanKarpinski : рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ тЯиu, vтЯй рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

рдмрд┐рд▓реНрдХреБрд▓, рдФрд░ рдЗрд╕ рд╕рдЯреАрдХ рд╕рдВрдХреЗрддрди рдХрд╛ рд╕рдорд░реНрдерди #8934 рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрднреА рднреА рдХрд╣реАрдВ рдирд╣реАрдВ рдЧрдпрд╛ред (рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдг рдХреЛрд╖реНрдардХ рдХреЗ рдЕрдиреНрдп рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП uтЯй рдЕрдХреНрд╕рд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдФрд╕рдд рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред) рдпрд╣ рдЧреИрд░-рдмреНрд░реЗрдХрд┐рдВрдЧ рд╣реИ рдФрд░ рдЕрднреА рднреА рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдХрдЯ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдЕрд╡рдзрд┐ред \langle<tab> x, y \rangle<tab> рдЯрд╛рдЗрдк рдХрд░рдирд╛ рднреА рдХрд╛рдлреА рдзреАрдорд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред

рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП <> рдУрд╡рд░рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣реИ рдирд╛?

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

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рдирдореНрд░ рд╕реВрддреНрд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдкрдврд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд╣рд▓реЗ рдХрд┐рдП рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ:

  • рдбреЙрдЯ рдФрд░ рдЗрдирд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдирд╛ рдЕрддреНрдпрдзрд┐рдХ рдкрд╛рдВрдбрд┐рддреНрдпрдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рдХрд╛рдиреЛрдВ рдореЗрдВ рдпрд╣ рдирд┐рд░рд░реНрдердХ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлреНрд░реЗрдВрдЪ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рд╢рдмреНрдж рд╣реИ - "рд╕реНрдХреЗрд▓рд░ рдЙрддреНрдкрд╛рдж" - рдФрд░ рдЙрди рдЪреАрдЬреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реА рдирд╛рдо рд╣реИ ;-)
  • рдЬрдм рдЖрдк рд╕реБрдиреНрди рд╕реЗ рдЖ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬрдЯрд┐рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ dot рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдпреБрдЧреНрдорд┐рдд рд╣реЛрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред рдпрд╣рд╛рдВ рдХреЛрдИ рдирд┐рд░реНрдгрдп рдмрд┐рдВрджреБ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдХрд┐рддрдиреА рдЦреБрд╢реА рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдм рдпреЗ conj(dot()) s рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ!
  • рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд▓реЗ рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╣реЛрдирд╛, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЦрд░рд╛рдм рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рднреНрд░рдо рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ, рдХреЛрдб рдХреЗ рд╕рд╛рде рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдпрд╣ norm рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ: рдпрджрд┐ рдЖрдк рдПрдХ рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдХреЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬрдм рднреА norm(delta x) < eps рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд▓рд┐рдЦрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ norm ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдк рдПрдХ рдЫрд╡рд┐ рдпрд╛ рдХреБрдЫ wrt рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЖрдк рдЕрдкрдирд╛ рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрдЪрд╛рдирдХ рдПрдХ рдмрдбрд╝реА рд╕рд░рдгреА рдХреЗ рдПрдХ рдЕрдирдЬрд╛рди (рдХреНрдпреЛрдВрдХрд┐ рдмреАрдПрд▓рдПрдПрд╕) рдПрд╕рд╡реАрдбреА рдореЗрдВ рд▓реЙрдиреНрдЪ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЕрдХрд╛рджрдорд┐рдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдиреЗ Optim.jl рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рдкреИрджрд╛ рдХреА рд╣реИ, рдФрд░ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рднреАред рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рдХрд┐ vecnorm рдореМрдЬреВрдж рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░рдг рди рд╣реЛред
  • рдкрд┐рдЫрд▓реЗ рдмрд┐рдВрджреБ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди рдЬреЛ dot рдФрд░ vecdot , рдФрд░ norm рдФрд░ vecnorm рдХреЛ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИ, рдЕрдЪреНрдЫрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рдереЛрдбрд╝рд╛ рд▓рдЪреАрд▓рд╛рдкрди рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рд╕рд░рдгреА-рд╕реЗ-рд╕рд░рдгреА рдорд╛рдорд▓реЗред рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрдХреНрд╕рд░ рдЙрди рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рди рдкрд░ рдХрдИ рдорд╛рдирджрдВрдб рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдЯреНрд░рд┐рд╕), рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рдЪрд╛рд╣рддрд╛ рд╣реИ рд╡рд╣ рдорд╛рдирдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП norm рдкрд░ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред рдкреНрд░реЗрд░рд┐рдд рдорд╛рдирджрдВрдб рдЙрдирдХреА рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЕрдЯреНрд░реИрдХреНрдЯрд┐рд╡рддрд╛ рдХреЗ рдХрд╛рд░рдг рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реБрдЪрд┐ рдХреЗ рдмрдЬрд╛рдп рдЕрдХреНрд╕рд░ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВред рд╡реЗ 2D-рд╕рд░рдгреА-рдХреЗ рд░реВрдк рдореЗрдВ-рд╕рдВрдЪрд╛рд▓рдХ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ, рди рдХрд┐ 2D-рд╕рд░рдгреА-рдХреЗ рд░реВрдк рдореЗрдВ-рднрдВрдбрд╛рд░рдг рдПрдХ (рдПрдХ рдЫрд╡рд┐ рдПрдХ 2D рд╕рд░рдгреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧреА рдЕрд░реНрде рдореЗрдВ рдПрдХ рдСрдкрд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реИ)ред рдЙрдирдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ norm рд╣реЛрдиреЗ рдХреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИрдВред рдЙрдЪрд┐рдд, рд╕рд░рд▓ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдЪреВрдХ рдЬрд┐рдирдореЗрдВ рдЦреЛрдЬ рдпреЛрдЧреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдкреНрд░рдпрд╛рд╕ рдХреА рдЧрдИ рдЪрддреБрд░рд╛рдИ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИрдВ (рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдЪрддреБрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рджреЗрдВ)ред

рдЗрд╕рд▓рд┐рдП, @stevengj 's . рдкрд░ +1 рдХрд░реЗрдВ

рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдо рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдбреЙрдЯ рдФрд░ рдорд╛рдирджрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЬреЛ рдЕрдм рдХрд┐рд╕реА рднреА рдЖрдпрд╛рдо рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдпрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рд╕рдВрдЪрд╛рд▓рди рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрджрд░реНрд╢ рдХреЗ рд▓рд┐рдП рд╣рдо рдорд╛рдирджрдВрдб (x, p) рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред p-norm) рдФрд░ opnorm, рдФрд░ рдЕрдм vecdot рдпрд╛ vecnorm рдирд╣реАрдВ рд╣реИред

рдорд╛рдирджрдВрдб/opnorm рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ "рдЬреВрд▓рд┐рдпрди" рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдПрдХ рдСрдкрд░реЗрдЯрд░ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ 2D рд╕рд░рдгреА рд▓рдкреЗрдЯ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ norm opnorm рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреИрдХреЗрдЬ рдХреЗ рд╕реНрддрд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдИ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВ)

рдореИрдВ $# norm(Operator(matrix)) рдХреЗ рдмрдЬрд╛рдп opnorm(matrix) рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ ...

рдореИрдВ рдпрд╣рд╛рдВ рдореВрдВрдЧрдлрд▓реА рдЧреИрд▓рд░реА рд╕реЗ рдЭрдВрдХрд╛рд░ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИ- vecnorm рдФрд░ vecdot рдиреЗ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдкрд░реЗрд╢рд╛рди рдХрд┐рдпрд╛ рд╣реИред рдСрдкрд░реЗрдЯрд░ рдорд╛рдирджрдВрдб рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреВрдЫрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЬреЛ рд╣рдореЗрд╢рд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ - рдПрдХ рдРрд╕реЗ рдорд╛рдирджрдВрдб рдХреЗ рд▓рд┐рдП рдкреВрдЫрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рддреЗрдЬрд╝ рдФрд░ рдЖрд╕рд╛рди рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлреНрд░реЛрдмреЗрдирд┐рдпрд╕ рдорд╛рдирджрдВрдб)ред opnorm рд▓рд┐рдЦрдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдСрдкрд░реЗрдЯрд░ рдорд╛рдирджрдВрдб рдХреЗ рд▓рд┐рдП рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ dot рдФрд░ inner рдХреЗ рдмреАрдЪ рдПрдХ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реЛрдиреЗ рд╕реЗ рднреНрд░рдо рдФрд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рджреБрд░реБрдкрдпреЛрдЧ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рджреЗрдирд╛ рдХрд┐ рд╡реЗ рдХрд┐рд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _supposed_ рд╣реИрдВ, рдЬрдм рджреЛрдиреЛрдВ рдлрд╝рдВрдХреНрд╢рди рд╡рд╣реА рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдЖрд╕рд╛рди рд╣реИ рддреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реА рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдореЗрдВ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рджреБрд░реНрд▓рдн рд╣реИ рдХрд┐ sum(x*y for (x,y) in zip(u,v)) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрдм рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж тЯиu,vтЯй рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛред рдЬрдм рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣реА рд╣реИ рдЬреЛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдпрд╣ рдХрд╛рдлреА рдЖрд╕рд╛рди, рд╕реНрдкрд╖реНрдЯ рдФрд░ рдХреБрд╢рд▓ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдпрд╣реА рд╣реИ) рдЗрд╕реЗ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдРрд╕рд╛ рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рд╣реИред

uтЛЕv рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ dot рдпрд╛ inner рдЗрд╕ рд╕рдм рдХрд╛ рдХрдо рд╕реЗ рдХрдо рдкрд░рд┐рдгрд╛рдореА рд╣рд┐рд╕реНрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЗрддрд┐рд╣рд╛рд╕рдХрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рд╕реА рднреА рд╡рд┐рдХрд▓реНрдк рдХреЛ рдПрдХ рдЖрдкрджрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛-рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдзрд╛рд░рдгрд╛ рдХрд┐ рдЗрддрд┐рд╣рд╛рд╕рдХрд╛рд░реЛрдВ рдХреА рдмрд┐рд▓реНрдХреБрд▓ рдкрд░рд╡рд╛рд╣ рд╣реЛрдЧреА, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЪрд╛рдкрд▓реВрд╕реА рд╣реИред рдПрдХ рдУрд░, рдпрджрд┐ рд╣рдо uтЛЕv рдХреЗ "рд╕рдЪреНрдЪреЗ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж" рдХрд╛ рдЕрд░реНрде рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реИрдВ рддреЛ рд╣рд╛рдБ, inner рдЕрдзрд┐рдХ рд╕рд╣реА рдЧрдгрд┐рддреАрдп рд╢рдмреНрдж рд╣реИред рджреВрд╕рд░реА рдУрд░, рдЬрдм рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрдо рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рдирд╛рдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣рд╛рдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдПрдХ рдмрд┐рдВрджреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдВрдЧреВрдареЗ рдХрд╛ рд╡рд╣ рдирд┐рдпрдо рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ dot рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрддрдиреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ const dot = inner рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рджреЛрдиреЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рдорд╛рдорд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рддрдм рд▓реЛрдЧ рдЬреЛ рднреА рдирд╛рдо рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдирд╛рдо рдЕрдкрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрд░реНрде рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рд░рд╣реЗрдЧрд╛ред рдмреЗрд╢рдХ рдпрд╣ рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рддреАрди рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдирд╛рдо рдмрдирд╛ рджреЗрдЧрд╛- dot , inner рдФрд░ тЛЕ - рдЬреЛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ тЛЕ рдкреНрд░рддреАрдХ рдХреЛ рд╣рдЯрд╛рдиреЗ рдпрд╛ рдЗрд╕реЗ <u,v> рд╕реЗ рдмрджрд▓рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ?

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ:

  • рдЗрд╕рд╕реЗ рдиреАрдпрдд рд╕рд╛рдл рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрди рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
<u,v> * M * x

рдмрдирд╛рдо

u тЛЕ v * M * x
  • <u,v> рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдорддрд▓рдм рдПрд╕реЛрд╕рд┐рдПрд╢рди рд╣реИ: рдкрд╣рд▓реЗ рд╣рдо u рдФрд░ v рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдмрд╛рдХреА рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред

  • рдпрджрд┐ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ <u,v> рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рдорди рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг sum(x[i]*y[i]) рд╣реЛред рдкреНрд░рддреАрдХ тЛЕ рдЖрдВрдЦреЛрдВ рд╕реЗ рдЫреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдХрдИ рдЕрдиреНрдп рдЕрд░реНрде рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ, рдПрдХ рдХреНрд╖реЗрддреНрд░ F рдХреЗ рдКрдкрд░ рдПрдХ рд╕рджрд┐рд╢ рд╕реНрдерд╛рди V рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрджрд┐рд╢ ╬▒ тИИ F рдХрд╛ рд╕рджрд┐рд╢ v тИИ V рдХреЗ рдЧреБрдгрдирдлрд▓ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХреЛрдВ рдореЗрдВ ╬▒ тЛЕ v рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • тЛЕ рдХреЛ рд╣рдЯрд╛рдиреЗ рдпрд╛ рдмрджрд▓рдиреЗ рд╕реЗ рдХрдИ рдирд╛рдореЛрдВ рдХреЗ рдирд┐рд░реНрдпрд╛рдд рдХреА рд╕рдорд╕реНрдпрд╛ рднреА рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧреАред рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ inner рдФрд░ <,> рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдкреБрдирд░рд╛рд╡рд░реНрддрдиреАрдп рдпреЛрдЧ рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рдеред

  • рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рдлрд╝реАрд▓реНрдб F рдкрд░ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ V рдХреЗ рд▓рд┐рдП рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕реНрдХреЗрд▓рд░-рдмрд╛рдп-рд╡реЗрдХреНрдЯрд░ рдЙрддреНрдкрд╛рдж рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП тЛЕ рдиреЛрдЯреЗрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдлрд┐рд░ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдХреЛ рдЕрдЪреНрдЫреЗ рд╢реЙрд░реНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ <u,v> рдХреЛ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдкреЗрд╕ рддрдХ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ <u,v> ; рд╣рдо рдЬрд┐рд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рд╣реИ тЯиu,vтЯй - рдпреВрдирд┐рдХреЛрдб рдХреЛрд╖реНрдардХреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рд╕рдВрдХреЗрддреЛрдВ рд╕реЗ рдХрдо рдФрд░ рдмрдбрд╝рд╛ рдирд╣реАрдВ, < рдФрд░ > ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ u'v рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ рдЬреЛ рдпрд╛ рддреЛ рдПрдХ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рдпрд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реИ? (рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ ...)

рд╣рд╛рдБ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЗрд╕рдХрд╛ рдпреВрдирд┐рдХреЛрдб рд╕рдВрд╕реНрдХрд░рдгред рдкрдврд╝рдирд╛ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ред рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХрдИ рдирд╛рдореЛрдВ рд╕реЗ рднреА рд╣рд▓ рдХрд░реЗрдЧрд╛, рдФрд░ рдЕрдиреНрдп рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП тЛЕ рдирд┐рдГрд╢реБрд▓реНрдХ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП тЛЕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВтАФрдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ред

рдмрд╕ рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдРрд╕рд╛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдХрд┐рддрдирд╛ рдЕрджреНрднреБрдд рд╣реЛрдЧрд╛:

тЯи╬▒ тЛЕ u, vтЯй + тЯи╬▓ тЛЕ w, zтЯй

рдЕрдореВрд░реНрдд рд╡реИрдХреНрдЯрд░ (рдпрд╛ рдкреНрд░рдХрд╛рд░) рдХреЗ u,v,w,z тИИ V рдФрд░ рдЕрджрд┐рд╢ ╬▒, ╬▓ тИИ F ред

u'v рдХреЗрд╡рд▓ 1d рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж (рдФрд░ рдПрдХ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж, рдпрджрд┐ рдЖрдк рд╕рдВрдпреБрдЧреНрдорд┐рдд рд╕рдореНрдореЗрд▓рди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ) рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред (рдпрд╣ рдПрдХ рдФрд░ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрдиреНрдлрд┐рдХреНрд╕ рдбреЙрдЯ рдХреЛ 1d рд╕рд░рдгрд┐рдпреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рд╡реНрдпрд░реНрде рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрдВрдХрди рд╣реИред)

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

рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ: https://stackoverflow.com/questions/50408177/julia-calculate-an-inner-product-using-boolean-algebra

рдФрд░ тЯи,тЯй рд╕рдВрдХреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреВрд▓рд┐рдпрди рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рдФрдкрдЪрд╛рд░рд┐рдХ рд╡реНрдпреБрддреНрдкрддреНрддрд┐: https://arxiv.org/abs/0902.1290

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдХрд╛рдЧрдЬ рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд▓рд┐рдВрдХ

рдЖрдк рдХреЛрдг рдХреЛрд╖реНрдардХ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдпрд╣рд╛рдВ рдЙрдард╛рдП рдЧрдП рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛?

рддреЛ рдЖрдкрдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╣реИ:

  1. dot рдХреЛ inner рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ
  2. uтЛЕv рдХреЛ тЯиu,vтЯй рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ

рддреЛ рдлрд┐рд░ рдХреЛрдИ dot рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдХреЛрдИ тЛЕ рдСрдкрд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛?

рдХреНрдпрд╛ рд╡рд╣ рдмрджрд▓рд╛рд╡ рдХреБрдЫ рдЙрдЪрд┐рдд рд╣реЛрдЧрд╛?

рдЙрддреНрддрд░ рджреЗрдиреЗ рдореЗрдВ рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рд╕реАрдорд┐рдд рдкрд╣реБрдВрдЪ рд╡рд╛рд▓реЗ рд╕рдореНрдореЗрд▓рди рдореЗрдВ рд╣реВрдВред

рдФрд░ рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯрддрд╛ рдФрд░ рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рдкреНрд░рддрд┐рдкреНрд░рд╕реНрддрд╛рд╡ рдХреНрдпрд╛ рд╣реИ? рдХреБрдЫ рдордд рдХрд░реЛ?

рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдФрд░ рднреА рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рдЕрд░реНрде рдкрд░рд┐рд╡рд░реНрддрди рд╢рд╛рдорд┐рд▓ рд╣реИ: рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджред

рд╕рд╛рд╡рдзрд╛рди: рдЕрдм рд╣рдордиреЗ рдЗрд╕ рдкрд░ рдЙрд╕ рдмрд┐рдВрджреБ рддрдХ рдмрд╣рд╕ рдХреА рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреЛрдЦрд┐рдо рд╣реИ, рдпрд╣ рдЗрд╕реЗ 0.7-рдЕрд▓реНрдлрд╛ рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рдПрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрд▓реНрдлрд╛ рдХреЗ рдмрд╛рдж рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рдмрд╛рдж рдЪреАрдЬреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдирд┐рдЪреНрдЫрд╛ рд╣реЛрдЧреАред

рд╣рд╛рдВ, рдХрд╛рд╢ рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдкреАрдЖрд░ рдЬрдорд╛ рдХрд░рдиреЗ рдХрд╛ рдХреМрд╢рд▓ рд╣реЛрддрд╛ред рдРрд╕рд╛ рдХрд░рдирд╛ рдореЗрд░реА рдХреНрд╖рдорддрд╛ рд╕реЗ рдкрд░реЗ рд╣реИ, рднрд▓реЗ рд╣реА рдореИрдВ рдЗрд╕реЗ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рдирддрд╛ рд╣реВрдВред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдСрдкрд░реЗрдЯрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреНрд░рд╢реНрди рдХреЛ рдЫреВрдЯ рджреЗрддреЗ рд╣реБрдП, рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдЯ (рд╡рд░реНрддрдорд╛рди dot рдФрд░ vecdot рдФрд░ рд╡рд░реНрддрдорд╛рди norm рдФрд░ vecnorm рдХреЗ рд▓рд┐рдП рдирд╛рдо рдЫрд╛рдпрд╛рдВрдХрди рдФрд░ рдмрд╣реБ-рдЪрд░рдг рдмрд╣рд┐рд╖реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рдХреБрдЫ рдЬрдЯрд┐рд▓рддрд╛ рд╣реИ

dot рдкрдХреНрд╖ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдкреВрд░реА рдЬрдЧрд╣ (рдлрд┐рд░ рд╕реЗ рдЫреВрдЯ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдСрдкрд░реЗрдЯрд░реЛрдВ) рд╣реИ:

I. 0.7 рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдорд╛рдирдХ рдбрд┐рд╡рд╛рд░реНрди рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдмрджрд▓рдХрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╡реИрдХреНрдЯрд░ рдкрд░ рдЪреБрдкрдЪрд╛рдк dot рдХреЛ рддреЛрдбрд╝ рджреЗрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдЪреЗрддрд╛рд╡рдиреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ)ред vecdot рд╕реЗ dot рдХреЛ 0.7 рдореЗрдВ рднреА рд╣рдЯрд╛ рджреЗрдВред
рджреНрд╡рд┐рддреАрдп. 0.7 рдореЗрдВ, рд╕рднреА рдЗрдирдкреБрдЯ рдкрд░ vecdot рдХреЛ рд╣рдЯрд╛ рджреЗрдВ inner ред
III. 0.7 рдореЗрдВ, рдЗрд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╡реИрдХреНрдЯрд░ рдкрд░ dot , рдФрд░ рдЕрдиреНрдп рдЗрдирдкреБрдЯ рдкрд░ dot рдФрд░ рд╕рднреА рдЗрдирдкреБрдЯ рдкрд░ inner $ рдкрд░ vecdot рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
рдЪрддреБрд░реНрдеред 0.7 рдореЗрдВ, рджреЛрдиреЛрдВ dot рдФрд░ vecdot рдХреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╡реИрдХреНрдЯрд░ рдкрд░ рдпрд╛ рддреЛ рдирд┐рд░реНрдпрд╛рдд рди рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдпрд╛ рдЙрдирдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдФрд░ vecdot рдХреЛ рдЕрдиреНрдп рд╕рднреА рдЗрдирдкреБрдЯ рдкрд░ dot рдкрд░ рд╣рдЯрд╛ рджреЗрдВред 1.0 рдореЗрдВ, рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╡реИрдХреНрдЯрд░ рдкрд░ dot рдЬреЛрдбрд╝реЗрдВред

рдЖрджрд░реНрд╢ рдкрдХреНрд╖ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрде рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдЖрдо рд╕рд╣рдорддрд┐ рд╣реИ (0.7 рдореЗрдВ, norm рдХреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ opnorm рдкрд░ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ vecnorm рд╕реЗ innernorm рдХреЛ рд╣рдЯрд╛ рджреЗрдВ; 1.0 рдореЗрдВ , рдореМрдЬреВрджрд╛ vecnorm рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ norm рдЬреЛрдбрд╝реЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 1.0 рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд╛рдо рднреА рдорд┐рд▓рддрд╛ рд╣реИ (рдпрд╛ рддреЛ vecnorm рдпрд╛ innernorm ); рдлрд┐рд░ рд╕реЗ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ vecnorm рдХреЛ 0.7 рдореЗрдВ рдЗрд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдП рдпрд╛ рдХрд┐рд╕реА рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдирд╛рдо рдХреЗ рдмрдЬрд╛рдп Base.vecnorm рдЬреИрд╕реЗ рдЕрдирдПрдХреНрд╕рдкреЛрд░реНрдЯреЗрдб рдлрдВрдХреНрд╢рди рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПред

...рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЪреАрдЬреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдореБрдлреАрдж рдирд╣реАрдВ рдмрдирд╛рдпрд╛ред

рдХреНрдпрд╛ рдХреЛрдбрдмреЗрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдЬрдорд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдХреНрдпрд╛ рд╣рдо рдЙрд╕ рдЖрджрд░реНрд╢ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рд╣рд░ рдХреЛрдИ рд╕рд╣рдордд рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? dot рдмрдирд╛рдо inner рдмрд┐рдЯ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЗрдП рдЙрд╕ рдмрд╛рдзрд╛ рдХреЛ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рди рдЖрдиреЗ рджреЗрдВ рдЬреЛ рдирд╣реАрдВ рд╣реИред

@StefanKarpinski , рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡реЗ рдХреБрдЫ рд╣рдж рддрдХ рдпреБрдЧреНрдорд┐рдд рд╣реИрдВ: рдЙрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдбреЙрдЯ (рдЖрдВрддрд░рд┐рдХ) рдЙрддреНрдкрд╛рдж рдФрд░ рдПрдХ рдорд╛рдирджрдВрдб рджреЛрдиреЛрдВ рд╣реИрдВ, рд╡реЗ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рддрд░рдл рдЬрд╛рддрд╛ рд╣реИред рдЬреЛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рд╡рд╣реА рддрдп рдХрд░реЗрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ vecdot рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ ( #25093 ) рдерд╛ (рдФрд░ рдЗрд╕реА рдорд╛рдирджрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ vecnorm ), рдЙрдиреНрд╣реЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдмрдирд╛рдХрд░ред рдпрд╣ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп dot рдФрд░ norm рдХреИрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореЗрд░реЗ рдЧрд┐рдЯ рдХреМрд╢рд▓ рдХреА рдХрдореА рдиреЗ рдореБрдЭреЗ рдЙрд╕ рдкреАрдЖрд░ рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдирдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рдерд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рджреВрд╕рд░реА рдмрд╛рд░ рдкрд┐рддрд╛ рдмрдирдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореЗрд░реЗ рдХреИрд▓реЗрдВрдбрд░ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдИ "рдЦрд╛рд▓реА рд╕рдордп" рд╕реНрд▓реЙрдЯ рдирд╣реАрдВ рд╣реИред

рдЕрднреА рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рджреВрд╕рд░реА рдмрд╛рд░ рдкрд┐рддрд╛ рдмрдиреЗ рд╣реИрдВ

рдмрдзрд╛рдИ рд╣реЛ рдЬреВрдереЛ! рдореИрдВ

рд╣рд╛рдБ, рдмрдзрд╛рдИ!

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ dot рдФрд░ inner рджреЛрдиреЛрдВ рд╣реЛрдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдЖрдо рд╕рд╣рдорддрд┐ рдмрди рд╕рдХрддреА рд╣реИ, рдЬрд╣рд╛рдВ:

  1. inner рдПрдХ рд╕рдЪреНрдЪрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реИ
  2. dot = dot(x,y) = sum(x[i]'*y[i] for i = 1:length(x)) рд╕рдВрдпреБрдЧреНрдорд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП Vector{<:Number} рдпрд╛ Vector{<:Real} $ рдХреЗ рд▓рд┐рдП $ dot рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рд╣реЛрдЧрд╛

рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ:

рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдбреЙрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрдм рдЙрдирдХрд╛ рдорддрд▓рдм рдЖрдВрддрд░рд┐рдХ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЙрдирдХрд╛ рдХреЛрдб рдХреБрдЫ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдкрд╛рд╕ рдХреА рдЬрд╛рддреА рд╣реИред

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдИ рдореБрджреНрджрд╛ рд╣реЛрдЧрд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рдХрд╛рдлреА рдЕрд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рд╣реИ, рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдЧ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░/рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рджреЗрдЦреЗрдВред

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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ dot рдФрд░ inner рджреЛрдиреЛрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдЖрдо рд╕рд╣рдорддрд┐ рдмрди рд╕рдХрддреА рд╣реИред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, https://github.com/JuliaLang/julia/issues/25565#issuecomment -390069503 рдкрд░ рдЪрд░реНрдЪрд╛ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдирд╣реАрдВ, рдЬреИрд╕реЗ рдХрд┐ https://github рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рд╣реИред com/JuliaLang/julia/issues/25565#issuecomment -390388230 рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рддред

рд╢рд╛рдпрдж inner (рдФрд░ рд╕рд╛рде рд╣реА dot ) рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЖрдВрддрд░рд┐рдХ/рдбреЙрдЯ/рд╕реНрдХреЗрд▓рд░ рдЙрддреНрдкрд╛рдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдкреБрд░рд╛рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ dotc(x,y) = sum(x[i]' * y[i] for i in eachindex(x)) рдФрд░ dotu(x,y) = sum(transpose(x[i]) * y[i] for i in eachindex(x)) рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред ? dotu рдФрд░ dotc рдирд╛рдо рд╕рдВрдмрдВрдзрд┐рдд BLAS рдирд╛рдореЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдВрдЧреЗред

(рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ тЯиu,vтЯй, тЯиu|vтЯй, рдпрд╛ (u,v) рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдиреЛрдЯреЗрд╢рди рд╣реИрдВ-рд╡реЗ рд╡рд╣реА рд╣реИрдВ рдЬреЛ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рд╕реНрд╡рдпрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ-рд▓реЗрдХрд┐рди рд╡реЗ рдиреЛрдЯреЗрд╢рди рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЙрдирд╕реНрдЯрд╛рд░реНрдЯрд░ рд╣реИрдВ . рдпреВрдирд┐рдХреЛрдб рдмреНрд░реИрдХреЗрдЯ рдХреЛ рдлрд╝рдВрдХреНрд╢рди/рдореИрдХреНрд░реЛ рдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдХреБрдЫ рдЪрд░реНрдЪрд╛ рд╣реБрдИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП #8934 рдФрд░ #8892, рд▓реЗрдХрд┐рди рдпрд╣ рдХрднреА рднреА рдХрд╣реАрдВ рдирд╣реАрдВ рдЧрдпрд╛ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд▓реНрдж рд╣реА рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред)

@stevengj , рдЬрдм рдЖрдкрдиреЗ рдЗрд╕ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЬреЛрдбрд╝рд╛, рддреЛ рдЖрдкрдХрд╛ рдорддрд▓рдм рдерд╛ рдХрд┐ рд╕рд┐рдВрдЯреИрдХреНрд╕ тЯиu,vтЯй рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ?

рдХрд┐рд╕реА рднреА рдореМрдХреЗ рдкрд░ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЗрд╕реЗ рдЬреВрд▓рд┐рдпрд╛ v1.0 рдореЗрдВ рд▓рд╛рдПрдЧреА? рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдЪрд╛рд░ рдФрд░ рдкреИрдХреЗрдЬ рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рдзрд╛рд░рдгрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдореБрдЭреЗ рдЕрдкрдиреА рдЙрдореНрдореАрджреЛрдВ рдХреЛ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдирд┐рд░рдВрддрд░ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдЖрдкрдиреЗ #27401 рдирд╣реАрдВ рджреЗрдЦрд╛?

рдзрдиреНрдпрд╡рд╛рдж @jebej рдФрд░ рдиреЗрддреГрддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @ranocha рдзрдиреНрдпрд╡рд╛рдж: рджрд┐рд▓:

рдЬрдм рдЖрдкрдиреЗ рдЗрд╕ рдЕрдиреБрдЪреНрдЫреЗрдж рдХреЛ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рд╕реНрд╡рдпрдВ рдЬреЛрдбрд╝рд╛ рдерд╛, рддреЛ рдЖрдкрдХрд╛ рдорддрд▓рдм рдерд╛ рдХрд┐ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ тЯиu,vтЯй рдХреЛ рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ?

рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рднрд╛рд╖рд╛ рдореЗрдВ рдХрд╕реНрдЯрдо рдмреНрд░реИрдХреЗрдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ (рдФрд░ рдХреНрдпрд╛) рдкрд░ рдЖрдо рд╕рд╣рдорддрд┐ рдХреЗ рд╕рд╛рде рдЖрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╕рд╛рдмрд┐рдд рд╣реБрдЖ рд╣реИред #8934 рдкрд░ рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВ, рдЬреЛ 4 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХрд╣реАрдВ рдирд╣реАрдВ рдЧрдИ рдереА рдФрд░ рддрдм рд╕реЗ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИред (рдЗрд╕ рддрдереНрдп рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд▓реЛрдЧ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдмреНрд░реИрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП uтЯй рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рднреМрддрд┐рдХреА рдореЗрдВ рдФрд╕рдд рдФрд╕рдд рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред) # 8892 рдореЗрдВ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рдФрд░ рдореБрджреНрджрд╛, рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпреВрдирд┐рдХреЛрдб рдХреА рджреГрд╢реНрдп рд╕рдорд╛рдирддрд╛ рд╣реИ рдХреЛрд╖реНрдардХред

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

рдпрджрд┐ тЯиargs...тЯй anglebrackets рдСрдкрд░реЗрдЯрд░ рдпрд╛ рдХреБрдЫ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдз рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ (рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЙрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ), рддреЛ рд▓реЛрдЧ рдХрд░ рд╕рдХрддреЗ рдереЗ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рд╡реЗ рдЬреЛ рднреА рдЕрд░реНрде рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред

@StefanKarpinski , #8934 рдореЗрдВ рддрд░реНрдХ рдпрд╣ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рдореИрдХреНрд░реЛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдХрднреА рдЖрдо рд╕рд╣рдорддрд┐ рдкрд░ рдЖрдП рд╣реИрдВред

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

рдореБрдЭреЗ рдЙрд╕ рдЪрд░реНрдЪрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдХреНрд░реЛ рдмрдирд╛рдирд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

#27401 рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рдХреЛрдИ рдореБрджреНрджрд╛ рддрднреА рдмрдВрдж рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕рдВрдмрдВрдзрд┐рдд рдкреАрдЖрд░ рдХрд╛ рд╡рд┐рд▓рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ...

рдЬрд╝рд░реВрд░, рд╣рдо рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдмрд╕ рдЗрд╕реЗ рдЯреНрд░рд╛рдЗрдПрдЬ рд▓реЗрдмрд▓ рд╕реЗ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдХреНрдпрд╛ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ #27401 рдХрд╛ рдЕрдм рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ?

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

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

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

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

m-j-w picture m-j-w  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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