【问题标题】:Solving complex valued differential equations and dealing with branch cuts求解复值微分方程和处理分支割
【发布时间】:2014-07-25 21:12:44
【问题描述】:

我将为初始条件 x=-2-2i 求解 dx/dt=sqrt(1+(i*x)^3),并绘制 x 的实部与虚部。我期待得到一个封闭的轮廓。但是,我得到的只是实际情节的不完整部分。谁能帮我在 Matlab 或 Mathematica 中解决这个问题? 在此先感谢

【问题讨论】:

    标签: matlab wolfram-mathematica complex-numbers differential-equations


    【解决方案1】:

    花点时间想象一下,某个没有回头看你的人正在看着你的屏幕并阅读原始问题描述。仅根据您上面的书面描述,他们能算出多少?

    现在,这是否接近您可能看到的解决方案?

    In[1]:= f=x[t]/.NDSolve[{x'[t]==Sqrt[1+(I x[t])^3],x[0]== -2 -2I}, x[t], {t,0,1.2}][[1]]; 绘图[{Re[f], Im[f]}, {t, 0, 1.2}]

    NDSolve::mxst:在点 t == 1.08993270437 处达到的最大 10000 步数。 >>

    Out[2]= ...PlotSnipped...

    解决方案似乎在 1.09 处爆发?为什么会在那里爆炸?那是你的情节变得不完整了吗?

    我猜错了范围吗?我猜错了初始条件吗?不知道。

    这还没有尝试做 ContourPlot,仍然只是想看看解决方案可能是什么样子。

    【讨论】:

    • 感谢您的回答。你得到了正确的问题,除了我期望在 x 轴上绘制 Re[f] 和在 y 轴上绘制 Im[f] 。您也可以尝试一个更简单且可分析解决的情况,其中 dx/dt=sqrt[1-x^2] 和 x 又是一个复杂的参数。解完这个方程后,你会得到一个椭圆。但是对于原始问题,还有一个复杂性,我认为它与复平面中的分支切割有关。你知道在 Mathematica 中处理它们的实用方法吗?
    • 我了解到您正在尝试进行演示。我正在尝试获得正确的解决方案并将其介绍给您。这个 DSolve[x'[t] == Sqrt[1 + (I x[t])^3], x[t], t] 如果我不包括您拥有的初始条件并且您可以= InverseFunction[Hypergeometric2F1[1/3,1/2,4/3,I #1^3] #1 &][ t]; Plot[{Re[f], Im[f]}, {t, -2, 2}] 但我认为我们还没有找到正确的解决方案让您开始考虑演示。
    猜你喜欢
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 2018-02-08
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 2013-10-11
    相关资源
    最近更新 更多