Интегро-дифференциальное уравнение

Форум пользователей пакета Mathematica

Модератор: Admin

Olga88
Сообщения: 2
Зарегистрирован: Вс май 09, 2010 10:39 am

Интегро-дифференциальное уравнение

Сообщение Olga88 » Вс май 09, 2010 10:57 am

Помогите, пожалуйста.
У меня есть дифференциальное уравнение в частных производных второго порядка, в правой части которого стоит интеграл от искомой функции. Более того, этот интеграл ещё и под модулями.
Вот кусок кода, который я попыталась написать:
T := 1 (*параметр*)
h := 0.5 (*параметр*)
k := 1.5*Pi (*параметр*)
L := Pi^2 - k^2
Eps := 1/100 (*параметр*)
u0[x_]:=Eps*(1-x)*x (*начальное значение*)
w1 := Sqrt[2]*Sin[Pi*x]
b := 1 (*параметр*)
control1[g_] := (1/2)*(Abs[g + 1] - Abs[g - 1]);

(*Сама диффура, решение*)
sol1 = NDSolve[{D[u[x, t], t] ==
D[u[x, t], {x, 2}] + (k^2)*u[x, t] -
b*w1*control1[(L*(1 + Exp[-L*h])*
Integrate[
u[x, t]*w1, {x, 0, 1}])
/(b*(1 - Exp[-L*h]))],
u[0, t] == 0, u[1, t] == 0, u[x, 0] == u0[x]},
u, {x, 0, 1}, {t, 0, T}][[1]];
Nu1[x_, t_] := Evaluate[u[x, t] /. sol1[[1]]];

(*Построение графика решения*)
ppu1 = Plot3D[Nu1[x, t], {x, 0, 1}, {t, 0, T},
AxesLabel -> {"x", "t", None}, PlotLabel -> "y(x,t)",
DisplayFunction -> Identity, PlotRange -> All]

Вопросы:
1) насколько адекватно посчитает всё это Mathematica, а именно, как она относится в интегралу внутри диффуры?
2) Я слышала, что нежелательно мешать численные и аналитические вычисления. Я пробовала ставить вместо Integrate NIntegrate, но в этом случае программа начинает сильно ругаться. Почему? В том варианте, который сейчас представлен, всё вроде считается, но вот насколько адекватно, не понятно... =(
3) Какой метод по умолчанию использует Mathematica для вычисления интегралов численно и аналитически, для решения дифференциальных уравнений в частных производных, и для ОДУ.
4) Чем отличается "=" от ":=" до сих пор не могу понять, объясните, пожалуйста.