在 C++ 中传递参数到 boost odeint

2024-04-27

This https://stackoverflow.com/questions/33856910/passing-runtime-parameters-to-odeint-integrator/答案很有帮助,但我想知道如何将不同类型的多个参数传递给 ODE 模型,也许是在结构中。对于我的直接用例,我需要能够通过一个std::array<double, 6>, two std::vector<std::vector<double>>和两个两个double总共要传递四个参数的标量。在链接的示例中以及谐波振荡器.cpp https://github.com/headmyshoulder/odeint-v2/blob/master/examples/harmonic_oscillator.cpp,只有一个double传递的参数。谢谢。

下面是我需要传递到 ODE 力模型并在速率方程中使用的结构示例。

struct T
{
    std::array<double, 6> IC;
    double S;
    double M;
    std::vector<std::vector<double>> C;
    std::vector<std::vector<double>> WT;
};

我相信我已经想出了一个可行的结构解决方案,但不确定它是否有任何变量/内存范围禁忌。这是一个例子:

#include <vector>
#include <boost/numeric/odeint.hpp>

// define structure
struct T
{
    std::array<double, 6> IC;
    double                S;
};

// force model
class harm_osc
{
    struct T T1;

public:
    harm_osc(struct T G) : T1(G) {}

    void operator() ( const std::vector< double > &x , std::vector< double > &dxdt , const double /* t */ )
    {
        dxdt[0] = x[1];
        dxdt[1] = -x[0] - T1.IC[0]*x[1] + T1.S;
    }
};

// print integrated state solution
void write_solution( const std::vector< double > &x , const double t )
{
    printf("%-6.2f %-6.2f %-6.2f\n", t, x[0], x[1]);
}

// problem setup
int main()
{

    std::vector< double > x(2);
    x[0] = 1.0;
    x[1] = 0.0;

    struct T T2;

    T2.IC = {0.15, 0.15, 0.15, 0.15, 0.15, 0.15};
    T2.S  = 0.0;

    harm_osc ho(T2);
    boost::numeric::odeint::integrate(ho, x, 0.0, 10.0, 0.1, write_solution);

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

在 C++ 中传递参数到 boost odeint 的相关文章

  • c++11 正则表达式比 python 慢

    嗨我想了解为什么以下代码使用正则表达式进行分割字符串分割 include
  • 如何使用 ASP.NET MVC 进行 HTTP 调用?

    我正在尝试做的事情 我试图练习进行 HTTP 调用 如果这就是它的名字 来自一个简单的 ASP NET MVC Web 应用程序 为此 我尝试从以下位置获取天气详细信息打开天气地图 http openweathermap org appid
  • 为什么在 C# 中成员初始值设定项中不允许这样做,但在 VB.Net Me 中允许

    我正在将 VB Net 应用程序转换为 C 并注意到在 VB Net 代码中 有一个私有成员变量 它是使用Me像这样 Private m ClassA As New MyCollection Of ClassA Me 当我将其转换为 C 代
  • 同步执行异步函数

    我对此主题进行了大量搜索 并且阅读了本网站上有关此主题的大部分帖子 但是我仍然感到困惑 我需要一个直接的答案 这是我的情况 我有一个已建立的 Winform 应用程序 但无法使其全部 异步 我现在被迫使用一个全部编写为异步函数的外部库 在我
  • 在桌面应用程序中,类库的连接字符串存储在哪里?我可以在app.config中使用吗?

    我是桌面应用程序开发的新手 目前正在使用分层架构 用户界面 DAL BLL 构建桌面应用程序 在 Web 开发中 我曾经将连接字符串存储在 web config 中 我的类库从那里访问它 请指导我在桌面应用程序中如何以及在何处存储 DAL
  • 使用 Selenium for C# 登录 Facebook

    我一直在使用 Selenium C 框架并尝试进行 facebook 登录 但没有任何运气 这是我到目前为止得到的 基于这篇文章 使用 Selenium 测试 Facebook Connect 应用程序 https stackoverflo
  • 具有多重继承的类的 sizeof

    首先 我知道 sizeof 取决于机器和编译器的实现 我使用的是 Windows 8 1 x64 gcc 5 3 0 没有标志传递给编译器 我从大学讲座中得到了以下代码 include
  • 返回指向 std::vector 中的对象的 a

    我有一个关于返回对向量元素的引用的非常基本的问题 有一个向量vec存储类的实例Foo 我想访问这个向量中的一个元素 不想使用向量索引 我应该如何编码该方法getFoo here include
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 套接字:监听积压并接受

    listen sock backlog 在我看来 参数backlog限制连接数量 这是我的测试代码 server initialize the sockaddr of server server sin family AF INET ser
  • 简单的文档管理系统和API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • .Net Core 中的脚手架以及解决方案中的多个项目

    我创建了一个针对 net461 的 Net Core MVC6 应用程序 我使用了一个我非常熟悉的项目结构 其中我将数据 模型和服务类放置在单独的类库项目中 并且 Web 项目引用这些项目 当我尝试搭建控制器时 我收到一条错误 指出我正在搭
  • C# 的空条件委托调用线程安全吗? [复制]

    这个问题在这里已经有答案了 这就是我一直以来编写事件引发者的方式 例如属性更改 public event PropertyChangedEventHandler PropertyChanged private void RaisePrope
  • Qt mouseReleaseEvent() 未触发?

    我有一个显示图片的库 我们称之为 PictureGLWidget 其中 class PictureGLWidget public QGLWidget 所以 PictureGLWidget 扩展了 QGLWidget 在PictureGlWi
  • System.diagnostics.process 进程在托管后无法在 IIS 上运行?

    我正在尝试从网络应用程序安装 exe 当我在本地运行应用程序 从 asp 开发服务器 时 它安装正确 但当我托管在 IIS 上时 它不起作用 我在asp net页面的Page load方法上编写了这段代码 想要在客户端计算机上安装Test
  • 需要使用 openssl 加密和解密文件的示例 C 代码

    我正在用 Linux C 编写代码 我需要使用以下命令来加密和解密文件 openssl 目前 我使用系统命令 des3 e nosalt k 0123456789012345 in inp file out out file 进行加密 使用
  • 如何将 Metro 应用部署到桌面?

    我正在尝试将我的 C 应用程序部署到我的 Windows 8 Metro 桌面 我可以在 bin 文件夹中看到部署的文件 但是当我尝试打开它们时 出现以下错误 该应用程序只能在 AppContainer 的上下文中运行 我检查了属性上下文菜
  • 将小数格式化为两位或整数

    对于 10 我想要 10 而不是 10 00 对于 10 11 我想要 10 11 没有代码可以实现吗 即通过指定格式字符串类似于 0 N2 decimal num 10 11M Console WriteLine num ToString
  • 在类中使用 std::chrono::high_resolution_clock 播种 std::mt19937 的正确方法是什么?

    首先 大家好 这是我在这里提出的第一个问题 所以我希望我没有搞砸 在写这篇文章之前我用谷歌搜索了很多 我对编码 C 很陌生 我正在自学 考虑到有人告诉我 只为任何随机引擎播种一次是一个很好的做法 我在这里可能是错的 什么是正确 最佳 更有效
  • 什么时候使用静态库需要头文件?

    如果我在 Linux 中用 C 创建一个静态库并生成 a 文件 我 或其他人 如何使用该库 例如 我的库定义了一个类 我认为仅仅提供 a 文件是不够的 还需要提供头文件 我如何知道 a 文件必须提供哪些头文件 例如 我是否需要提供我的库代码

随机推荐

  • 为什么我们不能在打字稿的类中使用 let 关键字

    我是 TypeScript 新手 我想知道为什么我们不能使用let类内变量声明的关键字 如下所示 提前致谢 class Greeter let greeting string constructor message string this
  • 使用 asyncio 处理超时

    免责声明 这是我第一次尝试asyncio module 我在用着asyncio wait通过以下方式尝试支持等待一组异步任务的所有结果的超时功能 这是一个更大的库的一部分 因此我省略了一些不相关的代码 请注意 该库已经支持提交任务并使用 T
  • 是否可以在控制器外部获取运行时的路线数据?

    我想知道是否有可能以某种方式获取控制器外部的路由值 这是我尝试过的 我也尝试过做 Values projectId 但我仍然得到null RoutePrefix projects public class UsergroupControll
  • 如何使用 ServiceStack JsonSerializer 序列化 ExpandoObject?

    是否可以让 ServiceStack JsonSerializer 将 ExpandoObject 序列化为平面对象而不是字典 大致类似于这样 x xvalue y Date 1313966045485 我正在尝试比较 JSON 序列化Ex
  • .NET 的 BBCode 或 wiki 标记库? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 您最喜欢用于处理以下任一问题的 NET 库是什么 BBCode http en wikipedia org wiki BBCode markup
  • 图标字体的正确字体显示值

    font display https www w3 org TR css fonts 4 font display desc是一个新的 CSS 属性 允许开发人员根据字体加载速度是否足够快来控制字体的呈现方式 已经有几篇文章介绍了 使用 f
  • 如何保证按一定顺序调用的AJAX请求得到相同顺序的响应?

    如何保证按一定顺序调用的AJAX请求得到相同顺序的响应 首先 请记住 服务器本身可能不会按照收到请求的顺序返回响应 想象一下 如果您首先触发一个复杂的 ajax 请求 然后触发一个简单的 ajax 请求 可能引用一些缓存的静态数据 第二个请
  • 如何使用 AndEngine (Android) 移动精灵对象

    我正在使用 andengine 在 android 中开发游戏 我在精灵中放置了一个对象 例如 this mTexture new Texture 32 32 TextureOptions BILINEAR PREMULTIPLYALPHA
  • 在 ubuntu 10 64 位上安装 java 时出错

    EDIT 我添加此注释是为了解释为什么我将这个问题保留在这里 我添加了 Android 作为关键字 我想知道其他人是否尝试过下载代码以及如何解决此问题 我担心如果我问 Ubuntu 他们会建议我使用 OpenJDK 但问题是 有人使用该 S
  • Tkinter:尝试点击离开时窗口闪烁

    我已经尝试这样做有一段时间了 但还没有找到方法 我有一个 tkinter 脚本 当按下按钮时会创建一个弹出窗口 但是 我不希望用户能够从该窗口单击到之前创建的任何窗口 我已经使用 root grab set 进行了此操作 但是没有任何迹象表
  • 如何在 Laravel 5.4 中将 base64 转换为图像?

    我正在 Laravel 5 4 中开发 api 我将收到 Base64 格式的图像 如何在 Laravel 中将 base64 转换为图像 该解决方案将处理所有图像类型 image request gt input image image
  • 将 Spring Boot Web 应用程序与 Pivotal TC Server 结合使用

    我从 Spring Tool Suite 内部将项目重构为 Spring Boot 应用程序 所有文档都展示了如何创建一个带有嵌入式 Tomcat 实例的自包含应用程序 该应用程序可以工作并且很棒 然而在此之前 我有自己的 Maven We
  • 使用 CSS 与使用列和行调整文本区域大小

    使用列和行调整文本区域大小与使用高度和宽度调整文本区域大小有什么区别
  • 如何将变量从一个 PowerShell 脚本加载到另一个?

    我有一个主脚本正在调用其他几个脚本 我需要将其他脚本中的变量加载到主脚本中 以便我可以将它们转储到 html 文件中 我尝试对我正在调用的脚本进行点采购 但这不起作用 或者我做错了什么 任何帮助 将不胜感激 脚本的示例部分 get clus
  • 在弹出窗口中打开 Google Play(如 Vimeo、Wisher、Buzzfeed)- 即时应用

    如何在 Wisher Buzzfeed Vimeo 等弹出窗口中打开 Google Play 我在看谷歌文档 https developer android com distribute marketing tools linking to
  • C# 以编程方式访问 Excel 宏

    我正在使用 Excel 文件的目录来获取有关每个文件的信息 我正在尝试使用 C Excel 互操作来收集有关与其中一些文件关联的 VBA 宏的信息 其代码如下 问题在于 所有 Excel 文件都没有启用对宏的编程访问 我可以在文件的本地副本
  • PHP - 如何替换 url 的特殊字符

    我正在尝试转换特殊字符 例如 我将使用它们来进行 GET 请求 我为此构建了一个函数 function convert text text t text specChars array gt 20 gt 21 gt 22 gt 23 gt
  • 如何将大于127的ASCII值发送到串口

    每当我将任何大于 127 的 ASCII 值发送到 com 端口时 我都会在串行端口上收到垃圾输出值 ComPort Write data 严格来讲ASCII http en wikipedia org wiki ASCII仅包含 128
  • 使用 WiX 将程序集放入 GAC 和安装路径中

    我刚刚开始学习如何使用 WiX 但遇到了障碍 我的软件包使用第三方库 该库要求 GAC 和软件包安装目录中都存在一些文件 使用 WiX 我可以使文件显示在安装目录或 GAC 中 但不能同时显示在两者中 有什么办法可以解决这个问题吗 这里有一
  • 在 C++ 中传递参数到 boost odeint

    This https stackoverflow com questions 33856910 passing runtime parameters to odeint integrator 答案很有帮助 但我想知道如何将不同类型的多个参数