public class Quadratic {
// three double instance variables representing a, b, and c.
double a, b, c;
// Constructor that takes three double parameters representing a, b, and c.
public Quadratic(double a$, double b$, double c$) {
}
// Constructor that copies a Quadratic
public Quadratic(Quadratic q) {
}
// printable form of this quadratic
public String toString() {
return "0 x^2 + 0 x + 0";
}
// returns a double representing quadratic function evaluated at x.
public double f(double x) {
return 0.0;
}
// returns the discriminant of this quadratic: (b^2 - 4 a c)
public double discriminant() {
return 0.0;
}
// returns a boolean that is true if the graph of the quadratic opens up
public boolean concaveUp() {
return false;
}
// returns a boolean that is true if the graph of the quadratic opens down
public boolean concaveDown() {
return false;
}
// returns an int that represents the number of real roots of this quadratic
// 0 - both roots are complex when the discriminant is negative
// 1 - both roots are equal and real when the discriminant is zero
// 2 - both roots are real an distinct when the discriminant is positive
public int realRootCount() {
return 0;
}
// returns a Complex value that represents the first root of the polynomial
// Hint: Use the discriminant and realRootCount functions
public Complex root1() {
return new Complex(0.0D, 0.0D);
}
// returns a Complex value that represents the first root of the polynomial
// Hint: Use the discriminant and realRootCount functions
public Complex root2() {
return new Complex(0.0D, 0.0D);
}
// returns a Point2D representing the vetex of the parabola
// Recall that the vertex of the parablola is given by (-b/(2a), f(-b/(2a)))
public Point2D vertex() {
return new Point2D(0.0, 0.0);
}
// returns a double that is the insantaneous slope of this Quadratic at x: 2 a x + b
public double slope(double x) {
return 0.0;
}
// returns a line that represents the derivative of this Quadratic at x
// 2 a x + b is the slope
// (x, f(x)) is a point on the line
// Use point-slope equation to determine the y intercept
public Line derivative(double x) {
return new Line(0.0, 0.0);
}
// integral-ish helper method
// Define F(x) = (a/3)x^3 + (b/2)x^2 + c x
double F(double x) {
return 0.0;
}
// returns a double representing the definite integral from x1 < x2 of this quadratic.
// intgrate(x1,x2) returns F(x2) - F(x1).
public double integrate(double x1, double x2) {
return 0.0;
}
public static void main(String args[]) {
Quadratic q1 = new Quadratic(1, -5, 6);
System.out.println(q1); // 1.0 x^2 + -5.0 x + 6.0
System.out.println(q1.concaveUp()); // true
System.out.println(q1.concaveDown()); // false
System.out.println(q1.f(0)); // 6
System.out.println(q1.f(3)); // 0
System.out.println(q1.f(2)); // 0
System.out.println(q1.vertex()); // (2.5, -0.25)
System.out.println(q1.f(q1.vertex().x)); // -0.25
System.out.println(q1.slope(4)); // 3
System.out.println(q1.integrate(0,2)); // 4.66666666
System.out.println(q1.discriminant()); // 1.0
System.out.println(q1.realRootCount()); // 2
System.out.println(q1.root1()); // 3.0
System.out.println(q1.root2()); // 2.0
System.out.println(q1.derivative(1)); // y = -3.0 x + 5.0
System.out.println("- - - - - - - - - - - - - - - - -");
Quadratic q2 = new Quadratic(-1,-2,-3);
System.out.println(q2); // -1.0 x^2 + -2.0 x + -3.0
System.out.println(q2.concaveUp()); // false
System.out.println(q2.concaveDown()); // true
System.out.println(q2.f(0)); // -3
System.out.println(q2.f(3)); // -18
System.out.println(q2.f(2)); // -11
System.out.println(q2.vertex()); // (-1,-2)
System.out.println(q2.f(q2.vertex().x)); // -2
System.out.println(q2.slope(4)); // -10
System.out.println(q2.integrate(0,2)); // -12.66666666
System.out.println(q2.discriminant()); // -8
System.out.println(q2.root1()); // -1.0+1.4142135623730951i
System.out.println(q2.root2()); // -1.0-1.4142135623730951i
System.out.println(q1.realRootCount()); // 2
System.out.println(q2.derivative(1)); // y = -4.0 x + -2.0
}
}
|