2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 delpde в Mathematica 7
Сообщение22.02.2011, 18:50 
NDSolve::delpde: Delay partial differential equations are not currently supported by NDSolve.
на вот такие команды:
eqn6 = eps D[Gr[x, t], t] == -k1 Gr[x, t] + k2 Nr[x, t] Gs[x, t] - D[Gr[x, y]];
eqn7 = eps D[Gl[x, t], t] == -k1 Gl[x, t] + k2 Nl[x, t] Gs[x, t] + D[Gl[x, y]];
eqn8 = eps D[Gs[x, t], t] == k1 (Gl[x, t] + Gr[x, t]) - k2 (Nl[x, t] + Nr[x, t])Gs[x, t];

NDSolve[{eqn6, eqn7, Gr[-1, t] == 0, Gl[1, t] == 0, Gr[x, 0] == 0, Gl[x, 0] == 0 /. Gs[x, t] -> (k1 (Gl[x, t] + Gr[x, t]))/(k2 (Nr[x, t] + Nl[x, t]))}, {Gr[x, t], Gl[x, t]}, {x, -1, 1}, {t, 0, 1}]

Где здесь уравнения с задержкой??
Можно ли эту систему решить в математике 7 или 8?

 
 
 
 Re: delpde в Mathematica 7
Сообщение22.02.2011, 19:15 
Аватара пользователя
 i  Тема перенесена из математического раздела в Околонаучный софт

 
 
 
 Re: delpde в Mathematica 7
Сообщение23.02.2011, 10:51 
В суть дела не вникал. Но, что у Вас делает $y$ в правой части и по чем дифференцируются функции $Gr$ и $Gl$.

 
 
 
 Re: delpde в Mathematica 7
Сообщение23.02.2011, 18:23 
Да, ошибка. но в программе я её исправила. Математика 8 решает delpde, но сообщает уже о другой ошибке:

eqn6 = eps D[Gr[x, t], t] == -k1 Gr[x, t] + k2 Nr[x, t] Gs[x, t] - D[Gr[x, t], x];
eqn7 = eps D[Gl[x, t], t] == -k1 Gl[x, t] + k2 Nl[x, t] Gs[x, t] + D[Gl[x, t], x];
eqn8 = eps D[Gst[x, t], t] == k1 (Gl[x, t] + Gr[x, t]) - k2 (Nl[x, t] + Nr[x, t]) Gst[x, t];

sol678 = NDSolve[{eqn6, eqn7, eqn8,
Gr[-1, t] == 0, Gl[1, t] == 0, Gst[-1, t] == 1/64,
Gr[x, 0] == 0, Gl[x, 0] == 0 , Gst[x, 0] == 0.5 (x^2 + 1)^(-k1)},
{Gr[x, t], Gl[x, t], Gst[x, t]}, {x, -1, 1}, {t, 0, T}]

NDSolve::ndnum: Encountered non-numerical value for a derivative at t == 0.`. >>

Деления на ноль нет ( t=0 исправлялся и на машинный ноль и на 0.1).
Не могу понять, то ли где-то символ затесался - но переменные и функции, входящие в уравнения определены и считаются. И условия тоже вроде для тех переменных, для которых надо.

 
 
 
 Re: delpde в Mathematica 7
Сообщение23.02.2011, 21:49 
Скорее всего, ошибка в этом условии $Gl[1, t] == 0$. Наверное, должно быть $Gl[-1, t] == 0$.

 
 
 
 Re: delpde в Mathematica 7
Сообщение23.02.2011, 22:21 
Аватара пользователя
Константы, которые в уравнениях присутствуют, численно заданы?

 
 
 
 Re: delpde в Mathematica 7
Сообщение23.02.2011, 22:37 
Тогда получается вот что:
NDSolve::pdord: Some of the functions have zero differential order so the equations will be solved as a system of differential-algebraic equations. >>

NDSolve::ndnum: Encountered non-numerical value for a derivative at x == -1. >>

замена -1 на -0.9 дает то же самое

 
 
 
 Re: delpde в Mathematica 7
Сообщение23.02.2011, 23:41 
Приведите полностью код с определением констант и функций.

 
 
 
 Re: delpde в Mathematica 7
Сообщение24.02.2011, 18:26 
Вот целиком код:

c1 = 0.1; c2 = 90; c3 = 10; c4 = 0.1; eps = 0.025; k1 = 5; k2 = 20; T= 10;

n[g_] = c1 + c2 g/(c3 + g);
v[g_] = c4/(c4 + g);
l[a_, b_] = (a - b)/(a + b);

eqn1 = D[Pr[x, t], t] == D[Pr[x, t], x] + n[G[x, t]];
eqn2 = D[Pl[x, t], t] == -D[Pl[x, t], x] + n[G[x, t]];
eqn3 = D[Mr[x, t], t] == D[v[G[x, t]] Mr[x, t], x] + n[G[x, t]];
eqn4 = D[Ml[x, t], t] == -D[v[G[x, t]] Ml[x, t], x] + n[G[x, t]];

eqn6 = eps D[Gr[x, t], t] == -k1 Gr[x, t] + k2 Nr[x, t] Gs[x, t] - D[Gr[x, t], x];
eqn7 = eps D[Gl[x, t], t] == -k1 Gl[x, t] + k2 Nl[x, t] Gs[x, t] + D[Gl[x, t], x];
eqn8 = eps D[Gst[x, t], t] == k1 (Gl[x, t] + Gr[x, t]) - k2 (Nl[x, t] + Nr[x, t]) Gst[x, t];

G[x_, t_] = 0.5 (1 + x^2)^(-k1);


sol1 = NDSolve[{eqn1, Pr[1, t] == 0, Pr[x, 0] == 1 - x}, Pr[x, t], {x, -1, 1}, {t, 0, T}, PrecisionGoal -> 3]

sol2 = NDSolve[{eqn2, Pl[-1, t] == 0, Pl[x, 0] == x + 1}, Pl[x, t], {x, -1, 1}, {t, 0, T}, PrecisionGoal -> 3]

sol3 = NDSolve[{eqn3, Mr[1, t] == 0, Mr[x, 0] == 2 - 2 x},Mr[x, t], {x, -1, 1}, {t, 0, T}, PrecisionGoal -> 2]

sol4 = NDSolve[{eqn4, Ml[-1, t] == 0, Ml[x, 0] == 2 x + 2}, Ml[x, t], {x, -1, 1}, {t, 0, T}, PrecisionGoal -> 2]

rr[x_, t_] = Evaluate[Mr[x, t] /. sol3];
rrr[x_, t_] = Evaluate[Pr[x, t] /. sol1];
ll[x_, t_] = Evaluate[Ml[x, t] /. sol4];
lll[x_, t_] = Evaluate[Pl[x, t] /. sol2];
Nl[x_, t_] = Integrate[(ll[y, t][[1]] - lll[y, t][[1]]), {y, -1, x}];
Nr[x_, t_] = Integrate[(rr[y, t][[1]] - rrr[y, t][[1]]), {y, x, 1}];

sol678 = NDSolve[{eqn6, eqn7, eqn8,
Gr[-1, t] == 0, Gl[1, t] == 0, Gst[-1, t] == 1/64,
Gr[x, 0] == 0, Gl[x, 0] == 0, Gst[x, 0] == 0.5 (x^2 + 1)^(-k1)},
{Gr[x, t], Gl[x, t], Gst[x, t]}, {x, -1, 1}, {t, 0, T}]

 
 
 
 Re: delpde в Mathematica 7
Сообщение24.02.2011, 23:19 
Судя по всему, проблема в функциях $Nr,Nl$. Попробуйте их интерполировать.

 
 
 
 Re: delpde в Mathematica 7
Сообщение25.02.2011, 11:34 
Андрей123 в сообщении #416981 писал(а):
Судя по всему, проблема в функциях $Nr,Nl$. Попробуйте их интерполировать.

Если их убрать из уравнений для $Gst, Gr, Gl,$ то все равно появляется эта ошибка.

eqn6 = eps D[Gr[x, t], t] == -k1 Gr[x, t] + k2 Gs[x, t] - D[Gr[x, t], x];
eqn7 = eps D[Gl[x, t], t] == -k1 Gl[x, t] + k2 Gs[x, t] + D[Gl[x, t], x];
eqn8 = eps D[Gst[x, t], t] == k1 (Gl[x, t] + Gr[x, t]) - 2 k2 Gst[x, t];

 
 
 
 Re: delpde в Mathematica 7
Сообщение25.02.2011, 15:52 
Девушка, внимательнее надо быть. У Вас во втором и третьем уравнениях вместо $Gst$ стоит $Gs$. Сейчас решается, но все же выдает выдает сообщения. Возможно, Вы где-то еще в уравнениях ошиблись. В последнем уравнении, вероятно, должна быть производная от функции по $x$.

 
 
 
 Re: delpde в Mathematica 7
Сообщение27.02.2011, 00:39 
Даа, слона-то я и не приметила. Спасибо, Андрей.
А производной по x в последнем быть не должно.

Теперь считает и при этом считает невероятно долго - я так и не дождалась конца. Но нет никакого вывода - то есть ошибок вроде нет.

Я так понимаю, что при зацикливании программа прерывается?
Можно ли как нибудь увеличить скорость в ущерб точности, типа параметра PrecisionGoal?

 
 
 [ Сообщений: 13 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group