Вопросы возникают потому, что я хочу использовать решение одного PDE в качестве начального условия для решения другого. Так как в NDSolve решение дается InterpolatingFunction, я должен использовать InterpolatingFunction во втором PDE. Это возможно? Почему мой компьютер работает вечно?
Мой код:
(*********************Parameters********************)
\[Gamma] = 10^(-5);
T = 500;
tm = -250;
\[Sigma] = 100;
L = 1;
L0 = -(L/2);
L1 = L0 + L;
c = 29.979;
\[Omega] = 1.32949/10^8;
\[Eta] = 1539.1;
\[Mu] = 6.27;
\[Beta] = 0.1334;
k = 40895.3;
(*********************1st PDE********************)
solS = NDSolve[{D[sS[z, t], t] == (-(\[Gamma] + I*\[Beta]*z))*sS[z, t]-I*\[Omega]*aS[z, t],
D[aS[z, t], z] + (1/c)*D[aS[z, t], t] == (-I)*\[Eta]*k*sS[z, t], sS[z, -T] == 0,
aS[z, -T] == E^(-((-T - tm)^2/(2*\[Sigma]^2))),
aS[L0, t] == E^(-((t - tm)^2/(2*\[Sigma]^2)))}, {sS, aS}, {z, L0, L1}, {t, -T, 0},
MaxSteps -> Infinity]
(*************take the result and plot**************)
iniR = solS[[1]][[1]][[2]]
Plot3D[Re[iniR[z, t]], {z, L0, L1}, {t, -T, 0}, PlotRange -> All]
(***********2nd PDE, with the 1st result as ini. con.***********)
solR = NDSolve[{D[sR[z, t], t] == (-(\[Gamma] - I*\[Beta]*z))*sR[z, t] - I*\[Omega]*aR[z, t],
D[aR[z, t], z] + (1/c)*D[aR[z, t], t] == (-I)*\[Eta]*k*sR[z, t],
sR[z, 0] == iniR[z, 0], aR[z, 0] == 0, aR[L0, t] == 0}, {sR, aR}, {z, L0, L1},
{t, 0, T}, MaxSteps -> Infinity]