有效确定多项式是否在区间 [0,T] 内有根

2024-02-02

我有非平凡次数 (4+) 的多项式,需要稳健有效地确定它们是否在区间 [0,T] 中具有根。根的精确位置或数量与我无关,我只需要知道是否至少有一个。

现在我正在使用区间算术作为快速检查,看看是否可以证明不存在根。如果我不能,我使用 Jenkins-Traub 来解决all的多项式根。这显然效率低下,因为它会检查所有真实的根并找到它们的确切位置,而这些信息是我最终不需要的。

我应该使用标准算法吗?如果没有,在对所有根进行完整的 Jenkins-Traub 求解之前,我可以做任何其他有效的检查吗?

例如,我可以做的一项优化是检查多项式 f(t) 在 0 和 T 处是否具有相同的符号。如果不是,则区间中显然存在根。如果是这样,我可以求解 f'(t) 的根,并在区间 [0,T] 内的 f' 的所有根处评估 f。当且仅当所有这些评估具有与 f(0) 和 f(T) 相同的符号时,f(t) 在该区间内没有根。这将我必须求根的多项式的次数减少了 1。虽然不是一个巨大的优化,但也许总比没有好。


斯特姆定理 http://en.wikipedia.org/wiki/Sturm's_theorem让您计算范围内的实根数(a, b)。给定根的数量,您就知道是否至少有一个。从本文第 4 页的下半部分开始:

设 f(x) 为实多项式。用 f0(x) 表示它,用 f1(x) 表示它的导数 f′(x)。按照欧几里得算法进行求解

f0(x) = q1(x) · f1(x) − f2(x),
f1(x) = q2(x) · f2(x) − f3(x),
.
.
.
fk−2(x) = qk−1(x) · fk−1(x) − fk,

其中 fk 是常数,对于 1 ≤ i ≤ k,fi(x) 的次数低于 fi−1(x) 的次数。余数的符号与欧几里得算法中的符号相反。

请注意,最后一个非零余数 fk(或当 fk = 0 时为 fk−1)是最常见的 f(x) 和 f′(x) 的除数。序列f0,f1,。 。 ., fk (或 fk−1,当 fk = 0 时)被称为多项式 f 的 Sturm 序列。

定理 1(斯图姆定理)多项式 f(x) 的不同实零点的数量 (a, b) 中的实系数等于序列 f0(a), ..., fk−1(a), fk 中符号变化次数除以序列中符号变化次数之差f0(b), ..., fk−1(b), fk。

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

有效确定多项式是否在区间 [0,T] 内有根 的相关文章

  • 计算撞击倾斜墙壁后的角度变化

    我正在用 javascript 制作一个游戏 其中一个物体应该从墙上反弹 我真的尝试让它自己工作 但它从来没有正常工作 假设有一个球在笼子内弹跳 蓝色 30 棕色 60 球的坐标是已知的 运动角度是已知的 碰撞点 P 坐标已知 墙的角度是已
  • 用于计算井字游戏独特状态的高效算法

    我正在尝试构建一个井字游戏来演示和实验机器学习算法 并且我发现了一个有趣的问题 例如 井字棋板可以是mirrored 但出于机器学习的目的 这两种状态是等效的 x o o x o o x x o o 同样地旋转 x o x o o o x
  • C# 小数取上限2

    我想将小数值四舍五入 例如 2 2222 到 2 23 当我使用圆形时 decimal a Math Round decimal 2 222 2 当我使用天花板时 会导致 3 decimal c Math Ceiling decimal 2
  • 笛卡尔坐标到极坐标

    看一下这里的例子 http www brianhare com physicals so html http www brianhare com physics so html 看一下 console log 我在其中使用了这两个主要函数
  • CSS Hex 到速记十六进制转换

    将十六进制转换为速记十六进制的正确算法是什么 例如 996633很容易被转换为 963 但如果是这样怎么办 F362C3 我的第一个猜测是我只取每种颜色的第一个值并使用它 所以 F362C3变成 F6C 但我不知道如何从数学上证明这种方法的
  • 帮助我在 Python 中实现反向传播

    EDIT2 新的训练集 Inputs 0 0 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 1 0 0 0 1 0 1 0 1 0 2 0 1 0 3 0 1 0 4 0 2 0 0 0 2 0 1 0 2 0 2
  • 3D 数学:根据“向上”和“向上”正交向量计算倾斜(滚动)角度

    我希望这是提出这个问题的正确位置和这个一样 https stackoverflow com questions 3035590 bank angle from up vector and look at vector 但表示为纯数学而不是图
  • 使用 boost 几何检查两条线是否有交点

    是否可以使用 boost geometry 检查两条线段 每条线段由二维中的两个点给出 是否彼此相交 如果可能的话 boost geometry 是否还允许检查特殊情况 例如另一条线上只有一个点 数字上 或者两条线相等 如果你具体谈论Boo
  • 指针 (*argv[]) 的指针的指针算术?

    我知道foo bar 等于 foo bar 但是什么是 foo bar 等于 例如访问 argv 2 我对这一点的理解有些困惑 我认为可能是这样的 foo bar 但我不确定 如果这是一个简单的答案 我深表歉意 a b 相当于 a b 由于
  • 求反射角的弧度

    我正在编写一个简单的 Flash 游戏 只是为了学习 Flash 并提高我的数学能力 但我对弧度感到非常困惑 因为这对我来说是新的 到目前为止 我所做的是使用鼠标 单击并释放 使用弧度向该方向射出一个球 现在我想要发生的是 当球撞到墙壁时
  • Android:如何获取小数点后的两位数?不想截断值

    如何获取小数点后仅两位数的双精度值 例如 如果 a 190253 80846153846 那么结果值应该像 a 190253 80 尝试 我尝试过这个 public static DecimalFormat twoDForm new Dec
  • C/C++ 中的最小二乘回归

    如何在 C C 中实现因子分析的最小二乘回归 the黄金标准是LAPACK http www netlib org lapack lug node27 html 你特别想要xGELS
  • LibGDX - 正确使用 Polygon 类

    我创造了Polygon包裹我的飞机的物体 飞机的大小TextureRegion是 256x74 但在游戏中这个尺寸是 70x20 所以 TextureRegion texRegsAirplane TextureRegion split te
  • 确定范围是否重叠

    给定两个具有整数开始时间和结束时间的事件 E1 s1 e1 E2 s2 e2 实现快速布尔检查以查看事件是否重叠 我有解决方案 但我很想看看其他人想出了什么 编辑 好的 这是我的解决方案 e1 gt s2 s1 gt s2 e2 lt s1
  • Python 小数.InvalidOperation 错误

    当我运行这样的东西时 我总是收到此错误 from decimal import getcontext prec 30 b 2 3 Decimal b Error Traceback most recent call last File Te
  • C# 中四舍五入到偶数

    我没有看到 Math Round 的预期结果 return Math Round 99 96535789 2 MidpointRounding ToEven returning 99 97 据我了解 MidpointRounding ToE
  • 基于时间的算法评分

    我们希望创建一种评分算法 在更短的时间内获得更高的分数 在更长的时间内获得更少的分数 需要注意的是 没有实际范围 因此时间范围可以从 100 毫秒到长达 10 分钟或更长时间 点范围为 0 到 50 谢谢你的帮助 你可以简单地把它变成一个线
  • 如何安全地将 CGFloat 降低或提高到 int?

    我经常需要在地板或天花板上安装CGFloat to an int 用于计算数组索引 我永远看到的问题floorf theCGFloat or ceilf theCGFloat 是浮点不准确可能会带来麻烦 那如果我的CGFloat is 2
  • 如何将一组重叠范围划分为不重叠范围?

    假设您有一组范围 0 100 一 0 75 b 95 150 c 120 130 d 显然 这些范围在某些点上重叠 您将如何剖析这些范围以生成不重叠范围的列表 同时保留与其原始范围相关的信息 在本例中为范围后面的字母 例如 运行算法后的上述
  • 这个按位运算如何检查 2 的幂?

    我正在看一些应该很简单的代码 但我的数学在这里严重失败 下面是一个使用以下条件检查数字是否为 2 的幂的条件 if num 1 num num 1 make num pow of 2 我的问题是 如何在 num 和 num 1 之间使用按位

随机推荐

  • Rails 3.1 活动记录插入或更新

    我是铁路新手 活动记录中是否有一种简单的方法可以向其传递数据散列 如果记录存在 则更新它 如果不存在 则创建它 data data my id 356345 data description test123 w Descriptions n
  • 是否可以在 Mono 上运行 ASP.NET MVC 3 应用程序?

    我需要在 Linux 运行服务器上运行一些 MVC 3 应用程序 似乎唯一的选择是 Mono 该网站仅讨论 Web 服务 但我想知道运行整个 MVC 3 应用程序也是可能的吗 谢谢 这取决于 整个 mvc 3 应用程序 的含义 ASP Ne
  • nhibernate queryover LIKE 与表达式树

    我希望向我的基本存储库类添加一个方法 该方法允许我使用LIKE表达式 但我不太确定如何去做 我想创建一个通用方法 它查看传入的表达式树并在传入的字符串值中查找通配符 然后它将生成QueryOver相应声明 我目前有以下内容 public I
  • (新格式)Visual Studio 项目中的可选 appsettings.local.json

    我的应用程序使用 appsettings json 进行某些设置 如果 appsettings local json 存在 则应覆盖 appsettings json 中包含的任何设置 到目前为止 没有问题 但我使用 git 进行版本控制
  • 如何从android模拟器访问localhost?

    我正在通过本教程学习 Xamarin 如果用邮递员发送请求 一切正常 但如果我想使用 android 模拟器 它就不起作用 而且我无法使用 UWP 因为必须启用开发人员模式 而且我在公司计算机上没有管理员权限 我在我的私人计算机上启用了开发
  • Clojure 无法导入带有静态初始化器的 JavaFX 类

    我正在使用 Clojure 1 6 和 JavaFX 8 一开始我就遇到了问题 例如 这个非常简单的代码失败了 ns xxyyzz core gen class name xxyyzz core App extends javafx app
  • Swift 合并发布者与完成处理程序以及何时取消

    我知道一般来说 发布者比闭包更强大 但是我想询问并讨论一个具体的例子 func getNotificationSettingsPublisher gt AnyPublisher
  • 如何在不重置堆栈跟踪的情况下抛出异常?

    这是一个后续问题 扔 和 扔前 有区别吗 https stackoverflow com questions 730250 is there a difference between throw and throw ex 有没有办法在不重置
  • 全新的 Xamarin.Forms 项目:文件“obj\Debug\android\bin\packaged_resources”不存在

    我刚刚安装了 Visual Studio 2017 正在尝试处理 Xamarin Forms 项目 我克隆了现有的存储库 并且可以很好地构建和部署 iOS 应用程序 但是当我尝试构建 Android 应用程序时 它会抛出以下错误 Sever
  • 在 Java 中创建文件时,如何在 Mac OS X 中提供文件路径?

    File f new File C Temp Example txt f createNewFile 执行时 将在目录中创建一个名为 Example txt 的新文件Temp文件夹 如何在 Mac OS X 中提供文件路径 我尝试提供 Fi
  • 如何从 woocommerce WordPress 网站的主菜单导航栏中删除购物车图标

    我想使用 woocommerce 从我的导航栏中删除购物车图标 管理员中似乎没有设置可以做到这一点 我用了这个代码 function remove nav cart link remove action woo nav inside woo
  • 如何使用 VBA 修剪 MS Word 中的表格单元格值

    我有一个 Word 文件中的表格 下面的这个 vba 程序将迭代所有表格单元格 Dim strCellText As String Dim uResp As String Dim Row As Integer Dim Col As Inte
  • 从 Android 中的未绑定服务获取数据

    我目前有一个未绑定的服务 它正在不断运行 获取我在启动时启动的 GPS 位置 然后我有一个应用程序 它应该通过从服务中提取数据来绘制我去过的地方 我无法绑定服务来与之对话 否则一旦关闭应用程序 它将被销毁 有没有什么好的方法可以从未绑定的服
  • 更改 s3fs 安装的存储桶的用户所有权

    如何修改 s3fs 安装存储桶的 user group 所有权 我有一个 git 安装 我本质上希望将其存储在我的 Amazon S3 帐户的存储桶中 然后通过我的 Web 主机使用 Sparkleshare 在多台计算机上同步此数据 我已
  • will_paginate -错误未定义方法“total_pages”

    我正在为我的 Rails 应用程序使用 will paginate 2 3 15 在我的units controller rb中 def index units Unit paginate all page gt params page o
  • 批处理 - if 命令和“检查互联网连接”

    通过 steam 和其他程序下载时 我的路由器出现问题 例如互联网与路由器失去连接 我无法使用电缆将我的电脑插入路由器 所以我提出了一个解决方案 另一个 每 X 秒断开并连接到互联网 但问题是我想让它更有效率 所以我想要一个执行此操作的命令
  • 使用多个 CLLocationManager 实例是否会造成性能损失

    我的应用程序中至少有两个控制器当前使用它们自己的 CLLocationManager 实例 然而 我很好奇使用多个 实例是否实际上会给手机带来任何额外的负担 除了不同实例的额外内存之外 iPhone 会多次 ping GPS 硬件 还是会使
  • CLR 分析器和 0 堆统计信息

    为什么使用 CLR 探查器的 ASP NET MVC Web 应用程序的堆统计分配结果为 0 我得到了零 但我认为做这两件事解决了零的问题 确保您在 配置文件 部分中检查了 分配 并确保在尝试查看分析信息之前结束应用程序 通过 CLR Pr
  • 在 Android 中何时使用 ComponentName 的哪个构造函数?

    我对 Android 中的 ComponentName 类有点困惑 有不同的方法可以获取组件名称对象 但我不知道何时使用哪个 以及为什么 Example 应用程序包是de zordid sampleapp 但小部件提供者类是de zordi
  • 有效确定多项式是否在区间 [0,T] 内有根

    我有非平凡次数 4 的多项式 需要稳健有效地确定它们是否在区间 0 T 中具有根 根的精确位置或数量与我无关 我只需要知道是否至少有一个 现在我正在使用区间算术作为快速检查 看看是否可以证明不存在根 如果我不能 我使用 Jenkins Tr