使用 Gekko 求解方程组时,是否有办法处理零超零问题?

2023-12-20

我正在使用 gekko 来(尝试)求解方程组。我遇到一个问题,因为我的方程中的一项类型是m.asin(q1.T@q2)/m.sqrt(1-(q1.T@q2)**2), where q1 and q2是 R3 中的单位向量。当它们方向相同时,分子和分母为零。当我解决这个系统时fsolve我用过一个if-返回0的语句if q1.T@q2 == 1,因此永远不会有问题。据我了解这里if- 陈述很糟糕,因为我们需要方程的微分。我调查了m.if3一点,并尝试过,但这没有帮助。例如,它引入了松弛变量,导致自由度变为负值,系统无法求解。

有什么想法可以克服 gekko 的 0 比 0 问题吗?


您可以使用m.abs3()函数通过引入整数变量提供了一种解决方法。该方法比传统的abs方法更适合,因为它是连续可微的,并且避免导致基于梯度的优化器无法收敛。

from gekko import GEKKO
m = GEKKO()

q1 = m.Const(3)  # Unit vector in R3
q2 = m.Const(4)  # Unit vector in R3

# Using m.abs3() to handle zero over zero issue
asin_term = m.abs3(m.asin(q1.T @ q2) / m.sqrt(1 - q1.T @ q2))

# Add other equations and solve the model
m.Equations([asin_term])
m.solve()

Using m.abs3()可能会引入额外的整数变量,这可能会增加模型的复杂性。您应该根据您的具体问题和要求,权衡使用此方法和其他替代方法(例如 if 语句)之间的权衡。

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

使用 Gekko 求解方程组时,是否有办法处理零超零问题? 的相关文章

  • 能源系统的 Python GEKKO MINLP 优化:如何构建 2D 数组的中间体

    我目前正在 Python GEKKO 中实现 MINLP 优化问题 以确定三联产能源系统的最佳运行策略 当我将不同代表日的所有时段的能源需求作为输入数据时 基本上我所有的决策变量 中间变量等都是二维数组 我怀疑 2D 中间体的声明是我的问题
  • go float 零除编译器错误

    这种行为有何意义 只打印编译器警告而不是错误不是更有意义吗 func main var y float64 0 0 var x float64 4 0 y fmt Println x Inf func main var x float64
  • GEKKO 的轨迹规划器无法处理给定的目标速度

    我已经为 GEKKO 的车辆设置了轨迹规划器 所以基本上我使用了非线性的运动学单轨模型 一切正常 直到我到达零件 当我给出不等于 0 的目标速度时 我可以毫无问题地给出所有其他目标状态 x 位置 y 位置 转向角和偏航角 但是如果我给出目标
  • 控制范围和预测范围

    我已经回顾了模型预测控制的参考书目和 Gekko 编程结构 尽管我了解它的编程方式及其目的 例如 我想了解 Gekko 如何根据 Seborg 中的相关内容来管理控制范围和预测范围之间的差异 我看不出代码有什么区别 下面是一个用于说明的 M
  • 1/0 是合法的 Java 表达式吗?

    以下内容在我的 Eclipse 中编译良好 final int j 1 0 compiles fine throws ArithmeticException by zero at run time Java 从一开始就阻止了许多 哑代码 的
  • 线性规划 - 等于表达式符号的变量

    我正在尝试编写一个线性程序 需要一个等于 x c 符号的变量 z 其中 x 是另一个变量 c 是常数 我考虑过z x c x c 不幸的是 如果 x c 则会除以 0 我不能使用 z x c 因为我不想通过 x 和 c 之间的差异大小来对其
  • 关于 GEKKO 中条件语句('m.if3')的问题

    我想在 GEKKO 代码中添加一些条件语句 我用 m if3 添加了以下语句 但是 它返回了语法错误 如果没有条件语句 我就不会出现这种错误 R1 1 m if3 R1 GEKKO m GEKKO remote False print m
  • Gekko 长期性能

    在下面的代码中 全年 PV 斜率优化 每小时时间步长 CSV 数据下载link https drive google com file d 172HaD87t9V PDElMER4MwDaWyuCZ3KA5 view usp sharing
  • 除以零不会导致 Nvidia Jetson 上的运行时异常

    我不太熟悉 ARM 处理器的内部细节 但我不明白我的 Nvidia Jetson Nano 开发板上的以下行为 C 代码示例 main c include
  • 如何在 GEKKO GUI 中显示解决方案?

    我想探索 GEKKO Web GUI 用于可视化结果的功能 如中所述https www researchgate net publication 326740143 GEKKO optimization suite https www re
  • 从 Schittkowski DAE 测试套件中求解 PENDULUM2?

    我只是试图解决 Schittkowski DAE 测试套件中的 DAE 问题之一 http klaus schittkowski de mc dae htm http klaus schittkowski de mc dae htm 但没有
  • 我可以忽略除以零产生的 SIGFPE 吗?

    我有一个程序故意执行除以零 并将结果存储在易失性变量中 以便在某些情况下停止 但是 我希望能够禁用此停止 而不更改执行除以零的宏 有什么办法可以忽略它吗 我尝试过使用 include
  • 在 Python 中划分 2 个列表时如何处理列表推导式中除以零的异常

    在 Python 中划分 2 个列表时 如何处理列表推导式中除以零的异常 从下面的例子来看 from operator import truediv result list map truediv i for i in list1 j fo
  • 优化求和函数 - GEKKO

    我刚刚开始学习优化 在寻找以下问题的最佳值时遇到一些问题 注意 这只是我想到的一个随机问题 没有实际应用 Problem where x可以是列表中的任何值 2 4 6 并且y介于 1 和 3 之间 我的尝试 from gekko impo
  • 为什么整数除以零会导致浮点异常?

    C 程序中除以零会导致异常终止并显示错误消息Floating point exception core dumped 这对于浮点除法来说并不奇怪 但是当整数除以零时为什么会这样说呢 整数除法实际上在幕后使用了 FPU 吗 顺便说一句 这都是
  • Pandas/numpy 加权平均 ZeroDivisionError

    创建 lambda 函数来计算加权平均值并将其发送到字典 wm lambda x np average x weights df loc x index WEIGHTS Define a dictionary with the functi
  • 使用 GEKKO python 时的负自由度

    我正在尝试解决上述优化问题 我的代码如下 它有效 但我得到了负自由度问题 而且客观价值也是负数 这是我没想到的 我期待着积极的一面 我不明白为什么会发生这种情况 也不知道如何解决这个问题 有人可以给我一个建议吗 Code Import pa
  • 为什么 0 除以 0 会出错?

    我在代码中进行的计算中遇到了这个问题 如果除数也为 0 则除数为 0 在我的代码中 对于这种情况我返回 0 我想知道 虽然除以零通常是未定义的 但为什么不为这种情况破例呢 我的理解为什么除以零是未定义的基本上是它不能逆转 然而 我在 0 0
  • 我可以在 Gekko 的设计优化过程中使用隐式目标函数吗?这个隐式函数是一个创建数值模型的子程序

    我正在使用 Abaqus 进行抗震结构系统设计的优化 我打算使用 Gekko 来达到这个目的 但似乎我在写下有关此任务的合适语法时犯了错误 Objective 是负责创建Abaqus数值模型 分析模型 处理结果和计算罚函数的子程序的名称 目
  • 如何在 GEKKO 中实现 OR 约束

    我有一个优化问题 我必须找到给定电机的最低成本 并且存在一个限制 即电机要么运行 要么不运行 但如果它运行的话 它必须达到其功率范围的下限 我将包含我的代码 以展示我所尝试的内容 from gekko import GEKKO power

随机推荐

  • 如何找到文本框中光标的位置? C#

    我有一个标准的 WinForms TextBox 我想在文本中的光标位置插入文本 如何获取光标的位置 Thanks 无论是否选择任何文本 选择开始 http msdn microsoft com en us library system w
  • ASP.Net MVC 中通过 ajax 传递列表

    我想通过 AJAX 传递列表 我怎样才能做到这一点并在运行时赋值 我正在这样做 但它传递了空值 这是我的代码 JQuery for var i 0 i lt 5 i aabc id i color Level i var str2 aabc
  • 使用 LINQ 连接两个列表

    我有两个列表 list1 和 list2 列表1包含 1 a 2 b 3 c 4 d 列表2包含 3 c 4 d 5 e 我想要使 用 LINQ 以下列表 1 a 2 b 3 c 4 d 5 e List1 Concat List2 Whe
  • 在命令行上运行的 C++ 代码覆盖工具[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何根据设备屏幕尺寸调整集合视图单元格的大小?

    我注意到单元格总是遵循尺寸检查器中的定义 即使我已经应用了 UICollectionViewDelegateFlowLayout 看起来就是这样 但我希望这些单元格看起来更像更小的 iPhone 屏幕上的样子 实施sizeForItemAt
  • 使用实体框架的最小存储库实现

    我正在尝试在我的应用程序中实现最小的通用存储库模式 我有一个非常小的界面用于查询和保存数据 public interface IRepository IQueryable
  • 反应子/父组件 - onChange 事件只接受一个字符并且不保留值

    在 ReactJS 中 在我的子组件中 输入 gt 文本上的 onChange 事件仅采用一个值 并且不会在每次按键时保留先前的值 我正在尝试捕获子表单中的输入 并希望将其传输给父表单 实际上 我正在尝试重用子表单来创建和编辑页面 我的完整
  • 如何使用 TailwindCSS 禁用环形阴影?

    这就是我的问题的样子 见环 看图 https i stack imgur com RLCE0 png 使用Chrome的inspector发现与 tw ring shadow 所以我尝试添加类ring 0 and ring offset 0
  • 如何在 JavaFX 8 中创建自定义 3D 模型?

    我尝试使用官方教程在 JavaFX 应用程序中制作一架飞机 并有以下代码 Image diifuseMap new Image getClass getResource t jpg toExternalForm TriangleMesh p
  • Django:如何在给定实际值和选择的情况下访问模板中 ChoiceField 的显示值?

    我有一个绑定形式的 ChoiceField 其选择是 all All users group Selected groups none None 在模板中 我可以毫无问题地访问其绑定值 要存储的实际值 每个元组的第一个元素 和选择 有了这些
  • PayPal + RESTful API + WebHooks + 自签名证书

    我一直在使用 PayPal 的 REST API 并且能够毫无问题地处理销售 退款等 但我在网络钩子方面遇到了问题 我在沙箱中配置了一个 webhook 它从不将信息发布到 webhook URL 甚至不尝试根据访问日志 由于 wbehoo
  • webapp 和 web.py 之间的区别

    Webpy org 谁使用 web py http webpy org web py 启发了 Web 框架 我们在 FriendFeed 和 网络应用程序中使用 App 附带的框架 引擎 布雷特 泰勒 FriendFeed 联合创始人和原创
  • 如何从远程 php 脚本响应获取二进制文件?

    我正在调用一个脚本 该脚本为我提供了一个带有二进制数据的二进制文件 12345 cl 脚本已完成 并且正在运行 如果我将其粘贴到导航器上 我会得到二进制文件 现在我有一个问题 如何将脚本的响应转换为二进制资源以在我的应用程序中使用它 目前
  • 在 LaTeX Beamer 中调整矩阵大小

    您好 我想知道如何在投影仪环境中调整矩阵大小 目前我正在编写以下代码 begin align left begin array ccccccc 0 1 1 0 0 1 1 0 ddots 0 1 1 0 end array right
  • 较新版本的 JRE 不会加载音库,但较旧版本会加载

    我有以下代码尝试加载音库 我已经使用 JRE 1 6 03 和 1 6 43 在 Windows 7 上测试了代码 旧版本的 JRE 1 6 03 工作正常 但新版本会引发异常 这是怎么回事 public Main try Synthesi
  • 在 Material MatDialog 中动态加载组件

    谁能提供一个如何将组件动态加载到 Material MatDialog 中的示例 我想做的是 我将为 MatDialog 配置数据提供一个组件类型 然后对话框将创建一个实例并将其放置在其 mat dialog content 区域内 看来我
  • 显示当前目录内容的便携方式

    我想在期间向用户提供附加信息restart case缺少输入文件 有没有一种便携式方法可以打印当前目录中的文件 请看一下文件系统概念 http clhs lisp se Body 20 a htm 特别是在directory http cl
  • 多线程参考? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 这个问题的答案是社区努力 help privileges edit community wiki 编辑现
  • 隐藏空
  • 我想隐藏所有 li 如果它们是空的或者里面有空格 li li 我这样做是这样的 li empty filter function i v return trim v text length 0 css display none 这是错误的语
  • 使用 Gekko 求解方程组时,是否有办法处理零超零问题?

    我正在使用 gekko 来 尝试 求解方程组 我遇到一个问题 因为我的方程中的一项类型是m asin q1 T q2 m sqrt 1 q1 T q2 2 where q1 and q2是 R3 中的单位向量 当它们方向相同时 分子和分母为