замена функции

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

Модератор: Admin

Andrey
Сообщения: 667
Зарегистрирован: Пн июн 10, 2002 2:05 pm

замена функции

Сообщение Andrey » Чт окт 04, 2012 6:34 am

Друзья! Вот такой вопрос. Предположим, есть дифференциальное уравнение:

Код: Выделить всё

pde = d D[c[x], {x, 2}] + r D[c[x], {x, 1}]
и предполагается, что его решение такое:

Код: Выделить всё

cl = c0 (1 + (1 - k)/k Exp[-(r/d) x])
Нужно проверить, отвечает ли решение диффуру.

Сейчас пока делается так:

Код: Выделить всё

pde /. {c[x]->cl, D[c[x],x]->D[cl,x], D[c[x],{x,2}]->D[cl,{x,2}]}
т.е. в списке замены каждая производная прописывается отдельно. А можно ли заменить сразу функцию, чтобы от нее производные сами брались в процессе замены?

Markiyan Hirnyk
Сообщения: 1355
Зарегистрирован: Вс дек 04, 2011 11:07 pm

См. Help

Сообщение Markiyan Hirnyk » Чт окт 04, 2012 12:37 pm

Посмотрите Help/Documentation Center/ Наберите в Search Dsolve , не DSolve >> Check the Results of DSolve
In[1]:=PDE = D[u[x, y], x] + Sin[x]*D[u[x, y], y] == x^2;
In[2]:=sol = DSolve[PDE, u, {x, y}]
Out[2]= {{u -> Function[{x, y}, 1/3 (x^3 + 3 C[1][y + Cos[x]])]}}
In[3]:= Simplify[PDE /. sol]
Out[3]= {True}

Andrey
Сообщения: 667
Зарегистрирован: Пн июн 10, 2002 2:05 pm

Сообщение Andrey » Чт окт 04, 2012 12:58 pm

Код: Выделить всё

pde /. {c->Function[x,cl]}
Странно, вроде так делал, и не получалось. Значит, не совсем так делал. СПАСИБО ОГРОМНОЕ!

Andrey
Сообщения: 667
Зарегистрирован: Пн июн 10, 2002 2:05 pm

Сообщение Andrey » Чт ноя 15, 2012 8:24 pm

Действительно не совсем так делал, про Evaluate надо не забыть

Код: Выделить всё

pde /. {c->Function[x,cl//Evaluate]}