matlab - 多项式的最大值

标签 matlab optimization max polynomial-math maximize

我有一个 N 阶多项式(其中 N 是偶数)。该多项式等于 x 负/正无穷大的负无穷大(因此它有最大值)。我现在正在做的是使用 polyder 求多项式的导数,然后使用 Matlab 中的 roots 函数求 N-1 阶多项式的根返回 N-1 个解。然后我选择真正使多项式最大化的实根。问题是我经常更新我的多项式,并且在每个时间步我都使用上述过程来找到最大化器。因此,roots 函数需要太多的计算时间,使我的应用程序变慢。有没有一种方法可以在 Matlab 中或提出的算法中以计算有效的方式进行这种最大化(即只找到一个解决方案而不是 N-1 个解决方案)?谢谢。

编辑:我也想知道Matlab中有没有只返回实根而不返回实根的例程 roots 返回所有实数/复数。

最佳答案

我认为你可能运气不好。如果多项式的系数在每个时间步都以任意方式变化,那么最终您在每个阶段都会面临一个截然不同且不相关的优化问题。没有足够的可用信息来考虑仅计算导数多项式根的子集——如果不比较所有导数根处的函数值,你怎么知道哪个导数根提供了多项式的最大驻点?如果您的多项式系数在每一步仅受到(有界的)少量干扰或以可预测的方式受到干扰,那么可以想象您将能够尝试一些迭代来改进每一步的解决方案步骤(例如一些粗​​略的东西,例如使用你以前的根作为一组新的牛顿迭代的起点来识别更新的导数根),但这个问题并不表明事实确实如此,所以我只是猜测。我在这里可能完全错了,但除非您可以提供更多信息,说明在每一步生成的多项式之间存在某种关系,否则您可能无法更快地获得某些东西。

关于matlab - 多项式的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057605/

相关文章:

sql - 为什么 T-SQL where 语句的顺序很重要?

r - R中的并行优化

r - 是否有比 Base R 中的 expand.grid 更快的配对比较方法?

c++ - Matlab 的 cpp 文件中的矩阵乘法

matlab - 当 printf 位于从 s-function 调用的单独的 c 文件中时,如何使它工作?

c++ - 使用列主要 Matlab 样式的数据布局将图像读入 C++?

sql - 使用 min/max 的嵌套 SQL 查询返回了太多的记录(这是新的)

javascript - 获取随机数并关注限制(抛物线)

r - 当另一列中的值为 X 时,查找一列的最大值

arrays - MATLAB 中整个多维数组(不仅仅是一维)的中位数