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

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

@alanedelman рд╕реЗ :

рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдзреНрдпрд╛рди рд╕реЗ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреИрд╕реЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рд╕рдВрдХреНрд░рдордг рд╡рд┐рднрд┐рдиреНрди A_*op*_B* рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдПред рдирдП рдкреНрд░рдХрд╛рд░ рдФрд░ рдмрджрд╕реВрд░рдд рдЧрдгрд┐рдд рд╕реЗ рдмрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗрдХреНрдЯрд░ рд╣реИрдХреНрдЯрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреА рдкреИрджрд╛рд╡рд╛рд░ (# 2472, # 2936), рд╡реЗрдХреНрдЯрд░ 'рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЙрдкрдЬ, рдФрд░ рд╡реЗрдХреНрдЯрд░' рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ (# 2686) рдЙрдкрдЬ рд╕рднреА рдЦрд░рд╛рдм рдЧрдгрд┐рдд рд╣реИрдВред

рдореЗрд░реЗ рд▓рд┐рдП рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрддрд╛ рд╣реИ) рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ 1-рдЖрдпрд╛рдореА Vector v :

  • v' рдПрдХ no-op рд╣реИ (рдпрд╛рдиреА рд╕рд┐рд░реНрдл v рд░рд┐рдЯрд░реНрди)
  • v'v рдпрд╛ v'*v рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ,
  • v*v' рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рдФрд░
  • v'A рдпрд╛ v'*A (рдЬрд╣рд╛рдВ A AbstractMatrix ) рдПрдХ рд╕рджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ

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

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

рдПрдХ рдирдпрд╛ Transpose{Vector} рдкреНрд░рдХрд╛рд░ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдг contravariant рдФрд░ covariant рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдореБрдЭреЗ рдпрд╣ рд╕рдореНрдореЛрд╣рдХ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд▓рдЧрддрд╛ред

arrays breaking design linear algebra

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

рдмреИрдо

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗрдХреНрдЯрд░ рд╣реИрдХреНрдЯрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреА рдкреИрджрд╛рд╡рд╛рд░ (# 2472, # 2936), рд╡реЗрдХреНрдЯрд░ 'рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЙрдкрдЬ, рдФрд░ рд╡реЗрдХреНрдЯрд░' рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ (# 2686) рдЙрдкрдЬ рд╕рднреА рдЦрд░рд╛рдм рдЧрдгрд┐рдд рд╣реИрдВред

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

v' == v рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди v'*v != v*v ? рдХреНрдпрд╛ рд╣рдо x' * y рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдСрдкрд░реЗрдЯрд░ рд╣реЛрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ?

рдПрдХ рдкрд░рд┐рдорд┐рдд рдЖрдпрд╛рдореА рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдХрд╛ рджреЛрд╣рд░рд╛-рджреЛрд╣рд░рд╛рдкрди рд╕рдорд░реВрдк рд╣реИ, рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред

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

рдХреНрдпрд╛ рд╣рдо x' * y рд▓рд┐рдП рдЬрд┐рддрдирд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ?

рдпрд╣реА рд╡рд╣ рдЖрднрд╛рд╕ рдерд╛ рдЬреЛ рдореБрдЭреЗ рдЖрдЬ рджреЛрдкрд╣рд░ @alanedelman рдХреЗ рд╕рд╛рде рд╣реБрдИ рдЪрд░реНрдЪрд╛ рд╕реЗ рдорд┐рд▓рд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЗрдл рдЬреЛ рдкреВрдЫ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдкреИрд╕реЗ рдкрд░ рд╕рд╣реА рд╣реИ ... рдпрд╣ x'_y рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдФрд░ x_y 'рдЕрдзрд┐рдХ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ
рдкрд╣рд▓реЗ рд╕реЗ рдХрд╣реАрдВ рдЬреНрдпрд╛рджрд╛ред

рдореИрдВ @stefan рдХреЗ рд╕рд╛рде рд╣рд┐рдВрд╕рдХ рд╕рдордЭреМрддреЗ рдореЗрдВ рд╣реВрдВред рдЦрд░рд╛рдм рдЧрдгрд┐рдд рдХрд╛ рдорддрд▓рдм рдЧрд▓рдд рдЧрдгрд┐рдд рдирд╣реАрдВ рдерд╛, рдпрд╣ рдерд╛
рдорддрд▓рдм рдХрд╖реНрдЯрдкреНрд░рдж рдЧрдгрд┐рддред рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рдРрд╕реА рд╣реИрдВ рдЬреЛ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рд╕рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдирд╣реАрдВ ...ред

рдпрджрд┐ рд╣рдо рдЗрд╕ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ

x_x рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ ..... рд╢рд╛рдпрдж рдПрдХ рд╕реБрдЭрд╛рд╡ рдХреЗ рд╕рд╛рде "рд╢рд╛рдпрдж рдЖрдк рдбреЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ"
рдпрд╛ x_x рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рд╣реИ (рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ)

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

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

рдпрд╣рд╛рдВ "рдЕрдк рдЯреБрдкрд▓реНрд╕" рдФрд░ "рдбрд╛рдЙрди рдЯреНрдпреВрдкрд▓реНрд╕" рдореЗрдВ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЪрд░реНрдЪрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ:

http://mitpress.mit.edu/sites/default/files/tmarks/content/sicm/book-ZH-79-#.html% _idx_3310

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

http://mitpress.mit.edu/sites/default/files/tmarks/content/sicm/book-ZH-79-#.html% _sec_Temp_453

M[1,:] рдФрд░ M[:,1] рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░рд╛ рдкреНрд░рд╕рд╛рд░рдг рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрд╕ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: M./sum(M,1) рдХреЙрд▓рдо-рд╕реНрдЯреЛрдЪреИрд╕реНрдЯрд┐рдХ рд╣реИ рдФрд░ M./sum(M,2) рдкрдВрдХреНрддрд┐-рд╕реНрдЯреЛрдЪреИрд╕реНрдЯрд┐рдХ рд╣реИ ред рдпрджрд┐ рд╣рдо рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрд╡реЗрджрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП norm рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рд╣рдо рдЕрднреА рднреА рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рд╡реИрдХреНрдЯрд░ рдХреЗ рдмрдЬрд╛рдп sum(M,1) рдФрд░ sum(M,2) рд╡рд╛рдкрд╕реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рдмрдВрдж рд▓рдЧрддрд╛ рд╣реИред

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

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, x*y = dot(x,y) * рдЧреИрд░-рд╕рд╣рдпреЛрдЧреА рд╣реЛрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ x*(y*z) рдмрдирд╛рдо (x*y)*z ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдЗрд╕рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред

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

рд╣рдо рд╕рднреА рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ x*x рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреНрд░рд╢реНрди рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ v'w рдФрд░ v'*w рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@JeffBezanson рдФрд░ рдореИрдВ рдЪреИрдЯ рдХрд░ рд░рд╣реЗ рдереЗ

рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:

v' рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ (рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЧрдгрд┐рддрдЬреНрдЮ рдХрд░рддрд╛ рд╣реИ)
v'w рдФрд░ v'*w рдПрдХ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж (рдкрд░рд┐рдгрд╛рдо = рд╕реНрдХреЗрд▓рд░) рд╣реИ
v*w рдПрдХ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ (рдкрд░рд┐рдгрд╛рдо = рдореИрдЯреНрд░рд┐рдХреНрд╕)

рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрдн рд╡реИрдХреНрдЯрд░ рдореЗрдВ рдХреЛрдИ рднреЗрдж рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд╡реИрд╕реЗ рднреА рдпрд╣ рдкрд╕рдВрдж рдерд╛
рдФрд░ рдЧрдгрд┐рддрдЬреНрдЮ рдХреА рдорд┐рд╕рд╛рд▓ рджреЗрдЦрдХрд░ рдЦреБрд╢ рдерд╛
рдЧрдгрд┐рдд рд╕реЗ: http://reference.wolfram.com/mathematica/tutorial/VectorsAndMatrices.html
рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ Mathematica рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдХрднреА рднреА "рдкрдВрдХреНрддрд┐" рдФрд░ "рдХреЙрд▓рдо" рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреЛрдИ рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИрдВ .... рдЕрд╡рдзрд┐ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрджрд┐ M рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ

M[1,:]*v рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ ..... (рд╣рдо M[1,:] рд╕рд╛рде рдЪрд▓рддреЗ рд╣реИрдВ рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ
рдЪреЗрддрд╛рд╡рдиреА dot рдпрд╛ '* рдпрд╛ M[i:i,:] рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддреА рд╣реИ

M[[1],:]*v рдпрд╛ M[1:1,:]*v рд▓рдВрдмрд╛рдИ 1 рдХрд╛ рд╡реЗрдХреНрдЯрд░ рд╣реИ (рдпрд╣ рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ)

Https://groups.google.com/forum/# .topic/julia -users / L3vPeZ7kews рдореЗрдВ рдмрд╛рд░реАрдХреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

Mathematica рд╕реНрдХреЗрд▓рд░ рдЬреИрд╕реА рд╕рд░рдгреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕рдВрдХреБрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ:

m = Array[a, {2, 2, 2}] 


Out[49]= {{{a[1, 1, 1], a[1, 1, 2]}, {a[1, 2, 1], 
   a[1, 2, 2]}}, {{a[2, 1, 1], a[2, 1, 2]}, {a[2, 2, 1], a[2, 2, 2]}}}

In[123]:= Dimensions[m]
Dimensions[m[[All, 1, All]]]
Dimensions[m[[2, 1, All]]]
Dimensions[m[[2, 1 ;; 1, All]]]

Out[123]= {2, 2, 2}

Out[124]= {2, 2}

Out[125]= {2}

Out[126]= {1, 2}

[рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдХреЛрдб рд╕реНрд╡рд░реВрдкрдг - @StefanKarpinski]

@alanedelman

рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╣рдо M [1 ,:] рдХреЗ рд╕рд╛рде рдЪрд▓рддреЗ рд╣реИрдВ, рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм M [1 ,:] рд╕рд┐рд░реНрдл рдПрдХ рд╕рджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ?

рд╣рд╛рдБ рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдореЗрд░реЗ рдорди рдХрд╛ рдорддрд▓рдм рдерд╛ M [1,:] рд╕реНрдХреЗрд▓рд░ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ 1 :-)

Mathematica рддрд╛рд░рд╛рдВрдХрди * рдмрдЬрд╛рдп . рдХреА рдЕрд╡рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рдФрд░ рдлрд┐рд░ рдкреВрд░реЗ 9 рдЧрдЬ рдХреА рджреВрд░реА рдкрд░ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ (рд╡реЗрдХреНрдЯрд░ рд╡реЗрдХреНрдЯрд░) рдмрдирд╛рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рдЬреЛ рдмрдЪ рд░рд╣реЗ рд╣реИрдВ
рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд╕рд╛рдеред

рдЗрд╕ рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рдирд╣реАрдВ рд╣реИ
рдПрдХ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рдореЗрдВ "рдбреЙрдЯ" рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЕрдиреНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рд╣реЛрддрд╛ рд╣реИ
рдбреЙрдЯ рдХреЗ "рдкреЙрдЗрдВрдЯрд╡рд╛рдЗрдЬрд╝ рдСрдк" рдХреЛ рдкрдврд╝рдирд╛,

рдпреВрдирд┐рдХреЛрдб рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХ рдЪрд░рд┐рддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо "рдбреЙрдЯ рдСрдкрд░реЗрдЯрд░" рд╣реИ
тЛЕ (char(8901)) рдЬреЛ рд╣рдо рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдЗрд╕рд▓рд┐рдП рд╣рдо (v тЛЕ w) (v'*w) рдкрд░реНрдпрд╛рдп рдмрди рд╕рдХрддреЗ рд╣реИрдВ

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

  1. рд╕реНрдХреЗрд▓рд░ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЖрдпрд╛рдо рдХреЛ рдорд╛рд░рддрд╛ рд╣реИ
    A[i,:] рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ A[:,i,j]
  2. рд╡реЗрдХреНрдЯрд░ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдореЛрдЯреА рд╣реИ
    A[ i:i , : ] рдпрд╛ A[ [i], : ] рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
  3. v'w рдпрд╛ v'*w рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рд╣реИ (рдЗрд╕реА рддрд░рд╣ v*w' рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП)
  4. v' рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ permutedims(v,1) ?????
  5. v*A рдПрдХ рд╕рджрд┐рд╢ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ A рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ
  6. vтЛЕw рднреА рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдореИрддреНрд░реЗрдпрддрд╛ рдХреЗ . рдХреЛ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдХреЗ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ
  7. v*w рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдЪреНрдЫреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рд╕рд╣рд┐рдд рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддреА рд╣реИ
    тЛЕ

рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ рдХрд┐

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

рд╕реБрдЭрд╛рд╡ 5) рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ v'*A рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдХрд┐ рдЖрдк рджреЛрд╣рд░реЗ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЬрд╣рд╛рдВ рджреЛрд╣рд░реА рд╕рд┐рд░реНрдл "рдЖрдХрд╛рд░" рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИред

рдореИрдВ @StefanKarpinski рдХреЛ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ v рдФрд░ рдЙрди рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ A рдХреЗ рдХреЙрд▓рдо рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреНрдпрд╛ рд╣реИ? рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдХреЛрдИ A ./ v' рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рд╣реЗрд░рдлреЗрд░ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдЕрдЪреНрдЫрд╛ рд╣реИред

рдЕрдЪреНрдЫрд╛ рд╕рд╡рд╛рд▓ рд╣реИ

рдореЗрд░реА рдпреЛрдЬрдирд╛ v'*A рдХреЛ v рдФрд░ mulitiplying рдХреЗ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдо рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ
рдФрд░ рд╕рднреА рд╡рд┐рднрд┐рдиреНрди рдЕрдиреНрдп рдорд╛рдорд▓реЗ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрд╕рд╛рдиреА рд╕реЗ

рд╣рдо 5 рдХреЛ рдЦрддреНрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╢рд╛рдпрдж рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ
рдпрд╣ рдореЗрд░реЗ рдХреЙрд▓рдо рд╡реЗрдХреНрдЯрд░ рдирд┐рдпрдо рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИ

рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрдпрд╛рд░рд╛ рдФрд░ рдордЬрд╝реЗрджрд╛рд░ рд╣реИ
рдПрдХ рд╕рдорд╛рдзрд╛рди рдЕрдм A ./ v[:,[1]]

рдпрд╣ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд▓рд╛рдн рд╣реИ рдХрд┐ рдХрд┐рд╕ рдЖрдпрд╛рдо рдкрд░ рдкреНрд░рд╕рд╛рд░рдг рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
рдФрд░ рдЙрдЪреНрдЪ рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ

рдУрд╣ рдФрд░ v[:,[1]] рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рдирд╣реАрдВ рд▓реЗрдиреЗ рдХрд╛ рдЧреБрдг рд╣реИ
рдЬреЛ рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ .....

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

тЛЕ # 552 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдкрд┐рдЫрд▓реЗ рджреЛ рд╣рдлреНрддреЛрдВ рдореЗрдВ рддреАрд╕рд░реА рдмрд╛рд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

M [1 ,:] рдФрд░ M [:, 1] рдореЗрдВ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░рд╛ рдкреНрд░рд╕рд╛рд░рдг рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрд╕ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: M./sum(M,1) рдХреЙрд▓рдо-рд╕реНрдЯреЛрдЪреИрд╕реНрдЯрд┐рдХ рдФрд░ M./sum(M рд╣реИред 2) рдкрдВрдХреНрддрд┐-рд╕реНрдЯреЛрдЪреИрд╕реНрдЯрд┐рдХ рд╣реИред рдпрджрд┐ рд╣рдо рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрд╡реЗрджрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рд╣рдо рдЕрднреА рднреА рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рд╡реИрдХреНрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рд╕рдо (рдПрдо, 1) рдФрд░ рд╕рдо (рдПрдо, 2) рд░рд┐рдЯрд░реНрди рдореИрдЯреНрд░рд┐рд╕реН рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рдмрдВрдж рд▓рдЧрддрд╛ рд╣реИред

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

julia> widen(A::AbstractArray,dim::Int) = reshape(A,insert!([size(A)...],dim,1)...)
# methods for generic function widen
widen(A::AbstractArray{T,N},dim::Int64) at none:1

рдЬреЛ M ./ widen(sum(M,2),2) рдпрд╛ A ./ widen(v,1) рдЬреИрд╕реЗ рдХреЛрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ (рдКрдкрд░ рджреЗрдЦреЗрдВ @blakejohnson рдЙрджрд╛рд╣рд░рдг)

M [:, 0 ,:] рдФрд░ v [:, 0] ?????

рдореИрдВ рдХрдореА рдХреЗ рдореБрджреНрджреЗ рдкрд░ @blakejohnson рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╣реВрдВ; рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реИ squeeze рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрдпрд╛рдо widen рдЙрдиреНрд╣реЗрдВред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдбреЙрдХреНрд╕ рдХреЛ рд╣рдореЗрд╢рд╛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ widen рд╕рдВрдХреЗрдд рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рдпрд╛ рдЙрд╕рдХреЗ рдмрд╛рдж рдЖрдпрд╛рдо рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рд╕рд╛рде рдХрдИ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЪреМрдбрд╝рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдирдВрдмрд░рд┐рдВрдЧ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред (рд╡реЗрдХреНрдЯрд░ v widen(v, (1, 2)) рд▓рд┐рдП squeeze рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдБ рдирд╣реАрдВ рд╣реИрдВред

рднрд▓реЗ рд╣реА рд╣рдо рдкреНрд░рддрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдЪреМрдбрд╝рд╛ рдпрд╛ рдирд┐рдЪреЛрдбрд╝ рд▓реЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рд╕реАрдк рд╕реЗ рд▓реАрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рд╡рд╣ рдЪреМрдбрд╝реА рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ v[:, newaxis] рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЖрдпрд╛рдо рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рдПрдХ рдмрдЧ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рдЧрд▓рддреА рд╕реЗ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЪреМрдбрд╝рд╛ рдХрд┐рдпрд╛ рдЬрдм рдЖрдкрдиреЗ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдЪреЛрдбрд╝рд╛ (рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрдЧрд╛)ред

@Alanedelman рдХреА рд╕реВрдЪреА рдореЗрдВ
рдореИрдВ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдБ рдХрд┐

v * A рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ рдЬреЛ A рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ

рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

v_A рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдпрджрд┐ A 1x1 рдирд╣реАрдВ рд╣реИ (рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреА рд╢реНрд░реЗрдгреА рдХрд╛ рдмреЗрдореЗрд▓)
v'_A рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╡реЗрдХреНрдЯрд░ рд╡реА рдХреЛ nx1 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИ (рдЬрдм рдЬрд░реВрд░рдд рд╣реЛ)
рдФрд░ рд╣рдореЗрд╢рд╛ v 'рдХреЛ 1xn рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВ (рдЗрд╕реЗ рдХрднреА рд╡реЗрдХреНрдЯрд░ рдпрд╛ nx1 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рди рдХрд░реЗрдВ)
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ 1x1 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд╕реНрдХреЗрд▓рд░ рд╕рдВрдЦреНрдпрд╛ (рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛ) рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╕рдВрдЧрдд рдФрд░ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХрд╛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред (рдЕрдЪреНрдЫрд╛ рдЧрдгрд┐рдд)

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

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдХрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреА (1,1) рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ (рдЬрдм рдЬрд░реВрд░рдд рд╣реЛ) (# 4797 рджреЗрдЦреЗрдВ)

рдЬрд┐рдУ-рдЧреИрдВрдЧ (рдПрдХ рднреМрддрд┐рдХ рд╡рд┐рдЬреНрдЮрд╛рдиреА)

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ v'_A рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ .... рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП v'_A * w рдЪрд╛рд╣рддрд╛ рд╣реВрдВ

рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреА рдореЗрд░реА рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмреАрдЬрдЧрдгрд┐рдд рдХреА рддрд░рд╣ рдмрд╣реБрдд рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реНрдХреЗрд▓рд░ рдФрд░ рд╕рдЪреНрдЪреЗ рд╡реИрдХреНрдЯрд░ рдореМрдЬреВрдж рд╣реИрдВ (рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЪреНрдЫрд╛ рд╣реИ!)

рдЖрдЗрдП рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ x*y*z*w рдЬреИрд╕реЗ рдЙрддреНрдкрд╛рдж рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░рдХ рдПрдХ рд╕реНрдХреЗрд▓рд░, рд╡реЗрдХреНрдЯрд░ рдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╕рдВрднрд╡рддрдГ рдЙрд╕ рдкрд░ рдПрдХ рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рдеред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмреАрдЬрдЧрдгрд┐рдд рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЙрддреНрдкрд╛рдж рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЖрдХрд╛рд░ n x m ред рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ n рдпрд╛ m absent рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬреЛ рдХрд┐ рдЙрддреНрдкрд╛рдж рдХреА рдЧрдгрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рджреВрд░ рдХреЗ рдореВрд▓реНрдп рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛ , рд▓реЗрдХрд┐рди рдореИрдЯрд░рд┐рд╕ рд╕реЗ рд╕реНрдХреЗрд▓рд░ рдФрд░ рд╡реИрдХреНрдЯрд░ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  • рдПрдХ рд╕реНрдХреЗрд▓рд░ absent x absent
  • a (рд╕реНрддрдВрдн) рд╡реЗрдХреНрдЯрд░ n x absent
  • рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ absent x n

рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╣рдо рдЪреАрдЬреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдореЗрдВ рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ, рд▓реЗрдХрд┐рди рдпрд╣ x'*y рдФрд░ x*y' рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдж рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВред

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

a*u'*v = a*(u'*v) // a*u' is forbidden
v*u'*a = (v*u')*a // u'*a is forbidden

рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд░рд╣реЗрдЬ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдЙрддреНрдкрд╛рдж x*y'*z рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЧреБрдгрди рдХреНрд░рдо рдЪреБрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╛рд░рдХреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛! рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдпрд╣ рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рдзрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдпрд╣ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддрд░реАрдХреЗ рд╕реЗред

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

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

рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реЗрд╢рди, рдореЛрдбреНрд╕ рдХреЛ рдкрд░рдорд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХрд╛ рд╣реИред рдпрджрд┐ рдЖрдк v.' рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ v рдПрдХ рд╕рджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ, рддреЛ permutedims(v,[2 1]) рдХреЛ рдЙрд╕реА рдЪреАрдЬрд╝ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛ рддреЛ рджреЛрдиреЛрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рдкреНрд░рдХрд╛рд░ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдпрд╛ рд╡реЗ рдПрдХ рдирдпрд╛ рдЖрдпрд╛рдо рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВред

рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рд╣реЛрдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЛрдб-рдПрди рд╡реИрдХреНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ, рдЬреИрд╕реЗ, permutedims([1:4],[3 2 1]) ? рдореИрдВ рдЖрдкрд╕реЗ рдЖрдЧреНрд░рд╣ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдорд▓реНрдЯреАрд▓рд╛рдЗрдирд░ рдмреАрдЬрдЧрдгрд┐рдд рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВред

@toivoh рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐

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

  1. рдПрдХ рд╕реНрдХреЗрд▓рд░ рдЕрдиреБрдкрд╕реНрдерд┐рдд рдПрдХреНрд╕ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрдЧрд╛
  2. a (рдХреЙрд▓рдо) рд╡реЗрдХреНрдЯрд░ nx рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрдЧрд╛
  3. рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ xn "

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

рдпрджрд┐ рд╣рдо рдЕрдиреБрдкрд╕реНрдерд┐рдд рдХреА рдЗрд╕ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ 1. рдФрд░ 2. рдареАрдХ рд╣реИ рдФрд░ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 3. рдареАрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо рдЖрдХрд╛рд░ (1, n) рдФрд░ (1,1, n) рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдорд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореИрдВ рдЯреЗрдВрд╕рд░ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рднреА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ (_without_ рдХрд┐рд╕реА рднреА рдРрдб-рдСрди рдкреИрдХреЗрдЬ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред

[TL; DR: рд╕рд╛рд░рд╛рдВрд╢ рдореЗрдВ рдЫреЛрдбрд╝реЗрдВ]

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

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

(2) рдореВрд▓реНрдпрд╛рдВрдХрди рдирд┐рдпрдВрддреНрд░рдг: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рдЙрддреНрдкрд╛рдж рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдХрд┐рд╕реА рдХреЛ рдЙрд╕ рдЙрддреНрдкрд╛рдж рдХреА рдХрд┐рд╕реА рднреА рдЙрдк-рдЗрдХрд╛рдИ рдХреА рдЕрд▓рдЧ рд╕реЗ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдк-рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Toivo рдХреА рдЪрд┐рдВрддрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, a*u' рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдХрд▓рди рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ; рдПрдХ рдФрд░ рднреА рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд╕реНрдХрд░рдг рдкреВрд░реНрд╡-рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ x'Q рд╣реИ рдЬреЛ рджреНрд╡рд┐рдШрд╛рдд рд░реВрдкреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП x'Q*y1 , x'Q*y2 , ... (рдЬрд╣рд╛рдВ рдпреЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

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

рдпрд╣рд╛рдБ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрднрд╡ рд╣реИрдВ:

MATLAB: рдХреЛрд░ рднрд╛рд╖рд╛ рдЖрдо рдореИрдЯреНрд░рд┐рдХреНрд╕-рд╡реЗрдХреНрдЯрд░ рдСрдкреНрд╕ рд╕реЗ рдкрд░реЗ рд╕реАрдорд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЫреЛрд░реЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реЛрддрд╛ рд╣реИред

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

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

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

рд╕рд╛рд░рд╛рдВрд╢

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

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

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рд╕рд╣рдорддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЗрд╕ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдХрд┐ рд╡реЗ рдорд╛рдорд▓реЗ рдЬреЛ рдкрд╣рд▓реЗ рдХреЗ рдкрджреЛрдВ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдорд╛рдирддреЗ рдереЗ ( v' рдФрд░ v*A ) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рд░реНрдердХ (рдФрд░ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧреА) рджреЗрдВрдЧреЗ ) рдкрд░рд┐рдгрд╛рдоред

[рез] http://dspace.mit.edu/handle/1721.1/30520
[реи] http://krastanov.wordpress.com/diff-geometry-in-python/

@thomasmcfish рдзреНрд╡рдирд┐ рдХреА рддрд░рд╣ рдЖрдк рд╕рд╣ рдФрд░ contravariant рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЕрдВрддрд░ рдХреЗ рд▓рд┐рдП рд╡рдХрд╛рд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

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

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

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

immutable UpDownTensor{T, N, UPMASK} <: AbstractArray{T, N}
    A::AbstractArray{T, N}
end

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

рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд┐рдЪрд╛рд░:

  • рджреНрд╡рд┐рдШрд╛рддреА / рджреНрд╡рд┐рднрд╛рдЬрд┐рдд рд░реВрдкреЛрдВ рдХреЛ рджреЛ рдбрд╛рдЙрди рдЖрдпрд╛рдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдмреЗрд╣рддрд░ рд░реВрдк рд╕реЗ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛?
  • рдпрджрд┐ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдкреНрд░рддреНрдпреЗрдХ рдЖрдпрд╛рдо рдХреЗ рдЕрдк-рдбрд╛рдЙрдирд┐рдВрдЧ / рдлрд╝реНрд▓рд┐рдкрд┐рдВрдЧ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдб-рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЯрд╛рдЗрдк рднреА рдорд┐рд▓реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓рд╛ рдЖрдпрд╛рдо рдиреАрдЪреЗ рдФрд░ рджреВрд╕рд░рд╛ рдКрдкрд░ рд╣реЛрдЧрд╛ред
  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдк-рдкреИрдЯрд░реНрди рдХреЛ рдЗрд╕реЗ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд░рдгреА рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЦреИрд░, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ Transposed рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдпреЛрдЧреНрдпрддрд╛ рд╣реИред рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред

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

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

рдореЗрд░реЗ рдкрд╣рд▓реЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд▓реМрдЯрддреЗ рд╣реБрдП, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реИрдХреНрдЯрд░ y1, y2, ... рд▓рд┐рдП x'Q*y1, x'Q*y2, ... рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред SICM рдХреЗ рдмрд╛рдж, (...) рдФрд░ tuples (рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░) рджреНрд╡рд╛рд░рд╛ [...] tuples (рд╕реНрддрдВрдн рд╡реИрдХреНрдЯрд░) рдХреЛ рджрд░реНрд╢рд╛рдПрдБред рдпрджрд┐ рдЖрдк рдпрд╣ рд╕рдм рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдХреЗрд╡рд▓ рдКрдкрд░ / рдиреАрдЪреЗ рдХреЗ рд╕рд╛рде рдЕрдЯрдХреЗ рд╣реБрдП рд╣реИрдВ, рддреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ yi рдХреЛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ Y = [y1, y2, ...] рдХрд░ рдПрдХ tuple (рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) tuples), рдФрд░ r = x'Q*Y рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ tuple r ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ (рдХреЙрд▓рдо) рд╡реЗрдХреНрдЯрд░ v рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЖрдк рд╕рд┐рд░реНрдл r*v рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрдХреБрдЪрди (рдбреЙрдЯ рдЙрддреНрдкрд╛рдж) рдорд┐рд▓реЗрдЧрд╛ред рдЖрдк r рдХреЛ рдПрдХ рдЕрдк рдЯреНрдпреВрдкрд▓ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЧреБрдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдЕрдк рдЯреНрдпреВрдкрд▓ (рдЕрдк рдЯреНрдпреВрдкрд▓) рдореЗрдВ рдЖрдкрдХреЗ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдбрд╛рдЙрди рдЯрдкрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╢рдмреНрджрд╛рд░реНрде, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреА рдЧрдгрдирд╛ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЖрдпрд╛рдо рд╣реИ рдЬреЛ рд╕рд┐рд░реНрдл рдЪреАрдЬреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рд╣рдореЗрд╢рд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ; рд▓реЗрдХрд┐рди рд╕рдЦреНрддреА рд╕реЗ рдКрдкрд░ / рдиреАрдЪреЗ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирдорд╛рдирд╛ рд╕рдВрджрд░реНрдн-рдирд┐рд░реНрднрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддреЗ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рддрдЯрд╕реНрде рдЯреНрдпреВрдкрд▓реНрд╕ (рд╕рд░рдгрд┐рдпрд╛рдВ) рд╣реИрдВ, рдЬреЛ {...} рдирд┐рд░реВрдкрд┐рдд рд╣реИрдВред рдлрд┐рд░ рдЖрдк рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ ys = {y1, y2, ...} рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рдЯреБрдкрд▓реНрд╕ рдХрд╛), рддрд╛рдХрд┐ r = x'Q*ys рдПрдХ рд╕рд░рдгреА рд╣реЛ, рдФрд░ r*v рднреА рдПрдХ рд╕рд░рдгреА (рдЕрдк рдЯреНрдпреВрдкрд▓) рд╣реИред рд╕рдм рдХреБрдЫ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рдордирдорд╛рдирд╛ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕реНрдЯреАрдлрди рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ 1 / рдбреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЕрдк / рдбрд╛рдЙрди рд╡реИрдХреНрдЯрд░ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдлрд╝рдВрдХреНрд╢рди рд╡реИрдХреНрдЯрд░ рдкрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдЕрд░реНрдереЛрдВ рдХреЛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ _or_ рдирд╣реАрдВред (рдпрд╛, matrices _or_ рдкрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ arrays рдкрд░ _or_, arrays рдХреЗ рд╡реИрдХреНрдЯрд░ рдкрд░ _or_, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдРрд░реЗ рдкрд░, рд▓реЗрдХрд┐рди рдирд╣реАрдВ _either_ рдФрд░ рдЗрд╕реА рддрд░рд╣ред) рдЗрд╕рд▓рд┐рдП рдЙрдЪрд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рд╣реИ рдЬреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рдмрд╛рддред рд╢рд╛рдпрдж рдХреЛрдИ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

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

[рез] http://groups.csail.mit.edu/mac/users/gjs/6946/refman.txt --- "рд╕рдВрд░рдЪрд┐рдд рд╡рд╕реНрддреБрдПрдБ" рдкрд░ рд╢реБрд░реВ
[реи] http://www.sagemath.org/

рдореИрдВ рд▓рдВрдЪ рдЯреЗрдмрд▓ рдкрд░ @ рдЬрд┐рдпрд╛рдУ рд╕реЗ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдЯреАрдо рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рдереА рдХрд┐ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЙрдЪреНрдЪ рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдХреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд┐рдпрд╛ рдЬрд╛рдПред рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдореЗрдВ рдХрдИ рдорд╣реАрдиреЗ рдмрд┐рддрд╛рдП рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рдХреНрд░реЛрдирдХреЗрд░рд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдереАред рдореИрдВ рдЕрдкрдирд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

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

рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рднреВрдЦрдВрдб рдХреЗ x, y рдФрд░ z рдЕрдХреНрд╖реЛрдВ рдХреА рддрд░рд╣ рдСрд░реНрдбрд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдирд╛рдо рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрджреЗрд╢рд┐рдд рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ (рдЬреИрд╕реЗ A[1,2,5] рдмрдЬрд╛рдп A[a1=1, a3=5, a2=2] ) рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдХреНрд░рдо рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╕рдВрдЧрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдкрд╣рд▓реЗ рд╕рд░рдгреА рдХреЗ рд╕рднреА рдЖрдпрд╛рдореЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрджреЗрд╢ рджреЗрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рджреВрд╕рд░реЗ рд╕рд░рдгреА рдХреЗ рд╕рднреА рдЖрдпрд╛рдореЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реВрдВред рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЖрдпрд╛рдо рдХреЛ рдирд┐рдЪреЛрдбрд╝ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрди рдЖрдпрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП, рдЬреЛ рддрддреНрд╡ рддрддреНрд╡ рдЙрддреНрдкрд╛рдж рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рджреВрд╕рд░реЗ рд╕рд░рдгреА рд╕реЗ рдЖрдпрд╛рдо рдирд┐рдЪреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдВрдХрди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдмреЗрдЭрд┐рдЭрдХ рдЬреВрд▓рд┐рдпрд╛рдлреА рдЗрд╕реЗред A рдПрдХ рдРрд╕рд╛ рд╕рд░рдгреА рд╣реЛ рдЬреЛ a1 a2 a3 рдФрд░ B рдПрдХ рдРрд╕рд╛ рд╕рд░рдгреА рд╣реЛ рдЬреЛ b1 b2 ред рдорд╛рди рд▓реЗрдВ рдХрд┐ array_product(A, B, inner=[2, 1], elementwise=[3, 2]) рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЛ a2 рдФрд░ b1 рдмреАрдЪ рд▓реЗ рдЬрд╛рдПрдЧрд╛, a3 рдФрд░ b2 рдмреАрдЪ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдЙрддреНрдкрд╛рдж, рдФрд░ a1 рдХрд╛ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рджред рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕рд░рдгреА рд╣реЛрдЧрд╛ рдЬреЛ a1 a3 ред

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

рдорддрд▓рдм рдХрд╛ A*B array_product(A, B, inner=[2,1]) ред

рдорддрд▓рд╛рдм рдХреЗ A.' permute(A, B, [2,1]) рдЬрд╣рд╛рдВ рдкрд░рдорд┐рдЯ рддреАрд╕рд░реЗ рддрд░реНрдХ рдХреА рдЧрд┐рдирддреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рднреА рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рдЦрддрд╛ рд╣реИред

рдЖрдк рдпрд╣ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрд░рд░реНрд╕ рдХреЛ рдлреЗрдВрдХрдирд╛ рдпрд╛ рди рднрд░рдирд╛ рдЬрдм рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдЖрдпрд╛рдо 2 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдпрд╛ 2 рдХреЗ рдмрд░рд╛рдмрд░ рднреА рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдореИрдердореЗрдЯрд┐рдХрд╛ рд╡реЗрдХреНрдЯрд░ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░рдгреА рдЧрдгрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рднреА (n, m) рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ (n, m, 1) рдФрд░ (n, m, 1) рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @wenxgwen рдХрд╛ рд╕реБрдЭрд╛рд╡ рд▓реЗрдиреЗ рдпрд╛ рдирд╣реАрдВ рд▓реЗрдиреЗ рдХреА @wenxgwen рдХрд╛ рд╕реБрдЭрд╛рд╡ рдкрд╕рдВрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбрд╛рдпрдиреЗрдорд┐рдХ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реИред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЕрдзрд┐рдХ

рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдХрд╛рдлреА рдЬреНрдЮрд╛рди рдорд┐рд▓рд╛ рдХрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░рдгреА * рд╕рд░рдгреА рдЙрддреНрдкрд╛рдж рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЬрд╛рдирд╡рд░ рд╣реИред

PEP 0465 рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА рдЧреБрдгрди рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЛ рдХреНрд░реЙрд╕-рд░реЗрдлрд░реЗрдВрд╕ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ:

1d рд╡реЗрдХреНрдЯрд░ рдЗрдирдкреБрдЯреНрд╕ рдХреЛ рдЖрдХрд╛рд░ рдореЗрдВ '1' рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рдпрд╛ рдЬреЛрдбрд╝рдХрд░ 2d рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрдпрд╛рдо рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред 1 рдХреЛ рд╣рдореЗрд╢рд╛ рдЖрдХреГрддрд┐ рдХреЗ "рдмрд╛рд╣рд░" рдкрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ: рдмрд╛рдПрдВ рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рд╣реА рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ @ рд╡реЗрдХреНрдЯрд░ рдФрд░ рд╡реЗрдХреНрдЯрд░ @ рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреЛрдиреЛрдВ рдХрд╛рдиреВрдиреА (рд╕рдВрдЧрдд рдЖрдХрд╛рд░ рдорд╛рди рд░рд╣реЗ рд╣реИрдВ), рдФрд░ рджреЛрдиреЛрдВ 1 рдбреА рд╡реИрдХреНрдЯрд░ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ; рд╡реЗрдХреНрдЯрд░ @ рд╡реЗрдХреНрдЯрд░ рдПрдХ рд╕реНрдХреЗрд▓рд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ ... 1 рдбреА рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ (рдЧреИрд░-рд╕рд╣рдпреЛрдЧреА) (Mat1 @ vec) @ Mat2! = Mat1 @ (vec @ Mat2) рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рдорд╛рдорд▓рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрддрд╛ рд╢реБрджреНрдзрддрд╛ рдХреЛ рд╣рд░рд╛ рджреЗрддреА рд╣реИ

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

PEP рд╕реЗ 0465:

1d рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ (@ (Mat1 @ vec) @ Mat2! = Mat1 @ (vec @ Mat2) рдХреЛ @ рдЧреИрд░-рд╕рд╣рдпреЛрдЧреА рдмрдирд╛рддрд╛ рд╣реИред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкрд░рд┐рднрд╛рд╖рд╛ рдЗрд╕ рддрд░рд╣, рдореЗрдереЗрдореЗрдЯрд┐рдХрд╛ рдореЗрдВ рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ Dot ( . ) рд╕рд╛рд╣рдЪрд░реНрдп (рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ Flat рдЬрдм рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди (рд╕рд╛рде) f рдиреАрдЪреЗ, рд▓реЗрдХрд┐рди g ):

In[1]:= f=X.(y.Z);
g:=X.(y.Z)

In[3]:= Block[{
X=Array[a,{2,2}],
y=Array[b,2],
Z=Array[c,{2,2}]
},{f,g}]

Out[3]= {{(a[1,1] b[1]+a[1,2] b[2]) c[1,1]+(a[2,1] b[1]+a[2,2] b[2]) c[2,1],(a[1,1] b[1]+a[1,2] b[2]) c[1,2]+(a[2,1] b[1]+a[2,2] b[2]) c[2,2]},{a[1,1] (b[1] c[1,1]+b[2] c[2,1])+a[1,2] (b[1] c[1,2]+b[2] c[2,2]),a[2,1] (b[1] c[1,1]+b[2] c[2,1])+a[2,2] (b[1] c[1,2]+b[2] c[2,2])}}

In[4]:= SameQ@@Expand[%]
Out[4]= False

@ рд╡реГрджреНрдзрдЬрди рд╕реЗ :

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

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЬреВрд▓рд┐рдпрд╛ _should_ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕рд░рдгреА-рдЬреИрд╕реЗ рд╢рдмреНрджрд╛рд░реНрде (рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП) рдФрд░ рдЯреЗрдВрд╕рд░ рдЬреИрд╕реЗ рд╢рдмреНрджрд╛рд░реНрде (рд╕рдВрднрд╡ рд╕рдВрдХреБрдЪрди рдХреЗ рд▓рд┐рдП) рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред

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

рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдЧрдгрд┐рддреАрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрдм рддреАрди рдФрд░ рдкреНрд░рдХрд╛рд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, Matrix , ColumnVector , рдФрд░ RowVector , рдЬрд┐рд╕ рдкрд░ рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рдХ рдФрд░ рдХрд╛рд░реНрдп рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВред

рдЕрдм рдЬрдм рдкреНрд░рдХрд╛рд░ рд╕рдВрд░рдЪрдирд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рддреЛ рдЖрдк Matrix рд╕реЗ Array{2} , ColumnVector Array{1} рд▓рд┐рдП рдирд┐рд╣рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рдЬреЛрдбрд╝рдХрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░ рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ RowVector рд╕реЗ Array{2} (рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ), Array{2} рд╕реЗ Matrix , рдФрд░ Array{1} рд╕реЗ ColumnVector ред

рдКрдкрд░ рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ (https://github.com/JuliaLang/julia/issues/4774#issuecomment-32705055) рдПрдХ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдпрд╛рдо рдХреЛ рдпрд╣ рднреЗрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рддрдЯрд╕реНрде рд╣реИ ("рд╕рдВрдЧреНрд░рд╣" / "рд╕рд░рдгреА"), рдКрдкрд░ (" рд╕реНрддрдВрдн "), рдпрд╛ рдиреАрдЪреЗ (" рдкрдВрдХреНрддрд┐ ") рд╢рдмреНрджрд╛рд░реНрдеред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИред

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

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

  1. рдХрд┐рд╕реА рднреА рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдЖрддреНрдо-рд╕реБрд╕рдВрдЧрдд рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд▓рд┐рдП рджреЛрд╣рд░реЗ рдХреА рдзрд╛рд░рдгрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
  2. рдкреИрд░рд╛рдореАрдЯрд░ рдСрдкрд░реЗрдЯрд░ (рдпрд╛ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдмрд╛рд╣рд░реА) рдХреЗ рд╕рд╛рде рдЯреЗрдВрд╕рд░ рдмреАрдЬрдЧрдгрд┐рдд рдХрд╛ рддрджрд░реНрде рдкреНрд░рд╡рд░реНрддрди рд╕реМрдВрджрд░реНрдпрд╢рд╛рд╕реНрддреНрд░ рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╣реИред

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

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреБрдо рд╕рд╣реА рд╣реЛ рдбреЗрд╡рд┐рдбред рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

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

рд╢рд╛рдпрдж рдЯреЗрдВрд╕рд░реНрд╕ рдФрд░ рдЯреАрдбреАрдЯреА рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИрдВ рдФрд░ рдХреЛрд░ рдореЗрдВ рдирд╣реАрдВ, рдмрд╕
рд░рд┐рд╢реНрддреЗрджрд╛рд░ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЗ рдЖрдзрд╛рд░ред рд▓реЗрдХрд┐рди рдЬреВрд▓рд┐рдпрд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХреА рддрд░рд╣
рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдХрд╣рддреА рд╣реИ, рдЬреВрд▓рд┐рдпрд╛ рд▓рд╛рд▓рдЪ рд╕реЗ рдкреИрджрд╛ рд╣реБрдИ рд╣реИред рдФрд░ рдЬреИрд╕реЗ рдЧреЙрд░реНрдбрди рдЧреЗрдХреЛ рдХрд╣рддреЗ рд╣реИрдВ,
рд▓рд╛рд▓рдЪ рдЕрдЪреНрдЫрд╛ рд╣реИред :)
21 рдорд╛рд░реНрдЪ, 2014 3:14 AM рдкрд░, "рдбреЗрд╡рд┐рдб рд╣реЗрдЧрди" рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

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

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ Gi tHubhttps: //github.com/JuliaLang/julia/issues/4774#issuecomment -38262998 рдкрд░ рджреЗрдЦреЗрдВ
ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрдмрд╛рдз рдПрдХреАрдХрд░рдг рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕рдореГрджреНрдз рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрд░рд┐рд╡рд╛рд░ рд╣реИред рддрд┐рд╡рд╡реЛ рдХрд╛ https://github.com/JuliaLang/julia/issues/4774#issuecomment -32693110 рддрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░, рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

immutable AbstractTensorArray{T, N, UPMASK, DOWNMASK} <: AbstractArray{T, N}
    A::AbstractArray{T, N}
end
# where !any(UPMASK & DOWNMASK)

typealias AbstractColumnVector{T} AbstractTensorArray{T, 1, [true], [false]}
typealias AbstractRowVector{T} AbstractTensorArray{T, 1, [false], [true]}
typealias AbstractMatrix{T} AbstractTensorArray{T, 2, [false, true], [true, false]}

(рд╡рд░реНрддрдорд╛рди рдореЗрдВ AbstractMatrix{T} рдмрд╕ рдЙрдкрдирд╛рдо AbstractArray{T, 2} ; рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рдФрд░ рдирд╛рдо рдпрд╣рд╛рдБ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)

рдпрд╣рд╛рдБ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддрд░реНрдХрд╕рдВрдЧрдд рд▓рдЧрддреЗ рд╣реИрдВ:

  1. рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд transpose рдкрджреНрдзрддрд┐, рдЖрдпрд╛рдореЛрдВ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд UPMASK рдФрд░ DOWNMASK рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рдмрд╛рдж, рдлрд┐рд░ UPMASK рдФрд░ DOWNMASK рдХреЛ рдЗрдВрдЯрд░рдЪреЗрдВрдЬ рдХрд░рддрд╛ рд╣реИред рддрдЯрд╕реНрде рдЖрдпрд╛рдо рдЕрдкреНрд░рднрд╛рд╡рд┐рдд рд░рд╣реЗрдВрдЧреЗред
  2. рдХрд┐рд╕реА рднреА AbstractArray{T, N} рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдХреЗ AbstractTensorArray{T, N, [..., false, true, false, true], [..., true, false, true, false]} рджрд╕рд┐рдпреЛрдВ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╡рд┐рд╢реЗрд╖ рд╕рд░рдгреА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
  3. рдПрдХ рд╡рд┐рдзрд╛рдпрдХ рд╡рд┐рдзрд┐ ( array рд▓рд┐рдП AbstractTensorArray рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдЯрд╕реНрде рдЖрдпрд╛рдореЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╕рдВрдпреБрдХреНрдд AbstractTensorArray рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп AbstractTensorArray s (рдпрд╛ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЙрдкрдЪрд╛рд░) рдХрд╛ рд╕рдВрдпреЛрдЬрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред AbstractTensorArray рддрдЯрд╕реНрде рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рдеред

@Drhagen рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП:

рд╡реЗрдХреНрдЯрд░-рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди, рд╕реНрдХреЗрд▓рд░-рд╕рд░рдгреА рдЧреБрдгрди

c = 1               # Int
v = [1, 2]          # Array{Int, 1}
M = [[1, 2] [3, 4]] # Array{Int, 2}

# scalar-array
c * M               # UNCHANGED: *(Int, Array{Int, 2}) => Array{Int, 2}

# matrix-vector
M * v               # *(Array{Int, 2}, Array{Int, 1}) => *(Matrix{Int}, ColumnVector{Int}) => ColumnVector{Int}

# vector-matrix
v' * M              # transpose(Array{Int, 1}) => transpose(ColumnVector{Int}) => RowVector{Int}
                    # *(RowVector{Int}, Array{Int, 2}) => *(RowVector{Int}, Matrix{Int}) => RowVector{Int}

# (1-array)-(2-array)
v .* M              # UNCHANGED: .*(Array{Int, 1}, Array{Int, 2}) => Array{Int, 2}

(рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Matrix рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕реА рдХреЗ рд╕рд╛рде AbstractMatrix рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рднрд╛рд╖рд╛)

рд╕рд░рдгреА рдХреЗ рдПрдХ рд╕рд░рдгреА рдкрд░ рдПрдХ рд╕рд░рдгреА рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рддрд░рдг

рдореИрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм, рд╢рдмреНрджрд╛рд░реНрде, рд╡реИрдХреНрдЯрд░ рдХреЗ рдПрдХ рд╕рд░рдгреА рдкрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдПрдХ рд╕рд░рдгреА рдкрд░ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ рд▓реЗ рд░рд╣рд╛ рд╣реВрдВ:

# vector-(vector-array)
ws = array([1, 2], [3, 4])
                    # TensorArray{Int, 2, [false, true], [false, false]}
v + ws              # +(Array{Int, 1}, TensorArray{Int, 2, [false, true], [false, false]}) => +(ColumnVector{Int}, TensorArray{Int, 2, [false, true], [false, false]}) => TensorArray{Int, 2, [false, true], [false, false]}
# => array([2, 4], [4, 6])

# array-(vector-array)
u = array(1, 2)     # TensorArray{Int, 1, [false], [false]}
u + ws              # +(TensorArray{Int, 1, [false], [false]}, TensorArray{Int, 2, [false, true], [false, false]}) => TensorArray{Int, 2, [false, true], [false, false]}
# => array([2, 3], [5, 6])
# alternatively:
v .+ ws             # .+(Array{Int, 1}, TensorArray{Int, 2, [false, true], [false, false]}) => TensorArray{Int, 2, [false, true], [false, false]}
# => array([2, 3], [5, 6])
# same effect, but meaning less clear:
v .+ M              # UNCHANGED: .+(Array{Int, 1}, Array{Int, 2}) => Array{Int, 2}
# => [[2, 4] [4, 6]]

# matrix-(matrix-array)
Ns = array([[1, 2] [3, 4]], [[5, 6] [7, 8]])
                    # TensorArray{Int, 2, [false, false, true], [false, true, false]}
M + Ns              # +(Array{Int, 2}, TensorArray{Int, 2, [false, false, true], [false, true, false]}) => +(Matrix{Int}, TensorArray{Int, 2, [false, false, true], [false, true, false]}) => TensorArray{Int, 2, [false, false, true], [false, true, false]}
# => array([[2, 4] [6, 8]], [[6, 8] [10, 12]])

рдПрдХ рд╡реЗрдХреНрдЯрд░ рдкрд░рд┐рдгрд╛рдо v рдХреЛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреНрд╡рд┐рдШрд╛рдд рд░реВрдкреЛрдВ рд╕реЗ x'M*w1, x'M*w2, ... , рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП x'M*w1*v, x'M*w2*v, ... : рдХреЗ рдореЗрд░реЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП:

x = v
x' * M * ws * v     # *(RowVector{Int}, Array{Int, 2}) => *(RowVector{Int}, Matrix{Int}) => RowVector{Int}
                    # *(RowVector{Int}, TensorArray{Int, 2, [false, true], [false, false]}) => TensorArray{Int, 1, [false], [false]}
                    # *(TensorArray{Int, 1, [false], [false]}, Array{Int, 1}) => *(TensorArray{Int, 1, [false], [false]}, ColumnVector{Int}) => TensorArray{Int, 1, [false, true], [false, false]}
# => array([27, 54], [59, 118])

рдЗрд╕ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдореИрдВрдиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ AbstractArray рдЕрдХреЗрд▓рд╛ рдмрдЪрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ AbstractTensorArray рдкреНрд░рдХрд╛рд░ рдХреА рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдЕрдкрдирд╛ "рд╕реНрдерд╛рди" рдмрдирд╛рддрд╛ рд╣реИред рдпрджрд┐ AbstractArray рдкрд░рд┐рд╡рд╛рд░ рдХреЛ рдХреЗрд╡рд▓ AbstractTensorArray рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рддреЛ рдЪреАрдЬреЗрдВ рд╕рд░рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдФрд░ рдЪрд░реНрдЪрд╛ рд╣реИред

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

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

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

рдиреНрдпреВрдирддрдо рд░реВрдк рд╕реЗ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

immutable Space
    dim::Int
    dual::Bool
end
Space(dim::Int)=Space(dim,false) # assume normal vector space by default
dual(s::Space)=Space(s.dim,!s.dual)

matrix=Tensor((Space(3),dual(Space(5))))
# size is no longer sufficient to characterise the tensor and needs to be replaced by space
space(matrix) # returns (Space(3),dual(Space(5))) 
space(matrix') # returns (Space(5),dual(Space(3)))

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

рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ / рднреМрддрд┐рдХреА рдореЗрдВ рджрд╕рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЧрдгрд┐рддреАрдп рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗ рдмреАрдЪ рдШрдирд┐рд╖реНрда рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕реНрдЯреИрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рдорд┐рд▓рд╛ ... http://math.stackexchange.com/questions/412423/differences-between-a-matrix-and-a-tensorред рдпрд╣рд╛рдБ рднреА, рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдВрджрд░реНрдн рдкреЛрд╕реНрдЯ рдерд╛ред
http://www.mat.univie.ac.at/~neum/physfaq/topics/tensors

рдореИрдВ рдЕрдкрдиреЗ рджреИрдирд┐рдХ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдорддрд▓рд╛рдм рдХрд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬреВрд▓рд┐рдпрд╛ рдкрд░ рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ред рдпрд╣рд╛рдБ, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдБ рдХрд┐ рдЙрдЪреНрдЪ-рдЖрдпрд╛рдореА рдРрд░реЗ рдЧреБрдгрд╛ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝рд┐рд╢рди рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЕрдиреНрдп рдРрд░реЗ рдСрдкрд░реЗрд╢рдВрд╕ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪрд░реНрдЪрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВред рдореИрдВ http://www.mathworks.com/matlabcentral/fileexchange/8773-multiple-matrix-multiplications--with-array-expansion-enabled рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ, рдЬреЛ @drhagen рдиреЗ рдкрд╣рд▓реЗ рдХреА рдкреЛрд╕реНрдЯ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ array_product (A, B, inner_A_dim = [1, 2], inner_B_dim = [3, 4], рд╕рд░рдгрд┐рдпреЛрдВ A рдФрд░ B рдХреЗ рдмреАрдЪ рдХреЗ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рджрд┐рдП рдЧрдП рдЖрдВрддрд░рд┐рдХ рдЖрдпрд╛рдоред

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

рдЖрдкрдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП: INV рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдорддрд▓рд╛рдм рдореЗрдВ рдПрдХ рдФрд░ рд╕рдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпрд╣рд╛рдВ рд╣реИ: http://www.mathworks.com/matlabcentral/fileexchange/31222-inversion-every-2d-slice-for-arbiteath-multi-dimension-array

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

@ananedelman рдХреЗ рд╢реАрд░реНрд╖ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рд╡реЛрдЯред рдпрд╣рд╛рдБ рдПрдХ рдкреНрд░реЗрд░рдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред

рдЕрднреА, рдПрдХ рдкрдВрдХреНрддрд┐-рд╕реНрд▓рд╛рдЗрд╕ 2d рд╕рд░рдгреА рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рдХреЙрд▓рдо рд╕реНрд▓рд╛рдЗрд╕ 1d рд╕рд░рдгреА рд╣реИ; рдЬреЛ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдЕрд╕рдордорд┐рдд рдФрд░ рдмрджрд╕реВрд░рдд рд╣реИ:

julia> A = randn(4,4)
4x4 Array{Float64,2}:
  2.12422    0.317163   1.32883    0.967186
 -1.0433     1.44236   -0.822905  -0.130768
 -0.382788  -1.16978   -0.19184   -1.15773
 -1.2865     1.21368   -0.747717  -0.66303

julia> x = A[:,1]
4-element Array{Float64,1}:
  2.12422
 -1.0433
 -0.382788
 -1.2865

julia> y = A[1,:]
1x4 Array{Float64,2}:
 2.12422  0.317163  1.32883  0.967186

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдПрдХ рдХреЙрд▓рдо рд╕реЗ рдЧреБрдгрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдФрд░ рдХреБрдЫ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд┐рдП рдмрд┐рдирд╛ рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ

julia> dot(y[:],x)
2.4284575954571106
julia> (y*x)[1]
2.42845759545711

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

рдореИрдВ x_y 'рдФрд░ y'_x рдХреЗ рд╕рд╛рде рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВред рдЗрд╕рдХрд╛ рдЗрд▓рд╛рдЬ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЖрдВрддрд░рд┐рдХ рдФрд░ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреЙрдЯ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред (рд╢рд╛рдпрдж
cdot рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА?)

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

рдмреБрдз рдкрд░, рдЬреБрд▓рд╛рдИ 16, 2014 рдХреЛ 8:17 рдмрдЬреЗ, рд╕реНрдЯреАрдлрди рдХрд░рдкрд┐рдВрд╕реНрдХреА рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдпрд╣ рдПрдХ рд╕реБрд╕рдВрдЧрдд рдкреНрд░рд╕реНрддрд╛рд╡ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдк '* рдПрдХ рд╡рд┐рд╢реЗрд╖ рдСрдкрд░реЗрдЯрд░ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ
рдмрд╣реБрдд рд╕рдВрджрд┐рдЧреНрдз рд╣реИ, рддрдм рд╕реЗ x'_y рдФрд░ (x ') _ y рдХрд╛ рдЕрд░реНрде рдПрдХ рд╣реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЧреБрдгрди рдХреЛ рдЧреИрд░-рд╕рд╣рдпреЛрдЧреА рдмрдирд╛ рджреЗрдЧрд╛ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/JuliaLang/julia/issues/4774#issuecomment -49254346

рдореЗрдбреЗрд▓реАрди рдЙрдбреЗрд▓
рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдФрд░ рдЧрдгрд┐рддреАрдп рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдореЗрдВ рдкреАрдПрдЪрдбреА рдЙрдореНрдореАрджрд╡рд╛рд░
рд╕реНрдЯреИрдирдлреЛрд░реНрдб рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп
www.stanford.edu/~udell

@ рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд , рдореИрдВ

рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рдРрд░реЗ рд╡реНрдпреВ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрди рджрд┐рд╢рд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, slice(A, i, :) рдХрд╣рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рд╡рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред (рдпрд╣ рдЕрднреА рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдзреАрдореА рдкреНрд░рдХрд╛рд░ рдХреА рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреА рдХреАрдордд рдкрд░, рд╕рдмрд░реНрд░реЗред)

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

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

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

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

рдЗрд╕ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд┐рд╣рд┐рддрд╛рд░реНрде рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЯреЗрдВрд╕рд░реЛрдВ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ 1-рдбреА рд╕рд░рдгреА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдкрд░ DualVector рдпрд╛ рд╢рд╛рдпрдж рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ рдЬреЛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдПрдБ рджреЗрддреЗ рд╣реИрдВред

рдореЗрд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп AbstractArray рдкрд░рд┐рд╡рд╛рд░, (рдПрдХ рдмрд╣реБрдЖрдпрд╛рдореА) рдбреЗрдЯрд╛ рдХрдВрдЯреЗрдирд░, рдХрд┐рд╕реА рднреА рддрдХрдиреАрдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рд╕рдЦреНрдд рдЧрдгрд┐рддреАрдп рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЯреЗрдВрд╕рд░, рднрд▓реЗ рд╣реА рдореИрдВ рдЗрд╕рдХреА рджреЗрдЦрднрд╛рд▓ рдХрд░рддрд╛ рд╣реВрдВ, рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рд╡рд╕реНрддреБ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ https://github.com/Jutho/TensorToolbox.jl рдореЗрдВ @jdbates рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдЕрдм рддрдХ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реИ рдФрд░ рдХрд╛рдлреА рд╣рдж рддрдХ рдЕрдкреНрд░рдпреБрдХреНрдд рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЙрди рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рд╣реИ рдЬрд┐рдирдХреА рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХрдИ рд╢рд░реАрд░ рднреМрддрд┐рдХреА рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЧрдгрд┐рддрдЬреНрдЮреЛрдВ рдФрд░ рднреМрддрд┐рдХрд╡рд┐рджреЛрдВ рдХреЗ рдмрдбрд╝реЗ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╣реИ рдЬреЛ рдЯреЗрдирд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВред

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

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

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

рдлрд┐рд░ рдЯреЗрдирд░реНрд╕ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдСрдкрд░реЗрд╢рди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЯреЗрдирд░реНрд╕ рдХреЛ рдЕрдиреБрдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА, рдЬреИрд╕реЗ рдХрд┐ рдСрд░реНрдереЛрдЧреЛрдирд▓ рдлреИрдХреНрдЯрд░рд┐рд╕ (рдПрдХрд╡рдЪрди рдореВрд▓реНрдп рд╡рд┐рдШрдЯрди) рдЖрджрд┐ред рдЖрдЦрд┐рд░ рдореЗрдВ рд░реИрдЦрд┐рдХ рдирдХреНрд╢реЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдЯреЗрдиреЙрд░ рдХреЛ рдореИрдк рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд╛рдпрдХ рд╣реИрдВ рдХрд┐ рдЖрдо рддреМрд░ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рддрд░рд╣ рд╕реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡реЗрдХреНрдЯрд░ рдЙрддреНрдкрд╛рдж рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рддрд╛рдХрд┐ рдкреБрдирд░рд╛рд╡реГрддреНрдд рддрд░реАрдХреЛрдВ (рд▓реИрдВрдХреНрдЬрд╝реЛрд╕ рдЖрджрд┐) рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдПред рдореЗрд░реЗ рдЕрдм рддрдХ рдХреЗ рджреЛ рдореМрдЬреВрджрд╛ рдкреИрдХреЗрдЬ (TensorOperations.jl рдФрд░ LinearMaps.jl) рдорд╛рдирдХ Arrays рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдирд┐рд░реНрдорд╛рдгрд╛рдзреАрди рдЯреЗрдВрд╕рд░ рдЯреВрд▓рдмреЙрдХреНрд╕ рдирдП AbstractTensor рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рднрд╛рд░ / рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдЧрд╛ред

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

рдЕрдВрдд рдореЗрдВ, рдорд╛рдирдХ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реЙрдк рдмреБрд▓рд╛ рд╕реЗ рдЖрддрд╛ рд╣реИ tensor рдкрд░ рдПрдХ рдорд╛рдирдХ Array рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓рдкреЗрдЯрддрд╛ Tensor рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЬреБрдбрд╝реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рд╛рде CartesianSpace ред рдпрд╣ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде рдорд╛рдирдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдЖрд░ ^ рдПрди рд╣реИ, рдЬрд╣рд╛рдВ рд╕рд╣рд╕рдВрдпреЛрдЬрдХ рдФрд░ рдХреЙрдиреНрдЯреНрд░рд╛рд╡реИрд░рд┐рдПрдВрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рдПрдХ рдорд╛рдирдХ рдЬреВрд▓рд┐рдпрд╛ рдРрд░реЗ рд╣реИред

@ рдЬреЗрдлрд╝ рдмреЗрдЬрд╝реЗрдирд╕рди , рдореИрдВ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рд╣реВрдВред рдХреЛрдИ рднреА рдЬрд╛рдирдХрд╛рд░реА рдЙрд╕ рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЦреЛрдИ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рд╡реНрдпрд╛рдЦреНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЯреЗрдВрд╕рд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣рдореЗрд╢рд╛ (рдпрд╛ рдЖрдорддреМрд░ рдкрд░ рднреА) рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддреА рд╣реИред рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдПрдХ рдЫрд╡рд┐ рдХреЛ рдПрдХ (рдЖрдорддреМрд░ рдкрд░ 2d) рдХрдИ рдЧреБрдирд╛ рдкрд░ рд╡реЗрдХреНрдЯрд░-рдореВрд▓реНрдпрд╡рд╛рди рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рдЧреНрд░рд┐рдб рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдПрдХ 3 рдбреА рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЧреНрд░рд┐рдб рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕реНрдерд╛рди рд╕реЗ {R, G, B} рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдореИрдкрд┐рдВрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рджреЛ рдЖрдпрд╛рдореЛрдВ (рдЧреНрд░рд┐рдб рдХреЗ x рдФрд░ y рд▓реЗрдмрд▓) рдХрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЕрд░реНрде, рд╕реЗ рдЕрд▓рдЧ рд╣реИ рддреАрд╕рд░реЗ рдЖрдпрд╛рдо рдХрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЕрд░реНрде (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ)ред

рдореИрдВ @Jutho рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдореЗрдВ

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

рдореИрдВ рдЖрдкрд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рдорд╛рди рд╣реИ рдЬреЛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред

рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдПрдХ рдЫрд╡рд┐ рдХреЛ рдПрдХ (рдЖрдорддреМрд░ рдкрд░ 2d) рдХрдИ рдЧреБрдирд╛ рдкрд░ рд╡реЗрдХреНрдЯрд░-рдореВрд▓реНрдпрд╡рд╛рди рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рдЧреНрд░рд┐рдб рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдПрдХ 3 рдбреА рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЧреНрд░рд┐рдб рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕реНрдерд╛рди рд╕реЗ {R, G, B} рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдореИрдкрд┐рдВрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рджреЛ рдЖрдпрд╛рдореЛрдВ (рдЧреНрд░рд┐рдб рдХреЗ x рдФрд░ y рд▓реЗрдмрд▓) рдХрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЕрд░реНрде, рд╕реЗ рдЕрд▓рдЧ рд╣реИ рддреАрд╕рд░реЗ рдЖрдпрд╛рдо рдХрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЕрд░реНрде (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд╕рдордЧреНрд░ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдпрд╛ рджреВрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, https://github.com/timholy/Images.jl/pull/135 рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд░рдВрдЧ рд╕рдВрд░рдЪрдирд╛ рдЯреЗрдВрд╕рд░реНрд╕ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рднреА рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

23 рдЕрдЧрд╕реНрдд 2014 рдХреЛ, 20:36 рдкрд░, jdbates рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@ рдЬреЗрдлрд╝ рдмреЗрдЬрд╝реЗрдирд╕рди , рдореИрдВ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рд╣реВрдВред рдХреЛрдИ рднреА рдЬрд╛рдирдХрд╛рд░реА рдЙрд╕ рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЦреЛрдИ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рд╡реНрдпрд╛рдЦреНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рджрд╣рд╛рдИ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣рдореЗрд╢рд╛ (рдпрд╛ рдЖрдорддреМрд░ рдкрд░ рднреА) рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддреА рд╣реИред рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдПрдХ рдЫрд╡рд┐ рдХреЛ рдПрдХ (рдЖрдорддреМрд░ рдкрд░ 2d) рдХрдИ рдЧреБрдирд╛ рдкрд░ рд╡реЗрдХреНрдЯрд░-рдореВрд▓реНрдпрд╡рд╛рди рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рдЧреНрд░рд┐рдб рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдПрдХ 3 рдбреА рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЧреНрд░рд┐рдб рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕реНрдерд╛рди рд╕реЗ {R, G, B} рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдореИрдкрд┐рдВрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рджреЛ рдЖрдпрд╛рдореЛрдВ (рдЧреНрд░рд┐рдб рдХреЗ x рдФрд░ y рд▓реЗрдмрд▓) рдХрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЕрд░реНрде, рд╕реЗ рдЕрд▓рдЧ рд╣реИ рддреАрд╕рд░реЗ рдЖрдпрд╛рдо рдХрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЕрд░реНрде (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ)ред

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

рдореИрдВ @Jutho рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдореЗрдВ

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

рдореИрдВ рдЖрдкрд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рдорд╛рди рд╣реИ рдЬреЛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВред

рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рд╡реНрдпрд╛рдЦреНрдпрд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдЯреЗрдВрд╕рд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣рдореЗрд╢рд╛ (рдпрд╛ рдЖрдорддреМрд░ рдкрд░ рднреА) рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддреА рд╣реИред рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдПрдХ рдЫрд╡рд┐ рдХреЛ рдПрдХ (рдЖрдорддреМрд░ рдкрд░ 2d) рдХрдИ рдЧреБрдирд╛ рдкрд░ рд╡реЗрдХреНрдЯрд░-рдореВрд▓реНрдпрд╡рд╛рди рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рдЧреНрд░рд┐рдб рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдПрдХ 3 рдбреА рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЧреНрд░рд┐рдб рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕реНрдерд╛рди рд╕реЗ {R, G, B} рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдореИрдкрд┐рдВрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рджреЛ рдЖрдпрд╛рдореЛрдВ (рдЧреНрд░рд┐рдб рдХреЗ x рдФрд░ y рд▓реЗрдмрд▓) рдХрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЕрд░реНрде, рд╕реЗ рдЕрд▓рдЧ рд╣реИ рддреАрд╕рд░реЗ рдЖрдпрд╛рдо рдХрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЕрд░реНрде (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ)ред

рдпрд╣ рд╕рд┐рд░реНрдл рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЕрдВрддрд░ рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рд╡реНрдпреВрдЗрдВрдЧ AbstractTensorArray https://github.com/JuliaLang/julia/issues/4774#issuecomment -382323295 рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред - рд╕рдорд╛рди рдЖрдпрд╛рдоред рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рддрд╣рдд, рдореИрдВ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реВрдВрдЧрд╛

AbstractTensorArray{Uint8, 3, [false, true, false], [true, false, false]}

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

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

рдЬрд┐рд╕ рдкреНрд░рд╢реНрди рдХреЛ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдБ рдкреВрдЫрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ "рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдХрд┐рд╕ рдбреЛрдореЗрди рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?"

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

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

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

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

x рдФрд░ y рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ "рдЖрдпрддрд╛рдХрд╛рд░ рдЧреНрд░рд┐рдб" рдХреЛ рдлреИрд▓рд╛рдпрд╛ рд╣реИ --- рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐

рд╣рд░ рдЯреЗрдВрд╕рд░ рдХреБрдЫ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдХрд╛ рдПрдХ рддрддреНрд╡ рд╣реИ

рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ --- рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА (рдореБрдЭреЗ рдХреЛрдб рдкрдврд╝рдиреЗ рдореЗрдВ рдмрд╣реБрдд рджреВрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛)ред

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


(1) рдПрдкреАрдПрд▓-рд╢реИрд▓реА рдЯреБрдХрдбрд╝рд╛ рдХрд░рдиреЗ рдХреА рдХреНрд░рд┐рдпрд╛ред

size(A[i_1, ..., i_n]) == tuple(size(i_1)..., ..., size(i_n)...)

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


(2) рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП Transpose рдФрд░ ConjTranspose рд░реИрдкрд░ рдкреЗрд╢ рдХрд░реЗрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ:

immutable Transpose{T,n,A<:AbstractArray} <: AbstractArray{T,n}
    array::A
end
Transpose{T,n}(a::AbstractArray{T,n}) = Transpose{T,n,typeof(a)}(a)

рдФрд░ рдпреЗ рд╕рднреА рдЙрдкрдпреБрдХреНрдд рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдЗрди рдХрд╛рдореЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХреНрдЯрд░ рдФрд░ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдордирдорд╛рдирд╛ рдЖрдпрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдХреНрд░рдордг рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд┐рд░реНрдл рдЙрд▓рдЯ рдЖрдпрд╛рдо рдЖрдХрд░реНрд╖рдХ рд╣реИ)ред рдЬрдм рдЖрдк рд▓рд┐рдЦрдирд╛ a' рдЖрдкрдХреЛ рдорд┐рд▓ ConjTranspose(a) рдФрд░ рдЗрд╕реА рддрд░рд╣ v.' рдХрд╛ рдЙрддреНрдкрд╛рджрди Transpose(a) ред


(3) рдЯреНрд░рд╛рдВрд╕рдлрд╝реЗрдХреНрдЯреЗрдб рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдЬреИрд╕реЗ:

*(v::Transpose{T,1}, w::AbstractVector) = dot(v.array,w)
*(v::AbstractVector, w::Transpose{T,1}) = [ v[i]*w[j] for i=1:length(v), j=1:length(w) ]

рдЖрджрд┐, рд╕рд╣рд┐рдд рд╕рднреА рднрдпрд╛рдирдХ At_mul_B рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рдЖрд▓рд╕реА (рд╕рдВрдпреБрдЧреНрдорд┐рдд) рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрд╕ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж Transpose рдФрд░ ConjTranspose рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдкреНрд░реЗрд╖рдг рдХреЗ рдмрд╛рдж рдирд┐рд░реНрдорд╛рдгред


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

julia> M = rand(3,4);

julia> M./M[1,:]
3x4 Array{Float64,2}:
 1.0       1.0       1.0      1.0
 0.516884  0.675712  2.11216  9.0797
 1.00641   0.726229  2.48336  4.38751

julia> M./M[:,1]
3x4 Array{Float64,2}:
 1.0  0.891557  0.561464  0.103968
 1.0  1.16552   2.29433   1.82633
 1.0  0.643353  1.38544   0.453257

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

julia> M./M[[1],:]
3x4 Array{Float64,2}:
 1.0       1.0       1.0      1.0
 0.516884  0.675712  2.11216  9.0797
 1.00641   0.726229  2.48336  4.38751

julia> M./M[:,[1]]
3x4 Array{Float64,2}:
 1.0  0.891557  0.561464  0.103968
 1.0  1.16552   2.29433   1.82633
 1.0  0.643353  1.38544   0.453257

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореМрдЬреВрдж рд╕рднреА рдкреНрд░рдореБрдЦ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ:

  1. рд╕рдордорд┐рдд рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ - рдЕрдиреБрдЧрд╛рдореА рдЖрдпрд╛рдо рдЕрдм рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИрдВред
  2. v'' === v ред
  3. v' == v ред
  4. v'w v рдФрд░ w рдХрд╛ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рд╣реИ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рд╕реНрдХреЗрд▓рд░ рд╣реИ, рди рдХрд┐ рдПрдХ-рддрддреНрд╡ рд╡реЗрдХреНрдЯрд░ред
  5. v*w' v рдФрд░ w рдХрд╛ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рд╣реИред
  6. M*v рдПрдХ рд╕рджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИред
  7. M*v' рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИред
  8. v'*M рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдб рд╡реЗрдХреНрдЯрд░ рд╣реИред
  9. v*M рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИред
  10. At_mul_B рдСрдкрд░реЗрдЯрд░реЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЪрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред

: +1: рд╕рднреА рдХреЛред рдореИрдВрдиреЗ # 6837 рдореЗрдВ 2 рдФрд░ 3 рдкрд░ рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХрднреА рдЦрддреНрдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред @simonbyrne рдиреЗ рднреА рдЗрд╕рдореЗрдВ рджреЗрдЦрд╛ред

+1 рднреАред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рдЬрдЧрд╣ рдкрд░ рдХрд╛рдлреА рд╕реБрд╕рдВрдЧрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ред

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

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

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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рдХрд╛рд░ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рдХрд░ рджреЗрдЧрд╛, рд╢рд╛рдпрдж рд╣рдорд╛рд░реЗ рдкрд╛рд╕ PermuteDims рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЖрд▓рд╕реА рдЖрдпрд╛рдо рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

@Stefan : рдпрд╣ рд╕рджрд┐рд╢ рдФрд░ 2-рдордВрдж рдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ
рдмреАрдЬрдЧрдгрд┐рддред рдмрд╕ рдХреБрдЫ рдЪреБрдиреМрддрд┐рдпрд╛рдВ:

  1. рдХрдИ-рдЖрдпрд╛рдо рд╕рд░рдгреА рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде рд╕рд░рдгреА A рдХреЗ рд▓рд┐рдП
    (i_1, i_2, ..., i_n), рдпрджрд┐ рдХреЛрдИ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ [i_2, i_3] рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдХрд░реЗ
    рдЖрдпрд╛рдо - рдпрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣реИрд╢ рдкрд░, [i_2, i_4] рдЖрдпрд╛рдоред рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
    рд╕рдВрдХреНрд░рдордг рдХреА рдирдИ рдкрд░рд┐рднрд╛рд╖рд╛?
  2. рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рд╕реНрд▓рд╛рдЗрд╕ рд╣реЛ
    рдЬрд╛рдирдмреВрдЭрдХрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдХреНрдпрд╛ рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рдЗрд╕ рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рдХреЛ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП
    рдЧрдгрдирд╛? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╕рд░рдгреА V рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
    рдЖрдпрд╛рдо (2,1), рдФрд░ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдП рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЛ рдЧреБрдгрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ
    рдЖрдпрд╛рдо (2,3,4)ред рдХреНрдпрд╛ рдЖрдк рдЖрдпрд╛рдо рдореЗрдВ v '* A рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
    (1,3,4)?

Thu рдкрд░, 16 рдЕрдХреНрдЯреВрдмрд░ 2014 рдХреЛ рджреЛрдкрд╣рд░ 2:31 рдмрдЬреЗ, рд╕реНрдЯреАрдлрди рдХрд░рдкрд┐рдВрд╕реНрдХреА рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

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

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/JuliaLang/julia/issues/4774#issuecomment -59425385ред

рдкреБрди: 2 рдФрд░ 3: рдЗрд╕ рдкрд░ рдПрдХ рдореЛрдЯрд╛ рдЫреБрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдореИрдВ рдЗрд╕ рдирддреАрдЬреЗ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рд╡реЗрдХреНрдЯрд░ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди AbstractVector рдХрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╕рдм рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (# 6837 рдкрд░ рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВ)ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЖрдЧреЗ рд░рд╛рд╕реНрддрд╛ Transpose{T,A} <: AbstractMatrix{T} , рдФрд░ рдПрдХ рдЕрд▓рдЧ Covector рдкреНрд░рдХрд╛рд░ (+ Conjugate рд╡реЗрд░рд┐рдПрдВрдЯ) рдХреЗ рд╕рд╛рде рд╣реИред

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

@simonbyrne , рдореИрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдЕрдиреБрднрд╡ рдХреЛ

рдореИрдВрдиреЗ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рд╣реИ (рдХрдо-рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдордВрдЪреЛрдВ рдореЗрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╢рд╛рдпрдж рдпрд╣рд╛рдВ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрд▓реНрд▓реЗрдЦ рд╕рд╣рди рдХрд░рддрд╛ рд╣реИ) рдХрд┐ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╕рднреА рдХреЛ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ _internally_, рдЕрдиреБрдХреНрд░рдордг рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдХреЗ, рдЬреЛ рд╕рдмрдПрдпрд░реНрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХ "рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдб рд░реЗрдВрдЬ" рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рдмрдПрд░реЗ рдХреЛ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдб рдЖрдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рддрдм рднреА рдЬрдм рдореВрд▓ рд╕рд░рдгреА Vector ред (рджреЗрдЦреЗрдВ https://github.com/JuliaLang/julia/blob/d4cab1dd127a6e13deae5652872365653a5f4010/base/subarray.jl#L5-L9 рдпрджрд┐ рдЖрдк рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЕрдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдХрд┐ рд╕рдмрдПрдпрд░реНрд░реЗрдЬрд╝ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ / рд╣реИрдВ)ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░рдгрдиреАрддрд┐ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдпрд╛ рдХрдард┐рди рдмрдирд╛рддреА рд╣реИред рдпрд╣ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдХрдо рддрд░реАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред (рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рд╣реИ рдЬреЛ _still_ Color Images рдореЗрдВ Color рд╕рдВрдХреНрд░рдордг рдХреЗ рдХрд╛рд░рдг рд▓рд╛рдкрддрд╛ рддрд░реАрдХреЛрдВ рдореЗрдВ рднрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдПрдХ рдЧреБрдб рдерд┐рдВрдЧ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред) рджреВрд╕рд░реА рдУрд░, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддреНрд░рд┐рдХреЛрдгреАрдп рд╡рд┐рд╡рд╛рдж рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВред рдЪрдпрдирд╛рддреНрдордХ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣рдж рддрдХ рдЕрдЬреАрдм рд╣реИ, рдЬреЛ @simonbyrne рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдП рдЧрдП рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд┐рд╕реА рднреА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рдЧрдд рд╣реЛрдЧрд╛ред

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

рджреЛ рд╡рд┐рдЪрд╛рд░:

  • рдпрджрд┐ A[[2], :] рдЬреИрд╕реЗ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХрд▓ рдЗрдВрдбреЗрдХреНрд╕ 2 рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдХреНрдЯрд░ рдмрдирд╛рдирд╛ рдереЛрдбрд╝рд╛ рд╡реНрдпрд░реНрде рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рд╣рдореЗрдВ рд╕рдорд╛рди рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП A[(2,), :] рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХрд╛? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдПрдХрд▓ рддрддреНрд╡ рд░реЗрдВрдЬ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ [2] рд░реВрдк рдореЗрдВ рд▓рдЧрднрдЧ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
  • рдЕрдЧрд░ рд╣рдореЗрдВ рдкреНрд░рд╕рд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЖрдпрд╛рдореЛрдВ рдХреЗ рдорд┐рд▓рд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╢рд╛рдпрдж рдХреБрдЫ рдЦрд╛рдорд┐рдпреЛрдВ рдХреА рддрд░рд╣ newaxis рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧред

рдореИрдВ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдордг, рдПрдХ рд▓рд╛ A[2;:] , рдПрдХ рдЕрд▓рдЧ рдЕрдиреБрдХреНрд░рдордг рдореЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рд╣рдореЗрд╢рд╛ A рдХреЗ рд╕рдорд╛рди рдЖрдпрд╛рдо рд╣реЛрддреЗ рд╣реИрдВ - рдЕрд░реНрдерд╛рдд рдХреЛрдИ рдПрдХрд▓ рдирд╣реАрдВ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдордг рдХрд░рддреЗ рд╣реИрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд░реИрдВрдХ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рддреНрд░реБрдЯрд┐ рд╣реИред рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХреБрдЫ рд╣реЛрдирд╛ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд▓рдЧрддреА рд╣реИред

рдореИрдВ @simonbyrne рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрдд рдХреА рдЧрдИ рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ Transpose рдпрд╛ Covector рдкреНрд░рдХрд╛рд░ AbstractArray рдХрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░ рднреА рдХреБрдЫ рд╣рдж рддрдХ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди, рдЬреЛ рдПрдХ рдмрдбрд╝рд╛ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдЧрд╛ рдФрд░ рд╢рд╛рдпрдж рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛) рдкреВрд░реЗ AbstractArray рдкрд░рд┐рд╡рд╛рд░ рдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ trans , рдЬреЛ :N , :T рдпрд╛ :C рдорд╛рди рд╣реЛ рд╕рдХрддреЗ рдереЗред рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЛ рдПрдХ-рдЖрдпрд╛рдореА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдорд╛рдирддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдзрд┐ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдЕрднреА рднреА рдмрдиреА рд░рд╣ рд╕рдХрддреА рд╣реИрдВред

рдПрди> 2 рдХреЗ рд╕рд╛рде рдПрди-рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдпрд╛ рддреЛ transpose рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ AbstractArray{3,Float64,trans} trans!=:N рдпрд╛ :T рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЬреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдкрдВрдХреНрддрд┐ рдХрд╛ рдЕрд░реНрде рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░рдгреА рдХреЗ transpose рд╕рднреА рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЙрд▓рдЯрдиреЗ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдЙрди рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдореНрдореЗрд▓рди рднреА рд╣реИ рдЬреЛ рдкреЗрдирд░реЛрдЬрд╝ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдиреЛрдЯреЗрд╢рди (http://en.wikipedia.org/wiki/Penrose_graphical_notation рджреЗрдЦреЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝рди рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди Cititanovi─З рджреНрд╡рд╛рд░рд╛ рдЙрджреНрдзреГрдд рдкреБрд╕реНрддрдХ рднреА рджреЗрдЦреЗрдВред

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

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдирдП рдореБрджреНрджреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рд╕реЛрдЪрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рдкреНрд░реЗрд╖рдг рд╕рдорд╕реНрдпрд╛ рд╣реИ ред

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

@ рддрд┐рд╡реЛрд╣ ,

  • A[2:2,:] рднреА рдЖрдпрд╛рдо рдмрдирд╛рдП рд░рдЦреЗрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрди рдпрд╛ рдХрд┐рд╕реА рдирдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  • newaxis рдЬреИрд╕рд╛ рдХреБрдЫ рдкреНрд░рдЦреНрдпрд╛рдд рд╕рдВрднрд╡ рд▓рдЧрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, # 8501 рдореЗрдВ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЕрдиреБрдХреНрд░рдордг рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рдкреНрд░рд╕рд╛рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рдП: рдПрдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреЛ рд╣рдореЗрд╢рд╛ 1 рд╕реЗ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдХреЛрдИ рднреА рдореВрд▓реНрдп рдЙрд╕ рд╕реНрд▓реЙрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рднрд░рддрд╛ рд╣реИред

рдпрджрд┐ 2 рдмрдЬрд╛рдп рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ, рддреЛ 2:2 рд╕рд╛рде рдореБрджреНрджрд╛ рджреЛрд╣рд░рд╛рд╡ рд╣реИред рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдк рд╣рдореЗрд╢рд╛ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗ рдПрдХ рд░реЗрдВрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╕реНрддрд╛рд╡: +1:ред

рдореБрдЭреЗ рдпрд╛рдж рджрд┐рд▓рд╛рдПрдВ рдХрд┐ рд╣рдо v' == v рдХреНрдпреЛрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

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

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

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо v = = v рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕реБрдВрджрд░ рд╣реИ
рдмрд╛рдХреАред рдХреНрдпрд╛ рд╣рдо рдПрдХ рд╕реНрддрдВрдн рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрджрд┐ рд╡реЗ рдмрд░рд╛рдмрд░ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ
рд╕рдорд╛рди рддрддреНрд╡ рд╣реИрдВ?

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди рдЖрдпрд╛рдо рд╣реИрдВред

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

рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рдХреЛ рдЬреЛрдбрд╝рдХрд░ convert 1-d рд╕реЗ 2-d рддрдХ

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

рдПрдХ рдмрд╛рдд рдЬреЛ рдореИрдВрдиреЗ # 8416 рдореЗрдВ рдиреЛрдЯ рдХреА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ sparsevec рдЕрднреА рдПрдХрд▓-рд╕реНрддрдВрдн CSC рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред рдПрдХ рдмрд╛рд░ 1-рдбреА рд╕реНрдкрд╛рд░реНрд╕ рд╡реЗрдХреНрдЯрд░ рдкреНрд░рдХрд╛рд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрдкрд╛рд░реНрд╕ рдЗрд╕реЗ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдПрдирдбреА рд╕реАрдУрдУ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрдкрдпреЛрдЧреА рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдордиреЗ рдЖрдПрдЧрд╛, рдмрд╕ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ)ред

рдмрд╕ рдпрд╣ рд╕рдм рдЕрдВрджрд░ рд▓реЗ рдЬрд╛рдирд╛ред рддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛?

A [1,:] * A * A [:, 1] # рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ * рдкрдВрдХреНрддрд┐ * рдореИрдЯреНрд░рд┐рдХреНрд╕ * рдХреЙрд▓рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ ???

рдЖрдк рдиреЗ рд▓рд┐рдЦрд╛

v'w v рдФрд░ w рдХрд╛ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рд╣реИ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рд╕реНрдХреЗрд▓рд░ рд╣реИ, рди рдХрд┐ рдПрдХ-рддрддреНрд╡ рд╡реЗрдХреНрдЯрд░ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ v '* w рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ?

рдореБрдЭреЗ рдбреЙрдЯ (x, y) рдХрд┐рд╕реА рднреА рджреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд▓реЗрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИ рдЬрд┐рдирдХреА рдЖрдХреГрддрд┐рдпрд╛рдБ рд╣реИрдВ (1, ..., 1, m, 1, ..., 1) рдФрд░
рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рд▓реМрдЯрд╛рдиреЗ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ x * y рдХреЛ рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдбреЙрдЯ (x, y) рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛
рдЬрдм рддрдХ x рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ рдФрд░ y рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИред

рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рд╣реЙрдЯ рдЖрдЗрдбрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рдареАрдХ рд╣реЛрдЧрд╛
A [:, 1,1] рдПрдХ рд╡реЗрдХреНрдЯрд░ рдерд╛ рдФрд░ A [1,:, 1] рдпрд╛ A [:, 1,:] рдХреЛрд╡реЗрдХреНрдЯрд░ рдереЗред
рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде рдЯреНрд░реЗрд▓ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд▓рдЧрддрд╛ рд╣реИ - рд╕реНрд▓реЙрдЯ, рдЬрд┐рд╕ рдкрд░ рдЖрдк
рдорд╛рдирдХ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдЯреЗрдВрд╕рд░ рдХреЛ рдЕрдиреБрдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ
1 (рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░) рдФрд░ 2 рд╕реНрддрдВрдн рд╡реИрдХреНрдЯрд░ред

рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ, рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдкрд╣рд▓реЗ рдЬреЛ рджреЛ рдкреНрд░рдореБрдЦ рдЪреБрдиреМрддрд┐рдпрд╛рдБ рдереАрдВ, рд╡реЗ рдереАрдВ:

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

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

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

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

рдХреНрдпрд╛ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдЖрдкрдХреЗ рдмрд┐рдВрджреБрдУрдВ (рдП) рдФрд░ (рдмреА) рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде _conflict_ рд╣реИ?

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдЯреЗрдирд░ рдХреЗ рд╕рдВрдХреБрдЪрди рдХреЛ matlabs рдорд╛рдирдХ рдЧреБрдгрди рдСрдкрд░реЗрдЯрд░ * рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП matlab рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рдзреНрдпрдо рд╕реЗред Numpy рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рд╣реИ (рдореИрдВ рдирд╛рдо рднреВрд▓ рдЧрдпрд╛) рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдпрд╛рдж рд╣реИ, рд╕реАрдорд┐рдд рд╣реИред

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

Op 19-okt.-2014 om 22:52 heeft thomasmcfish рд╕реВрдЪрдирд╛рдПрдВ @github.com het volgende geschreven:

рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ, рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдкрд╣рд▓реЗ рдЬреЛ рджреЛ рдкреНрд░рдореБрдЦ рдЪреБрдиреМрддрд┐рдпрд╛рдБ рдереАрдВ, рд╡реЗ рдереАрдВ:

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

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

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

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВред

рдпрд╣рд╛рдБ A рдХреЗ рдЕрдВрддрд┐рдо рд╕реВрдЪрдХрд╛рдВрдХ рдФрд░ B рдХреЗ рдкрд╣рд▓реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рд╕рдВрдХреБрдЪрди рд╣реИ
рдЧрдгрд┐рддрдЬреНрдЮ рдХреА рдмрд┐рдВрджреА рдХреА рддрд░рд╣

function contract(A,B)
   s=size(A)
   t=size(B)
   reshape(reshape(A, prod(s[1:end-1]), s[end]) *  reshape(B,t[1],prod(t[2:end])) , [s[1:end-1]... t[2:end]...]...)
end

рдореИрдВ рд╣рдореЗрд╢рд╛ reshapes, рдкрд░рдорд┐рдЯ рдФрд░ рд╢рд╛рдпрдж рдЬрдЯрд┐рд▓ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдХреБрдЪрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд░рд╣рд╛ рд╣реВрдВ
рдЙрдкрд░реЛрдХреНрдд рдХреА рддрд░рд╣ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдХреА рдЬрд░реВрд░рдд рд╣реЛрдиреЗ рдкрд░ рд╕рдВрдпреБрдЧреНрдорд┐рдд рдХрд░рддрд╛ рд╣реИ

рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд╕рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рдХреНрдпрд╛ рд╣реИ, рд╣рдо рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдХреНрдпреЛрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдХрд╛рд░реНрдпреЛрдВ?

рд╣рд╛рдБ рдмрд┐рд▓реНрдХреБрд▓ред рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ, рд╣рдо рд╕рднреА рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭреМрддрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ

  1. рдЕрдиреБрдХреНрд░рдордг рдореЗрдВ рдХрд┐рд╕ рдЖрдпрд╛рдо рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╣реИ? "APL рд╢реИрд▓реА" рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд▓рдЧрддреА рд╣реИред
  2. vector' рджреЗрддрд╛ рд╣реИ?

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

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

рдореЗрд░реА рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐

(2d рд╕рд░рдгреА рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рд▓реЗрдВ) * (2d рд╕рд░рдгреА) * (2d рд╕рд░рдгреА рд╕реЗ рдПрдХ рдХреЙрд▓рдо рд▓реЗрдВ)

рдЬрдм рддрдХ рд╣рдо рдирд╣реАрдВ рд▓реЗрдВрдЧреЗ рддрдм рддрдХ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛
(рдПрдХ рдкрдВрдХреНрддрд┐ рд▓реЗ) рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдпрд╛ рд╢рд╛рдпрдж рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ
рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд▓реЙрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд░реЗрдВред

@JeffBezanson , рдЬрдм рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпреЗ рдСрдкрд░реЗрд╢рди рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ, рддреЛ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд╕рд╛рде рджрд┐рдорд╛рдЧ рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ Mathematica рдХреЗ Dot рдлрд╝рдВрдХреНрд╢рдиред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд, рдкреНрд░рд▓реЗрдЦрд┐рдд рдФрд░ / рдпрд╛ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╣реИ; рдЗрд╕рд▓рд┐рдП рдпрд╣ рддрдХрдиреАрдХреА рд╕рдВрдШрд░реНрд╖ рдХрд╛ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдореБрджреНрджрд╛ рд╣реИред

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

A [1,:] * A * A [:, 1] # рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ * рдкрдВрдХреНрддрд┐ * рдореИрдЯреНрд░рд┐рдХреНрд╕ * рдХреЙрд▓рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ ???

рд╕рд╣реА - рдЖрдкрдХреЛ A[1,:]' * A * A[:,1] рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ v '* w рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ?

рд╣рд╛рдБ, v'w рдПрдХ рд╣реА рдЪреАрдЬрд╝ рд╣реИрдВред рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╕реНрддреЗ рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд╣реИрдХреНрд╕ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред

рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдпреЗ рдЗрддрдирд╛ рд╣реЙрдЯ рдЖрдЗрдбрд┐рдпрд╛ рд╣реИ ...

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

@thomasmcfish рдЖрдкрдХреЛ рдмрд╕ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ рд╣рд░ рдХреЛрдИ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рд╕реБрд╕рдВрдЧрдд, рдкреНрд░рд▓реЗрдЦрд┐рдд, рд╕реНрдкрд╖реНрдЯ рдЖрджрд┐ рд╣реЛрдВред рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЯреЗрдмрд▓ рдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡ рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡ рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдкреНрд░рднрд╛рд╡рд┐рдд рди рдХрд░реЗ, рдЬреЛ рдареАрдХ рд╣реИ --- рдлрд┐рд░ рдЬрдм рддрдХ рдпрд╣ рдХрд╣реАрдВ рдФрд░ рд╕реБрдзрд╛рд░ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рднреА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╢реБрджреНрдз рд╕реБрдзрд╛рд░ рд╣реИред

рд╕реАрдзреЗ рд╕реАрдзреЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ

рдпрджрд┐ A рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИ

| | рдХрд░рдВрдЯ | рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд | MATLAB |
| --- --- --- ---
| рдП * рдП [1 ,:] | рдирд╣реАрдВ | рд╣рд╛рдБ | рдирд╣реАрдВ |
| рдП * рдП [1 ,:] '| рд╣рд╛рдБ | рдирд╣реАрдВ | рд╣рд╛рдБ |
| рдП [:, 1] рдП | рдирд╣реАрдВ |
рдП [:, 1] ' рдП | рд╣рд╛рдБ | рд╣рд╛рдБ | рд╣рд╛рдБ |

рдФрд░ рдпрджрд┐ A рд╡рд░реНрдЧ рд╣реИ

| | рдХрд░рдВрдЯ | рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд | MATLAB |
| --- --- --- ---
| рдП * рдП [:, 1] | рд╣рд╛рдБ | рд╣рд╛рдБ | рд╣рд╛рдБ |
| рдП * рдП [:, 1] '| рдирд╣реАрдВ | рдирд╣реАрдВ | рдирд╣реАрдВ |
| рдП [1,:] рдП | рдирд╣реАрдВ |
рдП [1,:] ' рдП | рдирд╣реАрдВ | рд╣рд╛рдБ | рдирд╣реАрдВ |

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

рдХреНрдпрд╛ рдпрд╣ рдареАрдХ рд╣реЛрдЧрд╛ рдЕрдЧрд░

dot(x,y) рдФрд░ dot(x.',y) рдФрд░ dot(x,y.') рдФрд░ dot(x.',y.') рд╕рднреА рдПрдХ рд╣реА рд╕реНрдХреЗрд▓рд░ рджреЗрддреЗ рд╣реИрдВ?

рдпрд╛рдиреА ╬гс╡в рд╕рдВрдпреБрдЧреНрдорди (xс╡в) * yс╡в

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЛрдИ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рд╕реЛрдЪреЗ рдмрд┐рдирд╛ рдбреЙрдЯ (x, A * y) рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдПрдкреАрдПрд▓ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг @alanedelman рджреНрд╡рд╛рд░рд╛ рдЙрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдереЛрдбрд╛ рдкрд┐рдЫрдбрд╝рд╛ A[i; :] ?)?

рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдКрдкрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред

@alanedelman , рдореБрдЭреЗ dot рдЙрди рддрд░реАрдХреЛрдВ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВред

рдореИрдВ рд╣рдореЗрд╢рд╛ reshapes, рдкрд░рдорд┐рдЯ рдФрд░ рд╢рд╛рдпрдж рдЬрдЯрд┐рд▓ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдХреБрдЪрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд░рд╣рд╛ рд╣реВрдВ
рдЙрдкрд░реЛрдХреНрдд рдХреА рддрд░рд╣ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдХреА рдЬрд░реВрд░рдд рд╣реЛрдиреЗ рдкрд░ рд╕рдВрдпреБрдЧреНрдорд┐рдд рдХрд░рддрд╛ рд╣реИ

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

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

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

рд╕реНрдЯреАрдлрди рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП +1ред рдпрд╣ рдЕрддреНрдпрдВрдд рд╕реНрдкрд╖реНрдЯ рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд▓рдЪреАрд▓реЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рджреЗрдиреЗ рд▓рдЧрддрд╛ рд╣реИред рдПрдХ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ MATLAB рд╢реИрд▓реА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдЖрджреА, рдореИрдВ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдкрд╛рдКрдВрдЧрд╛ред

рдореИрдВ рдереЛрдбрд╝рд╛ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдБ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ ' рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИред рдпрджрд┐ v рдПрдХ рд╕рджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ, рддреЛ v' рдПрдХ transpose ред рдпрджрд┐ a 2d рд╕рд░рдгреА рд╣реИ, рддреЛ a' рдЕрдм transpose рднреА рд╣реЛрдЧрд╛ред рдпреЗ рджреЛрдиреЛрдВ рдЖрд╕рд╛рдиреА рд╕реЗ b рдХреЗ рдкрд╣рд▓реЗ рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде a рдХреЗ рдкрд╣рд▓реЗ рдЖрдпрд╛рдо рдХреЛ рдЕрдиреБрдмрдВрдзрд┐рдд рдХрд░рдХреЗ b' * a рд░реВрдк рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд╣рд┐рдд рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд▓рдЧрддреЗ рд╣реИрдВред

a' рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рдирд╣реАрдВ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ рдЬрдм a рдХрд╛ рдЖрдпрд╛рдо> 2 рд╣реИред рдореИрдВрдиреЗ рдХрд┐рд╕реА рдХреЛ рднреА рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЙрд▓рдЯрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ, рдФрд░ рдпрд╣ b' * a рдХреЗ рд╕рд╛рде b рдХреЗ рдкрд╣рд▓реЗ рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде a рдХреЗ рдкрд╣рд▓реЗ рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

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

рдпрд╣ рдПрдХ рдФрд░ рд╕рдВрдХреБрдЪрди рд╕рдорд╛рд░реЛрд╣ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬреИрд╕реЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ contract(a, b, 2, 3) рдХреЗ 2 рдЖрдпрд╛рдо рдЕрдиреБрдмрдВрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП a 3 рдХреЗ рд╕рд╛рде b ред

рд╡реИрд╕реЗ, dot(a,b) == a'*b рдЬрдм a рдФрд░ b рд╡реИрдХреНрдЯрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди dot(a,b) рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред рдХреНрдпрд╛ рд╣рдо dot(a,b) = trace(a'*b) ?

@ рд╣рд╕реНрддрд░реЗрдЦрд╛ рд╡рд┐рдЬреНрдЮрд╛рди : рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рд╣реВрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рдЪрд┐рдВрддрд╛ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрд░реЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ 2-5, 7, 8 рдФрд░ 10 рдХреЗ рдЧреБрдг рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛рдиреА рдЖрдк рдЗрд╕реЗ рдзрд╛рд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

  • v' рдПрдХ рдЖрдпрд╛рдореА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╡реЗрдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ
  • v'' === v
  • v' == v
  • v'w рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ
  • v*w' рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ
  • v'*M v' рддрд░рд╣ рд╣реА рд╕рдорд╛рди рд╣реИ
  • M' рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдирд╣реАрдВ, рд╢рд╛рдпрдж рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреГрд╢реНрдп

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

рдпрд╣ рдХрдо рд╕реЗ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ ' рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЙрд▓рдЯ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡реИрдХреНрдЯрд░ рдФрд░ рдХреЛрд╡реЗрдХреНрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдПрдХрдорд╛рддреНрд░ рд╕рд░рд▓ рдирд┐рдпрдо рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рджреЛрдиреЛрдВ рд╡реИрдХреНрдЯрд░, рдХреЛрд╡реЗрдХреНрдЯрд░, рдФрд░ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рджреЛ рдЖрдпрд╛рдореЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реИ (рдПрдХ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдЕрдиреБрдкрд╕реНрдерд┐рдд рджреВрд╕рд░рд╛ рдЖрдпрд╛рдо рд╣реИ рдФрд░ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдЕрдиреБрдкрд╕реНрдерд┐рдд рдкрд╣рд▓рд╛ рдФрд░ рд╡рд░реНрддрдорд╛рди рджреВрд╕рд░рд╛ рд╣реИ)ред

20 рдЕрдХреНрдЯреВрдмрд░ 2014 рдХреЛ, 09:05 рдмрдЬреЗ, toivoh рд╕реВрдЪрдирд╛рдУрдВ @ithub.com рдиреЗ рд▓рд┐рдЦрд╛:

рдпрд╣ рдХрдо рд╕реЗ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ 'рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЙрд▓рдЯ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡реИрдХреНрдЯрд░ рдФрд░ рдХреЛрд╡реЗрдХреНрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдПрдХрдорд╛рддреНрд░ рд╕рд░рд▓ рдирд┐рдпрдо рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рджреЛрдиреЛрдВ рд╡реИрдХреНрдЯрд░, рдХреЛрд╡реЗрдХреНрдЯрд░, рдФрд░ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рджреЛ рдЖрдпрд╛рдореЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реИ (рдПрдХ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдЕрдиреБрдкрд╕реНрдерд┐рдд рджреВрд╕рд░рд╛ рдЖрдпрд╛рдо рд╣реИ рдФрд░ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдЕрдиреБрдкрд╕реНрдерд┐рдд рдкрд╣рд▓рд╛ рдФрд░ рд╡рд░реНрддрдорд╛рди рджреВрд╕рд░рд╛ рд╣реИ)ред

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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк v рдХреЛ рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдХреЗ рдХреБрдЫ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдбрдмреНрд▓реВ = v рдХреЛ рджреЛрд╣рд░реЗ рд╕реНрдкреЗрд╕ V_ рдХреЗ рддрддреНрд╡ w рдореЗрдВ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ w рдЕрднреА рднреА рдПрдХ рд╕рджрд┐рд╢, рдпрд╛рдиреА рдПрдХ-рдЖрдпрд╛рдореА рд╡рд╕реНрддреБ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рдореИрдкрд┐рдВрдЧ рдХреЛ V рд╕реЗ V_ рддрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореАрдЯреНрд░рд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рдд w_i = g_ {i, j} v ^ jред рдЕрдм рдпрджрд┐ V рдПрдХ рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рд╕реНрдкреЗрд╕ рд╣реИ, рдЕрд░реНрдерд╛рдд рдорд╛рдирдХ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдореЗрдЯреНрд░рд┐рдХ рдХреЗ рд╕рд╛рде R ^ n, рддреЛ V * рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ V рд╕реЗ рдЖрдЗрд╕реЛрдореЛрд░реНрдлрд┐рдХ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдКрдкрд░реА рдпрд╛ рдирд┐рдЪрд▓реЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ (рд╕рд╣рд╕рдВрдпреЛрдЬрдХ рдпрд╛ рд╡рд┐рдкрд░реАрддрд╛рд░реНрдердХ) рдХреА рдХреЛрдИ рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП w_i = v_i_ = v ^ i = w ^ iред рдореИрдВ рдпрд╣ рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдХреЗрд╕ рдЬрд┐рд╕реЗ рдЬреВрд▓рд┐рдпрд╛ рдмреЗрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред (рдПрдХ рдЬрдЯрд┐рд▓ рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП, V * рдкреНрд░рд╛рдХреГрддрд┐рдХ рд░реВрдк рд╕реЗ рд╡рдмрд░, рд╕рдВрдпреБрдЧреНрдорд┐рдд рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░рд╛рдХреГрддрд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░рдг w_i = conj (v ^ i) рд╣реИред)

рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реНрддрдВрднреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реИрдХреНрдЯрд░ рдХреЛ рдирд┐рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдореНрдореЗрд▓рди, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛрд╣рд░реА рд╡реИрдХреНрдЯрд░, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдХ рдХреЗ рд░реВрдк рдореЗрдВ matrices (рдЬреЛ рдХрд┐ V \ otimes V_ рдХреЗ рддрддреНрд╡ рд╣реИрдВ) рдмреЗрд╣рдж рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рдЖрдк рднреА рдЖрдпрд╛рдореА рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡реИрд╕реЗ рд╣реА рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИ рд╕рд░рдгрд┐рдпрд╛рдБ, рдЕрд░реНрдерд╛рдд рдЙрдЪреНрдЪ рдХреНрд░рдо рд╡рд╛рд▓реЗ рдЯреЗрдВрд╕рд░ рдЙрддреНрдкрд╛рдж рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рддрддреНрд╡ред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдХ 'рдкрдВрдХреНрддрд┐ рд╕рджрд┐рд╢', рдпрд╛рдиреА рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╡рд╕реНрддреБ рдЬрд╣рд╛рдВ рдкрд╣рд▓реЗ рдЖрдпрд╛рдо рдХрд╛ рдЖрдХрд╛рд░ 1 рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ рдорд╛рдЯрд▓рдм / рдЬреВрд▓рд┐рдпрд╛ рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЯреЗрдВрд╕рд░ рдЙрддреНрдкрд╛рдж рд╕реНрдерд╛рди V1 \ otimes V2 рдХрд╛ рдХреБрдЫ рддрддреНрд╡ рд╣реИ, рдЬрд╣рд╛рдВ V1 рд╣реЛрддрд╛ рд╣реИред рдЖрд░ (рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдПрдХ рдЖрдпрд╛рдореА рд╕реНрдерд╛рди) рд╣реЛред рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рд╕рд┐рд░реНрдл рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдорддрд╡рд╛рджрд┐рдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рдордЯрд▓рдмред рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рджреЛ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЙрд▓рдЯ рджреЗрдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдореНрдореЗрд▓рди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред рдХреБрдЫ рдЙрдЪреНрдЪ рдХреНрд░рдо рд╡рд╛рд▓реЗ рдЯреЗрдВрд╕рд░ рдЙрддреНрдкрд╛рдж рд╕реНрдерд╛рди V1 \ otimes V2 \ otimes рд╕реЗ рдПрдХ рддрддреНрд╡ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ ... \ otimes Vn рдХреА рдХреЛрдИ рдЕрджреНрд╡рд┐рддреАрдп рдкрд░рд┐рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИред рд╕рднреА рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЙрд▓рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рд╡реЗрд╢рди рдкреЗрдирд░реЛрдЬрд╝ рджреНрд╡рд╛рд░рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪрд┐рддреНрд░рдордп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реЗ рдЙрдкрдЬрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реНрдкреЗрд╕ (V \ otimes V_) рдХреЛ рд╕реНрд╡рдпрдВ (V * \ otimes V * = V \ otimes V ) рдХреЛ

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

2) рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз 'рдФрд░ *ред рдЙрдЪреНрдЪрддрд░ рдЖрджреЗрд╢ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рддрд░реАрдХрд╛ рд╣реИ (рдЬреИрд╕реЗ рдорддрд▓рд╛рдм рдЖрджрд┐)ред

рдпрд╣ рдкрдж рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдореИрдВрдиреЗ рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд┐рдпрд╛ рдерд╛, рдЙрд╕рд╕реЗ рджреВрд╕рд░реА рддрд░рдл рд▓реЗ рд░рд╣рд╛ рд╣реИ

рджреЛрдиреЛрдВ рдУрд░ рд╕реЗ рд╡реНрдпрд╛рдкрдХрддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред

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

рд╡рд░реНрддрдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, рд╕рднреА рд╕рд░рдгрд┐рдпрд╛рдБ рдЕрдирдВрдд рдЖрдпрд╛рдореА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдирд┐рд╣рд┐рдд 1 рдХрд╛ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдПрдкреЛрд╕реНрдЯреНрд░реЛрдл рдСрдкрд░реЗрдЯрд░ 'рдХрд╛ рдорддрд▓рдм рдкрд╣рд▓реЗ рджреЛ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ,
рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдЖрдЬ рднреА рдореМрдЬреВрдж рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ

ndim (A) <= 2? interchange_first_two_dims: no_op

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

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

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

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

рдореИрдВрдиреЗ рдЗрд╕ рдкреВрд░реЗ рд╕реВрддреНрд░ рдХреЛ рдкрдврд╝рд╛ рд╣реИ рдФрд░ рдХрдИ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рджреЗрдЦрд╛ рд╣реИ - рдЬреЛ рдЕрдЪреНрдЫрд╛ рд╣реИ,
рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд╕рд┐рд░ рдХреЛ рдЪреАрдЬреЛрдВ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдирд╣реАрдВ рд╣реИрдВред

рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЕрдХреНрд╕рд░ рдирд╛рд░рд╛рдЬ рд╣реЛ рдЧрдпрд╛ рд╣реВрдВ

[рез реи рей] # ndims == реи
[рез,реи,рей] # ndims == рез
[рез; реи; рей] # ndims == рез

рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдпрд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рд╕рд┐рд░реНрдл рдПрдХ рд╕реЛрдЪрд╛ рдкреНрд░рдпреЛрдЧред рдЕрдЧрд░ рд╣рдо рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЦреЛ рдЬрд╛рдПрдЧрд╛ * рдХреНрдпрд╛ @alanedelman рдХреЗ рд▓рд┐рдП рдорди рдореЗрдВ рд╣реИ рдХреЗ рд▓рд┐рдП рдЗрд╕реА рддрд░рд╣ рдПрдХ рд╕рдВрдХреБрдЪрди рдСрдкрд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП '* ? рдХреНрдпрд╛ рдпрд╣ рд▓реАрдирд┐рдпрд░ рдмреАрдЬрдЧрдгрд┐рддреАрдп рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдореЗрдВ ' рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рдПрдЧрд╛ (рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЗрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛)? рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж w*v' рд╕реЗ рд░рд╣рд┐рдд рдХрд░ рджреЗрдЧрд╛, рдЬрд┐рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ outer(w,v) рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдПрдкреАрдПрд▓ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдорд╛рди рд░рд╣рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП A[1,:]*A*A[:,1] ' рд╕рд╛рде рдкрд╣рд▓реЗ рдСрдкрд░реЗрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ рднреА рдпрд╣реА рд╕реЛрдЪрд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ v * w рдПрдХ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ рд╕рд┐рд░реНрдл рд╕реНрдЯреЗрд░реЙрдпрдб рдкрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ
рд╡рд╣ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╡рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рдРрд╕реА рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЧрдгрд┐рддрдЬреНрдЮ рдХреА рдмрд┐рдВрджреА рдЗрддрдиреА рдмреБрд░реА рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИред

рдЗрд╕рд▓рд┐рдП рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ рдЕрдиреБрдмрдВрдз рдкрд┐рдЫрд▓реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди
рдЪрд╛рд╣реЗ рд╡рд╣ рдПрдкреЛрд╕реНрдЯреНрд░реЛрдл-рд╕реНрдЯрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ * рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдбреЙрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдореБрджреНрджреЗ рд╣реИрдВред

рдХреБрдЫ рдЕрд╕рдВрдмрджреНрдз рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ ...ред
рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдбреЙрдЯ-рд╕реНрдЯрд╛рд░ рдЬрд┐рд╕реЗ рд╕рднреА рд▓реЛрдЧ рдореВрд▓ рд░реВрдк рд╕реЗ рдбреЙрдЯ-рд╕реНрдЯрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВ (рдореБрдЭреЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛) рдерд╛
рдкреНрд╡рд╛рдЗрдВрдЯ-рд╕реНрдЯрд╛рд░ рд╣реЛрдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХреНрдпреЛрдВрдХрд┐ POINTWISE рдСрдкрд░реЗрдЯрд░ рдХреНрдпрд╛ рдерд╛
рдХреЗ рдХрд╣рдиреЗ рдХрд╛ рдорддрд▓рдм рдерд╛

рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЕрдХреНрд╕рд░ рдирд╛рд░рд╛рдЬ рд╣реЛ рдЧрдпрд╛ рд╣реВрдВ

[рез реи рей] # ndims == реи
[рез,реи,рей] # ndims == рез
[рез; реи; рей] # ndims == рез

рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдпрд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдореИрдВ рд╣рдореЗрд╢рд╛ "рд╣рдо рдХреЗрд╡рд▓ , рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ?"

рдЕрдЧрд░ рд╣рдо @alanedelman рдХреЗ рдорди рдореЗрдВ '' рдХреЗ рд╕рдорд╛рди рд╕рдВрдХреБрдЪрди рд╕рдВрдЪрд╛рд▓рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП * рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЦреЛ рдЬрд╛рдПрдЧреА?

рд╣рдо рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдЦреЛ рджреЗрдВрдЧреЗ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП (M*v)*v рд╡рд░реНрддрдорд╛рди dot(v,M*v) (рдПрдХ рдЕрджрд┐рд╢) рджреЗрдВрдЧреЗ, рдЬрдмрдХрд┐ M*(v*v) M.*dot(v,v) (рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕) рдХреЛ рджреЗрдВрдЧреЗред

рд╣рдо рд╕рд┐рд░реНрдл dot рдХреЛ рд╕рдВрдХреБрдЪрди рд╕рдВрдЪрд╛рд▓рдХ (рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕рд╣рдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ) рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ? рд╣рдо рдЙрдЪреНрдЪ рдЖрджреЗрд╢ рд╕рдВрдХреБрдЪрди рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ ddot(A::Matrix,B::Matrix) == AтЛЕтЛЕB == trace(A'*B) ред

рддреЛ рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗрдХреНрдЯрд░ рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЙрджреНрджреЗрд╢реНрдп рд╣рдореЗрдВ * рдХреА рдЧреИрд░-рд╕рдорд░реВрдкрддрд╛ рд╕реЗ рдмрдЪрд╛рдирд╛ рд╣реИ? @Alanedelman рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдХреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рд╡реИрдХреНрдЯрд░ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реБрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ( M*v*v' рдмрдирд╛рдо M*v'*v ), рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рдХреЛрд╖реНрдардХ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ( M*(v*v) рдмрдирд╛рдо (M*v)*v ) рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕рднреА рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рдмрд┐рдирд╛ (рдЬреИрд╕рд╛ рдХрд┐ @ рдЬреВрдереЛ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдЪреНрдЪ рдЖрджреЗрд╢

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ M*(v*v) рдФрд░ (M*v)*v рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджреЛрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИрдВ

*(M, v, v)

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

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

(рдЬреИрд╕рд╛ рдХрд┐ @ рдЬреВрдереЛ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛рдпрд╛ рдерд╛ рдХрд┐ рдЙрдЪреНрдЪ

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд╣рд╛ рд╣реИред

рдЕрдЧрд░ рд╣рдо @alanedelman рдХреЗ рдорди рдореЗрдВ '' рдХреЗ рд╕рдорд╛рди рд╕рдВрдХреБрдЪрди рд╕рдВрдЪрд╛рд▓рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП * рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЦреЛ рдЬрд╛рдПрдЧреА?

рд╣рдо рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдЦреЛ рджреЗрдВрдЧреЗ: рдЬреИрд╕реЗ (M_v) _v рд╡рд░реНрддрдорд╛рди рдбреЙрдЯ (v, M_v) (рдПрдХ рд╕реНрдХреЗрд▓рд░) рджреЗрдЧрд╛, рдЬрдмрдХрд┐ M_ (v_v) M._dot (v, v) (рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕) рджреЗрдЧрд╛ред

рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрдХреБрдЪрди рдСрдкрд░реЗрдЯрд░ (рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рд╛рд╣рдЪрд░реНрдп рдирд╣реАрдВ рд╣реИ) рдХреЛ рдбреЙрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ? рд╣рдо рдЙрдЪреНрдЪ рдХреНрд░рдо рдХреЗ рд╕рдВрдХреБрдЪрди рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ddot (A :: Matrix, B :: Matrix) == AтЛЕтЛЕB == рдЯреНрд░реЗрд╕ (A '* B)ред

рддрд░реНрдХ рдХреА рдЙрд╕ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде, рд╣рдореЗрдВ рдЕрднреА рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рдЧреБрдгрди рдСрдкрд░реЗрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдмрд╕ рдбреЙрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
A тИЩ рдмреА
A тИЩ рд╡реА
рд╡реА тИЩ рдП тИЩ рдбрдмреНрд▓реНрдпреВ
v тИЩ рд╡

рддреЛ рдпрд╣ рд╕рд┐рд░реНрдл @pwl рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ рд▓реЗрдХрд┐рди * рдХреЗ рд╕рд╛рде * рдбреЙрдЯ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЧрдгрд┐рдд рдореЗрдВ рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рдВрдкрд░рд╛рдПрдВ рд╣реИрдВред рдкрдВрдХреНрддрд┐ рдФрд░ рд╕реНрддрдВрдн рд╡реИрдХреНрдЯрд░ рдЧрдгрд┐рдд рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реИ, рдпрд╛ рд╣рдо рд░реИрдЦрд┐рдХ рдСрдкрд░реЗрдЯрд░реЛрдВ рдФрд░ рджреЛрд╣рд░реА рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЬрд╣рд╛рдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдСрдкрд░реЗрдЯрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЧреБрдгрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╡реЗрдХреНрдЯрд░ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ A (v) рдХреЗ рдмрдЬрд╛рдп A * v рдпрд╛ A? V)?

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

рдЗрддрдирд╛ рдЕрдЬреНрдЮрд╛рдиреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди M[1, :] рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, v' рдЬреИрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░?

рдореИрдВ рдЙрди рдЪреАрдЬреЛрдВ рдХреА рдЕрдкрдиреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдмрдЧ рдХрд░рддреЗ рд╣реИрдВ

1ред

[1 2 3] # ndims == 2
[1,2,3] # ndims == 1
[1;2;3] # ndims == 1

2ред
v=rand(3)
v' * v рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ ndims == 1 ( @StefanKarpinski рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ)
(v' * v)/( v' * v ) ndims ==2 (рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рддрдп рднреА рд╣реЛ рдЬрд╛рдПрдЧрд╛)

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

рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдб рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИ* рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд╣рд▓реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдЕрдВрддрд┐рдо рд╕реВрдЪрдХрд╛рдВрдХ рдХрд░рд╛рд░
рдФрд░ рдбреЙрдЯ (рдП, рдмреА, ..) рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЕрдВрддрд░реНрд╡рд┐рд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

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

рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рднреА, рдбреЙрдЯ рдХреЛ рдПрдХ рд╕реНрдХреЗрд▓рд░ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@ brk00 , рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЙрдЪреНрдЪ-рдЖрдпрд╛рдореА / рдЙрдЪреНрдЪ-рд╢реНрд░реЗрдгреА рдХреЗ рд╕реНрд▓рд╛рдЗрд╕ рддрдХ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдП (рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡ рдЖрдпрд╛рдореА рдирд╛рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ) рд╕рд░рдгрд┐рдпрд╛рдБред

рдЗрддрдирд╛ рдЕрдЬреНрдЮрд╛рдиреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ M [1,:] рдХреЛ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛, рдЬреИрд╕реЗ рдХрд┐ 'v?

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

@ рдЬреВрдереЛ , рдореБрдЭреЗ рдЦреЗрдж рд╣реИ, рдореБрдЭреЗ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ

@alanedelman :

рдореИрдВ рдЙрди рдЪреАрдЬреЛрдВ рдХреА рдЕрдкрдиреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдмрдЧ рдХрд░рддреЗ рд╣реИрдВ

[рез реи рей] # ndims == реи
[рез,реи,рей] # ndims == рез
[рез; реи; рей] # ndims == рез

рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЪрд▓реЛ рдЖрдЧреЗ рдкрд╛рдиреА рдирд╣реАрдВ рдХреАрдЪрдбрд╝ред

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

рдпрд╣ рднреА рдореВрд░реНрдд рд╣реИред рдЖрдЗрдП рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВред


рд╡рд░реНрддрдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, рд╕рднреА рд╕рд░рдгрд┐рдпрд╛рдБ рдЕрдирдВрдд рдЖрдпрд╛рдореА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдирд┐рд╣рд┐рдд 1 рдХрд╛ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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


рдЙрди рдЪреАрдЬреЛрдВ рдХреА рд╕реВрдЪреА рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рджрд░реНрдкрдг (рдПрдХ рд╕рдмрд╕реЗрдЯ) рдореЗрд░реЗ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдЕрдЪреНрдЫреЗ рдЧреБрдг рд╣реИрдВред рдЕрд░реНрдерд╛рддреН:

  1. рдЕрд╕рдордорд┐рдд рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ - рдЕрдиреБрдЧрд╛рдореА рдЖрдпрд╛рдо рд╡рд┐рд╢реЗрд╖ рд╣реИрдВред
  2. v'' !== v - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ v'' != v ; рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╕рдорд╛рди рд░реИрдВрдХ рдирд╣реАрдВ рд╣реИред
  3. v' != v - рд╕рдорд╛рди рд╕реМрджрд╛ред
  4. v'w рдПрдХ-рддрддреНрд╡ рд╡реЗрдХреНрдЯрд░ рд╣реИ, рд╕реНрдХреЗрд▓рд░ рдирд╣реАрдВред
  5. рд╣рдореЗрдВ A*_mul_B* рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрдм рддрдХ рдХреА рд╕рдмрд╕реЗ рднрдпрд╛рдирдХ рдЪреАрдЬ рд╣реИред

рдореИрдВ v' == v рдмрд┐рдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░, @StefanKarpinski рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ: рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпреЗ рд╕рдорд╛рди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рдВ, рд╡реЗ рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╡реЗ рдЕрднреА рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ: рдореИрдЯреНрд░рд┐рд╕реЗрд╕ M рдФрд░ M' рднреА isomorphic рд╣реИрдВ рдлрд┐рд░ рднреА рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдХрднреА рднреА рдЙрдирдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред (рдЬрдм рддрдХ рдХрд┐ рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рди рд╣реЛрдВ)ред

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

+1 @simonbyrne рдХреЗ рд▓рд┐рдП, @StefanKarpinski рдХреЗ

@Simonbyrne рд╕реЗ рднреА рд╕рд╣рдордд рд╣реИрдВред

рд╣рд╛рдВ, v рдФрд░ v' рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╛рди рдЖрдХрд╛рд░ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднрд┐рдиреНрди рд╕рд░рдгреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдорд╛рди рдорд╛рдирддреЗ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП speye(5) == eye(5) ред рдХреЛрд╡рдбрд╝ рд╡рд┐рд░рд▓ рд╕реЗ рдЕрд▓рдЧ рдХреНрдпреЛрдВ рд╣реИ?

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

all(A .== B)

рдЕрдЧрд░ рдПрдХ рд╕рджрд┐рд╢ рдФрд░ рдПрдХ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рд╣реИ рддреЛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ size(v' рдХреНрдпрд╛ рд╣реИ? рдпрджрд┐ рдЙрддреНрддрд░ (length(v),) рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ v == v' рд╕рддреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ size(v') == (1,length(v)) рддреЛ рдпрд╣ рд╢рд╛рдпрдж рдЧрд▓рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрдХреАрдирди v' == reshape(v,1,length(v)) рд╕рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ v' рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡реЗрдХреНрдЯрд░ рдпрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рддреЗрдЬреА рд╕реЗ рдореИрдВ рдЖрд╢реНрд╡рд╕реНрдд рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред

Covectors рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рдгрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ "рдЖрдХрд╛рд░" рдХреНрдпрд╛ рд╣реИред рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ *(::Covector, ::Vector) рдПрдХ рд╕реНрдХреЗрд▓рд░ рд╣реИ: рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рднреА AbstractVector рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред

рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЬрдЯрд┐рд▓ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реЛрдЧреА: рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ v' == v рдпрд╛ v.' == v ?

@simonbyrne :

рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ *(::Covector, ::Vector) рдПрдХ рд╕реНрдХреЗрд▓рд░ рд╣реИ: рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рднреА AbstractVector рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред

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

рд╢рд╛рдпрдж рд╕рд╣реА рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ v 'рдХреЛ рдПрдХ рдЕрдЬреАрдм рд╡реЗрдХреНрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рдЕрдЬреАрдм рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПред

рддрд░рд╣, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ AbstractMatrix рдХрд╛ рдПрдХ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ AbstractCovector рдПрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ length(::Covector) рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ size рдкрджреНрдзрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

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

20 рдЕрдХреНрдЯреВрдмрд░ 2014 рдХреЛ, 17:39 рдкрд░, рд╕рд╛рдЗрдорди рдмрд╛рдпрд░рди рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВ v_ == v рдмрд┐рдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЬреНрдпрд╛рджрд╛рддрд░

рдЗрд╕ рдХрдерди рдХрд╛ рдХрд┐рд╕реА рднреА рд╕реНрддрд░ рдкрд░ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

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

V рд╕реЗ V * рддрдХ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмрд┐рд▓рд┐рдирд┐рдпрд░ рдлреЙрд░реНрдо V x V -> рд╕реНрдХреЗрд▓рд░, рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж / рдореАрдЯреНрд░рд┐рдХ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рддреЛ phi_i = g_ {i, j} v ^ j рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рд╡реИрдХреНрдЯрд░ рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрд╣рд░реА рд╡реИрдХреНрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд V рдореЗрдВ V рдореЗрдВ рдХреБрдЫ ph = v 'рдореЗрдВ v рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддреЛ рдЖрдк рдорд╛рди рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдорд╛рдирдХ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЗрдирд░ рдкреНрд░реЛрдбрдХреНрдЯ (g_ {) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ i, j} = delta_ {i, j})ред рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЖрдк рд╕рд╣рд╕рдВрдпреЛрдЬрдХ рдФрд░ contravariant рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдорд┐рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЯреЗрдирд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ V_ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ рдмрди рдЬрд╛рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, w_i = v ^ i = v_i = w ^ i, рдЗрд╕рд▓рд┐рдП рд╣рд╛рдВ, v == w рдФрд░ рдореИрдВ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрди рджреЛрдиреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред

3) рдСрдкрд░реЗрд╢рди "рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝" рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рд╡реА -> рдбрдмреНрд▓реНрдпреВ (http://en.wikipedia.org/wiki/Dual_space#Transpose_of_a_linear_map) рд╕реЗ рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ A: V-> W рдХрд╛ рдкрд╛рд░рдЧрдорди W ^-> V_ рд╕реЗ рдПрдХ рдирдХреНрд╢рд╛ A ^ T рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ W_0 рдореЗрдВ рд╡реИрдХреНрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ V_ рдХреЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдЗрд╕рдХрд╛ рдЕрд░реНрде V_ covectors рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ A рдХреЗ A ^ T рдХреЗ рдкрд╛рд░рдЧрдорди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ A ^ T рдХреЛ W * рдореЗрдВ рд╡реИрдХреНрдЯрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрддрдВрднреЛрдВ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ рдФрд░ рдЬреЛ рд╕реНрддрдВрдн рдЗрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЖрддрд╛ рд╣реИ, рд╡рд╣ V рдХреЗ рдПрдХ covector рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рддреЛ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рджреЛрд╣рд░реА рд╡реИрдХреНрдЯрд░ рдХреА рдкрд╣рдЪрд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред

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

Matlab / Engineering рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдЪреНрдЪ рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рдо рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЙрдЪреНрдЪ рдХреНрд░рдо рд╕рд░рдгреА рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЯреЗрдВрд╕рд░ рдЙрддреНрдкрд╛рдж рд╕реНрдерд╛рди V1 \ otimes V2 \ otimes ... \ otimes VN рдХрд╛ рдПрдХ рддрддреНрд╡ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ V1 x V2 x ... x VN рдкрд░ рдЕрднрд┐рдирдп рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдмрд╣реБрд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рдЯреЗрдирд░ рдЙрддреНрдкрд╛рдж рдЕрдВрддрд░рд┐рдХреНрд╖ V1 \ otimes V2 \ otimes рд╕реЗ рд░реИрдЦрд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИред тАж \ Otimes VN рджреВрд╕рд░реЗ рдЯреЗрдирд░ рдЙрддреНрдкрд╛рдж рд╕реНрдерд╛рди W1 \ otimes W2 \ otimesтАж \ otimes WM? рджреНрд╡рд┐-рдЖрдпрд╛рдореА рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдВрдХрд▓реНрдк рд╣реИред рд▓реАрдирд┐рдпрд░ рдореИрдкреНрд╕ A: V-> W рдХреЗ рд╕рд╛рде W \ otimes V_ рдореЗрдВ рд╡реИрдХреНрдЯрд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛, рд░реИрдЦрд┐рдХ рдореИрдк рд╕реЗрдВрд╕ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реЗрд╢рди рдЗрд╕ рдЯреЗрдВрд╕рд░ рдкреНрд░реЛрдбрдХреНрдЯ рд╕реНрдкреЗрд╕ рдореЗрдВ рд╕реНрдкреЗрд╕ рдХреЛ рдЙрд▓рдЯрдиреЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, A ^ i_j -> A_j ^ i рд╕реЗ A ^ T рд╕реЗ V_ \ otimes рдореЗрдВред W = V * \ otimes W _, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ W_ -> V рд╕реЗ рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░ рд╣реИ ред рдЙрдЪреНрдЪрддрд░ рдСрд░реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЙрд▓рдЯрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪрд┐рддреНрд░рдордп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИред

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

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

рд╕рд╡рд╛рд▓? рдЖрдЬреНрдЮрд╛ рджреЗрдирд╛ covectorред рдПрдлрдПрдлрдЯреА (рд╕реА) рдХреНрдпрд╛ рд╣реИ?

рдЙрддреНрддрд░: fft (c ')' рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдо рд▓реЗрддрд╛ рд╣реИ
рдЬрдм рдПрдлрдПрдлрдЯреА (рд╕реА) рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрдиреЗ рд╕реЗ рд╕рд┐рд░реНрдл рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ
(рдпрд╛ рд╢рд╛рдпрдж рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЕрдЧрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ ??)

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рд╣реИрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Base рдореЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЪреАрдЬрд╝ рдкрд░ рд╕рдВрджреЗрд╣ рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реИ:

  • рдХреЛрд╡реЗрдХреНрдЯрд░ рд╕рдордп рдПрдХ рдФрд░ рд╡реЗрдХреНрдЯрд░
  • covector рдмрд╛рд░ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕
  • рдПрдХ рд╡реЗрдХреНрдЯрд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд╡реЗрдХреНрдЯрд░ '

рдЕрдм рдХреЗ рд▓рд┐рдП рдХреЛрд╡реЗрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП +1 рдХрд╛ рдиреНрдпреВрдирддрдо рд╕рдорд░реНрдердиред

рд╣рд╛рдБ, +1ред

рддреЛ рдЕрдЧрд░ рдореИрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдмрд╣реБрдд рдпрдХреАрди рд╣реИ рдХрд┐ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
рдорд╛рдирджрдВрдб (рдХреЛрд╡реЗрдХреНрдЯрд░, рдХреНрдпреВ) рдорд╛рдирджрдВрдб (рд╡реЗрдХреНрдЯрд░, рдкреА) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ 1 / p + 1 / q = 1
рдзрд╛рд░рдХ рдЕрд╕рдорд╛рдирддрд╛ рд╕реЗ, рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрдЧреАред :-)

рдкреА = рдХреНрдпреВ = 2 рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рдпрд╣ рд╕рдм рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдЧрд╛:

norm(c::Covector, q::Integer) = norm(c.vector, q/(1-q))

рдЖрдк рд╢рд╛рдпрдж q == 0 рдФрд░ q == 1 рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдБрдЪ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ q == 1 рдареАрдХ рд╣реЛрдЧрд╛

рдореЗрдб venlig hilsen

рдПрдВрдбреНрд░рд┐рдпрд╛рд╕ рдиреИрдХ

2014-10-22 15:19 GMT-04: 00 рд╕реНрдЯреАрдлрди рдХрд░рдкрд┐рдВрд╕реНрдХреА рд╕реВрдЪрдирд╛рдПрдВ @github.com:

рдпрд╣ рд╕рдм рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдЧрд╛:

рдорд╛рдирджрдВрдб (c :: Covector, q :: Integer) = рдорд╛рдирджрдВрдб (c.vector, q / (1-q))

рдЖрдк рд╢рд╛рдпрдж q == 0 рдФрд░ q == 1 рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдБрдЪ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/JuliaLang/julia/issues/4774#issuecomment -60139762

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

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

рдЬреНрдпрд╛рджрд╛ рдареАрдХ:

  • V = V(F) рдФрд░ W = W(F) рддрддреНрд╡реЛрдВ рдХреЗ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рдХреНрд╖реЗрддреНрд░ рдкрд░ F рд╡реЗрдХреНрдЯрд░ рд╣реЛ
  • v рдФрд░ w рд╡реИрдХреНрдЯрд░ рдЬреЛ рдХреНрд░рдорд╢рдГ V рдФрд░ W рддрддреНрд╡ рд╣реИрдВред
  • <.,.> рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реЛ рдЬреИрд╕реЗ рдХрд┐ <.,.> : V ├Ч W тЖТ F рдФрд░ v, w тЖж <v, w>

v рдЕрдиреБрд░реВрдк рдХреЛрд╡реЗрдХреНрдЯрд░ рд░реИрдЦрд┐рдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ v' : W тЖТ F рд╣реИ рдЬреЛ рдорд╛рдирдЪрд┐рддреНрд░рдг w тЖж <v, w> ред

рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ v' рдПрдХ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди рдХрд╛ рдПрдХ рддрддреНрд╡ рд╣реИ V* рдЬреЛ рдХрд┐ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди _is_ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред

рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди-рд╡рд╛рдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреА рдХрд░реА рдХреЗ рд░реВрдк рдореЗрдВ v' рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╡рд┐рд╡рд░рдг рд╣реИ, рдФрд░ V* рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИрдВ рдЬреЛ рдПрдХ-рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ рд╡рд┐рднрд┐рдиреНрди рдкрд╣рд▓реЗ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд░реАред

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, v'[1] рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП v' рдХреЛ рдХреИрдиреЛрдирд┐рдХрд▓ рдЖрдзрд╛рд░ рд╡реЗрдХреНрдЯрд░ eтВБ = (1, 0, ...) , рддрд╛рдХрд┐ v'[1] рдХреЛ <v, eтВБ> рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрдХреНрд░рдорд┐рдд рд╢рдмреНрджрд╛рд░реНрде рдЬреИрд╕реЗ 1:n рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ v' рдХреЛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рдХреНрд╖реЗрдкрдг рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдВрдн рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╣рд┐рдд рдЖрдзрд╛рд░ рд╡реЗрдХреНрдЯрд░ рд╣реЛрддрд╛ рд╣реИред

# 987 рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЛрд╡реЗрдХреНрдЯрд░реНрд╕ рдХреЗ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдПрдХ рдФрд░ рдХрд╛рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреЛрд╡реЗрдХреНрдЯрд░ AbstractVector s рдирд╣реАрдВ рд╣реИрдВ: рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ v' рд╕рд╕реНрддреЗ рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдм рдорд╣рдБрдЧреА рдорд╛рддреНрд░рд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ <v, eтВБ> рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдЖрдк рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ <v, w> = v'*A*w рд╕рдВрдмрдВрдз рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреБрдХреНрд░рдордг рдХреА рд▓рд╛рдЧрдд matvec рдЙрддреНрдкрд╛рдж A*w (рдпрд╛ A'*v ) рдХрд╛ рд╡рд░реНрдЪрд╕реНрд╡ рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реИ AbstractVector рд░реВрдк рдореЗрдВ рдЕрд░реНрд╣рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рд╣рдо DFTs рдФрд░ рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ ... рдпрд╣ рдЖрдЬ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреЛ рдкрд╛рд░ рдХрд░ рдЧрдпрд╛

рдпрджрд┐ f рдПрдХ рд╕рджрд┐рд╢ рдХреА рдПрдХ рд╕рдорд╛рд░реЛрд╣ рд╣реИ рдФрд░ рдПрдХ рдЕрджрд┐рд╢ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ diff(f) рдПрдХ рд╕рдорд╛рд░реЛрд╣ рд╣реИ рдХрд┐ рдПрдХ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рд╣реЛрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Vector рдФрд░ рдПрдХ рдХрд╛ рдЙрддреНрдкрд╛рджрди Covector рддрд╛рдХрд┐ f(x) ~= f(x0) + diff(f)(x0) * (x-x0) ред рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдЗрдирдкреБрдЯ рдореЗрдВ рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкрд░рд┐рд╡рд░реНрддрди рджрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдПрдХ рд░реИрдЦрд┐рдХ рд╕рдиреНрдирд┐рдХрдЯрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЗрдирдкреБрдЯ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ, рддреЛ рдврд╛рд▓ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рдРрд╕рд╛ рдорд╣рд╕реВрд╕ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЗрдирдкреБрдЯ рдХреЗ рд╕рднреА рдЖрдпрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрдмрдВрдз рдХрд░рддрд╛ рд╣реИред

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

рдореЗрд░рд╛ рдкреЗрдЯ рдХрд╣рддрд╛ рд╣реИ "рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рд╡реЗрдХреНрдЯрд░-рдЗрдирдкреБрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдврд╛рд▓ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рд╣реИ" рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдореЗрдВ рд╕рд╣реА рдЪреАрдЬрд╝ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реИ:

рдХреЛрд╡реЗрдХреНрдЯрд░ рд╕рдордп рдПрдХ рдФрд░ рд╡реЗрдХреНрдЯрд░
covector рдмрд╛рд░ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕
рдПрдХ рд╡реЗрдХреНрдЯрд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд╡реЗрдХреНрдЯрд░ '

рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЖрдкрдиреЗ рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рднрдпрд╛рдирдХ рдкрджреЛрдВ рд╕реЗ, рдЗрд╕ рдкрд░ +1 рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ред

рдлрд┐рд░ рднреА, рдЗрд╕ рдкрд░ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгреА:

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

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

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

рдЬреНрдпрд╛рджрд╛ рдареАрдХ:

V = V (F) рдФрд░ W = W (F) рддрддреНрд╡реЛрдВ F, рдХреЗ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░ рдкрд░ рд╡реЗрдХреНрдЯрд░ рд╣реЛред
v рдФрд░ w рд╡реИрдХреНрдЯрд░ рд╣реЛрдВрдЧреЗ рдЬреЛ рдХреНрд░рдорд╢рдГ V рдФрд░ W рдХреЗ рддрддреНрд╡ рд╣реИрдВ,
<ред;>> рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реЛ рдЬреИрд╕реЗ рдХрд┐ <ред;>> рд╡реА ├Ч рдбрдмреНрд▓реНрдпреВ тЖТ рдПрдл рдФрд░ рд╡реА, рдбрдмреНрд▓реНрдпреВ be
рдпрд╣ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрд╕рдВрднрд╡ рд╣реИ, рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╡реА рдФрд░ рдбрдмреНрд▓реНрдпреВ рдХреЗ рдмреАрдЪ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рд╕рдХрд╛рд░рд╛рддреНрдордХ рдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ?
V рдХреЗ рдЕрдиреБрд░реБрдк covector рд░реИрдЦрд┐рдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ v ': W тЖТ F рд╣реИ рдЬреЛ рдореИрдкрд┐рдВрдЧ w the рдХрд░рддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ v 'рдПрдХ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди V * рдХрд╛ рдПрдХ рддрддреНрд╡ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред

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

# 987 рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЛрд╡реЗрдХреНрдЯрд░реНрд╕ рдХреЗ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдПрдХ рдФрд░ рдХрд╛рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреЛрд╡реЗрдХреНрдЯрд░ рдПрдмреНрд╕рдЯреНрд░реИрдХреНрдЯрд░реНрд╕ рдирд╣реАрдВ рд╣реИрдВ: рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЗрдВрдбреЗрдХреНрд╕ v рдХреЗ рд╕рд╕реНрддреЗ рдореЗрдВ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдм рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдорд╣рдВрдЧреА рдорд╛рддреНрд░рд╛ рдХрд┐рддрдиреА рд╣реИ= v'_A_w рдФрд░ рдЕрдиреБрдХреНрд░рдордг рдХреА рд▓рд╛рдЧрдд рдХрд╛ matvec рдЙрддреНрдкрд╛рдж A_w (рдпрд╛ A'_v) рдкрд░ рд╣рд╛рд╡реА рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ AbstractVector рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд░реНрд╣рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИред

рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд▓реВрдк рддрд░реНрдХ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рд░реИрдЦрд┐рдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ (рдХреЛрд╡реЗрдХреНрдЯрд░) рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рдмрд┐рдирд╛ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рднреА рдореМрдЬреВрдж рд╣реИред рджреВрд╕рд░реЗ, рдЬрдм рдореАрдЯреНрд░рд┐рдХ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдирд┐рд╢реНрдЪрд┐рдд рдореИрдЯреНрд░рд┐рдХреНрд╕ рдП рд╣реИ, рддреЛ рд╡реЗрдХреНрдЯрд░ рд╡реА рд╕реЗ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рддрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ v'_A рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ v 'рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рдирдХ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдорд╛рдирджрдВрдб (рдорд╣рд╛рдирдЧрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкрд╣рдЪрд╛рди рдХреЗ рд╕рд╛рде) рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ v рд╕реЗ рдПрдХ рдореИрдкрд┐рдВрдЧ рд╕реЗ рдЕрд▓рдЧ рд╣реИ? рдирд╣реАрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╡реИрдХреНрдЯрд░ рдореЗрдВ рдХреЙрдиреНрдЯреНрд░реИрд╡рд┐рд░рд┐рдПрдВрдЯ (рдЕрдкрд░) рдЗрдВрдбреЗрдХреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХреЛрд╡реЗрдЯрд░реНрд╕ рдореЗрдВ рд╕рд╣рд╕рдВрдпреЛрдЬрдХ (рдирд┐рдЪрд▓рд╛) рдЗрдВрдбреЗрдХреНрд╕ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореЗрдЯреНрд░рд┐рдХ рдП рдореЗрдВ рджреЛ рдХрдо рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реЛрддрд╛ рд╣реИред= v ^ i A_ {i, j} v ^ jред рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдореИрдкрд┐рдВрдЧ рдХреЛ phi_j = v ^ i A_ {i, j} рдХреЗ рд░реВрдк рдореЗрдВ (phi covector рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрдХреНрдЯрд░ v рдХреЗ рд░реВрдк рдореЗрдВ) рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рдзреНрдпрд╛рди рджреЗрдВ, рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реАрдирд┐рдпрд░ рдСрдкрд░реЗрдЯрд░ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдЬреЛ рдХрд┐ рдлреЙрд░реНрдо ^ ^ i = O ^ i_j v ^ j) рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ v'_A рдЕрднреА рднреА рдКрдкрд░реА рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реИ, рдпрд╣ рдЕрднреА рднреА рд╡рд╣реА рд╡реЗрдХреНрдЯрд░ рд╣реИред

рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрд┐рди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдореИрдВ рдКрдкрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЕрдХреНрд╕рд░ v 'рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрдм рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВред рд╡реЗ рдмрд╕ рдЙрди рднрд╛рд╡реЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡реИрдХреНрдЯрд░ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджрдпрд╛ v ^_A_w рдХреЗ рд░реВрдк рдореЗрдВ v ^ i A_ {i, j} w ^ j рдЬреИрд╕реЗ рдХреБрдЫ рдкрд░рд┐рдЪрд┐рдд рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рднреАрддрд░ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдорд╛рдирдХ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж v'w рдХреЛ v ^ i delta_ {i, j} w ^ j рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ convectors рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдЪрд┐рдд рдХреЛрд╡реЗрдХреНрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреЛ рд╕реНрдХреЗрд▓рд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдХреБрдЫ рдЫрд┐рдкреЗ рд╣реБрдП рд░реВрдк рдирд╣реАрдВ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реАрдорд┐рдд рд╣реИрдВред рд▓реЛрдЧ рд╕рд┐рд░реНрдл рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП v рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдЖрджрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреЛрд╡реЗрдХреНрдЯрд░ рдирд╣реАрдВред

рдПрдХ рддрд░рдл, рдЧреБрдгрди рдХреА рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рдереА рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдЯреАрдлрди рдХреЗ рдореВрд▓ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ v = = v рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ * рд╕рд╛рд╣рдЪрд░реНрдп рд╣реИ, рднрд▓реЗ рд╣реА v 'рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рд╣реИ рдЬрд┐рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдбреЙрдХреНрдЯрд░реЛрдВ рд╕реЗ рдкрд╣рдЪрд╛рдирд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ:
A_ (v'_w) рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ
(A_v ') _ w рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИ

рд╕реНрдХреЗрд▓рд░ рд╡реИрд▓реНрдпреВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЙрд╡реЗрдЯрд░реНрд╕ рдХреЗ рдЙрдЪрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЕрд░реНрдерд╛рдд рдмрд┐рдирд╛ рддрд░реНрдХ рдХреЗ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдПрдХ рдХреЙрд╡реЗрдЯрд░ рд╣реИред рд╕рдВрдпреБрдЧреНрдо рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдЬреИрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрди рдХреЛрд╡реЗрдЯрд░реЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рд╡реИрдХреНрдЯрд░ рдореЗрдВ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореАрдЯреНрд░рд┐рдХ (рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реНрдпреБрддреНрдХреНрд░рдо рдореАрдЯреНрд░рд┐рдХ) рд╣реИред рдЕрдиреНрдпрдерд╛ x ^ i (рд╕реНрдерд┐рддрд┐ рд╡реЗрдХреНрдЯрд░) + рдЕрд▓реНрдлрд╛ g_i (рдврд╛рд▓) рдЬреИрд╕реЗ рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рд╣реИ x ^ i + Alpha delta ^ {i, j} g_j рдЬрд╣рд╛рдВ рдбреЗрд▓реНрдЯрд╛ ^ {i, j} рдЙрд▓рдЯрд╛ рдореАрдЯреНрд░рд┐рдХ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдЧреИрд░-рддреБрдЪреНрдЫ рдореАрдЯреНрд░рд┐рдХ рдХреЗ рд╕рд╛рде рдХрдИ рдЧреБрдирд╛ рдкрд░ рдЕрдиреБрдХреВрд▓рди рддрдХрдиреАрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕реЗ (рдЙрд▓рдЯрд╛) рдореАрдЯреНрд░рд┐рдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдкрд░ рдПрдХ рдЕрдЪреНрдЫреА рдХрд┐рддрд╛рдм рд╣реИ:
http://sites.uclouvain.be/absil/amsbook/
рдФрд░ рдЗрд╕реА рдореИрдЯрд▓реИрдм рдкреИрдХреЗрдЬ:
http://www.manopt.org

22 рдЕрдХреНрдЯреВрдмрд░ 2014 рдХреЛ, 22:52 рдмрдЬреЗ, goretkin рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдЪреВрдВрдХрд┐ рд╣рдо DFTs рдФрд░ рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ ... рдпрд╣ рдЖрдЬ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреЛ рдкрд╛рд░ рдХрд░ рдЧрдпрд╛

рдпрджрд┐ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдПрдХ рдлрдВрдХреНрд╢рди рдлрдВрдХреНрд╢рди рдФрд░ рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдбрд┐рдлрд░реЗрдВрд╕ (f) рдПрдХ рдлрдВрдХреНрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ Covector рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ f (x) ~ = f (x0) + diff (f) ( x0) * (x-x0)ред рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдЗрдирдкреБрдЯ рдореЗрдВ рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкрд░рд┐рд╡рд░реНрддрди рджрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдПрдХ рд░реИрдЦрд┐рдХ рд╕рдиреНрдирд┐рдХрдЯрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЗрдирдкреБрдЯ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ, рддреЛ рдврд╛рд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрд╡реЗрдЯрд░ рд╣реЛрдирд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд▓рдЧрддрд╛ рд╣реИред

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

рдореЗрд░рд╛ рдкреЗрдЯ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдврд╛рд▓ рдПрдХ рдХреЛрд╡реЗрдЯрд░ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВред

A_ (v'_w) рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ
(A_v ') _ w рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИ

рдУрд╣ рдмрдХрд╡рд╛рд╕ред

b2e4d59001f67400bbcc46e15be2bbc001f07bfe05c7c60a2f473b8dae6dd78a

рдЗрд╕ рдЪрд┐рддреНрд░ рдХреЛ рдПрдХ рд╣рд╛рд╕реНрдп рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдкрдж рдХреЗ рд▓рд┐рдП рдЕрддрд┐рджреЗрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

@ рдЬреВрдереЛ рдореИрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди рдХреЗ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдореЗрд░рд╛ рд╡рд┐рд╡рд░рдг

рдкрд░рд┐рдкрддреНрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣реА рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЙрд╕ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд╣рдирд╛ рдЪрд╛рд╣ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдореИрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рдХреБрд╢рд▓ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд░реНрдХ рдХреА рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдЙрд▓рдЯ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдШреБрдорд╛рд╡рджрд╛рд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдкрд░ (рд╕рдВрдпреБрдЧреНрдорд┐рдд) рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдврд╛рд▓ (рдХреЛрд╡реЗрдХреНрдЯрд░) g_i рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдмрдВрдзрд┐рдд рд╡реЗрдХреНрдЯрд░ A ^ {i, j} g_ {j} рдЬрд┐рд╕реЗ x ^ i (A ^ {i, j} (рдЙрд▓рдЯрд╛ рдореАрдЯреНрд░рд┐рдХ рдХреЗ рд╕рд╛рде) рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рд╡рд╣ рдХреБрд╢рд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛ рдХрд┐ рдЧрд┐рддреБрдм рдкрд░ рдореЗрд░рд╛ рдкрд┐рдЫрд▓рд╛ рд╕рдВрджреЗрд╢ рдХрд┐рддрдиреА рдмреБрд░реА рддрд░рд╣ рдкреНрд░рдХрдЯ рд╣реБрдЖ рдерд╛; рдЬрдм рдореИрдВрдиреЗ рдИрдореЗрд▓ рд▓рд┐рдЦрд╛ рддреЛ рдпрд╣ рдареАрдХ рдерд╛ред рдореИрдВрдиреЗ рдЕрдм рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдореИрдВ рдЦреБрдж рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рдФрд░ рди рд╣реА рдореИрдВ (рдЧрд▓рдд) рдЫрд╛рдк рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдХрд┐ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдВред рдХреЗрд╡рд▓ рд╡рд╣реА рдЕрдВрдХ рдЬреЛ рдореИрдВ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред

  1. рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рддрддреНрд╡ рд╡реИрдХреНрдЯрд░ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕рднреА рд╡рд╕реНрддреБрдПрдВ рдЬрд┐рдирдореЗрдВ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЧрдгрд┐рддреАрдп рдЕрд░реНрде рд╣реИ, рдЬреВрд▓рд┐рдпрд╛ рдХреЗ AbstractVector рдХрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рди рд╣реА рдЙрди рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛, рдЬреЛ AbstractVector рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реИрдВ рдЙрдЪрд┐рдд рдЧрдгрд┐рддреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ред рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдореИрдВ рдирд╛рдо рдХреА рддрд░рд╣ Matrix рдФрд░ рдЕрдзрд┐рдХ рдирд╛рдо рд╕реЗ Vector , рддреЛ рдпрд╣ рдЙрд╕рд╕реЗ рдмрд╣реБрдд рдХрдо рдЕрд░реНрде рд╣реИ рдХреЗ рд░реВрдк рдореЗрдВред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рд╣рдордд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐, рдЬреЛ рднреА Covector рдкреНрд░рдХрд╛рд░ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ AbstractVector рдпрд╛ AbstractArray рдЙрдкрдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП , рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ V * рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ V рд╕реЗ рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ рд╣реИ (рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рд╕реНрдкреЗрд╕, рдЬреЛ рд╕рдВрднрд╡рддрдГ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдЖрдзрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рддрд╛ рд╣реИ)ред
  2. рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдЖрдкрдХреЛ V рд╕реЗ V_ рддрдХ рдореИрдкрд┐рдВрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ V_ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╢рд░реНрдд рдирд╣реАрдВ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдзреНрд╡рдирд┐ рдПрдХ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдкрд░рд┐рдорд┐рдд-рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реЛрддрд╛ рд╣реИ (рднрд▓реЗ рд╣реА рдпрд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдмрд┐рдВрджреБ рдЬреЛ рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдпрд╣ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, @goretkin рд╕реЗ рдЕрдЪреНрдЫрд╛ рдврд╛рд▓ рдЙрджрд╛рд╣рд░рдг рдХреА рддрд░рд╣ рдореЗрдВ covectors рдХреЗ рд╕рдореБрдЪрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд▓реЛрдЧреЛрдВ рд▓рд┐рдЦрдиреЗ рдЬрд╣рд╛рдВ v' , рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ covector рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ, рд╡реЗ рд╕рд┐рд░реНрдл рдПрдХ рджреНрд╡рд┐рд░реЗрдЦреАрдп рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рджреЛ рд╡реИрдХреНрдЯрд░ (рдЬреИрд╕реЗ V x V рд╕реЗ рд╕реНрдХреЗрд▓рд░) рдХреЗ рдмреАрдЪ рдореИрдкрд┐рдВрдЧ, рдЬреИрд╕реЗ v'_A_w = v ^ i A_ {i, j} w ^ j рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ v'w = v ^ i delta_ {i, j} w> j рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ред рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ dot(v,A*w) рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд╕рдВрдж рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ рдореИрдЯреНрд░рд┐рд╕ рдкрд░ рдКрдкрд░реА рдпрд╛ рдирд┐рдЪрд▓реЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ, v'*A*w рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реНрдХреЗрд▓рд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ v' рдФрд░ w рдпрд╛ рддреЛ рд╡реИрдХреНрдЯрд░ рдпрд╛ рдХреЛрд╡реЗрдЯрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЧрдгрд┐рддреАрдп рдЕрд░реНрде рдореЗрдВред рдЗрд╕рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ v' Covector рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрд╢ рд╣реВрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо Vector рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЧрдгрд┐рддреАрдп рд╣реИ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЬреЛ рдЕрдиреБрдорд╛рди рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрдзрд┐рдХ (рдЕрдзрд┐рдХрддрд░ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ) рдЪрд░реНрдЪрд╛рдУрдВ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред

@jutho рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдХреЗ рд▓рд┐рдП +1
рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рд╕реНрдЯреАрд╡ рд╕реНрдорд┐рде рдХреА рдкреАрдПрдЪрдбреА рдереАрд╕рд┐рд╕ рд╕реЗ рдпрд╣ рд╕реАрдЦрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ
рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЗрдЬрдирд╡рд╛рдпреБ рдЕрднрд┐рдХрд▓рди рдХреЗ рд▓рд┐рдП рд╕рдВрдпреБрдЧреНрдо рдврд╛рд▓ рдХрд╛ рд╡рд┐рдЪрд╛рд░
рдХрд┐ рд▓реЛрдЧ рд░рд╕рд╛рдпрди рд╡рд┐рдЬреНрдЮрд╛рди рдФрд░ рднреМрддрд┐рдХреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рдереЗред

рдореИрдВ рддреЗрдЬреА рд╕реЗ рдХреИрд╕реЗ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕реБрд╕рдВрдЧрдд рд╣реЛ рд░рд╣рд╛ рд╣реВрдВ
рдФрд░ рд╕реНрд╡-рдирд┐рд╣рд┐рдд рдПрдХ рдКрдкрд░реА рдФрд░ рдПрдХ рдирд┐рдЪрд▓реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рд╛рде рд░реИрдВрдХ 2 рдЯреЗрдирд░реНрд╕ рдХреА рджреБрдирд┐рдпрд╛ рд╣реИред
рдЗрд╕реЗ рд╣рдо рдкрд░рдореНрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕рдВрдЧрдгрдирд╛ рдпрд╛ рд╕рд┐рд░реНрдл рд╕рд╛рджреЗ рдкреБрд░рд╛рдиреЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХрд╣рддреЗ рд╣реИрдВред
рд╣реЗрдХ, рдЬрдмрдХрд┐ рдореИрдВ рдХрдИ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдХрд┐ рдЖрджрд░реНрд╢ (v, p) рдпрд╛ fft (v) рдЬрд╣рд╛рдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
рдЕрдЧрд░ рд╡реЗ рд╡реИрдХреНрдЯрд░ рдпрд╛ рдХреЛрд╡реЗрдЯрд░реНрд╕ рд╣реИрдВ рддреЛ рдЕрд▓рдЧ, рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рднреА рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ (рдЕрднреА рддрдХ!)
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдФрд░ рдПрдХ рдХреЙрд▓рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред
(рдХреЛрдИ рдореЗрд░реА рдорджрдж рдХрд░реЛ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрдИ !!

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

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

рд╡реИрд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд░реНрд╖ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЕрдзрд┐рдХ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдВрддрддрдГ рдЗрд╕реЗ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗ рд░рд╣реЗ рд╣реИрдВ :-)

рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
A_ (v'_w) рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ
(A_v ') _ w рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИ

рдХреЗрд╡рд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрд╛ "*" рд╕рд╣рдпреЛрдЧреА рд╣реИред рдЕрддрд┐рднрд╛рд░рд┐рдд рд╕реНрдХреЗрд▓рд░ рдЯрд╛рдЗрдореНрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрднреА рдирд╣реАрдВ рдерд╛
рд╕рд╛рд╣рдЪрд░реНрдпред рдЧрдгрд┐рдд рдореЗрдВ рднреА рдирд╣реАрдВ, MATLAB рдореЗрдВ рднреА рдирд╣реАрдВред

A_ (v'_w) рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ
(A_v ') _ w рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИ

рдЕрдЪреНрдЫреА рдкрдХрдбрд╝ред рдХреНрдпрд╛ рдРрд╕реЗ рдХреЛрдИ рдорд╛рдорд▓реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЧреИрд░-рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬрд╡рд╛рдм рджреЗрддреА рд╣реИрдВ? рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╢реНрди: рдПрдХ рдЕрджрд┐рд╢ * рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдЕрддрд┐рднрд╛рд░рд┐рдд рд╕реНрдХреЗрд▓рд░ рдЯрд╛рдЗрдореНрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрднреА рднреА рд╕рд╣рдпреЛрдЧреА рдирд╣реАрдВ рдерд╛ред рдЧрдгрд┐рдд рдореЗрдВ рднреА рдирд╣реАрдВ, MATLAB рдореЗрдВ рднреА рдирд╣реАрдВред

рдХреЗрд╡рд▓ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдФрд░ рд╕реНрдХреЗрд▓рд░ рд╕реЗ рдЬреБрдбрд╝реЗ рдСрдкрд░реЗрд╢рди

рд╕реНрдХреЗрд▓рд░-рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЬреЛрдбрд╝ рдПрдХ рдмрдбрд╝реА рдЪрд┐рдВрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рддрд░рдг рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░ рджреЗрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдпрд╛рдж рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣рд╕ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):

(A+s)*v != A*v + s*v

рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ:

@ рдЬрд┐рдпрд╛рдУ рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рдЧреА рдХрд┐ рджреЛ рдмрд╣реБрдд рд╣реА рдЦрд╛рд╕ рджреБрдирд┐рдпрд╛ рд╣реИрдВ:
рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд (рдПрдХ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕рд░рдгрд┐рдпрд╛рдВ, рдФрд░ рдПрдХ рд╕рд╣) рдФрд░ рд╕рд░рд▓ рдЯреЗрдВрд╕рд░реНрд╕ рд╣реИрдВ
(рд╣рд░ рдХреЛрдИ рдПрдХ рд╕рд╣, рдХреЛрдИ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рдирд╣реАрдВ рд╣реИ)ред

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

рдкреВрд░реНрд╡ рдореЗрдВ, рд╕рднреА рд╡реИрдХреНрдЯрд░ v рдХреЙрд▓рдо рд╣реИрдВ, рд╕рднреА v' рдХреЛрд╡реЗрдХреНрдЯрд░ рд╣реИрдВ рдФрд░ рд╕рднреА рдореИрдЯреНрд░реАрдЬрд╝ рд▓реАрдирд┐рдпрд░ рдСрдкрд░реЗрдЯрд░ V-> W рд╣реИрдВ (рдЬреИрд╕реЗ рд╡реЗ W _ V_ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ) рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЬреИрд╕реЗ рдмрд┐рд▓рд┐рдирд┐рдпрд░ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддрд╛ рд╣реИред рдореИрдкреНрд╕ V x V -> рд╕реНрдХреЗрд▓рд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП v ^ i A_ {i, j} w ^ j) рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рджреЛ рдХрдо рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЬреИрд╕реЗ V_ тКЧ W_ рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ)ред рдмреЗрд╢рдХ, рдЖрдк рдЕрднреА рднреА рдЗрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ v'_A*w рд░реВрдк рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЪреБрдиреЗ рд╣реБрдП рдирд╛рдордХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╕реНрдерд╛рди рдкрд░ рдЙрдЪреНрдЪ рдЖрджреЗрд╢ рд╕рд░рдгрд┐рдпрд╛рдБ рд░рд╣ рд░рд╣реА рд╣реИрдВред

рдмрд╛рдж рдХрд╛ рдорд╛рдорд▓рд╛ рдЙрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ (V == V *) рд╣реИ, рд▓реЗрдХрд┐рди v' == v рд░реВрдк рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рддрдХ рд╕реАрдорд┐рдд рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдорд╛рдирдХ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЗрдирд░ рдкреНрд░реЛрдбрдХреНрдЯ (рдпрд╛рдиреА 'рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рд╕реНрдкреЗрд╕') рдХреЗ рд╕рд╛рде рдЬрдЯрд┐рд▓ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рднреА, рджреЛрд╣рд░реА рд╕реНрдерд╛рди рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ рд╕реЗ рд╡реА рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рдВрдпреБрдЧреНрдорди (рд╡реА) рдХреЗ рд▓рд┐рдП рд╣реИ (рд╡реА) рдмрд╛рд░), рд╕рдВрдпреБрдЧреНрдо рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ (http://en.wikipedia.org/wiki/Complex_conjugate_vector_space рдореЗрдВ рд╣рд┐рд▓реНрдмрд░реНрдЯ рд╕реНрдкреЗрд╕ рджреЗрдЦреЗрдВ)

рдЧреИрд░-рд╕рдорд░реВрдкрддрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЙрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЬрд╣рд╛рдВ v'*v рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд░рдгреА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рд╣реИ, рддрдм рд╕реЗ рджреЛрдиреЛрдВ A*(v'*v) рдФрд░ (A*v')*v рдПрдХ рддреНрд░реБрдЯрд┐ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВред

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

  • рдХреЛрд╡реЗрдХреНрдЯрд░, рдЙрд░реНрдл тАЛтАЛ"рдЕрдЬреАрдм рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░" рдкреНрд░рд╕реНрддрд╛рд╡ рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИред
  • "рдХреЛрдИ рднреА рд╕рдЪреНрдЪрд╛ рд╡реИрдХреНрдЯрд░" рд╢рдмреНрджрд╛рд░реНрде рдирд╣реАрдВ рд╣реИ рдЬреЛ N-1-рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдПрди-рд╡реИрдХреНрдЯрд░ (рдПрдирдПрдХреНрд╕-рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдПрди-рд░реЛ-рд╡реИрдХреНрдЯрд░), рдЬреЛ рдореИрдЯрд▓реИрдм рдФрд░ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
  • рд╡рд░реНрддрдорд╛рди рдЬреВрд▓рд┐рдпрд╛ рддрд░реАрдХрд╛ - рдШрдиреЗ рдПрди-рд╡реИрдХреНрдЯрд░ рдФрд░ рдПрдирдПрдХреНрд╕ 1-рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдПрди-рд╡реИрдХреНрдЯрд░ рдФрд░ рдПрдирдПрдХреНрд╕ 1 рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддреЗ рд╣реИрдВ, 1xN-matrices рдХреЗ рд░реВрдк рдореЗрдВ рдПрди-рдкрдВрдХреНрддрд┐-рд╡реИрдХреНрдЯрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ "рдХреЛрдИ рднреА рд╕рдЪреНрдЪрд╛ рд╡реИрдХреНрдЯрд░" рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрдВрдлрд╝реЗрдХреНрдЯ (рд╕реНрдХреЗрд▓рд░реНрд╕, 1-рд╡реИрдХреНрдЯрд░ рдФрд░ 1x1-рдореИрдЯреНрд░рд┐рд╕реЗрд╕) рдХреЛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ; @alanedelman рдФрд░ рдореИрдВ рдХрд▓ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рдереЗ рдФрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рд╡реЗрдХреНрдЯрд░ * рд╕реНрдХреЗрд▓рд░ рдФрд░ рд╕реНрдХреЗрд▓рд░ * рд╡реЗрдХреНрдЯрд░ рдХреА

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

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

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реЛрдирд╣рд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рд╢реЛрдз рдХреЗ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рджрд┐рд▓рдЪрд╕реНрдк рдХреНрд╖реЗрддреНрд░ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рд╣реВрдВред

рдХреНрдпрд╛ рдореИрдВ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

рдЬреНрдпрд╛рдорд┐рддреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдЕрдиреБрд╕рдВрдзрд╛рди рд╕рдореВрд╣
http://www.mrao.cam.ac.uk/~clifford/pages/introduction.htm

рдЬреНрдпрд╛рдорд┐рддреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдкрд╛рдареНрдпрдХреНрд░рдо
http://www.mrao.cam.ac.uk/~clifford/ptIIIcourse/course99/

рдЬреНрдпрд╛рдорд┐рддреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рднреМрддрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ
http://www.mrao.cam.ac.uk/~clifford/ptIIIcourse/

21 рд╡реАрдВ рд╕рджреА рдореЗрдВ рднреМрддрд┐рдХреА рдФрд░ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреАрдХреГрдд рдЧрдгрд┐рддреАрдп рднрд╛рд╖рд╛
http://www.mrao.cam.ac.uk/%7Eclifford/publications/ps/dll_millen.pdf

рдЬреНрдпрд╛рдорд┐рддреАрдп рдмреАрдЬрдЧрдгрд┐рдд
http://arxiv.org/pdf/1205.5935v1.pdf

рдЬреНрдпрд╛рдорд┐рддреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреА рдиреАрдВрд╡
http://link.springer.com/book/10.1007%2F978-3-642-31794-1

рдЬреНрдпрд╛рдорд┐рддреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ
http://link.springer.com/book/10.1007%2F978-1-84996-108-0

рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИред

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

  • рдЬреЛрд╕реЗрдл рд▓реБрдИ рд▓рдЧреНрд░рдЧреЗ

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

  • рдкрд╛рдмреНрд▓реЛ рдХреЛрд▓рд╛рдкрд┐рдиреНрдЯреЛ

рдЗрд╕ рдЖрджрдореА рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИ ... https://github.com/wolftype/versor

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

рдпрд╣ рд╡реАрдбрд┐рдпреЛ рд╡рд░реНрд╢ рдХрд┐рдП рдЧрдП GA рдЧрдгрд┐рдд рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИред
https://www.youtube.com/watch?v=W4p-e-g37tg

рдЗрд╕рдХреЗ рд▓рд┐рдП рдпреЗ рд╕реНрд▓рд╛рдЗрдб рд╣реИрдВред https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/generic_spaces.pdf

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

@ esd100 , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░реНрдЪрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

@johnmyleswhite рдореИрдВрдиреЗ "

@ esd100 рдЬреНрдпрд╛рдорд┐рддреАрдп рдмреАрдЬрдЧрдгрд┐рдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдЪреАрдЬ рдирд╣реАрдВ рд╣реИрдВред рдЬреНрдпрд╛рдорд┐рддреАрдп рдмреАрдЬрдЧрдгрд┐рдд рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЕрд╕рд▓реА рдХреНрд▓рд┐рдлрд░реНрдб рдмреАрдЬрдЧрдгрд┐рдд рд╕реАрдПрд▓ (рдЖрд░ ^ рдПрди, рдЖрдИ) рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ; рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдЕрдиреНрдп рдХреНрд▓рд┐рдлрд░реНрдб рдЕрд▓рдЬреЗрдмреНрд░рд╛ рдореЗрдВ рднреА рд░реБрдЪрд┐ рд▓реЗрдВрдЧреЗ, рдЬреЛ _not_ рдЬрд┐рдпреЛрдореЗрдЯреНрд░рд┐рдХ рдЕрд▓рдЬреЗрдмреНрд░рд╛ рд╣реИрдВ, рдЬреИрд╕реЗ рдХреНрд▓рд┐рдлреЛрд░реНрдб рдПрд▓реНрдЬреЗрдмреНрд░рд╕ рдЬреИрд╕реЗ рдЬрдЯрд┐рд▓ рд╡реИрдХреНрдЯрд░ Cl (C ^ n, I) рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмреАрдЬрдЧрдгрд┐рдд рдордирдорд╛рдиреЗ рдЦреЗрддреЛрдВ рдпрд╛ рдиреЙрдирдХрдореНрдпреВрдЯреЗрдЯрд┐рд╡ рд░рд┐рдВрдЧреНрд╕ Cl (F ^ n, I) рдкрд░ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЦреБрдж рдХреЛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдХреНрд▓рд┐рдлрд░реНрдб рдмреАрдЬрдЧрдгрд┐рдд рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╕рд╛рдорд╛рдиреНрдп рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрдВрд╕рд░ рдмреАрдЬрдЧрдгрд┐рдд рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХрд╣рд╛рдВ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рджреНрд╡рд┐рдШрд╛рдд рд░реВрдк (рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж) рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВред

рджрд╕рд┐рдпреЛрдВ рдХреЗ рдмреАрдЬрдЧрдгрд┐рдд рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ, рдУрдкреА рдореЗрдВ " v' рдПрдХ рдиреЛ-рдСрдк" рдкреНрд░рд╕реНрддрд╛рд╡ рд╕рд╣реА рдЕрд░реНрде рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрд▓рдЯрд╛ рдПрдВрдЯреАрдЕрдЯреЛрдореЛрд░реНрдлрд┐рдЬреНрдо рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдореЗрдЬ рдкрд░ рдХрдо рд╕реЗ рдХрдо рддреАрди рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдХреЛрдИ рднреА рджреНрд╡рд┐рдЕрд░реНрдереА рд╡рд┐рд╕реНрддрд╛рд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ

@ рдЬрд┐рдпрд╛рд╣реМ рдЖрдкрдХреА рдмрд╣реБрдд рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдХреА рдорд╣рд╛рд░рдд рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рдЬрд╛рдПред рдореИрдВ рдмреЗрд╣рддрд░ рд╕рдордЭ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрди рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХреА рдЙрддреНрд╕реБрдХрддрд╛ рд╣реИ рдХрд┐ BLAS рдХреЗ рд▓рд┐рдП рд╕реБрдкрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб рдХреНрдпреЛрдВ рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рд▓рд┐рдП рд╕реБрдкрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдб, рдЬреИрд╕реЗ рдХрд┐ Clifford Algebra рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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

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

рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреА рдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрди "рдирдВрдЧреЗ" рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдП? рдЖрдк рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЧрдгрд┐рдд рдХреА рддрд░рд╣ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рд▓реЛрдЧ рд╕рд╣рдЬ рд╣реЛрдВрдЧреЗ рдХрд┐ v ''! = V? рдЖрджрд┐ рдЖрджрд┐ред

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

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

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

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

рдореБрдЭреЗ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЧрдгрд┐рдд рдХреЛ рдШреЗрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдЗрд╕реЗ рд╣рд╛рдИ рд╕реНрдХреВрд▓ рдФрд░ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рд╕реАрдЦрд╛ рдерд╛: рд╕рд╛рд╣рдЪрд░реНрдп * (рдЬрд╣рд╛рдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд) рдХреЗ рд▓рд┐рдП, v '' = v, рджреЛрдиреЛрдВ "рдмреНрд░рд╛" рдФрд░ "рдХреЗрдЯреНрд╕" (I рдпрд╣рд╛рдБ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдбрд╛рдпрдХ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ), рдЖрджрд┐ред

BTW рдЕрдЧрд░ рдпрд╣ рд╕рд╛рдорд╛рди рдЬреВрд▓рд┐рдпрд╛ 0.4 рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдмреЗрдЦрдмрд░ рд╣реВрдБ! рдореИрдВ рдЕрднреА рднреА 0.3.4 рд╕рдордЭрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ ...

@ рдХреИрдВрдбреАрдлрд░рд┐рд╕ , рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рд╕рдм рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдореЗрд░реЗ M*v' рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ рдФрд░ v*M рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ M рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдЖрдпрд╛рдо рдКрдкрд░ рдпрд╛ рдиреАрдЪреЗ рд╣реИрдВ - рдЖрдк рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП v'*M*w рдпрд╛ v*M*w' рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╛ рддреЛ рдПрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдПрдХ рд╡рд┐рдЪрд╛рд░ рдЬреЛ рдЪрд╛рд░реЛрдВ рдУрд░ рдЙрдЫрд▓ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдкрдВрдХреНрддрд┐-рдкреНрд░рдореБрдЦ рдФрд░ рдХреЛ-рдореЗрдЬрд░ рдПрд░реЗ рд╣реИ рдФрд░ M.' рдПрдХ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдмрджрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реА рддрд░рд╣ v' v рдкрд░ рдкрдВрдХреНрддрд┐-рдкреНрд░рдореБрдЦ рднрд┐рдиреНрдирддрд╛ рд╣реИред

+1 рд╕реЗ @ рдХреИрдВрдбреАрдлрд░рд┐рд╕ ред рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рд┐рд░реНрдл рд╕рд╛рдзрд╛рд░рдг рдЖрд╡рд░рдг рдкреНрд░рдХрд╛рд░ Transpose рдФрд░ ConjTranspose рдЬреЛ рд╣рдореЗрдВ рд╡реИрдХреНрдЯрд░, рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмреАрдЬрдЧрдгрд┐рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд░рддрд╛ рд╣реИред @StefanKarpinski рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдмрд┐рдВрджреБ 2 рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореИрдВ рдЗрди рд░реИрдкрд░реЛрдВ рдХреЛ AbstractArray рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдХрдВрдЯреЗрдирд░ рдирд╣реАрдВ рд╣реЛрдиреЗ рджреВрдВрдЧрд╛ рдФрд░ рдореИрдВ AbstractArray рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдмрдиреВрдВрдЧрд╛ ред Transpose(x) рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ x' рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ / рдЖрд▓рд╕реА рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ, рдмрд╛рдХреА рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Transpose рдкрд░ рдбрд┐рд╕реНрдкреИрдЪ рдХрд░рдХреЗред Transpose (рдЬреЛ рд╕рдВрднрд╡рддрдГ 99.9% рдорд╛рдорд▓реЛрдВ рдореЗрдВ * рдЧреБрдгрд╛ рдЧреБрдгрдХ рд╣реЛрдЧрд╛)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдирдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЕрд░реНрде рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ AbstractArray рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛рд░рдХ рд╡рд╕реНрддреБрдПрдВ рдпрд╛ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдЬреИрд╕реЗ рдХрд┐ рд░реИрдЦрд┐рдХ рд╕рдВрдЪрд╛рд▓рдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдореИрдЯреНрд░рд┐рд╕ рдФрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ M*v' рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рдирд╣реАрдВ рд╣реВрдВред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдмреБрдирд┐рдпрд╛рджреА рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ (рдпрд╛рдиреА рд╕реНрдЯреАрдлрди рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдЕрдВрдд рдореЗрдВ 2,4,5,6 рдФрд░ 8 рдирд┐рдпрдо)ред

рдЪрд░реНрдЪрд╛ рдХрд╛ рдореБрдЦреНрдп рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рд╕рдВрднрд╡рддрдГ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкрд░рд╕реНрдкрд░ рдХреНрд░рд┐рдпрд╛ рд╣реИред рдХреНрдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдПрдХ рдкрдВрдХреНрддрд┐ рдЯреБрдХрдбрд╝рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ Transpose ? рдпрд╣рд╛рдВ рдореЗрд░рд╛ рд╡реЛрдЯ рдПрдкреАрдПрд▓ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдкрд░ рд╣реИ рдЬрд╣рд╛рдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

@ рдЬреВрдереЛ , рдкреНрд░реЗрд░рдгрд╛ * рд╕рд╣рдпреЛрдЧреА рд╣реИ - A*(v'w) рдФрд░ (A*v')*w рджреЛрдиреЛрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВ, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ рдХреЗ modulo рдЧреИрд░-рд╕рдВрдШрд╛рддрдХрддрд╛ (рдЬреИрд╕реЗ - рдЕрд╕реНрдерд╛рдпреА) рдмрд┐рдВрджреБ)ред

(A*v')*w рд▓рд┐рдП A*(v'*w) , A*v' рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП N=3 рд╕рд░рдгреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдорди рдореЗрдВ рдРрд╕рд╛ рдерд╛? рдореИрдВ рдЗрд╕рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪреВрдХ рдЧрдпрд╛ред

рдареАрдХ рд╣реИ, рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк, рдореЗрд░реА рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВред

рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореВрд▓ рд░реВрдк рд╕реЗ, Array{T,n} n -dimensional рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛-рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЗрд╕рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░реНрдп рд╣реИред рдпрд╣ рдЙрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рд╕рд░рдгреА рдЯреБрдХрдбрд╝рд╛ рдПрдХ рд╕рд╣-рд╡реЗрдХреНрдЯрд░ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ! рдпрд╣ рдПрдХ рд╕рдЦреНрддреА рд╕реЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ T рдЬреЛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рдФрд░ рдЙрд╕рдХреЗ рджреЛрд╣рд░реЗ (рдЬреИрд╕реЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛ рдпрд╛ "рдлрд╝реАрд▓реНрдб") рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИред

рдореИрдВ рдПрдкреАрдПрд▓ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдпрд╣ рдХрд╛рдлреА рд╕рд╣рдЬ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдерд┐рд░ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЛ рд╕реБрд╕рдВрдЧрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ ... рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдЯреВрдЯрдиреЗ рд╡рд╛рд▓рд╛ рдмрджрд▓рд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рдореБрдЭреЗ рдпрд╣ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ M[1,:] рдХрд╛ рдЖрдХрд╛рд░ 1xn рдФрд░ M[:,1] рдХрд╛ рдЖрдХрд╛рд░ n (nx1 рдирд╣реАрдВ) рд╣реИ ... рдпрд╣ рдмрд╣реБрдд рдЕрд╕рдордорд┐рдд рд▓рдЧрддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЪреАрдЬреЗрдВ рд╕реНрдореГрддрд┐ рдореЗрдВ рд░рдЦрд╛ред рд╡реИрд╕реЗ рднреА .. рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ рддрднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдпрд╣ рд╕рд╛рд░ рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдФрд░ рд╣реЗрд░рдлреЗрд░ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рд░реВрдврд╝рд┐рд╡рд╛рджреА рд╣реИред

рдЗрд╕рд▓рд┐рдП, рднрд▓реЗ рд╣реА рд╣рдо рдПрдкреАрдПрд▓ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ , рдлрд┐рд░ рднреА рд╣рдо рд╕рд╛рд░реНрдердХ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЛ рдХрд╛рдлреА рд╕рд░рд▓ рд░реВрдк рд╕реЗ рдирд┐рд╕реНрддрд╛рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк i M colvec(M,i) рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрдк i th рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╣- рд╡реЗрдХреНрдЯрд░ M рдХреЙрд▓ рдЪрд╛рд╣рддреЗ рд╣реИрдВ rowvec(M,i) ред рдпрджрд┐ i рдПрдХ рдЯрдкрд▓ рдпрд╛ рд╡реЗрдХреНрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдПрдХ рдЯрдкрд▓ рдпрд╛ рд╡реЗрдХреНрдЯрд░ рдпрд╛ (рд╕рд╣) рд╡реИрдХреНрдЯрд░ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░рдХрд░рдг рдХреЗ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?)ред рдпрджрд┐ рдЖрдк рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрдХреНрд░рдордг рд╕рдВрдХреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рд╣рдо рдПрдкреАрдПрд▓ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ * рдкреНрд░рддреАрдХ рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐ рдФрд░ рд╕реНрддрдВрдн рд╕реНрд▓рд╛рдЗрд╕ рдХреА рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЪреАрдЬ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред (рдПрдХ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ rowvec рд╕рд╛рде рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ)ред

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

* , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ / рд╡реЗрдХреНрдЯрд░ рдмреАрдЬрдЧрдгрд┐рдд рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЧрдгрд┐рдд рдХреЛ рдмрд╣реБ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдХрднреА рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рджреЛ рд╡реИрдХреНрдЯрд░, рджреЛ рдХреЛрд╡реЗрдХреНрдЯрд░, рджреЛ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕, рдЖрджрд┐ рдХреЗ рдмреАрдЪ M*v' рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЧрдгрд┐рдд рдореЗрдВ рдХрдбрд╝рд╛рдИ рд╕реЗ рдЖрдкрдХреЛ "рдУрдЯрд╛рдЗрдореНрд╕" рдкреНрд░рддреАрдХ рдХреЗ рд╕рд╛рде рд╕рдореАрдХрд░рдг рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдПрдХ рд╕рд░реНрдХрд▓ рдХреЗ рдЕрдВрджрд░ рдмрд╛рд░ рд╕рдВрдХреЗрдд) рдорд╛рдирдХ рдЧреБрдгрд╛ рдкреНрд░рддреАрдХ рдирд╣реАрдВред рдЧреБрдгрд╛ рдкреНрд░рддреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдЕ-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ! рд╣рдорд╛рд░реЗ рдкрд╛рд╕ w*M*v' == v'*M*w рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрд╛ рдХрдореНрдпреВрдЯреЗрдЯрд┐рд╡ рдирд╣реАрдВ рд╣реИред рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ M*v'*v рдпрд╣ рднрд╛рд╡рдирд╛ рдХреА рд╕рдВрдмрджреНрдзрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ * ред рдЖрдк рдЗрд╕реЗ рдпрд╛ рддреЛ innerproduct(outerproduct(M,v'),v) рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╣реБ рдкреНрд░рддреАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдпрд╛ рдЕрджрд┐рд╢ рдЧреБрдгрди M * innerproduct(v',v) рдЬрд╣рд╛рдБ рдпрд╣ _does_ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП * рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рдмреНрд░реИрдХреЗрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдпрд╛ рд╢рд╛рдпрдж рд╕рдВрдХрд▓рдХ рдПрдХ рд╕рд╛рд░реНрдердХ рдХреНрд░рдо рд╕рдВрдЪрд╛рд▓рди рдХреА рдЦреЛрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣рд╛рдБ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдХреНрд░рдо рднреА рд╡рд╣реА рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╡реИрдз рдХреНрд░рдо рдорд╛рдирддрд╛ рд╣реВрдБ)ред

рд╡реИрдХреНрдЯрд░, рдХреЛрд╡реЗрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмреАрдЬреАрдп рдкреНрд░рдгрд╛рд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдорд╛рдирдХ рдЧрдгрд┐рдд рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдЬрдм рднреА рдЖрдк рджреЛ рд╡реИрдХреНрдЯрд░, рдпрд╛ рджреЛ рдХреЛрд╡реЗрдХреНрдЯрд░, рдпрд╛ рджреЛ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рдмреАрдЪ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдорд▓реНрдЯреА-рд▓реАрдирд┐рдпрд░ рдмреАрдЬрдЧрдгрд┐рдд, рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрдВрд╕рд░ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЖрдк рд╕рдВрднрд╡рддрдГ рдПрдХ рдирдП рдкреНрд░рддреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ kron(M,N) рддрд░рд╣ рдЧреБрдгрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореИрдЯреНрд░рд┐рд╕ рдФрд░ рд╡реИрдХреНрдЯрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рдкреВрд░реНрдг рдмрд╣реБ-рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╛ рдЬреЛ рднреА рд╣реЛ ... рдпрд╣ рдореВрд▓ рдкреНрд░рд╢реНрди рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд▓рдЧрддрд╛ рд╣реИ (рдЬреЛ 14 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ btw рдерд╛ ...)

рдЗрд╕рд▓рд┐рдП рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореБрдЭреЗ рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рдЪрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИрдВ:

  1. рдПрдкреАрдПрд▓ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдордирдорд╛рдирд╛ рдбреЗрдЯрд╛ рдХреЗ Array s рдХреЗ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВред
  2. рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЛ рдЕрдзрд┐рдХ рд╕рд╣рдЬ рдФрд░ рдХреБрдЫ рд╕рд░рд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЧрдгрд┐рдд рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реБрд╕рдВрдЧрдд рдмрдирд╛рдПрдВ: covectors рдФрд░ matrices рд╕реЗ рд╡реИрдХреНрдЯрд░ рдФрд░ covectors рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдПрдХ рд╡рд┐рдзрд┐, рдФрд░ covectors, matrices, рдЖрджрд┐ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд▓рдиред рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреА covectors рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ред 1xn рдФрд░ nx1 рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛, рдФрд░ рд╡реЗрдХреНрдЯрд░ рдПрдХ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧрд╛ред
  3. рдЧрддрд┐ рдХреЗ рд▓рд┐рдП, рдХреЛрд╡реЗрдХреНрдЯрд░ рдЬреИрд╕реЗ рд░реИрдкрд┐рдВрдЧ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ transpose , conj , рдХреЗ рд▓рд┐рдП рдЖрд▓рд╕реА рдореВрд▓реНрдпрд╛рдВрдХрди рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рднреАред
  4. рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЯреЗрдВрд╕рд░ рдкреИрдХреЗрдЬ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

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

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

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

@ esd100 рд╕рдЪ рд╣реИ, рдореИрдВрдиреЗ рдРрд╕рд╛ рд╕реЛрдЪрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╣рдо _greedy _... рдХрдИ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдФрд░ рдХрдИ рдЪреАрдЬреЛрдВ рдореЗрдВ рдЙрддреНрдХреГрд╖реНрдЯрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдпрд╛ рдкреВрд░реНрд╡-рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЬреВрд▓рд┐рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдкрд╣рд▓реЗ рдХрд╛ рдХрд╣рдирд╛ рдерд╛ рдХрд┐ рд╣рдореЗрдВ Array рдзреАрдорд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рди рд╣реА рдЗрд╕реЗ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо / рд╕рдВрдпреБрдЧреНрдорди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд╖реЗрддреНрд░ рджреЗрдХрд░ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдХреЛрдИ рдПрдкреАрдПрд▓ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкрдВрдХреНрддрд┐ рдпрд╛ рд╕реНрддрдВрдн рд╕реНрд▓рд╛рдЗрд╕ рдХреЛ рдЙрд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╡рд╛рд▓ рдерд╛: рдПрдкреАрдПрд▓ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛, рд╡рд╛рдкрд╕реА рдХреЗ рд▓рд┐рдП M[1,:] рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдХреНрдпрд╛ рд╣реИ? рдЦреИрд░, рдЕрдЧрд░ M[1,:,:,:,:] рд░рд┐рдЯрд░реНрди рдПрдХ Array{T,n} , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдпрд╣ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдЕрдЧрд░ рднреНрд░рдорд┐рдд рд╣реИрдВ M[1,:] рдПрдХ рд▓реМрдЯреЗ covector{T} ред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо M = zeros(3,3,3) рдФрд░ M[1,:] рдХреЙрд▓ рдХрд░реЗрдВ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 1x9 рдореИрдЯреНрд░рд┐рдХреНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕реЗ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рднреА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ M Array{String,3} ?

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

@ esd100 : рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╡реЗ рджрд░реНрд╢рдХ рд╣реИрдВ рдЬреЛ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдЬреВрд▓рд┐рдпрд╛рд╕ рддрд╛рдХрдд рд╣реИ рд▓реЗрдХрд┐рди рдХрдИ рдЬреВрд▓рд┐рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ @ рдХреИрдВрдбреА рдХреЗ рд╕рд╛рде рд╕рд╣рдордд рджрд╕рд┐рдпреЛрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдкреВрд░реЗ рд╕реВрддреНрд░ рдХреЛ рдкрдврд╝реЗ рдмрд┐рдирд╛ рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ 3D рд╕рд░рдгреА A (рдЬреИрд╕реЗ рдЯреЛрдореЛрдЧреНрд░рд╛рдлрд┐рдХ рдбреЗрдЯрд╛) рдФрд░ рд╣реИ

imagesc( data[1,:,:] )

рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ред IMHO data[1,:,:] , data[:,1,:] , рдФрд░ data[:,:,1] 2D рд╕рд░рдгрд┐рдпрд╛рдБ (рдпрд╛ рдЙрдкрд╢реНрд░реЗрдгрд┐рдпрд╛рдБ) рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡-рдкрд░рд┐рднрд╛рд╖рд┐рдд squeeze рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

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

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

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

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

рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рддреНрдордХрддрд╛ рдмреЗрд╕ рдореЗрдВ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд╣реИ рд╡рд╣ рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИред

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

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

рд╡рд░реНрддрдорд╛рди рдЪрд░реНрдЪрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рд╡реИрдХреНрдЯрд░ рдФрд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣рд░ рд╡реНрдпрдХреНрддрд┐ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ, рдФрд░ v ^ T * w = рд╕реНрдХреЗрд▓рд░ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЗрди рд╡реИрдХреНрдЯрд░ рдФрд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдХреНрд╖реЗрддреНрд░ / рдЕрдиреБрд╢рд╛рд╕рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ред рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рд╣реИ рдХрд┐ v ^ T рдКрдкрд░ рдХреЗ рдкрджреЛрдВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

11 рдЬрдирд╡рд░реА 2015 рдХреЛ, 18:10 рдмрдЬреЗ, esd100 рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@ рдЬреВрдереЛ https://github.com/jutho рдореЗрд░реА рдЖрдВрдд рдХреА рднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛ рдЖрдзрд╛рд░ рдХреНрдпрд╛ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ "рдмреЗрд╣рддрд░" рд╣реИрдВ рдФрд░ рдХреНрдпрд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ?

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub https://github.com/JuliaLang/julia/issues/4774#issuecomment -69501771 рдкрд░

рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рддреНрдордХрддрд╛ рдмреЗрд╕ рдореЗрдВ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд╣реИ рд╡рд╣ рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИред

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

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

(1) рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВрдиреЗ рдЙрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ / рдпрд╛ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рда рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реВрдВ (рдпрджрд┐ рдкреВрд░реЗ рдирд╛рдо рдХреЛ рдХрд┐рд╕реА рдЪреАрдЬ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рддреЛ рдЙрд╕реЗ рд╕реАрдорд┐рдд рдХрд░ рджреЗрдВ)
(2) рдпрд╛ рддреЛ: (рдП) рдЖрдпрд╛рдд рдХреЛ рддреБрд░рдВрдд рдЬреЛрдбрд╝реЗрдВ, рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдХреА рдЯреНрд░реЗрди рдХреЛ рдЦреЛрдиреЗ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрдЬрдиреЗ; рдпрд╛ (рдмреА) рдХреЗ рдмрд╛рдж рдореИрдВ рдЬреЛ рдХреБрдЫ рднреА рдХрд░ рд░рд╣рд╛ рдерд╛ рдЙрд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рдПрдХ рдФрд░ рдЪреАрдЬ рдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП
(3) рдХрдо рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕рдВрднрд╡рддрдГ рдпрд╣ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИ

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


рд╡рд╛рдкрд╕ рд╡рд┐рд╖рдп рдкрд░, рд╣рдо рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдХрдИ рдкрд░рддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ --- рд╕реЗрд░реЗрдиреНрдЯрд▓реА рдирдВрдЧреЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ Base.AbstractArray рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдКрдкрд░ / рдиреАрдЪреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЯреЗрдВрд╕рд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИ) AbstractTensorArray рдкреНрд░рд╕реНрддрд╛рд╡ , рд╕рджрд┐рд╢ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд┐рдП рдЧрдП рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрдВрд╕рд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП (рдЬреИрд╕рд╛ рдХрд┐ @Jutho рдХреЗ TensorToolbox рдореЗрдВ ) --- рд╕рд╛рдорд╛рдиреНрдпрддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХреНрд╖рдорддрд╛ рдореЗрдВ рдХрдореАред

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

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

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

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

рдзрдиреНрдпрд╡рд╛рдж рдЯреЛрдиреА, рдореИрдВ рджреВрд╕рд░рд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдкреИрдХреЗрдЬ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде "рдЯреВрд▓рдмреЙрдХреНрд╕" рдХрд╛ рдкреИрдХреЗрдЬ рдХреА рддрд░рд╣ рд╣реЛрдирд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдПрдХ рд╕рд╛рде рдХрдИ рд╕рдореВрд╣ рдмрдирд╛рддреЗ рд╣реИрдВред @reexport рдореИрдХреНрд░реЛ рдХреЗ рд╕рд╛рде рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рдмрд╛рдд рд╣реИред рдПрдХ рдкреИрдХреЗрдЬ рдХреЗ рднреАрддрд░ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рдХреБрдЫ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рдмрд╕ рдЙрд╕реЗ рдХрд░рддрд╛ рд╣реИред рдмреЗрд╕ рдПрдХ рдХреЗ рднреАрддрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╣реИред

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

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡реЗрдХреНрдЯрд░ * рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ X (K, N) рдФрд░ b (K,) b рдорд┐рд▓реЗрдВрдЧреЗред (N,) рд▓рдВрдмрд╛рдИ рдХреА рд╡реЗрдХреНрдЯрд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ред
рдХреНрдпрд╛ рдореИрдВ BLAS.gemv('T',1.0,X,b) рдХрд╣рддрд╛ рд╣реВрдВ
рдпрд╛ reshape(b'*X,size(x,2))
рджреЛрдиреЛрдВ рдереЛрдбрд╝реЗ рдмрджрд╕реВрд░рдд рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк X'b

2015-03-13 17:15 GMT-04: 00 joschu рд╕реВрдЪрдирд╛рдПрдВ @github.com:

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡реЗрдХреНрдЯрд░ * рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ X рдХреЛ рдЖрдХреГрддрд┐ (K, N) рдФрд░ b рдХреЗ рд╕рд╛рде рдЖрдХреГрддрд┐ (K,), рдФрд░ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП
рд▓рдВрдмрд╛рдИ рдХреЗ рд╡реЗрдХреНрдЯрд░ (рдПрди,) рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдИрдВ рдУрд░ b рд╕реЗ рдЧреБрдгрд╛ рдХрд░реЗрдВред
рдХреНрдпрд╛ рдореБрдЭреЗ BLAS.gemv ('T', 1.0, X, b) рдХрд╣рддреЗ рд╣реИрдВ
рдпрд╛ рдлрд┐рд░ рдЖрдХрд╛рд░ (b '* X, рдЖрдХрд╛рд░ (x, 2))
рджреЛрдиреЛрдВ рдереЛрдбрд╝реЗ рдмрджрд╕реВрд░рдд рд╣реИрдВред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/JuliaLang/julia/issues/4774#issuecomment -79405868ред

рд╣рд╛рдБ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдПрдХреНрд╕ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред
рд▓реЗрдХрд┐рди @ рдЯрд╛рдЗрдо рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрдореЛрд░реА рдПрд▓реЛрдХреЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЛрдИ рдХреЙрдкреА рдирд╣реАрдВ рд╣реИ

julia> X = rand(1000,1000); y = rand(1000);

julia> <strong i="8">@time</strong> y'X;
elapsed time: 0.00177384 seconds (15 kB allocated)

julia> <strong i="9">@time</strong> X'y;
elapsed time: 0.000528808 seconds (7 kB allocated)

рд╣рдо рддреЛ рдХреА 'рдлреИрдВрд╕реА рдкрд╛рд░реНрд╕ рдХрд░ X'y рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдХреЗ рд░реВрдк рдореЗрдВ Ac_mul_B(X,y) рдФрд░ рдмрдирд╛рддрд╛ рд╣реИ
рд╡рд╣реА BLAS рдЖрдкрдХреЛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рдХреЙрд▓ред

2015-03-13 17:28 GMT-04: 00 joschu рд╕реВрдЪрдирд╛рдПрдВ @github.com:

рд╣рд╛рдБ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдПрдХреНрд╕ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред
(рд▓реЗрдХрд┐рди @time https://github.com/time рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ
рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЙрдкреА

рдЬреВрд▓рд┐рдпрд╛> рдПрдХреНрд╕ = рд░реИрдВрдб (1000,1000); y = рд░реИрдВрдб (1000);

julia> @time y'X;
рдмреАрддрд╛ рд╕рдордп: 0.00177384 рд╕реЗрдХрдВрдб (15 kB рдЖрд╡рдВрдЯрд┐рдд)

julia> @time X'y;
рдмреАрддрд╛ рд╕рдордп: 0.000528808 рд╕реЗрдХрдВрдб (7 kB рдЖрд╡рдВрдЯрд┐рдд)

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/JuliaLang/julia/issues/4774#issuecomment -79421713ред

рдорд╛рдиреЛ рдпрд╛ рди рдорд╛рдиреЛ, рдЗрд╕ рдкреВрд░реЗ рдзрд╛рдЧреЗ рдХрд╛ рдПрдХ рд░рд╛рдЗрдЯрдЕрдк рднреМрддрд┐рдХрд╡рд╛рдж рдХреЗ рдХрд░реАрдм рд╣реЛ рд░рд╣рд╛ рд╣реИред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ conj(transpose(x)) ctranspose(x) рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рддрд░реНрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЧреИрд░-рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░ transpose рдФрд░ ctranspose рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ, рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдЬреИрд╕реЗ dual рдПрдХ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬреВрд▓рд┐рдпрд╛ рдЬреИрд╕реА рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рднрд╛рд╖рд╛ рдХреЛ рдЙрдкрдпреЛрдЧреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЖрдо рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдЦреНрдд рдЧрдгрд┐рддреАрдп рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдВрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд▓рддреА рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреБрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЕрдиреНрдпред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ рдХрд┐ рд╡рд╣ рдЗрди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ z.' * A * z z рдПрдХ рдЬрдЯрд┐рд▓ рд╕рджрд┐рд╢ рдФрд░ A рдХреБрдЫ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдФрд░ / рдпрд╛ рджреЛрд╣рд░реЗ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рд╡реИрдХреНрдЯрд░ред

@ рдЬреВрдереЛ рдХреНрдпрд╛ рдЖрдк z.' * A * z рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрджрд┐ z1 рдФрд░ z2 рджреЛ рдЬрдЯрд┐рд▓ рд╡реИрдХреНрдЯрд░ Z1 рдФрд░ Z2 рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ K├дhler рдХреЗ рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛ рд╕реНрдерд╛рди рдХреЗ рд╣реЛрд▓реЛрдореЛрд░реНрдлрд┐рдХ рднрд╛рдЧ рдореЗрдВ рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛ рд╡реИрдХреНрдЯрд░ ) рдФрд░ a рджреЛ рд╕рд╣рд╕рдВрдпреЛрдЬрдХ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреЗрдирд░ A рдХрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЯрд┐рд▓ (2,0) K├дhler рдХреЗ рдХрдИ рдЧреБрдирд╛) рддреЛ A(Z1,Z2) = z.' * a * z ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдБ рдЬреЛрд░ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ z1 , z2 рдФрд░ a рдХреЗрд╡рд▓ рдХреБрдЫ рдЧрдгрд┐рддреАрдп рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк _ рдмрдирд╛рддрд╛ рд╣реИ (рдПрдХ рдЪреБрдиреЗ рд╣реБрдП рдЖрдзрд╛рд░ / рд╕рдордиреНрд╡рдп рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП) рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрдгрд┐рддреАрдп рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдпреЗ рдЬрд╛рдиреЗ рдХрд┐ рдпреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдБ рдХреНрдпрд╛ рджрд░реНрд╢рд╛рддреА рд╣реИрдВред

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

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ @StefanKarpinski рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ @andyferris рджреНрд╡рд╛рд░рд╛ рд╣реА рдкреНрд░рддрд┐рдзреНрд╡рдирд┐рдд

  1. рдПрдкреАрдПрд▓ рд╕реНрдЯрд╛рдЗрд▓ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ
  2. v 'рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ Covector рдпрд╛ Transpose type рджреЗрддрд╛ рд╣реИ

рдмрд╛рдХреА рд╕рдм рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред row(M,i) рдФрд░ col(M,i) рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ M[i,:].' рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА? IIUC, M[i,:]' рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ conj рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗ?

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

рддрдм рд╕реЗ рдореИрдВрдиреЗ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рдХреНрдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЛ рд╕рдВрдпреБрдЧреНрдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВ ...

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╢рд╛рдмреНрджрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред Dirac рд╕рдВрдХреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ (рдХреЛрдИ рднреА) рдореИрдЯреНрд░рд┐рдХреНрд╕ M = sum_i | i>рдЬреИрд╕реЗ [0,0,1, ..., 0], рд╣рдо рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВU рд╣рдореЗрдВ row(U,i)' = col(UтАЩ,i) рдЬреЛ рдПрдХ eigendecomposition рд╕реЗ рдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ eigenvectors рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдПрдВрдбреА

15 рдорд╛рд░реНрдЪ 2015 рдХреЛ рд░рд╛рдд 9:36 рдмрдЬреЗ, рдЬреЗрдл рдмреЗрдЬрд╛рдирд╕рди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ @StefanKarpinski https://github.com/StefanKarpinski рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВ , рдЬреЛ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ @andyferris https://github.com/andyferris рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐рдд рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ

рдПрдкреАрдПрд▓ рд╕реНрдЯрд╛рдЗрд▓ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ
v 'рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ Covector рдпрд╛ Transpose type рджреЗрддрд╛ рд╣реИ
рдмрд╛рдХреА рд╕рдм рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред рдкрдВрдХреНрддрд┐ (M, i) рдФрд░ рдХреЙрд▓ (M, i) рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ M [i ,:] рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред ' ? IIUC, M [i ,:] 'рдХреНрдпрд╛ рдПрдХ рд╕рдВрдпреБрдЧреНрдорди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛?

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub https://github.com/JuliaLang/julia/issues/4774#issuecomment -81228816 рдкрд░

рдХреЛрдИ рд╕реНрд╡рдпрдВрд╕реЗрд╡рдХ рдЗрд╕ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП? рдЙрджрд╛ @mbauman , @jakebolewski рдЬрд┐рдиреНрд╣реЗрдВ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдирд╣реАрдВ рд╣реВрдБ :)

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

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЖрдЧреЗ рдмрдврд╝ рд╕рдХреЗрдВ, рд╣рдореЗрдВ 9, 8 рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЙрд╕ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБред

рд╣рдо рдмрд╣реБрдд рдХрд░реАрдм рд╣реИрдВ

рдПрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд░реВрдк рдореЗрдВ, рдпрджрд┐ рдХреЛрдИ Transpose рдФрд░ CTranspose рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛, рддреЛ рдЙрдирдХрд╛ рд╕рд╛рджрд╛ Conjugate рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ conj(A) рдЖрд▓рд╕реА рднреАред BLAS рдХреЗ рд╕рд╛рде рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ (рдФрд░ BLAS рдореЗрдВ C рдЕрд░реНрде рд╣реИ hermitian рд╕рдВрдпреБрдЧреНрдо), рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХрднреА рднреА рдкреВрд░реНрдг рдЬреВрд▓рд┐рдпрд╛ BLAS рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рддреЛ рдпрд╣ рднреА рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред conj(A)*B рд╕реНрдкрд╖реНрдЯ рд╕рдВрдпреБрдЧреНрдорди рдХреЗ рдмрд┐рдирд╛ред

рдореИрдВ, рдПрдХ рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдм рдореИрдВ рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрддрд╛ рд╣реВрдВ рдЬрд┐рддрдирд╛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдерд╛ред

рд╢рд╛рдпрдж @andreasnoack рдФрд░ @simonbyrne рд╣рдореЗрдВ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ # 6837 рдкрд░ рджреЛрдмрд╛рд░рд╛ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ @simonbyrne рд╕реЗ рд╕рд╣рдордд Transpose{Array} <: AbstractArray рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдиреНрдп рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░:

  • рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдЧрдгрдирд╛ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдореЛрдВ рдХреЛ рди рдЬреЛрдбрд╝реЗрдВ" рдирд┐рдпрдо рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ u рдХрд╛ рдЖрдХрд╛рд░ (n,) , рддреЛ u * u' рдПрдХ рд╕рдВрдЧрдгрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ (n,) x (1, n) ред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдЙрддреНрдкрд╛рдж рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ _unless_ рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ (n, 1) рд╣реЛрдиреЗ рдХрд╛ рдкрд╣рд▓рд╛ рддрд░реНрдХ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рддреЗ рд╣реИрдВред
  • MATLAB рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рд╢рдмреНрджрд╛рд░реНрде рдХрд╛ "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо" рдирд┐рдпрдо рдореВрд▓ рд░реВрдк рд╕реЗ "рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝рд░ рд╕рднреА рдЖрдпрд╛рдореЛрдВ" рдирд┐рдпрдо рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИред рдкреВрд░реНрд╡ рдирд┐рдпрдо рдХреЗ рд╕рд╛рде, рдЖрдХрд╛рд░ (n,) рд╢рдмреНрджрд╛рд░реНрде (n,1) рдФрд░ рдЖрдХрд╛рд░ (n,1,1) рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдкрд╛рд░рдЧрдорди рд╕рднреА рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЙрд▓рдЯ рджреЗрддрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ (n,) , (1, n) , рдФрд░ (1,1,n) , рдЬреЛ рдХрд┐ _cannot_ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓реЗрдЯреНрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рдЗрд╕реЗ рддрд╛рд░реНрдХрд┐рдХ рдЪрд░рдо рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдкрд░, рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдореЗрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ _leading_ singletons рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдЕрд╕реНрдкрд╖реНрдЯ рдЖрдХреГрддрд┐ рд╣реЛрддреА рд╣реИ, рдЬреЛ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕рдВрдЧрдд рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рд╣рд┐рддреНрдп рд╕рд░реНрд╡реЗрдХреНрд╖рдг рднреА рдХрд┐рдпрд╛ рдФрд░ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдПрдкреАрдПрд▓ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ред рдПрдкреАрдПрд▓ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдирд┐рдпрдо рдХреЛ рд╣рдордиреЗ рдЖрдЗрд╡рд░рд╕рди рдХреА 1962 рдХреА рдкреБрд╕реНрддрдХ рдореЗрдВ рдирд╣реАрдВ рдХрд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреАрдПрд▓ \ 360 (1968; рдПрдкреАрдПрд▓ рдХрд╛ рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдореЗрдВ рдореМрдЬреВрдж рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, APL \ 360 рд╕реНрдХреЗрд▓ рдФрд░ 1-рд╡реИрдХреНрдЯрд░, рдПрдХ рдЕрд╕рдВрдЧрддрд┐ рд╣реИ рдЬрд┐рд╕реЗ рд╕рд╛рд╣рд┐рддреНрдп рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рдорд┐рд▓реА рдереА (Haegi, 1976)ред рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдФрдкрдЪрд╛рд░рд┐рдХ рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреА рдЪрд░реНрдЪрд╛ рдкрд╣рд▓реЗ рдмреНрд░рд╛рдЙрди рдХреЗ рдкреАрдПрдЪрдбреА рдереАрд╕рд┐рд╕ (1972 рдореЗрдВ; рд╡рд╣ рдмрд╛рдж рдореЗрдВ рдПрдкреАрдПрд▓ 2 рдХреЗ рд░реВрдк рдореЗрдВ рд╣реБрдИ) рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА, рдФрд░ рдЙрдирдХреЗ рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджреЗрддреЗ рд╣реБрдП рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ред

APL2 рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рд╣реИ:

  • рдХрд╛рд░реНрд▓ рдлреНрд░рд┐рдЯреНрдЬ рд░реВрд╣рд░ред "рдПрдкреАрдПрд▓ рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдПрдХ рд╕рд░реНрд╡реЗрдХреНрд╖рдгред" рдПрдкреАрдПрд▓, рдПрдкреАрдПрд▓ '82 рдкрд░ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рд╕рдореНрдореЗрд▓рди рдХреА рдХрд╛рд░реНрдпрд╡рд╛рд╣реА рдореЗрдВ, рдкреГрд╖реНрда 277тАУ14, рдиреНрдпреВрдпреЙрд░реНрдХ, рдПрдирд╡рд╛рдИ, рдпреВрдПрд╕рдП, 1982ред рдПрд╕реАрдПрдоред

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

  • рдЯреАред рдореЛрд░ред "рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрддред" рдЖрдИрдмреАрдПрдо рдЬрд░реНрдирд▓ рдСрдл рд░рд┐рд╕рд░реНрдЪ рдПрдВрдб рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ, 17 (рдорд╛рд░реНрдЪ): 135-175, 1973ред

    • рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдареБрдордХреЗ рдиреЗ рдХреНрд╡рд┐рди рдХреЗ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рд╕реЗрдЯ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджрд┐рдпрд╛, рдпрд╣ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдХрд┐ рдХреИрд╕реЗ рдПрдкреАрдПрд▓ рд╕рд╛рд╣рд┐рддреНрдп "рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдПрд░реЗ" рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕реНрд╡-рдпреБрдХреНрдд рд╕реЗрдЯреЛрдВ рдХреА рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдХреЗрд▓ рдХреЛ рд░реИрдВрдХ-0 рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред ([1] == 1, "рдЧреНрд░рд╛рдЙрдВрдбреЗрдб рд╕рд░рдгрд┐рдпреЛрдВ" рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд╣рд╛рдВ [1]! = 1. рдмрд╛рдж рдореЗрдВ рд╢реАрд▓рд╛ рдПрдоред рд╕рд┐рдВрдЧрд▓рдЯрди рджреНрд╡рд╛рд░рд╛ рдЙрдирдХреЗ 1980 рдХреЗ рдорд╛рд╕реНрдЯрд░ рдереАрд╕рд┐рд╕ рдореЗрдВ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЧреНрд░рд╛рдЙрдВрдбреЗрдб рдПрд░реЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрд░ рдХреЗ рд╕рд░рдгреА рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред)

    • рдЕрдзрд┐рдХ рдпрд╣ рднреА рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рд╕реНрдХреЗрд▓рд░ рдХреЛ рд╕рд░рдгреА рд╕рд░рдгреА рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

    • рд╕рд╛рдорд╛рдиреНрдп рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП "рдЕрдк / рдбрд╛рдЙрди-рдиреЗрд╕" рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдЕрдзрд┐рдХ:

      "V рдХреЛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ n- рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реА рдкрд░ contravariance рдФрд░ covariance рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рдЕрд╡рд╣реЗрд▓рдирд╛ рдХрд░рдирд╛, V рдкрд░ рд╡реИрд▓реЗрдВрд╕ q рдХрд╛ рджрд╕рд╡рд╛рдВ рднрд╛рдЧ рд╕реВрдЪреА V рдХреЗ рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЙрддреНрдкрд╛рдж рдХрд╛ рдПрдХ рдмрд╣реБрдЦрдВрдбреАрдп рдорд╛рдирдЪрд┐рддреНрд░рдг рд╣реИред V рдХреА рд▓рдВрдмрд╛рдИ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рд╣реИ рдпрджрд┐ рд╡реА рдХреЗ рдкрд╛рд╕ рдЖрдзрд╛рд░ рд╣реИ, рддреЛ рд╡реА рдкрд░ рд╡реИрд▓реЗрдВрд╕ рдХреНрдпреВ рдХрд╛ рдПрдХ рдЯреЗрдиреЙрд░ _component рдЯреЗрдиреНрд╕рд░_ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдХреНрдпреВ рдЕрдХреНрд╖ рдкрд░ рдПрдХ рд╕рд░рдгреА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд▓рдВрдмрд╛рдИ рдПрдиред "

  • рдЬреАред рд▓реБрдИрд╕ред "рдПрдкреАрдПрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╕рд░рдгреА рдЕрдиреБрдХреНрд░рдордг рдкреНрд░рдгрд╛рд▓реА", рдПрдкреАрдПрд▓ рдкрд░ рд╕рд╛рддрд╡реЗрдВ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рд╕рдореНрдореЗрд▓рди рдХреА рдХрд╛рд░реНрдпрд╡рд╛рд╣реА - рдПрдкреАрдПрд▓ '75, 234-239, 1975ред

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

  • рд╣рдВрд╕ рдЖрд░ рд╣реИрдЧреАред "рдПрдкреАрдПрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЯреНрд░реЗрдХрд▓реАрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдПред" ACM SIGAPL APL рдХреЛрдЯ рдХреНрд╡рд╛рдб, 7 (2): 8тАУ18, 1976ред

    • рдЗрд╕ рдкрддреНрд░ рдиреЗ рд╢рд╛рд╕реНрддреНрд░реАрдп APL \ 360 рдореЗрдВ рдПрдХ рд╡рд┐рд╕рдВрдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХреА, рдЬрд┐рд╕рдиреЗ рд╕реНрдХреЗрд▓рд░ рдФрд░ 1-рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛, рдФрд░ рд╡рдХрд╛рд▓рдд рдХреА рдХрд┐ рдПрдкреАрдПрд▓ рдЕрдиреБрдХреНрд░рдордг рдирд┐рдпрдо рдиреЗ рдЗрд╕ рдЯрдХрд░рд╛рд╡ рдХреЛ рдкрдХрдбрд╝ рдореЗрдВ рдирд╣реАрдВ рдЖрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

    • рдЗрд╕ рдкрддреНрд░ рдореЗрдВ рд▓реБрдИрд╕, 1975 рдХреЗ рд╕рдорд╛рди рдПрдХ рдирд┐рд░реНрдорд╛рдг рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ; рдХрд╛рд░реНрдп рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

  • рдЬреЗрдП рдЧреЗрд░рде рдФрд░ рдбреАрдПрд▓ рдСрд░реНрдеред "рдПрдкреАрдПрд▓ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдФрд░ рд╡рд┐рд▓рдпред" APL, APL '88 рдкрд░ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рд╕рдореНрдореЗрд▓рди рдХреА рдХрд╛рд░реНрдпрд╡рд╛рд╣реА рдореЗрдВ, рдкреГрд╖реНрда 156-161, рдиреНрдпреВрдпреЙрд░реНрдХ, рдПрдирд╡рд╛рдИ, рдпреВрдПрд╕рдП, 1988. рдПрд╕реАрдПрдоред

    • рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдкреАрдПрд▓ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдирд┐рдпрдо рдХреЛ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдХрд░ рдЙрдЪрд┐рдд рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд░реИрдВрдХ рд╕рдВрд░рдХреНрд╖рдг рдирд┐рдпрдо рдФрд░ рд▓реБрдИрд╕ рдФрд░ Haegi рдХреЗ рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, "рдЯреНрд░реЗрд▓рд┐рдВрдЧ рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ" рдирд┐рдпрдо рдХреЗ рдмрд┐рдирд╛, рд╣рдо рдкрд╣рдЪрд╛рди рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ

image

рдЪреВрдВрдХрд┐ рдмрд╛рдПрдВ рд╣рд╛рде рдХреА рдУрд░ рдПрдХ рдЕрджрд┐рд╢ (рдЯреНрд░реЗрд╕ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░) рд╣реИ рдФрд░ рджрд╛рд╣рд┐рдиреЗ рд╣рд╛рде рдХреА рддрд░рдл (1, n) x (n, n) x (n,) = (1,) ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╣рдо рдЗрд╕ рдкрд╣рдЪрд╛рди рдХреЛ рд╕рджрд┐рд╢ рд╡рд╛рд╖реНрдкреЛрддреНрд╕рд░реНрдЬрди рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рдЪрдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдЯреНрд░реЗрд╕ рдСрдкрд░реЗрд╢рди рдХреА рдЪрдХреНрд░реАрдп рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬреЛ рдкрд╣рд▓реА рдкрд╣рдЪрд╛рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЯреНрд░реЗрд╕ рдХреЗ рдЕрдВрджрд░ рдХреА рдорд╛рддреНрд░рд╛ рдпрд╛ рддреЛ рд╕реНрдХреЗрд▓рд░ рдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЯреНрд░реЗрд╕ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИ)ред Avv' рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ: (Av)v' рдФрд░ A(vv') рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдорд╛рддреНрд░рд╛ рд╕реЗ рднреА v'Av рдХрд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ _or_ рдПрдХ рдЕрджрд┐рд╢ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред (рдпрджрд┐ рд╕реНрдХреЗрд▓рд░, рджреВрд╕рд░реА рдкрд╣рдЪрд╛рди рднреА рд░рдЦрддрд╛ рд╣реИред) v'Av рдХреЗрд╡рд▓ 1-рд╡реЗрдХреНрдЯрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ "рдЯреНрд░реЗрд▓рд┐рдВрдЧ рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ" рдирд┐рдпрдо рд╕рдХреНрд░рд┐рдп рд╣реИ, рддреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ 1x3 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЖрдХрд╛рд░ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрджрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЯреНрд░реЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЖрдХрд╛рд░ рдкрд░ vv' рдФрд░ рджреНрд╡рд┐рдШрд╛рдд рд░реВрдкреЛрдВ рдХрд╛ v'Av рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рддрд╛ рд╣реИред

@ рд▓реНрд╣рд╛рдУ : рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рдЦрд┐рд▓рд╛рдл рдХреНрдпрд╛ рдмрд╣рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк "рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХрд▓ рдЖрдпрд╛рдо рдирд┐рдпрдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ" рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рдХрдм рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

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

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

MATLAB рджреНрд╡рд╛рд░рд╛ "рдЯреНрд░реЗрд▓рд┐рдВрдЧ рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ" рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ (@alanedelman рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдХреЛ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред MATLAB рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдбреЗрдХреНрд╕-рдЯреВ-рдСрдлрд╕реЗрдЯ рдЧрдгрдирд╛ рдХреЛ sub2ind рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрд╕реА рд░реИрдЦрд┐рдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдЖрдк рдЙрд╕ рдкрд░ рдХрд┐рддрдиреЗ рдЕрдиреБрдЧрд╛рдореА 1s рдлреЗрдВрдХрддреЗ рд╣реЛрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, MATLAB рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЕрдиреБрдХреНрд░рдордг рдкреНрд░рд▓реЗрдЦрди рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрдХреНрд░рдордг рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП:

рдмреА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЬрд┐рд╕рдореЗрдВ 1 рдХреЗ рдмрд░рд╛рдмрд░ рдЯреНрд░реЗрд▓рд┐рдВрдЧ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, ndims (B) рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред

рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реИрдз рддрд░реНрдХ рд╣реЛрдиреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ (n,) , (n,1) , (n,1,1...) рд╕рд░рдгрд┐рдпрд╛рдБ рд╕рднреА рд╕рдорд╛рди рд╢реНрд░реЗрдгреА рдореЗрдВ рд╣реИрдВред (рдпрджрд┐ n=1 , рддреЛ рд╕рдорддреБрд▓реНрдп рд╡рд░реНрдЧ рдореЗрдВ рднреА рд╕реНрдХреЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред)

рдЙрджрд╛рд╣рд░рдг:

  • A*b рдФрд░ A\b рдЬрд╣рд╛рдВ A рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ рдФрд░ b рдПрдХ рд╕рджрд┐рд╢ рдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ( n x 1 matrices рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╢рдмреНрджрд╛рд░реНрде)
  • hcat(A, b) рдЬрд╣рд╛рдВ A рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ рдФрд░ b рдПрдХ рд╡реЗрдХреНрдЯрд░ рдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

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

рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВ Transpose{A<:AbstractArray} рдХреА рдПрдХ рдЙрдк рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ AbstractArray рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ (рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореИрдВ рдХреБрдЫ рдЕрдирджреЗрдЦреА рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВ рдирд╣реАрдВ рддреБрдо рд▓реЛрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рджреЗ рджрд┐рдпрд╛ рд╣реИ) :
рд╕рд╛рде рдореЗрдВ

typealias AbstractVectorTranspose{A<:AbstractVector} Transpose{A}
typealias AbstractMatrixTranspose{A<:AbstractMatrix} Transpose{A}
typealias AbstractTMatrix Union(AbstractMatrix, AbstractMatrixTranspose} 

(рдФрд░ рдЗрд╕реА рддрд░рд╣ CTranspose ) рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

AbstractVectorTranspose * AbstractVector = Number
AbstractVector * AbstractVectorTranspose = AbstractMatrix
AbstractVectorTranspose * AbstractTMatrix = AbstractVectorTranspose
AbstractTMatrix * AbstractVector = AbstractVector
AbstractTMatrix * AbstractTMatrix = AbstractTMatrix

рдПрдХрдорд╛рддреНрд░ рдЦреБрд▓рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ AbstractVector * AbstractTMatrix рдХрд╛ рд╕рдорд░реНрдерди рддрдм рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм AbstractTMatrix рдореЗрдВ рдкрд╣рд▓реЗ рдЖрдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ 1 рд╣реЛ, рдпрд╛ AbstractVector * AbstractVectorTranspose рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирдП рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдЙрди typealias рдФрд░ union sa рдХреЛ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ v.'*A рдХреА рдЧрдгрдирд╛ (A.'*v).' , рддреЛ Conjugate рд░реИрдкрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрджрд┐ A рд╣реА A=B' ред

рдореИрдВ @simonbyrne рд╕реЗ рд╕рд╣рдордд Transpose{Array} <: AbstractArray рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдЖрдк рд╡рд╣рд╛рдБ рд╡рд┐рд╕реНрддреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ https://github.com/JuliaLang/julia/issues/4774#issuecomment -59428215 рдореЗрдВ рд░рд╛рдп рдпрд╣ рдереА рдХрд┐ CoVector AbstractVector рдХрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛ Transpose{Matrix} <: AbstractArray ред

рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдХреНрдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ CoVector рдХреЛ рдЬреНрдпрд╛рджрд╛рддрд░ Vector рдЬреИрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ Vector рдПрдХ рдХреЙрд▓рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ Matrix рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рдП рдЬрдмрдХрд┐ CoVector рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ Matrix рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддреА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ covector рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЪрд╛рд░ рд╣реИред рдХреНрдпрд╛ рдЪреАрдЬреЗрдВ рдЖрд╕рд╛рди рдпрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдЕрдЧрд░ рдХреЗрд╡рд▓ _leading_ рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ / рдХреЛрд╡реЗрдХреНрдЯрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

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

@ рдордмреВрдорди :

рдХреНрдпрд╛ рдЪреАрдЬреЗрдВ рдЖрд╕рд╛рди рдпрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдпрджрд┐ рдХреЗрд╡рд▓ рдкреНрд░рдореБрдЦ рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ / рдХреЛрд╡реЗрдХреНрдЯрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

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

@tkelman :

рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ # 4774 (рдЯрд┐рдкреНрдкрдгреА) рдореЗрдВ рд░рд╛рдп рдпрд╣ рдереА рдХрд┐ CoVector рдХреЛ AbstractVector рдХрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП Trans {{рдореИрдЯреНрд░рд┐рдХреНрд╕} <: AbstractArray рдирд╣реАрдВ рд╣реЛрдирд╛ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧреЗрдЧрд╛ред

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

  • рд╕рд░рдгреА рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдЖрдХрд╛рд░, рд▓рдВрдмрд╛рдИ, рдЧреЗрдЯрд┐рдВрдбреЗрдХреНрд╕, рд╕реЗрдЯрд┐рдВрдбреЗрдХреНрд╕, рдПрдЪрд╕реАрдПрдЯреА, рд╡реАрд╕реАрдПрдЯреА, рд░рд┐рд╢реЗрдк, рд░реЛрдЯ 90 рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...
  • рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╢рдмреНрджрд╛рд░реНрде +, -, *, /,, ', рдЯреНрд░реЗрд╕ рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ ...

рдпрджрд┐ рд╣рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд cat рдХрд╛рд░реНрдпреЛрдВ рдПрдХ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдиреЗ рдХреЗ AbstractArray , рддреЛ Transpose{<:AbstractArray} рдирд╣реАрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣реИ рдПрдХ AbstractArray рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рд╕рдВрдпреЛрдЬрди рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрд▓рдЧ рд╣реИрдВ ред рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ рдЖрдХреГрддрд┐ рдФрд░ рдЕрдиреБрдХреНрд░рдордг рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдорд╛рдирддреЗ рд╣реИрдВ рддреЛ рд╕реНрдерд┐рддрд┐ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реИред

рдпрджрд┐ рд╣рдо рдПрдХ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рд╕рдВрдпреЛрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ AbstractArray , рддреЛ рдпрд╣ рднреА рдЖрд╕рд╛рди рд╕рд╣реА рдард╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬреИрд╕реЗ рдкреНрд░рдХрд╛рд░ SymTridiagonal рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ AbstractArray рдПрд╕, рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрдпреЛрдЬрди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рдж рд╕реЗ SymTridiagonal s рдЬреИрд╕реЗ [SymTridiagonal(randn(5), randn(4)) randn(5)] рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред

@toivoh :

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ covector рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдРрд╕реА рдкрд╣рдЪрд╛рдиреЗрдВ рд╣реИрдВ рдЬреЛ рдмрддрд╛рддреА рд╣реИрдВ рдХрд┐ Transpose{Vector} рдХрд╛ рдЕрдиреБрдХреНрд░рдордг рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рд╛рдорд╛рдиреНрдп Vector s рдХреЗ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП, v[1] v' * eтВБ = v тЛЕ eтВБ рдФрд░ v[1:2] рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, v' * [eтВБ eтВВ] , рдЬрд╣рд╛рдБ eтВБ рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рд╣реЛрддрд╛ рд╣реИ рд╡рд┐рд╣рд┐рдд рдЖрдзрд╛рд░ Vector{Int} [1, 0, 0, ...] рдФрд░ eтВВ [0, 1, 0, 0, ...] ред рдпрджрд┐ рд╣рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд, рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рдкрдХрдбрд╝ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЗрди рдкрд╣рдЪрд╛рдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдХреЛрдИ рднреА рджрд╛рд╡рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ

(v')[1] == (eтВБ' * v'') == (v' * eтВБ)' == (v тЛЕ eтВБ)' == conj(v тЛЕ eтВБ)* = conj(v[1])

(рдЬрд╣рд╛рдВ рдкрд╣рд▓рд╛ рдХрджрдо рдПрдХ рдирдпрд╛ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рд╣реИ рдФрд░ рдЪреМрдерд╛ рдЗрд╕ рддрдереНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкреНрд▓рд╛рдВрдЯ рдХрд░рдирд╛ рдПрдХ рдиреЛ-рдСрдк рд╣реИ) рддрд╛рдХрд┐ Transpose{Vector} рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝рди рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХреЗ, рдФрд░ CTranspose{Vector} рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╢рдмреНрджрд╛рд░реНрде рд╕реЗ рд╕рд░рдгреА рд╢рдмреНрджрд╛рд░реНрде (cf # 10064) рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдФрд░ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ рдЬрд╣рд╛рдВ рд░реБрдХ-рд░реБрдХ рдХрд░ рд╣реЛрддреЗ рд╣реИрдВред

  • рд╕рд░рдгреА рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдЖрдХрд╛рд░, рд▓рдВрдмрд╛рдИ, рдЧреЗрдЯрд┐рдВрдбреЗрдХреНрд╕, рд╕реЗрдЯрд┐рдВрдбреЗрдХреНрд╕, рдПрдЪрд╕реАрдПрдЯреА, рд╡реАрд╕реАрдПрдЯреА, рд░рд┐рд╢реЗрдк, рд░реЛрдЯ 90 рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...
  • рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╢рдмреНрджрд╛рд░реНрде +, -, *, /,, ', рдЯреНрд░реЗрд╕ рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ ...

рдЙрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ +1 рдФрд░ Transpose <: AbstractArray ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдПрдХрд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХрд╛ рдкрд░рд┐рдгрд╛рдо * рд╡реЗрдХреНрдЯрд░ (рдПрдХрд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рдЕрдиреБрдмрдВрдз) рдПрдХ рд╕реНрдХреЗрд▓рд░ (рд╢реВрдиреНрдп рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ) рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@jihao : рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рджреЗрдЦ рдкрд╛ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпреЛрдВ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЪрд╛рд╣рд┐рдП

(v')[1] == (eтВБ' * v'')

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

рдФрд░ +1 рдХреЛ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЛ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдПред

рд▓реЗрдХрд┐рди рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ SymTridiagonal рд╕рд╛рде рд╕рд╣рдорддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛?

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

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

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

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

@toivoh рд╣рд╛рдБ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд░реИрдЦрд┐рдХ рдЕрдиреБрдХреНрд░рдордг рд╕рд╛рдзрд╛рд░рдг (рдЯрдкрд▓?) рд╕реЗ рдмрдирд╛ рд╣реИ рдпрд╛ рддреЛ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рд╣реИред

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

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

рд╕рд╣реА, рджреБрдЖред

@ рдЬреВрдереЛ : рдореИрдВ рд╕рд╣рдордд рд╣реВрдВред рдФрд░ рд╡рд╣рд╛рдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрд╡реЗрдЯрд░реНрд╕ рдХреЛ рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреА рддрд░рд╣ рдЗрдВрдбреЗрдХреНрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛?

@toivoh , рдЕрдЧрд░ рдЖрдк рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗ

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

@ рдЬреВрдереЛ : рдареАрдХ рд╣реИ, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡рдд: рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЛ рд╡реИрд╕реЗ рднреА рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣рд╛рдБ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рд╢рдмреНрдж рджреЗ рд░рд╣реЗ рд╣реИрдВ:

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

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

рдпрд╣рд╛рдБ рд╕реНрдХреЗрд▓рд░реНрд╕ рдФрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рд╢реБрджреНрдз рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ): рдПрдХ рд╕реНрдХреЗрд▓рд░ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкреНрд░рдХрд╛рд░ 1 x 1 рдХреЗ рд▓рд┐рдП рд╡рд┐рд╡рд╢ рд╣реИрдВред рдПрдХ рд╡реЗрдХреНрдЯрд░ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╡рд┐рд╡рд╢ рд╣реИ be nx 1. (рдореИрдВ рдиреАрдЪреЗ рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкреНрд░рдХрд╛рд░ 1 x n рддрдХ рд╕реАрдорд┐рдд рд╣реИрдВред) рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╣рдо рджреЛ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддреЗ рд╣реИрдВ: (рдмрд╣реБрдд рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ)

  • рд╡рд┐рд╕реНрддрд╛рд░: рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рд╕реЗ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рдлрдВрдХреНрд╢рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрджрд┐ рдпрд╣ рдХрд┐рд╕реА рдирд┐рд╢реНрдЪрд┐рдд рдЖрдпрд╛рдо рдХреЗ рджрд┐рдП рдЧрдП рдЖрдпрд╛рдореЛрдВ рдореЗрдВ 1 рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╣рдореЗрд╢рд╛ рдЖрдЙрдЯрдкреБрдЯ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛, рддреЛ рдпрд╣ рддрдереНрдп рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдПрдиреНрдХреЛрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдЗрд╕реЗ рдПрдХ рд╕реНрдХреЗрд▓рд░ / рд╡реЗрдХреНрдЯрд░ / рдХреЛрд╡реЗрдХреНрдЯрд░ рдмрдирд╛ рджреЗрдЧрд╛)ред
  • рд╢реЛрдзрди: рдпрджрд┐ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╢реБрджреНрдз рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдЗрдирдкреБрдЯ рдХреЛ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЖрдпрд╛рдо рдореЗрдВ рдПрдХ рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдпрд╣ рдПрдХ рдЗрдирдкреБрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рддрдереНрдп рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рд╣рдо рдКрдкрд░ рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ, рддреЛ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рд╕рдВрдХреНрд░рдордг рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреА рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рдЪрд┐рдВрддрд╛ рдХрд╛ рд╕рдВрдЪрд░рдг 1 рдореИрдЯреНрд░рд┐рдХреНрд╕ 1 xn рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреИрджрд╛рд╡рд╛рд░ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЗрд╕ рддрдереНрдп рдХреЛ рдПрдирдХреЛрдб рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдкрд╣рд▓реЗ рдЖрдпрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЖрдХрд╛рд░ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЛрд╡реЗрдХреНрдЯрд░ рдорд┐рд▓рддрд╛ рд╣реИред

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

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

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

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

рдореИрдВ рдпрд╣рд╛рдБ @ рдЬреВрдереЛ рд╕реЗ рд╕рд╣рдордд рд╣реВрдБ; рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ MATLAB рдХреЗ "рд╕рдм рдХреБрдЫ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ" рд╢рдмреНрджрд╛рд░реНрде рд╕реЗ рджреВрд░ рдЬрд╛рдирд╛ рд╣реИред MATLAB рдХреЗ "рдЕрдиреБрдЧрд╛рдореА рдПрдХрд▓ рдЖрдпрд╛рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ" рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреЛ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рддрд╣рдд рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рдпрдо рд╕рдорддреБрд▓реНрдпрддрд╛ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ T рд╕рджрд╕реНрдп рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ Array{T,N} рд▓рд┐рдПред рд╕рднреА N , рдФрд░ рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИ рдХрд┐ MATLAB рдХрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред ( рдЬреЛрдЗрд╢рд╛ рдФрд░ рдмрдирд░реНрдЬреА, 2006 рдХреЗ рдкреНрд░рдореЗрдп 1 рджреЗрдЦреЗрдВ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд░рд┐рдгрд╛рдо рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╣реИ рдХрд┐ рдмрджрд▓рддреЗ рд░реИрдВрдХ рд░реИрдВрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред)

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

рдпрд╣ рдХрд┐рддрдирд╛ рдмреБрд░рд╛ рд╣реИ рдЕрдЧрд░ рд╣рдо рдХреЗрд╡рд▓ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ T рдФрд░ Array{T,0} рдХреЛ рднреНрд░рдорд┐рдд рдХрд░реЗрдВрдЧреЗ? (рдЬреИрд╕реЗ рдЕрдиреБрдХреНрд░рдордг: M[:,2] Array{T,1} , рд▓реЗрдХрд┐рди M[2,2] Array{T,0} рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)

рд╣рдо рдЕрднреА рднреА Transpose{Vector} рд╕рд╛рде рдорд╛рдиреНрдп рд╢рдмреНрджрд╛рд░реНрде рдмрдирд╛рдП рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

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

рдорддрд▓рд╛рдм-рдкреНрд░рдХрд╛рд░ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ M*v' рдФрд░ v*M рдХрднреА-рдХрднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ M m x 1 рддреЛ M*v' рд╡реИрдз рд╣реИ рдФрд░ рдПрдХ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдЬреИрд╕реА рдорд╛рддреНрд░рд╛ ( v' 1 x n ) рджреЗрддрд╛ рд╣реИред рдЗрд╕реА рдкреНрд░рдХрд╛рд░, рдпрджрд┐ M 1 x m рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рдЕрдиреБрдЧрд╛рдореА рдПрдХрд▓" рдирд┐рдпрдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ v*M рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди n x 1 рдФрд░ 1 x m рдХреЗ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

APL рд╕рд╛рд╣рд┐рддреНрдп рдореЗрдВ T рдФрд░ Array{T,0} рдХрд╛ рдореВрд▓реНрдп рд▓рдЧрд╛рдиреЗ рдХрд╛ рдкреНрд░рд╢реНрди рднреА рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛ - APL рдореЗрдВ, рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рдЙрдард╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ Array{T,0} рдФрд░ T рднреЗрдж рд╣реИрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╡реЗ "рдЧреНрд░рд╛рдЙрдВрдбреЗрдб рдПрд░реЗ" рд╣реИрдВ (рдЬреЛ T рд▓рд┐рдП рдиреАрдЪреЗ рдЧрд┐рд░рддреЗ рд╣реИрдВ), рдЕрдиреНрдпрдерд╛ рд╡реЗ "рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдПрд░реЗ" рд╣реИрдВ (рдЬреЛ Array{T,0} рд╣реА рдШрдЯрддреЗ рд╣реИрдВ)ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЕрдзрд┐рдХ, 1973 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдмрд┐рдд рд╣реБрдЖ рдХрд┐ рдпрд╛ рддреЛ рд╡рд┐рдХрд▓реНрдк рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рд░реВрдк рд╕реЗ рд╕реБрд╕рдВрдЧрдд рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдПрдкреАрдПрд▓ рдиреЗ рдХрднреА рдЙрд╕ рд╕рд╡рд╛рд▓ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЪрд┐рдХрд┐рддреНрд╕рдХ рд╕реЗрд╡рд╛рдирд┐рд╡реГрддреНрдд рд╣реЛ рдЧрдП рдереЗ рдпрд╛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдкрд░ рдЪрд▓реЗ рдЧрдП рдереЗред

@ рдЬрд┐рдпрд╛рдУ : рдореБрдЭреЗ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рд╣реБрдЖ рдХрд┐ рдЖрдкрдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд┐рддрдирд╛ рдореМрд▓рд┐рдХ рдерд╛

v[i] = e_i' * v

рдПрдХ рд╕рд╛рде рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдФрд░ рдЕрдиреБрдХреНрд░рдордг рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

M[i,j] = e_i' * M * e_j

рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджрд╛рдПрдВ рд╕реЗ рдЖрдзрд╛рд░ рд╡реЗрдХреНрдЯрд░ рд╡рд╛рд▓рд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рджреВрд╕рд░реЗ рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдордг рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдПрдХ covector рдХреА i th рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ v' рд░реВрдк рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреА рдЬрд╛рдП

v' * e_i = v'[1, i]

рдЬрд╣рд╛рдБ рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ 1 рдХреЛ рдкрд╣рд▓реЗ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛?
рд╡реИрд╕реЗ рднреА, рдЬрдм рд╕реЗ рд╣рдо рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ

e_i' * v = v[i] = v[i, 1]

рддрдм 1 рдХреЛ рдПрдХ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЙрдкрд░реЛрдХреНрдд рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

v' * e_i рдПрдХ рдЕрджрд┐рд╢ e_1' * (v' * e_i) рдПрдХ рдХреЛрд╡рд┐рдпрд╛рд░ рд╣реИ, рди рдХрд┐ рдПрдХ рдЕрджрд┐рд╢ред рдЗрд╕рд▓рд┐рдП рдЖрдпрд╛рдо v'[1, i] = e_1' * v' * e_i рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВ

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

рд╣рд╛рдВ, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдЕрдЧрд▓рд╛ рддрд╛рд░реНрдХрд┐рдХ рдХрджрдо рд╣реИ, рдФрд░ e_i' * M * e_j рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬрд╣рд╛рдВ рд╕рд╣рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рдЙрдкрдпреЛрдЧреА рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐

(e_i' * M) * e_j = m_i' * e_j

e_i' * (M * e_j) = e_i' * m_j

рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдХреЛ рд╡реЗрдХреНрдЯрд░ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдирд┐рдпрдо рдФрд░ рдХреЛрд╡реЗрдХреНрдЯрд░ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдирд┐рдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП v[i, 1] рдЬреИрд╕реЗ рднрд╛рд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдирд┐рдпрдо рдЬреЛ рдЗрд╕ рдЕрдиреБрдХреНрд░рдордг рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
a) рдХреЛ A*v' рдФрд░ v*A рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдкреВрд░реНрд╡ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдмрд╛рдж рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдирд┐рдпрдо рдХреЛ рдЕрд╕рдВрдЧрдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ), рдФрд░
рдЦ) рдпрджрд┐ рд╣рдо v[i] = v[i, 1, 1, 1] рдХреА рд╕рдорд╛рдирддрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрд╡реЗрдХреНрдЯрд░ рдЕрдиреБрдХреНрд░рдордг рдирд┐рдпрдо (v')[1, 1, 1, i] рдФрд░ рдХрд┐рд╕реА рдХреЛ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП "рдЕрдЧреНрд░рдгреА рдПрдХрд▓ рдЧрд╛рдпрдХреЛрдВ рдХреА рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛" рдирд┐рдпрдо рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдЧреАред рдореИрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд╣рд▓реЗ рдЖрдпрд╛рдо рдХреА рдХрдореА рдХреЛ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реВрдВред

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

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

рдореБрдЭреЗ рдпрд╣ рд╕рдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЬрдо рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдореБрдЦреНрдп рд╕рд╡рд╛рд▓ рдмрд╕ рдЗрддрдирд╛ рд╣реИ: size(covector) (n,) рдпрд╛ (1,n) ?

рдпрджрд┐ рд╡реЗ AbstractArray рдкрд░рд┐рд╡рд╛рд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдпрд╣ рднреА рдХрдбрд╝рд╛рдИ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ size рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛред

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

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

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

http://ocw.mit.edu/resources/res-8-001-applied-geometric-algebra-spring-2009/lecture-notes-contents/

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╣рдирд╛ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд╣реИ

e_i' * x = x[i, :] # x is a vector or matrix
x * e_j  = x[:, j] # x is a covector or matrix

рдлрд┐рд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реЛрдЧрд╛

e_i' * M * e_j = e_i' * (M * e_j) = e_i' * M[:, j] = M[:, j][i, :] = M[i, j]
e_i' * M * e_j = (e_i' * M) * e_j = M[i, :] * e_j  = M[i, :][:, j] = M[i, j]

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдХрд╛рдлреА рдкрдХрдбрд╝ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рдЬреИрд╕реЗ v[i, :] рд╡рд░реНрддрдорд╛рди рдореЗрдВ 1x1 рд╕рд░рдгреА рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдХреЗрд▓рд░ рдХрд╛ рдирд╣реАрдВред (рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)
e_i' * M * e_j рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди рдХреА рд╕рдВрдмрджреНрдзрддрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдпрд╛рдореЛрдВ M[:, j][i, :] = M[i, :][:, j] рд╕рд╛рде рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдХреА рдЕрдиреБрдХреВрд▓рддрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдЬреЛ рдХрд┐ рдПрдХ рд╡рд╛рдВрдЫрдиреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддреА рд╣реИред
рд░рд┐рдУрд╕рд┐рдВрдЧ рдХреА рдЙрдкрд░реЛрдХреНрдд рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

v'[:,i] = conj(v[i])

@ рдЬреВрдереЛ : рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ "рдмрд╛рд░-рдмрд╛рд░ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдХрд░рддрд╛ рд╣реИ" рдкреНрд░рддрд┐рдорд╛рди рдЙрдЪреНрдЪ рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ / e_i , рдЖрджрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд╣рд▓реЗ рдХреНрд░рдо рдХреЗ рдЯреЗрдирд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХреБрдЪрди рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдореЗрдВ (рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдХрд┐рди рдЖрдпрд╛рдореЛрдВ рдХрд╛ рдорд┐рд▓рд╛рди рдХрд░рддреЗ рд╣реИрдВ)ред

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

рд╣рд╛рдБ, рдореИрдВ рдЯреЗрдВрд╕рд░ рд╕рдВрдХреБрдЪрди рдЖрджрд┐ рд╕реЗ рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рд╣реВрдБ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рддрддреНрд╡ / рдЯреЗрдВрд╕рд░ рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдорд╛рдирдХ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЖрдзрд╛рд░ рдореЗрдВ рдПрдХ рдЙрдореНрдореАрдж рдореВрд▓реНрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдХреБрдЫ рдЖрдзрд╛рд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЕрдиреБрдмрдВрдз рдХрд░рдирд╛ (рдЬрдм рддрдХ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рдПрдХ orgogonal рдЖрдзрд╛рд░ рд╣реИ ), рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЕрджреНрд╡рд┐рддреАрдп рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдЗрдВрдбреЗрдХреНрд╕ e_i рд╕рд╛рде рдпрд╛ e_i' рд╕рд╛рде рдПрдХ рд╕рдВрдХреБрдЪрди рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рддрдп рдХрд░рдиреЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕рд╣рд╕рдВрдпреЛрдЬрдХ рдпрд╛ рдХрдВрдЯреНрд░рд╛рд╡реЗрд░рд┐рдПрдВрдЯ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдФрд░ рдХреЛрдИ рдЕрдиреВрдард╛ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд╣реИред рдКрдкрд░реА рдФрд░ рдирд┐рдЪрд▓реЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрдиреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВред рд▓реЗрдХрд┐рди e_i рдФрд░ e_i' рд╕рд╛рде рдЕрдиреБрдмрдВрдз рдХрд░рдирд╛ рдЧрдгрд┐рддреАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рднреА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдЧрдгрд┐рддреАрдп рдорд╛рдирдЪрд┐рддреНрд░рдг рдирд╣реАрдВ рд╣реИ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рд╕рдВрдХреНрд░рдордгред рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ (рдореЗрдЯреНрд░рд┐рд╕реЗрд╕) рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХ рдСрдкрд░реЗрд╢рди рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдХреЙрд▓рдо рд╡реИрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛрд╣рд░реА рд╡реИрдХреНрдЯрд░ рднреА рд▓рд┐рдЦрддреЗ рд╣реИрдВред рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реЗрд╢рди рдХреЗрд╡рд▓ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЪрд╛рд▓ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЬрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реИрдХреНрдЯрд░ n x 1 рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рд╣реИрдВ) рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдПрдХ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рд╕реНрдкреЗрд╕ рдореЗрдВ рд╣реИрдВ рдЬрд╣рд╛рдБ рд╕реЗ рдПрдХ рд╕рдВрдпреБрдЧреНрдорди рдореИрдкрд┐рдВрдЧ рд╣реЛрддреА рд╣реИ (рд╕рдВрдпреБрдЧреНрдо) ) рджреЛрд╣рд░реА рдЬрдЧрд╣ рдХреЗ рд▓рд┐рдП рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдЖрдк рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЧреБрдгреЛрдВ рдХреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ M[i,:] рдПрдХ рдЕрд▓рдЧ рд╡рд╕реНрддреБ (рдпрд╛ рддреЛ 1xn рдореИрдЯреНрд░рд┐рдХреНрд╕ рдпрд╛ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░) рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рддрдм M[:,i] (рдЬреЛ рдЪрд╛рд╣рд┐рдП рдПрдХ nx1 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдпрд╛ рд╡реЗрдХреНрдЯрд░ рд╣реЛ)ред рдпрд╣ рддрдереНрдп рдХрд┐ рдпрд╣ рдЙрдЪреНрдЪ рдЖрдпрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдореБрдЦреНрдп рдЪрд░реНрдЪрд╛ рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдПрдкреАрдПрд▓ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдорд┐рдд рдЖрдпрд╛рдо рдЧрд┐рд░рд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЕрд░реНрдерд╛рдд рджреЛрдиреЛрдВ M[:,i] рдФрд░ M[i,:] рдПрдХ рд░реИрдВрдХ 1 рд╕рд░рдгреА рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╡реЗрдХреНрдЯрд░)ред рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рдФрд░ рдпрд╣ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдордг рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдорд┐рд╢реНрд░рдг рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рднреА рднреНрд░рдо / рдЕрд╕рдВрдЧрддрддрд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рд╣реИрдВред рдпрд╣ рддрдм рддрдХ рд╕реБрд╕рдВрдЧрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдЖрдк рд░реИрдВрдХ N=2 рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрдВрдж рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рднреАрддрд░ рд░рд╣рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд рд╕рдм рдХреБрдЫ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕, рд╡реИрдХреНрдЯрд░ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдПрдВ рднреА рд╣реИрдВ, рдФрд░ рдЖрдк рдХрднреА рднреА рдЙрдЪреНрдЪ рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

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

рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рдВрдШрд░реНрд╖ рд╢рд╛рдпрдж рдЗрддрдирд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдирд╣реАрдВ рд╣реИ:

  • рдПрдкреАрдПрд▓ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдореЗрдВ, рдХреЗрд╡рд▓ рд╕рд╛рд░реНрдердХ, рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓, рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдЖрдпрд╛рдо рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ; рдмрд╛рдХреА рдХреЛ рдирд┐рдЪреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдпрджрд┐ рд╣рдо v' рд╕рд╛рде рдРрд╕рд╛ рдХрд░реЗрдВрдЧреЗ рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ v' = conj(v) ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЛрд╡рдЯрд░ рдХреЛ рдПрдХ рд▓рд╛рдкрддрд╛ рдкрд╣рд▓реЗ рдЖрдпрд╛рдо рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ <: AbstractArray рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирдП LinearOperator рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП? (рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдлреА рдпрд╛рдж рдирд╣реАрдВ рд╣реИред)

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

@toivoh рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ i th рд╡реЗрдХреНрдЯрд░ рдпрд╛ рдХреЛрд╡реЗрдХреНрдЯрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП row(M,i) рдФрд░ col(M,i) рдЬреИрд╕реЗ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ред рдпреЗ рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ M рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрдВрдЧреЗ рдЬреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдпрд╣ MATLAB- рд╢реИрд▓реА рдЕрдиреБрдХреНрд░рдордг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╣рд▓реЗ рдереЛрдбрд╝рд╛ рдХрдо рд╕реНрдкрд╖реНрдЯ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рд╕рджрд┐рд╢ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЕрд▓рдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рджреЛрд╣рд░реА / рд╕рдВрдХреНрд░рдордг / рдХреЛрд╡реЗрдХреНрдЯрд░ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдХреНрд╡рд╛рдВрдЯрдо рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдкреВрд░реЗ рдХреНрд╖реЗрддреНрд░ рдиреЗ рдбреАрд░реЗрдХ рдХреЗ рдмреНрд░рд╛-рдХреЗрдЯ рдиреЛрдЯреЗрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХреВрдж рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдХреНрдЯрд░ рдФрд░ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдЬрдЯрд┐рд▓ рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдбреАрд░реЗрдХ рдХрд╛ рдЕрдВрдХрди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдореЗрд░реА рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рднреА рдРрд╕рд╛ рдХрд░реЗрдЧреА, рд╕рд╛рде рд╣реА рдЙрдЪреНрдЪ рдЖрдпрд╛рдореА рднрдВрдбрд╛рд░рдг рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рдЙрдЪреНрдЪ рдЖрдпрд╛рдореА рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрдХрд░рдг рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ! (рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд▓рд╛рд▓рдЪреА рд╣реИрдВ, рд╣реИ рдирд╛?)

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

рдореИрдВрдиреЗ рдпрд╣ рдкрд╣рд▓реЗ рдХрд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛: рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреА рдпрд╣ рд╕реВрдЪреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░рдг рдиреАрдЪреЗ рдХреА рдУрд░ рд╣реИрдВ:

(1) Arrays рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рднрдВрдбрд╛рд░рдг рдХрдВрдЯреЗрдирд░ рд╣реИрдВ рдЬреЛ рд╕рднреА рдЬреВрд▓рд┐рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╢рдмреНрджрд╛рд░реНрде рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдПрдкреАрдПрд▓-рд╢реИрд▓реА рдХреЗ рдирд┐рдпрдо рдореБрдЭреЗ рд╡реИрд╕реЗ рднреА, рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд▓рдЧрддреЗ рд╣реИрдВред рджреВрд╕рд░реА рдУрд░, MATLAB- рд╢реИрд▓реА, 1-рдЖрдпрд╛рдореА рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдиреНрдпреВрдирддрдо-рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпрд╛рдБ рд╕рд┐рд░реНрдл рдЕрдкреНрд░рд╛рдХреГрддрд┐рдХ, рднреНрд░рд╛рдордХ рд▓рдЧрддреА рд╣реИрдВ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЬреВрдереЛ рдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡реЗ рдореИрд▓рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рдареАрдХ рд╕реЗ рдЯреНрд░реИрдХ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЖрдкрдХреЗ рд╕рд░рдгреА рдХрд╛ рдЖрдпрд╛рдоред рдореИрдВ рдпрд╣рд╛рдБ рддрдХ рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдБрдЧрд╛ рдХрд┐ рд╡реЗрдХреНрдЯрд░ v , рдХреЛрдб v[i,:] рдХреЛ v рдПрдХ рдЖрдпрд╛рдореА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрдиреА рдЪрд╛рд╣рд┐рдПред рддрддреНрд╡-рд╡рд╛рд░ рд╕рдВрдЪрд╛рд▓рди рдЬреИрд╕реЗ + рдФрд░ .* рдХрд┐рд╕реА рднреА рдХрдВрдЯреЗрдирд░ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдпрд╛ рдорд▓реНрдЯреАрд▓рд╛рдЗрдирд░ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд░рд┐рдпрд╛рдпрдд рднрдВрдбрд╛рд░рдг-рдХрдВрдЯреЗрдирд░ рд▓реЛрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ .* рдЖрджрд┐ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЙрдЯреНрд╕ред

(2) рдЕрдзрд┐рдХрд╛рдВрд╢, рд▓реЗрдХрд┐рди рд╕рднреА рдирд╣реАрдВ, рдЬреВрд▓рд┐рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмреАрдЬрдЧрдгрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреБрдЫ рд╡реЗрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рдЪреАрдиреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬреНрдпрд╛рджрд╛рддрд░ * рдкреНрд░рддреАрдХ рдХреЗ рд╕рд╛рде (рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдбрд┐рд╡реАрдЬрди, рдЖрджрд┐ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)ред рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╣рдо рдХреНрд░рдорд╢рдГ рдПрдХ-рджреЛ рдФрд░ рджреЛ-рд╕реНрддрд░реАрдп рд╕рд░рдгрд┐рдпрд╛рдБ рд╕реНрддрдВрдн рд╡реЗрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рд╣реИрдВред рдПрдХ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ (рдХреЛрд╡реЗрдХреНрдЯрд░) рдФрд░ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдСрдкрд░реЗрд╢рди ' ред рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рд╣рд░ рд╕рдВрднрд╡ рдЕрд░реНрде рдореЗрдВ рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИ, рдФрд░ рдореИрдВ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ covec[1,i] !!!) рдПрдкреАрдПрд▓-рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо рдХреБрдЫ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИрдВ рд╡реИрдХреНрдЯрд░ рдФрд░ рдХреЛрд╡реЗрдХреНрдЯрд░реЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░, рдФрд░ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИ (рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╣рдо рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдереЗ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЖрд╡рд░рдг рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдФрд░ рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЯрд╛рдЗрдкреЗрд▓рд┐рдПрд╕рд┐рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╣рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд▓рдкреЗрдЯреЛ, рд▓реЗрдХрд┐рди рдореИрдВ рдмрд╛рдд рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛)ред рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ CoVector * Vector рд╕реНрдХреЗрд▓рд░ рдФрд░ Vector * CoVector рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рд╡реЛрд╣ рдиреЗ рдХрд╣рд╛, _ рдПрдХ MATLAB рдкреЙрдЗрдВрдЯ-рдСрдл-рд╡реНрдпреВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, CoVector рдмрд┐рд▓реНрдХреБрд▓ "рд▓рд╛рдкрддрд╛" рдкрд╣рд▓реЗ рдЖрдпрд╛рдо рдкрд░ рдирдЬрд╝рд░ рд░рдЦ рд░рд╣рд╛ рд╣реИред рдЖрдХрд╕реНрдорд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА; рд╡реЗ рд╕рд┐рд░реНрдл рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░реАрдХ рдЗрдирдкреБрдЯ рдХрд░реЗрдВрдЧреЗ рдФрд░ * рдФрд░ ' рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЬреЛ рд▓реЛрдЧ рдзреНрдпрд╛рди рд░рдЦрддреЗ рд╣реИрдВ рд╡реЗ рднреЗрдж рдХреЛ рдиреЛрдЯрд┐рд╕ рдФрд░ рд╕рд░рд╛рд╣реЗрдВрдЧреЗред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП _biggest_ рдкрд░рд┐рд╡рд░реНрддрди M[i,:] рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рди row(M,i) рдпрд╛ Transpose(M[i,:]) рдпрд╛ M[i,:]' рдЬреИрд╕реЗ рдХреБрдЫ рдХреЗ рд╕рд╛рде рд░реИрдкрд░ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЛрдИ рдЗрд╕реЗ рдПрдХ рд▓рд╛рдн рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рд░рд╛рдХ рд╕рдВрдХреЗрддрди рдХреА рддрд░рд╣ рдЖрдк рдХрднреА рдирд╣реАрдВ рднреВрд▓рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рд╡рд╕реНрддреБрдПрдВ рд╡реИрдХреНрдЯрд░ рд╣реИрдВ рдФрд░ рдЬреЛ рдХреЛрд╡реЗрдХреНрдЯрд░ рд╣реИрдВ, рдФрд░ рдЯрд╛рдЗрдк-рдПрд╕реЗрд░реНрдЯреНрд╕ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдЙрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛ рдЬрд╣рд╛рдВ рдЙрдкрдпреБрдХреНрдд рд╣реЛред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдмрд╣рд╕ рдкрд░ рдмрд╣рд╕ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо рдХреБрд╢рд▓ рд╡рд┐рд▓рдВрдмрд┐рдд рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рд░реИрдкрд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреАрдд рд╣реИ, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред

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

рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ (рдХреЛрд╡реЗрдХреНрдЯрд░) рдФрд░ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдСрдкрд░реЗрд╢рди рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдпрд╣ рдХрдерди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рджрд┐рд▓ рдореЗрдВ рдХрдЯреМрддреА рдХрд░рддрд╛ рд╣реИред рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ, рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝рд┐рд╢рди рдФрд░ * рдЙрддреНрдкрд╛рдж рд╕рднреА рдЗрдВрдЯрд░рдорд┐рдХреНрд╕ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЖрдЧреЗ рдХреА рддрд░рд╣ рдПрдХ рдХреНрд░рд┐рдпрд╛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрд┐рдирд╛ covectors рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ рдХрд╛ рдкреВрд░рд╛ рдЕрд░реНрде рд╡рд┐рдЬреНрдЮрд╛рди рд╕рд╛рдордВрдЬрд╕реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ row(A, i) рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП i рд╡реАрдВ рдХреА рдкрдВрдХреНрддрд┐ A рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЗ рдмрдЬрд╛рдп рдХреЛрд╡реЗрдХреНрдЯрд░ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ A[1, :] рдХрд╛ рдЕрд░реНрде рджреЛрдиреЛрдВ "рдП рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд▓реЗрдирд╛" рдФрд░ "рдП рдХреЗ рджреВрд╕рд░реЗ рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде рдкрд╣рд▓реА рд╕реНрд▓рд╛рдЗрд╕ рд▓реЗрдирд╛" рд╣реИ, рд▓реЗрдХрд┐рди рдпреЗ рдзрд╛рд░рдгрд╛рдПрдВ рдХреЛрд╡реЗрдХреНрдЯрд░ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕рдВрдЧрдд рд╣реИрдВред

рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рд╣рд░ рд╕рдВрднрд╡ рдЕрд░реНрде рдореЗрдВ рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИ, рдФрд░ рдореИрдВ рдпрд╣ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдХрдерди рд╕реЗ рдереЛрдбрд╝рд╛ рдмрд╣реБрдд рд╣рддрдкреНрд░рдн рд╣реИрдВред рдкреВрд░реНрд╡рд╡рд░реНрддреА рдЪрд░реНрдЪрд╛ рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдкреВрд░реНрдг рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рд╢рдмреНрджрд╛рд░реНрде (рд╕рд╣реА рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде) рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдЖрдпрд╛рдореА рдЖрдпрд╛рдо рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдХреЛ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, (v')[1] = conj(v[1]) , рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж dot ред рджреВрд╕рд░рд╛, рдХреЛрд╡реЗрдХреНрдЯрд░ рд╡реИрдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИрдВ, рд╡реЗ рдПрдХ рд░реИрдЦрд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реИрдВ рдЬреЛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рддреАрд╕рд░рд╛, рд╡реИрдХреНрдЯрд░ рдФрд░ рдХреЛрд╡реЗрдЯрд░реНрд╕ рдХреЗ рдкрд╛рд╕ hcat рдФрд░ vcat рддрд╣рдд рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрд░реЗ рдХрд╛ рдХреЙрдиреНрд╕реЗрдкреНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдЗрди рд╕рднреА рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ "рд╣рд░ рд╕рдВрднрд╡ рдЕрд░реНрде рдореЗрдВ рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгреА" рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдЕрдиреБрдЧрд╛рдореА рдПрдХрд▓ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реЛрдКрдВрдЧрд╛: рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрднреА рдЬреВрд▓рд┐рдпрд╛ рдХреЛрдб рджреЗрдЦрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╣рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ рдХрд┐ рд╣рдореЗрдВ 0-рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ X[] рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдкреАрдПрд▓ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ, рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП row(M,i) рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордЭреМрддрд╛ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ _d't_ рдЬреИрд╕реЗ (v')[1,i] ред

рдЕрдиреНрдп рдмрдбрд╝реЗ рдирд┐рд░реНрдгрдп, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рдЫреБрдЖ рд╣реИ, рд╡реЗ рдкреНрд░рдХрд╛рд░ рд╣реИрдВред рдЗрд╕ рдкрд╣рд▓реЗ рдореЗрдВ рдПрдХ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛ рд╣реЛрдиреЗ рд╕реЗ рдореЗрд░реЗ рдПрдХ рдЦреЛрдЬ рд╣реИ рдХрд┐ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдбрд╝реА рдореЗрд╣рдирдд рд╣реИ v' рд╣реЛрдирд╛ рдПрдХ AbstractVector , рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдкреНрд░реЗрд╖рдг рдПрдХ рдореЗрд╕ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк:

  1. рд╣рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

    • Transpose <: AbstractMatrix

    • CoVector <: Any

    • Factorization рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдгред

  2. рд╣рдо рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди X' _not_ рдПрдХ AbstractMatrix

    • Transpose <: Any

рд╕рдВрдпреБрдЧреНрдорди рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╛ рддреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдПред ConjugateTranspose рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ ( ConjugateCoVector рдЕрдЧрд░ рд╣рдо рдКрдкрд░ рджрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдк 1 рдХреЗ рд╕рд╛рде рдЬрд╛рдПрдВ)

рдмреА Conjugate рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░ рдФрд░ рдШреЛрдВрд╕рд▓реЗ рдХрд╛ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд╣рдореЗрдВ рдХреБрдЫ рдХрдиреНрд╡реЗрдВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреИрд╕реЗ рдХрд┐ рд╣рдо Transpose{Conjugate{T}} рдпрд╛ Conjugate{Transpose{T}} ред

рдореИрдВ Transpose{Matrix} AbstractMatrix рдХрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдзрд╛рд░ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдХрдЯрддрдо рдПрдирд╛рд▓реЙрдЧ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ, рдЬреИрд╕реЗ Symmetric , рдЬреЛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рддрд░рд╣ рдмреАрдЬрдЧрдгрд┐рддреАрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрдиреБрдХреНрд░рдордг рд╢рдмреНрджрд╛рд░реНрде рдореЗрдВ рдирд╣реАрдВред (# 987 рдиреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХрдИ рд╡рд┐рд░рд╛рд╕рдд рдпрд╛ рдкрд╡рд┐рддреНрд░ рд▓рдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рдмреАрдЬрдЧрдгрд┐рддреАрдп рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдкрд░ рдХрдВрдЯреЗрдирд░ рд╢рдмреНрджрд╛рд░реНрде рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред)

рдРрд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд░рдЪрдирд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ "рд╢рдмреНрджрд╛рд░реНрде рдЯреИрдЧ" рд╣реИрдВ, # 8240 рдореЗрдВ рднреА рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Transpose{Conjugate{T}} рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдпреБрдЧреНрдорди рдПрдХ рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рддрддреНрд╡реЛрдВ рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдЧреБрдЬрд░рддреА рд╣реИред

рдпрд╣рд╛рдВ рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдХрднреА-рдХрднреА MATLAB рдХреЗ рд╕рдорд╛рди рдПрдХрд▓ рдЕрдиреБрдЧрд╛рдореА рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдиреНрдп рд╕рдордп рдкрд░ рдирд╣реАрдВ:

  • рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред (MATLAB рдХреА рддрд░рд╣)
julia> (1:5)[5,1,1,1,1,1,1]
5
  • рдЕрдиреБрдХреНрд░рдордг рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдЕрдиреБрдЧрд╛рдореА рд╕реНрд▓рд╛рдЗрд╕ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред (MATLAB рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред)
julia> (1:5)[5,:]
ERROR: BoundsError()
 in getindex at abstractarray.jl:451
  • рд░реИрдВрдХ> = 3 рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓реЗрдЯреНрд╕ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рд░рдгреА рдХреЗ рд░реИрдВрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрддрд┐рдо рд╕реВрдЪрдХрд╛рдВрдХ рдПрдХ рд╕реНрдХреЗрд▓рд░ рд╣реЛрддрд╛ рд╣реИ (MATLAB рдХреА рддрд░рд╣):
julia> A=zeros(2,2,2); A[1,2]=5; A #Same as A[1,2,1]=5
2x2x2 Array{Float64,3}:
[:, :, 1] =
 0.0  5.0
 0.0  0.0

[:, :, 2] =
 0.0  0.0
 0.0  0.0
  • рд░реИрдВрдХ> = 3 рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдирд┐рд╣рд┐рдд рдЕрдиреБрд░реЗрдЦрдг _slices_ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рд░рдгреА рдХреЗ рд░реИрдВрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдЕрдВрддрд┐рдо рд╕реВрдЪрдХрд╛рдВрдХ _not scalar_ (MATLAB рдХреА рддрд░рд╣) рд╣реЛрддрд╛ рд╣реИ:
julia> A[:,:]=3; A
2x2x2 Array{Float64,3}:
[:, :, 1] =
 3.0  3.0
 3.0  3.0

[:, :, 2] =
 3.0  3.0
 3.0  3.0
  • рд░реИрдВрдХ> = 3 рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓реЗрдЯреНрд╕ рдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рд░рдгреА рдХреЗ рд░реИрдВрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдЕрдВрддрд┐рдо рд╕реВрдЪрдХрд╛рдВрдХ рдПрдХ рд╕реНрдХреЗрд▓рд░ рд╣реЛрддрд╛ рд╣реИ (MATLAB рдХреА рддрд░рд╣):
julia> A=reshape(1:8,2,2,2); A[:,1]
2-element Array{Int64,1}:
 1
 2

julia> A[:,1,1]
2-element Array{Int64,1}:
 1
 2
  • рд░реИрдВрдХ r> = 3 рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬрдм k <r рдЗрдВрдбреЗрдХреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдПрд░реЗ рдХреЗ рд░реИрдВрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЖрдЦрд┐рд░реА рдЗрдВрдбреЗрдХреНрд╕ рдПрдХ рд╕реНрд▓рд╛рдЗрд╕ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╢реЗрд╖ рд░реИрдВрдХ рдЖрд░рдХреЗ рд╕рд░рдгреА рдХреЛ рд░реЗрдЦреАрдп рд░реВрдк рд╕реЗ рд░реИрдЦрд┐рдХ рдХрд░рддрд╛ рд╣реИред (MATLAB рдХреА рддрд░рд╣):
julia> A=reshape(1:8,2,2,2); A[1,:]
1x4 Array{Int64,2}:
 1  3  5  7

julia> A=reshape(1:8,2,2,2); A[1,:,:]
1x2x2 Array{Int64,3}:
[:, :, 1] =
 1  3

[:, :, 2] =
 5  7
  • рдЕрдиреБрдЧрд╛рдореА рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред (MATLAB рдХреЗ рд╡рд┐рдкрд░реАрдд)
julia> A=zeros(1); A[1] = randn(1,1)
ERROR: `convert` has no method matching convert(::Type{Float64}, ::Array{Float64,2})

You might have used a 2d row vector where a 1d column vector was required.
Note the difference between 1d column vector [1,2,3] and 2d row vector [1 2 3].
You can convert to a column vector with the vec() function.
 in setindex! at array.jl:307

julia> A=zeros(1,1); A[1,1] = randn(1)
ERROR: `convert` has no method matching convert(::Type{Float64}, ::Array{Float64,1})
 in setindex! at array.jl:308
  • рдЬреВрд▓рд┐рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рдХреЛ рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рд╡реИрдз рд╕рдВрдЪрд╛рд▓рди рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред (рдорддрд▓рдм рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬреЛ рдХрд░рддрд╛ рд╣реИ)
julia> 1/[1.0,] #In MATLAB, interpreted as the inverse of a 1x1 matrix
ERROR: `/` has no method matching /(::Int64, ::Array{Float64,1})
  • рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд┐рдЫрд▓реЗ рдирд┐рдпрдо рдХреЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВ; рдЙрдирдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдкрд╣рд▓реЗ рддрд░реНрдХ рдореЗрдВ рдПрдХ рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред (рдорддрд▓рдм рдХреА рддрд░рд╣)
julia> [1:5]*[1:5]' # Shapes are (5,) and (1,5) - promoting to (5,1) x (1,5) works
5x5 Array{Int64,2}:
 1   2   3   4   5
 2   4   6   8  10
 3   6   9  12  15
 4   8  12  16  20
 5  10  15  20  25

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

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рддреНрд░рд┐рдХреЛрдгреАрдп рдкреНрд░реЗрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк " Complex64 рдпрд╛ Complex128 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕" рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрдХреНрдд рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХрд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг , рдпрд╛ рдЗрд╕рдХреЗ рд╕рдВрдпреБрдЧреНрдо рд╕рдВрдХреНрд░рдордг "ред рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рд╣рдо рдКрдкрд░ 2 + b рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

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

рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рд╣рд░ рд╕рдВрднрд╡ рдЕрд░реНрде рдореЗрдВ рдПрдХ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИ, рдФрд░ рдореИрдВ рдпрд╣ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдХрдерди рд╕реЗ рдереЛрдбрд╝рд╛ рдмрд╣реБрдд рд╣рддрдкреНрд░рдн рд╣реИрдВред

рд╕рдЪ! рдХреНрд╖рдорд╛ рдХрд░реЗрдВ @jiahao , рдореИрдВ jetlag рдХреЛ рджреЛрд╖ рджреВрдБрдЧрд╛ред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рд╢рдмреНрдж "рдЯреЗрдВрд╕рд░" рд╣реИ, рдФрд░ рдореИрдВ [] рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЖрдк рд╕рд╣реА рд╣реИрдВ рдХрд┐ рд╕рд╣рдорддрд┐ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рддрд░реАрдХрд╛ (рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛) рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ (рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЗрд╕реЗ 1 xn рдЖрдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрдХрд░)ред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ "рд╣рд░ рдорд╛рдпрдиреЗ рдореЗрдВ" рдПрдХ 1D рдЬреВрд▓рд┐рдпрд╛ рдПрд░реЗ рдирд╣реАрдВ рд╣реИ ... рдпрд╣ рдкреВрд░реА рдмрд╛рдд рд╣реИ ...

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

рдЗрдирдореЗрдВ рд╕реЗ рдХреМрди рдЕрд╕реНрдкрд╖реНрдЯ рдпрд╛ рдЦрддрд░рдирд╛рдХ рд╣реИрдВ?

рдЖрдЧреЗ рд╡рд╛рд▓рд╛ рдореБрдЭреЗ рдЕрд╕реНрдкрд╖реНрдЯ рдФрд░ рдЦрддрд░рдирд╛рдХ рджреЛрдиреЛрдВ рд▓рдЧрддрд╛ рд╣реИред

julia> A=zeros(2,2,2); A[:,:]=3; A
2x2x2 Array{Float64,3}:
[:, :, 1] =
 3.0  3.0
 3.0  3.0

[:, :, 2] =
 3.0  3.0
 3.0  3.0

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

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

рдпрд╛ 1D рд░реИрдЦрд┐рдХ рдЕрдиреБрдХреНрд░рдордг рдХрд╛ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмреЗрд╣рдж рдЖрд╕рд╛рди рд╣реИ)

рд╣рдорд╛рд░реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд┐рддрдиреА рдЖрд╕рд╛рдиреА рд╕реЗ рдмрд┐рдХ рдЬрд╛рддреЗ рд╣реИрдВ! :)

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

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

рдХреНрдпрд╛ рд╣рдо рд░реИрдЦрд┐рдХ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП {} рдХреЛрд╖реНрдардХ (рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╣реБрдЖрдпрд╛рдореА рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП [] рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ? рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ...

23 рдорд╛рд░реНрдЪ 2015 рдХреЛ, 2:36 рдмрдЬреЗ, рдмреЙрдм рдкреЛрд░реНрдЯрдореИрди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @ithub.com рдиреЗ рд▓рд┐рдЦрд╛:

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

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЬрд╡рд╛рдм рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub https://github.com/JuliaLang/julia/issues/4774#issuecomment -84805310 рдкрд░

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

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдмрд╣реБрдд рдмрд╣рд╕ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреБрдХреНрд░рдордг рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп 0.4 рдЪрдХреНрд░ рдореЗрдВ рдХрд╛рдлреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╣реБрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ CartesianIndex рдФрд░ рджреЛрд╕реНрдд рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рд░реИрдЦрд┐рдХ рдФрд░ рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА --- рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдм рдЖрдк рдЙрдиреНрд╣реЗрдВ (# 10524) рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рд░реИрдЦрд┐рдХ рдЕрдиреБрдХреНрд░рдордг рд╕реЗ рднреА рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдпрд╣ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА рд╣реЛрддрд╛ рд╣реИ (рд╢рд╛рдпрдж # 9080 рдХреЗ рдХрд╛рд░рдг; enumerate рдФрд░ zip рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреАрдбрд╝рд┐рдд)ред рд╣рдореЗрдВ рд╕рдВрднрд╡рддрдГ fastindex eachindex рдЖрд╕рдкрд╛рд╕ рд░реИрдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ fastindex рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ # 10507 рдореЗрдВ рд╣реИред

рдпрджрд┐ рдЖрдк рдирд┐рдпрдореЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдореГрддреНрдпреБ рддрдХ рдкрд╣реБрдВрдЪрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕реАрдорд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдЗрд╕ рд╕рдордп, рдпрд╣ рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж рд░реВрдк рд╕реЗ # 10525 рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ https://github.com/JuliaLang/julia/pull/10525#issuecomment -84597488 рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@timholy рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╛рд╕реНрдЯ рдХрд╛рд░реНрдЯреЗрд╕рд┐рдпрди рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдХреЗ рд╕рднреА рдШрдЯрдирд╛рдХреНрд░рдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдмрд╕ рдЖрдзрд╛рд░ / рдмрд╣реБрдЖрдпрд╛рдореА.

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

k = 0
for I in eachindex(A)
     B[k+=1] = A[I]   # B is being linearly-indexed, A is being cartesian-indexed
end

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

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

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

рд╣рдо рд╢рд╛рдпрдж # 10507 # рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХindex рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдЖрд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ Fastindex рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

@timholy рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ eachindex рддреЗрдЬреА рд╕реЗ рд░реИрдЦрд┐рдХ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ UnitRange рд╡рд╛рдкрд╕реА? рдпрд╣ рдЕрднреА рднреА рдЯрд╛рдЗрдк-рд╕реНрдерд┐рд░ рд╣реЛрдЧрд╛, рдФрд░ рдпрджрд┐ рдХреЙрд▓рд░ рдХрднреА рднреА рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд╛рд░реНрдЯреЗрд╕рд┐рдпрдирдЗрдВрдбреЗрдХреНрд╕ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдЯреЗрд╕рд┐рдпрдирд░реЗрдВрдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( рдХрд╛рд░реНрдЯреЗрд╕рд┐рдпрдирдСрди рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд╣рдо eachindex(size(A)) рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдкрд╣рд▓реЗ рдРрд╕рд╛ рд╣реА рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @ рдЬреВрдереЛ рдиреЗ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ред (рдЕрдЧрд░ рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рд╢рд╛рдпрдж рдЗрд╕реЗ рд╕рд╛рдХрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред) рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдерд╛ (рдЗрд╕рд▓рд┐рдП рдЖрдк рдПрдХ CartesianIndex рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЕрд░реНрде рд╣реИ ред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдмрддрд╛рддреЗ рд╣реИрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рд╛рдзрди рд╣реИрдВред

@ рдЬреВрдереЛ , рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

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

@timholy , рдЖрдкрдХреА рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рдореИрдВ рдЬреВрд▓рд┐рдпрд╛рдХреЙрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ рдЗрд╕рд▓рд┐рдП CartesianIndex рд╕рд╛рдорд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ (рд╡реИрд╕реЗ рднреА рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдХреБрдЫ рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢реЛрдВ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛ рд╣реИ)ред рдореИрдВ рдкрд╣рд▓реЗ рд╣реА рд╕рдореНрдореЗрд▓рди рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдПрдХ рд╕рдирдХреА рд╕реЛрдЪрд╛: рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП A (рдЖрдпрд╛рдо> 2 рд╕рд╣рд┐рдд) рдХрд┐рд╕реА рднреА рдЖрдпрд╛рдо рдХреА, рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рдерд╛ A' рдЪрдХреНрд░реАрдп рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд░рдЦрдирд╛ A ред рддреЛ, A'[i, j, k] == A[j, k, i] ред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ 2d рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдо рдХрд░ рджреЗрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде MATLAB (рдЬреИрд╕реЗ [n, 1] рдФрд░ [1, n] 2d рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдкрдВрдХреНрддрд┐ рдФрд░ рд╕реНрддрдВрдн "рд╡реИрдХреНрдЯрд░" рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдгред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рдХрднреА рднреА рдПрдХ 2d рдХреЙрд▓рдо "рд╡реЗрдХреНрдЯрд░" рдХреЛ рдПрдХ рд╕рдЪреНрдЪреЗ рдХреЛрд╡реЗрдХреНрдЯрд░ рдпрд╛ 2d рдкрдВрдХреНрддрд┐ "рд╡реЗрдХреНрдЯрд░" рдкрд░ рдПрдХ рд╕рдЪреНрдЪреЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдореИрдк рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдЕрдЪреНрдЫреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд▓реЛрдЧ рдЕрд╕рд╣рдордд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред) рдпрд╣ рдкрд╣рдЪрд╛рди рдХреЛ A'' == A' рдФрд░ v'' == v _for рдХреЗ рд▓рд┐рдП рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдФрд░ рд╡реИрдХреНрдЯрд░ рд╕рд░рдгреА рдСрдмреНрдЬреЗрдХреНрдЯ_ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдкреНрд░рдХрд╛рд░ рдХреА рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП (рдЬрд╣рд╛рдВ рд╕рдЪреНрдЪреЗ рд╡реИрдХреНрдЯрд░ рдФрд░ рдХреЛрд╡реЗрдЯрд░ рдЕрдореВрд░реНрдд рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реИрдВ), ' рдХреЛ рдЕрднреА рднреА рд╕рдЪреНрдЪреЗ рд╡реИрдХреНрдЯрд░ рдФрд░ рдХреЛрд╡реЗрдХреНрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдпрд╣ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдФрд░ v'' == v рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред

рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП: рдореИрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╕реЛрдЪрддрд╛ рдХрд┐ ' _needs_ рдЖрдпрд╛рдо рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рддрд░реАрдХрд╛ рд╣реИ> 2, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдКрдкрд░ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рдерд╛ (рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЛ рдЙрд▓рдЯ рджреЗрдирд╛ рдирд╣реАрдВ рдерд╛ред ") рдФрд░ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛ред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдиреБрдХрд╕рд╛рди рдореИрдВ рдпрд╣ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдкреНрд░рд╛рдЗрдорд╛ рдлреЗрд╢рд┐рдпрд▓) рд╡реИрдЪрд╛рд░рд┐рдХ рд╣реИ: рдЖрдо рддреМрд░ рдкрд░ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдбреЛрдореЗрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдП рдЧрдП рдПрдХ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ (рдереЛрдбрд╝рд╛ рдордирдорд╛рдирд╛) рдХреЙрдореНрдмреАрдиреЗрдЯрд░рд┐рдпрд▓ рдСрдкрд░реЗрд╢рди рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ред рдЬрдм рддрдХ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдЕрдиреБрдорд╛рдиреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рд╣рдо рд░реИрдЦрд┐рдХ рдмреАрдЬреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛-рдХреЗрдВрджреНрд░рд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ (рдЗрд╕ рд╕рдВрдкреВрд░реНрдг рдЪрд░реНрдЪрд╛ рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ) рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕реЗ, рд╣рдо рдмрд╣реБ-рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЪрдХреНрд░реАрдп рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЖрд╢реБрд▓рд┐рдкрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ ' рдмрд╣реБ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдЖрдпрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рдорд╛рдорд▓реЗ рдореЗрдВ рдХрдо рди рд╣реЛ рдЬрд╛рдПред 2 рдЖрдпрд╛рдоред рдПрдХ рднреА рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рддрд░реНрдХ рд▓реЗрддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ A'(k)[I] рдЪрдХреНрд░реАрдп рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ permutes A[I] рдХрд╢реНрдореАрд░ рдмрд╛рд░, рджреЗ рд░рд╣реА рд╣реИ A'(ndims(A))[I] == A[I] рдФрд░ A'(-k)[I] permutes рд╕реВрдЪрдХрд╛рдВрдХ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВред

рд╕рд┐рд░реНрдл рдПрдХ рд╡рд┐рдЪрд╛рд░ред

рдпрджрд┐ transpose рдХреЛ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЕрднреА рднреА A''=A рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рд╕реНрд╡рдпрдВ рдХрд╛ рдЙрд▓рдЯрд╛ рд╣реИред рдпрд╣ рдкрд┐рдЫрд▓реЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рд╕рдВрдШрд░реНрд╖ рдореЗрдВ рд╣реИред

рд╕рд╣реА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рдХреЗрд╡рд▓ (рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ) рдЖрдХрд░реНрд╖рдХ рд╣реИ рдЕрдЧрд░ рдХреЛрдИ рд╕рд╣рдЬ рд╣реИ рдЬреЛ рд╕рдВрдХреНрд░рдордг рдХреЗ рд░реИрдЦрд┐рдХ рдмреАрдЬреАрдп рдорд╣рддреНрд╡ рдХреЗ рдмреАрдЪ рджрд░рд╛рд░ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЬреЛ рднреА рд╕рд░рдгреА-рдХреЗрдВрджреНрд░рд┐рдд рдорд╣рддреНрд╡ рд╣реИ рд╡рд╣ d> 2 рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдореЗрд░рд╛ рддрд░реНрдХ рдпрд╣ рдерд╛ рдХрд┐ рдЬрдм рддрдХ рдХрд┐ рджрд░рд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ (рддрд░рд╣ рдХреА) рд╣реЛ рд░рд╣реА рд╣реИ, рдФрд░ рдЕрдЧрд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЕрднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкреНрд░рдпреБрдХреНрдд рд╣реЛрдВрдЧреА, рддреЛ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╢реБрд▓рд┐рдкрд┐ рдХреЗ рд▓рд┐рдП рд╕рд╛рдл-рд╕реБрдерд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ d = 2 рдХреЗрд╕ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЙрдкрдЪрд╛рд░ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ (@ рдЬреВрдереЛ) рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдВрдпреЛрдЧ рд╣реИ рдХрд┐ 2d рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдпрд╛рдореЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЗрд╕рдХрд╛ рд░реИрдЦрд┐рдХ рдмреАрдЬреАрдп рдорд╣рддреНрд╡ рд╣реИ (рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП 2d рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж рд╣реА), рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рд╣рдо рдбреЙрди d> рдХреЗ рд▓рд┐рдП A'' == A t рдХреЛ transpose рдХреЗ рдЧрдгрд┐рддреАрдп рдЧреБрдгреЛрдВ (рдЬреИрд╕реЗ A'' == A рдЖрд╡рд╢реНрдпрдХрддрд╛) рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред 2. рдпрджрд┐ рдХреЛрдИ рдЗрд╕ рдорд╛рд░реНрдЧ рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧреА рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: A' рд╕рд╛рдЗрдХреНрд▓реАрдЯрд┐рдХрд▓реА рдкрд░рдорд┐рдЯ рдПрдХ рдмрд╛рд░, A'(k) рд╕рд╛рдЗрдХреНрд▓реАрдХрд▓реА рдХреЗ рдмрд╛рд░, A'(I) I::Array{Int, 1} рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде <= ndims(A) рд╕рд╛рдЗрдХреНрд▓рд┐рдХ рд░реВрдк рд╕реЗ I рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ A'(p) p::Permutation рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП <= ndims(A) p рдЕрдиреБрд╕рд╛рд░ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛ рд╣реИ рдФрд░ рджреЗрдЦрдирд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдЙрдкрдпреЛрдЧреА рд╣реИред

рдореИрдВ рджреЛ рдмрджрд▓рд╛рд╡реЛрдВ / рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рдирдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, StefanKarpinski рджреНрд╡рд╛рд░рд╛ рдЕрдХреНрдЯреВрдмрд░ 16, 2014, рдФрд░ рд╕рд┐рдореЛрдирдмрд┐рд░рдиреЗ рдкрд░ Mar 22, 2015 рдХреЛ, рд▓реЗрдХрд┐рди рдПрдХ рд╢рд░реНрдд рдХреЗ рд╕рд╛рде:

  1. transpose рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╡реИрдХреНрдЯрд░ рдФрд░ 2-рдЖрдпрд╛рдореА рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрдВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдПред
  2. рдСрдкрд░реЗрдЯрд░реНрд╕ * рдФрд░ transpose рдЧрдгрдирд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЯреНрд░реЗрд▓рд┐рдВрдЧ рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдореЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рддрд╣рдд, рдЬрдм рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрд╛ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдФрд░ рдПрдХ-рдХреЙрд▓рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рди рд╣реА рдПрдХ рд╕реНрдХреЗрд▓рд░, рд▓рдВрдмрд╛рдИ 1 рдФрд░ 1-рдПрдХ-рд╡реЗрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕рд╛рд░реНрдердХ рдЕрдВрддрд░ рд╣реЛрдЧрд╛ред -1 рдореИрдЯреНрд░рд┐рдХреНрд╕ред рд╣рд╛рд▓рд╛рдВрдХрд┐, x' 1-рдмрд╛рдп-рдПрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛрдЧрд╛, рди рдХрд┐ рдПрдХ рд╡реЗрдХреНрдЯрд░ред

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

рдиреАрдЪреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЬреВрд▓рд┐рдпрд╛ рд╕рддреНрд░ рдХрд╛ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдПрдХ рд╕реНрдХреЗрд▓рд░, рджреЛ рд╡реИрдХреНрдЯрд░ рдФрд░ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

julia> alpha = 2.0
2.0

julia> x = [1.0; 2.0; 3.0]
3-element Array{Float64,1}:
 1.0
 2.0
 3.0

julia> y = [4.0; 5.0; 6.0]
3-element Array{Float64,1}:
 4.0
 5.0
 6.0

julia> A = [1.0 2.0 3.0; 4.0 5.0 6.0; 7.0 8.0 9.0]
3x3 Array{Float64,2}:
 1.0  2.0  3.0
 4.0  5.0  6.0
 7.0  8.0  9.0

рд╕реНрдХреЗрд▓рд░-рд╕рджрд┐рд╢ рдЧреБрдгрди рдХрд╛рд░реНрдп рддрдм рднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдмрд╛рд╣реНрдп рдЖрдпрд╛рдо рдореМрдЬреВрдж рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рджрд┐рд╢ рд╣реЛрддрд╛ рд╣реИред

julia> alpha*x
3-element Array{Float64,1}:
 2.0
 4.0
 6.0

julia> alpha*x[:,[1]]
3-element Array{Float64,1}:
 2.0
 4.0
 6.0

рд╕рдВрдХреНрд░рдордг рдПрдХ рдЕрдВрддрд░реНрдХреНрд░рд┐рдпрд╛ рд╣реИред

julia> x'
1x3 Array{Float64,2}:
 1.0  2.0  3.0

julia> x''
3-element Array{Float64,1}:
 1.0
 2.0
 3.0

julia> x==x''
true

julia> x'''
1x3 Array{Float64,2}:
 1.0  2.0  3.0

рдПрдХ-рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдирд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕-рд╡реЗрдХреНрдЯрд░ рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

julia> A*x
3-element Array{Float64,1}:
 14.0
 32.0
 50.0

julia> A*x[:,[1]]
3-element Array{Float64,1}:
 14.0
 32.0
 50.0

рдПрдХ-рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрд╛рд░ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдПрдХ-рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИред

julia> x'*A
1x3 Array{Float64,2}:
 30.0  36.0  42.0

рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕-рд╡реЗрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕-рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рд╣реИред

julia> x'*y
32.0

julia> x'*y[:,[1]]
32.0

рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рд╣реИред

julia> x*y'
3x3 Array{Float64,2}:
  4.0   5.0   6.0
  8.0  10.0  12.0
 12.0  15.0  18.0

julia> x[:,[1]]*y'
3x3 Array{Float64,2}:
  4.0   5.0   6.0
  8.0  10.0  12.0
 12.0  15.0  18.0

рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕рдордп рдПрдХ рд╡реЗрдХреНрдЯрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИред

julia> x*y
ERROR: `*` has no method matching *(::Array{Float64,1}, ::Array{Float64,1})

рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕рдордп рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИред

julia> x*A
ERROR: DimensionMismatch("*")
 in gemm_wrapper! at linalg/matmul.jl:270
 in * at linalg/matmul.jl:74

рдореИрдЯреНрд░рд┐рдХреНрд╕ рдорд▓реНрдЯреАрдкреНрд▓реАрдХреЗрд╢рди рдЗрдЬ рдПрд╕реЛрд╕рд┐рдПрдЯрд┐рд╡ред

julia> (x*x')*y
3-element Array{Float64,1}:
 32.0
 64.0
 96.0

julia> x'*y
32.0

julia> x*(x'*y)
3-element Array{Float64,1}:
 32.0
 64.0
 96.0

julia> norm((x*x')*y-x*(x'*y))
0.0

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдПрдХ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдЖрдпрд╛рдо рдХреА рднрд╛рд╡рдирд╛ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреЛ рдЙрджрд╛рд╣рд░рдг рд╣рдЯрд╛рдП рдЧрдПред рдореМрдЬреВрджрд╛ рдЪрд░реНрдЪрд╛ рдкрд░ рдЙрдирдХрд╛ рдмрд╣реБрдд рдЕрд╕рд░ рдирд╣реАрдВ рд╣реБрдЖред

рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рдВрдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╕реНрдерд┐рд░рддрд╛ рдЦреЛ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдореЛрдВ рдХреЛ рддреНрдпрд╛рдЧрдирд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реНрдерд┐рд░ рд╕рдВрдЪрд╛рд▓рди рдирд╣реАрдВ рд╣реИред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ, рдкреВрд░реЗ рдХреЛрд╡реЗрдХреНрдЯрд░ рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдПрдХ рд╡реЗрдХреНрдЯрд░ рдФрд░ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рд╕рд┐рд░реНрдл рдПрдХ рдХреЙрд▓рдо рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдЭрд╛рд╡ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрд╕ рдЕрдВрддрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛, рдЬреИрд╕реЗ x'' ред

рдЖрдиреБрдорд╛рдирд┐рдХ рд╕реБрдЭрд╛рд╡: рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдордиреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдЖрдпрд╛рдо рдХреЛ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛, рдФрд░ рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╕рднреА рдЖрдпрд╛рдореА / рдЖрдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХреА? (рд╣рдо рд╡реИрд╕реЗ рднреА рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред) рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдореАрддрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдЬреЛ рдЖрдХрд╛рд░ рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИред (рдмрддрдЦ, рджреЛ рд╣рдлреНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдЫрд┐рдк рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдкрдиреЗ github рдЦрд╛рддреЗ рдХреЛ @SomeoneWhoCertainlyIsntTimHolyUhUhNoWay рдкрд░ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред)

(рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ # 10525 рдЕрдХреЗрд▓реЗ рдЦрд╛рддреЗ рдореЗрдВ рдЦреБрдж рдкрд░ рд╢рд┐рдХрд╛рдпрдд рдХрд░реВрдВрдЧрд╛ред)

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

@timholy рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рд╣рдо рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдФрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрд╕ рд╢рдмреНрджрд╛рд░реНрде рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрджрд┐ рдХреЛрдИ рдЕрднреА рднреА CoVector / DualVector / TransposeVector рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рдерд╛, рддрдм рднреА рд╣рдореЗрдВ рдЕрдкрдирд╛ рдирдпрд╛ TimHolyArray{DataType} _and_ рд▓рдкреЗрдЯрдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рддреЛ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ рджреЛ (рдпрд╛ рдПрдХ) рд╕реЗ рдЕрдзрд┐рдХ рдЖрдпрд╛рдо рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рдкрд╛рд░рдЧрдорди, рдпрд╛ рдЕрдиреНрдп рдирд┐рд░реНрдорд╛рдг TransposeVector(tharray) рд▓рд┐рдП рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм tharray рдХрд╛ рдЖрдпрд╛рдо рджреЛ (рдпрд╛ рдПрдХ) рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИ ... рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЪреАрдЬреЛрдВ рдХреЛ рд░рди-рдЯрд╛рдЗрдо рд╕реНрддрд░ рдкрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреЗрдиреА рд╣реЛрдВрдЧреА рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдВрдХрд▓рди-рд╕рдордп рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ (рдЬреИрд╕реЗ рдЧреБрдгрди рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖рд┐рджреНрдз рд╣реИрдВ)ред

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

рдореИрдВ рдЬрд░реВрд░реА рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реВрдВ - рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдореБрджреНрджрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╡реЗрдХреНрдЯрд░ рдЯреНрд░рд╛рдВрдЬрд╝реЛрдЬрд╝ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@ рддреАрдорд╛рд░рджрд╛рд░ : рдореБрдЭреЗ рд╡рд╛рдХрдИ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рд░рд╛рд╕реНрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЖрдпрд╛рдо рдкрд░ рдкреНрд░реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд▓рдЧрддрд╛ рд╣реИред

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

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

рдкреНрд░рд╕реНрддрд╛рд╡:

  1. рд╡рд░реНрддрдорд╛рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ timesfast рдФрд░ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ transposefast ред
  2. рдкрд╣рд▓реЗ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ (*) рдФрд░ transpose рдХреЛ рдПрдХрд▓ рдЕрдиреБрдЧрд╛рдореА рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, u'*v рдПрдХ рд╕реНрдХреЗрд▓рд░ рдмрди рдЬрд╛рдПрдЧрд╛, v'' рдПрдХ рд╡реЗрдХреНрдЯрд░ рдмрди рдЬрд╛рдПрдЧрд╛, рдФрд░ (v*v')/(v'*v) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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

рдореИрдВ рдХрдХреНрд╖рд╛ рдореЗрдВ рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рджрдХреНрд╖рддрд╛ рдкрд░ рдореВрд▓реНрдп рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░рддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рдЗрд╕ рдмрд╣реБрдд рд▓рдВрдмреЗ рдзрд╛рдЧреЗ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж!

@briansutton : рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдЖрдкрдХреЛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЧрд╣рд░реА рд╕рдордЭ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдХрд┐ рд╣рдо рдЧреБрдгрд╛ рдХреЗ рдЕрд░реНрде рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред

рдпрд╣ рдореБрджреНрджрд╛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╣рдо рдпрдерд╛рд╕рдВрднрд╡ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рд╕реЗ рдХреИрд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рдпрдо рдЬреЛ рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдореЛрдВ рдХреЛ рдардЧрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЙрд╕ рдХреНрд╖рдг рдХреЛ рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВред "рдЯреНрд░рдВрдХрдЯ [рд╕рднреА] рдЕрдиреБрдЧрд╛рдореА рдПрдХрд▓ рдЖрдпрд╛рдо" рдирд┐рдпрдо рдХреЗ рд╕рд╛рде, рдпрджрд┐ v 1-рддрддреНрд╡ рд╡реЗрдХреНрдЯрд░ рд╣реИ, рддреЛ v' рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП v'' рднреА v == v'' рд╣рдореЗрд╢рд╛ рдкрдХрдбрд╝ рдирд╣реАрдВ рд╣реИред

рдЖрдк рдирд┐рдпрдо рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ "рдпрджрд┐ рдЕрдВрддрд┐рдо рдЖрдпрд╛рдо 2 рд╣реИ рддреЛ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рдХреЛ рдХрд╛рдЯреЗрдВ"ред рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдВрд╢реЛрдзрд┐рдд рдирд┐рдпрдо рдХреЗ рд╕рд╛рде рднреА, рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж v * w' рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп Vector * Matrix рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖-рдЖрд╡рд░рдг рд╡рд╛рд▓реА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП "рддреНрд░реБрдЯрд┐ рдХреЛ рддрдм рддрдХ рдлреЗрдВрдХреЗрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдХреГрддрд┐рдпрд╛рдБ (N) x (1, M)" рди рд╣реЛрдВред

@ рдЬрд┐рдпрд╛рд╣реМ :

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

рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг ( v==v'' ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореИрдВ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ 1-рддрддреНрд╡ рд╡реЗрдХреНрдЯрд░ v рдмрдирд╛рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдЖрдкрдХреЗ рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╣рд╛рдБ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ v*w' рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╣реИрдВрдбрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрд╛ рдФрд░ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рд╡реЗрдХреНрдЯрд░ v рдФрд░ N-by-1 рдореИрдЯреНрд░рд┐рдХреНрд╕ v[:,[1]] рдПрдХ рд╣реА рдЧрдгрд┐рддреАрдп рд╡рд╕реНрддреБ рдХреЛ рдирд┐рд░реВрдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рднрд▓реЗ рд╣реА рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдВрддрд░рд┐рдХ рдЕрднреНрдпрд╛рд╡реЗрджрди рд╣реЛрдВред рдЗрд╕реЗ рдПрди-рд╡реЗрдХреНрдЯрд░ рд╕рдордп 1-рдмрд╛рдп-рдПрдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрднреА рднреА рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдЯрд╛рдЗрдк рд╕реНрдерд┐рд░рддрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

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

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

рдореИрдВ рдПрдХ рднреМрддрд┐рдХ рд╡рд┐рдЬреНрдЮрд╛рдиреА рдФрд░ рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВред

рдореИрдВ рдЕрдм рд╕рднреА рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдореЛрдВ рдХреЛ рд░рдЦрдиреЗ рдпрд╛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрд╕рдо рдкрд░ рдордЬрдмреВрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд░рдЦрддрд╛

рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореИрдВ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ рдХреЛ рдЙрдард╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рд╡рд░реНрддрдорд╛рди рдЬреВрд▓рд┐рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:

V рдХреЛ 3-рдордВрдж рд░реИрдВрдХ -1 рдЯреЗрдВрд╕рд░ (рд╕рджрд┐рд╢) рд╣реЛрдиреЗ рджреЗрдВ
V [1] рд╣рдореЗрдВ рдПрдХ рд╕реНрдХреЗрд▓рд░ рджреЗрдЧрд╛ рдЬреЛ 1-рдордВрдж рд░реИрдВрдХ -1 рдЯреЗрдВрд╕рд░ рдирд╣реАрдВ рд╣реИ

рдЖрдЬреНрдЮрд╛ рджреЗрдирд╛ рдПрдХ 3x4x5 рд░реИрдВрдХ -3 рдЯреЗрдиреНрд╕рд░ рд╣реИ
рдмреА = рдП [1,:,:] рд╣рдореЗрдВ рдП 1x4x5 рд░реИрдВрдХ -3 рдЯреЗрдВрд╕рд░ рджреЗрдЧрд╛ред

рдЙрдкрд░реЛрдХреНрдд рджреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛рдлреА рд╕реБрд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИрдВред

рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдордг / рдлрд┐рд╕рд▓рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджреГрдврд╝рддрд╛ рд╕реЗ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ:

рдЖрдЬреНрдЮрд╛ рджреЗрдирд╛ рдПрдХ 3x4x5 рд░реИрдВрдХ -3 рдЯреЗрдиреНрд╕рд░ рд╣реИ
рдмреА = рдП [1,:,:] рд╣рдореЗрдВ 4x5 рд░реИрдВрдХ -2 рдЯреЗрдВрд╕рд░ рджреЗрдЧрд╛ред
рд╕реА = рдП [1: 1,:,:] рд╣рдореЗрдВ 1x4x5 рд░реИрдВрдХ -2 рдЯреЗрдВрд╕рд░ рджреЗрдЧрд╛ред
(рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рджреЛрдиреЛрдВ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВ)

рдмрддрд╛ рджреЗрдВ рдХрд┐ V рдПрдХ рд░реИрдВрдХ -1 рдЯреЗрдВрд╕рд░ рд╣реИ
B = V [1] рд╣рдореЗрдВ рдПрдХ рд╕реНрдХреЗрд▓рд░ рджреЗрдЧрд╛
C = V [1: 1] рд╣рдореЗрдВ 1-рдордВрдж рд░реИрдВрдХ -1 рдЯреЗрдВрд╕рд░ рджреЗрдЧрд╛ред

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╣рдореЗрдВ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдЯреЗрдВрд╕рд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА, рдФрд░ рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧреА рдЬрдм рд╣рдо рд╕рд┐рдВрдЧрд▓рдЯрди рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред

рд╢реНрд░реЗрд╖реНрда

рдЬрд┐рдУ-рдЧрд┐рд░реЛрд╣


рдкреНрд░реЗрд╖рдХ: esd100 [рд╕реВрдЪрдирд╛рдПрдВ@github.com]
рдкреНрд░реЗрд╖рд┐рдд: рдордВрдЧрд▓рд╡рд╛рд░, 09 рдЬреВрди, 2015 9:46 рдмрдЬреЗ
рдЯреВ: рдЬреВрд▓рд┐рдпрд╛рдВрдЧ / рдЬреВрд▓рд┐рдпрд╛
Cc: рдЬрд┐рдУ-рдЧреИрдВрдЧ рд╡реЗрди
рд╡рд┐рд╖рдп: рдкреБрди: [рдЬреВрд▓рд┐рдпрд╛] рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗ рдЬрд╛рдирд╛ (# рек) [рек)

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

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ Gi tHubhttps: //github.com/JuliaLang/julia/issues/4774#issuecomment -110554622 рдкрд░ рджреЗрдЦреЗрдВред

рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ: рд╕реА = рдП [1: 1,:,]] рд╣рдореЗрдВ 1x4x5 рд░реИрдВрдХ -3 рдЯреЗрдВрд╕рд░ рджреЗрдЧрд╛ред

рдЬрд┐рдУ-рдЧрд┐рд░реЛрд╣


рдкреНрд░реЗрд╖рдХ: рдЬрд┐рдУ-рдЧреИрдВрдЧ рд╡реЗрди [[email protected]]
рдкреНрд░реЗрд╖рд┐рдд: рд╕реЛрдорд╡рд╛рд░, реиреи рдЬреВрди реирежрезрел рджреЛрдкрд╣рд░ резреи:режрез
To: рдЬреВрд▓рд┐рдпрд╛рд▓реИрдВрдЧ / рдЬреВрд▓рд┐рдпрд╛; JuliaLang / рдЬреВрд▓рд┐рдпрд╛
Cc: рдЬрд┐рдУ-рдЧреИрдВрдЧ рд╡реЗрди
рд╡рд┐рд╖рдп: RE: [рдЬреВрд▓рд┐рдпрд╛] рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗ рдЬрд╛рдирд╛ (# 4774)

рдореИрдВ рдПрдХ рднреМрддрд┐рдХ рд╡рд┐рдЬреНрдЮрд╛рдиреА рдФрд░ рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВред

рдореИрдВ рдЕрдм рд╕рднреА рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдореЛрдВ рдХреЛ рд░рдЦрдиреЗ рдпрд╛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрд╕рдо рдкрд░ рдордЬрдмреВрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд░рдЦрддрд╛

рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореИрдВ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ рдХреЛ рдЙрдард╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рд╡рд░реНрддрдорд╛рди рдЬреВрд▓рд┐рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:

V рдХреЛ 3-рдордВрдж рд░реИрдВрдХ -1 рдЯреЗрдВрд╕рд░ (рд╕рджрд┐рд╢) рд╣реЛрдиреЗ рджреЗрдВ
V [1] рд╣рдореЗрдВ рдПрдХ рд╕реНрдХреЗрд▓рд░ рджреЗрдЧрд╛ рдЬреЛ 1-рдордВрдж рд░реИрдВрдХ -1 рдЯреЗрдВрд╕рд░ рдирд╣реАрдВ рд╣реИ

рдЖрдЬреНрдЮрд╛ рджреЗрдирд╛ рдПрдХ 3x4x5 рд░реИрдВрдХ -3 рдЯреЗрдиреНрд╕рд░ рд╣реИ
рдмреА = рдП [1,:,:] рд╣рдореЗрдВ рдП 1x4x5 рд░реИрдВрдХ -3 рдЯреЗрдВрд╕рд░ рджреЗрдЧрд╛ред

рдЙрдкрд░реЛрдХреНрдд рджреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛рдлреА рд╕реБрд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИрдВред

рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрдХреНрд░рдордг / рдлрд┐рд╕рд▓рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджреГрдврд╝рддрд╛ рд╕реЗ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ:

рдЖрдЬреНрдЮрд╛ рджреЗрдирд╛ рдПрдХ 3x4x5 рд░реИрдВрдХ -3 рдЯреЗрдиреНрд╕рд░ рд╣реИ
рдмреА = рдП [1,:,:] рд╣рдореЗрдВ 4x5 рд░реИрдВрдХ -2 рдЯреЗрдВрд╕рд░ рджреЗрдЧрд╛ред
рд╕реА = рдП [1: 1,:,:] рд╣рдореЗрдВ 1x4x5 рд░реИрдВрдХ -2 рдЯреЗрдВрд╕рд░ рджреЗрдЧрд╛ред
(рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рджреЛрдиреЛрдВ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВ)

рдмрддрд╛ рджреЗрдВ рдХрд┐ V рдПрдХ рд░реИрдВрдХ -1 рдЯреЗрдВрд╕рд░ рд╣реИ
B = V [1] рд╣рдореЗрдВ рдПрдХ рд╕реНрдХреЗрд▓рд░ рджреЗрдЧрд╛
C = V [1: 1] рд╣рдореЗрдВ 1-рдордВрдж рд░реИрдВрдХ -1 рдЯреЗрдВрд╕рд░ рджреЗрдЧрд╛ред

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╣рдореЗрдВ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдЯреЗрдВрд╕рд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА, рдФрд░ рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧреА рдЬрдм рд╣рдо рд╕рд┐рдВрдЧрд▓рдЯрди рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред

рд╢реНрд░реЗрд╖реНрда

рдЬрд┐рдУ-рдЧрд┐рд░реЛрд╣


рдкреНрд░реЗрд╖рдХ: esd100 [рд╕реВрдЪрдирд╛рдПрдВ@github.com]
рдкреНрд░реЗрд╖рд┐рдд: рдордВрдЧрд▓рд╡рд╛рд░, 09 рдЬреВрди, 2015 9:46 рдмрдЬреЗ
рдЯреВ: рдЬреВрд▓рд┐рдпрд╛рдВрдЧ / рдЬреВрд▓рд┐рдпрд╛
Cc: рдЬрд┐рдУ-рдЧреИрдВрдЧ рд╡реЗрди
рд╡рд┐рд╖рдп: рдкреБрди: [рдЬреВрд▓рд┐рдпрд╛] рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗ рдЬрд╛рдирд╛ (# рек) [рек)

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

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ Gi tHubhttps: //github.com/JuliaLang/julia/issues/4774#issuecomment -110554622 рдкрд░ рджреЗрдЦреЗрдВред

рдЖрдк рдЬреЛ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЗрд╕ рд╕рдордп slice ред рдореЗрд░реА рд╕рдордЭ рдореЗрдВ рдпрд╣ рд╣реИ рдХрд┐ A[stuff] slice(A, stuff) рд▓рд┐рдП рдПрдХ рдкрд░реНрдпрд╛рдп рдмрди рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдк рд╢рд╛рдпрдж рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред

рдкреНрд░рд┐рдп рдЯрд┐рдо:

рдЯрд┐рдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рд╕реНрд▓рд╛рдЗрд╕ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдпрд╣ рдореЗрд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред рд╕реНрд▓рд╛рдЗрд╕ рдПрдХ рдирдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ "рд╕рдмрд░реНрд░реЗ" рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреНрдп рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдЬреЛ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ :: рдПрд░реЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ред

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

рдЬрд┐рдУ-рдЧрд┐рд░реЛрд╣


рдкреНрд░реЗрд╖рдХ: рдЯрд┐рдо рд╣реЛрд▓реА [рд╕реВрдЪрдирд╛рдПрдВ@github.com]
рдкреНрд░реЗрд╖рд┐рдд: рд╕реЛрдорд╡рд╛рд░, реиреи рдЬреВрди реирежрезрел рд╢рд╛рдо рел:рейреи
рдЯреВ: рдЬреВрд▓рд┐рдпрд╛рдВрдЧ / рдЬреВрд▓рд┐рдпрд╛
Cc: рдЬрд┐рдУ-рдЧреИрдВрдЧ рд╡реЗрди
рд╡рд┐рд╖рдп: рдкреБрди: [рдЬреВрд▓рд┐рдпрд╛] рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗ рдЬрд╛рдирд╛ (# рек) [рек)

рдЬреЛ рдЖрдк рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрд▓рд╛рдЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдореЗрд░реА рд╕рдордЭ рдореЗрдВ рдпрд╣ рд╣реИ рдХрд┐ A [рд╕рд╛рдорд╛рди] рд╕реНрд▓рд╛рдЗрд╕ (A, рд╕рд╛рдорд╛рди) рдХрд╛ рдПрдХ рдкрд░реНрдпрд╛рдп рдмрди рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдк рд╢рд╛рдпрдж рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ Gi tHubhttps: //github.com/JuliaLang/julia/issues/4774#issuecomment -114268796 рдкрд░ рджреЗрдЦреЗрдВред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ AbstractArray рдмрдЬрд╛рдп рдХрдВрдХреНрд░реАрдЯ Array рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрднрд░ рд╣реИ? рдпрд╣ рдПрдХ рдЦреЛрдЬ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ / рдХреА рдЬрдЧрд╣ рд▓реЗ рд╕рдХрддреА Array рдХреЗ рд╕рд╛рде AbstractArray рдЪреАрдЬреЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдкреНрд░рд┐рдп рд╕реНрдХреЙрдЯ

рдЯрд┐рдк рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

рдЬрд┐рдУ-рдЧрд┐рд░реЛрд╣


рдкреНрд░реЗрд╖рдХ: рд╕реНрдХреЙрдЯ рдкреАред рдЬреЛрдиреНрд╕ [рд╕реВрдЪрдирд╛рдПрдВ@github.com]
рдкреНрд░реЗрд╖рд┐рдд: рдЧреБрд░реБрд╡рд╛рд░, 25 рдЬреВрди, 2015 9:55 рдкреВрд░реНрд╡рд╛рд╣реНрди
рдЯреВ: рдЬреВрд▓рд┐рдпрд╛рдВрдЧ / рдЬреВрд▓рд┐рдпрд╛
Cc: рдЬрд┐рдУ-рдЧреИрдВрдЧ рд╡реЗрди
рд╡рд┐рд╖рдп: рдкреБрди: [рдЬреВрд▓рд┐рдпрд╛] рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗ рдЬрд╛рдирд╛ (# рек) [рек)

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

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ Gi tHubhttps: //github.com/JuliaLang/julia/issues/4774#issuecomment -115265047 рдкрд░ рджреЗрдЦреЗрдВред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рдЪрд╛рд▓ рдЪрд▓реА рдЧрдИ? рдореИрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реВрдБ!

@wenxgwen , рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдПрдХ рдирдП Array рдореЗрдВ рд╕реНрд▓рд╛рдЗрд╕ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП copy(slice(A,...)) рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рддрдм рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЕрдм рдПрдХ рдЖрдХрд░реНрд╖рдХ рдкреНрд░рдпрд╛рд╕ рдмрди рдЧрдпрд╛ рд╣реИ

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдЕрдм 3 рдХреЙрдорд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ ...
image

рд▓реЗрдХрд┐рди рд╕рднреА рдЧрдВрднреАрд░рддрд╛ рдореЗрдВред рдореИрдВрдиреЗ рдЪрд░реНрдЪрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рдирд╣реАрдВ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдХреНрдпрд╛ рд╣рдо рд╕рдВрднрд╡рддрдГ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛ (LinearIndexing рдХреЗ рд╕рдорд╛рди) рдХреЗ рд▓рд┐рдП AbstractArray рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рдкрдВрдХреНрддрд┐-рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдпрд╛ рд╕реНрддрдВрдн-рдЖрдзрд╛рд░рд┐рдд рд╕рдВрдЧреНрд░рд╣рдг рд╣реИ? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг рдЦреБрд▓реЗрдВрдЧреЗ (рдХреГрдкрдпрд╛ рдирд╛рдореЛрдВ рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВ ... рдмрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ):

v --> length-2 Vector{Col}
  [ 1
    2 ]

v'  --> length-2 Vector{Row}
  [ 1 2 ]

m --> 2x2 Matrix{Col}
  [ 1 3 
    2 4 ]

m' --> 2x2 Matrix{Row}
  [ 1 2 
    3 4 ]

Some operations:
v'  --> length-2 Vector{Col}
v'' == v
v*v or v'*v'  --> either error, or do element-wise multiplication
v' * v --> scalar
v * v' --> 2x2 Matrix  (could be Row or Col??)
v' * m --> 2-length Vector{Row}
v * m --> either error or broadcasting operation
m * v --> either error or broadcasting operation
m * v' --> 2-length Vector{Col}

Indexing:
v[2] --> 2
v[1,2] --> error
v'[1,2] --> 2
m[1,2]  --> 3
m'[1,2]  --> 2

Size:
length(v)  --> 2
length(v')  --> 2
size(v)  --> (2,)
size(v')  --> (2,)
length(m)  --> 4
size(m)  --> (2,2)

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

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

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

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

рд╕реНрддрдВрдн-рдЖрдзрд╛рд░рд┐рдд рдмрдирд╛рдо рдкрдВрдХреНрддрд┐-рдЖрдзрд╛рд░рд┐рдд рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред

@tbreloff рдореБрдЭреЗ рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИред рдпрд╣ рдЙрди рднрд╛рд╖рд╛рдУрдВ / рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдЬреЛ рдкрдВрдХреНрддрд┐-рдкреНрд░рдореБрдЦ рд╣реИрдВред

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

рдпрджрд┐ рдЖрдкрдХреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдкрдВрдХреНрддрд┐ / рд╕реНрддрдВрдн рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдП
рд╕рдЯреАрдХ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЛ TransposeView {T, N} рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ
рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

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

рд╢рдирд┐рд╡рд╛рд░, 26 рд╕рд┐рддрдВрдмрд░, 2015 рдХреЛ, рд╕реНрдХреЙрдЯ рдкреАред рдЬреЛрдиреНрд╕ рд╕реВрдЪрдирд╛рдПрдВ @
рд▓рд┐рдЦрд╛ рдерд╛:

@tbreloff https://github.com/tbreloff рдореБрдЭреЗ рдЖрдЗрдбрд┐рдпрд╛ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИред рдпрд╣
рднрд╛рд╖рд╛рдУрдВ / рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛
рдпрд╣ рдкрдВрдХреНрддрд┐-рдкреНрд░рдореБрдЦ рд╣реИрдВред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/JuliaLang/julia/issues/4774#issuecomment -143436947ред

рдХреНрдпрд╛ рдХреЙрд▓-рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕реНрдкреЗрд╕ рдмрд┐рд▓реНрдХреБрд▓ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ? рдКрдкрд░ рдХреЗ рд╕рдордп рдореЗрдВ * рдХреЗ рдЕрд░реНрде рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА v::Covector * w::Vector рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рд╣рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрд╛ рдХреЗ рдмрдЬрд╛рдп * рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ " w v " рдХреЗ рддрд╣рдд рд▓реЗ рд░рд╣реЗ рд╣реИрдВ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдХреЛрдИ рдПрдХ рд╕рдорд╛рди рдорд╛рдВрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ w::Vector * v::Covector рдПрдХ рдЕрджрд┐рд╢

рд╢рд╛рдпрдж рдпрд╣ рдмрдЬрд╛рдп рдЕрдзрд┐рднрд╛рд░ рдХреЗ рд▓рд┐рдП рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ call рдФрд░ рд▓рд┐рдЦрдиреЗ v(w) 'рдХреЗ рддрд╣рдд рдирдХреНрд╢рд╛ рдирд┐рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП v рдкрд░ рдЖрдкрд░реЗрд╢рди " w , рдФрд░ рдЗрд╕реА рдХреЗ рд▓рд┐рдП w(v) - рджреЛрдиреЛрдВ рд╕реНрдХреЗрд▓рд░ рд▓реМрдЯреЗрдВрдЧреЗред рдпрд╣ 2d рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд░рдгреА рд╕рдВрдЪрд╛рд▓рди рдФрд░ рд░реИрдЦрд┐рдХ рдмреАрдЬреАрдп рд╕рдВрдЪрд╛рд▓рди рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд▓реЗрд╡реЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛?

рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдорд╛рди рдорд╛рдВрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ w :: рд╡реЗрдХреНрдЯрд░ * v :: Covector рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реИрдХреНрдЯрд░ рд╕реНрд╡рдпрдВ covectors рдкрд░ рд░реЗрдЦреАрдп рдирдХреНрд╢реЗ рд╣реИрдВ?

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

рдХреЙрд▓ рд╕рдореНрдореЗрд▓рди рдХреЗ рд░реВрдк рдореЗрдВ v(w) , рд╣рдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рд╣рдо рдХреА рд░рд╛рд╢рд┐ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ v рдХреА рджрд┐рд╢рд╛ рдореЗрдВ w рдЬреЛ рд╣рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рдЕрдиреБрдХреНрд░рдордг рдСрдкрд░реЗрдЯрд░ v[w] ред (BTW, рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдБ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рднрд╛рд╖рд╛ рдбрд┐рдЬрд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рд╣реИ - рд╕рд┐рд░реНрдл рдПрдХ рдЕрд╡рд▓реЛрдХрди!)

рд╣рдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо v рдХреА рджрд┐рд╢рд╛ рдореЗрдВ w рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ v[w] ред

рдпрд╣ рд╕реБрдЭрд╛рд╡ рд▓рдЧрднрдЧ, рд▓реЗрдХрд┐рди рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ v Vector{<:Integer} рддреЛ рдпрд╣ рд╡реЗрдХреНрдЯрд░ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рд╕рдорд░реНрдерди рд╕реЗ рднреА рдЯрдХрд░рд╛рддрд╛ рд╣реИред

рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ v :: Vector{T<:Real} , v[1] рдбреЙрдЯ рдЙрддреНрдкрд╛рдж vтЛЕeтВБ , рдЬрд╣рд╛рдВ eтВБ рдкрд╣рд▓реА рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рд╡рд┐рд╣рд┐рдд рдЖрдзрд╛рд░ рд╡реЗрдХреНрдЯрд░ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рд░рд▓ рдЕрдиреБрдХреНрд░рдордг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрдп рд╣реИ

   v[n] : n :: Integer --> y = (v тЛЕ eтВЩ) :: T

рд╡реЗрдХреНрдЯрд░ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, v[[1, 2]] [vтЛЕeтВБ, vтЛЕeтВВ] v[[1, 2]] рдЙрддреНрдкрд╛рджрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ v рдХреЛ {eтВБ, eтВВ} рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдпреЛрдЬрд┐рдд рдЙрдк-рднрд╛рдЧ рдореЗрдВ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдпрд╛ рдЗрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реА v' * [eтВБ eтВВ] рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред

рддреЛ рд╡реЗрдХреНрдЯрд░ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╣реИ

   v[I] : I :: Vector{<:Integer} --> y = v' * [eтВЩ for n in I] :: Vector{T}

v[w] = (w тЛЕ v) v рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрдВрдбреЗрдХреНрд╕ n рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдирд┐рд╣рд┐рдд рдорд╛рдирдЪрд┐рддреНрд░рдг рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ w рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╡рд┐рд╣рд┐рдд рдЖрдзрд╛рд░ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ eтВЩ , рдЬреЛ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрдХреНрд░рдордг рдирд┐рдпрдореЛрдВ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

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

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХреЛрд╡реЗрдХреНрдЯрд░ рдкрд░ рдПрдХ рд╢реЙрдЯ рд▓рд┐рдпрд╛ред рдпрд╣ рдмрд╣реБрдд рдХрд╛рдо рд╣реИ, рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рджреЗ рдкрд╛рдКрдВрдЧрд╛ред рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдЗрд╕ рдЙрдореНрдореАрдж рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдпрд╛ рддреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рднрд╛рдЧреЗрдЧрд╛ рдпрд╛ рдХрд┐ рд╣рдо рдХрдард┐рдирд╛рдЗрдпреЛрдВ рд╕реЗ рд╕реАрдЦреЗрдВрдЧреЗ рдФрд░ рднрд╛рдЧрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рде рдПрдХ рд╢рд╛рдЦрд╛ рднрд╡рди рд╣реИ, рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрдИ рдмрд╛рд░ рдХреЛрд╡реЗрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреБрдЫ рдЪрдпрдирд┐рдд рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ depwarn=error (рдЙрджрд╛, ./julia -e 'using Base.Test; include("test/matmul.jl")' ) рдХреЗ рдмрд┐рдирд╛ред https://github.com/JuliaLang/julia/compare/mb/transpose

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

immutable MatrixTranspose{C,T,A} <: AbstractArray{T,2}
    data::A # A <: AbstractMatrix{T}
end
immutable Covector{C,T,V} 
    data::V # V <: AbstractVector{T}
end

C рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рд╕рд░рд▓ рдмреВрд▓рд┐рдпрди рд╣реИ рдЬреЛ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдПрдХ рд╕рдВрдХреНрд░рдордг рд╣реИ рдпрд╛ рдирд╣реАрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Covector AbstractArray рдХрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░ _not_ рд╣реИ; рдпрд╣ рдпрдереЛрдЪрд┐рдд рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдордЬрдмреВрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреБрдЫ рдиреБрдХрд╕рд╛рди:

  • рдХреЛрд╡реЗрдЯрд░реНрд╕ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИрдВ, рдФрд░ рд╡реЗ рдПрдХ рд╕реБрд▓рдн рдФрд░ рдХрдареЛрд░ рддрд░реАрдХреЗ рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреБрдиреМрддреА рд╣реЛрдЧреАред рднрд╛рд╖рд╛ рдпрд╣рд╛рдБ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИ - рд╣рдо рдЙрдиреНрд╣реЗрдВ RowVector s рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред рднрд▓реЗ рд╣реА, рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЖрдкрдХреЛ рдЬреЛ рдкрд╣рд▓реА рдореБрд╢реНрдХрд┐рд▓ рд╣реБрдИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ ( size рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд) рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ (m,n) рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИ, рддреЛ (m,) рдПрдХ рд╕рджрд┐рд╢ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИ ... рдФрд░ рдпрджрд┐ рд╣рдо рдЯреНрдпреВрд▓ рдиреЛрдЯреЗрд╢рди рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕реНрд▓реИрдВрдЧрд▓реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдХреГрддрд┐ (,n) ред рдпрд╣ рд╣рдореЗрдВ рдПрдХ "рд▓рд╛рдкрддрд╛" рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде рдорд┐рд╢реНрд░рд┐рдд рд╡реЗрдХреНрдЯрд░ / рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмреАрдЬрдЧрдгрд┐рдд рдирд┐рдпрдореЛрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдЬреЛрдбрд╝рддреА рд╣реИ рдФрд░ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ:

    • рдореИрдЯреНрд░рд┐рдХреНрд╕ * рд╡реЗрдХреНрдЯрд░ (m,n) ├Ч (n,) тЖТ (m,)

    • рдХреЛрд╡реЗрдХреНрдЯрд░ * рдореИрдЯреНрд░рд┐рдХреНрд╕ (,m) ├Ч (m,n) тЖТ (,n)

    • рд╡реЗрдХреНрдЯрд░ * рдХреЛрд╡реЗрдХреНрдЯрд░ (n,) ├Ч (,n) тЖТ (n,n)

    • рдХреЛрд╡реЗрдХреНрдЯрд░ * рд╡реЗрдХреНрдЯрд░ (,n) ├Ч (n,) тЖТ ╬▒ (рд╕реНрдХреЗрд▓рд░) рд╣реИ

  • рдмрд╛рдЗрдирд░реА рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреНрд░рдХрд╛рд░ рдпрд╣рд╛рдБ рдХрдИ рддрд░реАрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рджрд╣рдирд╢реАрд▓ рд╡рд┐рд╕реНрдлреЛрдЯ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ... рдмрд╕ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреБрдгрд╛ рдХреЗ рд▓рд┐рдП:

    • рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди: (рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди, рдЧреИрд░-рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди)
    • рд╕рдВрдХреНрд░рдордг: (A, Aс╡А, Aс┤┤) ├Ч (B, Bс┤┤, Bред)ред
    • рдЖрдХрд╛рд░: (Mat ├Ч Mat; Vec ├Ч Mat; Mat ├Ч Vec, Vec ├Ч Vec)ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпреЗ рд╕рднреА рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдХреЗ рд╕рднреА рд╕рдВрдпреЛрдЬрдиреЛрдВ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣реИрдВред
    • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди: (BLAS, рд╕реНрдЯреНрд░реЗрдЯреЗрдб, рдЬреЗрдиреЗрд░рд┐рдХ, рдФрд░ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛)

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


  • рд╡реЗ рд╕рднреА рдЕрджрд┐рд╢ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдХрдард┐рдирд╛рдИ рдХреЛ рддреБрд░рдВрдд рд╣рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рд╣рдо рд╕реНрдХреЗрд▓рд░ рдЖрдпрд╛рдо рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╣рдореЗрдВ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдо рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрд╕реНрдкрд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ https://github.com/JuliaLang/julia/pull/13612)ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ A[1,:] рдПрдХ covector рд╣реЛ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реНрд▓рд╛рдЗрд╕ рд╕реЗ рдЧреИрд░-AbstractArray рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЬреАрдм рд╣реЛрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд▓реЛрдЧ # 13612 рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рдВрдпреБрдЧреНрдорд┐рдд рд╕рдВрдХреНрд░рдордг рдкрд░реЗрд╢рд╛рдиреА рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ - рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╡реЗрдХреНрдЯрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрдВрдЯ рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреЗ рд╕рд╛рде рдЙрддрдирд╛ рд╣реА рдмреБрд░рд╛ рд╣реЛрдЧрд╛ рдФрд░ рдПрдХреНрд╕рдкреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Covectors рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдХреБрдЫ рдлрд╛рдпрджреЗ:

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

рдЕрдиреНрдп рдиреЛрдЯ:

  • рдПрдХ рдмреВрд▓рд┐рдпрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдП рдЧрдП рдкрд╛рд░рдЧрдорди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╣реЛрдиреЗ рд╕реЗ рдареАрдХ рдХрд╛рдо рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рдЧрд▓рдд рдХреНрд░рдо рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рд╢рд╛рдпрдж рд╣реА рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛрдиреЛрдВ T рдФрд░ C рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдпрд╛ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдЯрд╛рдЗрдкрд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛, рддреЛ рдЖрдкрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХрдо рд╕реЗ рдХрдо рдпрд╣ AbstractArray{T} рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛрдЧрд╛ред
  • рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ StredArray рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЛ рдмрдврд╝рд╛ рджреЗрддрд╛ рд╣реИред рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рддрд╛рд▓рд┐рдХрд╛ рдкрдврд╝рдирд╛ * рдХрд╛рдлреА рдХреА рддрд░рд╣ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЪреБрдиреМрддреА рд╣реИ ::Union{DenseArray{T<:Union{Complex{Float32},Complex{Float64},Float32,Float64},2},MatrixTranspose{C,T<:Union{Complex{Float32},Complex{Float64},Float32,Float64},A<:Union{DenseArray{T,1},DenseArray{T,2},SubArray{T,1,A<:DenseArray{T,N},I<:Tuple{Vararg{Union{Colon,Int64,Range{Int64}}}},LD},SubArray{T,2,A<:DenseArray{T,N},I<:Tuple{Vararg{Union{Colon,Int64,Range{Int64}}}},LD}}},SubArray{T<:Union{Complex{Float32},Complex{Float64},Float32,Float64},2,A<:DenseArray{T,N},I<:Tuple{Vararg{Union{Colon,Int64,Range{Int64}}}},LD}} ред рдЬрд╝рд░реВрд░, рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдЯрд╛рдЗрдкреЗрд▓рд┐рдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрди рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдирд╛рдореЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рднреА рдПрдХ рджрд░реНрдж рд╣реИ ( StridedMatOrTrans , QRCompactWYQorTranspose , рдЖрджрд┐)ред
  • рдореБрдЭреЗ SparseVector рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрдбрд╝реА рдЬреАрдд рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ CSR рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдкрд╛рд░рдЧрдорди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░реЗрдЧрд╛ред
  • рдХреНрдпрд╛ рд╣рдореЗрдВ Covectors рдкрд░ рд╕реНрдХреЗрд▓рд░ рдФрд░ / рдпрд╛ рдиреЙрди-рд╕реНрдХреЗрд▓рд░ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ r[:] рдпрд╛ r[1:end] рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдПрдХ рд╕рджрд┐рд╢ рдпрд╛ рдХреЛрд╡реЗрдХреНрдЯрд░ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рджреВрд░ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдорддрд▓рд╛рдм рдХреЗ рдкрд╛рд╕ рдЕрдиреНрдп рд╡реИрдХреНрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐-рд╡реЗрдХреНрдЯрд░реЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдо рд╣реИрдВ - рд╡реЗ рдХреБрдЫ рдЕрдЬреАрдм рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреА рдХреАрдордд рдкрд░ рдЕрдкрдиреЗ рдкрдВрдХреНрддрд┐-рдиреЗрд╕ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдмрд╣реБрдд рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ ( r((1:end)') r(1:end) r(:)' )ред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдЕрдкрдиреА рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕реНрдХреЗрд▓рд░ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЗрд╕реЗ рднреА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛ рдХрд┐ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред

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

рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░, рдЕрдЧрд░ рдЖрдк рдЕрднреА рднреА @ рдордореВрдорди рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдмреВрд▓рд┐рдпрди рдкреИрд░рд╛рдореАрдЯрд░ C рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕рдиреЗ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛? рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд╕ (рдЫрджреНрдордкрддреНрд░реЛрдВ рдореЗрдВ) рдирд╣реАрдВ рд╣реИ

transpose(::Matrix) -> MatrixTranspose
transpose(::MatrixTranspose) -> Matrix

? рдореИрдВ рдпрд╣рд╛рдВ рдЖрдкрдХреЗ (рдЕрд╕рд╛рдзрд╛рд░рдг) рдлреИрд╕рд▓реЗ рдкрд░ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдмрд╕ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдЕрд╣рд╕рд╛рд╕ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВред

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

рдЖрдкрдХреЛ рд╕рдВрдпреБрдЧреНрдо рдЯреНрд░рд╛рдВрд╕рдЬреЗрдВрдбреНрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рддрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдФрд░ (A').' рд▓рд┐рдП рдЕрди-рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдб рд╕рдВрдпреБрдЧреНрдо рд╕рд░рдгрд┐рдпрд╛рдБ рднреА)ред рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рддреАрди рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХреЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:

  • рдПрдХ MatrixTranspose рдкреНрд░рдХрд╛рд░ рдХреЗ рднреАрддрд░ рдПрдХ рдмреВрд▓рд┐рдпрди рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдпреБрдЧреНрдорди рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВред рдкреНрд░рддрд┐рдмрд┐рдВрдм рдкрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░реА рдмреАрдПрд▓рдПрдПрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдореВрд▓ рдирд┐рд╡рд╛рд╕реА рдЬреВрд▓рд┐рдпрд╛рдмреНрд▓рд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ / рдПрд▓рдПрд▓рд╡реАрдПрдо рд▓реВрдк рд╕реЗ T.isconjugate ? conj(T[i,j]) : T[i,j] рд▓рд╣рд░рд╛ рд╕рдХреЗред
  • рд╕рдВрдпреБрдЧреНрдорди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХрд╛рд░ред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЪреБрдирд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдерд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо Ac_mul_Bt рдФрд░ рджреЛрд╕реНрддреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдпреБрдЧреНрдо-рдиреЗрд╕ рдкрд░ рдЫрджреНрдо рдкреНрд░реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдЬреВрд▓рд┐рдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╢рд╛рдЦрд╛рдПрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдордЬрдмреВрдд рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдард┐рди рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ ... рдореИрдВ рдмрд╕ рдПрдХ рд╕реНрдХреЗрдЪ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдореИрдВ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЪрд┐рдВрддрд┐рдд рдерд╛ред
  • рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░, MatrixTranspose рдФрд░ MatrixCTranspose ред рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрдЗрд╕реЛрдореЛрд░реНрдлрд┐рдХ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░ рдкрд░реЗрд╢рд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЕрдореВрд░реНрдд supertypes рдФрд░ рдпреВрдирд┐рдпрди рдЙрдкрдирд╛рдо рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдкрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЪреБрдиреВрдВрдЧрд╛ред

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

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо ConjugateView рд░реИрдкрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдпрдо conj рдФрд░ transpose рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ ConjugateView MatrixTranspose рд░реИрдкрд░ рдХреЗ рдЕрдВрджрд░ рд░рдЦреЗред ред рдпрд╛рдиреА, A a Matrix ,
A' = conj(transpose(A)) = transpose(conj(A)) рд╕рднреА рдПрдХ MatrixTranspose{ConjugateView{Matrix}} (рдЕрдирдЗрдирдлреЙрд░реНрдореЗрдЯрд┐рд╡ рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ) рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВред

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

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

рдХреНрд░реЙрд╕-рд▓рд┐рдВрдХ https://github.com/JuliaLang/julia/pull/6837#issuecomment -2133383832

рдХреНрдпрд╛ рдпрд╣ 1.0 рдХреА рдпреЛрдЬрдирд╛ рд╣реИ?

рджреЛ рдореБрджреНрджреЛрдВ (# 18056, # 18136) рдореЗрдВ рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╢рд╛рд▓ рдзрд╛рдЧреЗ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛рддрд╛ рд╣реВрдВред

рдЕрдм рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдкрд╛рд╕ рд╕рдЪ 1-рдЖрдпрд╛рдореА рд╡реИрдХреНрдЯрд░ рд╣реИрдВ, _e.g._ mx[row,:] рдЕрдм 1xn рдореИрдЯреНрд░рд┐рдХреНрд╕ рдирд╣реАрдВ рд╣реИред
рдпрд╣ рдПрдХ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рдмрджрд▓рд╛рд╡ рд╣реИ!

рд▓реЗрдХрд┐рди рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдХреБрдЫ рдореМрдЬреВрджрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдИрдВред
рдореБрдЭреЗ рдЗрд╕ рддрдереНрдп рд╕реЗ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ v*mx 1-рдЖрдпрд╛рдореА рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ 1-рдбреА рд╡реЗрдХреНрдЯрд░ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП,
рдЬрдм рд╕рд╛рдорд╛рдиреНрдп a*b рдЙрддреНрдкрд╛рдж рдХреЛ рдЕрдиреБрдмрдВрдз рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдкрд╣рд▓реЗ рдкрдж рдХрд╛ рдЕрдВрддрд┐рдо рд╕реВрдЪрдХрд╛рдВрдХ рдФрд░ рджреВрд╕рд░реЗ рдХрд╛рд░реНрдпрдХрд╛рд▓ рдХрд╛ рдкрд╣рд▓рд╛ рд╕реВрдЪрдХрд╛рдВрдХред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡реЗрдХреНрдЯрд░-рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЙрддреНрдкрд╛рдж рдХреА рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИ:
(*)(A::AbstractVector, B::AbstractMatrix) = reshape(A,length(A),1)*B
рдФрд░ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ v*v' рдХреЗрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рди рдХрд┐ v*mx ред
( рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреБрдЫ рдорддрд▓реВрдм рдЬреИрд╕реА рд╕рд╣рд╡рд╛рд╕ рд╕реЗ рдЬреВрдЭ рд░рд╣реА рд╣реИрдВред
рд▓реЗрдХрд┐рди рдорддрд▓рд╛рдм рдореЗрдВ рдХреЛрдИ 1-d рд╡реИрдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИрдВ, рд╕рд┐рд░реНрдл 1xn рдФрд░ nx1 рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рд╣реИрдВ,
рдЗрддрдиреА рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИрдВ, рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╕рдЪ 1-d рд╡реИрдХреНрдЯрд░ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдлрд╛рдпрджрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдлреЛрд░рдЯреНрд░рд╛рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рдЙрджрд╛рд╣рд░рдг рд╣реИред
transpose рдСрдкрд░реЗрд╢рди рдХреЗрд╡рд▓ рдлреЛрд░рдЯреНрд░рд╛рди рдореЗрдВ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ,
рдПрдХ рд╕рдЪреНрдЪреЗ 1-рдбреА рд╡реЗрдХреНрдЯрд░ рд╕реЗ 1xn рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрдирд╛рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдХреНрд░рдордг рдирд╣реАрдВ рд╣реИред
matmul рдХреЗ рд▓рд┐рдП # 18056 рдореЗрдВ рдЙрджреНрдзреГрдд рдореЗрдЯрдХрд╛рдл-рдкреБрд╕реНрддрдХ рдХрд╛ рдЕрдВрд╢ рджреЗрдЦреЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ @alanedelman рдХреЗ рдореВрд▓ рдЕрдВрдХ рд╕рд╣реА рдереЗред

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

  • v' рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рд╕рдЪреНрдЪреЗ 1-d рд╡реЗрдХреНрдЯрд░ v рд╕реЗ 1xn рдореИрдЯреНрд░рд┐рдХреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ
  • rowmx рдФрд░ colmx рдлрд╝рдВрдХреНрд╢рдВрд╕ рдмреЗрд╣рддрд░ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди v' рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИ
  • рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА vec 1 + рд╕рдЪреНрдЪреА рд╡реЗрдХреНрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рдХреНрд░рд┐рдпрд╛
  • рд╣рд╛рд▓рд╛рдВрдХрд┐ v' рдХрд╛ рд╡реНрдпреБрддреНрдХреНрд░рдо v'' рд▓реЗрдХрд┐рди vec(v') , рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ
  • a*b рдЙрддреНрдкрд╛рдж рд╣рдореЗрд╢рд╛ рдХреЗ рдЕрдВрддрд┐рдо рд╕реВрдЪрдХрд╛рдВрдХ рдЕрдиреБрдмрдВрдз рдЪрд╛рд╣рд┐рдП a рдФрд░ рдХреЗ рдкрд╣рд▓реЗ рд╕реВрдЪрдХрд╛рдВрдХ b
  • * рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╛ рддреЛ рдЖрдВрддрд░рд┐рдХ рдпрд╛ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА dot рдлрд╝рдВрдХреНрд╢рди рд╣реИ
  • рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП * рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (_i.e._ v*v' рд╕рд┐рдВрдЯреИрдХреНрд╕)
  • рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд infix рдСрдкрд░реЗрдЯрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреНрд░рдХрд╛рд╢ рд░рдЦ рд╕рдХрддрд╛ рд╣реИ

рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП [рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЧрдгрд┐рддреАрдп рд╕рд┐рдВрдЯреИрдХреНрд╕] рдХреЛ рдЦреЛрдирд╛ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реЛрдЧрд╛ред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ vec * рдореИрдЯ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред

рдХреНрдпрд╛ рдореМрдЬреВрджрд╛ PernutedDimsArray рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдФрд░ рджреГрд╢реНрдп рдХреЗ рдЖрдпрд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧреИрд░-рд╕рдВрдпреБрдЧреНрдо рдЯреНрд░рд╛рдВрд╕рдЬреЗрдВрдбрд░ рдЖрд╡рд░рдг рдкреНрд░рдХрд╛рд░ рд╡реЗрдХреНрдЯрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рднреА рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛред

рдореБрдЭреЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ PermutedDimsArray рдирд╣реАрдВ рдорд┐рд▓рд╛ред

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

"рд▓рд╛рдкрддрд╛ рддрд░реАрдХреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛" рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдЪрд┐рдВрддрд╛ рд╣реЛрдЧреА, рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╣реЛрдЧрд╛ рдХрд┐ .' рдПрдХ рдЖрд▓рд╕реА рдЖрд╡рд░рдг рдкреНрд░рдХрд╛рд░ (рдФрд░ ' рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдПрдХ рд╕рдВрдпреБрдЧреНрдорд┐рдд рд╕рдВрд╕реНрдХрд░рдг)ред рдЕрдиреНрдпрдерд╛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рджреЛрдиреЛрдВ vec*mat рдФрд░ vec*vec' рджреЛрдиреЛрдВ рдПрдХ рд╣реА * рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдореИрдВрдиреЗ рдПрдХ рдкреЗрдкрд░ рдореЗрдВ vec*mat рджреЗрдЦрд╛ рддреЛ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЧрд▓рдд рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ vec*vec' рдмрд╣реБрдд рдмрд╛рд░ рджреЗрдЦрддрд╛ рд╣реВрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЛрдЪрддреЗ рд╣реБрдП, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ PermutedDimsArray рдЕрдкрдиреЗ рдПрд▓реАрдореЗрдВрдЯреНрд╕ рдХреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред

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

рдореИрдВ рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдереЗ рдЬрдмрдХрд┐ рдпрд╣ рдзрд╛рдЧрд╛ рдЗрд╕рдХреЗ рдЕрдВрдд рдХреЗ рдирд┐рдХрдЯ рд╣реИред

рдЬрдмрдХрд┐ v*mx рдЖрдкрдХреЛ рдЕрдЬреАрдм рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрд░рд┐рд╕реНрдЯрд▓реЛрдЧреНрд░рд╛рдлрд┐рдХ рдХреЛрдб рдореЗрдВ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдлреЛрд░рдЯреНрд░рд╛рди рдХреЗ matmul рджреНрд╡рд╛рд░рд╛ рднреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред (# 18056 рджреЗрдЦреЗрдВ)

u*v' рдЙрддреНрдкрд╛рдж рдкрд░ рд╡рд╛рдкрд╕ред
рдЬрдм u рдФрд░ v рджреЛрдиреЛрдВ nx1 рдореИрдЯреНрд░реАрдХ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЙрддреНрдкрд╛рдж рд╣реИ,
рдпрд╣ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рд╛ред
рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЙрддреНрдкрд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдпрд╣ рдорддрд▓рд╛рдм рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рд╣рдЬ рд╣реИ рдЬрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИред

рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдЪреНрдЪреЗ 1-рдбреА рд╡реИрдХреНрдЯрд░ рд╣реИрдВ рдЬреЛ рдХрд┐ рдлреЛрд░рдЯреНрд░рд╛рди рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рдХрд░реАрдм рд╣реИрдВред
рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрд┐рдд рд╡реЗрдХреНрдЯрд░ v' рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ,
рдлреЛрд░рдЯреНрд░рд╛рди рдХреА рдкрд╕рдВрдж рдЗрд╕реЗ рдордирд╛ рдХрд░рдирд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреВрд╕рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдлреЛрд░рдЯреНрд░рд╛рди рдХрд╛ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИред
рдЬреВрд▓рд┐рдпрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ v' рдХреЛ 1xn рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдмрджрд▓ рджреЗрддреА рд╣реИ,
рдФрд░ 1-d рд╡реЗрдХреНрдЯрд░ рдФрд░ 1xn рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ * рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддрд╛ рд╣реИред
рдХрдИ рдкреНрд░реЗрд╖рдг рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ,
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ * рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдм рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ рд╣реИред

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

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

(рдУрд╣, рдореИрдВрдиреЗ рдХреНрд░реЙрд╕ рдЙрддреНрдкрд╛рдж рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд▓рдЧ рд╣реИ)

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

рдПрдХ рд╕рд╛рд░ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ, рдореБрдЦреНрдп рдЦрд┐рд▓рд╛рдбрд╝реА v (рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ V ), рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░ (рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ V рдФрд░ рдореИрдкрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ рд╕рдВрднрд╡рддрдГ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рди W ) рдФрд░ рдЗрди рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреА рд░рдЪрдирд╛, рд░реЗрдЦреАрдп рд░реВрдк рдпрд╛ рдХреЛрд╡реЗрдХреНрдЯрд░ (рджреЛрд╣рд░реА рдЬрдЧрд╣ V* рдФрд░ V рд╕реНрдХреЗрд▓рд░реЛрдВ рд╕реЗ рдореИрдкрд┐рдВрдЧ), рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж ( V ├Ч V рд╕реНрдХреЗрд▓рд░реЛрдВ рддрдХ), рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдЯреЗрдВрд╕рд░ рдЙрддреНрдкрд╛рдж (рдпрд╛рдиреА kron )ред рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдореИрдВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдФрд░ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рдПрдХ рдЯреЗрдВрд╕рд░ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░реБрдЪрд┐ рд╡реИрдХреНрдЯрд░ рдФрд░ рд░реИрдЦрд┐рдХ рд░реВрдкреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдорд░реВрдкрддрд╛ рд╣реИ, рдЕрдЧрд░ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛рдиреА рд╣рд░ f рдореИрдкрд┐рдВрдЧ рд╡реИрдХреНрдЯрд░ v рд╕реНрдХреЗрд▓рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд╣рд╛рдБ w рдореМрдЬреВрдж рд╣реИ рдРрд╕реЗ рдХрд┐ f(v) = dot(w,v) рдХрд┐рд╕реА рднреА v ред рдХреЛрд╡реЗрдЯрд░реНрд╕ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ (рдЬреИрд╕реЗ рдмрд╣реБрдЖрдпрд╛рдореА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ) рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд┐рдирд╛ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

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

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

@GaborOszlanyi рдХреЛ рдЕрдВрддрд┐рдо рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рдЕрднреА рднреА рдЗрд╕ рд╕рдм рдореЗрдВ v*A рд▓рд┐рдП рдХреЛрдИ рдЬрдЧрд╣ рдирд╣реАрдВ рдорд┐рд▓реАред рдпрд╣ рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдорд╛рдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡реИрдХреНрдЯрд░реНрд╕ рдХреЛ рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЬреАрдм рд╡рд┐рдХрд▓реНрдк рд╣реИред рдпрджрд┐ рд░реЗрдЦреАрдп рдирдХреНрд╢реЗ f рдФрд░ g f(v) = v*A рдФрд░ g(v) = v*B , рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ g(f(v)) = (g тЧж f)(v) = v*A*B рдЬреЛ рд░рдЪрдирд╛ рдХреНрд░рдо рд╕реЗ рд╡рд┐рд╖рдо рд╣реИред рдЖрдкрд╕ рдореЗрдВ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЕрдзреВрд░реЗ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдХреА рджреВрд╕рд░реА рд╕реЗ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣реИред

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

рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рд╢реЗрд╖ рдкреНрд░рд╢реНрди рд╣реИрдВ:

  • рдЗрд╕ рдЧрд╣рди рдЪрд░реНрдЪрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓рд╛рд╡ рд╣реЛрдВрдЧреЗ?
  • рдлреЛрд░рдЯреНрд░рд╛рди рдиреЗ v*mx matmul рд▓рд╛рдЧреВ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛?

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рд╛рдордиреЗ рдЖрддреА рд╣реИрдВ:

рдПред рд▓рд╛рдЧреВ рдЧрдгрд┐рддрдЬреНрдЮреЛрдВ рдХреЛ рдЧреГрд╣рд╕реНрд╡рд╛рдореА рд╕рдВрдХреЗрддрди рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рджреЛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдорд╕рд╛рдордпрд┐рдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

  1. рд▓рдВрдмрд╛рдИ N рдХрд╛ рдПрдХ рд╕рджрд┐рд╢ Nx1 _column рдореИрдЯреНрд░рд┐рдХреНрд╕_ рд╕реЗ рдЕрдкреНрд░рднреЗрджреНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Nx1 рдореИрдЯреНрд░рд┐рдХ рдПрдХ рд╕рджрд┐рд╢ рд╕реНрдерд╛рди рдмрдирд╛рддрд╛ рд╣реИред ("рд╕реНрддрдВрднрд┐рдд рдХрд░реЗрдВ",,)
  2. 1x1 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдПрдХ рдЕрджрд┐рд╢ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдкреНрд░рднреЗрджреНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ 1x1 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд╕рднреА рдмреАрдЬреАрдп рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред ("рд╕реНрдХреЗрд▓рд░рд╛рдЗрдЬрд╝", тЦа)

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЗрди рджреЛрдиреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рдорд░реВрдкрддрд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рджреЛрдиреЛрдВ рдореЗрдВ рд╕рд░рдгреА рдЖрдХреГрддрд┐ рдХреЗ рд░рди рд╕рдордп рдХреА рдЬрд╛рдБрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИред MATLAB рдХреЗ рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдЖрдпрд╛рдо рдирд┐рдпрдореЛрдВ рдХреЛ рдЗрди рджреЛрдиреЛрдВ рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдореНрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

B. рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгреА рдХреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реНрддрдВрднреЛрдВ рдпрд╛ рд╕реНрддрдВрднреЛрдВ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдпрд╛ рд╕реНрддрдВрднреЛрдВ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХрднреА рдирд╣реАрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ matrices рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ recursively matrices рдФрд░ n- рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рджрд╕рд┐рдпреЛрдВ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рдЧрдпрд╛ред рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмреЛрд▓рдирд╛, рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпрд╛рдБ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реАрдорд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреЗрдВрд╕рд░ рд╣реИрдВ рдФрд░ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреВрд░реНрдг рдорд╢реАрдирд░реА рдХрд╛ рдЕрднрд╛рд╡ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕рдВрдХреБрдЪрди рдХрдбрд╝рд╛рдИ рд╕реЗ рдмреЛрд▓ рд░рд╣рд╛ рд╣реИ, рдЕрдкрдиреЗ рджреЛрд╣рд░реЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреА рдЬреЛрдбрд╝реА рдкрд░ рдПрдХ рдСрдкрд░реЗрд╢рди рд╣реИ, рдпрд╣ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рдЕрдиреБрдмрдВрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд┐рдереНрдпрд╛ рдирд╛рдо рд╣реИ, рдЬреЛ рдХрднреА рднреА рджреЛрд╣рд░реА рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ _not_ рдкреВрд░реНрдг рдорд╢реАрдирд░реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкрдВрдХреНрддрд┐ / рд╕реНрддрдВрдн рдкреНрд░рдХреГрддрд┐ рдХреЗ рд╕рд╛рде рд╕рд╣-рд╡рд┐рдкрд░реАрдд рдпрд╛ рд╡рд┐рдкрд░реАрдд / рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░рдгрд┐рдпрд╛рдБ рд╕рд╛рджреЗ рдкреБрд░рд╛рдиреЗ рдХрдВрдЯреЗрдирд░ рд╣реЛрдВ, рд╕рднреА рдЖрдпрд╛рдореЛрдВ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдкрд░реАрдд рд╣реЛрдВ, рджреЛ рдЖрдпрд╛рдореЛрдВ рдореЗрдВ _except_, рдЬрд┐рд╕рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рдмреАрдЬрдЧрдгрд┐рдд (рдЬреЛ рдбрд╛рдЙрди-рдЕрдк рдЯреЗрдВрд╕рд░) рдХреЗ рд░реВрдк рдореЗрдВ рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдХрднреА рдирд╣реАрдВ рдбрд╛рдЙрди-рдбрд╛рдЙрди, рдЕрдк-рдЕрдк, рдпрд╛ рдЕрдк-рдбрд╛рдЙрди рдЯреЗрдВрд╕рд░реНрд╕ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд░рдг рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред


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

a) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдХреНрдЯрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЙрд▓рдо рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡реИрдХреНрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рд╣рд╛рдЙрд╕рд╣реЛрд▓реНрдбрд░-рд╢реИрд▓реА рдХреЗ рднрд╛рд╡реЛрдВ рдХреЛ u'v , u*v' , u'*A*v рдФрд░ u'*A*v/u'v рд▓рд┐рдЦ рд╕рдХреЗрдВред u рдФрд░ v рд╕рдЪреНрдЪреЗ рд╡реИрдХреНрдЯрд░ рд╣реИрдВ, рддреЛ u' рдпрд╛ u'*A рдЬреИрд╕реЗ рд╕рдмрдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреЛ рджреЗрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдмрд┐рдирд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ TransposedVector рд╢реБрд░реВ рдХрд┐рдПред

(рдХ) рдХреЗ рдПрдХ рд╕реАрдорд╛ рд╣реЛрдЧреА рдХрд┐ рд╕рднреА рд╣рд╛рдЙрд╕рд╣реЛрд▓реНрдбрд░ рд╢реИрд▓реА рднрд╛рд╡ рд╕рдЪ scalars рдХреЗ рдмрдЬрд╛рдп 1x1 рдореИрдЯреНрд░рд┐рдХреНрд╕ (рдЬреЛ рдЕрднреА рднреА рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рд╣реИ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ u'v 1-рд╡реЗрдХреНрдЯрд░ рд▓реМрдЯрдиреЗ), рдХреА рддрд░рд╣ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рддреЛ (u'*v)*w рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ "рдЯреНрд░рд┐рдкрд▓ рдкреНрд░реЛрдбрдХреНрдЯ" рдЗрд╕ рддрд░рд╣ рдХреЗ рднрд╛рд╡ рдЕрдХреНрд╕рд░ рд╣реЛрддреЗ рд╣реИрдВред

рдмреА) рд╡реИрдХреНрдЯрд░ рдкрд░ рдЕрдиреБрд░реВрдк рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрдХреЗрддрди рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐

  • рдЖрдВрддрд░рд┐рдХ (рдбреЙрдЯ) рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП u тЛЕ v = scalarize(columnify(u)'*columnify(v))
  • рдмрд╛рд╣рд░реА (рдХреНрд░реЛрдирдХрд░) рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП u тКЧ v = columnify(u)*columnify(v)'
  • A(u, v) = scalarize(columnify(u)'*A*columnify(v)) , рдмрд┐рд▓рд┐рдирд┐рдпрд░ рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд░рд╛рдирд╛ рдЕрдВрдХрди
  • рджреНрд╡рд┐рдШрд╛рдд рд░реВрдк рдХреЗ рд▓рд┐рдП A(u) = A(u, u)

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

рдЧ) 1x1 рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рд╕рдЪреНрдЪреЗ рд╕реНрдХреЗрд▓рд░ рдореЗрдВ рдХрдиреНрд╡рд░реНрдЯ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдХреЛрдб рдкрд╕рдВрдж рдЖрдП

M = Array(Int, 1, 1, 1)
a::Int = M

рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдХреБрдЫ рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд░рди рд╕рдордп рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рд╣реИ:

function convert{T}(::Type{T}, A::Array{T,N})
    if length(A) == 1
        return A[1]
    else
        error()
    end
end

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

@ рдЬрд┐рдпрд╛рдУ , рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреА рдкрдардиреАрдпрддрд╛ рд╣рд╛рд░реНрдб-рдЯреВ-рд░реЗрдВрдбрд░ рдкрд╛рддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИред рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ рднреА рд╕рд╣реА рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдЕрдкрдиреЗ рдлреЛрдВрдЯ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпреВрдирд┐рдХреЛрдб рд╣реИред

@ рдЬрд┐рдпрд╛рдУ , рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ / рд╕рднреА рд╕реЗ рд╕рд╣рдордд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЪреБрдиреМрддреА рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

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

рдпрд╣ рдХреЗрд╡рд▓ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдкрд░рд┐рдгрд╛рдо рд▓рдЧрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк TransposedVector AbstractArray рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдПрдХ рдЙрдкрдкреНрд░рдХрд╛рд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдереА (рдХреБрдЫ LazyTranspose рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ) AbstractMatrix рдХрд╛ рдПрдХ рдФрд░ рдкреНрд░рдХрд╛рд░ рд╣реИ)ред

рдмрд╛рд╣рд░реА (рдХреНрд░реЛрдирдХрд░) рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП u тКЧ v

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

  • рдХреНрд░реЙрдВрдХрд░ рдЙрддреНрдкрд╛рдж A тКЧ B рдПрдХ рдСрдкрд░реЗрд╢рди рд╣реИ рдЬреЛ рдореИрдЯреНрд░рд┐рд╕ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рди рдХрд┐ рд╡реИрдХреНрдЯрд░ рдкрд░ред
  • рдЗрд╕рд▓рд┐рдП, рджреЛ рд╡реИрдХреНрдЯрд░ рдХреЗ рдЯреЗрдирд░ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ u тКЧ v рдкрдврд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдбрд╛рдЙрди рдЯрд╛рдЗрдк рдХреЗ рджреЛ-рдЖрдпрд╛рдореА рдЯреЗрдВрд╕рд░ рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ред рдПрдХ рдЙрдЪрд┐рдд 'рдореИрдЯреНрд░рд┐рдХреНрд╕' рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рджрд╕рд┐рдпреЛрдВ рдЙрддреНрдкрд╛рдж рдХреЛ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рд▓реЗрдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рдЖрдк рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рджреЛ рд╡реИрдХреНрдЯрд░ рдХреЛ рд╕реНрддрдВрднрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред
  • u тКЧ v рд▓рд┐рдП рдПрдХ рддреАрд╕рд░рд╛ рдирд╛рдо рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рд╣реИ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рд╕реНрд╡реАрдХреГрдд рдХрдареЛрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИред рдХреБрдЫ рд╕реНрд░реЛрдд рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рджреЛ рд╡реИрдХреНрдЯрд░ рдХреЗ рджрд╕рд┐рдпреЛрдВ рдЙрддреНрдкрд╛рдж рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд┐рдЫрд▓рд╛ рдмрд┐рдВрджреБред рдпрджрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдк рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ 'рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж' рдХрд╛ рдЕрд░реНрде рдпрд╣ рднреА рд╣реИ рдХрд┐ рджреВрд╕рд░реЗ рд╡реЗрдХреНрдЯрд░ рдХреЛ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдореИрдк рдХрд░рдирд╛ рддрд╛рдХрд┐ рдЯреЗрдирд░ рдХреЛ рдиреАрдЪреЗ рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

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

рдХреНрдпрд╛ рд╣рдордиреЗ рдкрд░рдорд╛рдгреБ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ? рд╣рдо рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ AbstractVector рдФрд░ AbstractMatrix рд▓рд┐рдП рдЯрд╛рдЗрдкреЗрд▓рд┐рдпрд╛рд╕ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

abstract AbstractVector{T} <: AbstractArray{T,1}
abstract AbstractMatrix{T} <: AbstractArray{T,2}

# and we could introduce:
abstract AbstractCoVector{T} <: AbstractArray{T,1}

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЧрд┐рд░рд╛рд╡рдЯ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдмрд╣реБрдЖрдпрд╛рдореА рднрдВрдбрд╛рд░рдг рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдмреАрдЪ рдПрдХ рдЕрд▓рдЧ рдЕрд▓рдЧрд╛рд╡ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдкреВрд░реНрдг рдмрд╣реБ-рдЖрдпрд╛рдореА рдЯреЗрдВрд╕рд░ рдмреАрдЬрдЧрдгрд┐рдд, рджреЛрд╣рд░реА рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЖрджрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _have_ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдмрд╕ рдмрд┐рдЯреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: рд╡реИрдХреНрдЯрд░, рдХреЛрд╡реЗрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕ред рд╣рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж, рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж, рдХреЛрд╡реЗрдХреНрдЯрд░-рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЙрддреНрдкрд╛рдж, рдореИрдЯреНрд░рд┐рдХреНрд╕-рд╡реЗрдХреНрдЯрд░ рдЙрддреНрдкрд╛рдж рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕-рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЙрддреНрдкрд╛рдж рдорд┐рд▓рддреЗ рд╣реИрдВред рд╕рдВрдХреНрд░рдордг рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ AbstractMatrix рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 1D рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ 1D рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ)ред рд╣рдореЗрдВ рд╣рд╛рдЙрд╕рд╣реЛрд▓реНрдбрд░ рдиреЛрдЯреЗрд╢рди (рдЬреЛ IMHO MATLABs рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ!) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрднреА рднреА рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреА рд╕рднреА рдЙрдкрдпреБрдХреНрддрддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдирд░реНрд╡рд╕ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдЬреВрд▓рд┐рдпрд╛ рдХреЛ "рд╕рд╣реА" рдореЙрдбрд▓ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬреЛ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╡рд░реНрд╖ рдХреЗ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рд╕реНрддрд░ рдХреЗ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рд╕реАрдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рд╛рдЙрд╕рд╣реЛрд▓реНрдбрд░ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЕрдВрддрд░ рдмрдирд╛рдиреЗ рд╕реЗ Base.LinAlg " Buffer рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдФрд░ Array рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЖрдПрдЧреА, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп "рд╕реВрдЪреА" рдкреНрд░рдХрд╛рд░ рдЬрдЧрд╣ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ Vector рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧреЛрдВ рд╕реЗ рдХрдИ рдХреЗ рд▓рд┐рдП рдФрд░ рд╣рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ LinAlg рдкреИрдХреЗрдЬ рдХрд╛рдлреА рджреЗрд░ рд╕реЗ рдХрд░рддреЗ рд╣реБрдП Array рдФрд░ "рд╕реВрдЪреА" рдХрд╛рдлреА рдЬрд▓реНрджреА рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ред

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

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

LA.Vector
LA.CoVector
LA.Tensor{... describing co/contravariance of indices ...}

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

рдпрд╣ @andyferris рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдХрд░реАрдм рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣

@ рд╕реЗрд╢рдиреЗрдЯ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдмрд╣реБ-рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдХреЛ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдХреБрдЫ рдПрдХ рдирдП рдкреИрдХреЗрдЬ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЯреЗрдВрд╕рд░, рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди, рд╕рд╣-рдЧрд░реНрдн-рд╡рд┐рдЪрд░рдг рдФрд░ рдЗрддрдиреЗ рдкрд░ рдЯрд╛рдЗрдк рдкреНрд░рдгрд╛рд▓реА рдХреЗ рднреАрддрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ _TensorOperations.jp_ рдкреИрдХреЗрдЬ рд╕реЗ рдХреБрдЫ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рджрд╕рд┐рдпреЛрдВ рдереЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рд░реНрдердХ рдЕрдореВрд░реНрддрддрд╛!

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

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЧреИрд░-рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рдЬрдЯрд┐рд▓ рд╡реЗрдХреНрдЯрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ V рдореЗрдВ 4 рд╕рдВрдмрджреНрдз рд╕реНрдерд╛рди рд╣реИрдВ: V , conj(V) , dual(V) рдФрд░ conj(dual(V)) ред рддреЛ рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрдВрд╕рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 4 рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реЛрддреЗ рд╣реИрдВ (рдЖрдорддреМрд░ рдкрд░ рдКрдкрд░ рдпрд╛ рдиреАрдЪреЗ, рд╡рд░реНрдЬрд┐рдд рдпрд╛ рд╡рд░реНрдЬрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реВрдкрд┐рдд)ред рдПрдХ рдЬрдЯрд┐рд▓ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рд╕реНрдерд╛рди (рдЬреИрд╕реЗ рдХреНрд╡рд╛рдВрдЯрдо рдпрд╛рдВрддреНрд░рд┐рдХреА) рдореЗрдВ, dual(V) тЙб conj(V) рдФрд░ conj(dual(V)) = V ред рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ (рдЧреИрд░-рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди) рд╕реНрдерд╛рди (рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рд╛рдкреЗрдХреНрд╖рддрд╛) рдореЗрдВ, V тЙб conj(V) ред рдмрд╛рдж рдХреЗ рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХреЗрд╡рд▓ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

  • рдЕрдиреБрдмрдВрдз / рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж тИЩ , рдЬреЛ рдХрд┐ рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд░реИрдВрдХ N рдХреА рдордирдорд╛рдиреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рджреВрд╕рд░реЗ рдХреЗ рдкрд╣рд▓реЗ рд╕реВрдЪрдХрд╛рдВрдХ (рдпрд╛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ dot рд╕рд╛рде рдкрд╣рд▓реЗ рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЕрдиреБрдмрдВрдз рдХрд░реЗрдВ A тИЩ B рд░реИрдВрдХ рдХреА рдПрдХ рд╕рд░рдгреА M+N-2 рдЕрдЧрд░ A рдФрд░ B рдкрд╛рд╕ рд░реИрдВрдХ M рдФрд░ рд░реИрдВрдХ N ред
  • рдЯреЗрдирд░ рдЙрддреНрдкрд╛рдж тКЧ : A тКЧ B рд░реИрдВрдХ рдХреА рдПрдХ рд╕рд░рдгреА N+M

рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ v , w рдФрд░ matrices A , B , рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рд╕рднреА рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

  • рд╡реЗрдХреНрдЯрд░ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж v тИЩ w -> рдЕрд╕рд╛рдзрд╛рд░рдг рд░реИрдВрдХ 0 рд╕рд░рдгреА рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕реНрдХреЗрд▓рд░ рджреЗрддрд╛ рд╣реИ
  • рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡реЗрдХреНрдЯрд░ рдЧреБрдгрди A тИЩ v
  • рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди A тИЩ B
  • рджрд╕рд┐рдпреЛрдВ / рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж v тКЧ w
  • рдХреЛрд╡реЗрдХреНрдЯрд░ (=== рд╡реЗрдХреНрдЯрд░) рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди v тИЩ A

рдЬрдмрдХрд┐ рдХреЛрдИ * тИЩ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ тИЩ рдХреА рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рд╣рдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ: (A тИЩ v) тИЩ w тЙа A тИЩ (v тИЩ w) рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рддрдм рдлрд┐рд░ рд╕реЗ, рдпрд╣ рддрднреА рд╣реИ рдЬрдм рдЖрдк рдЬрдЯрд┐рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

Tensors рдХреА рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ (рдФрд░ рдкрд░рд┐рддреНрдпрдХреНрдд) рдЗрд╕ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдкрд╣рд▓реЗ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╡рд╣рд╛рдБ рдереЗ рдвреЗрд░ рдЖрд╡рдВрдЯрд┐рдд tuples, рдЙрддреНрдкрдиреНрди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрди рд╕рднреА рдЕрдиреНрдп рдЙрдкрд╣рд╛рд░ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдЖрдЬ рдпрд╣ рдФрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реЛрдЧрд╛ред

рджрд┐рд▓рдЪрд╕реНрдк рджреГрд╖реНрдЯрд┐рдХреЛрдг, @ рдЬреВрдереЛред рдХрд╛рдлреА рд╕рд╣рдЬ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ _guessing_ рд╣реВрдВ рдХрд┐ рдЗрди рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╣рдо * рдФрд░ ' , рдФрд░ рдореИрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реВрдВрдЧрд╛ред

рд▓реЗрдХрд┐рди рддрдм рдлрд┐рд░ рд╕реЗ, рдпрд╣ рддрднреА рд╣реИ рдЬрдм рдЖрдк рдЬрдЯрд┐рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ conj() рдлрд╝рд┐рдХреНрд╕реЗрд╕ рдбрд╛рд▓реЗ рдЧрдПред рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдЬрдЯрд┐рд▓ рдкрд░рд┐рдкрдХреНрд╡рддрд╛рдУрдВ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣?

рдореИрдВрдиреЗ рдПрдХ рдпреБрдЧрд▓ рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдирд╛рдо рдХреЗ рдмрдЬрд╛рдп AbstractMatrix рдХреЗ рд╡рд┐рд╢реЗрд╖ рдЙрдк-рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ:

matrix[:,i] -> AbstractVector{T}
matrix[i,:] -> AbstractCoVector{T}
array_2d[:,i] -> AbstractArray{T,1}
array_2d[i,:] -> AbstractArray{T,1}

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ - рд╣рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╕реЗ рдХреЙрд▓рдо рдФрд░ рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ 2 рдбреА рд╕реНрдЯреЛрд░реЗрдЬ рдХрдВрдЯреЗрдирд░ рд╣реИ рддреЛ рд╣рдореЗрдВ 1 рдбреА рд╕реНрдЯреЛрд░реЗрдЬ рдПрд░реЗ рдорд┐рд▓рддрд╛ рд╣реИред рд╕рднреА рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП! рдФрд░ рдпрд╣ рдЕрднреА рднреА рджреЛрдиреЛрдВ AbstractVector{T} <: AbstractArray{T,1} рдФрд░ AbstractCoVector{T} <: AbstractArray{T,1} рдмрд╛рдж рд╕реЗ APL рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде AbstractArray рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред

рдПрдХ "рд░реЛрдЪрдХ" рддрдереНрдп рд╣реИ

array_3d[:,:,i] -> AbstractArray{T,2}
matrix(array_3d[:,:,i]) -> `AbstractMatrix {T}

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

рдпрд╣ рдПрдХ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╕рд╡рд╛рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди @ рдЬреВрдереЛ рдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рд▓реЗрдЦрди рдХреЛрдб ASCII рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рдерд╛ред рдХреНрдпреЛрдВ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╣рдо рдЕрднреА рднреА рдЕрдкрдиреЗ рдЖрдк рдХреЛ 1963 рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдкрд╛рддреНрд░реЛрдВ рдХреЗ 7-рдмрд┐рдЯ рд╕реЗрдЯ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЕрдВрддрд┐рдо рдмрд╛рд░ 1986 рдореЗрдВ (30 рд╕рд╛рд▓ рдкрд╣рд▓реЗ) рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдпрд╣ рдПрдХ рдРрд╕рд╛ рдпреБрдЧ рдерд╛ рдЬрдм рдкреНрд░рд╕рд┐рджреНрдз 640KB 1981 рдореЗрдВ рдПрдХ рдкреАрд╕реА рдкрд░ рдЙрдкрд▓рдмреНрдз рдЕрдзрд┐рдХрддрдо рд░реИрдо рдерд╛ред рдЖрдЬ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдмрд╛рдЬрд╛рд░ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдм 64 рдмрд┐рдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ 32GB RAM рдмрд┐рдХреНрд░реА рдкрд░ рд╣реИ (рдкрд┐рдЫрд▓реЗ рдЕрдзрд┐рдХрддрдо 50,000x) рдФрд░ рд╣рдо рдХрд╣реАрдВ рдирд╣реАрдВ рд╣реИрдВ 64 рдмрд┐рдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╕реАрдорд╛ред рддреЛ, рдХреНрдпреЛрдВ рд╣рдо рдЕрднреА рднреА 40 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╡рд┐рдХрд╕рд┐рдд рдПрдХ рдЪрд░рд┐рддреНрд░ рд╕реЗрдЯ рдореЗрдВ рдЦреБрдж рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рд╣рдо рдпреВрдирд┐рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╕ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХреАрдмреЛрд░реНрдб рдХрд╛ рдЖрдХрд╛рд░ рдкрд┐рдЫрд▓реЗ 40 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░рдХ рд╕реЗ рдирд╣реАрдВ рдмрдврд╝рд╛ рдерд╛ рдФрд░ рди рд╣реА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд╛рд╕ рд╣реИ (рдкрд┐рдЫрд▓реЗ 10000+ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ)ред

IMHO, ASCII рдХреЛ рдЖрд░рд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЗрдЬ, рдЧрдгрд┐рдд рдкреНрд░рддреАрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖, рдЧрдгрд┐рддреАрдп рдХреАрдмреЛрд░реНрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ! рдХреНрдпрд╛ рдпреВрдПрдлрдПрдл рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХ рдкреНрд░рддреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реИ? рдХреНрдпрд╛ рдЖрдк рд╕рдВрднрд╡рддрдГ рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬ рдХреЛ рд░рд╕ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреЗ рджрд░реНрдж рдХреЛ рд╕рд╣реА рдард╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ?

@ esd100 : рдХреГрдкрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрддреНрдпрдзрд┐рдХ рд╕рдЯреНрдЯрд╛ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ GitHub рдореБрджреНрджреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред

@Johnmyleswhiteред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк "рд╕рдЯреНрдЯрд╛" рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдк рдЬрд┐рд╕ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ ASCII рдмрдирд╛рдо рдХреБрдЫ рдФрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛, рдСрдкрд░реЗрдЯрд░ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреНрд░рддреАрдХреЛрдВ рд╕реЗ рдмрдВрдзреЗ рд╣реИрдВред рдореИрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЪрд░реНрдЪрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

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

@ esd100 рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП @Jutho рдХреА рд╣рд╛рд▓рд┐рдпрд╛ рдЯрд┐рдкреНрдкрдгреА (2 рдпреВрдирд┐рдХреЛрдб рдкреНрд░рддреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИ рдереА рдФрд░ @yuyichao рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рд╣рдо рдпреВрдирд┐рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдпреВрдирд┐рдХреЛрдб-рдХреЗрд╡рд▓ рдСрдкрд░реЗрдЯрд░реЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░рдЪрдирд╛рдУрдВ рдХреЛ рд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, # 17184) рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреНрдп рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд▓реЛрдЧ рдЖрдкрд╕реЗ рдЕрд╕рд╣рдордд рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ _specific_ рд╣реИ, рддреЛ рд╡рд┐рд╖рдп рдкрд░ рд╕реБрдЭрд╛рд╡ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВред

рдореИрдВ v0.5 рдореЗрдВ рдЗрд╕ рдирдП рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЪрд░реНрдЪрд╛ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рд╣реИ:

julia> [ x for x in 1:4 ]' # this is fine
1├Ч4 Array{Int64,2}:
 1  2  3  4

julia> [ Symbol(x) for x in 1:4 ]' # bit this isn't? What is special about symbols?
WARNING: the no-op `transpose` fallback is deprecated, and no more specific
`transpose` method for Symbol exists. Consider `permutedims(x, [2, 1])` or writing
a specific `transpose(x::Symbol)` method if appropriate.

рдореИрдВ рд╕реВрдЪреА рд╕реЗ рдмрд╛рд╣рд░ рдПрдХ (рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ) рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рдХреИрд╕реЗ рдмрдирд╛рдКрдВ? рдпрд╣ рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рд╣реЛрдирд╛ рд╣реИред (рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрд╛ рдХрд╣реАрдВ рдФрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА? рдпрдХреАрди рдирд╣реАрдВ рдерд╛ рдХрд┐ рдХрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рд╣реИ ...)

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

рдпрд╣ рдЪрд┐рддреНрд░рдг рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИ: permutedims(x, [2, 1]) ред

permutedims рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдмреНрд░рд╛рдВрдб рдХрд╛ рдирдпрд╛ рдореБрджреНрджрд╛ рджреЗрдЦреЗрдВ: # 18320

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдХреНрд░рдордг рдПрдХ рдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрд╢рди рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗрд╡рд▓ рдЧрдгрд┐рддреАрдп рд╡реИрдХреНрдЯрд░ / рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рддреНрд░рд┐ - рдЖрдпрд╛рдореА рдпрд╣ рдмреЗрдорддрд▓рдм рдХрд╛ рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рд╣реИ? рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧреИрд░-рд╕рд╛рдВрдЦреНрдпрд┐рдХ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдФрдЪрд┐рддреНрдп рди рд╣реЛред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдХреНрд░рдордг рдПрдХ рдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрд╢рди рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗрд╡рд▓ рдЧрдгрд┐рддреАрдп рд╡реИрдХреНрдЯрд░ / рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рддреНрд░рд┐ - рдЖрдпрд╛рдореА рдпрд╣ рдмреЗрдорддрд▓рдм рдХрд╛ рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рд╣реИ? рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧреИрд░-рд╕рд╛рдВрдЦреНрдпрд┐рдХ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдФрдЪрд┐рддреНрдп рди рд╣реЛред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ _ рдФрд░ рдЧрдгрд┐рдд рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдмрдирд╛рдПрдВред рдПрдХ рдЧрдгрд┐рддреАрдп рдЕрд░реНрде рдореЗрдВ, рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХреЛ рдЕрдХреНрд╕рд░ рд╡реЗрдХреНрдЯрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рд╡реЗрдХреНрдЯрд░ рдпрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЕрдкрдиреЗ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдареАрдХ рд╣реИ, рдЯреНрд░рд╛рдВрд╕рдЬреЗрд╕ рдмрдирд╛рдо рд╕рдВрдпреБрдЧреНрдо рдЯреНрд░рд╛рдВрд╕рдЬреЗрд╕, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреБрдЫ рдЬрдЯрд┐рд▓рддрд╛ рд╣реИ)ред рдирд┐рдпрдорд┐рдд рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ M рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ permutedims(M, (2,1)) рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдк-рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "рдмреНрд▓реЙрдХ" рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

M = [A B;
     C D]

рдЬрд╣рд╛рдВ A рдЖрджрд┐ рдЦреБрдж рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рд╣реИрдВред рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рдкрд╕рдВрдж рд╣реИ

M' = [A' C';
      B' D']

рдЬреЛ рдХрд┐ рдЖрдк рдкреЗрди-рдПрдВрдб-рдкреЗрдкрд░ рдЧрдгрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП "рд╡рд╛рдВрдЫрдиреАрдп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕" рд╣реИред

рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ ' рдФрд░ .' рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрдиреНрд╣реЗрдВ рдХреНрд░рдорд╢рдГ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рдФрд░ рдиреЛ-рдСрдкреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред IMHO рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдПрдХ рджрдВрдб рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдпрд╣ _simple_ рдирд┐рдпрдореЛрдВ ("рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИ" рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - BlockMatrix рд╡рд░реНрдЧреЛрдВ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд)ред рд▓реЗрдХрд┐рди рдкрд╛рд░рдЧрдорди рдкрд░ рдпрд╣ рджрдВрдб 0.5 рдореЗрдВ рдЧреИрд░-рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред Symbol рдХрд╛ рд╕рдВрдХреНрд░рдордг рдХреНрдпрд╛ рд╣реИ?

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ _data_ рд╣реИ, рддреЛ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ permutedims рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреЗ рдЕрд░реНрде рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ: рдпрд╣ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИред .' рдЬреИрд╕реЗ рдЧрдгрд┐рддреАрдп рджрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рд╡рд░реНрдгреЛрдВ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП _lot_ рдХреЛ рдЕрдзрд┐рдХ рдЕрд░реНрде рджреЗрдЧрд╛ (рдЬреЛ рдЧрдгрд┐рдд рдпрд╛ MATLAB рд╕реЗ рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рдпрджрд┐ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЕрдкрдирд╛ рдХреЛрдб рдкрдврд╝реЗрдВ reshape рдФрд░ permutedims рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ _ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ_ рд╣реИред

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

рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЕрднреА рднреА рдмрд╣реБрдд рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВ

рд▓реЗрдХрд┐рди рдкрд╛рд░рдЧрдорди рдкрд░ рдпрд╣ рджрдВрдб 0.5 рдореЗрдВ рдЧреИрд░-рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред рдкреНрд░рддреАрдХ рдХрд╛ рд╕рдВрдХреНрд░рдордг рдХреНрдпрд╛ рд╣реИ?

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ Symbol рдХреЗ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЛ-рдСрдк рдХрд┐рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдЯреНрд░рд╛рдВрд╕рдлрд╝рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рджрдВрдб" рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдЙрдЪрд┐рдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рд╣реЛрдЧрд╛ рдФрд░ transpose(A::Matrix{Complex}) рд▓рд╛рдЧреВ conj рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред

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

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ .' рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╡реЗрдХрдкреВрд░реНрдг рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣ рдХрд┐ transpose рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдХреЙрд▓ рдЕрдХреНрд╕рд░ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ reshape рдФрд░ permutedims рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рдУрд╡рд░рд╣реЗрдб рдХреА рдЧреИрд░-рддреБрдЪреНрдЫ рд░рд╛рд╢рд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдИрдорд╛рдирджрд╛рд░ рд░рд╣реЛ, рдЬреЛ рдЬрд▓реНрджреА рд╣реИ

transpose([ f(x) for x = 1:length(A) ])
reshape([ f(x) for x = 1:length(A) ], 1, length(A))

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд░рд▓ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рд▓рд╛рдЗрди рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ ( reshape рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП) рдЕрдВрдд рддрдХ рдЙрдЫрд╛рд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ length(A) рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП) рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИред (рдЖрдк рддрдм рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдХрд╛ length(A) рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рд╣реИ, рдЕрдкрдиреЗ рдХрд╛рдо рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ)

рдореЗрд░реЗ рд▓рд┐рдП, рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рдПрдХ рдирдпрд╛ рдЬреВрд▓рд┐рдпрд╛ рд╣реВрдВ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рднреА рдЦрд╕реНрддрд╛ рдФрд░ MATLAB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ) рдФрд░ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпреЗ рдХрд╛рдо рд╣реИрдВ:

[ x for x = 1:10 ]'

рдореИрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рдорд╛рдирдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рд╣реА рдЪреАрдЬ рддрд╛рд░, рдкреНрд░рддреАрдХреЛрдВ рдЖрджрд┐ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧреА, рдореИрдВ .' рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдСрдирд▓рд╛рдЗрди рдЪрд░реНрдЪрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рдиреЗ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ - рдореИрдВ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╡ рд╕реЗ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рдиреЗ / рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдПред рд╢рд╛рдпрдж рдПрдХ рдмреЗрд╣рддрд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реЛрдиреЗ рд╕реЗ рдпрд╣рд╛рдБ рдорджрдж рдорд┐рд▓реЗрдЧреАред

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ Symbol рдкрд░ рдиреЛ-рдСрдк рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдХреЛ рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдП рдФрд░ рдЕрдиреНрдп рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЗрдирдкреБрдЯ рдпрд╣рд╛рдБ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЕрдЪреНрдЫреЗ рдЧрдгрд┐рддреАрдп рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддреЗ рд╣реИрдВ (рдПрдХ рдпреЛрдЧреНрдп рд▓рдХреНрд╖реНрдп!)ред рд▓реЗрдХрд┐рди рдиреЛ-рдСрдк рд░рдЦрдирд╛ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рд▓рдЧрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдиреЛ-рдСрдк рд░рдЦрдирд╛ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рд▓рдЧрддрд╛ рд╣реИред

рдЖрдк Any рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рд╕рдм рдХреБрдЫ Any рдХрд╛ рдЙрдк-рдкреНрд░рдХрд╛рд░ рд╣реИред рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП transpose(x)=x рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЧрд▓рдд рд╣реИ рдФрд░ рдХреБрдЫ рдореМрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЗрди рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рддреЛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреИрд░-рдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдЕрдЬреАрдм рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ ' рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдФрд░ рдореВрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмреАрдЪ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдкреНрд░рддреАрдХ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рдПрдХ рдиреЛ-рдСрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдХрд┐рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рджрдВрдб" рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдЙрдЪрд┐рдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреЗрд╡рд▓ рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ transpose(A::Matrix{Complex}) рд▓рд╛рдЧреВ conj рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛред рдЗрд╕рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред

рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ BlockMatrix рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдпрд╛ Matrix{M<:Matrix} рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╛ рддреЛ рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдЪрд╛рд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ? (рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрдВрднреАрд░ рдкреНрд░рд╢реНрди рд╣реИ, рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрди рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ)ред

рдИрдорд╛рдирджрд╛рд░ рд░рд╣реЛ, рдЬреЛ рдЬрд▓реНрджреА рд╣реИ

transpose([ f(x) for x = 1:length(A) ])
reshape([ f(x) for x = 1:length(A) ], 1, length(A))

рджреВрд╕рд░рд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡реИрдХреНрдЯрд░реЛрдВ рдХреЗ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╡рд░реНрддрдорд╛рди рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝рди (рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, _I рд╡реЗрдХреНрдЯрд░ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝_ рднреА _seriously_ :) рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд / рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ / rowvec = reshape(colvec, (1, n)) рд▓рд┐рдЦрддрд╛, рдпрд╛ рд╢рд╛рдпрдж рдмрд╕ред [f(x) for _ = 1:1, x = 1:n] рдХреЛ рд╕рд╣реА рдЖрдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ .' рддреЛ map(f, (1:n).') рдФрд░ f.((1:n).') рд╡рд░реНрддрдорд╛рди рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

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

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

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

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

[f (x) _ = 1: 1, x = 1: n] рдХреЗ рд▓рд┐рдП

рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдпрд╛! рдпрд╣ рд╢рд╛рдпрдж рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдореИрдВ рдЕрднреА рднреА рдкрдардиреАрдп рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд╕реНрд╡рд╛рдж рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП! ┬п\_(уГД)_/┬п

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдореИрдВ рд╡реЗрдХреНрдЯрд░ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрддрд╛ рд╣реВрдВ

рд╣рд╛рдБред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред ЁЯШЙ

рдпрд╣ (https://github.com/JuliaLang/julia/issues/16790) рднреА reshape transpose рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯред

рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рджреВрд╕рд░рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: Matrix{M<:Matrix} рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ, рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рд╡рд┐рдХрд▓реНрдк рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрдм рд╣рдо рдлрд┐рд░ рд╕реЗ рдбреЗрдЯрд╛ рдФрд░ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдмреНрд▓реЙрдХ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдВрдХреНрд░рдордг рд╣реЛ рд▓реЗрдХрд┐рди 2 рдбреА рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп 2 рдбреА рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдВрдХреНрд░рдордг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ... рд▓реЗрдХрд┐рди Matrix{T} рдФрд░ Array{T,2} рдПрдХ рд╣реА рдЪреАрдЬрд╝ рд╣реИ рдЬреЛ рд╣рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡реЛ рдХрд░реЗрдВред

рдпрд╣ (# резремpe реп реж) рднреА рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдлреЗрд░рдмрджрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рджреЗрдЧрд╛ред

рд╕рдЪ!!

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

рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рдЪрд╛рд╣реВрдВрдЧрд╛ ... рдЗрди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рдмрд╣реБрдд рд╕рдЦреНрдд рдЕрдВрддрд░ рд╣реЛрдиреЗ рдкрд░ рдЬреНрдЮрд╛рдкрди рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ред

рдЗрд╕ рдкреВрд░реЗ рд╕реВрддреНрд░ рдХреЛ рдкрдврд╝рдирд╛ рдПрдХ рдХрдард┐рди рдХрд╛рдо рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореБрдЭреЗ рдЖрдЧреЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдмрд┐рди рдмреБрд▓рд╛рдП рд╢реЛрд░ рдирд╣реАрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ред

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

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

рдпрджрд┐ рд╡рд╣рд╛рдБ рдереЗ, рддреЛ рдЖрдХрд╛рд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ ( push! ) рдпрд╛ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдФрд░ рдРрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ StaticArrays.jl рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ), рдФрд░ broadcast рдХреЗрд╡рд▓ рд╣реЛрдЧрд╛ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдкрд░ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп, рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рд╣реЛрдВрдЧреЗ, рдФрд░ map , рдФрд░ reduce , рдФрд░ filter рд▓реЗрдХрд┐рди broadcast ред

рд▓реЗрдХрд┐рди рд╣рдо рдЙрд╕ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдирд╣реАрдВ рд░рд╣рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд▓реЛрдЧ рдпрд╛ рддреЛ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ, рдмрдирд╛рдо рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ 2.5 рд╡рд░реНрд╖, 340 рдЯрд┐рдкреНрдкрдгреА рдзрд╛рдЧрд╛ред


no-op рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдХрд░реЗрдВред
рд╣рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╣реБрдд рдЙрдЪреНрдЪ рдкреНрд░рдХрд╛рд░ рдкрджрд╛рдиреБрдХреНрд░рдо рдПрдХ Scalar рдФрд░ Nonscalar рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░ред
Scalars рд╕рднреА рдиреЛ-рдСрдкреНрд╕ рдЯреНрд░рд╛рдВрдЬрд╝реЗрдХ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред
Nonscalars рдореЗрдВ рдХреЛрдИ рдЧрд┐рд░рд╛рд╡рдЯ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, (рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдкреНрд░реЗрд╕реЗрд╢рди рдЪреЗрддрд╛рд╡рдиреА рдкрд░ рд╡рд╛рдкрд╕ рдЧрд┐рд░ рдЬрд╛рддреЗ рд╣реИрдВ)

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

Arrays (рдореИрдЯреНрд░рд┐рдХреНрд╕, рд╡реИрдХреНрдЯрд░ рдФрд░ рдЕрдиреНрдп) Nonscalar рдЙрдк-рдкреНрд░рдХрд╛рд░ рд╣реЛрдВрдЧреЗ рдФрд░ рдЗрд╕рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ, рдпрд╛ рдирд╣реАрдВред

рдкреЛрд╕реНрдЯ рдХреА рд╣рд╛рд▓рд┐рдпрд╛ рдЪрд░реНрдЪрд╛ рдиреЗ # 18320 # 13171 # 13157 # 8974 рдореЗрдВ _рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝_ рдФрд░ "рд╕реНрдХреЗрд▓рд░" рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЛ рджреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ transpose(x)=x no-op рдХрдордмреИрдХ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рд╣реИред рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ, рдПрдХ рдХрдордмреИрдХ рдЕрднреА рднреА рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд╕ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реЗ рдЕрдзрд┐рдХ рдзреАрд░реЗ-рдзреАрд░реЗред рдпрд╣ рдЦрддрд░рдирд╛рдХ рд╣реИ рдЬрдм рдлрд╝реЙрд▓рдмреИрдХ рд╡рд┐рдзрд┐ рдЪреБрдкрдЪрд╛рдк рдЧрд▓рдд рдЙрддреНрддрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдлрд╝реЙрд▓рдмреИрдХ рдХрд╛ рд╕рд╣реА рд╢рдмреНрджрд╛рд░реНрде рдирд╣реАрдВ рд╣реИ: transpose(x) рдЕрд░реНрде x рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдиреЛ-рдСрдк рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдлрд╝реЙрд▓рдмреИрдХ рди рдХреЗрд╡рд▓ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рднреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЬреИрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рднреА рдЧрд▓рдд рд╣реИ рдЬреЛ AbstractMatrix (рдЬреЛ рдХрд┐ # 987 рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВ, _not_) рдХрд┐ рд╡реЗ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХрд╛ рдмреАрдЬрдЧрдгрд┐рдд рд╣реИ)ред рдпрд╣рд╛рдБ рдПрдХ рдкреЛрд╕реНрдЯрд░ рдмрдЪреНрдЪреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ (рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдлреА рдХрдо рд╣реИ):

julia> A = rand(5,5); F = qrfact(A); R = F[:R]; Q = F[:Q] #Q is an example of a matrix-like object
5x5 Base.LinAlg.QRCompactWYQ{Float64,Array{Float64,2}}:
 -0.518817    0.0315127   0.749223    0.410014  -0.0197446
 -0.613422   -0.16763    -0.609716    0.33472   -0.3344   
 -0.0675866   0.686142    0.0724006  -0.302066  -0.654336 
 -0.582362   -0.0570904   0.010695   -0.735632   0.341065 
 -0.104062    0.704881   -0.248103    0.295724   0.585923 

julia> norm(A - Q*R) #Check an identity of the QR factorization
8.576118402884728e-16

julia> norm(Q'A - R) #Q'A is actually an Ac_mul_B in disguise
8.516860792899701e-16

julia> Base.ctranspose(Q::Base.LinAlg.QRCompactWYQ)=Q; #Reintroduce no-op fallback

julia> norm(ctranspose(Q)*A - R) #silently wrong 
4.554067975428161

рдпрд╣ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдХреЛрдИ рдЪреАрдЬрд╝ Any рдХрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рд╕реНрдХреЗрд▓рд░ рд╣реИ рдФрд░ рдПрдХ рдиреЛ-рдСрдк рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рд╣реИред рдЗрд╕рд╕реЗ рдпрд╣ рднреА рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдУрдкреА рдореЗрдВ рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЗрддрдирд╛ рдХрдард┐рди рдХреНрдпреЛрдВ рд╣реИред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЬреИрд╕реА рдЧреИрд░-рд╕рд░рдгреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрдпреВ рдХреЗ рд▓рд┐рдП, Q' рдХрд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрд░реНрде рдирд╣реАрдВ рд╣реИ рдПрдХ рд╕рд░рдгреА рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рдмреАрдЬрдЧрдгрд┐рддреАрдп рдЕрд░реНрде рд╣реИ: Q'A рдЬреИрд╕реЗ рднрд╛рд╡ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред рдЕрдиреНрдп рд▓реЛрдЧ рдЬреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдХреЗрд╡рд▓ рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЕрдиреБрдорддрд┐ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рддрд░рд╣ рдЧреИрд░-рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рднреА, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рднреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмреАрдЬреАрдп рдФрд░ рдЕрдХреНрд╖-рд╕реНрд╡реИрдкрд┐рдВрдЧ рд╢рдмреНрджрд╛рд░реНрде рджреЛрдиреЛрдВ рдХреА рд╕реБрд╕рдВрдЧрдд рд╡рд░реНрддрдиреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред

рд╢рд╛рдпрдж рдореИрдВ рд╕рдШрди рд╣реЛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рддреБрд▓рдирд╛ рдпрд╣ рд╣реЛрдЧреА:

julia> A = rand(5,5); F = qrfact(A); R = F[:R]; Q = F[:Q]
julia> Base.ctranspose(Q::Any) = Q;
WARNING: Method definition ctranspose(Any) in module Base at operators.jl:300 overwritten in module Main at REPL[6]:1.
julia> norm(ctranspose(Q)*A - R) # still works fine
4.369698239720409e-16

рдЗрд╕ рддрд░рд╣ рд╕реЗ transpose рдУрд╡рд░рд░рд╛рдЗрдЯрд┐рдВрдЧ рдХрд░рдиреЗ рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ transpose([ :x _=1:4 ]) - рдпрд╛рдиреА рдЬреЛ рдореИрдВрдиреЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЬрдм рддрдХ рдЖрдк transpose / ctranspose рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╣рд░ рдЙрд╕ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ QRCompactWYQ ) рддреЛ рдХрднреА рднреА рдХреЙрд▓рдмреИрдХ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ (рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрд▓ рдХреЗ рдмрд╛рдж рд╕реЗ) рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

рдЖрдкрдХрд╛ рдХреЛрдб рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП ctranspose рдкрджреНрдзрддрд┐ рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛ рд░рд╣рд╛ рд╣реИ (рдЖрдк @which рд╕рд╛рде рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдпрд╣ рдЬреВрд▓рд┐рдпрд╛ v0.5 (рдЬреЛ рдХрд┐ v0.4 рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ) рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдлреЙрд▓рдмреИрдХ рд╡рд┐рдзрд┐ рдХрд╣ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ ctranspose(full(Q)) ред рдпрд╣ рдЕрдиреНрдп рдЧрд┐рд░рд╛рд╡рдЯ рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╣реА рдХрд╛рд░рдг рдХреЛ рд╣рд░рд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдлреИрдВрд╕реА рдХреНрдпреВ-рдкреНрд░рдХрд╛рд░ рд╣реИ (рддрд╛рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдЧреБрдгрд╛ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХреЗ)ред рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рд╣реИ рдХрд┐ рдХрдорд┐рдпрд╛рдВ рд╕рд╣реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЕрднреА рднреА рдЦрдбрд╝рд╛ рд╣реИред

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

рдзрдиреНрдпрд╡рд╛рдж @toivoh рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред

рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдПрдХ рдХрдордмреИрдХ transpose(X::AbstractMatrix) рдФрд░ transpose(X::AbstractVector) рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡рддрдГ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдЧрд╛ (рднрд▓реЗ рд╣реА рдпрд╣ рдзреАрдорд╛ рдерд╛ ... рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП full рдХреЙрд▓ рдХрд░рдирд╛) рдирд╣реАрдВ? рдФрд░ рдЖрдк рд╣рдореЗрд╢рд╛ рдЗрд╕реЗ рдмреЗрд╣рддрд░ / рддреЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рддрдм transpose(::Any) рдХреЛ рдХрднреА рднреА рдкрд╣рд▓реЗ рдмрддрд╛рдИ рдЧрдИ "рд╕рдЬрд╝рд╛" рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдореМрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛рдиреА Complex рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╕рдордп ... рд╢рд╛рдпрдж рдЕрдиреНрдп рд╕реНрдХреЗрд▓рд░ рдЙрди рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛?)

рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП QRCompactWYQ <: AbstractMatrix , рд▓реЗрдХрд┐рди # 987 # 10064 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдпрд╣ рд╕рдмрдЯрд╛рдЗрдкрд┐рдВрдЧ рд╕рдВрдмрдВрдз рд╕рд╣реА рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЬреИрд╕реА рдЧреИрд░-рд╕рд░рдгреА рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг IterativeSolvers.AbstractMatrixFcn , рдЬреЛ AbstractMatrix рдХрд╛ рдЙрдк-рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХрдорд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдк рдЬрд┐рд╕ рд╕рдВрджрд░реНрдн рдХреЛ рднреЗрдЬрддреЗ рд╣реИрдВ рдЙрд╕ рдкрд░ рдХрднреА рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдлрд┐рд░ рд╕реЗ рдореЗрд░рд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдерд╛ред

рд╣рдореЗрдВ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ https://github.com/JuliaLang/julia/issues/13171 рдкрд░ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП

"рдЯреАрдо рд▓реАрдирд┐рдпрд░ рдмреАрдЬрдЧрдгрд┐рдд" рд╕реЗ рдХрд┐рд╕реА рдХреЛ 0.6 рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд░рдиреЗ рдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдЗрд╕реЗ рдЕрднреА рддрдХ рдлрд┐рд░ рд╕реЗ рдЯрдХреНрдХрд░ рдорд┐рд▓рдиреА рд╣реИред

рддреЛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпреЛрдЬрдирд╛ рдХреНрдпрд╛ рд╣реИ?

рдореЗрд░реА рд╕реЛрдЪ рдХреА рд░реЗрдЦрд╛ рдореБрдЭреЗ рдпрд╣рд╛рдВ рд▓рд╛рддреА рд╣реИ: transpose(v::AbstractVector) = TransposedVector(v) рдЬрд╣рд╛рдВ TransposedVector <: AbstractVector ред рдПрдХрдорд╛рддреНрд░ рдЕрд░реНрдердкреВрд░реНрдг рдЪреАрдЬрд╝ рдЬреЛ TransposedVector рдХреЛ AbstractVector рдХрд░реЗрдЧреА, рдпрд╣ * (рдФрд░ рд╕рднреА A_mul_B s, \ рддрд╣рдд рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧреА , / , ...)ред рдпрд╛рдиреА рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ * (рдЖрджрд┐ ...) рдХреЗ рддрд╣рдд рдЕрдиреБрдмрдВрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рд╕реВрдЪрдХ рд╣реИред рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реЗрд╢рди рдПрдХ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реЛрдЧреА рдФрд░ рдпрджрд┐ рдЖрдк "рдбреЗрдЯрд╛" рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ reshape рдФрд░ permutedims рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреЗрд╡рд▓ рд╢рдмреНрджрд╛рд░реНрде рдЪреАрдЬ рдЬреЛ TransposedVector рдХреЛ AbstractVector рдХрд░реЗрдЧреА, рдпрд╣ * рддрд╣рдд рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧрд╛

рддреЛ v'==v рд▓реЗрдХрд┐рди v'*v != v*v' ? рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рднреНрд░рд╛рдордХ рднреА рджрд┐рдЦрддрд╛ рд╣реИред

рддреЛ v'==v рд▓реЗрдХрд┐рди v'*v != v*v' ? рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рднреНрд░рд╛рдордХ рднреА рджрд┐рдЦрддрд╛ рд╣реИред

IMO рдпрд╣ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдВрднрд╡рддрдГ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ)ред

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

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

рдПрдХ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рд╢реНрди (рдореЗрд░реЗ рд▓рд┐рдП) рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреА рддрд░рд╣ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рдЗрд╕рдХреЗ рджреВрд╕рд░реЗ рдЖрдпрд╛рдо рдкрд░ред рдпрджрд┐ рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ (1, n) рддреЛ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рддрд░рд╣ рдЕрдкрдиреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкрд╣рд▓реЗ рдЖрдпрд╛рдо рдХреЛ 1 рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред Vector{T} рд╕реНрдерд╛рди Array{T,2} (рдЕрд░реНрдерд╛рдд Matrix ...) рд░рд╣рдирд╛ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЙрд╕ рдХрд╛ рд╕реНрдерд╛рди Vector рдлрд┐рд░ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо v'' === v )ред

рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░ рд╣реИ? рдпрд╣ рдХрдо рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрднреА рднреА рд╢рдмреНрджрд╛рд░реНрде рд╡рд┐рдЬреНрдЮрд╛рди рдХреЗ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛ред рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдФрд░ рдпрд╣ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ == рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ @martinholters рд▓рд╛рддрд╛ рд╣реИ)ред

рдореЗрд░реЗ рд▓рд┐рдП, TransposedVector{T <: AbstractVector{Tv}} <: AbstractMatrix{Tv} *) size(::TransposedVector, 1)==1 рд▓реЗрдХрд┐рди transpose(::TransposedVector{T})::T рд╕рдмрд╕реЗ рдкрд╡рд┐рддреНрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрддрдиреА рдмрд╣рд╕ рд╣реБрдИ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рддрд░реНрдХ рд╣реИ?

*) рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЕрдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЕрднрд┐рдкреНрд░рд╛рдп рд╢рдмреНрджрд╛рд░реНрде рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред

рд╣рд╛рдВ, рдХреЛрдб рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдкрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЖрдкрд╕реЗ @martinholters рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред

рдореИрдВрдиреЗ https://github.com/andyferris/TransposedVectors.jl рдкрд░ рдПрдХ рд╢реБрд░реБрдЖрдд рдХреА

рдПрдХ рдмрдбрд╝рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди рдХреЗ рд▓рд┐рдП CTransposedVector рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдлрд┐рд░ рдЬреЛ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВ рдПрдХ рдЕрд▓рдЧ CTransposedVector рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреЛ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ (рд╕рдВрдпреБрдЧреНрдорди рдФрд░ рдкреБрдирд░реНрд╡рд╕рди) рдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдпрд╣ рдЙрди рджреЛ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MappedArays.jl рдХреЗ рд╕рд╛рде рдпрд╣ рдЙрддрдирд╛ рд╣реА рдЖрд╕рд╛рди рд╣реИ

conjview(A) = mappedarray((conj,conj), A)

рдФрд░ рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдорд┐рд▓реЗрдЧрд╛ред

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

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

@ рдХреИрдВрдбреАрдлрд░рд┐рд╕ : рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИ - рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрджрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдмрд╕ рдмреЗрд╕ рдореЗрдВ рдЙрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рд╣рдо TransposedMatrix рдХреЗ рд╕рд╛рде-рд╕рд╛рде https://github.com/JuliaLang/julia/issues/5332 рднреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ

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

рдЕрднреА рдЕрд╕рдордорд┐рддрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ x' рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП x рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИ рдЬрдмрдХрд┐ A*x рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП x рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рд╕рд┐рд░реНрдл 2 рдбреА рдХреЗ рд▓рд┐рдП рдерд╛, рддреЛ A*x рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ x'x 1x1 рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛрдЧрд╛ред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдо рд╡реИрдХреНрдЯрд░ рдХреЛ рд╡реИрдХреНрдЯрд░ рд╣реЛрдиреЗ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП A*x рд╡реЗрдХреНрдЯрд░ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ x' рдПрдХ noop рдпрд╛ рдПрдХ рдПрд░рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрд┐рдд рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдкрд░рд┐рдЪрдп рдирдИ рдкрджреНрдзрддрд┐ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреА рдмрд╣реБрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдПрдХрдорд╛рддреНрд░ рд▓рд╛рдн рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ x'x рдПрдХ рд╕реНрдХреЗрд▓рд░ рдмрди рдЬрд╛рддрд╛ рд╣реИред

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

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдбрд╡реЗрдХреНрдЯрд░ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрд░рд┐рдЪрдп рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝рдореЗрдЯрдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

рд╣рд╛рдВ, рдЗрд╕ рдСрдкрд╕ рдХреЗ рдмреАрдЪ рдореЗрдВ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдордЬрдмреВрдд рд╕рд╣рдорддрд┐ рдпрд╣ рдереА рдХрд┐ рд╡реЗрдХреНрдЯрд░ рдЯреНрд░рд╛рдВрд╕рдЬреЗрдВрдбрд░ рдЕрдЬреАрдм рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рдЕрдЧрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ AbstractArray рдХрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдореИрдВ size рднреА рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреВрдВрдЧрд╛ рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдореЗрд░рд╛ conj рд▓реЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ рдмрдЬрд╛рдп рдЗрд╕реЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкреИрд░рд╛рдореАрдЯрд░)ред

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

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

рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╡реЗрдХреНрдЯрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рдХрд┐рддрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк v'' == v , рддреЛ рдпрд╣ typeof(v') <: AbstractMatrix рд▓рд┐рдП рдареАрдХ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ typeof(v'v) <: Scalar рдпрд╛ typeof(v'A) <: AbstractVector рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдЧрдИ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдЕрд▓рдЧ, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓, рдЬрд╛рдирд╡рд░ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

TransposedVector рд╣реЛрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдПрдХ рддрд░рд╣ рдХрд╛ рд╡реЗрдХреНрдЯрд░ рд╣реИ рдЬреЛ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЬрдбрд╝ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рд╣реЛрдЧрд╛ рдФрд░ рддрдм size(v.') == (1,length(v)) рдЬреИрд╕рд╛ рд╣рдо рдЕрднреА рдХрд░рддреЗ рд╣реИрдВред рдлрд░реНрдХ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рдбрдмрд▓ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдЖрдкрдХреЛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╡рд╛рдкрд╕ рджреЗрддрд╛ рд╣реИ рдФрд░ v'v рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рдВрдХреНрд░рдордг рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ length(v') рд╕рд╣реА рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд░реИрдЦрд┐рдХ рдЕрдиреБрдХреНрд░рдордг рдХрд╛рд░реНрдп рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ @StefanKarpinski рдХреЗ рд╕рд╛рде 110% рд╕рд╣рдордд рд╣реВрдВред рдореИрдВ рдЗрд╕реЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рджрд┐рд╢ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдмрд▓реНрдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреВрдЯ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереАред

рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЖрдХрд╛рд░ (1, n) рдЕрд░реНрде Array рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЕрдм рдХрд░рддрд╛ рд╣реИред _Only_ рд╕рдВрдЪрд╛рд▓рди, рдЬреЛ рдЗрд╕реЗ 1-by-N Matrix рд╕реЗ рдЕрд▓рдЧ рдХрд░реЗрдЧрд╛, ' , .' , * , \ рддрд╣рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред ред рдФрд░ / ред

рдЙрди рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА "рд╕рд░рдгреА рдЬреИрд╕реЗ" рдСрдкрд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реИрдВред рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореИрдЯреНрд░рд┐рд╕ рдФрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВ, рдФрд░ рд╕реАрдзреЗ MATLAB ("рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛") рд╕реЗ рдЖрддреЗ рд╣реИрдВред рдпрд╣ рдЕрдВрддрд┐рдо рд╢реЛрдзрди рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ size(tvec, 1) = 1 рд╕рдВрдХрд▓рдХ _and_ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдореИрдВ v'' v рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред (рдореИрдВ рдЗрд╕реЗ StaticArray рддрд░рд╣ рдПрдХ рдмрд┐рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдПрдХ рдЖрдпрд╛рдо рддрдп рд╣реЛрддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ)ред

рдпрджрд┐ рдЖрдк рдмрд╕ v '' == v рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЯрд╛рдЗрдкреЛрдлрд╝ (v ') рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИ <: AbstractMatrixред

рд╕рд╣реАред

рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рдЯрд╛рдЗрдк рдереНрд░реЗрдб (v'v) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВ: <: рд╕реНрдХреЗрд▓рд░ рдпрд╛ рдЯрд╛рдЗрдкреЛрдлрд╝ (v'A) <: AbstractVector, рддреЛ рдпрд╣ рдПрдХ рдЕрд▓рдЧ, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓, рдЬрд╛рдирд╡рд░ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреНрдпреЛрдВ? рд╣рдо рдЗрд╕рдХреЗ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╕рд░рдгреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдИ рднреА рдбреЙрдЯ-рдХреЙрд▓ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдФрд░ рдЕрдиреНрдп рд╕рджрд┐рд╢ рдСрдкреНрд╕ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ * Vector рдФрд░ Matrix рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдХреЗ рдЬреНрдЮрд╛рди рдкрд░ "рд╡рд┐рд╢рд┐рд╖реНрдЯ" рд╣реИ рдФрд░ рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд▓рд┐рдЦрд┐рдд рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред v' * v рд╕реНрдХреЗрд▓рд░ рд╣реЛрдирд╛ _very_ рдорд╛рдирдХ рдЧрдгрд┐рдд рд╣реИ рдФрд░ рдпрд╣ рдореЗрд░реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рд╢реБрд░реБрдЖрдд рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реБрд╕рдВрдЧрдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИ (рдФрд░ рдкреНрд░реЗрд░рдгрд╛ рдЬреВрд▓рд┐рдпрд╛ рд╕реЗ рд▓реЗрддреА рд╣реИ) MATLAB), рд▓реЗрдХрд┐рди рд╕реНрдЯреАрдлрди рдЙрд╕ рдкрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЛ рдПрдХ рд╕реНрдХреЗрд▓рд░ рдмрдирд╛рдирд╛ рдХреЗрд╡рд▓ рдмреЛрд▓рдиреЗ рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ (рдпрд╣рд╛рдВ рдЕрдиреНрдп рдмрд╣реБрдд рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ рд╣реИрдВ) - рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рдХрд┐ рдЕрдХреЗрд▓реЗ рдпрд╣ Array рд▓рд┐рдП рдЕрдиреБрдкрдпреБрдХреНрдд рдХреИрд╕реЗ рд╣реЛрдЧрд╛ (рдХрдИ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ) Array рдкрд╛рд╕ рдорд╛рдиреНрдп ' , .' , * , \ рдФрд░ / рдкрд░рд┐рднрд╛рд╖рд┐рдд _at all_ , рдФрд╕рдд рд░реИрдВрдХ 3+)

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

рд╣рд╛рдВ, рдореИрдВ рдереЛрдбрд╝рд╛ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВ рдХрд┐ рдореИрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рддрдирд╛ рдЧрд╣рд░рд╛ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛ ... :)

рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдЕрджреНрднреБрдд рд╣реЛрдЧрд╛ рдпрджрд┐ / рдЬрдм рд╣рдо Base рдХрдо рдЕрдЦрдВрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдПрдХ рд╕реНрд╡-рдирд┐рд╣рд┐рдд рдкреИрдХреЗрдЬ рдпрд╛ рдореЙрдбреНрдпреВрд▓ рд╣реЛрдиреЗ рд╕реЗ рдЬреЛ AbstractArray рдФрд░ Array рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджреЗрдЧрд╛ред

@ рдЬреВрдереЛ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдереА? * рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ (рд╕рдВрдпреБрдЧреНрдорд┐рдд) рдмрд╛рдИрдВ рдУрд░ рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ * рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди рд╣реИ, рддреЛ ' рдореИрдЯреНрд░рд┐рдХреНрд╕ (рд╕рдВрдпреБрдЧреНрдорд┐рдд) рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝рд┐рд╢рди (рд╡реИрдХреНрдЯрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ), рдФрд░ рджреЛ рдСрдкрд░реЗрдЯрд░ promote рдЬреЛ рдПрдХ рдЕрдиреБрдЧрд╛рдореА рд╕рд┐рдВрдЧрд▓рдЯрди рдФрд░ demote рдЬреЛрдбрд╝рддрд╛ рд╣реИ *: (n,m) -> (m,) -> (n,) , рдПрдХ рд▓реЗрдлреНрдЯ рдПрдкреНрд▓реАрдХреЗрд╢рди *: (n,) -> (n,m) -> (m,) , рдПрдХ рд╕реНрдХреЗрд▓рд░ рдЙрддреНрдкрд╛рдж *: (n,) -> (m,) -> (,) рдФрд░ рдПрдХ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж ├Ч: (n,) -> (m,) -> (n,m) рдРрд╕рд╛ рд╣реИ рдХрд┐:

(*)(A::AbstractMatrix, v::AbstractVector) = demote(A*promote(v))
(*)(u::AbstractVector, A::AbstractMatrix) = demote((promote(u)'*A)')
(*)(u::AbstractVector, v::AbstractVector) = demote(demote(promote(u)'*promote(v)))
(├Ч)(u::AbstractVector, v::AbstractVector) = promote(u)*promote(v)'

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХрднреА рднреА рдЗрди рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдмрд┐рд▓реНрдХреБрд▓ @Jutho рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдирд╣реАрдВред

@Armavica , рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ * рдЕрд░реНрде рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдерд╛, рдмрд▓реНрдХрд┐ рдПрдХ рдирдП (рдпреВрдирд┐рдХреЛрдб) рдСрдкрд░реЗрдЯрд░ тИЩ , рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ dot рдмрд░рд╛рдмрд░ рд╣реИ promote рдФрд░ demote рдкреНрд░рдХрд╛рд░ рдХреЛ рдПрдХ рд╕реНрдерд┐рд░ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред

рдореЗрд░реЗ рдЕрдВрджрд░ рдХрд╛ рд╢реБрджреНрдзрддрд╛рд╡рд╛рджреА @andreasnoack рд╕реЗ рд╕рд╣рдордд рд╣реИ рдХрд┐ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╕реЗ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ dot(v,w) v'w рдпрд╛ v'*w рдХрднреА рднреА рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ), рд▓реЗрдХрд┐рди рдореИрдВ рднреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╣ @ рдХреИрдВрдбреАрдлреЗрд░рд┐рд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд▓рдЪреАрд▓рд╛рдкрди рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЗ рдЖрдЧреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдордЭрджрд╛рд░ рдкреНрд░рдпрд╛рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВред

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

(рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддреМрд░ рдкрд░ v'w рдпрд╛ v '* w рд╕реЗ рдЕрдзрд┐рдХ рдбреЙрдЯ (v, w) рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ)

рдЬреБрдереЛ - рджреВрд╕рд░реА рдУрд░, рдореИрдВ рд╢рд░реНрдд рд▓рдЧрд╛рддрд╛ рд╣реВрдВ

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

рдЕрдм рдЖрдк рдореБрдЭреЗ рдкрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдореИрдВ рдЕрдм рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд╕рдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реВрдВ <╧И | ╧И> рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдХрд┐ рдореИрдВ <ring рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддрд╛ред рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдВрдпреБрдЧреНрдо | Herm> | рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдВрдпреБрдЧреНрдорди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡реИрдХреНрдЯрд░ рдФрд░ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рджреЛрд╣рд░реА рд╡реИрдХреНрдЯрд░ (рдХреЛрд╡реЗрдХреНрдЯрд░, рд▓реАрдирд┐рдпрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕, ...) рдХреЗ рдмреАрдЪ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдорд░реВрдкрддрд╛ рдХреЛ рд░реЗрдЬрд╝реНрдЬрд╝ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рдореЗрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ n рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реБрдП рд░реЗрдЦреАрдп рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВред C рд╕реЗ C ^ n рддрдХ, рдЕрд░реНрдерд╛рдд рдЖрдХрд╛рд░ (n,1) рдореИрдЯреНрд░реАрд╕ рдХреЗ рд░реВрдк рдореЗрдВред

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

рдЬрдмрд░рджрд╕реНрдд рд╣рдВрд╕реА

рдЕрдм рдЖрдк рдореБрдЭреЗ рдкрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдореИрдВ рдЕрдм рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ ... рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ... :)

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ <╧И | рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдВрдпреБрдЧреНрдо | Herm> | рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд░реНрдорд┐рдЯрд┐рдпрди рд╕рдВрдпреБрдЧреНрдорди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕рдЪ рд╣реИ, рдореИрдВрдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдорд╛рдирд╛ рдерд╛ред

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

рдореИрдВ рдкреАрдЫреЗ рд╣рдЯрдирд╛ рдирд╣реАрдВ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ (рд▓реЗрдХрд┐рди рдореИрдВ рдЙрд╕ рдкрд░ рдмреБрд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ рд╣рдо рдпрд╣ рдкрд┐рдЫрд▓реЗ рдмрд┐рдЯ рдХрд╛ рдПрдХ рд╕рд╛ рдорд┐рд▓рддрд╛ рд╣реИ AbstractVector рдПрдХ -1 рдбреА рдХреЗ рд╕рд╛рде Array ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ AbstractVector рдЕрд░реНрде рдЧрдгрд┐рддреАрдп рдЕрд░реНрде рдореЗрдВ "рдЕрдореВрд░реНрдд рд╡реЗрдХреНрдЯрд░" рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ "рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддрддреНрд╡ рдХреБрдЫ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЖрдзрд╛рд░"ред MATLAB рдЗрд╕рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдХрд▓ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реИрдХреНрдЯрд░ рдЖрдХрд╛рд░ (n,1) ред

рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рднреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк (рдПрдВрдЯреАрд▓реАрдирд┐рдпрд░) рдСрдкрд░реЗрдЯрд░ рдХреЛ рдХреНрдпрд╛ рдХрд╣рддреЗ рд╣реИрдВ рдЬреЛ |a>|b><c| рд╕рднреА рдЯреЗрдВрд╕рд░реЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ |c><a|<b| рдореИрдк рдХрд░рддрд╛ рд╣реИ? рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рд╕рджрд┐рд╢ рджреЛрд╣рд░реЗ рдФрд░ рдорд╛рдирдХ рдСрдкрд░реЗрдЯрд░ рд╕рдВрдпреБрдЧреНрдорди рдХреЗ рд╕рд╛рде "рд╣рд░рдорд┐рдВрдЯрд┐рдпрди рд╕рдВрдпреБрдЧреНрдорди" рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рд╛рде рдмрд╛рдВрдзрд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рднреА рдмрд╣реБрдд рд╣реА рджреЛрд╖рдкреВрд░реНрдг рд╣реИред

@Alanedelman рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рддрдЪреАрдд

  • Covector рдпрд╛ RowVector рдкреНрд░рдХрд╛рд░ рдкреЗрд╢ рдХрд░реЗрдВ;
  • рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рддреАрдп рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд▓рд┐рдП ( * , ' , .' , / , \ , рд╢рд╛рдпрдж norm ? рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП) ) рдпрд╣ рдкреНрд░рдХрд╛рд░ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ;
  • рд╕рд░рдгреА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП (рдмрд╛рдХреА рд╕рдм рдХреБрдЫ) рдпрд╣ рдкреНрд░рдХрд╛рд░ 2-рдЖрдпрд╛рдореА 1 ├Ч n рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ;
  • рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, size(v') рдПрдХ covector рдХреА рд╣реИ (1, length(v)) ред

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

рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЪрд┐рдВрддрд╛ рд╣реЛрдЧреА рдЕрдЧрд░ рдХреЛрд╡реЗрдХреНрдЯрд░реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╣реАрдВ рдерд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрд╢рди, рдЬреИрд╕реЗ рдЖрдХрд╛рд░ рдФрд░ ndims, рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рд╡реЗ рдЕрдиреНрдп 2d рдпрд╛ 1d рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рддрд░рд╣ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рдХреЗ рдкреНрд░рдпрд╛рд╕ рд╕реЗ рдЖрдк рдПрдХ рдЕрдВрддрд░ рджреЗрдЦрддреЗ рд╣реИрдВред AFAICT рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдБрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╡рд╕реНрддреБ рдПрдХ RowVector рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдкрддреНрддрд┐ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдирд╛ рдмрд╣реБрдд рджреБрд░реНрд▓рдн рд╣реИред

@StefanKarpinski рдореИрдВ рдЙрд╕ рд╕рдм рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рдХрд┐ рдлрд╝рдВрдХреНрд╢рдВрд╕ "рд╕рд░рдгреА" рдСрдкрд░реЗрд╢рди рдпрд╛ "рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд" рдСрдкрд░реЗрд╢рди рд╣реИрдВред

рдореИрдВрдиреЗ рдПрдХ рдЖрдХрд╛рд░ рдореЗрдВ рдПрдХ рд╢реБрд░реБрдЖрдд рдХреА = (1, n) TransposedVector рдпрд╣рд╛рдБ рдЬреЛ рдЬреИрд╕рд╛ рдЖрдк рдХрд╣реЗрдВ рд╡реИрд╕рд╛ рд╣реА рд╣реИред рдореБрдЭреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЕрдЪреНрдЫреА рдХрд╡рд░реЗрдЬ рдФрд░ рд╕рднреА рд╕рдВрдпреЛрдЬрди * , \ , / рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрднрд╡ c рдФрд░ t рд╡рд┐рдзрд┐ рдФрд░ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рд╡рд┐рдзрд┐рдпрд╛рдБ, рдЬрдмрдХрд┐ рдЖрдзрд╛рд░ рдореЗрдВ рдЕрдиреНрдп рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рд╕реЗ рдмрдЪрддреА рд╣реИрдВред рдпрд╣ рдзреАрдорд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд╛рдо рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдореИрдВ рдЗрд╕реЗ рддрдм рддрдХ рдЖрдзрд╛рд░ рдкрд░ рдЦреАрдВрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрдм рдЗрд╕рдХреЗ рддреИрдпрд╛рд░ (рд╕рдВрднрд╡рддрдГ рдЪреАрдЬреЛрдВ рдХрд╛ рдирд╛рдордХрд░рдг)ред

рдЙрдирдХрд╛ Covector рд╕рд╛рде рдПрдХ рдЕрдВрддрд░ рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдпреБрдЧреНрдорд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ рдФрд░ рднреА рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди!), рдЬрдмрдХрд┐ RowVector рдпрд╛ TransposedVector рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИред

@JeffBezanson "рд╕рд┐рдВрдЧреНрд▓рдЯрди " рдЖрдпрд╛рдо рдХреЗ рд▓рд┐рдП indices() рд╕рд╛рде рд╣рдо рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

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

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

рдореИрдВрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ AbstractTransposedVector рдбрд╛рд▓ рджрд┐рдпрд╛ рд╣реЛрддрд╛ рдЕрдЧрд░ рдореИрдВ рдРрд╕реА рдЬрдЧрд╣ рдХреЗ рд▓рд┐рдП рд╕реЛрдЪ рд╕рдХрддрд╛ рдерд╛ рдЬрд╣рд╛рдБ рдХрд┐рд╕реА рдХреЛ рдореВрд▓ "рдЖрд╡рд░рдг" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

@JeffBezanson : рдореБрдЭреЗ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХреЗрд╡рд▓ 1 ├Ч n 2d рд╕рд╛рд░ рд╕рд░рдгреА рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реНрддрдВрдн рд╡реИрдХреНрдЯрд░ рдХреЗ рджреЛрд╣рд░реЗ рд╕реНрдерд╛рди рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдХрд┐ 1 ├Ч n 2d рд╕рд╛рд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдЗрд╕реЛрдореЛрд░реНрдлрд┐рдХ рд╣реИ)ред рдпрджрд┐ рдЖрдк рдПрдХ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрд╕ рдкрд░ рдкреНрд░реЗрд╖рдг рдХрд░рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдореЗрд░реЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдкрд░ рдПрдХ рдЕрдкрдбреЗрдЯ:

TransposedVectors.jl рдЕрдм рд╣реИ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ, "рд╕реБрд╡рд┐рдзрд╛ рдкреВрд░реНрдг"ред рдЗрд╕рдореЗрдВ рд╡рд╣ рд╕рд╛рд░реА рдорд╢реАрдирд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ @StefanKarpinski рдиреЗ рдпрд╣рд╛рдБ рдмрд╛рдд рдХреА рд╣реИ - рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рд╕рдВрдХреНрд░рдордг рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЖрд╡рд░рдг рд╣реИ рдЬреЛ 2-рдЖрдпрд╛рдореА, 1xn рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рд░ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП ( * , / , \ , ' , .' рдФрд░ norm рдпрд╣ рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ (рдпрд╛ рджреЛрд╣рд░реА рд╡реЗрдХреНрдЯрд░) рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

julia> Pkg.clone("https://github.com/andyferris/TransposedVectors.jl")
...

julia> using TransposedVectors
WARNING: Method definition transpose(AbstractArray{T<:Any, 1}) in module Base at arraymath.jl:416 overwritten in module TransposedVectors at /home/ferris/.julia/v0.5/TransposedVectors/src/TransposedVector.jl:28.
WARNING: Method definition ctranspose(AbstractArray{#T<:Any, 1}) in module Base at arraymath.jl:417 overwritten in module TransposedVectors at /home/ferris/.julia/v0.5/TransposedVectors/src/TransposedVector.jl:29.
WARNING: Method definition *(AbstractArray{T<:Any, 1}, AbstractArray{T<:Any, 2}) in module LinAlg at linalg/matmul.jl:86 overwritten in module TransposedVectors at /home/ferris/.julia/v0.5/TransposedVectors/src/mul.jl:9.
WARNING: Method definition At_mul_B(AbstractArray{#T<:Real, 1}, AbstractArray{#T<:Real, 1}) in module LinAlg at linalg/matmul.jl:74 overwritten in module TransposedVectors at /home/ferris/.julia/v0.5/TransposedVectors/src/mul.jl:37.
WARNING: Method definition Ac_mul_B(AbstractArray{T<:Any, 1}, AbstractArray{T<:Any, 1}) in module LinAlg at linalg/matmul.jl:73 overwritten in module TransposedVectors at /home/ferris/.julia/v0.5/TransposedVectors/src/mul.jl:64.

julia> v = [1,2,3]
3-element Array{Int64,1}:
 1
 2
 3

julia> vt = v'
1├Ч3 TransposedVectors.TransposedVector{Int64,Array{Int64,1}}:
 1  2  3

julia> vt*v
14

julia> vt*eye(3)
1├Ч3 TransposedVectors.TransposedVector{Float64,Array{Float64,1}}:
 1.0  2.0  3.0

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

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

рдХреНрдпрд╛ рд▓реЛрдЧреЛрдВ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреАрдЖрд░ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬреНрдб рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд┐рдирд╛ v0.6 рдореЗрдВ рдХреЛрдИ рдорддрд▓рдм рд╣реЛрдЧрд╛? рдЬрдмрдХрд┐ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдб рд╡реИрдХреНрдЯрд░ рдПрдХ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ, рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдб рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдПрдХ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдЕрдзрд┐рдХ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрд▓рдЧ рд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ "рдЕрдЬреАрдм" рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдпрд╛рдВ рд╣реИрдВ - рд░рд╛рдп? рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬреНрдб рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдФрд░ рд╡реИрдХреНрдЯрд░ рджреЛрдиреЛрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, At_mul_Bt рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, * рддрд░реАрдХреЛрдВ рд╕реЗ, рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕рдВрдХреНрд░рдордг (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд░рд▓реАрдХрд░рдг рдкреБрд░рд╕реНрдХреГрдд рд╣реЛрдЧрд╛!) - рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдЗрд╕ рдХреЗ рдЕрдВрдд рддрдХ рд╡рд╣ рд╕рдм рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдпрд╛ рдЗрдЪреНрдЫреБрдХ рд╣реИ ...

рдорд╣рд╛рди рдХрд╛рдо, @ рдХреИрдВрдбреАрдлреЗрд░рд┐рд╕! рдХреНрдпрд╛ рдЖрдкрдиреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрд▓рд╕реА Conjugate рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛?

@ рдХреИрдВрдбреАрдлреЗрд░рд┐рд╕ рдореИрдВрдиреЗ рдЯрд╛рдпрд░реЛрдВ рдХреЛ рд▓рд╛рдд рдорд╛рд░реА, рдФрд░ рдпрд╣ рдХрд╛рдлреА рдкрд╕рдВрдж рд╣реИред рд╕рдЦреНрддреА рд╕реЗ рдПрдХ рд╕реБрдзрд╛рд░ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдвреВрдВрдврддреЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рджреВрд╕рд░реЛрдВ рдХреЛ рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ :)

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрд▓рд╕реА Conjugate рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛?

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

  • AbstractVector
  • Conjugate{V where V <: AbstractVector} (рдпрд╛ Conj{V} , рд╢рд╛рдпрдж ConjArray рдмреЗрд╢рдХ рдпрд╣ рдХрд┐рд╕реА рднреА рдЖрдпрд╛рдо рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛)
  • TransposedVector (рдпрд╛ RowVector ?)
  • TransposedVector{Conjugate{V where V <: AbstractVector}}
  • AbstractMatrix
  • Conjugate{M where M <: AbstractMatrix}
  • TransposedMatrix (рдпрд╛ рдмрд╕ Transpose{M} ?)
  • TransposedMatrix{Conjugate{M where M<:AbstractMatrix}}

(рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рднрдВрдбрд╛рд░рдг рдХреЗ рд╕рднреА рджрд┐рдП рдЧрдП рд▓рдХреНрд╖рдг, рдЬреИрд╕реЗ рдХрд┐ рдЕрдм рд╣рдо DenseArray рдФрд░ StridedArray - рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ # 18457 рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рднреА рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдП)ред

рдирд╛рдордХрд░рдг рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЙрдЪрд┐рдд рдпреЛрдЬрдирд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ?

рддрддреНрдХрд╛рд▓ рдмрд┐рдХреЗрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИ, рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХреНрдпрд╛ рд╣рдо TransposedVector , RowVector , рджреЛрдиреЛрдВ рд╡реИрдХреНрдЯрд░ рдФрд░ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп Transpose рд░реИрдкрд░ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред , рдпрд╛ рдХреБрдЫ рдФрд░?

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

рд╕рдорд╕реНрдпрд╛ рдирдИ рд╕рд░рдгреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП DArray AbstractArray рдХрд╛ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП DArray рднреА AbstractVector рдпрд╛ AbstractMatrix ред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╣рдо рд╕рд┐рд░реНрдл рд╡реЗрдХреНрдЯрд░ / рдореИрдЯреНрд░рд┐рдХреНрд╕ рднреЗрдж рдХреЛ рд░реЛ / рдХреЙрд▓рдо / рдореИрдЯреНрд░рд┐рдХреНрд╕ рддрдХ рдмрдврд╝рд╛рдПрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП DArray AbstractRow , AbstractCol , рдпрд╛ AbstractMatrix ред рдкреНрд░рдХрд╛рд░ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛

AbstractArray
    AbstractVector
        AbstractRowVector
        AbstractColumnVector
    AbstractMatrix
    ...

рдХрд▓ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ @jiahao рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдпрд╣рд╛рдВ рдХреБрдЫ рдкреВрд░реНрд╡рддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА AbstractVector s рдХреЛ рдХреЙрд▓рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ:

julia> isa(1.0:10.0, AbstractVector)
true

julia> randn(10,10) * 1.0:10.0
ERROR: MethodError: no method matching colon(::Array{Float64,2}, ::Float64)

рдЬреЛ рдореБрджреНрджреЛрдВ рдХреЛ рдореИрдВ рд╡рд╛рдкрд╕ https://github.com/JuliaLang/julia/issues/4774#issuecomment -59428215 рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рдерд╛

рдХрд┐ рд╕реАрдорд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдмрд╕ рдХреЛрд╖реНрдардХ рдЧрд╛рдпрдм рд╣реИ?

рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдорд┐рд╕рд╛рд▓ рд╣реИ:

julia> randn(10,10) * (1.0:10.0)
10-element Array{Float64,1}:
 -22.4311
  тЛо

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣рд╛рдВ рдХреЗ рдЗрд╖реНрдЯрддрдо рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ @andyferris рдХрд╛ рдХрд╛рдо рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

MIT рд╕рдореВрд╣ рдиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдкреНрд░рдХрд╛рд░ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╕рд░рдгреА рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдирд╛ рд╣реИ:

abstract AbstractArray{T,N,row}

type Array{T,N,row} <: AbstractArray{T,N,row}
end

typealias AbstractVector{T} AbstractArray{T,1}
typealias AbstractRowVector{T} AbstractArray{T,1,true}
typealias AbstractColVector{T} AbstractArray{T,1,false}
typealias AbstractMatrix{T} AbstractMatrix{T,2}

typealias Vector{T} Array{T,1,false}
typealias Matrix{T} Array{T,2,false}

рдореИрдВрдиреЗ рдЗрд╕ рдХреЗ рд╕рднреА рдирд┐рд╣рд┐рддрд╛рд░реНрдереЛрдВ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ --- рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдмреБрд░рд╛ рдпрд╣ рд╣реИ рдХрд┐ Array{Int,1} рдПрдХ рдЕрдореВрд░реНрдд рдкреНрд░рдХрд╛рд░ рдмрди рдЬрд╛рддрд╛ рд╣реИ --- рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдкрджрд╛рдиреБрдХреНрд░рдо рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдЕрдореВрд░реНрдд рдмрд╣реБрдд рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рд╕рд╣реА рд╣реИрдВред

рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд┐рдП рдЧрдП рд╕реБрдкрд░рдкреЗрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рд╣реИ; рд╡реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдмрди рд╕рдХрддреЗ рд╣реИрдВред

abstract AbstractArray{T,N,row}

type Array{T,N} <: AbstractArray{T,N}
end

isrow{T,N,row}(::AbstractArray{T,N,row}) = row
isrow{T,N}(::AbstractArray{T,N}) = false

julia> isrow(Array{Int,2}())
false

рдмреЗрд╢рдХ, рдпрд╣ рдереЛрдбрд╝рд╛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджреЗрддрд╛ рд╣реИ ... рдФрд░ рдпрд╣ рд╕рдорд░реНрдерди рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдкрд┐рдЯ-рдмреЙрд▓ рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд▓рдЧрддрд╛ рд╣реИ

type Array{T,N} <: AbstractArray{T,N,false}
end

рд╣рдо рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░" рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ Array{X,Y} рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЬрд╣рд╛рдВ X рдФрд░ Y рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдореБрдлреНрдд рдЪрд░ рдирд╣реАрдВ рд╣реИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Array{X,Y,false} ред

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░: рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд╛рдЙрд╕рд╣реЛрд▓реНрдбрд░ рдиреЛрдЯреЗрд╢рди рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдВ v'v рдФрд░ рдмрд╛рдПрдВ рдХреЛрд╡реЗрдХреНрдЯрд░ рдХреЛ v'A infix рдХрд░рдХреЗ ' рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рдЗрди v'*v рдФрд░ v'*A рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп v' рдкрд╣рдЪрд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде рдпреБрдЧреНрдорд┐рдд, v*v рдПрдХ рддреНрд░реБрдЯрд┐, рдФрд░ v*A рдПрдХ рддреНрд░реБрдЯрд┐, рдпрд╣ рд╡рд╣реА рджреЗ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рдВрдЫрд┐рдд рд╣реИред рдЖрдкрдХреЛ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ outer(v,v) рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рддрд░рд╣ рдХреА рдпреЛрдЬрдирд╛ рдореЗрдВ, v' рдПрдХ noop рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА - рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реА рдпреЛрдЬрдирд╛ рдореЗрдВ рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧрд╛ред

@JeffBezanson рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ AbstractRowVector рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ (рд▓реЗрдХрд┐рди рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдПрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреИрдХреЗрдЬ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛)ред рдореИрдВ рдпрд╣ рднреА рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ AbstractMatrix рдЙрдкрдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд╣ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ broadcast рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╣реИ, рдФрд░ рд▓реЛрдЧ рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ, рдареАрдХ рд╣реИ, рдПрдХ рдкрдВрдХреНрддрд┐!

рдмреЗрд╢рдХ RowVector <: AbstractMatrix рд╣реЛрдирд╛ рд╢рдмреНрджрд╛рд╡рд▓реА рдХрд╛ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рд╣реИ! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 2 рдбреА рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рдЕрдореВрд░реНрдд рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рдПрдХ рд╣реА рдирд╛рдо рджрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рднреА рдХрд╣рд╛ рд╣реИ, рдКрдкрд░ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЗрддрдирд╛ рд▓рдВрдмрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдЖрд░рд╛рдо рдХрд░реВрдВрдЧрд╛: рдЬреВрд▓рд┐рдпрд╛ рдЬреИрд╕реА рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ, "рдбреЗрдЯрд╛ рдХреА рд╕рд░рдгреА" рд╕рдВрдкрддреНрддрд┐ рдХреЛ AbstractArray рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП broadcast рдХреИрд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 1 рдбреА рдпрд╛ 2 рдбреА рд╣реИред рдпрджрд┐ рдЖрдк рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 1 x n рдкрдВрдХреНрддрд┐ рд╡реИрдХреНрдЯрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рджреЛрд╣рд░реА рд╡реИрдХреНрдЯрд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 1 рдбреА рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ - рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреБрд╢ рд╣реВрдВ! рд▓реЗрдХрд┐рди рд╡реЗрдХреНрдЯрд░ рдХреЗ рджреЛрд╣рд░реЗ рд▓реЗрдирд╛ рдбреЗрдЯрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ (рдЬреИрд╕реЗ рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рд╕рдорд░реНрдерди рд╕рдВрдпреБрдЧреНрдорди рдХрд░рдирд╛ рд╣реИ)ред

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

(рдореЗрд░рд╛ рдХрд╣рдирд╛ рдерд╛ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдПрдХ "рдЬреЗрдиреЗрд░рд┐рдХ" рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реЛрдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд▓реЗрдХрд░ рдЪрд▓ рд░рд╣реА рдереА, рдмрд╛рдж рдХреЗ рджрд░реНрд╢рдХреЛрдВ рдХрд╛ рд▓рдХреНрд╖реНрдп рдерд╛)ред

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

AbstractArray{T,N} # interface includes broadcast, Cartesian, getindex, setindex!, etc.
    AbstractArray{T,1}
        AbstractList{T} # resizeable, overloaded with `push!` and so-on
        AbstractVector{T} # non-resizeable, overloaded for *, /, \, ', .', etc
    AbstractArray{T,2}
        AbstractRowVector{T} # non-resizeable, overloaded for *, /, \, ', .', etc
        AbstractMatrix{T} # non-resizeable, overloaded for *, /, \, ', .', etc

рдмреЗрд╢рдХ, рд╣рдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ AbstractDualVector{T} <: AbstractArray{T,1} рдмрдЬрд╛рдп AbstractRowVector ред

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

AbstractVector рд╣реЛрдиреЗ рд╕реЗ C ++ std::vector рдФрд░ рдПрдХ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рд╕рджрд┐рд╢ рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдиреАрдЪ рд▓рдЧ рд░рд╣рд╛ рд╣реИ :) (рд╡рд┐рд╢реЗрд╖рдХрд░ рд╕рд░рдгреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдХрднреА рднреА "рд╕рд╛рд░ рд╕рджрд┐рд╢" рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд рдмреЛрдз (рдЬреИрд╕реЗ рдЖрдзрд╛рд░ рдореБрдХреНрдд)

рд╣рд╛рдВ, рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдЙрд╕ рдкрд░ рд╕рд╡рд╛рд░ рд╣реВрдВред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдЖрдзрд╛рд░ рдореЗрдВ "рдореИрдЯреНрд░рд┐рдХреНрд╕" рдФрд░ "2-рдбреА рд╕рд░рдгреА" рдареЛрд╕ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВрдЧреЗред рд╣рдо рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ Array{T,2} рд▓рд┐рдП рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реЛрдиреЗ рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рдХрд╛рд░ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рд▓рдЧрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рддрдлрд╣рдореА рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдЖрдзрд╛рд░ рдореЗрдВ "рдореИрдЯреНрд░рд┐рдХреНрд╕" рдФрд░ "2-рдбреА рд╕рд░рдгреА" рдареЛрд╕ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВрдЧреЗред

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

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

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

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

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрд╛, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рддрд╛рд▓рдореЗрд▓ рд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдПрдХ elucidative рдЕрдореВрд░реНрдд рдПрдХ рдкрдбрд╝реЛрд╕ cointendening рд╕рдореНрдорд┐рд╢реНрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдмреБрджреНрдз рдХрд░рддрд╛ рд╣реИ, рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрджрд╛рд░ alikenessesред рдЕрдВрддрд░реНрдЬреНрдЮрд╛рди рдХреА рд╕рд░рд▓ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рд▓реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде, рдЬреВрд▓рд┐рдпрд╛ рдХрдо рдмрдХрд╡рд╛рд╕ рд╕рдордп рдХреЗ рд╕рд╛рде рдХрдИ рдФрд░ рдЕрдзрд┐рдХ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИред

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

(рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: RowVector TransposedVector рд╕реЗ рдмреЗрд╣рддрд░ рдирд╛рдо рд╣реИ? рдХреНрдпрд╛ [1 2 3] RowVector рдпрд╛ Matrix ? indices(row, 1) рдХреНрдпрд╛ рд╣реИ?

рд░реЛрд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП +1

20 рджрд┐рд╕рдВрдмрд░, 2016 рдХреЛ 7:01 рдкреВрд░реНрд╡рд╛рд╣реНрди, "рдПрдВрдбреА рдлреЗрд░рд┐рд╕" рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдареАрдХ рд╣реИ, TransposedVectors рдкрд░ рдХрд┐рд╕реА рднреА рдЕрдзрд┐рдХ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ
рдпрд╣ рдХрд╛рдлреА рдареЛрд╕ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдкреАрдЖрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реИрдВ
рдХреБрдЫ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдореБрджреНрджреЗ рдЬреЛ рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдП рд╣реИрдВ
https://github.com/andyferris/TransposedVectors.jl/issues ред

(рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рд░реЛрд╡реЗрдХреНрдЯрд░ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдбрд╡реЗрдХреНрдЯрд░ рд╕реЗ рдмреЗрд╣рддрд░ рдирд╛рдо рд╣реИ?] [рез реи
3] рдПрдХ рд░реЛрд╡реЗрдХреНрдЯрд░ рдпрд╛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕? рд╕реВрдЪрдХрд╛рдВрдХ (рдкрдВрдХреНрддрд┐, 1) рдХреНрдпрд╛ рд╣реИ?)

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

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрдВрдХреНрддрд┐-рд╕реНрддрдВрдн / рд╕рдореНрдореЗрд▓рди рдХреЛ рдЗрд╕рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Vector рдФрд░ RowVector (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ ColVector рдФрд░ RowVector рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ TransposedVector рдпрд╛ DualVector

@felixrehren рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ DualVector рдЬреЛ рдореИрдВрдиреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЕрд░реНрде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ 1-рдЖрдпрд╛рдореА (рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ, рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рджреЛрд╣рд░реА рдПрдХ рд╕рджрд┐рд╢ рд╣реИ) рдФрд░ рдЕрдиреНрдп рджреНрд╡рдВрджреНрд╡ рдЧреБрдг рд╣реИрдВ (рдЬреИрд╕реЗ рдЬрдЯрд┐рд▓ рд╕рдВрдпреБрдЧреНрдорди) ред рдЬреЛ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдХрдард┐рди рдФрд░ рдХрдо рдкрд┐рдЫрдбрд╝рд╛ рд╕рдВрдЧрдд рд▓рдЧрд╛ред

рдирд╛рдо TransposedVector рдареАрдХ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рд▓рдВрдмрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ Vector рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рдХрд░рдХреЗ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдирд┐рдХрд╛рд▓рдХрд░, рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ TransposedVector рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?

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

DualVector рднреА рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди CoVector рдХрдо рдФрдкрдЪрд╛рд░рд┐рдХ рд▓рдЧреЗрдВрдЧреЗред

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЬрд┐рд╕ PR рдХреЛ рдзрдордХреА рджреА рдереА рд╡рд╣ рдЕрдм # 19670 рдкрд░ рд╕рдмрдорд┐рдЯ рдХреА рдЧрдИ рд╣реИред рдореИрдВ рдЕрдм рдХреЗ рд▓рд┐рдП RowVector рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рдЧрдпрд╛ред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдирд┐рдХрд╛рд▓рдХрд░, рдЕрдиреНрдп рдорд╛рдзреНрдпрдореЛрдВ рд╕реЗ рднреА рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдбрд╡реЗрдХреНрдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?

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

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдирд┐рдХрд╛рд▓рдХрд░, рдЕрдиреНрдп рдорд╛рдзреНрдпрдореЛрдВ рд╕реЗ рднреА рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝реНрдбрд╡реЗрдХреНрдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?

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

рдЬрдмрдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдпрд╣ matrix[scalar,range] (рдФрд░ рдЕрдиреНрдп рд╕рдорд╛рди рдирд┐рд░реНрдорд╛рдгреЛрдВ) рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рдХреА рдЕрдкреАрд▓ рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реБрдЖ рдерд╛, рдЬреЛ рдХрд┐ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдЕрдиреБрдХреНрд░рдордг рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рд╕реЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╕реНрдерд╛рди рд╣реЛрдЧрд╛, рдФрд░ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореБрдЭреЗ рджреБрдЦреА рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореИрдВ RowVector (рдФрд░ Vector рдХреЛ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП) рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рдХрд╛рд░ рдХреЛ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджреЗред рддрдм рдЖрдк RowVector(matrix[scalar,range]) рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рдереЗ рдЬреЛ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдФрд░ рд╕рд░рдгреА рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдЕрдзрд┐рдХрд╛рд░, i th рдкрдВрдХреНрддрд┐ рдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ v0.5 рдореЗрдВ A[i,:].' рджреНрд╡рд╛рд░рд╛ рдкрдВрдХреНрддрд┐-рдЖрдХрд╛рд░ рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рднреА рдРрд╕рд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ ( RowVector рдпрд╛ Transpose{V<:AbstractVector} рдпрд╛ рдЬреЛ рднреА рд╣рдо рдЕрдВрддрддрдГ рддрдп рдХрд░рддреЗ рд╣реИрдВ (рдЪрд▓ рд░рд╣реА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ)ред рд╢рд╛рдпрдж рдпрд╣реА рдЬрд╡рд╛рдм рд╣реИред

рдмрд╕ рдЖрдзрд╛рд░ рдореЗрдВ рджреЛ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
row(A,i) рдФрд░ col(A,i)
рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рд╕рдорд░реВрдкрддрд╛ рдХреЗ рд▓рд┐рдПред рдпрд╣ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИ, рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдФрд░ A[i,:].' рд░реВрдк рдореЗрдВ рдХрдИ рд╡рд░реНрдг рд╣реИрдВ

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

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдпрд╛ рддреЛ @andyferris рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рд╕рджрд┐рд╢ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдирд╣реАрдВ рд▓реЗрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ рдЬреЛ рд╕рдмрд╕реЗ рдмреБрд░реЗ рд▓рдХреНрд╖рдгреЛрдВ рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░рддрд╛ рд╣реИ: v' рдЬреИрд╕рд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реИ - рдпрд╛рдиреА рдПрдХ рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрддреНрдкрд╛рджрди - рд▓реЗрдХрд┐рди a'b рдкрд╛рд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ

  1. v' рдПрдХ рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ (ctranspose) рд╣реИ
  2. v'v рдПрдХ рдЕрджрд┐рд╢ (рдбреЙрдЯ рдЙрддреНрдкрд╛рдж) рд╣реИ
  3. v'*v 1-рддрддреНрд╡ рд╡реЗрдХреНрдЯрд░ (рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ * рд╡реЗрдХреНрдЯрд░) рд╣реИ
  4. v*v' рдПрдХ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдореИрдЯреНрд░рд┐рдХреНрд╕ (рд╡реЗрдХреНрдЯрд░ * рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕) рд╣реИ
  5. v'A рдПрдХ рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ ("vecmat") рд╣реИ
  6. v'*A рдПрдХ рдкрдВрдХреНрддрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ (рдореИрдЯ) рд╣реИ
  7. v'A*v рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ (matvec A * v рдлрд┐рд░ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж)
  8. (v'A)*v 1-рддрддреНрд╡ рд╡реЗрдХреНрдЯрд░ (рд╡реАрдореИрдХреЗрдЯ рдлрд┐рд░ рдореИрдЯрд╡реЗрдХ) рд╣реИ
  9. v'*A*v 1-рддрддреНрд╡ рд╡реЗрдХреНрдЯрд░ (рдореИрдЯрдореИрдЯ рдФрд░ рдлрд┐рд░ рдореИрдЯрд╡реЗрдХ) рд╣реИ
  10. v'' рдПрдХ рдХреЙрд▓рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ (рд╡реЗрдХреНрдЯрд░ ctranspose, рдлрд┐рд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ ctranspose)

рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯрдЕрдк рдореЗрдВ 2 рдФрд░ 3 рд╕рдорддреБрд▓реНрдп рд╣реИрдВ рдФрд░ 7, 8 рдФрд░ 9 рд╕рдорддреБрд▓реНрдп рд╣реИрдВ, рдЬреЛ рдХрд┐ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ, рдмреЛрд▓реНрдб рдЖрдЗрдЯрдо рд╡реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рдФрд░ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддреЗ рд╣реИрдВ - рдФрд░ рд╡реЗ рд╕рдм рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред рдХреЛрдИ рдирдпрд╛ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ, рд╕рд┐рд░реНрдл рдПрдХ рдирдпрд╛ рдЗрдиреНрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░ред рдореБрдЦреНрдп рджреЛрд╖ 10 - v'' рдЕрднреА рднреА рдПрдХ рдХреЙрд▓рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИред рдпрдХреАрдирди, рдпрд╣ рдПрдХ рд▓рд╛рдн рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ '' рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЛ рдХреЙрд▓рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░ рд╣реИред

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

рдПрдХ рдЕрдиреНрдп рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ infix a'b рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ (рдмрд╕ * ) рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдПрдХ рд╕рдВрдпреБрдЧреНрдорд┐рдд рд╡реЗрдХреНрдЯрд░ рдкрд░ v' рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПред рдЕрдзрд┐рдХ рдЖрдо рддреМрд░ рдкрд░, рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ A' рдПрдХ рд╕рд░рдгреА рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрд▓рд╕реА рдЗрд╕рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЙрд▓рдЯ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ A.' рдХреЗрд╡рд▓ рдЖрд▓рд╕реА рд░реВрдк рд╕реЗ рдПрдХ рд╕рд░рдгреА рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЙрд▓рдЯ рджреЗрдВрдЧреЗ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╡реИрдХреНрдЯрд░ рдкрд░ рдкрд╣рдЪрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ:

  1. v' рдПрдХ рд╕рджрд┐рд╢ (рд╕рдВрдпреБрдЧреНрдорд┐рдд) рд╣реИ
  2. v'v рдПрдХ рдЕрджрд┐рд╢ (рдбреЙрдЯ рдЙрддреНрдкрд╛рдж) рд╣реИ
  3. v'*v рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ (рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП v'v рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░реЗрдВ рдФрд░ outer(v,v) рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП outer(v,v)
  4. v*v' рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ (рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП v'v рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рдмрд╛рд╣рд░реА рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП outer(v,v) )
  5. v'A рдПрдХ рд╕рджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ (vecmat)
  6. v'*A рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ (рдЕрдиреБрд╢рдВрд╕рд┐рдд v'A vecmat рдХреЗ рд▓рд┐рдП)
  7. v'A*v рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ (matvec A * v рддреЛ dot рдЙрддреНрдкрд╛рдж)
  8. (v'A)*v рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ ( v'v рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП outer(v,v) рдФрд░ outer(v,v)
  9. v'A'v рдПрдХ рдЕрджрд┐рд╢ рд░рд╛рд╢рд┐ рд╣реИ ( v'(A'v) - рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рддреЛ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рдж)
  10. v'' рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ ( v'' === v рдФрд░ v.' === v )

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

Precise рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдордп рдкрд░ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕ рд╕рдордп рдкрд░ рдЗрдиреНрд╣реЗрдВ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдиреЗ ' рдФрд░ * рдУрд╡рд░рд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдпреЗ рдСрдкрд░реЗрд╢рди рдХрд╛рдо рдХрд░реЗрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрди рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЛ рд╕рд╣реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд▓рд╕реА рд╕рдВрдпреБрдЧреНрдордХ рдЖрд╡рд░рдг рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ # 5332 рдХреЗ рд▓рд┐рдП рд╡реИрд╕реЗ рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

: 100:

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

рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ v.' рдиреЛ-рд╕реЗрд╢рди рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╣реИ A .+ v.' рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЕрд░реНрде рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ v рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдХреЛ A рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП A рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐-рдЬреИрд╕рд╛ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рдХрдард┐рди рдмрдирд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреВрд░реНрдг рдЕрдкрдЪрдпрди рдЪрдХреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ A рд╡рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИ)ред

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

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ v0.6 рдХреЗ рд▓рд┐рдП рд╕рдордп рд╕реАрдорд╛ рд▓рдЧрднрдЧ рд╣рдо рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдирд╛рди рдХреЗ рд╕рд╛рде рдмрдЪреНрдЪреЗ рдХреЛ рдмрд╛рд╣рд░ рдлреЗрдВрдХрдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪреЗрддрд╛рд╡рдиреА рджреВрдВрдЧрд╛ред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦрд┐рдд RowVector рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рд╕рд░рдгреА рд╕рдВрдпреБрдЧреНрдорди рдХреЗ рд▓рд┐рдП

  • IMO, рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдкреНрд░рдХрд╛рд░ (рд╣рдо рдЕрдм рддрдХ рджреЛрд╣рд░реА рд╡реИрдХреНрдЯрд░ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рд╕реЗ рдЗрдирдХрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рд╡реЗрдХреНрдЯрд░ рдХреЛ рдХреБрдЫ рд╣рдж рддрдХ рджреЛрд╣рд░реЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
  • v'' === v
  • рд╕реНрдЯреАрдлрди рдХреА рд╕реВрдЪреА рдореЗрдВ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдЬреИрд╕реЗ v1'v2 рдПрдХ рдбреЙрдЯ рдЙрддреНрдкрд╛рдж рд╣реИ
  • рд▓рдЧрднрдЧ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрдд рд╕рд░рдгреА рд╢рдмреНрджрд╛рд░реНрде - рдЬреИрд╕реЗ size(v') рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ v'' 1-рдЖрдпрд╛рдореА рд╣реИ
  • рдЖрд▓рд╕реА рдХреЙрдиреНрд╕рд▓ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдкреЛрдЬрд╝ рд░реИрдкрд░ рдХреБрдЫ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡реИрд╕реЗ рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
  • рд╕рднреА Ac_mul_Bc рдХрд╛рд░реНрдпреЛрдВ рдХреЛ * рдФрд░ A_mul_B! (рдФрд░ рдЗрд╕реА рдкреНрд░рдХрд╛рд░ \ , / ) рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд┐рдХрд╛рд▓рдирд╛ред

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

рджреВрд╕рд░реА рддрд░рдл - IMHO рдЙрди рдирд┐рдпрдореЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдЙрд▓рдЭрд╛ рд╣реБрдЖ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдФрд░ / рдпрд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ ' * (3, 4, 6 рдФрд░ 8) рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ RowVector )ред

рдФрд░ рд╣рд╛рдБ рд╣рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдмрдЧ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП v.' рдпрд╛ рдХреБрдЫ рдФрд░ рдШрдЯрд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕ рд╕рдордп рдпрд╣ рд▓рдЧрднрдЧ v.' рдПрдХ рд▓рд╛рдкрддрд╛ рд╡рд┐рдзрд┐ рддреНрд░реБрдЯрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд▓рдЧрддрд╛ рд╣реИ (рд╣рдо рдмрд╕ рдкрдВрдХреНрддрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ / рджреЛрд╣рд░реА рд╡реИрдХреНрдЯрд░, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡реЗ рдЪрд╛рд╣реЗрдВ рддреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдкреИрдХреЗрдЬ рдХреЛ рдирд╣реАрдВ рд░реЛрдХреЗрдВрдЧреЗ)

19670 рдпрд╛ рддреЛ рддреИрдпрд╛рд░ рдпрд╛ рдЙрд╕рдХреЗ рдХрд░реАрдм рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рдЕрдЧрд░ v0.6 рдореЗрдВ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдЫреАрдирдиреЗ рдХреА рднреВрдЦ рд╣реИред

рдмреИрдо

Wootред

рдХреНрдпрд╛ рдпрд╣ рд╣рдорд╛рд░рд╛ рд╕рдмрд╕реЗ рд▓рдВрдмрд╛ рдореБрджреНрджрд╛ рдерд╛?

рдирд╣реАрдВ, # 11004 рдЕрдзрд┐рдХ рд╣реИ

рдорд╛рдлрд╝ рдХрд░рдирд╛ред рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдореБрдЭреЗ рдУрдкрди рдЗрд╢реНрдпреВ рдереНрд░реЗрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

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

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

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

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

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

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