首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pyomo DAE工具箱不能适当地离散域

Pyomo DAE工具箱不能适当地离散域
EN

Stack Overflow用户
提问于 2017-08-18 15:41:41
回答 1查看 108关注 0票数 0

我使用Pyomo工具箱来求解一个偏微分方程,并且一个自变量(例如m.x)的区域长度非常小(比如1e-6)。

在我看来,DAE工具箱不能适当地对域进行离散,因为离散的m.x只有两个点(我使用ContinuousSet.get_finite_elements()方法来检查),即使我在选项中指定了10个有限元点(参见下面的代码)。

代码语言:javascript
运行
复制
m.x = ContinuousSet(bounds=(0, 1e-6))

disc=TransformationFactory('dae.finite_difference')
disc.apply_to(m, nfe=10, wrt=m.x, scheme='BACKWARD')

我将m.x的上限增加为

代码语言:javascript
运行
复制
m.x = ContinuousSet(bounds=(0, 1e-5))

并试图再次谨慎行事。这一次我在x域得到10分。

但是,当我增加有限元点的数量时,

代码语言:javascript
运行
复制
m.x = ContinuousSet(bounds=(0, 1e-5))
disc.apply_to(m, nfe=100, wrt=m.x, scheme='BACKWARD')

返回的离散域x仍然有10分。

我想知道是否有一个1e-6容忍或限制DAE工具箱。如果有,我如何自定义这个值?

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-28 14:26:06

是的,当前对域长度有限制。离散化变换目前将新的离散点转换为6小数点。这是因为我看到同样的离散点被多次添加的问题,因为浮点四舍五入的差别很小。正如@QtotheC所提到的,最好的解决方案是修改缩放,使ContinuousSet的边界在(0,1)附近。

要包含的小数点数目前并不是用户可以修改的选项,但是您始终可以进入源代码并更改数字这里这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45760414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档