**Python and Calculator Basic: Transforming
Quadratic Polynomials**

**Calculators:
Casio fx-CG 50, TI-84 Plus CE**

**Problem**

Sometimes we are called to simplify quadratic polynomials, like so:

A * x^2 + B * x + C = (S * x + T)^2 + U

where A, B, C, S, T, and U are constants, which can be complex. In this problem, we are given A, B, and C, determine S, T, and U.

Observe that:

(S * x + T)^2 + U = S^2 * x^2 + 2 * S * T * x + T^2 + U

Then, matching this to the left side:

A * x^2 + B * x + C = S^2 * x^2 + 2 * S * T * x + T^2 + U

x^2 coefficient: A = S^2 which implies that S = ±√A

x coefficient: B = 2 * S * T which implies that T = B / (2 * S)

Constant coefficient: C = T^2 + U which implies that U = C – T^2

(*For
today’s blog, I am just going to use the principal square root, S =
√A. Taking the negative square root will also provide accurate
results.*)

Example: Transform x^2 + 6 * x + 8 into the form (S * x + T)^2 + U.

Note that A = 1, B = 6, and C = 8.

Then:

S = √1 = 1

T = 6 / ( 2 * 1) = 3

U = 8 – 3^2 = -1

x^2 + 6 * x + 8 = (x + 3)^2 – 1

**Code:
Python**

This code was entered on a fx-CG 50, but it should work on all calculators and platforms with Python. No modules are needed.

Title: quadtrans.py

711 bytes

from math import *

print(“Quadratic \nTransformation”)

print(“1. -> (s*x+t)**2+u”)

print(“2. -> a*x**2+b*x+c”)

ch=int(input(“choice? “))

if ch==1:

print(“a*x**2+b*x+c ->”)

a=eval(input(“a? “))

b=eval(input(“b? “))

c=eval(input(“c? “))

print(“Principal Root”)

print(“-> (s*x+t)**2+u”)

s=a**(1/2)

t=b/(2*s)

u=c-t**2

print(“s= “+str(s))

print(“t= “+str(t))

print(“u= “+str(u))

elif ch==2:

print(“(s*x+t)**2+u ->”)

s=eval(input(“s? “))

t=eval(input(“t? “))

u=eval(input(“u? “))

print(“-> a*x**2+b*c+c”)

a=s**2

b=2*s*t

c=t**2+u

print(“a= “+str(a))

print(“b= “+str(b))

print(“c= “+str(c))

else:

print(“Not a valid choice.”)

**Basic
Code: Casio fx-CG 50**

Title: QUADTRNS, 316 bytes

a+bi

Menu “QUADRATIC TRANS.”, “-> (S×x+T)²+U”, 1, “-> A×x²+B×x+C”, 2

Lbl 1

ClrText

“A×x²+B×x+C ->”

“A”? → A

“B”? → B

“C”? → C

“PRINCIPAL ROOT” ◢

√A → S

B÷(2×S) → T

C–T² → U

ClrText

“-> (S×x+T)²+U”

“S=”

S ◢

“T=”

T ◢

“U=”

U

Stop

Lbl 2

“(S×x+T)²+U ->”

“S”? → S

“T”? → T

“U”? → U

S² → A

2×S×T → B

T²+U → C

“-> A×x²+B×x+C”

“A=”

A ◢

“B=”

B ◢

“C=”

C

Stop

**Basic
Code: TI-84 Plus CE**

Title: QUADTRNS (318 bytes)

a+bi

Menu (“QUADRATIC TRANS.”, “-> (S*X+T)²+U”, 1, “-> A*X²+B*X+C”, 2)

Lbl 1

ClrHome

Disp “A*X²+B*X+C ->”

Prompt A, B, C

Disp “PRINCIPAL ROOT”

Wait 0.5

√(A) → S

B/(2*S) → T

C–T² → U

ClrHome

Disp “-> (S*X+T)²+U”

Disp “S= “+toString(S)

Disp “T= “+toString(T)

Disp “U= “+toString(U)

Stop

Lbl 2

Disp “(S*X+T)²+U ->”

Prompt S, T, U

S² → A

2*S*T → B

T²+U → C

ClrHome

Disp “-> A*X²+B*X+C”

Disp “A= “+toString(A)

Disp “B= “+toString(B)

Disp “C= “+toString(C)

Stop

Examples

4 * x^2 + 8 * x + 36 < - > (2 * x + 2)^2 + 32

A = 4, B = 8. C = 36

S = 2, T= 2, U = 32

x^2 – 8 * x + 3 < - > (x – 4)^2 – 13

A = 1, B = -8, C = 3

S = 1, T = -4, U = -13

The program allows for complex and imaginary coefficients:

-4 * x^2 + 8 * x + 16 < - > (2i * x – 2i)^2 + 20

A = -4, B = 8, C = 16

S = 2i, T = -2i, U = 20

Hope you find this useful. Until next time,

Eddie

All original content copyright, © 2011-2024. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.