2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 delpde в Mathematica 7
Сообщение22.02.2011, 18:50 


18/11/08
13
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 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
 i  Тема перенесена из математического раздела в Околонаучный софт

 Профиль  
                  
 
 Re: delpde в Mathematica 7
Сообщение23.02.2011, 10:51 


01/12/06
463
МИНСК
В суть дела не вникал. Но, что у Вас делает $y$ в правой части и по чем дифференцируются функции $Gr$ и $Gl$.

 Профиль  
                  
 
 Re: delpde в Mathematica 7
Сообщение23.02.2011, 18:23 


18/11/08
13
Да, ошибка. но в программе я её исправила. Математика 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 


01/12/06
463
МИНСК
Скорее всего, ошибка в этом условии $Gl[1, t] == 0$. Наверное, должно быть $Gl[-1, t] == 0$.

 Профиль  
                  
 
 Re: delpde в Mathematica 7
Сообщение23.02.2011, 22:21 
Аватара пользователя


15/01/06
200
Константы, которые в уравнениях присутствуют, численно заданы?

 Профиль  
                  
 
 Re: delpde в Mathematica 7
Сообщение23.02.2011, 22:37 


18/11/08
13
Тогда получается вот что:
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 


01/12/06
463
МИНСК
Приведите полностью код с определением констант и функций.

 Профиль  
                  
 
 Re: delpde в Mathematica 7
Сообщение24.02.2011, 18:26 


18/11/08
13
Вот целиком код:

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 


01/12/06
463
МИНСК
Судя по всему, проблема в функциях $Nr,Nl$. Попробуйте их интерполировать.

 Профиль  
                  
 
 Re: delpde в Mathematica 7
Сообщение25.02.2011, 11:34 


18/11/08
13
Андрей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 


01/12/06
463
МИНСК
Девушка, внимательнее надо быть. У Вас во втором и третьем уравнениях вместо $Gst$ стоит $Gs$. Сейчас решается, но все же выдает выдает сообщения. Возможно, Вы где-то еще в уравнениях ошиблись. В последнем уравнении, вероятно, должна быть производная от функции по $x$.

 Профиль  
                  
 
 Re: delpde в Mathematica 7
Сообщение27.02.2011, 00:39 


18/11/08
13
Даа, слона-то я и не приметила. Спасибо, Андрей.
А производной по x в последнем быть не должно.

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

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group