[討論] 四階張量簡化為二階張量?

看板MATLAB作者 (阿泰斯)時間12年前 (2013/09/06 14:29), 編輯推噓5(5012)
留言17則, 5人參與, 最新討論串1/1
有一四階張量 c(ii,jj,kk,ll) 要怎簡化為二階的張量 c(p,q) ?? 其中 ii,jj ----> p (註: c(ii,jj,kk,ll)的ii,jj轉換為p; kk,ll則轉換為q) 1,1 1 1,2 6 1,3 5 2,1 6 2,2 2 2,3 4 3,1 5 3,2 4 3,3 3 例: c(1,2,2,3)=c(6,4) c(3,1,2,2)=c(5,2) ...... 這種簡化要怎麼寫? 是有一種寫法是一個一個慢慢寫... 也就是 c(1,1,1,1)=c(1,1) ; c(1,1,1,2)=c(1,6) ...... 但是這樣要寫很久,應該有更簡單的寫法 懇求高手協助!!!感謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.17.157

09/06 14:48, , 1F
找轉換邏輯吧 相同是他自己 相加多少是多少那樣
09/06 14:48, 1F

09/06 14:50, , 2F
看起來像是if(ii=jj) p=ii elseif(ii+jj=3) p=6....
09/06 14:50, 2F

09/06 15:50, , 3F
為什麼 c(1,1,1,2)=c(1,6); 而不是 c(1,1,1,2)=c(1,2);
09/06 15:50, 3F

09/06 15:52, , 4F
這些索引值有什麼規定嗎?
09/06 15:52, 4F

09/06 15:53, , 5F
而且 c(1,1,1,1)=c(1,1) 等號左右邊寫反了吧?
09/06 15:53, 5F

09/06 16:09, , 6F
if (ii==jj), p=ii; else, p=9-ii-jj; end
09/06 16:09, 6F

09/06 16:21, , 7F
一看就是固體力學的彈性係數@@
09/06 16:21, 7F

09/06 16:23, , 8F
主要是因為有一些對稱性的關係才可以化簡
09/06 16:23, 8F

09/06 16:23, , 9F
這是"張量"裡面的東西,就如我上面表格那樣。
09/06 16:23, 9F

09/06 16:25, , 10F
感謝樓上回答的大大!!
09/06 16:25, 10F

09/06 23:12, , 11F
四階無法化成二階
09/06 23:12, 11F

09/06 23:13, , 12F
除非Cijkl=Cjikl=Cijlk=Cklij
09/06 23:13, 12F

09/06 23:13, , 13F
類似的情況
09/06 23:13, 13F

09/07 04:17, , 14F
恩,我研究的就是您說的那塊
09/07 04:17, 14F

09/07 04:18, , 15F
無法轉二階的話我也不會想寫轉換的程式碼了
09/07 04:18, 15F

09/07 04:20, , 16F
程式碼我已經寫好了,真的非常感謝樓上
09/07 04:20, 16F

09/07 04:20, , 17F
助我轉換邏輯
09/07 04:20, 17F
文章代碼(AID): #1IANPKKO (MATLAB)