2013-04-21 71 views
1

我解決與邊界條件變化的這樣10,0,0,10,0,0,10,0,0,10,0,0,10穩態熱方程的特定序列.. ..等等,這取決於我選擇的點數。 我想爲這些邊界條件構造一個矩陣,但是不能根據矩陣的第i個元素指定序列的邏輯。計劃整數

我正在使用Mathematica此不過,我需要的公式只喜歡奇數,我們可以指定2N + 1和2N甚至,像這樣的序列10,0,0,10,0,0,10, 0,0,10,....

+0

你爲什麼要標記matlab,如果它是數學嗎? – Memming 2013-04-21 17:09:36

+0

我可以做到這一點,但我更喜歡mathematica,這就是爲什麼我標記matlab – 2013-04-21 17:11:50

+0

你有什麼是一個數字的矢量,而不是一個矩陣。所需矩陣的維數是多少? – Memming 2013-04-21 17:14:11

回答

0

既然你特別想要一個數學公式,讓我提出一個方法:

seq = PadRight[{}, 30, {10, 0, 0}]; 

func = FindSequenceFunction[seq] 
10/3 (1 + Cos[2/3 \[Pi] (-1 + #1)] + Cos[4/3 \[Pi] (-1 + #1)]) & 

測試:

Array[func, 10] 
{10, 0, 0, 10, 0, 0, 10, 0, 0, 10} 

有一定簡單程序生成該序列,如:

Array[10 Boole[1 == Mod[#, 3]] &, 10] 
{10, 0, 0, 10, 0, 0, 10, 0, 0, 10} 
+0

嚮導非常感謝你的答案。對不起,我遲到了,直到現在還沒有回過頭來看這個問題。 – 2014-01-24 07:14:46

+0

@FarrukhShehzad不客氣,謝謝你讓我知道你很欣賞它。 – 2014-01-24 08:06:24

1

在MATLAB中,這將是

M = zeros(1000, 1); 
M(1:3:1000) = 10; 

使具有這種結構的長1000向量。 1:3:10001,4,7,...

+0

非常感謝它的工作...我會與Mathematica中這樣的事情現在..再次感謝的捆綁..留祝福.. – 2013-04-21 17:24:47

+0

@FarrukhShehzad:請接受的答案,如果你滿意。這標誌着這個問題已經得到解答,從而可能有益於社區。 – 2013-04-21 17:46:53

0

一種方式,數學要做到這一點:

Take[Flatten[ConstantArray[{10, 0, 0}, Ceiling[1000/3] ], 1],1000] 

另一種方式

Table[Boole[Mod[i,3]==1]*10, {i,1,1000}] 
+0

非常感謝您的回答。我很抱歉,我沒有再看到這個問題,因爲我能夠做到這一點。再次感謝:) – 2014-01-24 07:15:50