Просто? Передача сообщений в Mathematica 7 - PullRequest
1 голос
/ 22 июня 2010
Uu[z_,x_,t_] := A1[z]*F[t*a*x]
Wu[z_,x_,t_] := B1[z]*F[t*a*x]
Pu[z_,x_,t_] := C1[z]*F[t*a*x]
eq1 = D[Uu[z,x,t],t]==-R*D[Pu[z,x,t],x];
C1z = DSolve[eq1,C1[z],z];
eq2 = D[Wu[z,x,t],t]==-R*D[Pu[z,x,t],z]/.C1z[[1]]

Назначение /.C1z[[1]] не ведет себя так, как я ожидаю. Я не уверен даже в том, как называется этот феномен (что делает поиск в нем довольно сложным).

C1z содержит правильное значение для C1 [z] в терминах констант и A1 [z], но когда я пытаюсь «подключить его» к eq2, оно, похоже, не работает.

Спасибо за вашу помощь.

1 Ответ

4 голосов
/ 22 июня 2010

Это не работает, потому что ничто не соответствует вашему правилу замены.

Если вы посмотрите на значение eq2 до подстановки правила, вы заметите, что нет подвыражения, соответствующего C1[z], потому что производная D[Pu[z,x,t],z] вычисляется до того, как произойдет подстановка:

In[13]:= eq2a = D[Wu[z,x,t],t]==-R*D[Pu[z,x,t],z]
Out[13]= a x B1[z] F'[a t x]==-R F[a t x] C1'[z]

C1'[z], возможно, не имеет полной формы выражения, которую вы ожидаете, поэтому замена на C1[z] после получения производной не делает то, что вы хотите:

In[14]:= FullForm[C1'[z]]
Out[14]//FullForm= Derivative[1][C1][z]

Может быть, вы имели в виду что-то вроде этого:

In[15]:= eq2=D[Wu[z,x,t],t]==-R*D[Pu[z,x,t]/.C1z[[1]],z]
Out[15]= a x B1[z] F'[a t x]==(x F[a t x] A1'[z])/t

НТН!

...