关于偏微分方程组mathematica或matlab编程求解,有没有简单点的办法,方程见图

学习 时间:2026-04-02 08:35:17 阅读:8348
关于偏微分方程组mathematica或matlab编程求解,有没有简单点的办法,方程见图谢啦

最佳回答

任性的小懒虫

整齐的小鸭子

2026-04-02 08:35:17

只会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线性增加的温度随时间变化图了。非齐次项的引入是完全类似的。读懂了我的代码的话,你就该知道怎么加了。

最新回答共有2条回答

  • 帅气的大象
    回复
    2026-04-02 08:35:17

    只会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线性增加的温度随时间变化图了。非齐次项的引入是完全类似的。读懂了我的代码的话,你就该知道怎么加了。

上一篇 试剂是否一定是液体?

下一篇 野百合有什么象征意义