java多项式和_在Java中查找多项式的根

小编典典

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

public class PolynomialRootFinder {

/**

*

* 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.

*

*

* @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 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;

}

}

2020-11-19

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值