質問編集履歴
4
マークダウンで累乗**が太字になっていたので^で書き直しました。
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -16,5 +16,5 @@ | |
| 16 16 | 
             
              m = [a, b]
         | 
| 17 17 |  | 
| 18 18 | 
             
             欲しい行列
         | 
| 19 | 
            -
              m.T * m = [a, b].T * [a, b] = [[a | 
| 19 | 
            +
              m.T * m = [a, b].T * [a, b] = [[a^2, ab],
         | 
| 20 | 
            -
                               [ab, b | 
| 20 | 
            +
                               [ab, b^2]]
         | 
3
壊滅的に質問が悪いようなので、質問を全面的に刷新いたしました。回答いただいた方々、申し訳ございません。
    
        title	
    CHANGED
    
    | @@ -1,1 +1,1 @@ | |
| 1 | 
            -
            python:列ベクトルx行ベクトルの | 
| 1 | 
            +
            python:列ベクトルx行ベクトルの積を行列として出力する方法
         | 
    
        body	
    CHANGED
    
    | @@ -1,22 +1,20 @@ | |
| 1 1 | 
             
            ### 前提・実現したいこと
         | 
| 2 | 
            +
            最終目標
         | 
| 3 | 
            +
             鏡の面方向ベクトルmと光の進行方向ベクトルnが与えられたときに反射後の光の進行方向を算出すること
         | 
| 2 4 |  | 
| 5 | 
            +
            反射後の光の進行方向を算出するには、以下の手順が必要になります。
         | 
| 6 | 
            +
            1. 鏡の面方向ベクトルmから反射用の回転行列を作成する。
         | 
| 3 | 
            -
             | 
| 7 | 
            +
            2. 回転行列と光の進行方向ベクトルnの積によって反射後の進行方向ベクトルを算出する。
         | 
| 4 | 
            -
            pythonで実現する良い方法を教えていただけますでしょうか。
         | 
| 5 | 
            -
            よろしくお願いいたします。
         | 
| 6 | 
            -
            調べてもあんまり見つけられなくて...
         | 
| 7 8 |  | 
| 8 | 
            -
             | 
| 9 | 
            +
            課題
         | 
| 10 | 
            +
             手順1で回転行列が作成できずに困っています。
         | 
| 11 | 
            +
             ある行ベクトル(m行1列)とその転置ベクトル(1行m列)の積で行列(m行m列)ができれば問題は解決します。
         | 
| 12 | 
            +
              *後学のために、その方法が、列ベクトル(m行1列)と行ベクトル(1行n列)をそのまま行列(m行n列)にできる方法かどうか教えていただけると幸いです。
         | 
| 9 13 |  | 
| 14 | 
            +
            具体例:
         | 
| 10 | 
            -
             | 
| 15 | 
            +
              ベクトル
         | 
| 11 | 
            -
            [[1/√2],と[1/√2, 1/√2]の積が[[1/2, 1/2],
         | 
| 12 | 
            -
             [ | 
| 16 | 
            +
              m = [a, b]
         | 
| 13 | 
            -
            [[1/√2],と[1/√2, -1/√2]の積が[[1/2, -1/2],
         | 
| 14 | 
            -
             [-1/√2]]                     [-1/2, 1/2]]
         | 
| 15 17 |  | 
| 16 | 
            -
             | 
| 18 | 
            +
             欲しい行列
         | 
| 17 | 
            -
                    m = np.array([np.sqrt(0.5), np.sqrt(0.5)])
         | 
| 18 | 
            -
             | 
| 19 | 
            +
              m.T * m = [a, b].T * [a, b] = [[a ** 2, ab],
         | 
| 19 | 
            -
             | 
| 20 | 
            +
                               [ab, b ** 2]]
         | 
| 20 | 
            -
                    n_matrix = np.dot(n, n.T)
         | 
| 21 | 
            -
                    print(m_matrix, n_matrix)
         | 
| 22 | 
            -
            ```
         | 
2
与えられるベクトルと欲しい行列の一例を追加しました。
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -7,7 +7,11 @@ | |
| 7 7 |  | 
| 8 8 | 
             
            追記
         | 
| 9 9 |  | 
| 10 | 
            -
            以下、 | 
| 10 | 
            +
            以下、ベクトルと欲しい行列です
         | 
| 11 | 
            +
            [[1/√2],と[1/√2, 1/√2]の積が[[1/2, 1/2],
         | 
| 12 | 
            +
             [1/√2]]                     [1/2, 1/2]]
         | 
| 13 | 
            +
            [[1/√2],と[1/√2, -1/√2]の積が[[1/2, -1/2],
         | 
| 14 | 
            +
             [-1/√2]]                     [-1/2, 1/2]]
         | 
| 11 15 |  | 
| 12 16 | 
             
            ```ptyhon3
         | 
| 13 17 | 
             
                    m = np.array([np.sqrt(0.5), np.sqrt(0.5)])
         | 
1
具体的なコード追加
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -3,4 +3,16 @@ | |
| 3 3 | 
             
            題名の通りですが、列ベクトル(m行1列)と行ベクトル(1行n列)の内積をそのままm行n列の行列にしたいのですが、
         | 
| 4 4 | 
             
            pythonで実現する良い方法を教えていただけますでしょうか。
         | 
| 5 5 | 
             
            よろしくお願いいたします。
         | 
| 6 | 
            -
            調べてもあんまり見つけられなくて...
         | 
| 6 | 
            +
            調べてもあんまり見つけられなくて...
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            追記
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            以下、具体的なコードです
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            ```ptyhon3
         | 
| 13 | 
            +
                    m = np.array([np.sqrt(0.5), np.sqrt(0.5)])
         | 
| 14 | 
            +
                    n = np.array([np.sqrt(0.5), - np.sqrt(0.5)])
         | 
| 15 | 
            +
                    m_matrix = np.dot(m, m.T)
         | 
| 16 | 
            +
                    n_matrix = np.dot(n, n.T)
         | 
| 17 | 
            +
                    print(m_matrix, n_matrix)
         | 
| 18 | 
            +
            ```
         | 
