1
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 在常数和 A1[z] 方面确实保持 C1[z] 的正确值,但是当我尝试将其“插入”eq2 时,它似乎不起作用。

谢谢您的帮助。

4

1 回答 1

4

这不起作用,因为没有任何内容符合您的替换规则。

如果您查看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

于 2010-06-22T03:40:49.567 回答