Здравствуйте.
Товарищи, помогите пожалуйста разобраться , что показывает выводимый 3х мерный график, после решения эллиптической задачи?
Код решения задачи:
Код:
Dirichlet[n_, m_] :=
Module[{Err = 1.0, i, j, k = 0, \[Omega]},
\[Omega] = 4/(
2 + Sqrt[4 - (Cos[\[Pi]/(n - 1)] + Cos[\[Pi]/(m - 1)])^2]);
While[ And[Err > 0.001 , k <= 70 ],
Err = 0.0;
For[ j = 2, j <= m - 1, j++,
For[ i = 2, i <= n - 1, i++,
Relax =
1/4 (\[Omega] (u[[i, j + 1]] + u[[i, j - 1]] + u[[i + 1, j]] +
u[[i - 1, j]] - 4 u[[i, j]]));
u[[i, j]] = u[[i, j]] + Relax;
Err = Max[Err, Abs[Relax]]; ]; ];
Print["Max grid change = ", Err];
k = k + 1; ]; ];
n = 9;
m = 9;
Print["n = ", n]
Print["m = ", m]
u = Table[70.0, {n}, {m}];
For[i = 2, i < n, i++, u[[i, 1]] = i];
For[i = 2, i < n, i++, u[[i, m]] = 0];
For[j = 2, j < m, j++, u[[1, j]] = 0];
For[j = 2, j < m, j++, u[[n, j]] = j];
u[[1, 1]] = 1/2 (u[[1, 2]] + u[[2, 1]]);
u[[1, m]] = 1/2 (u[[1, m - 1]] + u[[2, m]]);
u[[n, 1]] = 1/2 (u[[n - 1, 1]] + u[[n, 2]]);
u[[n, m]] = 1/2 (u[[n - 1, m]] + u[[n, m - 1]]);
Dirichlet[n, m];
ListPlot3D[Transpose[u], AxesLabel -> {"y(j)", "x(i)", "u "},
ViewPoint -> {4, 2, 3}, Lighting -> False, ColorFunction -> Hue]
Print["Solução numerica para P.D.E:"]
Print["-delta u = 0"]
В Книжке Burden Analisys Numerical
http://ifolder.ru/31217077 на стр 697,701,702 есть пример решения такой задачи, но я не понял если честно также, в таблице на стр 702 (Talbe 12.2) , какой столбец соответсвутют столбцу "max greed change" из программы
http://math.fullerton.edu/mathews/n2003/ellipticpde/EllipticPDEMod/Links/EllipticPDEMod_lnk_3.htmlТак же не очень понятно, зачем здесь мы задаём число 70 ? Разве гарница интервала не ограничена 1 ?
Код:
[b]u = Table[70.0, {n}, {m}];[/b]
For[i = 2, i < n, i++, u[[i, 1]] = i];
For[i = 2, i < n, i++, u[[i, m]] = 0];
For[j = 2, j < m, j++, u[[1, j]] = 0];
For[j = 2, j < m, j++, u[[n, j]] = j];