2

有谁知道 /; 例如:V[n_][i_/;i<=imax,0];=V[n][i,0]=0在 Mathematica 中?

它是使用有限差分法绘制矩形金属槽的电势函数的程序的一部分。

这是改进的一个,但仍然无法工作。

V[0][i_, j_] := 0;
tol = 0.0025; 
imax = 20; jmax = 20;
V[n_][i_, 0] := V[n][i, 0] = 0;
V[n_][i_, jmax] := V[n][i, jmax] = 100*Sin[0.05*Pi*i];
V[n_][0, j_] := V[n][0, j] = 0;
V[n_][imax, j_] := V[n][imax, j] = 0;
V[n_][i_, j_] := V[n][i, j] = (1/4)*(V[n - 1][i + 1, j] + 
                 V[n - 1][i - 1, j] + V[n - 1][i, j + 1] + V[n - 1][i, j - 1]);
For[m = 1, Max[Table[Abs[V[m][i, j] - V[m - 1][i, j]], {i, 1, imax - 1}, {j, 1, jmax - 1}]] >= tol, m++; 
  If[m > 20, Break[]]];
  Print[m];
  Show[ListPlot3D[Table[V[m][i, j], {j, 0, 20}, {i, 0, 20}]], BoxRatios -> {1, 1, 0.85}, PlotRange -> {0, 1}, Axes -> True, AxesLabel -> {"x", "y", "V"}]
4

1 回答 1

1

通过 Wolfram 的参考,我已经明白了这一点。这是网络 https://reference.wolfram.com/language/ref/Condition.html。感谢@agentp 的帮助

于 2017-04-11T08:55:11.743 回答