Wolfram mathematica 创建矩阵并填入wolfram 我想把我的C++代码翻译成WOLFRAM,以改进我的CALCS。 C++代码< /P> for(int i=0;i

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]

所有这些系数都是常数,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]] += 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}];