eigen 已知多项式的各系数和y值 求x
时间: 2024-04-11 21:27:14 浏览: 37
如果你已知多项式的系数和函数值,想要求解多项式的自变量x,可以使用Eigen库中的`poly_eval`函数来进行求解。
下面是一个使用Eigen库进行多项式求解的示例代码:
```cpp
#include <iostream>
#include <Eigen/Dense>
int main() {
// 已知多项式的系数和函数值
Eigen::VectorXd coefficients(4);
coefficients << 1, -2, -3, 2;
double y = 10;
// 求解多项式的自变量x
Eigen::PolynomialSolver<double, Eigen::Dynamic> solver(coefficients);
Eigen::VectorXd roots = solver.roots();
// 找到满足函数值y的根
double closestRoot = 0;
double minDistance = std::abs(roots[0] - y);
for (int i = 1; i < roots.size(); ++i) {
double distance = std::abs(roots[i] - y);
if (distance < minDistance) {
minDistance = distance;
closestRoot = roots[i];
}
}
// 输出结果
std::cout << "Closest Root to y=" << y << " is x=" << closestRoot << std::endl;
return 0;
}
```
在这个示例代码中,我们假设多项式的系数为[1, -2, -3, 2],函数值为y=10。我们使用`PolynomialSolver`类来求解多项式的根,并将结果存储在`roots`向量中。然后,我们找到距离函数值y最近的根,并将其存储在`closestRoot`中。最后,我们输出结果。
请注意,为了使用Eigen库,你需要先安装它并将其包含在你的代码中。你可以从Eigen的官方网站上下载并安装它。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)