首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >modelica不能应用'Modelica.Math.Nonlinear.solveOneNonlinearEquation‘的原因

modelica不能应用'Modelica.Math.Nonlinear.solveOneNonlinearEquation‘的原因
EN

Stack Overflow用户
提问于 2022-05-27 13:41:07
回答 1查看 83关注 0票数 2

我的Modelica模型的模拟在一开始就被中止了,原因如下:

代码语言:javascript
复制
The arguments u_min and u_max provided in the function call
    solveOneNonlinearEquation(f,u_min,u_max)
do not bracket the root of the single non-linear equation 0=f(u)

fa and fb must have opposite sign which is not the case

在模拟开始时计算的fa值和fb值确实是相同的。我查找了Modelica试图调用的函数,但我不确定是否理解Modelica引发此错误的原因。如果有人向我解释为什么这个函数Modelica.Math.Nonlinear.solveOneNonlinearEquation需要相反的符号对fa和fb,以及什么会导致fa和fb有相同的符号,我会非常高兴。您将帮助我更深入地了解Modelica是如何工作的。

提前谢谢你的帮助,保罗

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-30 06:29:21

为了给出一些关于完全正确的评论的更多细节:

函数Modelica.Math.Nonlinear.solveOneNonlinearEquation查找函数f的输出跨越值为零的点。这一点被称为函数的“根”。一个函数可以有一个根,也可以有多个根。根的数目可以取决于搜索间隔。

当函数在间隔的两个边框上都有相同的符号时,函数中可能没有根,这就是返回错误的原因。有可能有一个偶数的根,但这是不能保证的。然而,在边界上有相反的标志并不能保证只有一个根。

例如:当将间隔设置为-5,5时,窦房结(可作为Modelica.Math.Nonlinear.Examples.UtilityFunctions.fun4)将有三个零交叉口。

因此,寻找-55之间的根,有三个正确的解决方案,并且不清楚哪个是返回值。呼叫:

Modelica.Math.Nonlinear.solveOneNonlinearEquation(function Modelica.Math.Nonlinear.Examples.UtilityFunctions.fun4(), -5,5);

将返回0,但值也可能是+pi-pi

相反,找出不同限制的根-5,-1。

Modelica.Math.Nonlinear.solveOneNonlinearEquation(function Modelica.Math.Nonlinear.Examples.UtilityFunctions.fun4(), -5,-1);

会给出-3.141592653589793,这是唯一的解决方案,给出的限制。

最后,对-4,2做同样的操作

Modelica.Math.Nonlinear.solveOneNonlinearEquation(function Modelica.Math.Nonlinear.Examples.UtilityFunctions.fun4(), -4, 2);

将触发您得到的错误:

代码语言:javascript
复制
The arguments u_min and u_max provided in the function call
    solveOneNonlinearEquation(f,u_min,u_max)
do not bracket the root of the single non-linear equation 0=f(u):
  u_min  = -4
  u_max  = 2
  fa = f(u_min) = 0.756802
  fb = f(u_max) = 0.909297
fa and fb must have opposite sign which is not the case

为了不触发错误,您需要确保在模拟的所有点上,极限处的值都有相反的标志。

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

https://stackoverflow.com/questions/72406353

复制
相关文章

相似问题

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