matrix - Python:如何用雅可比行有效地解决 DAE?
问题描述
我正在尝试使用 Assimulo 包来求解一组微分代数方程 (DAE)。我正在尝试使用类似于此处显示的算法。但是,似乎没有传递稀疏矩阵的选项。我的雅可比矩阵非常大,大约 3000 x 3000。你知道是否有一种方法可以更有效地解决我的 DAE 问题吗?
解决方案
根据我对稀疏 ODE 系统(更准确地说是半离散 PDE 系统)的经验,使用迭代线性求解器可以大大提高数值效率。据我所知,Assimulo 不允许提供雅可比稀疏模式,但更改线性求解器是解决此问题的另一种方法。
你会做这样的事情:
model = Explicit_Problem(ode_function, y0=y_init, t0=t_init)
simulator = CVode(model)
sim.linear_solver = 'SPGMR'
我不确定这是否也适用于 DAE 系统,但我认为值得一试。
推荐阅读
- php - Laravel 项目在 localhost 上运行良好,但在 live 上显示“500 Internal Server Error”或错误配置错误(到 xyz.com/lara)
- python-3.x - 如何从python中的字符串创建日期时间索引?
- python - 如果我输入重复值,如何显示消息抛出 html 页面抛出 html 页面而不显示错误消息
- android - 找不到参数的方法 implementation() [com.google.firebase:firebase-core:16.0.9]
- javascript - 如何字符串到 React Native 组件
- spring - 我可以使用 github pages 来托管使用 Spring framework(.jsp) 制作的网页吗?托管 github 页面
- seq - 达芙妮。证明一个区间的所有值都出现在 seq 中
- python - Django 和 folium 集成返回“无”
- python - Pyhon Django有什么问题?/ 'NoneType' 对象没有属性 'page_range'
- powershell - 每天备份 QVD 文件并在删除第一代之前保存三个版本