Файлы справки Mathematica невероятно полны для подобных вещей.Я собираюсь ссылаться на онлайн-версию , но учтите, что в браузере справки в Mathematica вы можете интерактивно изменять и оценивать примеры помощи .Это был единственный способ, которым я многое узнал о Mathematica.
Один момент, прежде чем начать пробовать больше вещей: очень легко определить функцию, такую как u или f когда намереваетесь сделать сравнение.Безошибочный, но несколько ленивый способ исправить потенциальные проблемы, связанные с этим, состоит в том, чтобы выйти из текущего ядра и затем снова что-то оценить.При выходе из ядра теряются все символы, которые вы могли случайно определить до этого момента.(Запуск нового ядра также является причиной того, что Mathematica немного сбивает с толку в первый раз, когда вы выполняете какую-либо операцию, даже если это простое дополнение.)
Продолжая с вопросом под рукой ... В ссылке, которую я связалвыше приведен образец, который решает одномерное уравнение теплопроводности, которое очень похоже на ваш пример.Давайте начнем с этого и изменим его:
NDSolve[{D[u[t, x], t] == D[u[t, x], x, x], u[0, x] == Q0,
u[t, 0] == Sin[t], u[t, 5] == 0},
u, {t, 0, 10}, {x, 0, 5}]
Их уравнения: *u t = ∂u xx с граничными условияминачальная энергия равна Q0 в момент времени 0xx, энергия при x = 0 равна sin (t) и энергия при x = 5 = 0 *t .Вы можете увидеть выше, как эти карты с надеждой.Теперь давайте попробуем то же самое для ваших терминов:
NDSolve[{D[u[t, x, y], t] - D[u[t, x, y], x, x] - D[u[t, x, y], y, y] == f[x, y],
f[x,y] == If[x^2 + y^2 < 1, 1, 0],
u[t, 0, y] == 0, u[t, 1, y] == 0,
u[t, x, 0] == 0, u[t, y, 1] == 0 }
u, {x, 0, 1}, {y, 0, 1}]
Я думаю, что это правильно.Тем не менее, здесь есть хотя бы одна проблема. t - все еще свободная переменная.Вы не предоставили никаких уравнений для его ограничения, поэтому система не указана.