Wolfram mathematica 创建矩阵并填入wolfram 我想把我的C++代码翻译成WOLFRAM,以改进我的CALCS。 C++代码< /P> for(int i=0;i
所有这些系数都是常数,N——矩阵的大小。Wolfram mathematica 创建矩阵并填入wolfram 我想把我的C++代码翻译成WOLFRAM,以改进我的CALCS。 C++代码< /P> for(int i=0;i,wolfram-mathematica,Wolfram Mathematica,所有这些系数都是常数,N——矩阵的大小。在[1]:=N=4;uCoef=2;duCoef=3;du2Coef=7;L=11。; In[1]:= n = 4; uCoef = 2; duCoef = 3; du2Coef = 7; L = 11.; matrix = Table[0, {n}, {n}]; For[i = 1, i < n, ++i, matrix[[i, i]] += L/3*uCoef - duCoef/2 - du2Coef/L; matrix[[i, i+1]
在[1]:=N=4;uCoef=2;duCoef=3;du2Coef=7;L=11。;
In[1]:= n = 4; uCoef = 2; duCoef = 3; du2Coef = 7; L = 11.;
matrix = Table[0, {n}, {n}];
For[i = 1, i < n, ++i,
matrix[[i, i]] += L/3*uCoef - duCoef/2 - du2Coef/L;
matrix[[i, i+1]] += L/6*uCoef - duCoef/2 - du2Coef/L;
matrix[[i+1, i]] += L/6*uCoef + duCoef/2 + du2Coef/L;
matrix[[i+1, i+1]] += L/3*uCoef - duCoef/2 + du2Coef/L];
matrix
Out[4]= {
{5.19697, 1.5303, 0, 0},
{5.80303, 11.6667, 1.5303, 0},
{0, 5.80303, 11.6667, 1.5303},
{0, 0, 5.80303, 6.4697}}
矩阵=表[0,{n},{n}];
对于[i=1,i
从原来的字符中改变的每一个字符都暗示C++和Mathematica之间有一个根本的区别
< P>在Mathematica中使用这样的带数组的<代码> SpasRays<代码>: n = 5; uCoef = 2; duCoef = 3; du2Coef = 7; L = 11.;
matrix = SparseArray[
{{1, 1} -> L/3*uCoef - duCoef/2 - du2Coef/L,
{i_ /; 1 < i < n, i_} -> -duCoef + 2 L uCoef/3 ,
{n, n} -> ( L/3 uCoef - duCoef/2 + du2Coef/L ),
Band[{1, 2}] -> L/6 uCoef - duCoef/2 - du2Coef/L,
Band[{2, 1}] -> L/6 uCoef + duCoef/2 + du2Coef/L}, {n, n}];
MatrixForm@matrix
n = 5; uCoef = 2; duCoef = 3; du2Coef = 7; L = 11.;
matrix = SparseArray[
{{1, 1} -> L/3*uCoef - duCoef/2 - du2Coef/L,
{i_ /; 1 < i < n, i_} -> -duCoef + 2 L uCoef/3 ,
{n, n} -> ( L/3 uCoef - duCoef/2 + du2Coef/L ),
Band[{1, 2}] -> L/6 uCoef - duCoef/2 - du2Coef/L,
Band[{2, 1}] -> L/6 uCoef + duCoef/2 + du2Coef/L}, {n, n}];
MatrixForm@matrix
matrix = SparseArray[{{_, _} -> 0}, {n, n}];