Уравнение:
переменная: z, t
хочу: S = S (z, t), A = A (z, t)
параметр: a, b, c
i - это sqrt (-1)
d - оператор частной производной
dS / dt = -i* a * z * S - i * b * A
(д / дз + с * д / дт) A = -i * S
Граничное условие:
сигма - ширина импульса
тм - центр импульса
при z = 0,
A(1, t) = (0,398942 / сигма) * exp (- ((t-tm). ^ 2) / (2 * сигма ^ 2)) (импульс Гаусса)
при z = 1, границаусловие не ясно.Ожидается, что будет около 0. Если я использую Mathematica, то нет необходимости указывать это граничное условие.На самом деле эта граница является целью решения этого pde.
Исходное условие:
при t = 0,
S = 0
A = 0 (около 0. Это должен быть край указанного выше гауссова импульса)
Я пытался решить этот набор pde с помощью pdepe.Результат показывает:
???Ошибка при использовании ==> daeic12 на 77. Кажется, что этот DAE имеет индекс больше 1.
Мой вопрос: может ли pdepe решать такие команды?
× ×××××××××××××××××××××××××××××××××××××××××××××××××××Чххххххххххххххххххххххх
Детали: измените уравнение в виде:
[1;c]. * d / dt [S;A] = d / dz [0;-A] + [-i * a * z * Si * b * A;-i * S]
Тогда мой код для уравнения: (имя параметра изменено, не долго называются a, b и c)
function [ c,f,s ] = myPdeNoDecay( z,t,u,dudz)
LoverzetacT = 6.712414322355693e-05;
betaLT = 66.713366022882500;
omegayetaksbarLT = 4.183966095613130e+02;
c = [1;LoverzetacT];
f = [0;-u(2)];
s = -1i*[betaLT.*z.*u(1)+omegayetaksbarLT.*u(2);u(1)];
end
Граничное условие:
function [ pl,ql,pr,qr ] = myPdeNoDecayBC( xl,ul,xr,ur,t )
tm = 0.5; %ns, Normalized central time of the pulse
sigma = 0.1; %ns, Normalized width of the pulse, 10^-7s
pl = [ul(2)-iniShape(t,sigma,tm);0];
ql = [0;0];
pr = [0;0];
qr = [0;0];
end
function [G] = iniShape(t,sigma,tm)
G = (0.398942/sigma)*exp(-((t-tm).^2)/(2*sigma^2));
end
Исходное условие:
function [ u0 ] = myPdeNoDecayIC( x )
u0 = [0;0];
end
Основная функция:
clear
close all
tlist = 0:0.05:1;
zlist = 0:0.05:1;
LoverzetacT = 6.712414322355693e-05;
betaLT = 66.713366022882500;
omegayetaksbarLT = 4.183966095613130e+02;
tm = 0.5; %ns, Normalized central time of the pulse
sigma = 0.1; %ns, Normalized width of the pulse, 10^-7s
m = 0;
sol = pdepe(m,@myPdeNoDecay,@myPdeNoDecayIC,@myPdeNoDecayBC,zlist,tlist);
figure('numbertitle','off','name','my PDE with no decay or two-ph detuning')
subplot(211);
surf(zlist,tlist,sol(:,:,1));
title('The solution of S');
xlabel('z');
ylabel('t');
zlabel('S(z,t)');
title('The solution of a');
xlabel('z');
ylabel('t');
zlabel('a(z,t)');
Ошибка:
???Ошибка при использовании ==> daeic12 на 77
Этот DAE имеет индекс больше 1.