**HP Prime: Algebraic CAS Commands**

On today’s entry I am going discuss several CAS (Computer
Algebraic System) commands: factor, expand, collect, and subst
(substitute). These four commands are
common to calculators, mathematical software, and mathematical apps that have
CAS commands.

If you have not heard about CAS before, CAS allows the user
to operate on expressions with indefinite (undefined) variables. CAS commands commonly manipulate algebraic
expressions, calculate derivatives of functions, and calculate indefinite
integrals. My first experience with
CAS commands was with the (original) TI-89 almost a decade and half ago. (Wow, I’m getting old). Let’s get started.

On the HP Prime, you can enter CAS mode by pressing the
[CAS] button. In CAS mode, the variables are primarily lower case. Single letter uppercase variables, along with
θ, are always numeric.

Note: Radian mode is
used.

**Factor**

Two type of factoring functions: factor and ifactors.

factor: [Toolbox],
(CAS), 1. Algebra, 4. Factor

The command factor works with polynomials and rational
expressions.

Examples:

factor(x^2 + 6*x + 5) returns (x + 1)*(x + 5)

factor(x^2 + x – 4) returns (x + (1 - √17) / 2) * (x + (1 +
√17) / 2)

factor(x^2 + 4*x + 4) returns (x + 2)^2

TIP: If you are not
sure whether implied multiplication will be accepted, insert the multiply
operators (*) in the expression. It is
always a safe bet.

ifactors: [Toolbox],
(CAS), 5. Integer, 2. Factors

Unlike factor, ifactors works on factoring integers into
their prime factorizations. If the
integer is prime, the integer itself is returned.

Examples:

ifactors(55) returns 5 * 11

ifactors(2162) returns 2 * 23 * 47

ifactors(1367) returns 1367 (1367 is prime)

**Expand**

There are three expand commands we’ll cover: expand, powexpand, and texpand. Which command that you use determines what
time of expression to be expanded.

expand: [Toolbox],
(CAS), 1. Algebra, 4. Factor

The command expand works on polynomials and rational
functions. It can be thought of that
expand is the opposite of factor.

Examples:

expand( (x - 1)^3 ) returns x^3 – 3*x^2 + 3*x - 1

expand( (x + 1)^2 * (x^2 – 3) ) returns x^4 + 2*x^3 – 2*x^2
– 6*x – 3

powexpand:
[Toolbox], (CAS), 4. Rewrite,
2. powexpand

The command powexpand involves expressions with
exponents.

powexpand( x^(2 + a) ) returns x^2 * x^a

Sometimes you have to combine one or more CAS commands to
get what you want.

powexpand( x^((a + 1) * (a + 5)) ) returns x^((a + 1) * (a
+ 5)).

This is not a result I would want. Let’s tackle this another way:

expand( (a + 1)*(a + 5) ) returns a^2 + 6*a + 5, then

powexpand( x^(a^2 + 6*a + 5) ) returns x^a^2 * (x^a)^6 *
x^5

texpand: [Toolbox],
(CAS), 4. Rewrite, 3. Texapnd

The command texpand is part of the expand family, this time texpand
works with transcendental functions (sin, cos, tan, ln, exp).

texpand( sin(2*x) ) returns 2 * cos(x) * sin(x)

texpand( cos (2*x + 1) ) returns (2 * cos(x)^2 – 1) *
cos(1) – 2 * cos(x) * sin(x) * sin(1)

texpand( e^(3*x) + cos(3*x) ) returns e^x^3 + 4 * cos(x)^3 –
3 * cos(x)

**Collect**

collect: [Toolbox],
(CAS), 1. Algebra, 2. Collect

This commands collects like terms in a polynomial, and when
applicable factorizes the expressions.
The variable to collect around may be specified.

Examples:

collect( (x + 1)^2 + x^2 + 2*x ) returns 2*x^2 + 4*x + 1

collect( (x + a + 2*(x + a) ) returns 3 * (a + x)

collect( (x + a + 2*(x + a), a ) returns 3*a + 3*x

collect( (x + a + 2*(x + a), x ) returns 3*a + 3*x

collect( (x^2 + a^2 + 2*(x + a)^2 ) returns 4*a*x + 3*a^2 +
3*x^2

collect( (x^2 + a^2 + 2*(x + a)^2, a ) returns a * (3*a +
4*x) + 3*x^2

collect( (x^2 + a^2 + 2*(x + a)^2, x ) returns x * (4*a +
3*x) + 3*a^2

**Substitute**

This does exactly what it is says: substitute.

Syntax: subst(expression, var =
value/expr)

subst: [Toolbox],
(CAS), 1. Algebra, 6. Substitute

Examples:

subst( x^4 + 2*x^2 – x, x = √a) returns a^2 + 2*a - √a

Here are two examples where an additional CAS command is
needed to simplify:

subst( cos(2*x), x = asin(a) ) returns cos( 2* asin(a) )

texpand(cos( 2* asin(a) ) returns 2*(1 – a^2) – 1

subst( 2*x^2 – x, x = a + 3 ) returns 2*(a + 3)^2 – a – 3

expand(2*(a + 3)^2 – a – 3 ) returns 2*a^2 + 11*a + 15

There are four common CAS commands, I hope you find this
helpful.

Eddie

This blog is property of Edward Shore, 2016.