【问题标题】:Solving set of differential equations in Maple with boundary conditions用边界条件求解 Maple 中的一组微分方程
【发布时间】:2012-03-14 08:50:54
【问题描述】:

我正在尝试求解一组耦合微分方程,并且我想用 Maple 检查我的一些推导。但是,我没有得到正确的合成器。

我尝试在一个简单的案例中重现我的问题,如下所示:

restart;
e1:=diff(P(y),y,y,y,y)=0;
e2:=diff(Q(x,y),y,y)=0;
dsolve([e1,e2]);
cond:=P(0)=0;
dsolve({e1,cond});
dsolve({e1,e2,cond});
dsolve({e1,e2,cond},[P,Q]);

所以这些现在是解耦的,并且很容易解决。但是,出于某种我不太明白的原因,我被 Maple 卡住了。

对于以下情况(从上面可以看出),Maple给了我一个解决方案

  • 在没有边界条件的情况下求解两个方程。
  • 使用边界条件求解第一个方程。

现在当我将两者结合起来时,我会收到一条错误消息

错误,(在 dsolve 中)发现以下方程不依赖于 输入系统的未知数:{diff(diff(Q(x, y), y), y) = 0}

如果我明确地将 P 和 Q 定义为未知数(我将其作为提示)(参见代码的最后一行)

错误,(在 dsolve 中)收到 {Q} 的指示作为未知的 问题,找到了相关函数{Q(x, y)},不依赖于 {y}。请明确指定未知 {Q} 的功能

备注

  • 如果我仅在 e2 中将 Q 定义为 y 的函数,则 dsolve 语句有效,但这不是我想要的
  • 我已经研究过 pdsolve,但到目前为止没有任何运气。即我试过pdsolve({e1,e2,cond}); 但是这没有给出错误消息,也没有输出。
  • 我在网上搜索了一些我收到的错误消息,但不幸的是,这并没有让我进一步了解。
  • 如果 y 将 e1 中的 P 定义为 x 和 y P(x,y) 的函数并设置 cond:=P(x,0)=0,则 dsolve 不会给出任何输出。

我要解决的问题

我要解决的实际问题如下。

d^4 P(y) / dy^4 = 0
d^2 Q(x,y) / dy^2 = 0
P(y=0) = 0

如何在 Maple 中通过一个命令解决此问题? 我知道答案应该是

P(y) =1/6 C1 y^3 + 1/2 C2 y^2 + C1 y
Q(x,y) = F1(x) y + F2(x)

非常感谢任何提示/建议!

【问题讨论】:

    标签: maple differential-equations


    【解决方案1】:

    这里的问题完全是程序和数学问题。

    考虑第一个错误:

    错误,(在 dsolve 中)发现以下方程不依赖于输入系统的未知数:{diff(diff(Q(x, y), y), y) = 0}

    这告诉你的是你有一个恒定的关系。从字面上看,你的函数Q(x,y) 的一阶导数是一些常数C,并且进一步尝试找出下一个导数炸弹,因为你已经尽可能低了。完全迂腐,the evaluation should be zero,,但这似乎不是 Maple 支持的情况。

    第二条错误消息似乎在告诉您,当您将 PQ 定义为未知数时,您仍然没有将真正的未知数 y 绑定到求解器。这也会导致 Maple 难度。

    我认为,如果我们看到您对 Q(x,y) 的定义,我们会很快发现,至少根据 Maple 的说法,该函数实际上并不依赖于 x 的任何值。这就是造成您的部分困难的原因。

    此外,我完全不清楚您为什么要调用 diff,因为获取两个函数的导数和二阶导数似乎不是您想要做的。也许这些应该替换为dsolve,您的条件指定为here

    【讨论】:

    • 感谢您的友好回答。这里可能有一些误解,因为我没有任何功能PQ。我有这组(目前)想用 IC 求解的非耦合方程。我用diff 定义了DE。我还使用D() 定义了它们,但这给了我相同的结果。事实上,Q 不依赖于x,所以积分常量应该是x 的函数。所以Qy 的一阶导数应该是C(x),而不仅仅是C。这是 Maple 在单个 DE 案例中所做的,但在耦合集中,它不能(另见我的编辑)
    • 我明白了。因此,您正在尝试直接使用这些函数的导数来求解您的 ODE。对困惑感到抱歉。 -- 问题是,当您在第一个示例中调用 dsolve 时,x 在您的 DE 中仍然未绑定。回到 Maple 对{diff(diff(Q(x, y), y), y) = 0} 的评价,或许就像用x 定义P 一样简单,这样评价就变成了{diff(diff(Q(x, y), y), x) = 0}?这似乎是一个简单的变量命名和依赖问题。
    • 不一定,取决于你的函数的绑定和它的未知数的绑定。但是,我想知道。当您通过运行dsolve(e2,e1,cond) 对术语重新排序时会发生什么情况? The documentation 似乎期待这种排序,并且条款的解包同意。
    • 这实际上是一个很好的建议,它只给了我这个错误:Error, (in ODEtools/info) Required a specification of the indeterminate function
    • 对于e2,指定您希望解决的未知数。 Here's the documentation you need。我相信这会变成:e2:=diff(Q(x,y),y,y)=0,x,如果不确定确实只是x
    猜你喜欢
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 2021-01-29
    • 1970-01-01
    相关资源
    最近更新 更多