衍生品警告没有意义

2023-12-30

我收到以下形式的警告:

DerivativesWarning:Constraints or objectives ['traj.linkages.stage_1_grav_turn:alpha_final|coast_1:alpha_initial', 'traj.phases.stage_1_maneuver.path_constraints.path:q_alpha'] cannot be impacted by the design variables of the problem.

不知道第一个约束是什么,即链接约束。 Alpha是grav_turn和coast阶段的一个参数,它设置为0。第二个没有意义,因为在stage_1_maneuver阶段alpha是一个控制,所以你绝对可以控制动态压力* alpha。也许是因为该阶段结束时的 alpha 被限制为 0?

无论如何,优化器收敛得很好,并产生看起来正确且在交叉检查时有意义的结果。只是对此感到好奇。


在 OpenMDAO V3.9.0 中添加了一个功能,可以检测全导数雅可比行列式中全 0 的行和列。一行全 0 表示目标或约束不受任何设计变量的影响。全 0 的列表示设计变量不会影响任何约束或目标值。

这两种情况都可能存在问题。 0 列意味着自由度比您想象的要少,因为 DV 不会影响任何东西。这并不是致命的,但仍然值得警告用户。

0 行的问题要大得多。如果该行与约束相关联,则意味着优化器无法满足该约束。您可能会“幸运”,发现约束恰好在初始条件下满足约束,因此您可以从技术上解决优化问题(您的具体情况可能就是其中之一)。然而,从数学上讲,这个问题是单一的,除非您使用的优化器有特定的代码来处理这个极端情况,否则事情可能会变得困难。

添加此功能的主要原因之一是 OpenMDAO 开发团队注意到 Dymos 用户在添加链接和路径约束时特别容易意外创建 0 行。通常这些 0 行似乎不会造成伤害,但我们肯定也看到过它们给优化器带来影响的情况。 该警告可帮助您识别问题,以便您可以纠正它。

在本例中,看起来您有两个单独的 0 行。

  1. traj.linkages.stage_1_grav_turn:alpha_final|coast_1:alpha_initial意味着您提供给优化器的任何设计变量都不会影响该约束。这可能意味着您已经指定了两者alpha_final and alpha_initial分别为fixed_final和fixed_initial。你可以侥幸逃脱,因为你提供的初始条件必须具有两个相同的 alpha 构造。 您最好还是删除约束,或者添加至少连杆的一端或另一端作为设计变量。

  2. traj.phases.stage_1_maneuver.path_constraints.path:q_alpha意味着路径约束中至少有一个条目不受任何 DV 的影响。它可能不是整个路径约束,而只是它的一端是固定的,因为它是根据固定的边界条件计算的。在这种情况下,您只需将索引添加到add_path_constraint https://openmdao.github.io/dymos/api/phase_api.html调用以从约束中排除第一个或最后一个点。

由于您的优化正在运行,因此 0 行不会杀死您。然而,清理它是一个很好的做法。现在没有它们可能会提高性能,或者可能会避免将来出现优化“神秘地”停止工作的情况,因为您以某种方式触发优化器无法再处理 0 行的情况。

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

衍生品警告没有意义 的相关文章

  • Symfony2 JSON 响应返回奇怪的 UTF 字符

    这是我的控制器方法 public function sendjsonAction message this gt getDoctrine gt getRepository AcmeStoreBundle Message gt findAll
  • 不明确的隐式值是我们想让错误存在于编译时的唯一方法吗

    trait Foo trait Bar extends Foo def doStuff T lt Foo x T implicit ev T Foo x doStuff new Foo ambiguous implicit value do
  • 如何在 IE 中翻转网站? (4月1日)

    我们正在办公室进行 4 月 1 日的恶作剧 并希望明天将我们的公司网站翻转几个小时 我的补丁在任何地方都有效 但在 IE 中无效 任何人都可以帮忙吗 尝试这个 http msdn microsoft com en us library ms
  • 非负集减法

    这适用于任何语言 但我会在节点中实现它 我有一组整数 以及一个需要从该组总和中减去的值 4 5 6 7 8 25 如果我们均匀地减去每个数字 我们会得到 1 0 1 2 3 但是 我不希望任何小于 0 的数字 因此 如果我编写一个算法来执行
  • Rails 生成 has_many 关联

    有没有办法使用以下方法为列生成 has many 关联Rails generate scaffold控制台中的命令 I know belongs to可用并且有用例references但不确定has many 没有用于 a 的列has ma
  • 粘页脚失败

    我正在尝试使页脚正确 但遇到问题 我能够将页脚保持在页面底部 但很快意识到当窗口变小时 它最终会覆盖内容 我可以通过取消position absolute来解决这个问题 但是如果我这样做 页脚将不再停留在页面底部 我已经尝试了很多不同的方法
  • MATLAB 中冒号运算的组合

    我有一个关于 MATLAB 中冒号运算符和向量扩展的问题 我的问题是理解以下代码行如何扩展 以便能够将其用于其他序列 MATLAB 代码行是 a 1 2 5 1 4 7 注意a扩展前未定义 这返回向量 a 1 0 3 0 7 我知道冒号运算
  • WinForms 拖放中的 e.Data.GetData 转换问题

    我试图在程序的两个实例之间进行拖放 但是当我尝试将数据转换为我的类型时 它会抛出无效的转换异常 这是代码 protected virtual void GetDropIEntities DragEventArgs e foreach str
  • 无法理解字符串排列 Java 代码

    我有这个工作代码可以打印字符串排列而无需重复 但无法理解它在逻辑上是如何工作的 任何建议都会非常有帮助 private static void permutation String input String sofar if input e
  • 使用 AutoMapper 和 DI 容器实例化类型

    请看下面的代码 public class Test ITest public ITest2 iTest2 public int id public string name public Test ITest2 test2 iTest2 te
  • JPQL avg 聚合函数是否适用于整数?

    我有一个名为的 JPA 2 实体Surgery 它有一个名为输血单位那是一个Integer 数据库中有两个条目 执行此 JPQL 语句 Select s transfusionUnits from Surgery s 产生预期结果 2 3
  • 如果在多台计算机上使用 Test-Connection 和 -Quiet,我如何知道哪个结果适用于哪台计算机?

    如果在多台计算机上使用 Test Connection 和 Quiet 我如何知道哪个结果适用于哪台计算机 e g computers PC1 PC2 PC3 results Test Connection ComputerName com
  • 为什么这些错误属性不显示在键下?

    看来是从Object getOwnPropertyNames 与 Object keys https stackoverflow com questions 22658488 object getownpropertynames vs ob
  • 代码运行时的 ASP.NET 应用程序日志/进度条

    我正在我的 ASP 表单 Web 应用程序中构建 OCR 扫描模块 您可能知道 这样的操作可能需要一些时间 因此 我使用后台服务应用程序来响应运行代码的消息队列 因此用户甚至不必停留在同一网页上 我想做的是通知用户服务运行时发生了什么 如果
  • 如何使用 CSS 反转颜色?

    HTML div p inverted color p div CSS div background color f00 p color how to use inverted color here in relation with div
  • Rust 中的严格别名?

    我的理解是 由于所谓的 严格别名规则 以下代码在 C 中具有未定义的行为 include

随机推荐

  • C++ 中条件变量的常见用途是什么?

    我正在尝试了解条件变量 我想知道使用条件变量的常见情况有哪些 一个示例是在阻塞队列中 其中有两个线程访问队列 生产者线程将一个项目推入队列 而消费者线程从队列中弹出一个项目 如果队列为空 则消费者线程将等待 直到生产者线程发送信号 还有哪些
  • 如何在Python中获取方法名称

    我一直在尝试获取此方法中的方法名称 我在堆栈上发现了关于获取名称的类似问题function https stackoverflow com questions 251464 how to get a function name as a s
  • StringBuilder 附加 vs +

    这两行有什么区别 stringBuilder append Text counter more text stringBuilder append Text append counter append more text 假设 counte
  • 我无法从 vscode 访问 github 存储库

    我是 Git 新手 我尝试将其与 VSCode 集成 但出现此错误 git clone https github com vijaypatneedi DS git f VS Code DSA DS Cloning into f VS Cod
  • 如何告诉 PyTorch 不使用 GPU?

    我想在 CPU 和 GPU 之间进行一些时序比较以及一些分析 并且想知道是否有办法区分pytorch questions tagged pytorch不使用GPU而只使用CPU 我意识到我可以安装另一个仅 CPUpytorch questi
  • Django 模板/视图与轮播的问题

    好的 交易是这样的 这就是我目前正在做的事情 看到顶部的两个箭头了吗 这就是图片轮播应该在的地方 然而 这个轮播中没有图片 也就是说 直到我单击 上传 按钮 所以 我的目标是在我点击 上传 按钮之前让图片出现在第一页上 我该如何解决这个问题
  • mongo dbname --eval 'db.collection.find()' 不起作用

    为什么这有效 mongo dbname MongoDB shell version 1 8 3 connecting to nextmuni staging gt db collection find foo bar gt bye 虽然这不
  • --disable-web-security 在 Chrome 中工作吗?

    我正在尝试做一个简单的测试 而不更改任何涉及的服务器端代码跨域 https developer mozilla org en US docs Web HTTP CORS AJAX调用 https www w3schools com xml
  • 如何使用cached_network_image预加载图像?

    我刚刚实现了 Flutter包cached network image我想知道如何预加载图像 以便稍后可以立即使用它们 我从我们的服务器检索稍后将使用的所有图像网址 我已经定义了自定义缓存管理器 getter class LocalCach
  • 如何在 Linux 中针对分段错误生成核心转储?

    我的 Linux 中有一个进程出现分段错误 我怎样才能告诉它在失败时生成核心转储 这取决于您使用的 shell 如果您使用的是 bash 则 ulimit 命令控制与程序执行相关的多个设置 例如是否应该转储核心 如果您输入 ulimit c
  • 仅当属性为 null 时,如何从 lombok 构建器中排除该属性

    我有一个用户模型类 如下所示 JsonSerialize Getter Setter FieldDefaults level AccessLevel PRIVATE Builder public class User Default Str
  • 基于 Python 中较小的数据集生成较大的综合数据集

    我有一个包含 21000 行 数据样本 和 102 列 特征 的数据集 我希望根据当前数据集生成一个更大的合成数据集 例如 100000 行 这样我就可以将其用于机器学习目的 我在这篇文章中提到了 Prashant 的答案https sta
  • 替换“/”之前的任何字符串,PHP

    我想替换 之前的任何字符串 无论字符串长度如何 谢谢 让 一种方式 假设您想更改第一个 之前的字符串 str anystring the rest blah s explode str s 0 new string print r impl
  • 谷歌浏览器本地存储保存在哪里?

    某些网站显示正在使用本地存储 在 Google Chrome 中 CTRL I 资源选项卡 本地存储 例如 StackOverflow 有一个 login prefs 键和我的默认登录提供程序 所以据我所知它是一个 json 对象 这些数据
  • Spring embeddeb 数据库表已存在错误

    我正在尝试使用嵌入式数据库运行 Spring Boot 应用程序 在 bean 初始化期间 由于某种原因 我的表创建脚本被调用两次 第二次调用失败 并出现 表已存在 错误 下面是我的代码 可能是什么问题 Configuration publ
  • MatLab - 将函数应用于矩阵中的每一行

    我有一个矩阵 行数为 4 个整数 列数未指定 取决于文本文件 我想独立地将函数应用于矩阵的每一行 该函数有 4 个输入和 2 个输出 我尝试使用 arrayfun 函数来执行此操作 但每当我调用该函数时 都会收到一条错误消息 输入参数不足
  • 如何在木偶上使用参数化正则表达式(例如/${user}/)进行测试?

    我需要获取用户的主目录 我决定通过解析 getent passwd 字符串来获取它 这是一个自定义事实构建为 内容的串联 etc passwd 并借助正则表达式提取相关信息 当我测试 getent带有固定字符串 adam 提取工程 if g
  • 如何在C#中使用Either类型?

    佐兰 霍瓦特 https www pluralsight com authors zoran horvat提议使用Either类型以避免空检查和不要忘记处理问题在执行操作期间 Either在函数式编程中很常见 为了说明其用法 Zoran 展
  • 如何对“新风格”Django 中间件进行单元测试

    我正在学习如何对 Django 中间件进行单元测试 在 旧式 中间件中 使用以下命令加载中间件非常容易process request 测试结果 例如 def test session self request self factory ge
  • 衍生品警告没有意义

    我收到以下形式的警告 DerivativesWarning Constraints or objectives traj linkages stage 1 grav turn alpha final coast 1 alpha initia