作者candy88257 (阿泰斯)
看板MATLAB
標題[討論] 四階張量簡化為二階張量?
時間Fri Sep 6 14:29:38 2013
有一四階張量 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
1F:推 celestialgod:找轉換邏輯吧 相同是他自己 相加多少是多少那樣 09/06 14:48
2F:推 celestialgod:看起來像是if(ii=jj) p=ii elseif(ii+jj=3) p=6.... 09/06 14:50
3F:推 H45:為什麼 c(1,1,1,2)=c(1,6); 而不是 c(1,1,1,2)=c(1,2); 09/06 15:50
4F:→ H45:這些索引值有什麼規定嗎? 09/06 15:52
5F:→ H45:而且 c(1,1,1,1)=c(1,1) 等號左右邊寫反了吧? 09/06 15:53
6F:→ ejialan:if (ii==jj), p=ii; else, p=9-ii-jj; end 09/06 16:09
7F:推 alamabarry:一看就是固體力學的彈性係數@@ 09/06 16:21
8F:→ alamabarry:主要是因為有一些對稱性的關係才可以化簡 09/06 16:23
9F:→ candy88257:這是"張量"裡面的東西,就如我上面表格那樣。 09/06 16:23
10F:→ candy88257:感謝樓上回答的大大!! 09/06 16:25
11F:推 alamabarry:四階無法化成二階 09/06 23:12
12F:→ alamabarry:除非Cijkl=Cjikl=Cijlk=Cklij 09/06 23:13
13F:→ alamabarry:類似的情況 09/06 23:13
14F:→ candy88257:恩,我研究的就是您說的那塊 09/07 04:17
15F:→ candy88257:無法轉二階的話我也不會想寫轉換的程式碼了 09/07 04:18
16F:→ candy88257:程式碼我已經寫好了,真的非常感謝樓上 09/07 04:20
17F:→ candy88257:助我轉換邏輯 09/07 04:20