Sunday, May 29, 2016

HP Prime: Basic CAS Commands for Polynomials and Rational Expressions

HP Prime:  Basic CAS Commands for Polynomials and Rational Expressions



Define the following variables:

poly:  a polynomial of the form a_n*x^n + a_n-1*x^(n-1) + …. + a_1*x + a_0
rat:  a rational function consisting of the polynomials p(x)/q(x)
var: variable

Simplification Modes

Before we start, I want to comment on simplification modes.  

Simplification Modes:

None:  No simplification is executed
Minimum:  Simple simplification of results.  Additional simplification may be desired.
Maximum:  Full simplification of results

Below is a comparison between Minimum and Maximum modes.



To change Simplification mode, press [Shift], [CAS] (CAS Settings), and select a Simplification settings.  Select the Simplification drop down box and select the desired mode.    

Note:  The following examples are executed in Maximum simplification mode.

Part Extraction:  Coefficients, Numerator, Denominator

Coefficients

coef:  [Toolbox], (CAS), 6. Polynomial, 2.  Coefficients

Syntax:
coef(poly, var):  returns all the coefficients of a polynomial in a vector
coef(poly, var, n): return the coefficient of a polynomial in a vector of the specific power x^n

Examples:
coef(2x^2 + 3x – 1, x) returns [2, 3, -1]
coef(2x^2 + 3x – 1, x, 2) returns 2
coef(2x^2 + 3x – 1, x, 1) returns 3
coef(2x^2 + 3x – 1, x, 0) returns -1

Numerator and Denominator

numer: [Toolbox], (CAS), 1. Algebra, 8. Extract, 1.  Numerator
denom: [Toolbox], (CAS), 1. Algebra, 8. Extract, 2. Denominator

Syntax:
numer(rat)
denom(rat)

Example:
f≔(2x^2-3)/(x^2+1)
numer(f) returns 2*x^2 – 3
denom(f) returns x^2 + 1
purge(f) \\ this is to erase f

Polynomial Creation

Create a symbolic polynomial with a list of coefficients

poly2symb: [Toolbox], (CAS), 6. Polynomial, 7.  Create, 2. Coefs→Poly

Syntax:

poly2symb(vector of coefficients, var)

Example:

poly2symb( [8, -1, 0, 6], t) returns 8*t^3 – t^2 + 6

The inverse operation is the symb2poly(poly), which can be accessed by [Toolbox], (CAS), 6. Polynomial, 7. Create, 1. Poly→Create. 

Create a polynomial from a list of roots

This involves a two-step processes:
1. pcoeff( vector of roots )
2. poly2symb( result from step 1, var )

Access pcoeff: [Toolbox], (CAS), 6. Polynomial, 7. Create, 3.  Roots → Coef

You can combine the two steps by typing:  poly2symb(pcoeff( vector of roots), var).  Simplification may be required

Example:

pcoeff([-2, 5, 0, 6]) returns [1, -9, 8, 60, 0]
poly2symb([1, -9, 8, 60, 0],t) returns t^4 – 9*t^3 +8*t^2 + 60*t

poly2symb( pcoeff([2, -5, 0, 6]), t) returns 
t^4 – 9*t^3 + 8*t^2 + 60*t

Degree of a Polynomial

degree: [Toolbox], (CAS), 6, Polynomial, 8. Algebra, 3. Degree

Syntax:

degree(poly)

Example:
f: = 4*x^3 – 2*x^2 + 8*x – 8
degree(f) returns 3

You can factor a polynomial by x^n where n is the degree of the polynomial by using factor_xn.

factor_xn:  [Toolbox], (CAS), 6. Polynomial, 8. Algebra, 4. Factor By Degree
Caution:  This command works when the Simplification mode is turned to Minimum or Off.    

Example:
(after turning Simplification to Minimum)
factor_xn(f) returns x^3 * (4 – 2/x + 8/x^2 – 8/x^3)
purge(f)

Partial Fraction of Rational Functions

partfrac: [Toolbox], (CAS), 1. Algebra, 7. Partial Fraction

Syntax:

partfrac(rat)

Example:

partfrac( (x^4 – 3*x^3)/(x^2 -1) ) returns 
x^2 -3*x + 1 - 1/(x-1) - 2/(x+1)

Determining the Number of Zeros (Roots)

The sturmab command determines the number of zeros giving an interval.

sturmab:  [Toolbox], (CAS), 6. Polynomial, 8. Algebra, 6.  Zero Count

Syntax:

sturmab(poly, var, min, max)

The min and max can be complex numbers.

Examples:

sturmab(x^3 – 4*x^2 + 6*x – 4, x, -5, 5) returns 1  \\ 1 real root
sturmab(x^3 – 4*x^2 + 6*x – 4, x, -5-5*i, 5+5*i) returns 3  \\ 1 real, 2 complex roots

Polynomial Functions

Path: [Toolbox], (CAS), 6, Polynomial, 9. Special, then:
4.  Hermite \\ Syntax:  hermite(n)
7.  Legendre \\ Syntax:  legendre(n)
8.  Chebyshev Tn (1st Kind)  \\ Syntax:  tchebyshev1(n)
9.  Chebyshev Un (2nd Kind)  \\ Syntax:  tchebyshev2(n)

Where n is an integer.  You can specify a variable by adding var as a second argument. (x is the default variable)

Examples:
hermite(4) returns 16*x^4 – 48*x^2 + 12
legendre(4) returns (35*x^4 – 30*x^3 + 3)/8
tchebyshev1(4) returns 8*x^4 – 8*x^2 + 1
tchebyshev2(4) returns 16*x^4 – 12*x^2 + 1

This covers some of the basic CAS commands for polynomials and rational functions.  Hope you find this helpful,

Eddie


This blog is property of Edward Shore, 2016.