当前位置: 首页 > 面试题库 >

在Java中查找多项式的根

朱保赫
2023-03-14
问题内容

我需要找到勒让德多项式的(近似值)解。我尝试了几个Java库,但没有一个我想要的(最接近的是commons-math,它甚至具有用于在Laguerre
Solver中找到解决方案的代码,但没有公开该方法)。是否有现有的解决方案,或者我需要实施自己的解决方案?


问题答案:

您可以使用有效的Java矩阵库

请找到以下相同的示例示例

public class PolynomialRootFinder {

    /**
     * <p>
     * Given a set of polynomial coefficients, compute the roots of the polynomial.  Depending on
     * the polynomial being considered the roots may contain complex number.  When complex numbers are
     * present they will come in pairs of complex conjugates.
     * </p>
     *
     * @param coefficients Coefficients of the polynomial.
     * @return The roots of the polynomial
     */
    public static Complex64F[] findRoots(double... coefficients) {
        int N = coefficients.length-1;

        // Construct the companion matrix
        DenseMatrix64F c = new DenseMatrix64F(N,N);

        double a = coefficients[N];
        for( int i = 0; i < N; i++ ) {
            c.set(i,N-1,-coefficients[i]/a);
        }
        for( int i = 1; i < N; i++ ) {
            c.set(i,i-1,1);
        }

        // use generalized eigenvalue decomposition to find the roots
        EigenDecomposition<DenseMatrix64F> evd =  DecompositionFactory.eigGeneral(N, false);

        evd.decompose(c);

        Complex64F[] roots = new Complex64F[N];

        for( int i = 0; i < N; i++ ) {
            roots[i] = evd.getEigenvalue(i);
        }

        return roots;
    }
}


 类似资料:
  • 通过手工操作,我在模式中查找属性,查找元素标记和直接父级的标记。 例如,从 我应该获得和对。 在Java中有没有一种优雅的方法来实现这一点?您会推荐哪个库来实现这一点?

  • 在我的一个程序中,我有以下方法,允许用户在ArrayList中输入与笔记本电脑关联的唯一ID。 所需输出如下: 如果用户输入的ID与ArrayList中的ID匹配,笔记本电脑及其规格将打印出来 如果ID不匹配,它将打印出“无效ID” 我非常接近实现这一目标;然而,我只能弄清楚如何让它打印出是否匹配列表中的每台笔记本电脑。例如,如果用户输入的ID与列表中三台笔记本电脑中的一台匹配,它将按如下方式打印

  • 问题内容: 我正在尝试获取Java类中的所有依赖关系,包括用于泛型参数化和局部变量类型的类。到目前为止,我发现的最佳框架是apache bcel。使用它,我可以轻松地从字节码中找到所有字段,方法参数和局部变量。基本上,除了泛型和局部变量类型以外的所有内容。例如,在第1行中,我只能使用bcel中的方法找到一个依赖项- ArrayList。它无法检测到List接口和Point类。不幸的是,我也尝试了t

  • 我正在尝试解决这个递归练习: 在多维板(M x N)中,每个元素都可以是空的,也可以是满的。 “污点”大小是相邻且值为“x”的元素的数量。 null

  • 我有一份名单。每个人都有名字和年龄。 我想使用流来查找此人是否已经在列表中。

  • 我正在尝试开发一个函数,该函数读取string的ArrayList,并且能够查找是否存在至少两个元组,它们从一组索引中具有相同的值,但对于一个补充索引不同。我通过使用正则表达式比较开发了这个函数的一个版本,如下所示: 但是,它是非常昂贵的,特别是如果有很多排。我曾想过创建一个更复杂的RegEx来考虑多个选择(使用“条件”),如下所示: 但问题是这样我无法比较补充索引值。对于如何定义一个可以直接满足