我正在解决稳态热方程,其边界条件变化如此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 :(得分:1)
在MATLAB中,它将是
M = zeros(1000, 1);
M(1:3:1000) = 10;
制作具有这种结构的1000长矢量。 1:3:1000
为1,4,7,...
。
答案 1 :(得分:0)
在Mathematica中执行此操作的方法:
Take[Flatten[ConstantArray[{10, 0, 0}, Ceiling[1000/3] ], 1],1000]
另一种方式
Table[Boole[Mod[i,3]==1]*10, {i,1,1000}]
答案 2 :(得分: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}