只会Mathematica。数值解的话可以用NDSolve。你给的条件还不足,需要补充边界条件,以及具体参数。一个小例子:
eqn = D[u[t, r], t] == D[u[t, r], r, r] + D[u[t, r], r]/r;
int = u[0, r] == 1;
bon1 = u[t, 0.1] == 1;
bon2 = u[t, 1] == 1 + t;
sol = NDSolve[{eqn, int, bon1, bon2}, u, {t, 0, 1}, {r, 0.1, 1}];
Plot3D[u[t, r] /. sol, {t, 0, 1}, {r, 0.1, 1}]
注意这里把0点给挖掉了,因为那里是奇点,而Mathematica对偏微分数值计算的此类地方要求比较严,不去掉的话运算会出错。这个就是个最简单的圆形分布的,外边界的温度随时间t线性增加的温度随时间变化图了。非齐次项的引入是完全类似的。读懂了我的代码的话,你就该知道怎么加了。