-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPolynomial.java
More file actions
43 lines (36 loc) · 1.12 KB
/
Polynomial.java
File metadata and controls
43 lines (36 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public class Polynomial {
private double[] coeffi;
public Polynomial() {
this.coeffi = new double[]{0};
}
public Polynomial(double[] coeff) {
coeffi = coeff;
}
public Polynomial add(Polynomial coeff2) {
int num1 = coeffi.length;
int num2 = coeff2.coeffi.length;
int greatestnum = Math.max(num1, num2);
double[] resultantarr = new double[greatestnum];
for (int i = 0; i < greatestnum; i++) {
if (i < Math.min(num1, num2)) {
resultantarr[i] = coeffi[i] + coeff2.coeffi[i];
} else if (i < num1) {
resultantarr[i] = coeffi[i];
} else {
resultantarr[i] = coeff2.coeffi[i];
}
}
return new Polynomial(resultantarr);
}
public double evaluate(double x1) {
double rel = 0;
for (int i = 0; i < coeffi.length; i++) {
double rw = Math.pow(x1, i);
rel += coeffi[i] * rw;
}
return rel;
}
public boolean hasRoot(double root1) {
return evaluate(root1) == 0;
}
}