python 中具有无限初始条件的 ODE

2024-01-12

我有一个二阶微分方程,我想用 python 求解它。问题是对于其中一个变量我没有初始条件0但仅限于无穷大的值。谁能告诉我应该提供哪些参数scipy.integrate.odeint?能解决吗?

Equation: enter image description here

Theta 需要根据时间来找到。它的一阶导数等于零t=0。 θ 未知于t=0但在足够长的时间内它会变为零。其余的一切都是已知的。作为一个近似值I可以设置为零,从而消除二阶导数,这将使问题变得更容易。


这远不是一个完整的答案,但根据OP的要求发布在此处。

我在评论中描述的方法就是所谓的拍摄方法 http://en.wikipedia.org/wiki/Shooting_method,允许将边值问题转换为初始值问题。为了方便起见,我将重命名您的函数theta as y。要以数值方式求解方程,您首先需要使用两个辅助函数将其转换为一阶系统,z1 = y and z2 = y',所以你当前的方程

I y'' + g y' + k y = f(y, t)

将被重写为系统

z1' = z2
z2' = f(z1, t) - g z2 - k z1

你的边界条件是

z1(inf) = 0
z2(0) = 0

因此,首先我们设置函数来计算新向量函数的导数:

def deriv(z, t) :
    return np.array([z[1],
                     f(z[0], t) - g * z[1] - k * z[0]])

如果我们有一个条件z1[0] = a我们可以用数值方法解决这个问题t = 0 and t = 1000,并得到值y最后一次就像这样

def y_at_inf(a) :
    return scipy.integrate.odeint(deriv, np.array([a, 0]),
                                  np.linspace(0, 1000, 10000))[0][-1, 0]

所以现在我们需要知道的是a makes y = 0 at t = 1000,我们可怜人的无限,与

a = scipy.optimize.root(y_at_inf, [1])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 中具有无限初始条件的 ODE 的相关文章

随机推荐

  • 如何在 Flash 应用程序中创建退出按钮

    我正在创建一个 Flash 应用程序 该应用程序将导出到exe格式 它不会在浏览器中运行 我想在舞台内添加一个退出按钮 但我不知道如何使用 ActionScript 3 来做到这一点 我记得这是可能的fscommand在 ActionScr
  • Chef 中的动态角色属性

    我想要厨师食谱network interfaces为我的每个节点提供 IP 地址 网络掩码等的动态值 对我有用的是以下内容 db role rb 块1 override attributes network interfaces gt de
  • XBMC/KODI 添加插件时出错“结构不正确”

    我正在关注 KODI XBMC hello world 插件教程here http kodi wiki view HOW TO HelloWorld addon我从下载了完成的项目here https github com zag2me p
  • 实际 javascript 练习的资源 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 python 中精确复制 R 文本预处理

    我想使用 Python 预处理文档语料库 就像在 R 中一样 例如 给定一个初始语料库 corpus 我希望最终得到一个与使用以下 R 代码生成的语料库相对应的预处理语料库 library tm library SnowballC corp
  • 图像加载不适用于 IE 8 或更低版本

    我的目的是检查图像是否已成功加载 它在现代浏览器中运行良好 但在 IE8 或 7 中这是一个可怕的问题 这是示例代码 var img new Image url http something com images something gif
  • 按名称获取角色(discord.py 重写)

    我的 Discord 机器人有问题 我想创建一个具有支持者角色读取权限的文本通道 但我不想使用role id 因此 我尝试使用以下代码 但无法创建任何频道 supporter role discord utils get Supporter
  • 有没有办法观察 i18n 当前语言环境的变化?

    使用 i18n 时 当语言 区域设置发生变化时 如何调用函数 我应该使用 Vuex 还是vue i18n https kazupon github io vue i18n 有一种方法可以让我这样做吗 你可以看 i18n locale对于任何
  • Google Chrome:垂直滚动条在某些网页上消失,可能是由于奇怪的工具栏

    我的一位客户在查看我们网站上的某些页面时遇到问题 具体来说 它是垂直滚动条 在某些页面上消失 她使用的是 Google Chrome 正如下面的截图所示 Chrome 还有一个奇怪的工具栏 在第一张图片上 滚动没有问题 http i45 t
  • 仅显示上周创建的帖子

    我希望能够显示帖子并按几个标准对它们进行排序 首先是它们的投票数量 其次是它们的创建日期 我不希望显示一周以上的帖子 因此只显示上周的帖子 我尝试这样做 但它给了我一个 NilClass 与 2 比较失败的错误 我知道代码的工作原理只是按投
  • Gtk.CssProvider() 基于 ID 的选择器在 Gtk3 中如何工作?

    我已经断断续续地摆弄这个问题好几天了 但似乎无法解决可能出现的问题 本质上 我正在尝试使用 CSS 样式声明在 Gtk3 中设置一些 Gtk Widget 的样式 没有什么复杂的 只是尝试通过其 id 名称来定位特定元素 Gtk CssPr
  • 确定运行时 JVM 可执行文件的位置

    如何在运行时获取当前运行的 JVM 的可执行文件的位置 我想使用 ProcessBuilder 类将另一个 JVM 实例化为子进程 我知道有java home系统属性 但这并不指定 JVM 可执行文件的位置 我知道我可以做这样的事情来获取路
  • 如何让异步流返回两个数据源

    我有以下函数 它返回标准输出数据 作为异步流 该数据是由运行System Diagnostics Process 当前该方法中的所有内容都按预期工作 我可以用await foreach 循环 我得到由外部 exe 生成的每一行输出 priv
  • 不同组件中的垫菜单和按钮

    I have
  • 在 PL/SQL 中使用带有“LIKE %”的变量(例如“variable%”)?

    问题类似于使用LIKE in SQL PLUS 其中 select 语句包含LIKE条款如下 select from sometable where somecolumn LIKE something 如何在游标中使用相同的内容 我尝试使用
  • scipy.io.wavfile.read 返回的数据是什么意思?

    的文档scipy io wavfile read说它返回采样率和数据 但在这种情况下 数据实际上意味着什么 wav files 谁能用通俗的语言告诉我这些数据是如何准备的 附言 我在某处读到这意味着振幅 我读到的内容正确吗 如果是 那么该幅
  • Android Studio - 1.5.11 之前的 IBus 可能会导致输入问题。有关详细信息,请参阅 IDEA-78860 [重复]

    这个问题在这里已经有答案了 Android Studio 1 5 Build AI 141 2422023 built on November 12 2015 我刚刚更新了我的Android Studio on Ubuntu 15 10当它
  • MVC5 - 数据注释 - 客户端验证没有发生?

    我有一个 MVC 5 应用程序 我使用数据注释来进行大部分验证 我的班级中的属性之一如下所示 Required ErrorMessage Please enter a business name StringLength 80 public
  • 如何从选项卡排序列表中排除小部件?

    此图来自Qt官网 我以此为例 我想避免一些不重要的小部件以选项卡为中心 如果您有一个小部件想要在一些常用的之间快速旋转 则此策略非常有用QLineEdit输入数据并转义那些很少使用的设置 Take the picture as an exa
  • python 中具有无限初始条件的 ODE

    我有一个二阶微分方程 我想用 python 求解它 问题是对于其中一个变量我没有初始条件0但仅限于无穷大的值 谁能告诉我应该提供哪些参数scipy integrate odeint 能解决吗 Equation Theta 需要根据时间来找到