# Python For GCSE

Quadratic Equations

## Introduction

**x ^{2} - x - 6**

In Maths, you might normally solve this by factorising.

**(x+2)(x-3)=0**

This would give you the following solutions,

**x=-2,x=3**

Look at the graph we get when we plot the function, **y = x ^{2} - x - 6**,

The shape of the graph is called a parabola. If the coefficient of x^{2} is negative, the parabola would be inverted. This parabola intercepts the x axis (y=0) at two points, the two solutions to the equation.

**x ^{2} + 2x + 1**

(x + 1)(x + 1)

You only get a single solution, x=-1

When we draw the graph, this time the curve touches the x axis at its lowest point (highest point if the parabola is inverted).

When we write a program to solve quadratic equations, we will need to deal with the fact that some quadratic equations only have a single solution.

**x ^{2} + x + 1**

This equation cannot be factorised. There is no way that the -1 and 1 can be added or subtracted to make a total of 1.

Looking at the graph, we can see that the parabola does not intercept the x axis. We canâ€™t solve the equation.

Our program is going to have to be able to cope with this third type of equation too.

### The Quadratic Formula

Given a quadratic equation expressed in the form,

**ax ^{2} + bx + c**

The solutions can be directly calculated with the formula,

The following shows how we use the formula for our three types of equation,

### Programming

The part of the formula that matters most is b^{2} - 4ac. This is known as the **discriminant** of the equation.

Our program needs to do something like the following,

`d = b * b - 4 * a * c`

IF d < 0 THEN

OUTPUT "Cannot Solve"

ELSE IF d == 0 THEN

x = -b / (2 * a)

OUTPUT "x = " + x

ELSE

rootd = square root of d

x1 = (-b + rootd)/(2 * a)

x1 = (-b - rootd)/(2 * a)

OUTPUT "x = " + x1 + ", x = " + x2

END IF

And here is an outline in Python with some strategic splodges,