求解 C 中的多项式(4,二阶)系统
Solve system of polynomials (4, second order) in C
我正在尝试使用 C++ 求解一个由 4 个二阶多项式方程组成的系统。解决系统的最快方法是什么,如果可能的话,你能链接或编写一些伪代码来解释它吗?我知道涉及 Groebners 基础或 QR 分解的解决方案,但我找不到关于它们如何工作以及如何实现它们的明确描述。也许关于多项式的有用信息:
- 解决方案
- 可能存在,也可能不存在,但我只对特定范围内的解决方案感兴趣(例如 [0,1] 中的 x,y,z,t) 多项式的形式
- 为:a + bx + cy + d*x*y = e + fz + gt + h*z*t(求解 x,y,z,t)。所有系数都是唯一的。
- 多项式方程来自双线性插值。
- 我尝试过找到一个精确的分析解决方案,但正如其他人所发布的那样,在 Mathematica 和其他方面求解大型多项式系统非常耗时
我只会使用用C++编写的通用求解器IPOPT。你可以用 [0, 1] 绑定约束来输入它,它实际上有助于 IPOPT 并使求解过程更快。
系统的稀疏性模式会改变吗?如果没有,那么您可以保存初始化步骤。不过我不是100%确定。无论哪种方式,与Mathematica中的分析解决方案相比,IPOPT都非常快。
你可以看看《数值配方》一书(c版第9章),其中描述了非线性方程组的解。有一个在线版本可以从他们的网站上查看 http://www.nr.com/.
由于他们的许可非常严格,也许您可以查看该方法,然后使用 gsl 等库对其进行调整。我没有尝试,但这个页面 http://na-inet.jp/na/gslsample/nonlinear_system.html 给出了一个如何使用 gsl 执行此操作的示例。
相关文章:
- C++,系统无法执行指定的程序
- 将二维矢量传递给类
- 二叉排序树无法编译
- 在计算中使用二的幂有多有利可图
- 为 n 维系统实现模块化龙格-库塔四阶方法
- 更新了Runge-Kutta(RK4)C++错误代码中的二阶DE
- 如何提高浮点二阶导数计算的准确性
- 二阶多项式计算器的输出不一致
- 如何创建一个具有空值、递减编号系统和.txt文件输入值的二维阵列网格
- 以线性最小二乘方式求解系统 Ax=b,具有复元素和下三角形平方 A 矩阵
- 使用C Boost Odeint库的二阶微分方程
- 计算二阶巴特沃斯低通滤波器的系数
- 求解 C 中的多项式(4,二阶)系统
- 快速精确二整数阶乘
- 我怎样才能在c++中计算二重的阶乘
- 二叉树之字形水平阶遍历的这种算法的时间复杂度是多少?
- 二阶龙格-库塔波动方程的积分
- Boost Geometry:使用二维极坐标系统
- c++二阶矩阵乘法
- 二阶线性递归方程的矩阵表示