如何用向量(a,b,c)和(x,y,z)表示向量(ax,by,cz)?
不行。這裡涉及到內蘊幾何的問題。內蘊幾何指的是,你定義的幾何量與你的坐標選取無關。比如某個向量的長度這個量,或者兩個向量的內積這個量,把你所取的歐式空間旋轉一下,都還是不變的。注意旋轉這個操作下你選取的坐標變為新的一組坐標,根據線性代數正是用旋轉對應的矩陣(正交矩陣)作用後的結果。
現在注意你提問中說的只用向量的操作,應該是指不依賴於坐標選取的操作。但你可以驗證,例如(1,0,0)和(0,1,0),在你的操作下得到(0,0,0);但旋轉一下坐標,得到兩個向量
,
,在你的操作下得到
。得到的向量是依賴於坐標的,所以你的想法不能實現。
數學上會把其中一個寫成對角陣
[a,b,c].*[x,y,z]MATLAB是最好的語言(逃
diag(Diag(a,b,c)*Diag(x,y,z))diag:取對角線元素Diag:反之不行
歐式空間是線性空間,所有矩陣乘法標量乘法是線性變換,原命題即求證 f((a, b, c), (x, y, z)) = a*x, b*y, c*z 是否為線性變換。
f((a1+a2, b1+b2, c1+c2), (x1+x2, y1+y2, z1+z2)) = (a1+a2)*(x1+x2), (b1+b2)*(y1+y2), (c1+c2)*(z1+z2)
f((a1, b1, c1), (x1, y1, z1)) + f((a2, b2, c2), (x2, y2, z2)) = a1*x1+a2*x2, b1*y1+b2*y2, c1*z1+c2*z2
兩式不相等,即f不為線性變換。
--- 正式證明 ---
Let
be the vector space of
,
be the vector space of
. Define the function
by:
. Prove or disprove
is a linear operator.
Let
,
,
.
Then
,
.
So
is not a linear operator.
這種乘積有名字,叫矩陣的阿達瑪乘積Hadmard product. 可以問度娘.不知樓主想要什麼結果. 想要只用向量內積和外積的複合誘導出這個映射嗎? 可以像前面有大牛說的那樣,把向量嵌入到3*3的方陣里去,寫成對角陣形式,用矩陣乘法誘導出來.
是Hadamard積@Phylyd 謝謝指正 網上眾多博客誤作Harmard積,提示一下~。Hadamard product (matrices)
選取合適的內積運算元:
假設三維空間每個維度的量綱都是長度,那麼ax,by,cz的量綱則是面積,用此空間中的向量表示面積沒有物理意義,所以在這個角度上不可能。
你這是一個雙線性映射的問題可以的。
array&myFun(array& a, array& b){array& c;for(int i=0; i&<3;i++){c[i]=a[i]*b[i];return c;}} 以後用myFun就可以了
這三個向量線性相關嗎?好像不相關,忘了這是不可能的。
對於你舉的例子,叉乘後的矢量在任何直角坐標系下結果都是一樣的。而計算的(ax,by,cz)矢量就會隨坐標系的變化而有所不同,例如,在某個坐標系下(a,b,c)=(0,0,1), (x,y,z)=(1,0,0),那麼(ax,by,cz)=(0,0,0),是一個零向量。但是你換一個坐標系,做出的結果就不再是零向量了。
也就是說,你定義了一種運算,但這種運算結果不唯一,依賴於坐標系,因此是不可行的。
此外,你的方法二也是不可行的。(m,n,m × n)的線性組合不能表示(ax,by,cz)。原因同上,假如能這麼表示,那麼這種運算結果將是唯一的,然而現在運算結果不唯一,因此方法不對。m × n=(bz-cy,cx-az,ay-bx),它與(a,b,c)和(x,y,z)的線性組合無論如何都無法拼湊出(ax,by,cz)。
[a b c]*[x y z]T啊
把向量寫在3×3矩陣的對角線上做矩陣乘法就可以表示,也就是用兩個二階張量的乘積表示另一個二階張量。
推薦閱讀:
※目前數學有沒有結構比較清晰嚴謹的基礎部分?
※代數拓撲為什麼研究同調?
※在你的學科里都有什麼已知的常數?
※誰介紹一下北大數學系的關啟安?
※愛因斯坦搞統一場論為什麼失敗?是因為數學知識不夠嗎?