Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

TI-89 Guide Book

Download as pdf or txt
Download as pdf or txt
You are on page 1of 571

spine

back front
8.06

Texas Instruments U.S.A.


7800 Banner Dr.
Dallas, TX 75251

Texas Instruments Holland B.V.


Rutherfordweg 102
3542 CG Utrecht-The Netherlands

TI-89
TI-89
ti-cares@ti.com ENG
© 1998 Texas Instruments w w w. t i . c o m / c a l c 9815798-0101 ENG

6.06 adjustable
spine
TI-89 Shortcut Keys

¥ |, ¥ « Lighten or darken contrast Alpha Rules


¥¸ Calculate approximate answer j Type one lowercase letter
¥ C, ¥ D Move cursor to top or bottom ¤ Type one uppercase letter
(in editors)
2™ Lowercase alpha lock
¤ C, ¤ D Scroll tall objects in history
¤j Uppercase alpha lock
¤ A, ¤ B Highlight left or right from cursor
j Exit alpha lock
2 C, 2 D Page up or page down
(in editors)
2 A, 2 B Move cursor far left or far right For 3D Graphing
On-screen Keyboard Map C, D, A, B Animate graph
«, | Change animation speed
Press ¥ ^ to display the keyboard map.
Press N to exit the map. X, Y, Z View along axis
0 (zero) Return to original view
Í ( [F] ) Change graph format style
p Expanded/normal view

Greek Letters
¥c To access the Greek
character set.
The keyboard map displays shortcuts that are ¥ c j + letter To access lowercase Greek
not marked on the keyboard. As shown letters. Example:
¥ c j [W] displays ω.
below, press ¥ and then the applicable key.
¥ c ¤ + letter To access uppercase Greek
¥Á ƒ letters. Example:
¥c Access Greek letters ¥ c ¤ [ W] displays Ω
(see next column) If you press a key combination that does not
¥d © (comment) access a Greek letter, you get the normal
¥b Copy graph coordinates to letter for that key.
sysdata
ξ ψ ζ τ
¥e ! (factorial)
X Y Z T
¥Í ([F]) Display FORMATS dialog box*

¥1 – ¥9 Run programs kbdprgm1( ) α β δ ε
through kbdprgm9( ) A B C D E
¥p & (append) Γ
φ γ
¥^ ([K]) On-screen keyboard map*
F G H I J
¥§ @
¥´ Turn off unit so that it returns λ µ
to current application the K L M N O
next time you turn it on Π Σ
¥0 (Â) * π ρ σ
¥¶ (Ã) ‚* P Q R S U

¥· Copy graph coordinates to Ω


ω
Home screen history V W
* Keys in parentheses are alternate ¥ paths.

SHORTCUT.DOC TI-89: Shortcut Keys for IFC (US English) Joan Terrell Revised: 07/20/98 10:58 AM Printed: 07/27/98 3:57 PM Page 1 of 1
® Table of Contents ➥

TI-89
Guidebook

Texas Instruments contributors:


Chris Alley, Bea Aton, Gosia Brothers, Jim Carlsen, Yong Cui, Norman Davis,
James Escamilla, Doyle Evans, Linda Ferrio, Frank Ford, Eddy Frey, Susan Gullord,
Vonnie Howard, Win Jackson, Jeff Janis, Darrell Johnson, Paula Laux, Bert Moquin,
Mark Morse, John Powers, Russ Rosenquist, David Stone, Joan Terrell

The TI-89 Symbolic Manipulation was jointly developed by TI and the authors of the
DERIVEë program, who are with Soft Warehouse, Inc., Honolulu, HI.

TI-GRAPH LINK, VAR-LINK, FLASH, CBL, and CBR are trademarks of


Texas Instruments Incorporated.
U.S. Patent No. 4,405,829 Licensed Exclusively By RSA Data Security, Inc.
© 1998 Texas Instruments Incorporated.

TITLETOC.DOC TI-89: Title Page(Intl English) Joan Terrell Revised: 08/03/98 2:44 PM Printed: 08/03/98 2:45 PM Page i of 8
Important Texas Instruments makes no warranty, either expressed or implied,
including but not limited to any implied warranties of
merchantability and fitness for a particular purpose, regarding any
programs or book materials and makes such materials available
solely on an “as-is” basis.
In no event shall Texas Instruments be liable to anyone for special,
collateral, incidental, or consequential damages in connection with or
arising out of the purchase or use of these materials, and the sole and
exclusive liability of Texas Instruments, regardless of the form of
action, shall not exceed the purchase price of this equipment.
Moreover, Texas Instruments shall not be liable for any claim of any
kind whatsoever against the use of these materials by any other
party.

US FCC Information This equipment has been tested and found to comply with the limits
Concerning Radio for a Class B digital device, pursuant to Part 15 of the FCC rules. These
Frequency limits are designed to provide reasonable protection against harmful
Interference interference in a residential installation. This equipment generates,
uses, and can radiate radio frequency energy and, if not installed and
used in accordance with the instructions, may cause harmful
interference with radio communications. However, there is no
guarantee that interference will not occur in a particular installation.
If this equipment does cause harmful interference to radio or
television reception, which can be determined by turning the
equipment off and on, you can try to correct the interference by one
or more of the following measures:
¦ Reorient or relocate the receiving antenna.
¦ Increase the separation between the equipment and receiver.
¦ Connect the equipment into an outlet on a circuit different from
that to which the receiver is connected.
¦ Consult the dealer or an experienced radio/television technician
for help.
Caution: Any changes or modifications to this equipment not
expressly approved by Texas Instruments may void your authority to
operate the equipment.

ii

TITLETOC.DOC TI-89: Title Page(Intl English) Joan Terrell Revised: 08/03/98 2:44 PM Printed: 08/03/98 2:45 PM Page ii of 8
Table of Contents

This guidebook describes how to use the TI-89. The table of


contents can help you locate "getting started" information as
well as detailed information about the TI-89s features.
Appendix A provides one convenient location to find details
about every TI-89 function and instruction.

Special Features of the TI-89 .................................................................. ix

Chapter 1: Getting the TI.89 Ready to Use ............................................................... 2


Getting Started Performing Computations........................................................................ 4
Graphing a Function ................................................................................. 7

Chapter 2: Turning the TI-89 On and Off ................................................................ 10


Operating the TI.89 Setting the Display Contrast .................................................................. 11
The Keyboard........................................................................................... 12
Entering Alphabetic Characters ............................................................ 15
Home Screen............................................................................................ 16
Entering Numbers ................................................................................... 18
Entering Expressions and Instructions ................................................ 19
Formats of Displayed Results................................................................ 22
Editing an Expression in the Entry Line .............................................. 25
TI-89 Menus ............................................................................................. 27
Using the Custom Menu ......................................................................... 30
Selecting an Application......................................................................... 31
Setting Modes .......................................................................................... 33
Using 2 ˆ Clean Up to Start a New Problem................................. 35
Using the Catalog to Select a Command .............................................. 36
Storing and Recalling Variable Values.................................................. 37
Reusing a Previous Entry or the Last Answer ..................................... 39
Auto-Pasting an Entry or Answer from the History Area................... 41
Status Line Indicators in the Display .................................................... 42
Finding the Software Version and Serial Number............................... 44

Chapter 3: Preview of Symbolic Manipulation ....................................................... 46


Symbolic Using Undefined or Defined Variables ................................................. 47
Manipulation Using Exact, Approximate, and Auto Modes....................................... 49
Automatic Simplification........................................................................ 52
Delayed Simplification for Certain Built-In Functions ....................... 54
Substituting Values and Setting Constraints........................................ 55
Overview of the Algebra Menu .............................................................. 58
Common Algebraic Operations ............................................................. 60
Overview of the Calc Menu.................................................................... 63
Common Calculus Operations............................................................... 64
User-Defined Functions and Symbolic Manipulation ......................... 65
If You Get an Out-of-Memory Error ...................................................... 67
Special Constants Used in Symbolic Manipulation............................. 68

iii

TITLETOC.DOC TI-89: Title Page(Intl English) Joan Terrell Revised: 08/03/98 2:44 PM Printed: 08/03/98 2:45 PM Page iii of 8
Chapter 4: Preview of Constants and Measurement Units ................................... 70
Constants and Entering Constants or Units .................................................................. 71
Measurement Units Converting from One Unit to Another .................................................. 73
Setting the Default Units for Displayed Results .................................. 75
Creating Your Own User-Defined Units ............................................... 76
List of Pre-Defined Constants and Units .............................................. 77

Chapter 5: Saving the Home Screen Entries as a Text Editor Script................... 82


Additional Home Cutting, Copying, and Pasting Information.......................................... 83
Screen Topics Creating and Evaluating User-Defined Functions............................... 85
Using Folders to Store Independent Sets of Variables ....................... 88
If an Entry or Answer Is “Too Big”........................................................ 91

Chapter 6: Preview of Basic Function Graphing.................................................... 94


Basic Function Overview of Steps in Graphing Functions ........................................... 95
Graphing Setting the Graph Mode.......................................................................... 96
Defining Functions for Graphing .......................................................... 97
Selecting Functions to Graph ................................................................ 99
Setting the Display Style for a Function............................................. 100
Defining the Viewing Window ............................................................. 101
Changing the Graph Format ................................................................ 102
Graphing the Selected Functions ........................................................ 103
Displaying Coordinates with the Free-Moving Cursor ..................... 104
Tracing a Function ................................................................................ 105
Using Zooms to Explore a Graph ........................................................ 107
Using Math Tools to Analyze Functions............................................. 110

Chapter 7: Preview of Parametric Graphing......................................................... 116


Parametric Overview of Steps in Graphing Parametric Equations ..................... 117
Graphing Differences in Parametric and Function Graphing ........................... 118

Chapter 8: Preview of Polar Graphing................................................................... 122


Polar Graphing Overview of Steps in Graphing Polar Equations ............................... 123
Differences in Polar and Function Graphing ..................................... 124

Chapter 9: Preview of Sequence Graphing............................................................ 128


Sequence Graphing Overview of Steps in Graphing Sequences ........................................ 129
Differences in Sequence and Function Graphing.............................. 130
Setting Axes for Time, Web, or Custom Plots ................................... 134
Using Web Plots .................................................................................... 135
Using Custom Plots............................................................................... 138
Using a Sequence to Generate a Table ............................................... 139

iv

TITLETOC.DOC TI-89: Title Page(Intl English) Joan Terrell Revised: 08/03/98 2:44 PM Printed: 08/03/98 2:45 PM Page iv of 8
Chapter 10: Preview of 3D Graphing ....................................................................... 142
3D Graphing Overview of Steps in Graphing 3D Equations ................................... 144
Differences in 3D and Function Graphing ......................................... 145
Moving the Cursor in 3D....................................................................... 148
Rotating and/or Elevating the Viewing Angle .................................... 150
Animating a 3D Graph Interactively ................................................... 152
Changing the Axes and Style Formats................................................ 153
Contour Plots......................................................................................... 155
Example: Contours of a Complex Modulus Surface......................... 158
Implicit Plots.......................................................................................... 159
Example: Implicit Plot of a More Complicated Equation................. 161

Chapter 11: Preview of Differential Equation Graphing ....................................... 164


Differential Equation Overview of Steps in Graphing Differential Equations .................... 166
Graphing Differences in Diff Equations and Function Graphing ..................... 167
Setting the Initial Conditions ............................................................... 172
Defining a System for Higher-Order Equations ................................. 174
Example of a 2nd-Order Equation....................................................... 175
Example of a 3rd-Order Equation ....................................................... 177
Setting Axes for Time or Custom Plots .............................................. 178
Example of Time and Custom Axes.................................................... 179
Example Comparison of RK and Euler............................................... 181
Example of the deSolve( ) Function................................................... 184
Troubleshooting with the Fields Graph Format................................ 185

Chapter 12: Preview of Additional Graphing Topics ............................................. 190


Additional Graphing Collecting Data Points from a Graph.................................................. 191
Topics Graphing a Function Defined on the Home Screen .......................... 192
Graphing a Piecewise Defined Function ............................................ 194
Graphing a Family of Curves ............................................................... 196
Using the Two-Graph Mode ................................................................. 197
Drawing a Function or Inverse on a Graph........................................ 200
Drawing a Line, Circle, or Text Label on a Graph............................. 201
Saving and Opening a Picture of a Graph .......................................... 205
Animating a Series of Graph Pictures................................................. 207
Saving and Opening a Graph Database .............................................. 208

Chapter 13: Preview of Tables.................................................................................. 210


Tables Overview of Steps in Generating a Table ........................................... 211
Setting Up the Table Parameters......................................................... 212
Displaying an Automatic Table............................................................ 214
Building a Manual (Ask) Table ............................................................ 217

Chapter 14: Preview of Split Screens....................................................................... 220


Split Screens Setting and Exiting the Split Screen Mode......................................... 221
Selecting the Active Application ......................................................... 223

TITLETOC.DOC TI-89: Title Page(Intl English) Joan Terrell Revised: 08/03/98 2:44 PM Printed: 08/03/98 2:45 PM Page v of 8
Chapter 15: Preview of the Data/Matrix Editor...................................................... 226
Data/Matrix Editor Overview of List, Data, and Matrix Variables .................................... 227
Starting a Data/Matrix Editor Session ................................................ 229
Entering and Viewing Cell Values ....................................................... 231
Inserting and Deleting a Row, Column, or Cell ................................. 234
Defining a Column Header with an Expression ................................ 236
Using Shift and CumSum Functions in a Column Header ............... 238
Sorting Columns .................................................................................... 239
Saving a Copy of a List, Data, or Matrix Variable.............................. 240

Chapter 16: Preview of Statistics and Data Plots................................................... 242


Statistics and Data Overview of Steps in Statistical Analysis ........................................... 246
Plots Performing a Statistical Calculation ................................................... 247
Statistical Calculation Types ............................................................... 249
Statistical Variables............................................................................... 251
Defining a Statistical Plot..................................................................... 252
Statistical Plot Types ............................................................................ 254
Using the Y= Editor with Stat Plots .................................................... 256
Graphing and Tracing a Defined Stat Plot ......................................... 257
Using Frequencies and Categories...................................................... 258
If You Have a CBL or CBR ................................................................... 260

Chapter 17: Preview of Programming...................................................................... 264


Programming Running an Existing Program.............................................................. 266
Starting a Program Editor Session...................................................... 268
Overview of Entering a Program......................................................... 270
Overview of Entering a Function ........................................................ 273
Calling One Program from Another .................................................... 275
Using Variables in a Program............................................................... 276
Using Local Variables in Functions or Programs .............................. 278
String Operations .................................................................................. 280
Conditional Tests .................................................................................. 282
Using If, Lbl, and Goto to Control Program Flow ............................. 283
Using Loops to Repeat a Group of Commands ................................. 285
Configuring the TI-89............................................................................ 288
Getting Input from the User and Displaying Output......................... 289
Creating a Custom Menu ...................................................................... 291
Creating a Table or Graph.................................................................... 293
Drawing on the Graph Screen ............................................................. 295
Accessing Another TI-89, a CBLé, or a CBRé ................................. 297
Debugging Programs and Handling Errors ........................................ 298
Example: Using Alternative Approaches ........................................... 299
Assembly-Language Programs............................................................. 301

vi

TITLETOC.DOC TI-89: Title Page(Intl English) Joan Terrell Revised: 08/03/98 2:44 PM Printed: 08/03/98 2:45 PM Page vi of 8
Chapter 18: Preview of Text Operations ................................................................. 304
Text Editor Starting a Text Editor Session ............................................................. 305
Entering and Editing Text .................................................................... 307
Entering Special Characters ................................................................ 311
Entering and Executing a Command Script....................................... 313
Creating a Lab Report........................................................................... 315

Chapter 19: Preview of the Numeric Solver............................................................ 318


Numeric Solver Displaying the Solver and Entering an Equation............................... 319
Defining the Known Variables ............................................................. 321
Solving for the Unknown Variable ...................................................... 323
Graphing the Solution........................................................................... 324

Chapter 20: Preview of Number Bases .................................................................... 328


Number Bases Entering and Converting Number Bases ............................................ 329
Performing Math Operations with Hex or Bin Numbers.................. 330
Comparing or Manipulating Bits ......................................................... 331

Chapter 21: Preview of Memory and Variable Management................................. 334


Memory and Variable Checking and Resetting Memory ........................................................ 337
Management Displaying the VAR-LINK Screen ........................................................ 338
Manipulating Variables and Folders with VAR-LINK........................ 340
Pasting a Variable Name to an Application........................................ 342
Archiving and Unarchiving a Variable ................................................ 343
If a Garbage Collection Message Is Displayed................................... 345
Memory Error When Accessing an Archived Variable ..................... 347

Chapter 22: Transmitting Variables between Two Units....................................... 350


Linking and Transmitting Variables under Program Control ................................ 353
Upgrading Compatibility between a TI-89, TI-92, and TI-92 Plus...................... 355
Upgrading Your TI-89 Product Code .................................................. 357

Chapter 23: App. 1: Analyzing the Pole-Corner Problem....................................... 362


Applications App. 2: Deriving the Quadratic Formula ............................................ 364
App. 3: Exploring a Matrix ................................................................... 366
App. 4: Exploring cos(x) = sin(x)........................................................ 367
App. 5: Finding Minimum Surface Area of a Parallelepiped................ 368
App. 6: Running a Tutorial Script Using the Text Editor ................. 370
App. 7: Decomposing a Rational Function......................................... 372
App. 8: Studying Statistics: Filtering Data by Categories................. 374
App. 9: CBLé Program for the TI-89 .................................................. 377
App. 10: Studying the Flight of a Hit Baseball ................................... 378
App. 11: Visualizing Complex Zeros of a Cubic Polynomial................ 380
App. 12: Solving a Standard Annuity Problem................................... 382
App. 13: Computing the Time-Value-of-Money .................................. 383
App. 14: Finding Rational, Real, and Complex Factors.................... 384
App. 15: Simulation of Sampling without Replacement ................... 385

vii

TITLETOC.DOC TI-89: Title Page(Intl English) Joan Terrell Revised: 08/03/98 2:44 PM Printed: 08/03/98 2:45 PM Page vii of 8
Appendix A: Quick-Find Locator........................................................................................388
TI.89 Functions and Alphabetical Listing of Operations..............................................................392
Instructions

Appendix B: TI-89 Error Messages............................................................................ 516


Reference TI-89 Modes ........................................................................................... 524
Information TI-89 Character Codes.......................................................................... 529
TI-89 Key Map........................................................................................ 530
Entering Complex Numbers ................................................................ 533
Accuracy Information........................................................................... 536
System Variables and Reserved Names.............................................. 537
EOSé (Equation Operating System) Hierarchy ................................ 538
Regression Formulas ............................................................................ 540
Contour Levels and Implicit Plot Algorithm ...................................... 542
Runge-Kutta Method ............................................................................. 543

Appendix C: Battery Information .............................................................................. 546


Service and Warranty In Case of Difficulty .............................................................................. 547
Information Information about TI Products, Service, and Warranty ................... 548

Index Index ....................................................................................................... 551

viii

TITLETOC.DOC TI-89: Title Page(Intl English) Joan Terrell Revised: 08/03/98 2:44 PM Printed: 08/03/98 2:45 PM Page viii of 8
Special Features of the TI-89

Flash – Electronic The TI-89 uses Flash technology, which For details, refer to:
Upgradability lets you upgrade to future software Chapter 22
versions without buying a new calculator.
As new functionality becomes available, you can electronically
upgrade your TI-89. Future software versions include maintenance
upgrades that will be released free of charge, as well as new
applications and major software upgrades that will be available for
purchase from the TI web site.

Over 500K bytes Over 500K bytes of memory is built into For details, refer to:
of Memory the TI-89. About 188K of user available Chapter 21
RAM (random access memory) lets you
compute and store functions, programs,
and data.
About 384K of user data archive allows you to store data, programs,
or any other variables to a safe location where they cannot be edited
or deleted inadvertently. It also frees up RAM by archiving variables.

Archiving You can store variables in the TI-89’s user For details, refer to:
data archive, a protected area of memory Chapter 21
separate from RAM. The user data archive
lets you:
¦ Store data, programs, or any other variables to a safe location
where they cannot be edited or deleted inadvertently.
¦ Create additional free RAM by archiving variables.
By archiving variables that do not need to be edited frequently, you
can free up RAM for applications that may require additional
memory.

Custom Menu The TI-89’s custom menu feature lets you For details, refer to:
create your own toolbar menu. A custom Chapter 17
menu can contain any available function,
instruction, or set of characters. The TI-89
has a default custom menu that you can
modify or redefine.

Calculator-Based The Calculator-Based Ranger (CBR) lets For details, refer to:
Ranger™ (CBR™) you explore the mathematical and Chapter 16
scientific relationships between distance,
velocity, acceleration, and time using data
collected from activities you perform.
The CBR program for the TI-89 is available at:
http://www.ti.com/calc/docs/89.htm

Special Features of the TI-89 ix

NEW.DOC TI-89: Special Features of the TI-89 (US English) Joan Terrell Revised: 07/26/98 2:14 PM Printed: 07/26/98 2:14 PM Page ix of 2
NEW.DOC TI-89: Special Features of the TI-89 (US English) Joan Terrell Revised: 07/26/98 2:14 PM Printed: 07/26/98 2:14 PM Page 2 of 2
Chapter 1:
Getting Started
Getting the TI.89 Ready to Use ............................................................... 2
Performing Computations........................................................................ 4

1 Graphing a Function ................................................................................. 7

This chapter helps you to get started using the TI-89 quickly. This
chapter takes you through several examples to introduce you to
some of the principle operating and graphing functions of the
TI-89.

After setting up your TI-89 and completing these examples, please


read Chapter 2: Operating the TI-89. You then will be prepared to
advance to the detailed information provided in the remaining
chapters in this guidebook.

Chapter 1: Getting Started 1

GETSTRD.DOC TI-89:Getting Started (US English) Joan Terrell Revised: 08/03/98 1:46 PM Printed: 08/03/98 2:10 PM Page 1 of 8
Getting the TI.89 Ready to Use

The TI-89 comes with four AAA batteries. This section


describes how to install these batteries, turn the unit on for the
first time, set the display contrast, and view the Home screen.

Installing the AAA Four AAA batteries are included in the TI-89 retail package. Remove
Batteries the batteries from the package and install them in the battery
compartment on the back of the calculator. Arrange the batteries
according to the polarity (+ and N) diagram in the battery
compartment.
Important: When replacing Replace the battery cover by inserting the two prongs into the two
batteries in the future, slots at the bottom of the battery compartment, and then push the
ensure that the TI-89 is
turned off by pressing cover until the latch snaps closed.
2 ®.
To replace the batteries without losing any information stored in
memory, follow the directions in Appendix C.

Turning the Unit On To turn the unit on and adjust the display after installing the
and Adjusting the batteries:
Display Contrast 1. Press ´ to turn the TI-89 on.
The Home screen is displayed; however, the display contrast may
be too dark or too dim to see anything. (When you want to turn
the TI-89 off, press 2 ®.)
2. To adjust the display to your satisfaction, hold down ¥ (diamond
symbol inside a green border) and momentarily press | (minus
key) to lighten the display. Hold down ¥ and momentarily press
« (plus key) to darken the display.

About the Home When you first turn on your TI-89, a blank Home screen is displayed.
Screen The Home screen lets you execute instructions, evaluate
expressions, and view results.

2 Chapter 1: Getting Started

GETSTRD.DOC TI-89:Getting Started (US English) Joan Terrell Revised: 07/29/98 1:10 PM Printed: 07/29/98 1:12 PM Page 2 of 8
The following example contains previously entered data and
describes the main parts of the Home screen. Entry/answer pairs in
the history area are displayed in “pretty print.” Pretty print displays
expressions in the same form in which they are written on the board
or in textbooks.

History Area Toolbar


Lists entry/answer pairs Lets you display menus for
you have entered. Pairs selecting operations
scroll up the screen as applicable to the Home
you make new entries. screen. To display a toolbar
menu, press ƒ, „, etc.

Last Entry
Your last entry. Last Answer
Result of your last entry.
Entry Line Note that results are not
Where you enter displayed on the entry line.
expressions or
instructions.
Status Line
Shows the current state
of the calculator.

The following example shows an answer that is not on the


same line as the expression. Note that the answer is longer
than the screen width. An arrow (8) indicates the answer
is continued. The entry line contains ellipsis (…). Ellipsis
indicates the entry is longer than the screen width.

Last Entry
"Pretty print" is ON.
Exponents, roots,
fractions, etc., are Answer Continues
displayed in the same Highlight the answer and
form in which they are press B to scroll right and
traditionally written. view the rest of it. Note that
the answer is not on the
same line as the
expression.

Expression Continues
Press B to scroll right and
view the rest of the entry.
Press 2 A or 2 B to go
to the beginning or end of
the entry line.

Chapter 1: Getting Started 3

GETSTRD.DOC TI-89:Getting Started (US English) Joan Terrell Revised: 07/29/98 1:10 PM Printed: 07/29/98 1:12 PM Page 3 of 8
Performing Computations

This section provides several examples for you to perform that demonstrate some of the
computational features of the TI-89. The history area in each screen was cleared by
pressing ƒ and selecting 8:Clear Home, before performing each example, to illustrate
only the results of the example’s keystrokes.

Steps Keystrokes Display

Showing Computations
1. Compute sin(p/4) and display the 2W2Te
result in symbolic and numeric 4d¸
format. ¥¸

To clear the history area of previous


calculations, press ƒ and select 8:Clear
Home.

Finding the Factorial of Numbers


1. Compute the factorial of several 52I71
numbers to see how the TI-89 ¸
handles very large integers.
202I71
To get the factorial operator (!), press ¸
2 I, select 7:Probability , and then
select 1:!. 302I71
¸

Expanding Complex Numbers


1. Compute (3+5i) 3 to see how the TI-89 c3«52)
handles computations involving dZ3¸
complex numbers.

Finding Prime Factors


1. Compute the factors of the rational „ 2
number 2634492. 2634492d
¸
You can enter “factor” on the entry line by
typing FACTOR on the keyboard, or by
pressing „ and selecting 2:factor(.

2. (Optional) Enter other numbers on


your own.

4 Chapter 1: Getting Started

GETSTRD.DOC TI-89:Getting Started (US English) Joan Terrell Revised: 07/29/98 1:10 PM Printed: 07/29/98 1:12 PM Page 4 of 8
Steps Keystrokes Display

Expanding Expressions
1. Expand the expression (xì 5) 3. „ 3
cX|5dZ3
You can enter “expand” on the entry line
by typing EXPAND on the keyboard, or by d
pressing „ and selecting 3:expand(. ¸
2. (Optional) Enter other expressions
on your own.

Reducing Expressions
1. Reduce the expression „ 7
(x 2ì 2xì 5)/(xì 1) to its simplest form. cXZ2|2X
|5de
You can enter “propFrac” on the entry line
by typing PROPFRAC on the keyboard, or cX|1dd
by pressing „ and selecting 7:propFrac(. ¸

Factoring Polynomials
1. Factor the polynomial (x 2ì 5) with „ 2
respect to x. XZ2|5
bXd
You can enter “factor” on the entry line by
typing FACTOR on the keyboard or by ¸
pressing „ and selecting 2:factor(.

Solving Equations
1. Solve the equation x 2ì 2xì 6=2 with ½S
respect to x. (press D until
the ú mark
You can enter “solve(” on the entry line by
selecting “solve(” from the Catalog menu, points to
by typing SOLVE( on the keyboard, or by solve() ¸
pressing „ and selecting 1:solve(. XZ2|2X|6
The status line area shows the required Á2bXd
syntax for the marked item in the Catalog ¸
menu.

Chapter 1: Getting Started 5

GETSTRD.DOC TI-89:Getting Started (US English) Joan Terrell Revised: 07/29/98 1:10 PM Printed: 07/29/98 1:12 PM Page 5 of 8
Steps Keystrokes Display

Solving Equations with a Domain


Constraint
1. Solve the equation x 2ì 2xì 6=2 with ½S
respect to x where x is greater than (press D until
zero. the ú mark
points to
Pressing Í produces the “with” (I)
operator (domain constraint). solve() ¸
XZ2|2X|6
Á2bXdÍX
2Ã0
¸

Finding the Derivative of Functions


1. Find the derivative of (xì y)3/(x+y) 2 2=cX|Y
with respect to x. dZ3ecX«
YdZ2bXd
This example illustrates using the calculus
differentiation function and how the ¸
function is displayed in “pretty print” in the
history area.

Finding the Integral of Functions


1. Find the integral of xù sin(x) with 2<Xp2
respect to x. WXdbXd
¸
This example illustrates using the calculus
integration function.

6 Chapter 1: Getting Started

GETSTRD.DOC TI-89:Getting Started (US English) Joan Terrell Revised: 07/29/98 1:10 PM Printed: 07/29/98 1:12 PM Page 6 of 8
Graphing a Function

The example in this section demonstrates some of the graphing capabilities of the TI-89.
It illustrates how to graph a function using the Y= Editor. You will learn how to enter a
function, produce a graph of the function, trace a curve, find a minimum point, and
transfer the minimum coordinates to the Home screen.
Explore the graphing capabilities of the TI-89 by graphing the function y=(|x 2ì 3|ì 10)/2.

Steps Keystrokes Display

1. Display the Y= Editor. ¥#

entry line

2. Enter the function (abs(x 2ì 3)ì 10)/2. c½A


¸XZ2|3 “pretty print”
d|10de2 display of the
function in the
¸ entry line

3. Display the graph of the function. „ 6


Select 6:ZoomStd by pressing 6 or by
moving the cursor to 6:ZoomStd and
pressing ¸.

4. Turn on Trace. …
The tracing cursor, and the x and y
coordinates are displayed.

tracing
cursor

Chapter 1: Getting Started 7

GETSTRD.DOC TI-89:Getting Started (US English) Joan Terrell Revised: 07/29/98 1:10 PM Printed: 07/29/98 1:12 PM Page 7 of 8
Steps Keystrokes Display

5. Open the MATH menu and select ‡DD¸


3:Minimum.

6. Set the lower bound. B.. . B


Press B (right cursor) to move the tracing ¸
cursor until the lower bound for x is just to
the left of the minimum node before
pressing ¸ the second time.

7. Set the upper bound. B.. . B


Press B (right cursor) to move the tracing
cursor until the upper bound for x is just to
the right of the minimum node.

8. Find the minimum point on the graph ¸


between the lower and upper bounds.

minimum point
minimum coordinates

9. Transfer the result to the Home ¥·


screen, and then display the Home "
screen.
¥ · is the shortcut for copying graph
coordinates to Home screen history.

8 Chapter 1: Getting Started

GETSTRD.DOC TI-89:Getting Started (US English) Joan Terrell Revised: 07/29/98 1:10 PM Printed: 07/29/98 1:12 PM Page 8 of 8
Chapter 2:
Operating the TI.89
Turning the TI-89 On and Off ................................................................ 10
Setting the Display Contrast .................................................................. 11

2 The Keyboard........................................................................................... 12
Entering Alphabetic Characters ............................................................ 15
Home Screen............................................................................................ 16
Entering Numbers ................................................................................... 18
Entering Expressions and Instructions ................................................ 19
Formats of Displayed Results................................................................ 22
Editing an Expression in the Entry Line .............................................. 25
TI-89 Menus ............................................................................................. 27
Using the Custom Menu ......................................................................... 30
Selecting an Application......................................................................... 31
Setting Modes .......................................................................................... 33
Using 2 ˆ Clean Up to Start a New Problem................................. 35
Using the Catalog to Select a Command .............................................. 36
Storing and Recalling Variable Values.................................................. 37
Reusing a Previous Entry or the Last Answer ..................................... 39
Auto-Pasting an Entry or Answer from the History Area................... 41
Status Line Indicators in the Display .................................................... 42
Finding the Software Version and Serial Number............................... 44

This chapter gives a general overview of the TI-89 and describes


its basic operations. By becoming familiar with the information in
this chapter, you can use the TI-89 to solve problems more
effectively.

The Home screen is the most commonly used application on the


TI-89. You can use the Home screen to perform a wide variety of
mathematical operations.

Chapter 2: Operating the TI.89 9

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 08/03/98 1:50 PM Printed: 08/03/98 2:11 PM Page 9 of 36
Turning the TI-89 On and Off

You can turn the TI-89 on and off manually by using the
´ and 2 ® (or ¥ ® ) keys. To prolong battery life, the
APDé (Automatic Power Down) feature lets the TI-89 turn
itself off automatically.

Turning the TI-89 Press ´.


On ¦ If you turned the unit off by pressing 2 ®, the TI-89 returns to
the Home screen.
¦ If you turned the unit off by pressing ¥ ® or if the unit turned
itself off through APD, the TI-89 returns to whichever application
you used last.

Turning the TI-89 You can use either of the following keys to turn off the TI-89.
Off
Press: Description
Note: ® is the second 2® Settings and memory contents are retained by the
function of the ´ key. (press 2 Constant Memoryé feature. However:
and then
¦ You cannot use 2 ® if an error message is
press ® )
displayed.
¦ When you turn the TI-89 on again, it always
displays the Home screen (regardless of the last
application you used).
¥® Similar to 2 ® except:
(press ¥
¦ You can use ¥ ® if an error message is
and then
displayed.
press ® )
¦ When you turn the TI-89 on again, it will be
exactly as you left it.

APD (Automatic After several minutes without any activity, the TI-89 turns itself off
Power Down) automatically. This feature is called APD.
When you press ´, the TI-89 will be exactly as you left it.
¦ The display, cursor, and any error conditions are exactly as you
left them.
¦ All settings and memory contents are retained.
APD does not occur if a calculation or program is in progress, unless
the program is paused.

Batteries The TI-89 uses four AAA alkaline batteries and a back-up lithium
battery. To replace the batteries without losing any information
stored in memory, follow the directions in Appendix C.

10 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 10 of 36
Setting the Display Contrast

The brightness and contrast of the display depend on room


lighting, battery freshness, viewing angle, and the adjustment
of the display contrast. The contrast setting is retained in
memory when the TI-89 is turned off.

Adjusting the You can adjust the display contrast to suit your viewing angle and
Display Contrast lighting conditions.
Contrast keys
To: Press and hold both: VAR-LINK O

Increase (darken) ¥ and «


the contrast
CHAR U
Decrease (lighten) ¥ and |
the contrast

If you press and hold ¥ « or ¥ | too long, the display may go


completely black or blank. To make finer adjustments, hold ¥ and
then tap « or |.

When to Replace As the batteries get low, the display begins to dim (especially during
Batteries calculations) and you must increase the contrast. If you have to
increase the contrast frequently, replace the four AAA batteries.
Tip: The display may be The status line along the bottom of the display also gives battery
very dark after you change information.
batteries. Use ¥ | to
lighten the display.
Indicator in status line Description
Batteries are low.

Replace batteries as soon as possible.

Chapter 2: Operating the TI.89 11

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 11 of 36
The Keyboard

Use this section to familiarize yourself with the various keys on


the keyboard. Most keys can perform two or more functions,
depending on whether you first press a modifier key.

Overview of Some
Important Keys

ƒ through Š function
keys let you select
toolbar menus. Used
with ¥, you can also
select applications N cancels a menu or
(page 32). dialog box.

2, ¥, ¤, and j A, B, C, and D move


modify the action of the cursor.
other keys (page 13).

O lets you select an


" displays the Home application (page 31).
screen, where you
perform most M erases the entry
calculations. line. Also used to delete an
entry/answer pair in the
X, Y, and Z are often history area.
used in symbolic
calculations. ½ lets you select
from a list of functions
and instructions (page 36).
3 lets you view and
change mode settings that Adjust the contrast by
determine how numbers pressing ¥ | (lighten) or
and graphs are interpreted, ¥ « (darken).
calculated, and displayed
(page 33).
¸ e valuates an expression,
executes an instruction, selects a
menu item, etc.

You can use ¥ ¸ to display an


approximate numerical result.

Moving the Cursor To move the cursor in a particular direction, press the appropriate
cursor key (A, B, C, or D).
Some TI-89 applications also let you press:
¦ 2 A or 2 B to move to the beginning or end of a line.
¦ 2 C or 2 D to move up or down one screen at a time.
¦ ¥ C or ¥ D to move to the top or bottom of a page.

12 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 12 of 36
Modifier Keys Modifier Description
2 Accesses the second function of the next key you press.
On the keyboard, these are printed in the same color as
the 2 key.
¥ Activates keys that select certain applications (page 32),
(diamond) menu items, and other operations from the keyboard.
On the keyboard, these are printed in the same color as
the ¥ key.
Note: For information about j Used to type alphabetic letters, including a space
using j and ¤, refer to character. On the keyboard, these are printed in the
“Entering Alphabetic
Characters” on page 15. same color as the j key.
¤ Types an uppercase character for the next letter key you
(shift) press. ¤ is also used with B and A to highlight
characters in the entry line for editing purposes.

Example of 2 and For example, the N key can perform three operations, depending
¥ Modifiers on whether you first press 2 or ¥.

2 K accesses ¥ 7 accesses PASTE ,


QUIT , which is the which is the same color as
same color as the QUIT PASTE the ¥ key.
2 key. ESC

N accesses the
key’s primary
function.

Some keys perform only one additional operation, which may require
either 2 or ¥, depending on the color in which the operation is
printed on the keyboard and where it is positioned above the key.
¥ 5 accesses CUT ,
which is the same color as
CUT the ¥ key.
2nd

When you press a modifier such as 2 or ¥, a 2ND or 2 indicator


appears in the status line at the bottom of the display. If you press a
modifier by accident, press it again (or press N ) to cancel its
effect.

Chapter 2: Operating the TI.89 13

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 13 of 36
Other Important Key Description
Keys You Need to ¥# Displays the Y= Editor (Chapter 6).
Be Familiar With
¥$ Displays the Window Editor (Chapter 6).
¥% Displays the Graph screen (Chapter 6).
¥& Sets parameters for the Table screen (Chapter 13).
¥' Displays the Table screen (Chapter 13).
¥ 5, Let you edit entered information by performing a cut,
¥ 6, copy, and paste operation.
¥7
2a Switches the active side in a split screen (Chapter 14).
2¾ Toggles the custom menu on and off (page 30).
2Ž Converts measurement units (Chapter 4).
¥ Designates a measurement unit (Chapter 4).
0 Deletes the character to the left of the cursor
(backspaces).
2/ Toggles between insert and overtype mode for
entering information (page 26).
¥8 Deletes the character to the right of the cursor.
Í Enters the “with” operator, which is used in symbolic
calculations (Chapter 3).
2 <, Performs integrations and derivatives (Chapter 3).
2=
2’ Designates an angle in polar, cylindrical, and spherical
coordinates.
2I Displays the MATH menu.
2¯ Displays the MEMORY screen (Chapter 21).
2 ° Displays the VAR-LINK screen for managing variables
(Chapter 21).
2£ Recalls the contents of a variable (page 38).
29 Displays the UNITS dialog box (Chapter 4).
2¿ Displays the CHAR menu, which lets you select Greek
letters, international accented characters, etc.
(Chapter 18).
2 ±, Recalls the previous entry and the last answer,
2² respectively (page 39).

14 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 14 of 36
Entering Alphabetic Characters

Alphabetic characters are used in expressions such as xñ+yñ,


to enter variable names (page 37), and in the Text Editor
(Chapter 18).

Entering a Letter The letters x, y, z, and t are commonly used in algebraic expressions.
Character So that you can type them quickly, these letters are primary keys on
the keyboard.
X Y Z T

Other letters are available as the j function of another key,


similar to the 2 and ¥ modifiers described in the previous section.
For example:

2 È types ´, which j [A] types an A,


is the same color as which is the same
A
the 2 key.
´= color as the j key.

Typing Lowercase To: Press:


and Uppercase
Type a single lowercase alpha character j and then the
Letters
(status line shows ) letter key
Note: You do not need j Type a single uppercase alpha character ¤ and then the letter
or alpha-lock to type x, y, z, (status line shows + ) key
or t. But you must use ¤ or
uppercase ALPHA-lock for Type a space  (alpha function of
X, Y, Z, or T.
the · key)
Turn on lowercase alpha-lock 2™
(status line shows )
Turn on uppercase ALPHA-lock ¤™
(status line shows )
Note: Alpha-lock is always Turn off either alpha-lock j
turned off when you change
applications, such as going
from the Text Editor to the While either type of alpha-lock is on:
Home screen.
¦ To type a period, comma, or other character that is the primary
function of a key, you must turn alpha-lock off.
¦ To type a second function character such as 2 [, you do not
need to turn alpha-lock off. After you type the character, alpha-
lock remains on.

For Special Use the 2 ¿ menu to select from a variety of special


Characters characters.

Chapter 2: Operating the TI.89 15

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 15 of 36
Home Screen

When you first turn on your TI-89, the Home screen is


displayed. The Home screen lets you execute instructions,
evaluate expressions, and view results.

Displaying the When you turn on the TI-89 after it has been turned off with 2 ®,
Home Screen the display always shows the Home screen. (If the TI-89 turned itself
off through APD, the display shows the previous screen, which may
or may not have been the Home screen.)
To display the Home screen at any time:
¦ Press ".
— or —
¦ Press 2 K.
— or —
¦ Press O ¸ or O 1.

Parts of the Home The following example gives a brief description of the main parts of
Screen the Home screen.
History Area
Lists entry/answer pairs
you have entered.

Toolbar
Press ƒ, „, etc., to
display menus for selecting
Pretty Print Display
operations.
Shows exponents,
roots, fractions, etc.,
in traditional form.
Refer to page 22.
Last Answer
Last Entry Result of your last entry.
Your last entry. Note that results are not
displayed on the entry line.
Entry Line
Where you enter
expressions or Status Line
instructions. Shows the current state
of the TI-89.

History Area The history area shows up to eight previous entry/answer pairs
(depending on the complexity and height of the displayed
expressions). When the display is filled, information scrolls off the
top of the screen. You can use the history area to:
¦ Review previous entries and answers. You can use the cursor to
view entries and answers that have scrolled off the screen.
¦ Recall or auto-paste a previous entry or answer onto the entry
line so that you can re-use or edit it. Refer to pages 40 and 41.

16 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 16 of 36
Scrolling through Normally, the cursor is in the entry line. However, you can move the
the History Area cursor into the history area.

To: Do this:
View entries or answers 1. From the entry line, press C to
that have scrolled off highlight the last answer.
the screen
2. Continue using C to move the
cursor from answer to entry, up
through the history area.
Go to the oldest or newest If the cursor is in the history area, press
history pair ¥ C or ¥ D, respectively.
Note: For an example of View an entry or answer Move the cursor to the entry or answer.
viewing a long answer, refer that is too long for one Use A and B to scroll left and right (or
to page 21.
line (ú is at end of line) 2 A and 2 B to go to the beginning
or end), respectively.
Return the cursor to the Press N, or press D until the cursor is
entry line back on the entry line.

History Information Use the history indicator on the status line for information about the
on the Status Line entry/answer pairs. For example:

If the cursor Total number of Maximum number


is on the pairs that are of pairs that can
entry line: currently saved. be saved.
8/30

If the cursor Pair number of Total number of


is in the the highlighted pairs that are
history area: entry or answer. currently saved.

By default, the last 30 entry/answer pairs are saved. If the history


area is full when you make a new entry (indicated by 30/30), the new
entry/answer pair is saved and the oldest pair is deleted. The history
indicator does not change.

Modifying the To: Do this:


History Area Change the number of Press ƒ and select 9:Format, or press
pairs that can be saved ¥ Í. Then press B, use C or D to
highlight the new number, and press
¸ twice.
Clear the history area Press ƒ and select 8:Clear Home, or
and delete all saved pairs enter ClrHome on the entry line.
Delete a particular Move the cursor to either the entry or
entry/answer pair answer. Press 0 or M.

Chapter 2: Operating the TI.89 17

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 17 of 36
Entering Numbers

The TI-89’s keypad lets you enter positive and negative


numbers for your calculations. You can also enter numbers in
scientific notation.

Entering a Negative 1. Press the negation key ·. (Do not use the subtraction key |.)
Number 2. Type the number.
To see how the TI-89 evaluates a negation in relation to other
functions, refer to the Equation Operating System (EOS) hierarchy in
Appendix B. For example, it is important to know that functions such
as xñ are evaluated before negation.
Evaluated as ë(2ñ)
Use c and d to include
parentheses if you have
any doubt about how a
negation will be
evaluated.
Important: Use | for If you use | instead of · (or vice versa), you may get an error
subtraction and use message or you may get unexpected results. For example:
· for negation.
¦ 9 p · 7 = ë 63
— but —
9 p | 7 displays an error message.
¦ 6 |2 = 4
— but —
6 · 2 = ë 12 since it is interpreted as 6(ë 2), implied multiplication.

¦ ·2 «4 = 2
— but —
| 2 « 4 subtracts 2 from the previous answer and then adds 4.

Entering a Number 1. Type the part of the number that precedes the exponent. This
in Scientific value can be an expression.
Notation 2. Press ^. E appears in the display.
3. Type the exponent as an integer with up to 3 digits. You can use a
negative exponent.
Entering a number in scientific notation does not cause the answers
to be displayed in scientific or engineering notation.
The display format is
determined by the mode
settings (pages 22
through 24) and the Represents 123.45 × 10 - 2
magnitude of the number.

18 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 18 of 36
Entering Expressions and Instructions

You perform a calculation by evaluating an expression. You


initiate an action by executing the appropriate instruction.
Expressions are calculated and results are displayed
according to the mode settings described on page 22.

Definitions Expression Consists of numbers, variables, operators, functions,


and their arguments that evaluate to a single answer.
For example: prñ +3.
¦ Enter an expression in the same order that it
normally is written.
¦ In most places where you are required to enter a
value, you can enter an expression.
Operator Performs an operation such as +, ì, ù, ^.
¦ Operators require an argument before and after the
operator. For example: 4+5 and 5^2.
Note: Appendix A describes Function Returns a value.
all of the TI-89’s built-in
functions and instructions. ¦ Functions require one or more arguments
(enclosed in parentheses) after the function. For
example: ‡(5) and min(5,8).
Note: This guidebook uses Instruction Initiates an action.
the word command as a
generic reference to both ¦ Instructions cannot be used in expressions.
functions and instructions.
¦ Some instructions do not require an argument. For
example: ClrHome.
¦ Some require one or more arguments. For
example: Circle 0,0,5.
For instructions, do not put the
arguments in parentheses.

Implied The TI-89 recognizes implied multiplication, provided it does not


Multiplication conflict with a reserved notation.

If you enter: The TI-89 interprets it as:


Valid 2p 2ù p
4 sin(46) 4ù sin(46)
5(1+2) or (1+2)5 5ù (1+2) or (1+2)ù 5
[1,2]a [a 2a]
2(a) 2ù a
Invalid xy Single variable named xy
a(2) Function call
a[1,2] Matrix index to element a[1,2]

Chapter 2: Operating the TI.89 19

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 19 of 36
Parentheses Expressions are evaluated according to the Equation Operating
System (EOS) hierarchy described in Appendix B. To change the
order of evaluation or just to ensure that an expression is evaluated
in the order you require, use parentheses.
Calculations inside a pair of parentheses are completed first. For
example, in 4(1+2), EOS first evaluates (1+2) and then multiplies the
answer by 4.

Entering an Type the expression, and then press ¸ to evaluate it. To enter a
Expression function or instruction name on the entry line, you can:
¦ Press its key, if available. For example, press 2 W.
— or —
¦ Select it from a menu, if available. For example, select 2:abs from
the Number submenu of the MATH menu.
— or —
¦ Use j to type the name letter-by-letter from the keyboard. You
can use any mixture of uppercase or lowercase letters. For
example, type sin( or Sin( .
Type the function name in this
example.
Example Calculate 3.76 ÷ (ë 7.9 + ‡5) + 2 log 45.
3.76 e c · 7.9 « 3.76/(ë 7.9+‡(
2]
2 ] inserts “‡( ”
because its argument
must be in parentheses.

5 dd 3.76/(ë 7.9+‡(5))

Use d once to close


‡(5) and again to
close (ë7.9 + ‡5).

Note: You can also select « 2 2 ™ LOG j


log by using ½ 3.76/(ë 7.9+‡(5))+2log(45)
c 45 d
(page 36).
log requires ( ) around
its argument.

Entering Multiple To enter more than one Displays last result only.
Expressions on a expression or instruction
Line at a time, separate them
with a colon by pressing
2 Ë.
! is displayed when you press §
to store a value to a variable.

20 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 20 of 36
If an Entry or In the history area, if both the entry and its answer cannot be
Answer Is Too Long displayed on one line, the answer is displayed on the next line.
for One Line If an entry or answer is
too long to fit on one line,
ú is displayed at the end
of the line.
To view the entire entry or answer:
1. Press C to move the cursor from the entry line up into the history
area. This highlights the last answer.
2. As necessary, use C and D to highlight the entry or answer you
want to view. For example, C moves from answer to entry, up
through the history area.
Note: When you scroll to 3. Use B and A or
the right, 7 is displayed at 2 B and 2 A to
the beginning of the line.
scroll right and left.

4. To return to the entry line, press N.

Continuing a When you press ¸ to evaluate an expression, the TI-89 leaves


Calculation the expression on the entry line and highlights it. You can continue
to use the last answer or enter a new expression.

If you press: The TI-89:


«, |, p, e, Replaces the entry line with the variable ans(1),
Z, or § which lets you use the last answer as the
beginning of another expression.
Any other key Erases the entry line and begins a new entry.

Example Calculate 3.76 ÷ (ë 7.9 + ‡5). Then add 2 log 45 to the result.
3.76 e c · 7.9 «
2]5 dd¸
« 2 2 ™ LOG j
c 45 d
¸
When you press «, the entry line is
replaced with the variable ans(1), which
contains the last answer.

Stopping a When a calculation is in progress, BUSY appears on the right end of


Calculation the status line. To stop the calculation, press ´.
There may be a delay before the
“break” message is displayed.
Press N to return to the current
application.

Chapter 2: Operating the TI.89 21

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 21 of 36
Formats of Displayed Results

A result may be calculated and displayed in any of several


formats. This section describes the TI-89 modes and their
settings that affect the display formats. To check or change
your current mode settings, refer to page 33.

Pretty Print Mode By default, Pretty Print = ON. Exponents, roots, fractions, etc., are
displayed in the same form in which they are traditionally written.
You can use 3 to turn pretty print off and on.

Pretty Print
ON OFF

p xì 3 p^2, p/2, ‡((xì 3)/2)


p ñ, ,
2 2

The entry line does not show an expression in pretty print. If pretty
print is turned on, the history area will show both the entry and its
result in pretty print after you press ¸.

Exact/Approx Mode By default, Exact/Approx = AUTO. You can use 3 to select from
three settings.
Because AUTO is a combination of
the other two settings, you should be
familiar with all three settings.
Note: By retaining fractional EXACT — Any result that is not a whole number is displayed in a
and symbolic forms, EXACT fractional or symbolic form (1/2, p, 2, etc.).
reduces rounding errors that
could be introduced by
intermediate results in Shows whole-number results.
chained calculations.
Shows simplified fractional results.

Shows symbolic p.
Shows symbolic form of roots that
cannot be evaluated to a whole
number.

Press ¥ ¸ to temporarily
override the EXACT setting and
display a floating-point result.

22 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 22 of 36
APPROXIMATE — All numeric results, where possible, are displayed
in floating-point (decimal) form.

Fractional results are


evaluated numerically.

Note: Results are rounded


to the precision of the TI-89
and displayed according to Symbolic forms, where
current mode settings. possible, are evaluated
numerically.

Because undefined variables cannot be evaluated, they are


treated algebraically. For example, if the variable r is undefined,
prñ = 3.14159⋅rñ.

AUTO — Uses the EXACT form where possible, but uses the
APPROXIMATE form when your entry contains a decimal point. Also,
certain functions may display APPROXIMATE results even if your
entry does not contain a decimal point.

A decimal in the entry forces a


Tip: To retain an EXACT floating-point result.
form, use fractions instead
of decimals. For example,
use 3/2 instead of 1.5.

The following chart compares the three settings.

Exact Approximate Auto


Entry Result Result Result
8/4 2 2. 2
Tip: To evaluate an entry in
APPROXIMATE form, 8/6 4/3 1.33333 4/3
regardless of the current
8.5ù 3 51/2 25.5 25.5 A decimal in the
setting, press ¥ ¸. entry forces a
floating-point
‡(2)/2 2 .707107 2 result in AUTO .
2 2

pù 2 2⋅p 6.28319 2⋅p

pù 2. 2⋅p 6.28319 6.28319

Chapter 2: Operating the TI.89 23

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 23 of 36
Display Digits Mode By default, Display Digits = FLOAT 6, which means that results are
rounded to a maximum of six digits. You can use 3 to select
different settings. The settings apply to all exponential formats.
Internally, the TI-89 calculates and retains all decimal results with up
to 14 significant digits (although a maximum of 12 are displayed).

Setting Example Description


Note: Regardless of the FIX 123. (FIX 0) Results are rounded to the
Display Digits setting, the (0 – 12) 123.5 (FIX 1) selected number of decimal
full value is used for internal
floating-point calculations to 123.46 (FIX 2) places.
ensure maximum accuracy. 123.457 (FIX 3)
FLOAT 123.456789012 Number of decimal places varies,
depending on the result.
Note: A result is FLOAT 1.E 2 (FLOAT 1) Results are rounded to the total
automatically shown in (1 – 12) 1.2E 2 (FLOAT 2) number of selected digits.
scientific notation if its
magnitude cannot be 123. (FLOAT 3)
displayed in the selected 123.5 (FLOAT 4)
number of digits. 123.46 (FLOAT 5)
123.457 (FLOAT 6)

Exponential Format By default, Exponential Format = NORMAL.


Mode You can use 3 to select from three
settings.

Setting Example Description


Note: In the history area, a NORMAL 12345.6 If a result cannot be displayed in the
number in an entry is number of digits specified by the
displayed in SCIENTIFIC if
its absolute value is less
Display Digits mode, the TI-89
than .001. switches from NORMAL to
SCIENTIFIC for that result only.

SCIENTIFIC 1.23456E 4 1.23456 × 10 4

Exponent (power of 10).


Always 1 digit to the left of the
decimal point.
ENGINEERING 12.3456E 3 12.3456 × 10 3

Exponent is a multiple of 3.
May have 1, 2, or 3 digits to the
left of the decimal point.

24 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 24 of 36
Editing an Expression in the Entry Line

Knowing how to edit an entry can be a real time-saver. If you


make an error while typing an expression, it’s often easier to
correct the mistake than to retype the entire expression.

Removing the After you press ¸ to evaluate an expression, the TI-89 leaves
Highlight from the that expression on the entry line and highlights it. To edit the
Previous Entry expression, you must first remove the highlight; otherwise, you may
clear the expression accidentally by typing over it.
To remove the highlight,
move the cursor toward
the side of the expression
you want to edit.
B moves the cursor to the
end of the expression.
A moves the cursor to the beginning.

Moving the Cursor After removing the highlight, move the cursor to the applicable
position within the expression.

To move the cursor: Press:


Note: If you accidentally Left or right within an expression. A or B Hold the pad to
press C instead of A or B, repeat the
the cursor moves up into the
history area. Press N or movement.
press D until the cursor To the beginning of the expression. 2A
returns to the entry line.
To the end of the expression. 2B

Deleting a Character To delete: Press:


The character to the 0 Hold 0 to delete multiple
left of the cursor. characters.
The character to the ¥0
right of the cursor.
All characters to the M If there are no characters to the
right of the cursor. (once only) right of the cursor, M erases
the entire entry line.

Clearing the Entry To clear the entry line, press:


Line ¦ M if the cursor is at the beginning or end of the entry line.
— or —
¦ M M if the cursor is not at the beginning or end of the
entry line. The first press deletes all characters to the right of the
cursor, and the second clears the entry line.

Chapter 2: Operating the TI.89 25

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 25 of 36
Inserting or The TI-89 has both an insert and an overtype mode. By default, the
Overtyping a TI-89 is in the insert mode. To toggle between the insert and
Character overtype modes, press 2 /.

If the TI-89 is in: The next character you type:


Tip: Look at the cursor to Will be inserted at the cursor.
see if you’re in insert or Thin cursor between
overtype mode. characters

Will replace the highlighted


Cursor highlights character.
a character

Replacing or First, highlight the applicable characters. Then, replace or delete all
Deleting Multiple the highlighted characters.
Characters
To: Do this:
Highlight multiple 1. Move the cursor to either side of the
characters characters you want to highlight.

To replace sin( with cos(, place


the cursor beside sin.

2. Hold ¤ and press A or B to highlight


characters left or right of the cursor.

Hold ¤ and press B B B B.

Tip: When you highlight Replace the Type the new characters.
characters to replace, highlighted
remember that some
function keys automatically characters
add an open parenthesis.
For example, pressing — or —
2 X types cos(. Press 2 X.

Delete the Press 0.


highlighted
characters

26 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 26 of 36
TI-89 Menus

To leave the keyboard uncluttered, the TI-89 uses menus to


access many operations. This section gives an overview of
how to select an item from any menu. Specific menus are
described in the appropriate chapters of this guidebook.

Displaying a Menu Press: To display:

ƒ, „, A toolbar menu — Drops down from the toolbar at the


etc. top of most application screens. Lets you select
operations useful for that application.
O APPLICATIONS menu — Lets you select from the list
of TI-89 applications. Refer to page 31.
2¿ CHAR menu — Lets you select from categories of
special characters (Greek, math, etc.).
2I MATH menu — Lets you select from categories of
math operations.
½ CATALOG menu — Lets you select from a complete,
alphabetic list of the TI-89’s built-in functions and
instructions.
2¾ CUSTOM menu — Lets you access a menu that you
can customize to list any available function,
instruction, or character. The TI-89 includes a default
custom menu, which you can modify or redefine.
Refer to page 30 and to Chapter 17: Programming.

Selecting an Item To select an item from the displayed menu, either:


from a Menu ¦ Press the number or letter shown to the left of that item. For a
letter, press j and then the letter key.
— or —
¦ Use the cursor pad D and C to highlight the item, and then press
¸. (Note that pressing C from the first item does not move
the highlight to the last item, nor vice versa.)

6 indicates that a menu will drop down


from the toolbar when you press „.

To select factor, press 2 or D ¸.


This closes the menu and inserts the
function at the cursor location.

factor(

Chapter 2: Operating the TI.89 27

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 27 of 36
Items Ending with If you select a menu item ending with ú, a submenu is displayed. You
ú (Submenus) then select an item from the submenu.

Note: Because of limited


screen size, the TI-89 For example, List displays a
overlaps these menus as: submenu that lets you select a
specific List function.

ï indicates that you can use


the cursor pad to scroll down
for additional items.

For items that have a submenu, you can use the cursor pad as
described below.
¦ To display the submenu for the highlighted item, press B.
(This is the same as selecting that item.)
¦ To cancel the submenu without making a selection, press A.
(This is the same as pressing N.)

Items Containing “. . .” If you select a menu item containing “. . .” (ellipsis marks), a dialog
(Dialog Boxes) box is displayed for you to enter additional information.

For example, Save Copy As ...


displays a dialog box that prompts
you to enter a folder name and a
variable name.

" indicates that you can press B to


display and select from a menu.

An input box indicates that you


must type a value. Use j as
necessary (page 15).

After typing in an input box such as Variable, you must


press ¸ twice to save the information and close
the dialog box.

Canceling a Menu To cancel the current menu without making a selection, press N.
Depending on whether any submenus are displayed, you may need to
press N several times to cancel all displayed menus.

28 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 28 of 36
Moving from One To move from one toolbar menu to another without making a
Toolbar Menu to selection, either:
Another ¦ Press the key (ƒ, „, etc.) for the other toolbar menu.
— or —
¦ Use the cursor pad to move to the next (press B ) or previous
(press A ) toolbar menu. Pressing B from the last menu moves to
the first menu, and vice versa.
When using B, be sure that an item with a submenu is not
highlighted. If so, B displays that item’s submenu instead of moving
to the next toolbar menu.

Example: Selecting Round the value of p to three decimal places. Starting from a clear
a Menu Item entry line on the Home screen:
1. Press 2 I to display the MATH menu.
2. Press 1 to display the Number
submenu. (Or press ¸ since
the first item is automatically
highlighted.)
3. Press 3 to select round. (Or press
D D and ¸.)
4. Press 2 T b 3 d and then
¸ to evaluate the expression.

Selecting the function in


Step 3 automatically
typed round( on the
entry line.

Chapter 2: Operating the TI.89 29

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 29 of 36
Using the Custom Menu

The TI-89 has a custom menu that you can turn on and off at
any time. You can use the default custom menu or create your
own as described in Chapter 17: Programming.

Turning the Custom When you turn on the custom menu, it replaces the normal toolbar
Menu On and Off menu. When you turn it off, the normal menu returns. For example,
from the Home screen’s normal toolbar menu:

Note: You can also turn the


custom menu on and off by
entering CustmOn or
CustmOff in the entry line Press 2 ¾ to toggle the custom
and pressing ¸. menu on and off.

Tip: A custom menu can Unless the menu has been modified,
give you quick access to the default custom menu appears.
commonly used items.
Chapter 17 shows you how ƒ Vars — Common variable
to create custom menus for
names.
the items you use most
often. „ f(x) — Function names such as
f(x), g(x), and f(x,y).
… Solve — Items related to solving equations.
† Units — Common units such as _m, _ft, and _l.
‡ Symbols — Symbols such as #, ?, and ~.
2 ˆ Internat’l — Common accented characters such as è, é, and ê.
2 ‰ Tools — ClrHome, NewProb, and CustmOff.

Restoring the If a custom menu other than the default is displayed and you want to
Default Custom restore the default:
Menu 1. From the Home screen, use 2 ¾ to turn off the custom
menu and display the Home screen’s normal toolbar menu.
Note: The previous custom 2. Display the 2 ˆ Clean Up
menu is erased. If that menu toolbar menu, and select
was created with a program
(Chapter 17), it can be 3:Restore custom default.
recreated later by running
This pastes the commands used
the program again.
to create the default menu into
the entry line.
3. Press ¸ to execute the commands and restore the default.

30 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 30 of 36
Selecting an Application

The TI-89 has different applications that let you solve and
explore a variety of problems. You can select an application
from a menu, or you can access commonly used applications
directly from the keyboard.

From the 1. Press O to display a menu that lists the applications.


APPLICATIONS Menu 2. Select an application. Either:
¦ Use the cursor pad D or C to
Note: To cancel the menu highlight the application and
without making a selection, then press ¸.
press N. — or —
¦ Press the number for that
application.

Application: Lets you:


Home Enter expressions and instructions, and
perform calculations.
Y= Editor Define, edit, and select functions or
equations for graphing (Chapters 6 – 11).
Window Editor Set window dimensions for viewing a graph
(Chapter 6).
Graph Display graphs (Chapter 6).
Table Display a table of variable values that
correspond to an entered function
(Chapter 13).
Data/Matrix Editor Enter and edit lists, data, and matrices. You
can perform statistical calculations and
graph statistical plots (Chapters 15 and 16).
Program Editor Enter and edit programs and functions
(Chapter 17).
Text Editor Enter and edit a text session (Chapter 18).
Numeric Solver Enter an expression or equation, define
values for all but one variable, and then solve
for the unknown variable (Chapter 19).

Chapter 2: Operating the TI.89 31

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 31 of 36
From the Keyboard You can access commonly used applications from the keyboard.

Application: Press:
TI-89
Home "
Y= Editor ¥# Applications listed
above ƒ, „ etc.,
Window Editor ¥$ are printed in the
same color as ¥.
Graph ¥%
Table Setup ¥&
Table Screen ¥' F1
Y= WINDOW
F2
GRAPH
F3
TBLSet
F4
TABLE
F5

For example, ¥ # is the


same as pressing ¥ and APPS
then ƒ.
HOME

32 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 32 of 36
Setting Modes

Modes control how numbers and graphs are displayed and


interpreted. Mode settings are retained by the Constant
Memoryé feature when the TI-89 is turned off. All numbers,
including elements of matrices and lists, are displayed
according to the current mode settings.

Checking Mode Press 3 to display the MODE dialog box, which lists the modes
Settings and their current settings.
There are three pages of mode listings.
Press ƒ, „, or … to quickly display a
particular page.

Indicates you can ! indicates that you can


scroll down to see press B or A to display
additional modes. and select from a menu.

Note: Modes that are not currently valid are dimmed. For example,
on Page 2, Split 2 App is not valid when Split Screen = FULL. When you
scroll through the list, the cursor skips dimmed settings.

Changing Mode From the MODE dialog box:


Settings 1. Highlight the mode setting you want to change. Use D or C (with
ƒ and „ ) to scroll through the list.
2. Press B or A to display a menu that lists the valid settings. The
current setting is highlighted.
Tip: To cancel a menu and 3. Select the applicable setting. Either:
return to the MODE dialog
box without making a ¦ Use D or C to highlight the setting and press ¸.
selection, press N. — or —
¦ Press the number or letter for that setting.
4. Change other mode settings, if necessary.
5. When you finish all your changes, press ¸ to save the
changes and exit the dialog box.
Important: If you press N instead of ¸ to exit the MODE
dialog box, any mode changes you made will be canceled.

Chapter 2: Operating the TI.89 33

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 33 of 36
Overview of the Mode Description
Modes Graph Type of graphs to plot: FUNCTION, PARAMETRIC,
POLAR, SEQUENCE, 3D, or DE.

Note: For detailed Current Folder used to store and recall variables. Unless you
information about a Folder have created additional folders, only the MAIN folder
particular mode, look in the is available. Refer to “Using Folders to Store
applicable section of this
guidebook. Independent Sets of Variables” in Chapter 5.
Display Maximum number of digits (FLOAT) or fixed number
Digits of decimal places (FIX) displayed in a floating-point
result. Regardless of the setting, the total number of
displayed digits in a floating-point result cannot
exceed 12. Refer to page 24.
Angle Units in which angle values are interpreted and
displayed: RADIAN or DEGREE.
Exponential Notation used to display results: NORMAL,
Format SCIENTIFIC, or ENGINEERING. Refer to page 24.
Complex Format used to display complex results, if any:
Format REAL (complex results are not displayed unless you
use a complex entry), RECTANGULAR, or POLAR.
Vector Format used to display 2- and 3-element vectors:
Format RECTANGULAR, CYLINDRICAL, or SPHERICAL.
Pretty Print Turns the pretty print display feature OFF or ON.
Refer to page 22.
Split Screen Splits the screen into two parts and specifies how the
parts are arranged: FULL (no split screen),
TOP-BOTTOM, or LEFT-RIGHT. Refer to Chapter 14.

Split 1 App Application in the top or left side of a split screen. If


you are not using a split screen, this is the current
application.
Split 2 App Application in the bottom or right side of a split
screen. This is active only for a split screen.
Number of For a split screen, lets you set up both sides of the
Graphs screen to display independent sets of graphs.
Graph 2 If Number of Graphs = 2, selects the type of graph in
the Split 2 part of the screen. Refer to Chapter 12.
Exact/Approx Calculates expressions and displays results in
numeric form or in rational/symbolic form: AUTO,
EXACT, or APPROXIMATE. Refer to page 22.

34 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 34 of 36
Using 2 ˆ Clean Up to Start a New Problem

On the Home screen, the 2 ˆ Clean Up toolbar menu lets


you start a new calculation from a cleared state without
resetting the TI-89’s memory.

2 ˆ Clean Up From the Home screen, press 2 ˆ to display the menu:


Toolbar Menu

Menu Item Description


Clear a–z Clears (deletes) all single-character variable names
in the current folder, unless the variables are locked
or archived. You will be prompted to press ¸ to
confirm the action.
Tip: When defining a Single-character variable names are often used in
variable that you want to symbolic calculations such as:
retain, use more than one
character in the name. This solve(aøxñ+bøx+c=0,x)
prevents it from being
deleted inadvertently by If any of the variables have already been assigned a
1:Clear a–z. value, your calculation may produce misleading
results. To prevent this, you can select 1:Clear a–z
before beginning the calculation.
Note: For information about NewProb Places NewProb in the entry line. You must then
checking and resetting press ¸ to execute the command.
memory or other system
defaults, refer to NewProb performs a variety of operations that let you
Chapter 21.
begin a new problem from a cleared state without
resetting the memory:
¦ Clears all single-character variable names in the
current folder (same as 1:Clear a–z), unless the
variables are locked or archived.
¦ Turns off all functions and stat plots (FnOff and
PlotsOff) in the current graphing mode.
¦ Performs ClrDraw, ClrErr, ClrGraph, ClrHome,
ClrIO, and ClrTable.

Restore If a custom menu other than the default is in effect,


custom this lets you restore the default. Refer to page 30.
default

Chapter 2: Operating the TI.89 35

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 35 of 36
Using the Catalog to Select a Command

The CATALOG is an alphabetic list of all commands (functions


and instructions) on the TI-89. Although the commands are
available on various menus, the CATALOG lets you access any
command from one convenient list. It also gives help
information that describes a command’s parameters.

Selecting from the When you select a command, its name is inserted in the entry line at
CATALOG the cursor location. Therefore, you should position the cursor as
necessary before selecting the command.
1. Press ½.
Note: The first time you ¦ Commands are listed in alphabetical
display the CATALOG, it order. Commands that do not start
starts at the top of the list.
The next time you display with a letter (+, %, ‡, G, etc.) are at the
the CATALOG, it starts at end of the list.
the same place you left it.
¦ To exit the CATALOG without
selecting a command, press N.

2. Move the ú indicator to the command, and press ¸.

To move the ú indicator: Press or type:


Tip: From the top of the list, One command at a time D or C
press C to move to the
bottom. From the bottom, One page at a time 2 D or 2 C
press D to move to the top.
To the first command that The letter key. (Do not press
begins with a specified letter j first. If you do, you need to
press j or 2 ™ again
before you can type a letter.)

Help Information For the command indicated by ú, the status line shows the required
about Parameters and optional parameters, if any, and their type.

Indicated command
and its parameters

Brackets [ ] indicate
optional parameters.

Note: For details about the From the example above, the syntax for factor is:
parameters, refer to that
command’s description in factor(expression) required
Appendix A. — or —
factor(expression,variable) optional

36 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 36 of 36
Storing and Recalling Variable Values

When you store a value, you store it as a named variable. You


can then use the name instead of the value in expressions.
When the TI-89 encounters the name in an expression, it
substitutes the variable’s stored value.

Rules for Variable A variable name:


Names ¦ Can use 1 to 8 characters consisting of letters and digits. This
includes Greek letters (but not p), accented letters, and
international letters. Do not include spaces.
− The first character cannot be a digit.
¦ Can use uppercase or lowercase letters. The names AB22, Ab22,
aB22, and ab22 all refer to the same variable.

¦ Cannot be the same as a name that is preassigned by the TI-89.


Preassigned names include:
− Built-in functions (such as abs) and instructions (such as
LineVert). Refer to Appendix A.
− System variables (such as xmin and xmax, which are used to
store graph-related values). Refer to Appendix B for a list.

Examples Variable Description


myvar OK.
a OK.
Log Not OK, name is preassigned to the log function.
Log1 OK.
3rdTotal Not OK, starts with a digit.
circumfer Not OK, more than 8 characters.

Data Types You can save any TI-89 data type as a variable. For a list of data
types, refer to getType() in Appendix A. Some examples are:

Data Types Examples


Expressions 2.54, 1.25í 6, 2p, xmin/10, 2+3i, (xì 2)ñ, 2/2
Lists {2 4 6 8}, {1 1 2}

[1 0 0], 
100
Matrices 3 4 6 
Character strings “Hello”, “The answer is:”, “xmin/10”
Pictures

Functions myfunc(arg), ellipse(x,y,r1,r2)

Chapter 2: Operating the TI.89 37

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 37 of 36
Storing a Value in a 1. Enter the value you want to store, which can be an expression.
Variable 2. Press §. The store symbol (! ) is displayed.
3. Type the variable
name, using j as
necessary.
4. Press ¸.
To store to a variable temporarily, you can use the “with” operator.
Refer to “Substituting Values and Setting Constraints” in Chapter 3.

Displaying a 1. Type the variable


Variable name, using j as
necessary.
2. Press ¸ .
If the variable is undefined, the variable name is shown in the result.
Note: Refer to Chapter 3 for In this example, the
information about symbolic variable a is undefined.
manipulation.
Therefore, it is used as a
symbolic variable.

Using a Variable in 1. Type the variable


an Expression name into the
expression, using
j as necessary.
Tip: To view a list of existing
The variable’s value
variable names, use 2. Press ¸ to did not change.
2 ° as described in evaluate the
Chapter 21.
expression.
If you want the result to
replace the variable’s
previous value, you must
store the result.

Recalling a In some cases, you may want to use a variable’s actual value in an
Variable’s Value expression instead of the variable name.
1. Press 2 £ to
display a dialog box.
2. Type the variable
name, using j as
necessary.
3. Press ¸ twice.
In this example, the value stored in num1 will be inserted at the
cursor position in the entry line.

38 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 38 of 36
Reusing a Previous Entry or the Last Answer

You can reuse a previous entry by reexecuting the entry “as is”
or by editing the entry and then reexecuting it. You can also
reuse the last calculated answer by inserting it into a new
expression.

Reusing the When you press ¸ to evaluate an expression, the TI-89 leaves
Expression on the that expression on the entry line and highlights it. You can type over
Entry Line the entry, or you can reuse it as necessary.
For example, using a variable, find the square of 1, 2, 3, etc.
Tip: Reexecuting an entry 1. Set the initial variable value.
“as is” is useful for iterative
calculations that involve 0 § 2 ™ NUM ¸
variables.
2. Enter the variable
expression.
NUM j « 1 §
2 ™ NUM 2 Ë
NUM j Z 2 ¸

3. Reenter to increment
the variable and
calculate the square.
¸
¸

Tip: Editing an entry lets Using the equation A=pr 2, use trial and error to find the radius of a
you make minor changes circle that covers 200 square centimeters.
without retyping the entire
entry. 1. Use 8 as your first
guess.
8 § jR 2 Ë
2 ãpä jR Z 2 ¸

2. Display the answer in


its approximate
floating-point form.
¥¸

Note: When the entry 3. Edit and reexecute


contains a decimal point, the with 7.95.
result is automatically
displayed in floating-point. A¥8
7.95 ¸

4. Continue until the answer is as accurate as you want.

Chapter 2: Operating the TI.89 39

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 39 of 36
Recalling a Previous You can recall any previous entry that is stored in the history area,
Entry even if the entry has scrolled off the top of the screen. The recalled
entry replaces whatever is currently shown on the entry line. You can
then reexecute or edit the recalled entry.

To recall: Press: Effect:


Note: You can also use the The last entry 2² If the last entry is still shown on
entry function to recall any (if you’ve changed once the entry line, this recalls the
previous entry. Refer to
entry() in Appendix A.
the entry line) entry prior to that.
Previous entries 2² Each press recalls the entry
repeatedly prior to the one shown on the
entry line.

For example:

If the entry line contains


the last entry, 2 ²
recalls this entry.

If the entry line is edited


or cleared, 2 ²
recalls this entry.

Recalling the Last Each time you evaluate an expression, the TI-89 stores the answer to
Answer the variable ans(1). To insert this variable in the entry line, press
2 ±.
For example, calculate the area of a garden plot that is 1.7 meters by
4.2 meters. Then calculate the yield per square meter if the plot
produces a total of 147 tomatoes.
1. Find the area.
1.7 p 4.2 ¸

2. Find the yield.


147 e 2 ± ¸
Variable ans(1) is
inserted, and its value is
used in the calculation.

Note: Refer to ans() in Just as ans(1) always contains the last answer, ans(2), ans(3), etc.,
Appendix A. also contain previous answers. For example, ans(2) contains the
next-to-last answer.

40 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 40 of 36
Auto-Pasting an Entry or Answer from the History Area

You can select any entry or answer from the history area and
“auto-paste” a duplicate of it on the entry line. This lets you
insert a previous entry or answer into a new expression
without having to retype the previous information.

Why Use Auto-Paste The effect of using auto-paste is similar to 2 ² and 2 ± as


described in the previous section, but there are differences.

For entries: Pasting lets you: 2 ² lets you:

Insert any previous Replace the contents of the


entry into the entry entry line with any previous
line. entry.
Note: You can also paste
information by using the
ƒ toolbar menu. Refer to
“Cutting, Copying, and For answers: Pasting lets you: 2 ± lets you:
Pasting Information” in
Chapter 5. Insert the displayed Insert the variable ans(1),
value of any which contains the last
previous answer answer only. Each time you
into the entry line. enter a calculation, ans(1) is
updated to the latest answer.

Auto-Pasting an 1. On the entry line, place the cursor where you want to insert the
Entry or Answer entry or answer.
2. Press C to move the cursor up into the history area. This
highlights the last answer.
Tip: To cancel auto-paste 3. Use C and D to highlight the entry or answer to auto-paste.
and return to the entry line,
press N. ¦ C moves from
answer to entry
up through the
history area.
Tip: To view an entry or
answer too long for one line ¦ You can use C to
(indicated by ú at the end of highlight items
the line), use B and A or
2 B and 2 A. that have scrolled
off the screen.
4. Press ¸.
The highlighted item
is inserted in the
entry line.

This pastes the entire entry or answer. If you need only a part of the
entry or answer, edit the entry line to delete the unwanted parts.

Chapter 2: Operating the TI.89 41

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 41 of 36
Status Line Indicators in the Display

The status line is displayed at the bottom of all application


screens. It shows information about the current state of the
TI-89, including several important mode settings.

Status Line
Indicators
Current Modifier Graph Battery
Folder Key Number

Angle Graph
Mode Mode
History Pairs,
Exact/Approx
Busy/Pause,
Mode
Locked Variable

Indicator Meaning
Current Shows the name of the current folder. Refer to
Folder “Using Folders to Store Independent Sets of
Variables” in Chapter 5. MAIN is the default folder
that is set up automatically when you use the TI-89.
Note: To cancel 2, ¥, Modifier Key Shows which modifier key is in effect, as described
j, or ¤, press the same below.
key again or press a
different modifer key. 2ND 2 — will use the second function of the next key
you press.
Note: If the next key you 2 ¥ — will use the diamond feature of the next key
press does not have a you press.
diamond feature or an
associated letter, the key j — will type the lowercase letter for the next
performs its normal
key you press.
operation.
2 ™ — lowercase alpha-lock is on. Until you
turn this off, will type the lowercase letter for each
key you press. To cancel alpha-lock, press j.
¤ j — uppercase ALPHA-lock is on. Until you
turn this off, will type the uppercase letter for each
key you press. To cancel ALPHA-lock, press j.
+ ¤ — will type the uppercase letter for the next key
you press. You can use ¤ to type a letter without
having to use j.
Angle Shows the units in which angle values are
Mode interpreted and displayed. To change the Angle
mode, use the 3 key.
RAD Radians
DEG Degrees

42 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 42 of 36
Indicator Meaning
Exact/ Shows how answers are calculated and displayed.
Approx Refer to page 22. To change the Exact/Approx mode,
Mode use the 3 key.
AUTO Auto
EXACT Exact
APPROX Approximate
Graph If the screen is split to show two independent graphs,
Number this indicates which graph is active (GR1 or GR2).
Graph Indicates the type of graphs that can be plotted. To
Mode change the Graph mode, use the 3 key.
FUNC y(x) functions

PAR x(t) and y(t) parametric equations


POL r(q) polar equations

SEQ u(n) sequences

3D z(x,y) 3D equations

DE y'(t) differential equations


Battery Displayed only when the batteries are getting low. If
BATT is shown with a black background, change the
batteries as soon as possible.
History Pairs, The information shown in this part of the status line
Busy/Pause, depends on the application you are using.
Archived
23/30 Displayed on the Home screen to show the number
of entry/answer pairs in the history area. Refer to
page 17.
BUSY A calculation or graph is in progress.
PAUSE You paused a graph or program.
Œ The variable opened in the current editor
(Data/Matrix Editor, Program Editor, or Text Editor)
is locked or archived and cannot be modified.

Chapter 2: Operating the TI.89 43

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 43 of 36
Finding the Software Version and Serial Number

In some situations, you may need to find out information about


your TI-89, particularly the software version and the unit’s
serial number.

Displaying the From the Home screen, press


“About” Screen ƒ and then select A:About.

Your screen will be different


than the one shown to the right.
Press ¸ or N to close the
screen.

When Do You Need The information on the About screen is intended for situations
this Information? such as:
¦ If you obtain new or upgraded software for your TI-89, you may
need to provide your current software version and/or the serial
number of your unit.
¦ If you have difficulties with your TI-89 and need to contact
technical support, knowing the software version may make it
easier to diagnose the problem.

44 Chapter 2: Operating the TI.89

OPER.DOC TI-89: Operating the TI-89 (US English) Joan Terrell Revised: 07/29/98 1:03 PM Printed: 07/29/98 1:04 PM Page 44 of 36
Chapter 3:
Symbolic Manipulation
Preview of Symbolic Manipulation ....................................................... 46
Using Undefined or Defined Variables ................................................. 47

3 Using Exact, Approximate, and Auto Modes....................................... 49


Automatic Simplification........................................................................ 52
Delayed Simplification for Certain Built-In Functions ....................... 54
Substituting Values and Setting Constraints........................................ 55
Overview of the Algebra Menu .............................................................. 58
Common Algebraic Operations ............................................................. 60
Overview of the Calc Menu.................................................................... 63
Common Calculus Operations............................................................... 64
User-Defined Functions and Symbolic Manipulation ......................... 65
If You Get an Out-of-Memory Error ...................................................... 67
Special Constants Used in Symbolic Manipulation............................. 68

This chapter is an overview of the fundamentals of using


symbolic manipulation to perform algebraic or calculus
operations.

You can easily perform symbolic calculations from the Home


screen.

Chapter 3: Symbolic Manipulation 45

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 08/03/98 1:51 PM Printed: 08/03/98 2:13 PM Page 45 of 24
Preview of Symbolic Manipulation

Solve the system of equations 2x ì 3y = 4 and ë x + 7y = ë 12. Solve the first equation so
that x is expressed in terms of y. Substitute the expression for x into the second equation,
and solve for the value of y. Then substitute the y value back into the first equation to
solve for the value of x.

Steps Keystrokes Display

1. Display the Home screen and clear "


the entry line. Solve the equation MM
2x ì 3y = 4 for x. „1
„ 1 selects solve( from the Algebra 2X|3YÁ4
menu. You can also type solve( directly bXd¸
from the keyboard or press ½ and
select it.
2. Begin to solve the equation „1
ë x + 7y = ë 12 for y, but do not press ·X«7YÁ
¸ yet. ·12bYd

3. Use the “with” operator (Í) to Í


substitute the expression for x that C¸
was calculated from the first ¸
equation. This gives the value of y.
The “with” operator is displayed as | on
the screen.
Use the auto-paste feature to highlight the
last answer in the history area and paste it
to the entry line.

4. Highlight the equation for x in the CCC


history area.

5. Auto-paste the highlighted ¸


expression to the entry line. Then Í
substitute the value of y that was C¸
calculated from the second equation. ¸
The solution is:
x = ë 8/11 and y = ë 20/11

This example is a demonstration of symbolic manipulation. A one-step function is available for


solving systems of equations. (See page 61.)

46 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 46 of 24
Using Undefined or Defined Variables

When performing algebraic or calculus operations, it is


important that you understand the effect of using undefined
and defined variables. Otherwise, you may get a number for a
result instead of the algebraic expression that you anticipated.

How Undefined and When you enter an expression that contains a variable, the TI-89
Defined Variables treats the variable in one of two ways.
Are Treated ¦ If the variable is
undefined, it is
treated as an
algebraic symbol.
¦ If the variable is
defined (even if
defined as 0), its value
replaces the variable.
Tip: When defining a To see why this is important, suppose you want to find the first
variable, it’s a good practice derivative of xò with respect to x.
to use more than one
character in the name. ¦ If x is undefined, the
Leave one-character names
result is in the form
undefined for symbolic
calculations. you probably
expected.
¦ If x is defined, the
result may be in a
form you did not
expect.
Unless you knew that 5 had been
stored to x previously, the answer
75 could be misleading.

Determining If a Method: Example:


Variable Is If defined, the variable’s
Undefined value is displayed.
Enter the variable
name.

Note: Use 2 ° to If undefined, the variable


view a list of defined name is displayed.
variables, as described in
Chapter 21. If defined, the variable’s
type is displayed.
Use the getType
function.

If undefined, “NONE ” is
displayed.

Chapter 3: Symbolic Manipulation 47

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 47 of 24
Deleting a Defined You can “undefine” a defined variable by deleting it.
Variable
To delete: Do this:
One or more Use the DelVar function.
specified variables

You can also delete variables by using the


VAR-LINK screen ( 2 ° ) as
described in Chapter 21.

Note: For information about All one-letter From the Home screen, press 2 ˆ
folders, refer to Chapter 5. variables (a – z) 1:Clear a-z. You will be prompted to press
in the current folder ¸ to confirm the deletion.

Temporarily By using Í to type the “with” operator ( | ), you can:


Overriding a ¦ Temporarily override
Variable a variable’s defined
value.

Note: For more information ¦ Temporarily define a


about the | operator, refer value for an undefined
to page 55.
variable.

48 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 48 of 24
Using Exact, Approximate, and Auto Modes

The Exact/Approx mode settings, which are described briefly


in Chapter 2, directly affect the precision and accuracy with
which the TI-89 calculates a result. This section describes
these mode settings as they relate to symbolic manipulation.

EXACT When Exact/Approx = EXACT, the TI-89 uses exact rational arithmetic
Setting with up to 614 digits in the numerator and 614 digits in the
denominator. The EXACT setting:
¦ Transforms irrational numbers to standard forms as much as
possible without approximating them. For example, 12
transforms to 2 3 and ln(1000) transforms to 3 ln(10).
¦ Converts floating-point numbers to rational numbers. For
example, 0.25 transforms to 1/4.
The functions solve, cSolve, zeros, cZeros, factor, ∫, fMin, and fMax
use only exact symbolic algorithms. These functions do not compute
approximate solutions in the EXACT setting.
¦ Some equations, such as 2 –x = x, have solutions that cannot all be
finitely represented in terms of the functions and operators on the
TI-89.
¦ With this kind of equation, EXACT will not compute approximate
solutions. For example, 2 –x = x has an approximate solution
x ≈ 0.641186, but it is not displayed in the EXACT setting.

Advantages Disadvantages
Results are exact. As you use more complicated rational
numbers and irrational constants,
calculations can:
¦ Use more memory, which may
exhaust the memory before a solution
is completed.
¦ Take more computing time.
¦ Produce bulky results that are harder
to comprehend than a floating-point
number.

Chapter 3: Symbolic Manipulation 49

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 49 of 24
APPROXIMATE When Exact/Approx = APPROXIMATE, the TI-89 converts rational
Setting numbers and irrational constants to floating-point. However, there
are exceptions:
¦ Certain built-in functions that expect one of their arguments to be
an integer will convert that number to an integer if possible. For
example: d(y(x), x, 2.0) transforms to d(y(x), x, 2).
¦ Whole-number floating-point exponents are converted to integers.
For example: x 2.0 transforms to x 2 even in the APPROXIMATE
setting.
Functions such as solve and ∫ (integrate) can use both exact symbolic
and approximate numeric techniques. These functions skip all or
some of their exact symbolic techniques in the APPROXIMATE
setting.

Advantages Disadvantages
If exact results are not Results with undefined variables or
needed, this might save functions often exhibit incomplete
time and/or use less cancellation. For example, a coefficient
memory than the EXACT that should be 0 might be displayed as a
setting. small magnitude such as 1.23457E-11.
Approximate results are Symbolic operations such as limits and
sometimes more integration are less likely to give
compact and satisfying results in the APPROXIMATE
comprehensible than setting.
exact results.
Approximate results are sometimes less
If you do not plan to use compact and comprehensible than exact
symbolic computations, results. For example, you may prefer to
approximate results are see 1/7 instead of .142857.
similar to familiar,
traditional numeric
calculators.

50 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 50 of 24
AUTO Setting When Exact/Approx = AUTO, the TI-89 uses exact rational arithmetic
wherever all of the operands are rational numbers. Otherwise,
floating-point arithmetic is used after converting any rational
operands to floating-point. In other words, floating-point is
“infectious.” For example:
1/2 − 1/3 transforms to 1/6
but
0.5 − 1/3 transforms to .16666666666667

This floating-point infection does not leap over barriers such as


undefined variables or between elements of lists or matrices. For
example:
(1/2 - 1/3) x + (0.5 − 1/3) y transforms to x/6 + .16666666666667 y
and
{1/2 - 1/3, 0.5 − 1/3} transforms to {1/6, .16666666666667}

In the AUTO setting, functions such as solve determine as many


solutions as possible exactly, and then use approximate numerical
methods if necessary to determine additional solutions. Similarly,
‰ (integrate) uses approximate numerical methods if appropriate
where exact symbolic methods fail.

Advantages Disadvantages
You see exact results If you are interested only in exact
when practical, and results, some time may be wasted
approximate numeric seeking approximate results.
results when exact
If you are interested only in approximate
results are impractical.
results, some time may be wasted
You can often control seeking exact results. Moreover, you
the format of a result by might exhaust the memory seeking those
choosing to enter some exact results.
coefficients as either
rational or floating-point
numbers.

Chapter 3: Symbolic Manipulation 51

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 51 of 24
Automatic Simplification

When you type an expression on the entry line and press


¸, the TI-89 automatically simplifies the expression
according to its default simplification rules.

Default All of the following rules are applied automatically. You do not see
Simplification Rules intermediate results.
¦ If a variable has a defined value, that value replaces the variable.
If the variable is
defined in terms of
another variable, the
variable is replaced
with its “lowest
level” value (called
infinite lookup).
Note: For information about Default simplification does not modify variables that use
folders, refer to Chapter 5. pathnames to indicate a folder. For example, x+class\x does not
simplify to 2x.
Note: Refer to “Delayed ¦ For functions:
Simplification for Certain
Built-In Functions” on − The arguments are simplified. (Some built-in functions delay
page 54. simplification of some of their arguments.)
− If the function is a built-in or user-defined function, the
function definition is applied to the simplified arguments.
Then the functional form is replaced with this result.
¦ Numeric
subexpressions are
combined.
¦ Products and sums
are sorted into order.
Products and sums involving undefined variables are sorted
according to the first letter of the variable name.
− Undefined variables r through z are assumed to be true
variables, and are placed in alphabetical order at the
beginning of a sum.
− Undefined variables a through q are assumed to represent
constants, and are placed in alphabetical order at the end of a
sum (but before numbers).
¦ Similar factors and
similar terms are
collected.

52 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 52 of 24
¦ Identities involving
zeros and ones are
exploited.

This floating-point number


causes numeric results to
be shown as floating-point.

If a floating-point whole
number is entered as an
exponent, it is treated as
an integer (and does not
produce a floating-point ¦ Polynomial greatest
result).
common divisors are
canceled.

¦ Polynomials are
expanded unless
no key cancellation
can occur.
No key cancellation
¦ Common
denominators are
formed unless no
key cancellation
can occur.
No key cancellation

¦ Functional identities
are exploited. For
example:
ln(2x) = ln(2) + ln(x)
and
sin(x)ñ + cos(x)ñ = 1

How Long Is the Depending on the complexity of an entry, result, or intermediate


Simplification expression, it can take a long time to expand an expression and
Process? cancel common divisors as necessary for simplification.
To interrupt a simplification process that is taking too long, press
´. You can then try simplifying only a portion of the expression.
(Auto-paste the entire expression on the entry line, and then delete
the unwanted parts.)

Chapter 3: Symbolic Manipulation 53

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 53 of 24
Delayed Simplification for Certain Built-In Functions

Usually, variables are automatically simplified to their lowest


possible level before they are passed to a function. For certain
functions, however, complete simplification is delayed until
after the function is performed.

Functions that Use Functions that use delayed simplification have a required var
Delayed argument that performs the function with respect to a variable.
Simplification These functions have at least two arguments with the general form:
function(expression, var [, ... ])

Note: Not all functions that For example: solve(x^2ì xì 2=0,x)


use a var argument use d(x^2 ì xì 2,x)
delayed simplification.
‰(x^2ì xì 2,x)
limit(xñ ì xì 2,x,5)

For a function that uses delayed simplification:


1. The var variable is simplified to the lowest level at which it
remains a variable (even if it could be further simplified to a non-
variable value).
2. The function is performed using the variable.
Note: You may or may not 3. If var can be further simplified, that value is then substituted into
want to define a numeric the result.
value for var, depending on
the situation. For example:

x cannot be simplified.

Note: The example to the


right finds the derivative of
x is not simplified. The
xò at x=5. If xò was initially
function uses xò, and
simplified to 75, you would then substitutes 5 for x.
find the derivative of 75,
which is not what you want.

x is simplified to t. The
function uses tò.

x is simplified to t. The
function uses tò, and
then substitutes 5 for t.

54 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 54 of 24
Substituting Values and Setting Constraints

The “with” operator ( | ) lets you temporarily substitute values


into an expression or specify domain constraints.

Typing the “With” To type the “with” operator ( | ), press Í.


Operator
Substituting for a For every occurrence of
Variable a specified variable, you
can substitute a numeric
value or an expression.

First derivative of xìò at x = 5

To substitute for multiple


variables at the same
time, use the Boolean
and operator.

Substituting for a For every occurrence of


Simple Expression a simple expression, you
can substitute a variable,
numeric value, or
Substituting s for sin(x) shows that
another expression. the expression is a polynomial in
terms of sin(x).

Note: acos(x) is different By replacing a commonly


from a*cos(x). used (or long) term, you
can display results in a
more compact form.

Substituting You can substitute


Complex Values complex values just as
you would for other
values.
Note: For an overview of All undefined variables are treated as real numbers in symbolic
complex numbers, refer to calculations. To perform complex symbolic analysis, you must define
Appendix B.
a complex variable. For example:
Tip: To get the complex i, x+yi! z
press 2 ). Do not simply
type j [ I ] on the Then you can use z as a complex variable. You can also use z_. For
keyboard. more information see the _ (underscore) topic in Appendix A.

Chapter 3: Symbolic Manipulation 55

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 55 of 24
Be Aware of the ¦ Substitution occurs Only x 2 was replaced, not x 4 .

Limitations of only where there is an


Substitutions exact match for the
substitution.

Define the substitution in


simpler terms for a more
complete substitution.

¦ Infinite recursions can occur when you define a substitution


variable in terms of itself.
Substitutes sin(x+1), sin(x+1+1), sin(x+1+1+1), etc.

sin(x)|x=x+1

When you enter a substitution that causes an infinite recursion:


− An error message
is displayed.

− When you press


N, an error is
shown in the
history area.

¦ Internally, an expression is sorted according to the automatic


simplification rules. Therefore, products and sums may not match
the order in which you entered them.

Tip: Use the solve function − As a general rule,


to help determine the single- you should
variable substitution.
substitute for a
single variable.

− Substituting for No match for substitution


more general
expressions
(either mø cñ =e
or cñ ø m=e) may
not work as you
anticipate.

56 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 56 of 24
Specifying Domain Many identities and transformations are valid for only a particular
Constraints domain. For example:
ln(xù y) = ln(x) + ln(y) only if x and/or y is not negative
sinê (sin(q)) = q only if q ‚ ë p/2 and q  p/2 radians

Use the “with” operator to specify the domain constraint.


Because ln(x ù y) = ln(x) + ln(y) is not always
valid, the logarithms are not combined.
Tip: Enter ln(xù y) instead of
ln(xy); otherwise, xy is
interpreted as a single
variable named xy.
With a constraint, the identity is valid
and the expression is simplified.

Because sinê(sin(q)) = q is not always


valid, the expression is not simplified.
Tip: For ‚ or , press ¥ à ¥Q
or ¥ Â. You can also use
2 I 8 or 2 ¿ 2 to
select them from a menu.

With a constraint, the expression can


be simplified.

Using Substitutions In many cases, you can


vs. Defining a achieve the same effect
Variable as a substitution by
defining the variable.

However, substitution is preferable for most cases because the


variable is defined only for the current calculation and does not
accidentally affect later calculations.

Substituting x=1 does


not affect the next
calculation.

Storing 1!x affects


Caution: After x is defined, the subsequent
it can affect all calculations calculations.
that involve x (until you
delete x).

Chapter 3: Symbolic Manipulation 57

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 57 of 24
Overview of the Algebra Menu

You can use the „ Algebra toolbar menu to select the most
commonly used algebraic functions.

The Algebra Menu From the Home screen, press „ to display:

This menu is also available from the MATH


Note: For a complete
description of each function menu. Press 2 I and then select
and its syntax, refer to 9:Algebra.
Appendix A.

Menu Item Description


solve Solves an expression for a specified variable. This
returns real solutions only, regardless of the
Complex Format mode setting. Displays answers with
"and" and "or" connecting solutions. (For complex
solutions, select A:Complex from the Algebra menu.)
factor Factors an expression with respect to all its
variables or with respect to only a specified
variable.
expand Expands an expression with respect to all its
variables or with respect to only a specified
variable.
zeros Determines the values of a specified variable that
make an expression equal to zero. Displays in a list.
approx Evaluates an expression using floating-point
arithmetic, where possible. This is equivalent to
using 3 to set Exact/Approx = APPROXIMATE
(or using ¥ ¸ to evaluate an expression).
comDenom Calculates a common denominator for all terms in
an expression and transforms the expression into a
reduced ratio of a numerator and denominator.
propFrac Returns an expression as a proper fraction
expression.
nSolve Calculates a single solution for an equation as a
floating-point number (as opposed to solve, which
may display several solutions in a rational or
symbolic form).

58 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 58 of 24
Menu Item Description
Trig Displays the submenu:

tExpand Expands trig expressions with angle sums


and multiple angles.
tCollect Collects the products of integer powers of
trig functions into angle sums and
multiple angles. tCollect is the opposite of
tExpand.
Complex Displays the submenu:

These are the same as solve, factor, and zeros; but


they also compute complex results.
Extract Displays the submenu:

getNum Applies comDenom and then returns the


resulting numerator.
getDenom Applies comDenom and then returns the
resulting denominator.
Note: The left and right
functions are also used to left Returns the left-hand side of an equation
return a specified number of or inequality.
elements or characters from
the left or right side of a list right Returns the right-hand side of an equation
or character string. or inequality.

Chapter 3: Symbolic Manipulation 59

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 59 of 24
Common Algebraic Operations

This section gives examples for some of the functions


available from the „ Algebra toolbar menu. For complete
information about any function, refer to Appendix A. Some
algebraic operations do not require a special function.

Adding or Dividing You can add or divide


Polynomials polynomials directly,
without using a special
function.

Factoring and Use the factor ( „ 2) and expand ( „ 3) functions.


Expanding factor(expression [,var])
Polynomials
for factoring with respect to a variable

expand(expression [,var])
for partial expansion with respect to a variable

Factor x 5 ì 1. Then
expand the result.
Notice that factor and
expand perform
opposite operations.

Finding Prime The factor ( „ 2) function lets you do more than simply factor an
Factors of a Number algebraic polynomial.
You can find prime
factors of a rational
number (either an
integer or a ratio of
integers).

Finding Partial With the expand ( „ 3) function’s optional var value, you can do a
Expansions partial expansion that collects similar powers of a variable.
Do a full expansion of
(xñ ì x) (yñ ì y) with
respect to all variables.
Then do a partial
expansion with respect
to x.

60 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 60 of 24
Solving an Equation Use the solve ( „ 1) function to solve an equation for a specified
variable.
solve(equation, var)

Solve x + y ì 5 = 2x ì 5y
for x.
Notice that solve displays
only the final result.
To see intermediate results, you can manually solve the equation
step-by-step.
x « y | 5 Á 2x | 5y
Note: An operation such as
|2x
| 2 X subtracts 2x from
both sides. |y

«5

p·1

Solving a System of Consider a set of two equations 2x ì 3y = 4


Linear Equations with two unknowns: ë x + 7y = ë 12
To solve this system of equations, use any of the following methods.

Method Example
Use the solve function solve(2xì3y=4 and ëx+7y=ë12,{x,y})
for a one-step solution.
Use the solve function Refer to the preview at the beginning of
Note: The simult and rref with substitution ( | ) this chapter, which solved for x = ë 8/11 and
matrix functions are not on for step-by-step y = ë 20/11.
the „ Algebra menu. Use
2 I 4 or ½. manipulation.
Use the simult Enter the coefficients as a matrix and the
function with a matrix. results as a constant column matrix.

Use the rref Enter the coefficients as an augmented


function with a matrix. matrix.

Chapter 3: Symbolic Manipulation 61

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 61 of 24
Finding the Zeros of Use the zeros ( „ 4) function.
an Expression zeros(expression, var)

Tip: For ‚ or , type ¥ à or Use the expression


¥ Â.You can also use x ù sin(x) + cos(x).
2 I 8 or 2 ¿ 2 to
select them from a menu. Find the zeros with
Use the “with”
respect to x in the operator (Í) to
interval 0  x and x  3. specify the interval.

Finding Proper Use the propFrac ( „ 7) and comDenom ( „ 6) functions.


Fractions and propFrac(rational expression [,var])
Common
for proper fractions with respect
Denominators to a variable
comDenom(expression [,var])
for common denominators that collect
similar powers of this variable

Note: You can use Find a proper fraction for


comDenom with an the expression
expression, list, or matrix.
(x 4ì 2xñ + x) / (2xñ + x + 4).
Then transform the
answer into a ratio of a
fully expanded
numerator and a fully
expanded denominator.
Notice that propFrac and If you do this example on your
comDenom perform TI-89 , the propFrac function
opposite operations. scrolls off the top of the screen.

In this example:
31 x + 60
¦ 8
is the remainder of x 4ì 2xñ +x divided by 2xñ +x+4.

xñ x
¦ 2
ì ì 15/8 is the quotient.
4

62 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 62 of 24
Overview of the Calc Menu

You can use the … Calc toolbar menu to select commonly


used calculus functions.

The Calc Menu From the Home screen, press … to display:

This menu is also available from the MATH


Note: For a complete menu. Press 2 I and then select
description of each function A:Calculus.
and its syntax, refer to
Appendix A.

Menu Item Description


Note: The d symbol for d differentiate Differentiates an expression with respect to a
differentiate is a special specified variable.
symbol. It is not the same as
typing j [D] on the ‰ integrate Integrates an expression with respect to a specified
keyboard. Use … 1 or variable.
2 =.
limit Calculates the limit of an expression with respect to
a specified variable.
G sum Evaluates an expression at discrete variable values
within a range and then calculates the sum.
Π product Evaluates an expression at discrete variable values
within a range and then calculates the product.
fMin Finds candidate values of a specified variable that
minimize an expression.
fMax Finds candidate values of a specified variable that
maximize an expression.
arcLen Returns the arc length of an expression with respect
to a specified variable.
taylor Calculates a Taylor polynomial approximation to an
expression with respect to a specified variable.
nDeriv Calculates the numerical derivative of an expression
with respect to a specified variable.
nInt Calculates an integral as a floating-point number
using quadrature (an approximation using weighted
sums of integrand values).
deSolve Symbolically solves many 1st and 2nd order
differential equations, with or without initial
conditions.

Chapter 3: Symbolic Manipulation 63

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 63 of 24
Common Calculus Operations

This section gives examples for some of the functions


available from the … Calc toolbar menu. For complete
information about any calculus function, refer to Appendix A.

Integrating and Use the ‰ integrate ( … 2) and d differentiate ( … 1) functions.


Differentiating ‰ (expression, var [,low] [,up])
lets you specify limits or a
constant of integration
d (expression, var [,order])

Note: You can integrate an Integrate xñ ù sin(x) with


expression only; you can respect to x.
differentiate an expression,
list, or matrix. Differentiate the answer
with respect to x.

To get d , use … 1 or 2 =.
Do not simply type j [D] on
the keyboard.
Finding a Limit Use the limit ( … 3) function.
limit(expression, var, point [,direction])*
negative = from left
positive = from right
omitted or 0 = both

Note: You can find a limit Find the limit of


for an expression, list, or sin(3x) / x as x
matrix.
approaches 0.

Finding a Taylor Use the taylor ( … 9) function.


Polynomial taylor(expression, var, order [,point])
if omitted, expansion point is 0

Important: Degree-mode Find a 6th order Taylor


scaling by p/180 may cause polynomial for sin(x)
calculus application results
to appear in a different form. with respect to x.
Store the answer as a
user-defined function
named y1(x).
Graph sin(x):Graph y1(x)
Then graph sin(x) and
the Taylor polynomial.

64 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 64 of 24
User-Defined Functions and Symbolic Manipulation

You can use a user-defined function as an argument for the


TI-89 ’s built-in algebra and calculus functions.

For Information Refer to:


about Creating a ¦ “Creating and Evaluating User-Defined Functions” in Chapter 5.
User-Defined
Function ¦ “Graphing a Function Defined on the Home Screen” and
“Graphing a Piecewise Defined Function” in Chapter 12.
¦ “Overview of Entering a Function” in Chapter 17.

Undefined You can use functions such as f(x), g(t), r(q), etc., that have not been
Functions assigned a definition. These “undefined” functions yield symbolic
results. For example:
Use DelVar to ensure
that f(x) and g(x) are not
defined.
Tip: To select d from the Then find the derivative
Calc toolbar menu, press of f(x)ù g(x) with respect
… 1 (or press 2 = on to x.
the keyboard).

Single-Statement You can use user-defined functions consisting of a single expression.


Functions For example:
¦ Use § to create a user-defined secant function, where:
1
sec(x) =
cos(x)
Tip: To select limit from the Then find the limit
Calc toolbar menu, press of sec(x) as x
… 3.
approaches p/4.

¦ Use Define to create a user-defined function h(x), where:


x Define h(x)= ‰(sin(t)/t,t,0,x).
h(x)=⌠sin(t) / t
Tip: To select ‰ from the ⌡
Calc toolbar menu, press
… 2 (or press 2 < on the 0
keyboard). To select taylor,
press … 9. Then find a 5th order
Taylor polynomial
for h(x) with respect
to x.

Chapter 3: Symbolic Manipulation 65

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 65 of 24
Multi-Statement vs. Multi-statement user-defined functions should be used as an
Single-Statement argument for numeric functions (such as nDeriv and nInt) only.
Functions In some cases, you may be able to create an equivalent single-
statement function. For example, consider a piecewise function with
two pieces.

When: Use expression:


x<0 ëx
x‚0 5 cos(x)

Tip: You can use your ¦ If you were to create a multi-statement user-defined function with
computer keyboard to type the form:
lengthy text and then use
TI-GRAPH LINK to send it to
Func
the TI-89. See Chapter 18
If x<0 Then
for more information. Define y1(x)=Func:If x<0 Then: ... :EndFunc
Return ë x
Else
Return 5cos(x)
EndIf
EndFunc

Tip: To select nInt from the Then numerically


Calc toolbar menu, press integrate y1(x) with
… j [ B].
respect to x.

¦ Create an equivalent single-statement user-defined function.

Use the TI-89 ’s Define y1(x)=when(x<0,ëx, 5cos(x))


built-in when
function.
Tip: To select ‰ from the Then integrate y1(x)
Calc toolbar menu, press with respect to x.
… 2 (or press 2 < on the
keyboard).

Press ¥ ¸ for a
floating-point result.

66 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 66 of 24
If You Get an Out-of-Memory Error

The TI-89 stores intermediate results in memory and then


deletes them when the calculation is complete. Depending on
the complexity of the calculation, the TI-89 may run out of
memory before a result can be calculated.

Freeing Up Memory ¦ Delete unneeded variables, particularly large-sized ones.


− Use 2 ° as described in Chapter 21 to view and
delete variables.
¦ On the Home screen:
− Clear the history area (ƒ 8) or delete unneeded history pairs.
− You can also use ƒ 9 to reduce the number of history pairs
that will be saved.
¦ Use 3 to set Exact/Approx = APPROXIMATE. (For results that
have a large number of digits, this uses less memory than AUTO
or EXACT. For results that have only a few digits, this uses more
memory.)

Simplifying ¦ Split the problem into parts.


Problems − Split solve(aù b=0,var ) into solve(a=0,var ) and solve(b=0,var ).
Solve each part and combine the results.
¦ If several undefined variables occur only in a certain
combination, replace that combination with a single variable.
− If m and c occur only as mù cñ, substitute e for mù cñ.

(a+b)ñ + (a+b)ñ
− In the expression , substitute c for (a+b) and
1 ì (a+b)ñ

cñ + cñ
use . In the solution, replace c with (a+b).
1 ì cñ

¦ For expressions combined over a common denominator, replace


sums in denominators with unique new undefined variables.
x y
− In the expression + , substitute d for
añ +bñ + c añ +bñ + c
x y
añ +bñ + c and use + . In the solution, replace d with
d d
añ +bñ + c.

¦ Substitute known numeric values for undefined variables at an


earlier stage, particularly if they are simple integers or fractions.
¦ Reformulate a problem to avoid fractional powers.
¦ Omit relatively small terms to find an approximation.

Chapter 3: Symbolic Manipulation 67

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 67 of 24
Special Constants Used in Symbolic Manipulation

The result of a calculation may include one of the special


constants described in this section. In some cases, you may
also need to enter a constant as part of your entry.

x=x is true for any value of x.

true, false These indicate the result


of an identity or a
Boolean expression.
5<3 is false.

A solution is at every integer


@n1 ... @n255 This notation indicates
multiple of p.
an “arbitrary integer”
that represents any
integer.
Tip: For @, press ¥ §. When an arbitrary
integer occurs multiple
times in the same
session, each Both @n1 and @n2 represent
occurrence is numbered any arbitrary integer, but this
notation identifies separate
consecutively. After it arbitrary integers.
reaches 255, arbitrary
integer consecutive
numbering restarts at
@n0. Use 2 ˆ
2:NewProb to reset to
@n1.

ˆ, e ˆ represents infinity,
and e represents the
Tip: For ˆ, press ¥ *. constant 2.71828...
(base of the natural
logarithms).
Tip: For e, press ¥ s.
This is not the same as These constants are
typing j [E] on the
keyboard.
often used in entries as
well as results.

undef This indicates that the result is undefined.

Mathematically undefined

„ˆ (undetermined sign)

Non-unique limit

68 Chapter 3: Symbolic Manipulation

SYMBOLIC.DOC TI-89: Symbolic Manipulation (US English) Joan Terrell Revised: 07/29/98 1:07 PM Printed: 07/29/98 1:07 PM Page 68 of 24
Chapter 4:
Constants and Measurement Units
Preview of Constants and Measurement Units ................................... 70

4 Entering Constants or Units .................................................................. 71


Converting from One Unit to Another .................................................. 73
Setting the Default Units for Displayed Results .................................. 75
Creating Your Own User-Defined Units ............................................... 76
List of Pre-Defined Constants and Units .............................................. 77

The UNITS dialog box ( 2 9) lets you select the available


constants or units from different categories.

Note: Constant and unit


names always begin with an
This category lists
underscore _ ( ¥  ). constant values.

Remaining categories
list available units.

Page 3 ( …) of the MODE dialog box lets you select from three
systems of measurement to specify the default units for displayed
results.

Note: You can also use International system of


getUnits() to get a list of the measurements (metric or
default units or setUnits() to MKS) – meters, kilograms, etc.
set the default units. Refer English system – feet,
to Appendix A. pounds, etc.

Lets you select the units you


want to use.

By using the unit features, you can:


¦ Enter a unit for values in an expression, such as 6_m ù 4_m or
23_m/_s ù 10_s. The result is displayed in the selected default
units.
¦ Convert values from one unit to another within the same
category.
¦ Create your own user-defined units. These can be a
combination of existing units or unique “standalone” units.

Chapter 4: Constants and Measurement Units 69

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 08/03/98 1:52 PM Printed: 08/03/98 2:14 PM Page 69 of 12
Preview of Constants and Measurement Units

Using the equation f = mù a, calculate the force when m = 5 kilograms and a = 20


meters/secondñ. What is the force when a = 9.8 meters/secondñ. (This is the
acceleration due to gravity, which is a constant named _g). Convert the result from
newtons to kilograms of force.

Steps Keystrokes Display

1. Display the MODE dialog box, Page 3. 3…B1


For Unit System mode, select SI for ¸
the metric system of measurements.
Results are displayed according to these
default units.

2. Create an acceleration unit for 2 9 (scroll


meters/second 2 named _ms2. to Length
2 9 displays the UNITS dialog box, category)
which lets you select units from an BjM¸
alphabetical list of categories. You can use
2 D and 2 C to scroll one page at a e29
time through the categories. (scroll to Time
Now, instead of re-entering _m/_sñ each category)
time you need it, you can use _ms2 .
BjS¸
Also, you can now use 2 9 to select
_ms2 from the Acceleration category.
Z2§¥
2™MS If you use 2 9 to
j2¸ select a unit, the _ is
entered automatically.
3. Calculate the force when 5¥
m = 5 kilograms (_kg) and 2™KG
a = 20 meters/second 2 (_ms2). jp20¥
If you know the abbreviation for a unit, you 2™MS
can type it from the keyboard. For _ , press j2¸
¥ .

4. Using the same m, calculate the force 5¥2™


for an acceleration due to gravity KGjp2
(the constant _g). 9BjG
For _g , you can use the pre-defined ¸¸
constant available from 2 9 or you
can type _g .
5. Convert to kilograms of force (_kgf). B2Ž¥
2 Ž displays the 4 conversion operator. 2™KGF

70 Chapter 4: Constants and Measurement Units

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 07/29/98 12:42 PM Printed: 07/29/98 1:10 PM Page 70 of 12
Entering Constants or Units

You can use a menu to select from a list of available constants


and units, or you can type them directly from the keyboard.

From a Menu The following shows how to select a unit, but you can use the same
general procedure to select a constant.
From the Home screen:
1. Type the value or
6.3
expression.
2. Press 2 9 to display
the UNITS dialog box.
Tip: Use 2 D and 3. Use D and C to move the
2 C to scroll one page at cursor to the applicable
a time through the
categories. category.
4. To select the highlighted
Note: If you created a user-
defined unit for an existing unit, press ¸.
category (page 76), it is
listed in the menu. – or –
To select a different unit,
press B. Then highlight the
applicable unit, and press
¸.
You can also move the cursor by
The selected unit is placed in pressing j and typing the first
the entry line. Constant and letter of a unit.
unit names always begin with 6.3_pF
an underscore ( _ ).

From the Keyboard If you know the abbreviation that the TI-89 uses for a particular
constant or unit (refer to the list that begins on page 77), you can
type it directly from the keyboard. For example:
Note: You can type units in 256_m
either uppercase or
lowercase characters. For _ , press ¥ .

¦ The first character must be an underscore ( _ ).


¦ A space or a multiplication symbol ( ù ) before the underscore is
optional. For example, 256_m, 256 _m, and 256ù _m are
equivalent.
− However, if you are adding units to a variable, you must put a
space or ù before the underscore. For example, x_m is treated
as a variable, not as x with a unit.

Chapter 4: Constants and Measurement Units 71

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 07/29/98 12:42 PM Printed: 07/29/98 1:10 PM Page 71 of 12
Combining Multiple You may need to combine two or more units from different
Units categories.

For example, suppose you want


to enter a velocity in meters per
second. In the UNITS dialog
box, however, the Velocity
category does not contain this
unit.
Tip: Create a user-defined You can enter meters per
unit (page 76) for frequently 3ù 9.8_m/_s
second by combining _m and
used combinations.
_s from the Length and Time Combine the units _m
categories, respectively. and _s. There is no pre-
defined _m/_s unit.

Using Parentheses In a calculation, you may need to use parentheses ( ) to group a value
with Units in a and its units so that they are evaluated properly. This is particularly
Calculation true for division problems. For example:

To calculate: Enter:
Tip: If you have any doubt
100_m _m
about how a value and its 100_m/(2_s) 50.ø _s
units will be evaluated, 2_s
group them within You must use parentheses for (2_s).
parentheses ( ). This is important for division.

If you omit the parentheses, you will get


unexpected units. For example:

100_m/2_s 50.ø_mø_s

Here’s why you get unexpected units if you do not use parentheses.
In a calculation, a unit is treated similar to a variable. For example:
100_m is treated as 100ù _m
and
2_s is treated as 2ù _s

Without parentheses, the entry is calculated as:


100ù _m
100ù _m / 2ù _s = ù _s = 50.ø_mø_s
2

72 Chapter 4: Constants and Measurement Units

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 07/29/98 12:42 PM Printed: 07/29/98 1:10 PM Page 72 of 12
Converting from One Unit to Another

You can convert from one unit to another in the same


category, including any user-defined units (page 76).

For All Units Except If you use a unit in a calculation, it is converted and displayed
Temperature automatically in the current default unit for that category, unless you
use the 4 conversion operator as described later. The following
examples assume that your default units are set to the SI system of
metric units (page 75).
Note: For a list of pre- To multiply 20 times
defined units, see page 77. 6 kilometers.
Tip: Press 2 9 to 20ù 6_km
select available units from a Shown in the default unit for
For _ , press ¥ . Length, (_m in SI system).
menu.

If you want to convert to a unit other than the default, use the
4 conversion operator.
expression_unit1 4 _unit2
For 4, press 2 Ž.

To convert 4 light years to


kilometers:
4_ltyr 4 _km

To convert 186000 miles/second


to kilometers/hour:
186000_mi/_s 4 _km/_hr

If an expression uses a combination of units, you can specify a


conversion for some of the units only. Any units for which you do not
specify a conversion will be displayed according to your defaults.
To convert 186000 miles/second Because a Time conversion is
from miles to kilometers: not specified, it is shown in its
default unit ( _ s in this example).
186000_mi/_s 4 _km

To convert 186000 miles/second


from seconds to hours:
186000_mi/_s 4 1/_hr

Because a Length conversion is


not specified, it is shown in its
default unit (_m in this example).

Chapter 4: Constants and Measurement Units 73

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 07/29/98 12:42 PM Printed: 07/29/98 1:10 PM Page 73 of 12
To enter meters per second
squared:
27_m/_s^2

To convert meters per second


squared from seconds to hours:
27_m/_s^2 41/_hr^2

For Temperature To convert a temperature value, you must use tmpCnv() instead of
Values the 4 operator.
tmpCnv(expression_¡tempUnit1, _¡tempUnit2)
For ¡, press 2 “.
For _ , press ¥ .

For example, to convert


100_¡C to _¡F:
tmpCnv(100_¡c, _¡f)

0 100
_oC

_oF
32 212

For Temperature To convert a temperature range (the difference between two


Ranges temperature values), use @tmpCnv().
@tmpCnv(expression_¡tempUnit1, _¡tempUnit2)
For @, press ¥ c ¤ [D].

For example, to convert a


100_¡C range to its equivalent
range in _¡F:
@tmpCnv(100_¡c, _¡f)

100_oC
0 100
_oC

_oF
32 212
180_o F

74 Chapter 4: Constants and Measurement Units

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 07/29/98 12:42 PM Printed: 07/29/98 1:10 PM Page 74 of 12
Setting the Default Units for Displayed Results

All results involving units are displayed in the default unit for
that category. For example, if the default unit for Length is _m,
any length result is displayed in meters (even if you entered
_km or _ft in the calculation).

If You’re Using the The SI and ENG/US systems of


SI or ENG/US measurement (set from Page 3
System of the MODE screen) use built-
in default units, which you
cannot change.
To find the default units for
If Unit System=SI or ENG/US, the
these systems, refer to page 77. Custom Units item is dimmed.
You cannot set a default for
individual categories.

Setting Custom To set custom defaults:


Defaults 1. Press 3 … B 3 to set
Unit System = CUSTOM.

Note: You can also use 2. Press D to highlight SET


setUnits() or getUnits() to DEFAULTS.
set or return information
about default units. Refer to 3. Press B to display the
Appendix A. CUSTOM UNIT DEFAULTS
dialog box.
Tip: When the CUSTOM 4. For each category, you can
UNIT DEFAULTS dialog box highlight its default, press
first appears, it shows the
current default units. B, and select a unit from the
list.
5. Press ¸ twice to save
your changes and exit the
MODE screen. You can also move the cursor by
pressing jand typing the first
letter of a unit.

What is the NONE Many categories let you select NONE as the default unit.
Default? This means that results in that
category are displayed in the
default units of its components.
Note: NONE is not available For example, Area = Lengthñ, so
for base categories such as Length is the component of
Length and Mass that have
no components. Area.

¦ If the defaults are Area = _acre and Length = _m (meters), area


results are shown with _acre units.
¦ If you set Area = NONE, area results are shown with _mñ units.

Chapter 4: Constants and Measurement Units 75

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 07/29/98 12:42 PM Printed: 07/29/98 1:10 PM Page 75 of 12
Creating Your Own User-Defined Units

In any category, you can expand the list of available units by


defining a new unit in terms of one or more pre-defined units.
You can also use “standalone” units.

Why Use Your Own Some example reasons to create a unit are:
Units? ¦ You want to enter length values in dekameters. Define 10_m as a
new unit named _dm.
Note: If you create a user- ¦ Instead of entering _m/_s 2 as an acceleration unit, you define that
defined unit for an existing combination of units as a single unit named _ms2.
category, you can select it
from the 2 9 menu. ¦ You want to calculate how many times someone blinks. You can
But you cannot use 3 to
use _blinks as a valid unit without defining it. This “standalone”
select the unit as a default
for displayed results. unit is treated similar to a variable that is not defined. For
instance, 3_blinks is treated the same as 3a.

Rules for User- The naming rules for units are similar to variables.
Defined Unit Names ¦ Can have up to 8 characters.
¦ First character must be an underscore. (For _ , press ¥ .)
¦ Second character can be any valid variable name character
except _ or a digit. For example, _9f is not valid.
¦ Remaining characters (up to 6) can be any valid variable name
character except an underscore.

Defining a Unit Define a unit the same way you store to a variable.
definition ! _newUnit
For _ , press ¥ .
For !, press §.

Note: User-defined units are For example, to define a


displayed in lowercase dekameter unit:
characters, regardless of the
case you use to define 10_m ! _dm
them.
To define an acceleration unit:
Note: User-defined units
such as _dm are stored as _m/_s^2 ! _ms2
variables. You can delete
Assuming unit defaults for Length
them the same as you and Time are set to _m and _s.
would any variable.
To calculate 195 blinks in 5
minutes as _blinks/_min:
195_blinks/(5_min)

Assuming unit default for


Time is set to _s.

76 Chapter 4: Constants and Measurement Units

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 07/29/98 12:42 PM Printed: 07/29/98 1:10 PM Page 76 of 12
List of Pre-Defined Constants and Units

This section lists the pre-defined constants and units by


category. You can select any of these from the UNITS dialog
box ( 2 9 ) . If you use 3 to set default units, note that
categories with only one defined unit are not listed.

Defaults for SI and The SI and ENG/US systems of measurement use built-in default
ENG/US units. In this section, the built-in defaults are indicated by (SI) and
(ENG/US). In some categories, both systems use the same default.
For a description of the NONE default, refer to page 75. Notice that
some categories do not have default units.

Constants _c ............ speed of light .......................2.99792458E8_m/_s


_Cc.......... coulomb constant ...............8.9875517873682E9_Nø_m2/_coul2
_g ............ acceleration of gravity........9.80665_m/_s 2
Note: The TI-89 simplifies _Gc ......... gravitational constant.........6.67259Eë 11_m 3/_kg/_s2
unit expressions and _h ............ Planck’s constant ................6.6260755Eë 34_Jø_s
displays results according to
your default units. _k ............ Boltzmann’s constant .........1.380658Eë 23_J/_°K
Therefore, constant values _Me ......... electron rest mass...............9.1093897Eë 31_kg
displayed on your screen _Mn......... neutron rest mass ...............1.6749286Eë 27_kg
may appear different from _Mp......... proton rest mass .................1.6726231Eë 27_kg
the values in this table.
_Na ......... Avogadro’s number.............6.0221367E23 /_mol
_q ............ electron charge....................1.60217733Eë 19_coul
_Rb ......... Bohr radius ..........................5.29177249Eë 11_m
_Rc.......... molar gas constant..............8.31451_J/_mol/_¡K
_Rdb ....... Rydberg constant ................10973731.53413 /_m
_Vm......... molar volume.......................2.241409Eë 2_m3/_mol
Note: For m, press _H0........... permittivity of a vacuum......8.8541878176204Eë 12_F/_m
¥ c j [M]. For H, _s ............ Stefan-Boltzmann constant ..5.6705119Eë 8_W/_m 2/_¡K 4
press ¥ c j [E].
_f0 .......... magnetic flux quantum.......2.0678346161Eë 15_Wb
_m0 .......... permeability of a vacuum ....1.2566370614359Eë 6_N/_A2
_mb.......... Bohr magneton....................9.2740154Eë 24_Jø_m2/_Wb

Acceleration no pre-defined units

Amount of _mol........ mole


Substance (no default)

Area _acre....... acre NONE (SI) (ENG/US)


_ha .......... hectare

Capacitance _F ............ farad (SI) (ENG/US) _mF..........microfarad


_nF.......... nanofarad For m, press
_pF.......... picofarad ¥ c j [M].

Chapter 4: Constants and Measurement Units 77

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 07/29/98 12:42 PM Printed: 07/29/98 1:10 PM Page 77 of 12
Charge _coul....... coulomb (SI) (ENG/US)

Conductance _mho....... mho (ENG/US) _siemens..siemens (SI)


_mmho ... millimho _mmho ....micromho

Electric Current _A............ ampere (SI) (ENG/US) _mA..........microampere


_kA ......... kiloampere For m, press
_mA ........ milliampere ¥ c j [M].

Energy _Btu ........ British thermal unit _ftlb.........foot-pound


(ENG/US) _J.............joule (SI)
_cal ......... calorie _kcal .......kilocalorie
_erg......... erg _kWh.......kilowatt-hour
_eV .......... electron volt _latm.......liter-atmosphere

Force _dyne...... dyne _N............newton (SI)


_kgf......... kilogram force _tonf .......ton force
_lbf.......... pound force (ENG/US)

Frequency _GHz....... gigahertz _kHz........kilohertz


_Hz.......... hertz (SI) (ENG/US) _MHz ......megahertz

Inductance _henry .... henry (SI) (ENG/US) _mH .........microhenry


_mH ........ millihenry For m, press
_nH ......... nanohenry ¥ c j [M].

Length _Ang ....... angstrom _mi ..........mile


_au .......... astronomical unit _mil .........1/1000 inch
_cm ......... centimeter _mm........millimeter
_fath ....... fathom _Nmi .......nautical mile
_fm.......... fermi _pc ..........parsec
_ft............ foot (ENG/US) _rod.........rod
_in ........... inch _yd ..........yard
_km......... kilometer _m ............micron
_ltyr ........ light year _A¡ ............angstrom
_m ........... meter (SI)

Luminous Intensity _cd .......... candela


(no default)

Mag Field Strength _Oe ......... oersted NONE (SI) (ENG/US)

Mag Flux Density _Gs.......... gauss _T ............tesla (SI) (ENG/US)

Magnetic Flux _Wb......... weber (SI) (ENG/US)

78 Chapter 4: Constants and Measurement Units

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 07/29/98 12:42 PM Printed: 07/29/98 1:10 PM Page 78 of 12
Mass _amu....... atomic mass unit _oz...........ounce
_gm ......... gram _slug .......slug
_kg .......... kilogram (SI) _ton.........ton
_lb ........... pound (ENG/US) _tonne ....metric ton
_mg ......... milligram _tonUK ...long ton
_mton ..... metric ton

Potential _kV.......... kilovolt _V ............volt (SI) (ENG/US)


_mV......... millivolt _volt........volt

Power _hp .......... horsepower (ENG/US) _W ...........watt (SI)


_kW......... kilowatt

Pressure _atm........ atmosphere _mmHg...millimeters of mecury


_bar......... bar _Pa ..........pascal (SI)
_inH2O ... inches of water _psi .........pounds per square
_inHg ...... inches of mercury inch (ENG/US)
_mmH2O.. millimeters of water _torr........millimeters of mecury

Resistance _kJ ......... kilo ohm _MJ ........megaohm


For J, press _ohm.......ohm
¥ c ¤ [W]. _J ...........ohm (SI) (ENG/US)

Temperature _¡C .......... ¡Celsius _¡K ..........¡Kelvin


For ¡, press 2 “. _¡R ..........¡Rankine
_¡F .......... ¡Fahrenheit (no default)

Time _day ........ day _s.............second (SI) (ENG/US)


_hr........... hour _week .....week
_min........ minute _yr ...........year
_ms ......... millisecond _ms ..........microsecond
_ns .......... nanosecond For m, press
¥ c j [M].

Velocity _knot ...... knot _mph.......miles per hour


_kph........ kilometers per hour NONE (SI) (ENG/US)

Viscosity, Dynamic _P ............ poise

Viscosity, Kinematic _St........... stokes

Volume _cup........ cup _ml ..........milliliter


_floz........ fluid ounce _pt ...........pint
_flozUK .. British fluid ounce _qt ...........quart
_gal ......... gallon _tbsp .......tablespoon
_galUK.... British gallon _tsp .........teaspoon
_l ............. liter NONE (SI) (ENG/US)

Chapter 4: Constants and Measurement Units 79

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 07/29/98 12:42 PM Printed: 07/29/98 1:10 PM Page 79 of 12
80 Chapter 4: Constants and Measurement Units

UNITS.DOC TI-89: Constants and Measurement Units (US English) Susan Gullord Revised: 07/29/98 12:42 PM Printed: 07/29/98 1:10 PM Page 80 of 12
Chapter 5:
Additional Home Screen Topics
Saving the Home Screen Entries as a Text Editor Script................... 82
Cutting, Copying, and Pasting Information.......................................... 83

5 Creating and Evaluating User-Defined Functions............................... 85


Using Folders to Store Independent Sets of Variables ....................... 88
If an Entry or Answer Is “Too Big”........................................................ 91

To help you get started using the TI-89 as quickly as possible,


Chapter 2 described the basic operations of the Home screen.
This chapter describes additional operations that can help you
use the Home screen more effectively.

Because this chapter consists of various stand-alone topics, it


does not start with a “preview” example.

Chapter 5: Additional Home Screen Topics 81

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 08/03/98 12:57 PM Printed: 08/03/98 2:15 PM Page 81 of 12
Saving the Home Screen Entries as a Text Editor Script

To save all the entries in the history area, you can save the
Home screen to a text variable. When you want to reexecute
those entries, use the Text Editor to open the variable as a
command script.

Saving the Entries From the Home screen:


in the History Area 1. Press ƒ and select
2:Save Copy As.

Note: Only the entries are 2. Specify a folder and text


saved, not the answers. variable that you want to
use to store the entries.

Item Description
Type Automatically set as Text and cannot be changed.
Note: For information about Folder Shows the folder in which the text variable will be
folders, refer to page 88. stored. To use a different folder, press B to display a
menu of existing folders. Then select a folder.
Variable Type a valid, unused variable name.

3. Press ¸ (after typing in an input box such as Variable, press


¸ twice).

Restoring the Saved Because the entries are stored in a script format, you cannot restore
Entries them from the Home screen. (On the Home screen’s ƒ toolbar
menu, 1:Open is not available.) Instead:
Note: For complete 1. Use the Text Editor to open the variable containing the saved
information on using the Home screen entries.
Text Editor and executing a
command script, refer to The saved entries are listed as a series of command lines that you
Chapter 18.
can execute individually, in any order.
2. Starting with the cursor on
the first line of the script,
press † repeatedly to
execute the commands line
by line.
3. Display the restored Home
screen.
This split screen shows the Text Editor
(with the command line script) and the
restored Home screen.

82 Chapter 5: Additional Home Screen Topics

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:15 PM Page 82 of 12
Cutting, Copying, and Pasting Information

Cut, copy, and paste operations let you move or copy


information within the same application or between different
applications. These operations use the TI-89’s clipboard, which
is an area in memory that serves as a temporary storage
location.

Auto-paste vs. Auto-paste, described in Chapter 2, is a quick way to copy an entry or


Cut/Copy/Paste answer in the history area and paste it to the entry line.
1. Use C and D to highlight the item in the history area.
2. Press ¸ to auto-paste that item to the entry line.
To copy or move information in the entry line, you must use a cut,
copy, or paste operation. (You can perform a copy operation in the
history area, but not a cut or paste.)

Cutting or Copying When you cut or copy information, that information is placed in the
Information to the clipboard. However, cutting deletes the information from its current
Clipboard location (used to move information) and copying leaves the
information.
1. Highlight the characters that you want to cut or copy.
In the entry line, move the cursor to either side of the characters.
Hold ¤ and press A or B to highlight characters to the left or
right of the cursor, respectively.
Tip: You can press ¥ 5, 2. Press ƒ and select 4:Cut or 5:Copy.
¥ 6, or ¥ 7 to cut,
copy or paste, respectively,
without having to use the Clipboard = (empty or the previous contents)
ƒ toolbar menu.

After cut After copy

Note: When you cut or copy


information, it replaces the
clipboard’s previous
contents, if any. Clipboard = x^4ì 3x^3ì 6x^2+8x Clipboard = x^4ì 3x^3ì 6x^2+8x

Cutting is not the same as deleting. When you delete information, it is


not placed in the clipboard and cannot be retrieved.

Chapter 5: Additional Home Screen Topics 83

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:15 PM Page 83 of 12
Pasting Information A paste operation inserts the contents of the clipboard at the current
from the Clipboard cursor location on the entry line. This does not change the contents
of the clipboard.
1. Position the cursor where you want to paste the information.
2. Press ƒ and select 6:Paste (or use the ¥ 7 shortcut).

Example: Copying Suppose you want to reuse an expression without retyping it each
and Pasting time.
1. Copy the applicable information.
a. Use ¤ B or ¤ A to
highlight the
expression.
b. Press ¥ 6.
c. For this example, press ¸ to evaluate the entry.
Tip: You can also reuse an 2. Paste the copied information into a new entry.
expression by creating a
user-defined function. Refer a. Press … 1 to select the d differentiate function.
to page 85.
b. Press ¥ 7 to
paste the copied
expression.

c. Complete the new


entry, and press
¸.

Tip: By copying and 3. Paste the copied information into a different application.
pasting, you can easily
transfer information from a. Press ¥ # to display the Y= Editor.
one application to another.
b. Press ¸ to
define y1(x).
c. Press ¥ 7 to
paste.
d. Press ¸ to
save the new
definition.

84 Chapter 5: Additional Home Screen Topics

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:15 PM Page 84 of 12
Creating and Evaluating User-Defined Functions

User-defined functions can be a great time-saver when you


need to repeat the same expression (but with different values)
multiple times. User-defined functions can also extend your
TI-89’s capabilities beyond the built-in functions.

Format of a The following examples show user-defined functions with one


Function argument and two arguments. You can use as many arguments as
necessary. In these examples, the definition consists of a single
expression (or statement).
1
Note: Function names cube(x) = x 3 xroot(x,y) = y x
follow the same rules as
variable names. Refer to Definition Definition
“Storing and Recalling Argument list Argument list
Variable Values” in
Chapter 2. Function name Function name

When defining functions and programs, use unique names for


arguments that will not be used in the arguments for a subsequent
function or program call.
In the argument list, be sure to use the same arguments that are used
in the definition. For example, cube(n) = xò gives unexpected results
when you evaluate the function.
Arguments (x and y in these examples) are placeholders that
represent whatever values you pass to the function. They do not
represent the variables x and y unless you specifically pass x and y as
the arguments when you evaluate the function.

Creating a User- Use one of the following methods.


Defined Function
Method Description
§ Store an expression to a function name
(including the argument list).

Define command Define a function name (including the argument


list) as an expression.

Program Editor Refer to Chapter 17 for information on creating a


user-defined function.

Chapter 5: Additional Home Screen Topics 85

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:15 PM Page 85 of 12
Creating a Multi- You can also create a user-defined function whose definition consists
Statement Function of multiple statements. The definition can include many of the
control and decision-making structures (If, ElseIf, Return, etc.) used
Note: For information about in programming.
similarities and differences
between functions and For example, suppose you want to create a function that sums a
programs, refer to series of reciprocals based on an entered integer (n):
Chapter 17.
1 1 1
+ + ... +
n nì 1 1

When creating the definition of a multi-statement function, it may be


helpful to visualize it first in a block form.
Variables not in the
argument list must be Func
Local temp,i Func and EndFunc
declared as local.
must begin and end the
If fPart(nn)ƒ0 or nn0 function.
Returns a message Return “bad argument”
if nn is not an 0! temp For information about
integer or if nn0.
For i,nn,1,ë 1 the individual
Sums the reciprocals. approx(temp+1/i)! temp statements, refer to
EndFor Appendix A.
Returns the sum. Return temp
EndFunc

When entering a multi-statement function on the Home screen, you


must enter the entire function on a single line. Use the Define
command just as you would for a single-statement function.
Use argument names that will never be used
when calling the function or program. Use a colon to separate each statement.

Define sumrecip(nn)=Func:Local temp,i: ... :EndFunc

Multi-statement functions
Tip: It’s easier to create a On the Home screen: show as “Func”.
complicated multi-statement
function in the Program
Editor than on the Home Enter a multi-statement
screen. Refer to Chapter 17. function on one line. Be
sure to include colons.

Evaluating a You can use a user-defined function just as you would any other
Function function. Evaluate it by itself or include it in another expression.

86 Chapter 5: Additional Home Screen Topics

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:15 PM Page 86 of 12
Displaying and To: Do this:
Editing a Function Display a list of all Press 2 ° to display the VAR-LINK
Definition user-defined functions screen. (Refer to Chapter 21.)
You may need to use the „ View toolbar
menu to specify the Function variable type.
Display the definition From the VAR-LINK screen, highlight the
of a user-defined function and press 2 ˆ Contents.
function
— or —
From the Home screen, press 2 £.
Type the function name but not the
argument list (such as xroot), and press
¸ twice.
— or —
From the Program Editor, open the
function. (Refer to Chapter 17.)
Edit the definition From the Home screen, use 2 £ to
display the definition. Edit the definition as
necessary. Then use § or Define to save
the new definition.
— or —
From the Program Editor, open the
function, edit it, and save your changes.
(Refer to Chapter 17.)

Chapter 5: Additional Home Screen Topics 87

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:15 PM Page 87 of 12
Using Folders to Store Independent Sets of Variables

The TI-89 has one built-in folder named MAIN, and all variables
are stored in that folder. By creating additional folders, you can
store independent sets of user-defined variables (including
user-defined functions).

Folders and Folders give you a convenient way to manage variables by organizing
Variables them into related groups. For example, you can create separate
folders for different TI-89 applications (Math, Text Editor, etc.) or
classes.
¦ You can store a user- Example of variables that
defined variable in any can be stored in MAIN only
existing folder. Window variables
¦ A system variable or a (xmin, xmax, etc.)
variable with a reserved Table setup variables
name, however, can be (TblStart, @Tbl, etc.)
stored in the MAIN folder Y= Editor functions
only. (y1(x), etc.)

The user-defined variables in


one folder are independent of
the variables in any other
folder.
Therefore, folders can store separate sets of variables with the same
names but different values.

Note: User-defined MAIN


variables are stored in the System variables
“current folder” unless you Variables
User-defined
specify otherwise. Refer to a=1, b=2, c=3
“Using Variables in Different f(x)=x 3 +x 2 +x
Folders” on page 90.
ALG102
Name of current folder
User-defined
b=5, c=100
f(x)=sin(x)+cos(x)

DAVE
You cannot create a folder User-defined
within another folder. a=3, b=1, c=2
f(x)=x 2 +6

MATH
User-defined
a=42, c=6
f(x)=3x 2 +4x+25

The system variables in the MAIN folder are always directly


accessible, regardless of the current folder.

88 Chapter 5: Additional Home Screen Topics

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:15 PM Page 88 of 12
Creating a Folder Enter the NewFold command.
from the Home NewFold folderName
Screen
Folder name to create. This new folder is set
automatically as the current folder.

Creating a Folder The VAR-LINK screen, which is described in Chapter 21, lists the
from the VAR-LINK existing variables and folders.
Screen 1. Press 2 °.
2. Press ƒ Manage and select
5:Create Folder.
3. Type a unique folder name up to
eight characters, and press
¸ twice.
After you create a new folder from VAR-LINK, that folder is not
automatically set as the current folder.

Setting the Current Enter the setFold function.


Folder from the setFold (folderName)
Home Screen
setFold is a function, which requires you to
enclose the folder name in parentheses.

When you execute setFold, it returns the name of the folder that was
previously set as the current folder.

Setting the Current To use the MODE dialog box:


Folder from the 1. Press 3.
MODE Dialog Box
2. Highlight the Current
Folder setting.
Tip: To cancel the menu or 3. Press B to display a
exit the dialog box without menu of existing
saving any changes, press
N. folders.
4. Select the applicable
folder. Either:
¦ Highlight the folder name and press ¸.
— or —
¦ Press the corresponding number or letter for that folder.
5. Press ¸ to save your changes and close the dialog box.

Chapter 5: Additional Home Screen Topics 89

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:15 PM Page 89 of 12
Using Variables in You can access a user-defined variable or function that is not in the
Different Folders current folder. Specify the complete pathname instead of only the
variable name.
A pathname has the form:
Tip: For “ \ ”, press folderName \ variableName
2 Ì (2nd function of ©). — or —
folderName \ functionName

For example:

If Current Folder = MAIN Folders

Note: This example


assumes that you have MAIN
already created a folder a=1
named MATH. f(x)=x 3 +x 2 +x

MATH
a=42
f(x)=3x 2 +4x+25

Note: For information about To see a list of existing folders and variables, press 2 °. On
the VAR-LINK screen, refer the VAR-LINK screen, you can highlight a variable and press ¸ to
to Chapter 21.
paste that variable name to the Home screen’s entry line. If you paste
a variable name that is not in the current folder, the pathname
(folderName\variableName) is pasted.

Deleting a Folder Before deleting a folder, you must delete all the variables stored in
from the Home that folder.
Screen ¦ To delete a variable, enter the DelVar command.
DelVar var1 [, var2] [, var3] ...
Note: You cannot delete the ¦ To delete an empty folder, enter the DelFold command.
MAIN folder.
DelFold folder1 [, folder2] [, folder3] ...

Deleting a Folder VAR-LINK lets you delete a folder and its variables at the same time.
from the VAR-LINK Refer to Chapter 21.
Screen 1. Press 2 °.
2. Select the item(s) to delete and press ƒ 1 or 0. (If you use † to
select a folder, its variables are selected automatically.)
3. Press ¸ to confirm the deletion.

90 Chapter 5: Additional Home Screen Topics

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:15 PM Page 90 of 12
If an Entry or Answer Is “Too Big”

In some cases, an entry or answer may be “too long” and/or


“too tall” to be displayed completely in the history area. In other
cases, the TI-89 may not be able to display an answer
because there is not enough free memory.

If an Entry or Move the cursor into the history area, and highlight the entry or
Answer Is answer. Then use the cursor pad to scroll. For example:
“Too Long” ¦ The following shows an answer that is too long for one line.

Press A Press B
or 2 A or 2 B
to scroll to scroll
left. right.

¦ The following shows an answer that is both too long and too tall
to be displayed on the screen.
Press ¤ C to scroll up.

Note: This example uses Press A Press B


the randMat function to or 2 A or 2 B
generate a 25 x 25 matrix. to scroll to scroll
left. right.

Press ¤ D to scroll down.

If There Is not A <<...>> symbol is displayed when the TI-89 does not have enough
Enough Memory free memory to display the answer.
For example:

Note: This example uses


the seq function to generate
a sequential list of integers
from 1 to 2500.
When you see the <<...>> symbol, the answer cannot be displayed
even if you highlight it and try to scroll.
In general, you can try to:
¦ Free up additional memory by deleting unneeded variables. Use
2 ° as described in Chapter 21.
¦ If possible, break the problem into smaller parts that can be
calculated and displayed with less memory.

Chapter 5: Additional Home Screen Topics 91

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:15 PM Page 91 of 12
92 Chapter 5: Additional Home Screen Topics

ADDLHOME.DOC TI-89: Additional Home Screen Topics (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:15 PM Page 92 of 12
Chapter 6:
Basic Function Graphing
Preview of Basic Function Graphing.................................................... 94
Overview of Steps in Graphing Functions ........................................... 95

6 Setting the Graph Mode.......................................................................... 96


Defining Functions for Graphing .......................................................... 97
Selecting Functions to Graph ................................................................ 99
Setting the Display Style for a Function............................................. 100
Defining the Viewing Window ............................................................. 101
Changing the Graph Format ................................................................ 102
Graphing the Selected Functions ........................................................ 103
Displaying Coordinates with the Free-Moving Cursor ..................... 104
Tracing a Function ................................................................................ 105
Using Zooms to Explore a Graph ........................................................ 107
Using Math Tools to Analyze Functions............................................. 110

This chapter describes the steps used to display and explore a


graph. Before using this chapter, you should be familiar with
Chapter 2: Operating the TI-89.

Y= Editor shows
an algebraic
representation.

Graph screen
shows a graphic
representation.

Although this chapter describes how to graph y(x) functions, the


basic steps apply to all graphing modes. Later chapters give
specific information about the other graphing modes.

Chapter 6: Basic Function Graphing 93

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 08/03/98 1:02 PM Printed: 08/03/98 2:21 PM Page 93 of 22
Preview of Basic Function Graphing

Graph a circle of radius 5, centered on the origin of the coordinate system. View the circle
using the standard viewing window (ZoomStd). Then use ZoomSqr to adjust the viewing
window.

Steps Keystrokes Display

1. Display the MODE dialog box. 3


For Graph mode, select FUNCTION. B1
¸

2. Display the Home screen. Then store " 5! r 5


the radius, 5, in variable r. 5§jR
¸

3. Display and clear the Y= Editor. ¥#


Then define y1(x) = rñ - xñ , ƒ8¸
the top half of a circle. ¸2]
jRZ2|X
In function graphing, you must define
separate functions for the top and bottom Z2d¸
halves of a circle.

4. Define y2(x) = ë rñ - xñ , the function ¸ Use the full function name


for the bottom half of the circle. ·Y1cXd y1(x), not simply y1.
¸
The bottom half is the negative of the top
half, so you can define y2(x) = ë y1(x).

5. Select the ZoomStd viewing window, „6


which automatically graphs the
functions.
In the standard viewing window, both the
x and y axes range from ë 10 to 10.
However, this range is spread over a
Notice slight gap
longer distance along the x axis than the y
between top and
axis. Therefore, the circle appears as an
bottom halves.
ellipse.

6. Select ZoomSqr. „5
ZoomSqr increases the range along the
x axis so that circles and squares are
shown in correct proportion.

Note: There is a gap between the top and bottom halves of the circle because each half is a
separate function. The mathematical endpoints of each half are (-5,0) and (5,0). Depending on
the viewing window, however, the plotted endpoints for each half may be slightly different from
their mathematical endpoints.

94 Chapter 6: Basic Function Graphing

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 94 of 22
Overview of Steps in Graphing Functions

To graph one or more y(x) functions, use the general steps


shown below. For a detailed description of each step, refer to
the following pages. You may not need to do all the steps each
time you graph a function.

Graphing Functions
Set Graph mode (3)
to FUNCTION.
Also set Angle mode,
if necessary.

Define functions on
Y= Editor (¥ #).

Tip: To turn off any stat


data plots (Chapter 16), Select (†) which
press ‡ 5 or use † to defined functions to
deselect them. graph.

Set the display style


Tip: This is optional. For (2 ˆ) for a function.
multiple functions, this helps
visually distinguish one from
another.

Define the viewing


Tip: „ Zoom also changes window (¥ $).
the viewing window.

Change the graph


format (¥ Í or ƒ 9),
if necessary.

Graph the selected


functions (¥ %).

Exploring the Graph From the Graph screen, you can:


¦ Display the coordinates of any pixel by using the free-moving
cursor, or of a plotted point by tracing a function.
¦ Use the „ Zoom toolbar menu to zoom in or out on a portion of
the graph.
¦ Use the ‡ Math toolbar menu to find a zero, minimum,
maximum, etc.

Chapter 6: Basic Function Graphing 95

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 95 of 22
Setting the Graph Mode

Before graphing y(x) functions, you must select FUNCTION


graphing. You may also need to set the Angle mode, which
affects how the TI-89 graphs trigonometric functions.

Graph Mode 1. Press 3 to display the MODE dialog box, which shows the
current mode settings.
2. Set the Graph mode to FUNCTION. Refer to “Setting Modes” in
Chapter 2.

Note: For graphs that do not


use complex numbers, set
Complex Format = REAL.
Otherwise, it may affect
graphs that use powers,
such as x 1/3.

While this chapter specifically describes y(x) function graphs, the


TI-89 lets you select from five Graph mode settings.

Graph Mode Setting Description


FUNCTION y(x) functions
Note: Other Graph mode PARAMETRIC x(t) and y(t) parametric equations
settings are described in
later chapters. POLAR r(q) polar equations
SEQUENCE u(n) sequences

3D z(x,y) 3D equations
DIFFERENTIAL EQUATION y'(t) differential equations

Angle Mode When using trigonometric functions, set the Angle mode for the units
(RADIAN or DEGREE) in which you want to enter and display angle
values.

Checking the To see the current Graph mode and Angle mode, check the status line
Status Line at the bottom of the screen.

Angle Graph
Mode Mode

96 Chapter 6: Basic Function Graphing

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 96 of 22
Defining Functions for Graphing

In FUNCTION graphing mode, you can graph functions named


y1(x) through y99(x). To define and edit these functions, use
the Y= Editor. (The Y= Editor lists function names for the
current graphing mode. For example, in POLAR graphing mode,
function names are r1(q), r2(q), etc.)

Defining a New 1. Press ¥ # or O 2 to display the Y= Editor.


Function
Plots — You can scroll above y1= to see
Note: The function list a list of stat plots. See Chapter 16.
shows abbreviated function Function List — You can scroll through
names such as y1, but the the list of functions and definitions.
entry line shows the full
name y1(x). Entry Line — Where you define or
edit the function highlighted in the list.

2. Press D and C to move the cursor to any undefined function.


(Use 2 D and 2 C to scroll one page at a time.)
Tip: For an undefined 3. Press ¸ or … to move the cursor to the entry line.
function, you do not need to
press ¸ or …. When 4. Type the expression to define the function.
you begin typing, the cursor
moves to the entry line. ¦ The independent variable in function graphing is x.
¦ The expression can refer to other variables, including
matrices, lists, and other functions. Only floats and lists of
floats will produce a plot.
Tip: If you accidentally
move the cursor to the entry 5. When you complete the expression, press ¸.
line, press N to move it
back to the function list. The function list now shows the new function, which is
automatically selected for graphing.

Editing a Function From the Y= Editor:


1. Press D and C to highlight the function.
2. Press ¸ or … to move the cursor to the entry line.
3. Do any of the following.
¦ Use B and A to move the cursor within the expression and
edit it. Refer to “Editing an Expression in the Entry Line” in
Chapter 2.
— or —
¦ Press M once or twice to clear the old expression, and
then type the new one.
Tip: To cancel any editing 4. Press ¸.
changes, press N instead
of ¸. The function list now shows the edited function, which is
automatically selected for graphing.

Chapter 6: Basic Function Graphing 97

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 97 of 22
Clearing a Function From the Y= Editor:

To erase: Do this:
A function from Highlight the function and press 0 or M.
the function list
A function from Press M once or twice (depending on the
the entry line cursor’s location) and then press ¸.
Note: ƒ 8 does not erase All functions Press ƒ and then select 8:Clear Functions.
any stat plots (Chapter 16). When prompted for confirmation, press ¸.

You don’t have to clear a function to prevent it from being graphed.


As described on page 99, you can select the functions you want to
graph.

Shortcuts to Move From the Y=Editor:


the Cursor Press: To:
¥ C or Go to function 1 or to the last defined function,
¥D respectively. If the cursor is on or past the last
defined function, ¥ D goes to function 99.

From the Home You can also define and evaluate a function from the Home screen or
Screen or a a program.
Program ¦ Use the Define and Graph commands. Refer to:
− “Graphing a Function Defined on the Home Screen” and
Tip: User-defined functions “Graphing a Piecewise Defined Function” in Chapter 12.
can have almost any name.
However, if you want them − “Overview of Entering a Function” in Chapter 17.
to appear in the Y= Editor,
use function names y1(x), ¦ Store an expression directly to a function variable. Refer to:
y2(x), etc. − “Storing and Recalling Variable Values” in Chapter 2.
− “Creating and Evaluating User-Defined Functions” in
Chapter 5.

98 Chapter 6: Basic Function Graphing

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 98 of 22
Selecting Functions to Graph

Regardless of how many functions are defined in the


Y= Editor, you can select the ones you want to graph.

Selecting or Press ¥ # or O 2 to display the Y= Editor.


Deselecting
Functions A “Ÿ” indicates which functions will be graphed the next time you
display the Graph screen.

If PLOT numbers are


Selected displayed, those stat plots
are selected.

Deselected In this example, Plots 1


and 2 are selected. To
view them, scroll above
y1=.

To select or deselect: Do this:


Tip: You don’t have to A specified function 1. Move the cursor to highlight the function.
select a function when you
enter or edit it; it is selected 2. Press †.
automatically.
This procedure selects a deselected function
or deselects a selected function.
Tip: To turn off any stat All functions 1. Press ‡ to display the All toolbar menu.
plots, press ‡ 5 or use
† to deselect them. 2. Select the applicable item.

From the Home You can also select or deselect functions from the Home screen or a
Screen or a Program program.
¦ Use the FnOn and FnOff commands (available from the Home
screen’s † Other toolbar menu) for functions. Refer to
Appendix A.
¦ Use the PlotsOn and PlotsOff commands for stat plots. Refer to
Appendix A.

Chapter 6: Basic Function Graphing 99

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 99 of 22
Setting the Display Style for a Function

For each defined function, you can set a style that specifies
how that function will be graphed. This is useful when graphing
multiple functions. For example, set one as a solid line,
another as a dotted line, etc.

Displaying or From the Y= Editor:


Changing a 1. Move the cursor to highlight the applicable function.
Function’s Style
2. Press 2 ˆ.

¦ Although the Line item is initially


highlighted, the function’s current style is
indicated by a Ÿ mark.
¦ To exit the menu without making a
change, press N.
3. To make a change, select the applicable style.

Style Description
Tip: To set Line as the style Line Connects plotted points with a line. This is the default.
for all functions, press
‡ and select 4:Reset Dot Displays a dot at each plotted point.
Styles.
Square Displays a solid box at each plotted point.
Thick Connects plotted points with a thick line.
Animate A round cursor moves along the leading edge of the
graph but does not leave a path.
Path A round cursor moves along the leading edge of the
graph and does leave a path.
Above Shades the area above the graph.
Below Shades the area below the graph.

If You Use Above or The TI-89 has four shading patterns, used on a rotating basis. If you
Below Shading set one function as shaded, it uses the first pattern. The next shaded
function uses the second pattern, etc. The fifth shaded function
reuses the first pattern.

When shaded areas intersect,


their patterns overlap.

From the Home You can also set a function’s style from the Home screen or a
Screen or a Program program. Refer to the Style command in Appendix A.

100 Chapter 6: Basic Function Graphing

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 100 of 22
Defining the Viewing Window

The viewing window represents the portion of the coordinate


plane displayed on the Graph screen. By setting Window
variables, you can define the viewing window’s boundaries
and other attributes. Function graphs, parametric graphs, etc.,
have their own independent set of Window variables.

Displaying Window Press ¥ $ or O 3 to display the Window Editor.


Variables in the
ymax
Window Editor xmin
xscl

xmax
ymin yscl

Window Variables Corresponding Viewing Window


(shown in Window Editor) (shown on Graph screen)

Variable Description
xmin, xmax, Boundaries of the viewing window.
ymin, ymax
Tip: To turn off tick marks, xscl, yscl Distance between tick marks on the x and y axes.
set xscl=0 and/or yscl=0.
xres Sets pixel resolution (1 through 10) for function graphs.
The default is 2.
Tip: Small values of xres ¦ At 1, functions are evaluated and graphed at each
improve the graph’s pixel along the x axis.
resolution but may reduce
the graphing speed. ¦ At 10, functions are evaluated and graphed at every
10th pixel along the x axis.

Changing the From the Window Editor:


Values 1. Move the cursor to highlight the value you want to change.
2. Do any of the following:
¦ Type a value or an expression. The old value is erased when
you begin typing.
Note: If you type an — or —
expression, it is evaluated ¦ Press M to clear the old value; then type the new one.
when you move the cursor
to a different Window — or —
variable or leave the ¦ Press A or B to remove the highlighting; then edit the value.
Window Editor.
Values are stored as you type them; you do not need to press ¸.
¸ simply moves the cursor to the next Window variable.

From the Home You can also store values directly to the Window variables from the
Screen or a Program Home screen or a program. Refer to “Storing and Recalling Variable
Values” in Chapter 2.

Chapter 6: Basic Function Graphing 101

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 101 of 22
Changing the Graph Format

You can set the graph format to show or hide reference


elements such as the axes, a grid, and the cursor’s
coordinates. Function graphs, parametric graphs, etc., have
their own independent set of graph formats.

Displaying Graph From the Y= Editor, Window Editor, or Graph screen, press ƒ and
Format Settings select 9:Format.

¦ The GRAPH FORMATS dialog


Tip: You also can press box shows the current
¥ Í from the Y= Editor, settings.
Window Editor, or Graph
screen. ¦ To exit without making a
change, press N.

Format Description
Coordinates Shows cursor coordinates in rectangular (RECT)
or polar (POLAR) form, or hides (OFF) the
coordinates.
Graph Order Graphs functions one at a time (SEQ) or all at the
same time (SIMUL).
Tip: To turn off tick marks, Grid Shows (ON) or hides (OFF) grid points that
define the viewing window correspond to the tick marks on the axes.
so that xscl and/or yscl = 0.
Axes Shows (ON) or hides (OFF) the x and y axes.
Leading Cursor Shows (ON) or hides (OFF) a reference cursor
that tracks the functions as they are graphed.
Labels Shows (ON) or hides (OFF) labels for the x and y
axes.

Changing Settings From the GRAPH FORMATS dialog box:


1. Move the cursor to highlight the format setting.
2. Press B to display a menu of valid settings for that format.
3. Select a setting. Either:
Tip: To cancel a menu or ¦ Move the cursor to highlight the setting, and then press ¸.
exit the dialog box without — or —
saving any changes, use
N instead of ¸. ¦ Press the number for that setting.
4. After changing all applicable format settings, press ¸ to save
your changes and close the GRAPH FORMATS dialog box.

102 Chapter 6: Basic Function Graphing

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 102 of 22
Graphing the Selected Functions

When you are ready to graph the selected functions, display


the Graph screen. This screen uses the display style and
viewing window that you previously defined.

Displaying the Press ¥ % or O 4. The TI-89 automatically graphs the


Graph Screen selected functions.

Note: If you select an


„ Zoom operation from the
Y= Editor or Window Editor,
the TI-89 automatically
displays the Graph screen.

BUSY indicator shows while


graphing is in progress.
Interrupting While graphing is in progress:
Graphing ¦ To pause graphing temporarily, press ¸. (The PAUSE
indicator replaces BUSY.) To resume, press ¸ again.
¦ To cancel graphing, press ´. To start graphing again from the
beginning, press † (ReGraph).

If You Need to Depending on various settings, a function may be graphed such that
Change the Viewing it is too small, too large, or offset too far to one side of the screen. To
Window correct this:
¦ Redefine the viewing window with different boundaries
(page 101).
¦ Use a Zoom operation (page 107).

Smart Graph When you display the Graph screen, the Smart Graph feature displays
the previous window contents immediately, provided nothing has
changed that requires regraphing.
Smart Graph updates the window and regraphs only if you have:
¦ Changed a mode setting that affects graphing, a function’s
graphing attribute, a Window variable, or a graph format.
¦ Selected or deselected a function or stat plot. (If you only select a
new function, Smart Graph adds that function to the Graph screen.)
¦ Changed the definition of a selected function or the value of a
variable in a selected function.
¦ Cleared a drawn object (Chapter 12).
¦ Changed a stat plot definition (Chapter 16).

Chapter 6: Basic Function Graphing 103

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 103 of 22
Displaying Coordinates with the Free-Moving Cursor

To display the coordinates of any location on the Graph


screen, use the free-moving cursor. You can move the cursor
to any pixel on the screen; the cursor is not confined to a
graphed function.

Free-Moving Cursor When you first display the Graph screen, no cursor is visible. To
display the cursor, press a cursor arrow. The cursor moves from the
center of the screen, and its coordinates are displayed.

Tip: If your screen does not


y1(x)=xñ
show coordinates, set the
graph format (¥ Í ) so that
Coordinates = RECT or The “c” indicates these are cursor
POLAR. coordinates. The values are stored in
the xc and yc system variables.

Rectangular coordinates use xc and


yc. Polar coordinates use rc and qc.

Tip: To hide the cursor and To move the free-moving cursor: Press:
its coordinates temporarily,
press M, N, or ¸. To an adjoining pixel A cursor arrow for any
The next time you move the direction.
cursor, it moves from its last
position. In increments of 10 pixels 2 and then a cursor arrow.

When you move the cursor to a pixel that appears to be “on” the
function, it may be near the function but not on it.

Cursor coordinates are for


the center of the pixel, not
the function.

To increase the accuracy:


¦ Use the Trace tool described on the next page to display
coordinates that are on the function.
¦ Use a Zoom operation to zoom in on a portion of the graph.

104 Chapter 6: Basic Function Graphing

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 104 of 22
Tracing a Function

To display the exact coordinates of any plotted point on a


graphed function, use the … Trace tool. Unlike the free-
moving cursor, the trace cursor moves only along a function’s
plotted points.

Beginning a Trace From the Graph screen, press ….


The trace cursor appears on the function, at the middle x value on
the screen. The cursor’s coordinates are displayed at the bottom of
the screen.
Note: If any stat plots are If multiple functions are graphed, the trace cursor appears on the
graphed (Chapter 16), the lowest-numbered function selected in the Y= Editor. The function
trace cursor appears on the
lowest-numbered stat plot. number is shown in the upper right part of the screen.

Moving along a To move the trace cursor: Do this:


Function To the previous or next plotted point Press A or B.
Approximately 5 plotted points Press 2 A or 2 B.
(it may be more or less than 5,
depending on the xres Window variable)
Note: If you enter an x To a specified x value on the function Type the x value and
value, it must be between press ¸.
xmin and xmax.

The trace cursor moves only from plotted point to plotted point
along the function, not from pixel to pixel.

Tip: If your screen does not Function number being


traced. For example: y1(x).
show coordinates, set the
graph format (¥ Í ) so that
Coordinates = RECT or
POLAR.

Trace coordinates are


those of the function, not
the pixel.

Each displayed y value is calculated from the x value; that is, y=yn(x).
If the function is undefined at an x value, the y value is blank.
Tip: Use QuickCenter, You can continue to trace a function that goes above or below the
described on the next page, viewing window. You cannot see the cursor as it moves in that
to trace a function that goes
above or below the window. “off the screen” area, but the displayed coordinate values show its
correct coordinates.

Chapter 6: Basic Function Graphing 105

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 105 of 22
Moving from Press C or D to move to the previous or next selected function at
Function to the same x value. The new function number is shown on the screen.
Function The “previous or next” function is based on the order of the selected
functions in the Y= Editor, not the appearance of the functions as
graphed on the screen.

Automatic Panning If you trace a function off the left or right edge of the screen, the
viewing window automatically pans to the left or right. There is a
slight pause while the new portion of the graph is drawn.

Note: Automatic panning


does not work if stat plots
are displayed or if a function
uses a shaded display style.

Before automatic pan After automatic pan

After an automatic pan, the cursor continues tracing.

Using QuickCenter If you trace a function off the top or bottom of the viewing window,
you can press ¸ to center the viewing window on the cursor
location.

Tip: You can use


QuickCenter at any time
during a trace, even when
the cursor is still on the
screen.

Before using QuickCenter After using QuickCenter

After QuickCenter, the cursor stops tracing. If you want to continue


tracing, press ….

Canceling Trace To cancel a trace at any time, press N.


A trace is also canceled when you display another application screen
such as the Y= Editor. When you return to the Graph screen and
press … to begin tracing:
¦ If Smart Graph regraphed the screen, the cursor appears at the
middle x value.
¦ If Smart Graph does not regraph the screen, the cursor appears at
its previous location (before you displayed the other application).

106 Chapter 6: Basic Function Graphing

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 106 of 22
Using Zooms to Explore a Graph

The „ Zoom toolbar menu has several tools that let you
adjust the viewing window. You can also save a viewing
window for later use.

Overview of the Press „ from the Y= Editor, Window Editor, or Graph screen.
Zoom Menu
Procedures for using ZoomBox,
ZoomIn, ZoomOut, ZoomStd, Memory,
Note: If you select a Zoom
tool from the Y=Editor or and SetFactors are given later in this
Window Editor, the TI-89 section.
automatically displays the
Graph screen. For more information about the
other items, refer to Appendix A.

Zoom Tool Description


ZoomBox Lets you draw a box and zoom in on that box.
ZoomIn, Lets you select a point and zoom in or out by an
ZoomOut amount defined by SetFactors.
Note: ∆x and ∆y are the ZoomDec Sets ∆x and ∆y to .1, and centers the origin.
distances from the center of
one pixel to the center of an ZoomSqr Adjusts Window variables so that a square or circle is
adjoining pixel. shown in correct proportion (instead of a rectangle
or ellipse).
ZoomStd Sets Window variables to their default values.
xmin = ë 10 ymin = ë 10 xres = 2
xmax = 10 ymax = 10
xscl = 1 yscl = 1
ZoomTrig Sets Window variables to preset values that are often
appropriate for graphing trig functions. Centers the
origin and sets:
∆x = p/24 (.130899... radians ymin = ë 4
or 7.5 degrees) ymax = 4
xscl = p/2 (1.570796... radians yscl = 0.5
or 90 degrees)
ZoomInt Lets you select a new center point, and then sets ∆x
and ∆y to 1 and sets xscl and yscl to 10.
ZoomData Adjusts Window variables so that all selected stat
plots are in view. Refer to Chapter 16.
ZoomFit Adjusts the viewing window to display the full range
of dependent variable values for the selected
functions. In function graphing, this maintains the
current xmin and xmax and adjusts ymin and ymax.
Memory Lets you store and recall Window variable settings so
that you can recreate a custom viewing window.
SetFactors Lets you set Zoom factors for ZoomIn and ZoomOut.

Chapter 6: Basic Function Graphing 107

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 107 of 22
Zooming In with a 1. From the „ Zoom menu, select 1:ZoomBox.
Zoom Box The screen prompts for 1st Corner?
2. Move the cursor to any corner of the box you want to define, and
then press ¸.
y1(x)=2øsin(x)
Tip: To move the cursor in The cursor changes to a small
larger increments, use square, and the screen
2 B, 2 D, etc.
prompts for 2nd Corner?
3. Move the cursor to the
opposite corner of the zoom
box.
As you move the cursor, the
box stretches.
Tip: You can cancel
ZoomBox by pressing 4. When you have outlined the
N before you press ¸.
area you want to zoom in on,
press ¸.
The Graph screen shows the
zoomed area.

Zooming In and Out 1. From the „ Zoom menu,


on a Point select 2:ZoomIn or 3:ZoomOut.
A cursor appears, and the
screen prompts for New
Center?

2. Move the cursor to the point


where you want to zoom in or
out, and then press ¸.
The TI-89 adjusts the Window
variables by the Zoom factors
defined in SetFactors.

¦ For a ZoomIn, the x variables are divided by xFact, and the


y variables are divided by yFact.
xmin
new xmin = , etc.
xFact

¦ For a ZoomOut, the x variables are multiplied by xFact, and the


y variables are multiplied by yFact.

new xmin = xmin ù xFact , etc.

108 Chapter 6: Basic Function Graphing

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 108 of 22
Changing Zoom The Zoom factors define the magnification and reduction used by
Factors ZoomIn and ZoomOut.
1. From the „ Zoom menu, select C:SetFactors to display the ZOOM
FACTORS dialog box.

Zoom factors must be ‚ 1, but


they do not have to be integers.
The default setting is 4.

Tip: To exit without saving


2. Use D and C to highlight the value you want to change. Then:
any changes, press N.
¦ Type the new value. The old value is cleared automatically
when you begin typing.
— or —
¦ Press A or B to remove the highlighting, and then edit the old
value.
3. Press ¸ (after typing in an input box, you must press ¸
twice) to save any changes and exit the dialog box.

Saving or Recalling After using various Zoom tools, you may want to return to a previous
a Viewing Window viewing window or save the current one.
1. From the „ Zoom menu, select
B:Memory to display its
submenu.
2. Select the applicable item.

Select: To:
1:ZoomPrev Return to the viewing window displayed before
the previous zoom.
Note: You can store only 2:ZoomSto Save the current viewing window. (The current
one set of Window variable Window variable values are stored to the system
values at a time. Storing a
new set overwrites the old variables zxmin, zxmax, etc.)
set.
3:ZoomRcl Recall the viewing window last stored with
ZoomSto.

Restoring the You can restore the Window variables to their default values at any
Standard Viewing time.
Window From the „ Zoom menu, select 6:ZoomStd.

Chapter 6: Basic Function Graphing 109

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 109 of 22
Using Math Tools to Analyze Functions

On the Graph screen, the ‡ Math toolbar menu has several


tools that help you analyze graphed functions.

Overview of the Press ‡ from the Graph screen.


Math Menu
On the Derivatives submenu,
only dy/dx is available for
function graphing. The other
derivatives are available for
other graphing modes
(parametric, polar, etc.).

Math Tool Description


Note: For Math results, Value Evaluates a selected y(x) function at a specified x
cursor coordinates are value.
stored in system variables
xc and yc (rc and qc if you Zero, Finds a zero (x-intercept), minimum, or maximum
use polar coordinates). Minimum, point within an interval.
Derivatives, integrals,
distances, etc., are stored in Maximum
the system variable
sysMath. Intersection Finds the intersection of two functions.
Derivatives Finds the derivative (slope) at a point.
‰f(x)dx Finds the approximate numerical integral over an
interval.
Inflection Finds the inflection point of a curve, where its
second derivative changes sign (where the curve
changes concavity).
Distance Draws and measures a line between two points on
the same function or on two different functions.
Tangent Draws a tangent line at a point and displays its
equation.
Arc Finds the arc length between two points along a
curve.
Shade Depends on the number of functions graphed.
¦ If only one function is graphed, this shades the
function’s area above or below the x axis.
¦ If two or more functions are graphed, this shades
the area between any two functions within an
interval.

110 Chapter 6: Basic Function Graphing

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 110 of 22
Finding y(x) at a 1. From the Graph screen, press ‡ and select 1:Value.
Specified Point 2. Type the x value, which must be a real value between xmin and
xmax. The value can be an expression.
y1(x)=1.25xùcos(x)
3. Press ¸.
Tip: You can also display The cursor moves to that
function coordinates by x value on the first function
tracing the function ( …), selected in the Y= Editor, and
typing an x value, and
pressing ¸. its coordinates are displayed.
4. Press D or C to move the cursor between functions at the
entered x value. The corresponding y value is displayed.
Note: If you press A or B, the free-moving cursor appears. You
may not be able to move it back to the entered x value.

Finding a Zero, 1. From the Graph screen, press ‡ and select 2:Zero, 3:Minimum, or
Minimum, or 4:Maximum.
Maximum within an 2. As necessary, use D and C to select the applicable function.
Interval
3. Set the lower bound for x. Either use A and B to move the cursor
to the lower bound or type its x value.
Tip: Typing x values is a
quick way to set bounds. 4. Press ¸. A 4 at the top of the screen marks the lower bound.
5. Set the upper bound, and
press ¸.
The cursor moves to the
solution, and its coordinates
are displayed.

Finding the 1. From the Graph screen, press ‡ and select 5:Intersection.
Intersection of Two 2. Select the first function, using D or C as necessary, and press
Functions within an ¸. The cursor moves to the next graphed function.
Interval
3. Select the second function, and press ¸.
4. Set the lower bound for x. Either use A and B to move the cursor
to the lower bound or type its x value.
5. Press ¸. A 4 at the top of the screen marks the lower bound.
6. Set the upper bound, and y2(x)=2xì7
press ¸.
The cursor moves to the
intersection, and its
coordinates are displayed.

Chapter 6: Basic Function Graphing 111

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 111 of 22
Finding the 1. From the Graph screen, press ‡ and select 6:Derivatives. Then
Derivative (Slope) at select 1:dy/dx from the submenu.
a Point 2. As necessary, use D and C to select the applicable function.
3. Set the derivative point.
Either move the cursor to the
point or type its x value.
4. Press ¸.
The derivative at that point is
displayed.

Finding the 1. From the Graph screen, press ‡ and select 7:‰f(x)dx.
Numerical Integral 2. As necessary, use D and C to select the applicable function.
over an Interval
3. Set the lower limit for x. Either use A and B to move the cursor to
the lower limit or type its x value.
Tip: Typing x values is a
quick way to set the limits. 4. Press ¸. A 4 at the top of the screen marks the lower limit.
5. Set the upper limit, and press
¸.
Tip: To erase the shaded The interval is shaded, and its
area, press † (ReGraph). approximate numerical
integral is displayed.

Finding an Inflection 1. From the Graph screen, press ‡ and select 8:Inflection.
Point within an 2. As necessary, use D and C to select the applicable function.
Interval
3. Set the lower bound for x. Either use A and B to move the cursor
to the lower bound or type its x value.
4. Press ¸. A 4 at the top of the screen marks the lower bound.
5. Set the upper bound, and
press ¸.
The cursor moves to the
inflection point (if any) within
the interval, and its
coordinates are displayed.

112 Chapter 6: Basic Function Graphing

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 112 of 22
Finding the 1. From the Graph screen, press ‡ and select 9:Distance.
Distance between 2. As necessary, use D and C to select the function for the first
Two Points point.
3. Set the first point. Either use A or B to move the cursor to the
point or type its x value.
4. Press ¸. A + marks the point.
5. If the second point is on a different function, use D and C to
select the function.
6. Set the second point. (If you use the cursor to set the point, a line
is drawn as you move the cursor.)
7. Press ¸.
The distance between the two
points is displayed, along with
the connecting line.

Drawing a Tangent 1. From the Graph screen, press ‡ and select A:Tangent.
Line 2. As necessary, use D and C to select the applicable function.
Tip: To erase a drawn 3. Set the tangent point. Either
tangent line, press † move the cursor to the point
(ReGraph).
or type its x value.
4. Press ¸.
The tangent line is drawn,
and its equation is
displayed.

Finding an Arc 1. From the Graph screen, press ‡ and select B:Arc.
Length 2. As necessary, use D and C to select the applicable function.
3. Set the first point of the arc. Either use A or B to move the cursor
or type the x value.
4. Press ¸. A + marks the first point.
5. Set the second point, and
press ¸.
A + marks the second point,
and the arc length is
displayed.

Chapter 6: Basic Function Graphing 113

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 113 of 22
Shading the Area You must have only one function graphed. If you graph two or more
between a Function functions, the Shade tool shades the area between two functions.
and the X Axis 1. From the Graph screen, press ‡ and select C:Shade. The screen
prompts for Above X axis?
2. Select one of the following. To shade the function’s area:
¦ Above the x axis, press ¸.
¦ Below the x axis, press j N.
Note: If you do not press 3. Set the lower bound for x. Either use A and B to move the cursor
A or B, or type an x value to the lower bound or type its x value.
when setting the lower and
upper bound, xmin and 4. Press ¸. A 4 at the top of the screen marks the lower bound.
xmax will be used as the
lower and upper bound, 5. Set the upper bound, and
respectively. press ¸.
Tip: To erase the shaded The bounded area is shaded.
area, press † (ReGraph).

Shading the Area You must have at least two functions graphed. If you graph only one
between Two function, the Shade tool shades the area between the function and
Functions within an the x axis.
Interval 1. From the Graph screen, press ‡ and select C:Shade. The screen
prompts for Above?
2. As necessary, use D or C to select a function. (Shading will be
above this function.)
3. Press ¸. The cursor moves to the next graphed function, and
the screen prompts for Below?
4. As necessary, use D or C to select another function. (Shading
will be below this function.)
5. Press ¸.
Note: If you do not press 6. Set the lower bound for x. Either use A and B to move the cursor
A or B, or type an x value to the lower bound or type its x value.
when setting the lower and
upper bound, xmin and 7. Press ¸. A 4 at the top of the screen marks the lower bound.
xmax will be used as the Below
lower and upper bound, 8. Set the upper bound, and function
respectively. press ¸.
Tip: To erase the shaded The bounded area is shaded.
area, press † (ReGraph).

Above
function

114 Chapter 6: Basic Function Graphing

BASFUN.DOC TI-89: Basic Function Graphing (US English) Joan Terrell Revised: 07/29/98 1:13 PM Printed: 07/29/98 1:14 PM Page 114 of 22
Chapter 7:
Parametric Graphing
Preview of Parametric Graphing......................................................... 116
Overview of Steps in Graphing Parametric Equations ..................... 117

7 Differences in Parametric and Function Graphing ........................... 118

This chapter describes how to graph parametric equations on the


TI-89. Before using this chapter, you should be familiar with
Chapter 6: Basic Function Graphing.
Parametric equations consist of both an x and y component, each
expressed as a function of the same independent variable t.
You can use parametric equations to model projectile motion.
The position of a moving projectile has a horizontal (x) and
vertical (y) component expressed as a function of time (t). For
example:

y(t) = v 0 t sin q – (g/2)tñ (x(t),y(t))

x(t) = v 0 t cos q

The graph shows the path of the projectile over time, assuming
that only uniform gravity (no drag forces, etc.) is acting on the
projectile.

Chapter 7: Parametric Graphing 115

PARAM.DOC TI-89: Parametric Graphing (US English) Joan Terrell Revised: 08/03/98 1:53 PM Printed: 08/03/98 2:22 PM Page 115 of 6
Preview of Parametric Graphing

Graph the parametric equations describing the path of a ball kicked at an angle (q) of 60¡
with an initial velocity (v 0) of 15 meters/sec. The gravity constant g = 9.8 meters/sec 2.
Ignoring air resistance and other drag forces, what is the maximum height of the ball and
when does it hit the ground?

Steps Keystrokes Display

1. Display the MODE dialog box. 3


For Graph mode, select PARAMETRIC. B2
¸

2. Display and clear the Y= Editor. ¥# xt1(t)=15tù cos(60¡)


Then define the horizontal component ƒ8¸
xt1(t) = v 0t cos q. ¸
Enter values for v 0 and q. 15Tp
Type T p 2 X, not T 2 X. 2X60
Enter a ¡ symbol by typing either 2 “ or 2 “d ¸
2 I 2 1 . This ensures a number is
interpreted as degrees, regardless of the
angle mode.

3. Define the vertical component ¸


yt1(t) = v 0t sin q – (g/2)t 2. 15Tp
Enter values for v 0 ,q, and g. 2W60
2 “d | c
9.8e2d
TZ2¸

4. Display the Window Editor. Enter ¥$


Window variables appropriate for 0D3D
this example. .02D·2D
You can press either D or ¸ to enter a 25D5D
value and move to the next variable. ·2D10D
5

5. Graph the parametric equations to ¥%


model the path of the ball.
6. Select Trace. Then move the cursor …
along the path to find the:
¦ y value at maximum height. B or A
¦ t value where the ball hits the as necessary
ground.

116 Chapter 7: Parametric Graphing

PARAM.DOC TI-89: Parametric Graphing (US English) Joan Terrell Revised: 07/29/98 1:16 PM Printed: 07/29/98 1:17 PM Page 116 of 6
Overview of Steps in Graphing Parametric Equations

To graph parametric equations, use the same general steps


used for y(x) functions as described in Chapter 6: Basic
Function Graphing. Any differences that apply to parametric
equations are described on the following pages.

Graphing
Set Graph mode (3)
Parametric to PARAMETRIC.
Equations Also set Angle mode,
if necessary.

Define x and y
components on
Y= Editor (¥ #).

Tip: To turn off any stat Select (†) which


data plots (Chapter 16), defined equations to
press ‡ 5 or use † to graph. Select the x or y
deselect them. component, or both.

Set the display style


Tip: This is optional. For (2 ˆ) for an
multiple equations, this helps equation. You can set
visually distinguish one from either the x or y
another. component.

Define the viewing


Tip: „ Zoom also changes window (¥ $).
the viewing window.

Change the graph


format (¥ Í or ƒ 9),
if necessary.

Graph the selected


equations (¥ %).

Exploring the Graph From the Graph screen, you can:


¦ Display the coordinates of any pixel by using the free-moving
cursor, or of a plotted point by tracing a parametric equation.
¦ Use the „ Zoom toolbar menu to zoom in or out on a portion of
the graph.
¦ Use the ‡ Math toolbar menu to find derivatives, tangents, etc.
Some menu items are not available for parametric graphs.

Chapter 7: Parametric Graphing 117

PARAM.DOC TI-89: Parametric Graphing (US English) Joan Terrell Revised: 07/29/98 1:16 PM Printed: 07/29/98 1:17 PM Page 117 of 6
Differences in Parametric and Function Graphing

This chapter assumes that you already know how to graph y(x)
functions as described in Chapter 6: Basic Function Graphing.
This section describes the differences that apply to parametric
equations.

Setting the Use 3 to set Graph = PARAMETRIC before you define equations or
Graph Mode set Window variables. The Y= Editor and the Window Editor let you
enter information for the current Graph mode setting only.

Defining Parametric To graph a parametric equation, you must define both its x and y
Equations on the components. If you define only one component, the equation cannot
Y= Editor be graphed. (However, you can use single components to generate
an automatic table as described in Chapter 13.)

Enter x and y components


on separate lines.

You can define


xt1(t) through xt99(t) and
yt1(t) through yt99(t).

Be careful when using implied multiplication with t. For example:

Note: When using t, be sure Enter: Instead of: Because:


implied multiplication is valid
for your situation. tù cos(60) tcos(60) tcos is interpreted as a user-defined
function called tcos, not as implied
multiplication.
In most cases, this refers to a nonexistent
function. So the TI-89simply returns the
function name, not a number.

Tip: You can use the Define The Y= Editor maintains an independent function list for each Graph
command from the Home mode setting. For example, suppose:
screen (see Appendix A) to
define functions and ¦ In FUNCTION graphing mode, you define a set of y(x) functions.
equations for any graphing
You change to PARAMETRIC graphing mode and define a set of x
mode, regardless of the
current mode. and y components.
¦ When you return to FUNCTION graphing mode, your y(x) functions
are still defined in the Y= Editor. When you return to
PARAMETRIC graphing mode, your x and y components are still
defined.

118 Chapter 7: Parametric Graphing

PARAM.DOC TI-89: Parametric Graphing (US English) Joan Terrell Revised: 07/29/98 1:16 PM Printed: 07/29/98 1:17 PM Page 118 of 6
Selecting To graph a parametric equation, select either its x or y component or
Parametric both. When you enter or edit a component, it is selected
Equations automatically.
Selecting x and y components separately can be useful for tables as
described in Chapter 13. With multiple parametric equations, you can
select and compare all the x components or all the y components.

Selecting the You can set the style for either the x or y component. For example, if
Display Style you set the x component to Dot, the TI-89 automatically sets the
y component to Dot.
Tip: Use the Animate and The Above and Below styles are not available for parametric
Path styles for interesting equations and are dimmed on the Y= Editor’s 2 ˆ Style toolbar
projectile-motion effects.
menu.

Window Variables The Window Editor maintains an independent set of Window


variables for each Graph mode setting (just as the Y= Editor
maintains independent function lists). Parametric graphs use the
following Window variables.

Variable Description
tmin, tmax Smallest and largest t values to evaluate.
Note: You can use a tstep Increment for the t value. Parametric equations are
negative tstep. If so, tmin evaluated at:
must be greater than tmax.
x(tmin) y(tmin)
x(tmin+tstep) y(tmin+tstep)
x(tmin+2(tstep)) y(tmin+2(tstep))
... not to exceed ... ... not to exceed ...
x(tmax) y(tmax)

xmin, xmax, Boundaries of the viewing window.


ymin, ymax
xscl, yscl Distance between tick marks on the x and y axes.

Standard values (set when you select 6:ZoomStd from the „ Zoom
toolbar menu) are:

tmin = 0. xmin = ë 10. ymin = ë 10.


tmax = 2p (6.2831853... radians xmax = 10. ymax = 10.
or 360 degrees)
tstep =p/24 (.1308996... radians xscl = 1. yscl = 1.
or 7.5 degrees)

You may need to change the standard values for the t variables
(tmin, tmax, tstep) to ensure that enough points are plotted.

Chapter 7: Parametric Graphing 119

PARAM.DOC TI-89: Parametric Graphing (US English) Joan Terrell Revised: 07/29/98 1:16 PM Printed: 07/29/98 1:17 PM Page 119 of 6
Exploring a Graph As in function graphing, you can explore a graph by using the
following tools.

Tool For Parametric Graphs:


Free-Moving Works just as it does for function graphs.
Cursor
„ Zoom Works just as it does for function graphs, with the
following exceptions:
¦ Only x (xmin, xmax, xscl) and y (ymin, ymax, yscl)
Window variables are affected.
¦ The t Window variables (tmin, tmax, tstep) are not
affected unless you select 6:ZoomStd (which sets
tmin = 0, tmax = 2p, and tstep = p/24).

Tip: During a trace, you can … Trace Lets you move the cursor along a graph one tstep at a
also evaluate x(t) and y(t) by time.
typing the t value and
pressing ¸. ¦ When you begin a trace, the cursor is on the first
selected parametric equation at tmin.
Tip: You can use ¦ QuickCenter applies to all directions. If you move
QuickCenter at any time the cursor off the screen (top or bottom, left or
during a trace, even if the right), press ¸ to center the viewing window
cursor is still on the screen.
on the cursor location.
¦ Automatic panning is not available. If you move the
cursor off the left or right side of the screen, the
TI-89 will not automatically pan the viewing
window. However, you can use QuickCenter.
‡ Math Only 1:Value, 6:Derivatives, 9:Distance, A:Tangent, and
B:Arc are available for parametric graphs. These tools
are based on t values. For example:
¦ 1:Value displays x and y values for a specified
t value.

¦ 6:Derivatives finds dy/dx, dy/dt, or dx/dt at a point


defined for a specified t value.

120 Chapter 7: Parametric Graphing

PARAM.DOC TI-89: Parametric Graphing (US English) Joan Terrell Revised: 07/29/98 1:16 PM Printed: 07/29/98 1:17 PM Page 120 of 6
Chapter 8:
Polar Graphing
Preview of Polar Graphing................................................................... 228

8 Overview of Steps in Graphing Polar Equations ............................... 229


Differences in Polar and Function Graphing ..................................... 230

This chapter describes how to graph polar equations on the TI-89.


Before using this chapter, you should be familiar with Chapter 6:
Basic Function Graphing.
Consider a point (x,y) as shown below. In a polar equation, the
point’s distance (r) from the origin is a function of its angle (q)
from the positive x axis. Polar equations are expressed as r = f(q).

Y To convert between rectangular (x,y) and


polar coordinates (r,q):

x (x,y) x = r cos q rñ = xñ + yñ
x sign(y)ø p
r y = r sin q q = ì tan –1 +
y y 2

θ Note: To find q, use the TI-89 function


X angle(x+iy), which automatically
performs the calculation shown above.

You can view the coordinates of any point in either polar (r,q) or
rectangular (x,y) form.

Chapter 8: Polar Graphing 121

POLAR.DOC TI-89: Polar Graphing (U.S. English) Joan Terrell Revised: 08/03/98 1:58 PM Printed: 08/03/98 2:23 PM Page 121 of 6
Preview of Polar Graphing

The graph of the polar equation A sin Bq forms the shape of a rose. Graph the rose for
A=8 and B=2.5. Then explore the appearance of the rose for other values of A and B.

Steps Keystrokes Display

1. Display the MODE dialog box. 3


For Graph mode, select POLAR. B3
For Angle mode, select RADIAN. DDDB1
¸

2. Display and clear the Y= Editor. ¥#


Then define the polar equation ƒ8¸
r1(q) = A sin Bq. ¸
Enter 8 and 2.5 for A and B, respectively. 82W2.5
¥Ïd¸

3. Select the ZoomStd viewing window, „6


which graphs the equation.
• The graph shows only five rose petals.
− In the standard viewing window, the
Window variable qmax = 2p. The
remaining petals have q values greater
than 2p.
• The rose does not appear symmetrical.
− Both the x and y axes range from ì 10
to 10. However, this range is spread
over a longer distance along the x axis
than the y axis.

4. Display the Window Editor, and ¥$


change qmax to 4p. D
4p will be evaluated to a number when you 42T
leave the Window Editor.

5. Select ZoomSqr, which regraphs the „5


equation.
ZoomSqr increases the range along the
x axis so that the graph is shown in correct
proportion.

6. You can change values for A and B as


necessary and regraph the equation.

122 Chapter 8: Polar Graphing

POLAR.DOC TI-89: Polar Graphing (U.S. English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:19 PM Page 122 of 6
Overview of Steps in Graphing Polar Equations

To graph polar equations, use the same general steps used


for y(x) functions as described in Chapter 6: Basic Function
Graphing. Any differences that apply to polar equations are
described on the following pages.

Graphing Polar
Equations Set Graph mode (3)
to POLAR .
Also set Angle mode,
if necessary.

Define polar equations


on Y= Editor (¥ #).

Tip: To turn off any stat


data plots (Chapter 16), Select (†) which
press ‡ 5 or use † to defined equations to
deselect them. graph.

Tip: This is optional. For Set the display style


multiple equations, this helps (ˆ) for an equation.
visually distinguish one from
another.

Define the viewing


Tip: „ Zoom also changes window (¥ $).
the viewing window.

Change the graph


Tip: To display r and q, set format (¥ Í or ƒ 9),
Coordinates = POLAR . if necessary.

Graph the selected


equations (¥ %).

Exploring the Graph From the Graph screen, you can:


¦ Display the coordinates of any pixel by using the free-moving
cursor, or of a plotted point by tracing a polar equation.
¦ Use the „ Zoom toolbar menu to zoom in or out on a portion of
the graph.
¦ Use the ‡ Math toolbar menu to find derivatives, tangents, etc.
Some menu items are not available for polar graphs.

Chapter 8: Polar Graphing 123

POLAR.DOC TI-89: Polar Graphing (U.S. English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:19 PM Page 123 of 6
Differences in Polar and Function Graphing

This chapter assumes that you already know how to graph y(x)
functions as described in Chapter 6: Basic Function Graphing.
This section describes the differences that apply to polar
equations.

Setting the Use 3 to set Graph = POLAR before you define equations or set
Graph Mode Window variables. The Y= Editor and the Window Editor let you
enter information for the current Graph mode setting only.
You should also set the Angle mode to the units (RADIAN or DEGREE)
you want to use for q.

Defining Polar
Equations on the
Y= Editor
You can define polar
equations for r1(q)
through r99(q).

Tip: You can use the Define The Y= Editor maintains an independent function list for each Graph
command from the Home mode setting. For example, suppose:
screen (see Appendix A) to
define functions and ¦ In FUNCTION graphing mode, you define a set of y(x) functions.
equations for any graphing
You change to POLAR graphing mode and define a set of r(q)
mode, regardless of the
current mode. equations.
¦ When you return to FUNCTION graphing mode, your y(x) functions
are still defined in the Y= Editor. When you return to POLAR
graphing mode, your r(q) equations are still defined.

Selecting the The Above and Below styles are not available for polar equations and
Display Style are dimmed on the Y= Editor’s 2 ˆ Style toolbar menu.

124 Chapter 8: Polar Graphing

POLAR.DOC TI-89: Polar Graphing (U.S. English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:19 PM Page 124 of 6
Window Variables The Window Editor maintains an independent set of Window
variables for each Graph mode setting (just as the Y= Editor
maintains independent function lists). Polar graphs use the following
Window variables.

Variable Description
qmin, qmax Smallest and largest q values to evaluate.
Note: You can use a qstep Increment for the q value. Polar equations are
negative qstep. If so, qmin evaluated at:
must be greater than qmax.
r(qmin)
r(qmin+qstep)
r(qmin+2(qstep))
... not to exceed ...
r(qmax)
xmin, xmax, Boundaries of the viewing window.
ymin, ymax
xscl, yscl Distance between tick marks on the x and y axes.

Standard values (set when you select 6:ZoomStd from the „ Zoom
toolbar menu) are:

qmin = 0. xmin = ë 10. ymin = ë 10.


qmax = 2p (6.2831853... radians xmax = 10. ymax = 10.
or 360 degrees)
qstep = p/24 (.1308996... radians xscl = 1. yscl = 1.
or 7.5 degrees)

You may need to change the standard values for the q variables
(qmin, qmax, qstep) to ensure that enough points are plotted.

Setting the Graph To display coordinates as r and q values, use ¥ Í or ƒ 9 to set


Format Coordinates = POLAR. If Coordinates = RECT, the polar equations will
be graphed properly, but coordinates will be displayed as x and y.
When you trace a polar equation, the q coordinate is shown even if
Coordinates = RECT.

Chapter 8: Polar Graphing 125

POLAR.DOC TI-89: Polar Graphing (U.S. English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:19 PM Page 125 of 6
Exploring a Graph As in function graphing, you can explore a graph by using the
following tools. Any displayed coordinates are shown in polar or
rectangular form as set in the graph format.

Tool For Polar Graphs:


Free-Moving Works just as it does for function graphs.
Cursor
„ Zoom Works just as it does for function graphs.
¦ Only x (xmin, xmax, xscl) and y (ymin, ymax, yscl)
Window variables are affected.
¦ The q Window variables (qmin, qmax, qstep) are not
affected unless you select 6:ZoomStd (which sets
qmin = 0, qmax = 2p, and qstep = p/24).

Tip: During a trace, you can … Trace Lets you move the cursor along a graph one qstep at a
also evaluate r(q) by typing time.
the q value and pressing
¸. ¦ When you begin a trace, the cursor is on the first
selected equation at qmin.
Tip: You can use ¦ QuickCenter applies to all directions. If you move
QuickCenter at any time the cursor off the screen (top or bottom, left or
during a trace, even if the
cursor is still on the screen.
right), press ¸ to center the viewing window
on the cursor location.
¦ Automatic panning is not available. If you move the
cursor off the left or right side of the screen, the
TI-89 will not automatically pan the viewing
window. However, you can use QuickCenter.
‡ Math Only 1:Value, 6:Derivatives, 9:Distance, A:Tangent, and
B:Arc are available for polar graphs. These tools are
based on q values. For example:
¦ 1:Value displays an r value (or x and y, depending
on the graph format) for a specified q value.
¦ 6:Derivatives finds dy/dx or dr/dq at a point defined
for a specified q value.

126 Chapter 8: Polar Graphing

POLAR.DOC TI-89: Polar Graphing (U.S. English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:19 PM Page 126 of 6
Chapter 9:
Sequence Graphing
Preview of Sequence Graphing............................................................ 128
Overview of Steps in Graphing Sequences ........................................ 129

9 Differences in Sequence and Function Graphing.............................. 130


Setting Axes for Time, Web, or Custom Plots ................................... 134
Using Web Plots .................................................................................... 135
Using Custom Plots............................................................................... 138
Using a Sequence to Generate a Table ............................................... 139

This chapter describes how to graph sequences on the TI-89.


Before using this chapter, you should be familiar with Chapter 6:
Basic Function Graphing.
Sequences are evaluated only at consecutive integer values. The
two general types of sequences are:
¦ Nonrecursive — The nth term in the sequence is a function
of the independent variable n.
Each term is independent of any other terms. In the following
example sequence, you can calculate u(5) directly, without
first calculating u(1) or any other previous term.
n is always a series of
consecutive integers,
u(n) = 2 ù n for n = 1, 2, 3, ... starting at any positive
integer or zero.

u(n) = 2 ù n gives the sequence 2, 4, 6, 8, 10, ...

Note: A recursive sequence ¦ Recursive — The nth term is defined in relation to one or
can reference another more previous terms, represented by u(nì 1), u(nì 2), etc. In
sequence. For example,
u2(n) = nñ +u1(nì 1). addition to previous terms, a recursive sequence may also be
defined in relation to n (such as u(n) = u(nì 1) + n).
In the following example sequence, you cannot calculate u(5)
without first calculating u(1), u(2), u(3), and u(4).
The first term is undefined
since it has no previous term.
u(n) = 2 ù u(nì 1) for n = 1, 2, 3, ... So you must specify an initial
value to use for the first term.

Using an initial value of 1:


u(n) = 2 ù u(nì 1) gives the sequence 1, 2, 4, 8, 16, ...

The number of initial values you need to specify depends on


how deep the recursion goes. For example, if each term is
defined in relation to the previous two terms, you must
specify initial values for the first two terms.

Chapter 9: Sequence Graphing 127

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 08/03/98 1:59 PM Printed: 08/03/98 2:26 PM Page 127 of 14
Preview of Sequence Graphing

A small forest contains 4000 trees. Each year, 20% of the trees will be harvested (with 80%
remaining) and 1000 new trees will be planted. Using a sequence, calculate the number of
trees in the forest at the end of each year. Does it stabilize at a certain number?

Initially After 1 Year After 2 Years After 3 Years ...


4000 .8 x 4000 .8 x (.8 x 4000 + 1000) .8 x (.8 x (.8 x 4000 + 1000) + 1000) ...
+ 1000 + 1000 + 1000

Steps Keystrokes Display

1. Display the MODE dialog box. 3


For Graph mode, select SEQUENCE. B4
¸

2. Display and clear the Y= Editor. ¥#


Then define the sequence as ƒ8¸
u1(n) = iPart(.8ù u1(nì 1)+1000). ¸
Use iPart to take the integer part of the 2I14
result. No fractional trees are harvested. .8jU1c
To access iPart(, you can use 2 I, jN|1d«
½, or simply type it.
1000d¸

3. Define ui1 as the initial value that will ¸


be used as the first term. 4000¸

4. Display the Window Editor. Set the ¥$


n and plot Window variables. 0D50D
nmin=0 and nmax=50 evaluate the size of 1D1D
the forest over 50 years.

5. Set the x and y Window variables to 0D50D


appropriate values for this example. 10D0D
6000D1000

6. Display the Graph screen. ¥%

7. Select Trace. Move the cursor to trace …


year by year. How many years (nc) By default, sequences use
does it take the number of trees (yc) B and A the Square display style.
to stabilize? as necessary
Trace begins at nc=0.
nc is the number of years.
xc = nc since n is plotted on the x axis.
yc = u1(n), the number of trees at year n.

128 Chapter 9: Sequence Graphing

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 128 of 14
Overview of Steps in Graphing Sequences

To graph sequences, use the same general steps used for y(x)
functions as described in Chapter 6: Basic Function Graphing.
Any differences are described on the following pages.

Graphing Set Graph mode (3)


Sequences to SEQUENCE .
Also set Angle mode,
if necessary.

Define sequences and,


if needed, initial values
on Y= Editor (¥ #).

Tip: To turn off any stat Select (†) which


data plots (Chapter 16), defined sequences to
press ‡ 5 or use † to graph. Do not select
deselect them. initial values.

Note: For sequences, the Set the display style


default style is Square. (2 ˆ ) for a sequence.

Tip: „ Zoom also changes Define the viewing


the viewing window. window (¥ $).

Change the graph


format (¥ Í or ƒ 9),
if necessary.

Graph the selected


sequences (¥ %).

Exploring the Graph From the Graph screen, you can:


¦ Display the coordinates of any pixel by using the free-moving
cursor, or of a plotted point by tracing a sequence.
¦ Use the „ Zoom toolbar menu to zoom in or out on a portion of
the graph.
Tip: You can also evaluate ¦ Use the ‡ Math toolbar menu to evaluate a sequence. Only
a sequence while tracing. 1:Value is available for sequences.
Simply enter the n value
directly from the keyboard. ¦ Plot sequences on Time (the default), Web, or Custom axes.

Chapter 9: Sequence Graphing 129

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 129 of 14
Differences in Sequence and Function Graphing

This chapter assumes that you already know how to graph y(x)
functions as described in Chapter 6: Basic Function Graphing.
This section describes the differences that apply to sequences.

Setting the Use 3 to set Graph = SEQUENCE before you define sequences or
Graph Mode set Window variables. The Y= Editor and the Window Editor let you
enter information for the current Graph mode setting only.

Defining Sequences
You can define sequences
on the Y= Editor u1(n) through u99(n).

Use ui only for recursive


sequences, which require
one or more initial values.

Note: You must use a list to If a sequence requires more than one initial value, enter them as a list
enter two or more initial enclosed in braces { } and separated by commas.
values.

Enter {1,0} even though


{1 0} is shown in the
sequence list.

If a sequence requires an initial value but you do not enter one, you
will get an error when graphing.
Note: Optionally, for On the Y= Editor, 2 ‰ Axes lets you select the axes that are used
sequences only, you can to graph the sequences. For more detailed information, refer to
select different axes for the
graph. TIME is the default. page 134.

Axes Description
TIME Plots n on the x axis and u(n) on the y axis.
WEB Plots u(n-1) on the x axis and u(n) on the y axis.
CUSTOM Lets you select the x and y axes.

Tip: You can use the Define The Y= Editor maintains an independent function list for each Graph
command from the Home mode setting. For example, suppose:
screen (see Appendix A) to
define functions and ¦ In FUNCTION graphing mode, you define a set of y(x) functions.
equations for any graphing
You change to SEQUENCE graphing mode and define a set of u(n)
mode, regardless of the
current mode. sequences.
¦ When you return to FUNCTION graphing mode, your y(x) functions
are still defined in the Y= Editor. When you return to SEQUENCE
graphing mode, your u(n) sequences are still defined.

130 Chapter 9: Sequence Graphing

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 130 of 14
Selecting With TIME and WEB axes, the TI-89 graphs only the selected
Sequences sequences. If you entered any sequences that require an initial value,
you must enter the corresponding ui value.

Note: With TIME and You can select a sequence.


CUSTOM axes, all defined
sequences are evaluated You cannot select its
even if they are not plotted. initial value.

With CUSTOM axes, when you specify a sequence in the custom


settings, it is graphed regardless of whether it is selected.

Selecting the Only the Line, Dot, Square, and Thick styles are available for sequence
Display Style graphs. Dot and Square mark only those discrete integer values (in
plotstep increments) at which a sequence is plotted.

Window Variables The Window Editor maintains an independent set of Window


variables for each Graph mode setting (just as the Y= Editor
maintains independent function lists). Sequence graphs use the
following Window variables.

Variable Description
Note: Both nmin and nmax nmin, nmax Smallest and largest n values to evaluate. Sequences
must be positive integers, are evaluated at:
although nmin can be zero.
u(nmin)
u(nmin+1)
u(nmin+2)
... not to exceed ...
u(nmax)

Note: nmin, nmax, plotstrt plotstrt The term number that will be the first one plotted
and plotstep must be (depending on plotstep). For example, to begin plotting
integers ‚ 1. If you do not with the 2nd term in the sequence, set plotstrt = 2. The
enter integers, they will be
rounded to integers. first term will be evaluated at nmin but not plotted.
plotstep Incremental n value for graphing only. This does not
affect how the sequence is evaluated, only which points
are plotted. For example, suppose plotstep = 2. The
sequence is evaluated at each consecutive integer but
is plotted at only every other integer.
xmin, xmax, Boundaries of the viewing window.
ymin, ymax

xscl, yscl Distance between tick marks on the x and y axes.

Chapter 9: Sequence Graphing 131

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 131 of 14
Window Variables Standard values (set when you select 6:ZoomStd from the „ Zoom
(Continued) toolbar menu) are:

nmin = 1. xmin = ë 10. ymin = ë 10.


nmax = 10. xmax = 10. ymax = 10.
plotstrt = 1. xscl = 1. yscl = 1.
plotstep = 1.

You may need to change the standard values for the n and plot
variables to ensure that sufficient points are plotted.
To see how plotstrt affects a graph, look at the following examples of
a recursive sequence.

This graph is plotted beginning


with the 1st term.

Note: Both of these graphs plotstrt=1


use the same Window
variables, except for plotstrt.
This graph is plotted beginning
with the 9th term.

plotstrt=9

With TIME axes (from 2 ‰ Axes on the Y= Editor), you can set
plotstrt = 1 and still graph only a selected part of the sequence. Simply
define a viewing window that shows only the area of the coordinate
plane you want to view.

You could set:


¦ xmin = first n value to graph

¦ xmax = nmax (although you


can use other values)
plotstrt=1 nmax
¦ ymin and ymax = expected
values for the sequence

Changing the Graph The Graph Order format is not available.


Format ¦ With TIME or CUSTOM axes, multiple sequences are always
plotted simultaneously.
¦ With WEB axes, multiple sequences are always plotted
sequentially.

132 Chapter 9: Sequence Graphing

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 132 of 14
Exploring a Graph As in function graphing, you can explore a graph by using the
following tools. Any displayed coordinates are shown in rectangular
or polar form as set in the graph format.

Tool For Sequence Graphs:


Free-Moving Works just as it does for function graphs.
Cursor
„ Zoom Works just as it does for function graphs.
¦ Only x (xmin, xmax, xscl) and y (ymin, ymax, yscl)
Window variables are affected.
¦ The n and plot Window variables (nmin, nmax,
plotstrt, plotstep) are not affected unless you select
6:ZoomStd (which sets all Window variables to
their standard values).
Tip: During a trace, you can … Trace Depending on whether you use TIME, CUSTOM, or
evaluate a sequence by WEB axes, Trace operates very differently.
typing a value for n and
pressing ¸. ¦ With TIME or CUSTOM axes, you move the cursor
along the sequence one plotstep at a time. To move
approximately ten plotted points at a time, press
2 B or 2 A.
− When you begin a trace, the cursor is on the
first selected sequence at the term number
specified by plotstrt, even if it is outside the
viewing window.
Tip: You can use − QuickCenter applies to all directions. If you
QuickCenter at any time move the cursor off the screen (top or bottom,
during a trace, even if the
cursor is still on the screen.
left or right), press ¸ to center the viewing
window on the cursor location.
¦ With WEB axes, the trace cursor follows the web,
not the sequence. Refer to page 135.
‡ Math Only 1:Value is available for sequence graphs.
¦ With TIME and WEB axes, the u(n) value
(represented by yc) is displayed for a specified
n value.

¦ With CUSTOM axes, the values that correspond to


x and y depend on the axes you choose.

Chapter 9: Sequence Graphing 133

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 133 of 14
Setting Axes for Time, Web, or Custom Plots

For sequences only, you can select different types of axes for
the graph. Examples of the different types are given later in
this chapter.

Displaying the From the Y= Editor, press 2 ‰.


AXES Dialog Box
¦ Depending on the current Axes
setting, some items may be
dimmed.
¦ To exit without making any
changes, press N.

Item Description
Axes TIME — Plots u(n) on the y axis and n on the x axis.

WEB — Plots u(n) on the y axis and u(n-1) on the


x axis.
CUSTOM — Lets you select the x and y axes.
Build Web Active only when Axes = WEB, this specifies whether a
web is drawn manually (TRACE) or automatically
(AUTO).
Refer to page 135 for more information.
X Axis and Active only when Axes = CUSTOM, these let you select
Y Axis the value or sequence to plot on the x and y axes.
Refer to page 138 for more information.

To change any of these settings, use the same procedure that you use
to change other types of dialog boxes, such as the MODE dialog box.

134 Chapter 9: Sequence Graphing

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 134 of 14
Using Web Plots

A web plot graphs u(n) vs. u(nì 1), which lets you study the
long-term behavior of a recursive sequence. The examples in
this section also show how the initial value can affect a
sequence’s behavior.

Valid Functions for A sequence must meet the following criteria; otherwise, it will not be
Web Plots graphed properly on WEB axes. The sequence:
¦ Must be recursive with only one recursion level;
u(nì 1) but not u(nì 2).

¦ Cannot reference n directly.


¦ Cannot reference any other defined sequence except itself.

When You Display After you select WEB axes and display the Graph screen, the TI-89:
the Graph Screen ¦ Draws a y=x reference line.
¦ Plots the selected sequence definitions as functions, with u(nì 1)
as the independent variable. This effectively converts a recursive
sequence into a nonrecursive form for graphing.
For example, consider the sequence u1(n) = 5ìu1(nì1) and an
initial value of ui1=1. The TI-89 draws the y=x reference line and then
plots y = 5ì x.

Drawing the Web After the sequence is plotted, the web may be displayed manually or
automatically, depending on how you set Build Web on the AXES
dialog box.
If Build Web = The web is:
TRACE Not drawn until you press …. The web is then
drawn step-by-step as you move the trace cursor
(you must have an initial value before using Trace).
Note: With WEB axes, you cannot trace along the
sequence itself as you do in other graphing modes.
AUTO Drawn automatically. You can then press … to
trace the web and display its coordinates.

The web:
Note: The web starts at 1. Starts on the x axis at the initial value ui (when plotstrt = 1).
plotstrt. The value of n is
incremented by 1 each time 2. Moves vertically (either up or down) to the sequence.
the web moves to the
sequence (plotstep is 3. Moves horizontally to the y=x reference line.
ignored).
4. Repeats this vertical and horizontal movement until n=nmax.

Chapter 9: Sequence Graphing 135

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 135 of 14
Example: 1. On the Y= Editor ( ¥ # ), define u1(n) = ë.8u1(nì 1) + 3.6.
Convergence Set initial value ui1 = ë 4.
2. Press 2 ‰. Set Axes = TIME.
3. On the Window Editor nmin=1. xmin=0. ymin= ë 10.
nmax=25. xmax=25. ymax=10.
( ¥ $ ), set the Window plotstrt=1. xscl=1. yscl=1.
variables. plotstep=1.

4. Graph the sequence u(n)


( ¥ % ).
By default, a sequence uses n
the Square display style.

5. On the Y= Editor, press 2 ‰. Set Axes = WEB and


Build Web = AUTO.
6. On the Window Editor, change nmin=1. xmin= ë 10. ymin= ë 10.
nmax=25. xmax=10. ymax=10.
the Window variables. plotstrt=1. xscl=1. yscl=1.
plotstep=1.

Tip: During a trace, you can 7. Regraph the sequence. u(n)


move the cursor to a y=ë.8x + 3.6
specified n value by typing Web plots are always shown u(n ì 1)
the value and pressing as lines, regardless of the
¸. selected display style. y=x

Tip: When the nc value 8. Press …. As you press B, the trace cursor follows the web. The
changes, the cursor is on screen displays the cursor coordinates nc, xc, and yc (where xc
the sequence. The next time
you press B, nc stays the and yc represent u(nì 1) and u(n), respectively).
same but the cursor is now
As you trace to larger values of nc, you can see xc and yc approach
on the y=x reference line.
the convergence point.

Example: 1. On the Y= Editor ( ¥ # ), define u1(n) = 3.2u1(nì 1) ì.8(u1(nì 1)) 2.


Divergence Set initial value ui1 = 4.45.
2. Press 2 ‰. Set Axes = TIME.
3. On the Window Editor nmin=0. xmin=0. ymin= ë 75.
nmax=10. xmax=10. ymax=10.
( ¥ $ ), set the plotstrt=1. xscl=1. yscl=1.
Window variables. plotstep=1.

4. Graph the sequence u(n)


n
( ¥ % ).
Because the sequence
quickly diverges to large
negative values, only a few
points are plotted.

136 Chapter 9: Sequence Graphing

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 136 of 14
5. On the Y= Editor, press 2 ‰. Set Axes = WEB and
Build Web = AUTO.
6. On the Window Editor, change nmin=0. xmin= ë 10. ymin= ë 10.
nmax=10. xmax=10. ymax=10.
the Window variables. plotstrt=1. xscl=1. yscl=1.
plotstep=1.

7. Regraph the sequence. u(n)

The web plot shows how u(nì1)


quickly the sequence
diverges to large negative y=x
values. y=3.2xì.8xñ

Example: This example shows how the initial value can affect a sequence.
Oscillation 1. On the Y= Editor ( ¥ # ), use the same sequence defined in the
divergence example: u1(n) = 3.2u1(nì 1) ì.8(u1(nì 1)) 2. Set initial
value ui1 = 0.5.
2. Press 2 ‰. Set Axes = TIME.
3. On the Window Editor nmin=1. xmin=0. ymin=0.
nmax=100. xmax=100. ymax=5.
( ¥ $ ), set the plotstrt=1. xscl=10. yscl=1.
Window variables. plotstep=1.

Note: Compare this graph 4. Graph the sequence u(n)


with the divergence ( ¥ % ).
example. This is the same
sequence with a different
initial value. n

5. On the Y= Editor, press 2 ‰. Set Axes = WEB and


Build Web = AUTO.
6. On the Window Editor, change nmin=1. xmin= ë 2.68 ymin= ë 4.7
nmax=100. xmax=6.47 ymax=4.7
the Window variables. plotstrt=1. xscl=1. yscl=1.
plotstep=1.

Note: The web moves to an 7. Regraph the sequence. u(n)


orbit oscillating between two
stable points. u(nì1)

y=x
y=3.2xì.8xñ
8. Press …. Then use B to trace the web.
As you trace to larger values of nc, notice that xc and yc oscillate
between 2.05218 and 3.19782.
Note: By starting the web 9. On the Window Editor, set
plot at a later term, the plotstrt=50. Then regraph the
stable oscillation orbit is
shown more clearly. sequence.

Chapter 9: Sequence Graphing 137

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 137 of 14
Using Custom Plots

CUSTOM axes give you great flexibility in graphing sequences.


As shown in the following example, CUSTOM axes are
particularly effective for showing relationships between one
sequence and another.

Example: Predator- Using the predator-prey model in biology, determine the numbers of
Prey Model rabbits and foxes that maintain population equilibrium in a certain
region.
R = Number of rabbits
M = Growth rate of rabbits if there are no foxes (use .05)
K = Rate at which foxes can kill rabbits (use .001)
W = Number of foxes
G = Growth rate of foxes if there are rabbits (use .0002)
D = Death rate of foxes if there are no rabbits (use .03)
R n = R n-1 (1 + M ì K W n-1)
W n = W n-1 (1 + G R n-1 ì D)

1. On the Y= Editor ( ¥ # ), define the sequences and initial values


for R n and W n.
Note: Assume there are u1(n) = u1(nì 1) ù (1 + .05 ì.001 ù u2(nì 1))
initially 200 rabbits and ui1 = 200
50 foxes.
u2(n) = u2(nì 1) ù (1 + .0002 ù u1(nì 1) ì.03)
ui2 = 50
2. Press 2 ‰. Set Axes = TIME.
3. On the Window Editor nmin=0. xmin=0. ymin=0.
nmax=400. xmax=400. ymax=300.
( ¥ $ ), set the Window plotstrt=1. xscl=100. yscl=100.
variables. plotstep=1.

Note: Use … to individually 4. Graph the sequence u(n)


trace the number of rabbits ( ¥ % ).
u1(n) and foxes u2(n) over u1(n)
time (n).

u2(n) n

5. On the Y= Editor, press 2 ‰. Set Axes = CUSTOM, X Axis = u1,


and Y Axis = u2.
6. In the Window Editor, change nmin=0. xmin=84. ymin=25.
nmax=400. xmax=237. ymax=75.
the Window variables. plotstrt=1. xscl=50. yscl=10.
plotstep=1.

Note: Use … to trace both 7. Regraph the sequence. u2(n)


the number of rabbits (xc)
and foxes (yc) over the
cycle of 400 generations. u1(n)

138 Chapter 9: Sequence Graphing

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 138 of 14
Using a Sequence to Generate a Table

Previous sections described how to graph a sequence. You


can also use a sequence to generate a table. Refer to
Chapter 13 for detailed information about tables.

Example: Fibonacci In a Fibonacci sequence, the first two terms are 1 and 1. Each
Sequence succeeding term is the sum of the two immediately preceding terms.

1. On the Y= Editor
( ¥ # ), define the
sequence and set the
initial values as shown.

You must enter {1,1}, although {1 1}


is shown in the sequence list.

2. Set table parameters


( ¥ & ) to:
tblStart = 1
@tbl = 1
Independent = AUTO
This item is dimmed if you are not
using TIME axes (set by 2 ‰ on
the Y= Editor).
3. Set Window variables
( ¥ $ ) so that
nmin has the same
value as tblStart.

4. Display the table


( ¥ ' ).

5. Scroll down the table Fibonacci sequence


is in column 2.
(D or 2 D ) to see
more of the sequence.

Chapter 9: Sequence Graphing 139

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 139 of 14
140 Chapter 9: Sequence Graphing

SEQUENCE.DOC Chap 9: Sequence Graphing (US English) Joan Terrell Revised: 07/29/98 1:17 PM Printed: 07/29/98 1:18 PM Page 140 of 14
Chapter 10:
3D Graphing
Preview of 3D Graphing ....................................................................... 142
Overview of Steps in Graphing 3D Equations ................................... 144

10 Differences in 3D and Function Graphing ......................................... 145


Moving the Cursor in 3D....................................................................... 148
Rotating and/or Elevating the Viewing Angle .................................... 150
Animating a 3D Graph Interactively ................................................... 152
Changing the Axes and Style Formats................................................ 153
Contour Plots......................................................................................... 155
Example: Contours of a Complex Modulus Surface......................... 158
Implicit Plots.......................................................................................... 159
Example: Implicit Plot of a More Complicated Equation................. 161

This chapter describes how to graph 3D equations on the TI-89.


Before using this chapter, you Z
should be familiar with Chapter 6:
Basic Function Graphing. (x,y,z)

In a 3D graph of an equation for z


z(x,y), a point’s location is defined
as shown here.
x
The expanded view feature lets y
you examine any 3D graph in
more detail. For example:

Normal view Expanded view

Tip: To view the graph


along the x, y, or z axis, you
can press X, Y, or Z,
respectively.

To switch between normal and expanded views,


press p (multiplication key, not the letter X).

When you display a 3D graph, the expanded view is used


automatically if:
Tip: To switch from one ¦ You set or change the graph format style ( ¥ Í ) to
format style to the next CONTOUR LEVELS or IMPLICIT PLOT.
(skipping IMPLICIT PLOT),
press j [F]. ¦ The previous graph used the expanded view.
Note: Pressing j [F], If you press a cursor key to animate the graph, the screen
unlike using ¥ Í, always switches to the normal view automatically. You cannot animate a
retains the current view,
either expanded or normal. graph in the expanded view.

Chapter 10: 3D Graphing 141

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 08/03/98 12:56 PM Printed: 08/03/98 2:27 PM Page 141 of 22
Preview of 3D Graphing

Graph the 3D equation z(x,y) = (xò y ì yò x) / 390. Animate the graph by using the cursor
to interactively change the eye Window variable values that control your viewing angle.
Then view the graph in different graph format styles.

Steps Keystrokes Display

1. Display the MODE dialog box. 3


For Graph mode, select 3D. B5
¸

2. Display and clear the Y= Editor. ¥#


Then define the 3D equation ƒ8¸
z1(x,y) = (xò y ì yò x) / 390. ¸
Notice that implied multiplication is used in cXZ3Y
the keystrokes. |YZ3Xd
e390¸

3. Change the graph format to display ƒ9


and label the axes. Also set DB2
Style = WIRE FRAME. DB2
You can animate any graph format style, DB1
but WIRE FRAME is fastest. ¸

4. Select the ZoomStd viewing cube, „6


which automatically graphs the
equation.
As the equation is evaluated (before it is
graphed), “evaluation percentages” are
shown in the upper-left part of the screen.

Note: If you have already used 3D


graphing, the graph may be shown in p
expanded view. When you animate the (press p to
graph, the screen returns to normal view switch between
automatically. (Except for animation, you
can do the same things in normal and expanded and
expanded view.) normal view)

5. Animate the graph by decreasing the DDDD


eyef Window variable value. DDDD
D or C may affect eyeq and eyeψ, but to a
lesser extent than eye f.
To animate the graph continuously, press
and hold the cursor for about 1 second and
then release it. To stop, press ¸.

142 Chapter 10: 3D Graphing

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 142 of 22
Steps Keystrokes Display

6. Return the graph to its initial 0 (zero, not the


orientation. Then move the viewing letter O)
angle along the “viewing orbit” AAA
around the graph.
For information about the viewing orbit,
refer to page 152.
7. View the graph along the x axis, the X
y axis, and then the z axis.

This graph has the same shape along the Y


y axis and x axis.

8. Return to the initial orientation. 0

9. Display the graph in different graph jF


format styles. (press j [ F ]
to switch from
each style to
the next)
HIDDEN SURFACE

CONTOUR LEVELS
(may require extra time
to calculate contours)

WIRE AND CONTOUR

WIRE FRAME

Note: You can also display the graph as an implicit plot by using the GRAPH FORMATS dialog
box ( ƒ 9 or ¥ Í ). If you press j [F] to switch between styles, the implicit plot is not
displayed.

Chapter 10: 3D Graphing 143

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 143 of 22
Overview of Steps in Graphing 3D Equations

To graph 3D equations, use the same general steps used for


y(x) functions as described in Chapter 6: Basic Function
Graphing. Any differences that apply to 3D equations are
described on the following pages.

Graphing 3D
Equations Set Graph mode (3)
to 3D.
Also set Angle mode,
if necessary.

Define 3D equations on
Y= Editor (¥ #).

Tip: To turn off any stat Select (†) which


data plots (Chapter 16), equation to graph. You
press ‡ 5 or use † to can select only one 3D
deselect them. equation.

Note: For 3D graphs, the


viewing window is called Define the viewing cube
the viewing cube. „ Zoom (¥ $).
also changes the viewing
cube.

Tip: To help you see the Change the graph


orientation of 3D graphs, format (¥ Í or ƒ 9),
turn on Axes and Labels. if necessary.

Note: Before displaying the


graph, the screen shows Graph the selected
the “percent evaluated.” equation (¥ %).

Exploring the Graph From the Graph screen, you can:


¦ Trace the equation.
¦ Use the „ Zoom toolbar menu to zoom in or out on a portion of
the graph. Some of the menu items are dimmed because they are
not available for 3D graphs.
Tip: You can also evaluate ¦ Use the ‡ Math toolbar menu to evaluate the equation at a
z(x,y) while tracing. Type specified point. Only 1:Value is available for 3D graphs.
the x value and press
¸; then type the y value
and press ¸.

144 Chapter 10: 3D Graphing

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 144 of 22
Differences in 3D and Function Graphing

This chapter assumes that you already know how to graph y(x)
functions as described in Chapter 6: Basic Function Graphing.
This section describes the differences that apply to 3D
equations.

Setting the Use 3 to set Graph = 3D before you define equations or set
Graph Mode Window variables. The Y= Editor and the Window Editor let you
enter information for the current Graph mode setting only.

Defining 3D
Equations on the
Y= Editor
You can define 3D
equations for z1(x,y)
through z99(x,y).

Tip: You can use the Define The Y= Editor maintains an independent function list for each Graph
command from the Home mode setting. For example, suppose:
screen (see Appendix A) to
define functions and ¦ In FUNCTION graphing mode, you define a set of y(x) functions.
equations for any graphing
You change to 3D graphing mode and define a set of z(x,y)
mode, regardless of the
current mode. equations.
¦ When you return to FUNCTION graphing mode, your y(x) functions
are still defined in the Y= Editor. When you return to 3D graphing
mode, your z(x,y) equations are still defined.

Selecting the Because you can graph only one 3D equation at a time, display styles
Display Style are not available. On the Y= Editor, the 2 ˆ Style toolbar menu is
dimmed.
For 3D equations, however, you can use ¥ Í or ƒ 9 to set the Style
format to WIRE FRAME or HIDDEN SURFACE. Refer to “Changing the
Axes and Style Formats” on page 153.

Chapter 10: 3D Graphing 145

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 145 of 22
Window Variables The Window Editor maintains an independent set of Window
variables for each Graph mode setting (just as the Y= Editor
maintains independent function lists). 3D graphs use the following
Window variables.

Variable Description
eyeq, eyef, Angles (always in degrees) used to view the graph.
eyeψ Refer to “Rotating and/or Elevating the Viewing Angle”
on page 150.
xmin, xmax, Boundaries of the viewing cube.
ymin, ymax,
zmin, zmax
Note: If you enter a xgrid, ygrid The distance between xmin and xmax and between ymin
fractional number for xgrid and ymax is divided into the specified number of grids.
or ygrid, it is rounded to the
nearest whole number ‚ 1.
The z(x,y) equation is evaluated at each grid point
where the grid lines (or grid wires) intersect.
Note: The 3D mode does
not have scl Window The incremental value along x and y is calculated as:
variables, so you cannot set
tick marks on the axes. xmax ì xmin ymax ì ymin
x increment = y increment =
xgrid ygrid

The number of grid wires is xgrid + 1 and ygrid + 1. For


example, when xgrid = 14 and ygrid = 14, the xy grid
consists of 225 (15 × 15) grid points.

z(xmin,ymin) z(xmin,ymax)

z(xmax,ymin) z(xmax,ymax)

ncontour The number of contours evenly distributed along the


displayed range of z values. Refer to page 156.

Standard values (set when you select 6:ZoomStd from the „ Zoom
toolbar menu) are:

eyeq = 20. xmin = ë 10. ymin = ë 10. zmin = ë 10.


eyef = 70. xmax = 10. ymax = 10. zmax = 10.
eyeψ = 0. xgrid = 14. ygrid = 14. ncontour = 5.

Note: Increasing the grid You may need to increase the standard values for the grid variables
variables decreases the (xgrid, ygrid) to ensure that enough points are plotted.
graphing speed.

146 Chapter 10: 3D Graphing

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 146 of 22
Setting the Graph The Axes and Style formats are specific to the 3D graphing mode.
Format Refer to “Changing the Axes and Style Formats” on page 153.

Exploring a Graph As in function graphing, you can explore a graph by using the
following tools. Any displayed coordinates are shown in rectangular
or cylindrical form as set in the graph format. (In 3D graphing,
cylindrical coordinates are shown when you use ¥ Í to set
Coordinates = POLAR.)

Tool For 3D Graphs:


Free-Moving The free-moving cursor is not available.
Cursor
„ Zoom Works essentially the same as it does for function
graphs, but remember that you are now using three
dimensions instead of two.
¦ Only the following zooms are available:
2:ZoomIn 5:ZoomSqr A:ZoomFit
3:ZoomOut 6:ZoomStd B:Memory
C:SetFactors
¦ Only x (xmin, xmax), y (ymin, ymax), and z (zmin,
zmax) Window variables are affected.

¦ The grid (xgrid, ygrid) and eye (eyeq, eyef, eyeψ)


Window variables are not affected unless you
select 6:ZoomStd (which resets these variables to
their standard values).
Tip: Refer to “Moving the … Trace Lets you move the cursor along a grid wire from one
Cursor in 3D” on page 148. grid point to the next on the 3D surface.
¦ When you begin a trace, the cursor appears at the
Tip: During a trace, you can midpoint of the xy grid.
also evaluate z(x,y). Type
the x value and press ¦ QuickCenter is available. At any time during a trace,
¸; then type the y value regardless of the cursor’s location, you can press
and press ¸. ¸ to center the viewing cube on the cursor.
¦ Cursor movement is restricted in the x and y
directions. You cannot move the cursor beyond the
viewing cube boundaries set by xmin, xmax, ymin,
and ymax.
‡ Math Only 1:Value is available for 3D graphs. This tool
displays the z value for a specified x and y value.
After selecting 1:Value, type the x value and press
¸. Then type the y value and press ¸.

Chapter 10: 3D Graphing 147

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 147 of 22
Moving the Cursor in 3D

When you move the cursor along a 3D surface, it may not be


obvious why the cursor moves as it does. 3D graphs have two
independent variables (x,y) instead of one, and the x and y
axes have a different orientation than other graphing modes.

How to Move the On a 3D surface, the cursor always follows along a grid wire.
Cursor
Cursor Key Moves the cursor to the next grid point in the:
Note: You can move the B Positive x direction
cursor only within the x and y
boundaries set by Window A Negative x direction
variables xmin, xmax, ymin, C Positive y direction
and ymax.
D Negative y direction

Although the rules are straightforward, the actual cursor movement


can be confusing unless you know the orientation of the axes.
In 2D graphing, the x and y axes
always have the same orientation
relative to the Graph screen.

Tip: From the Y= Editor, In 3D graphing, x and y have a


Window Editor, or Graph different orientation relative to the
screen, use ¥ Í to show
the axes and their labels. Graph screen. Also, you can rotate eyeq=20
and/or elevate the viewing angle. eyef=70
eyeψ=0

Simple Example of The following graph shows a sloped plane that has the equation
Moving the Cursor z1(x,y) = ë (x + y) / 2. Suppose you want to trace around the displayed
boundary.
When you press …, the trace cursor appears at
the midpoint of the xy grid. Use the cursor pad to
move the cursor to any edge.
B moves in a
positive x direction, D moves in a
Tip: By displaying and up to xmax. negative y direction,
labeling the axes, you can back to ymin.
more easily see the pattern
in the cursor movement.

C moves in a
positive y direction, A moves in a negative
up to ymax. x direction, back to
xmin.

Tip: To move grid points When the trace cursor is on an interior point in the displayed plane,
closer together, you can the cursor moves from one grid point to the next along one of the
increase Window variables
xgrid and ygrid. grid wires. You cannot move diagonally across the grid.
Notice that the grid wires may not appear parallel to the axes.

148 Chapter 10: 3D Graphing

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 148 of 22
Example of the On more complex shapes, the cursor may appear as if it is not on a
Cursor on a Hidden grid point. This is an optical illusion caused when the cursor is on a
Surface hidden surface.
For example, consider a saddle shape z1(x,y) = (xñ ì yñ ) / 3. The
following graph shows the view looking down the y axis.

Now look at the same shape at 10¡ from the x axis (eyeq = 10).

Tip: To cut away the front of


the saddle in this example,
set xmax=0 to show only
negative x values.

You can move the cursor so that it If you cut away the front side, you
does not appear to be on a grid can see the cursor is actually on a
point. grid point on the hidden back side.

Example of an “Off Although the cursor can move only along a grid wire, you will see
the Curve” Cursor many cases where the cursor does not appear to be on the 3D
surface at all. This occurs when the z axis is too short to show z(x,y)
for the corresponding x and y values.
For example, suppose you trace the paraboloid z(x,y) = xñ + .5yñ
graphed with the indicated Window variables. You can easily move
the cursor to a position such as:
Trace cursor

Valid trace
coordinates

Tip: QuickCenter lets you Although the cursor is actually tracing the paraboloid, it appears off
center the viewing cube on the curve because the trace coordinates:
the cursor’s location. Simply
press ¸. ¦ xc and yc are within the viewing cube.
— but —
¦ zc is outside the viewing cube.
When zc is outside the z boundary of the viewing cube, the cursor is
physically displayed at zmin or zmax (although the screen shows the
correct trace coordinates).

Chapter 10: 3D Graphing 149

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 149 of 22
Rotating and/or Elevating the Viewing Angle

In 3D graphing mode, the eyeq and eyef Window variables let


you set viewing angles that determine your line of sight. The
eyeψ Window variable lets you rotate the graph around that
line of sight.

How the Viewing The viewing angle has three components: Z

Angle Is Measured ¦ eyeq — angle in degrees from the eyef


positive x axis.
¦ eyef — angle in degrees from the eyeψ
Y
positive z axis.
X eyeq
Note: When eyeψ=0, the ¦ eyeψ — angle in degrees by which the
z axis is vertical on the graph is rotated counterclockwise
screen. When eyeψ=90, around the line of sight set by eyeq
the z axis is rotated 90¡
counterclockwise and is and eyef.
horizontal.
In the Window Editor ( ¥ $ ),
always enter eyeq, eyef, and eyeψ in
degrees, regardless of the current angle
mode.
Do not enter a ¡ symbol. For example,
type 20, 70, and 0, not 20¡, 70¡, and 0¡.

Effect of Changing The view on the Graph screen is always oriented along the viewing
eyeq angle. From this point of view, you can change eyeq to rotate the
viewing angle around the z axis.

z1(x,y) = (x 3y - y 3x) / 390 In this example, eyef = 70

Note: This example eyeq = 20


increments eyeq by 30.

eyeq = 50

eyeq = 80

150 Chapter 10: 3D Graphing

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 150 of 22
Effect of Changing By changing eyef, you can elevate your viewing angle above the xy
eyef plane. If 90 < eyef < 270, the viewing angle is below the xy plane.

z1(x,y) = (x 3y - y 3x) / 390 In this example, eyeq = 20


Note: This example starts eyef = 90
on the xy plane (eyef = 90)
and decrements eyef by 20
to elevate the viewing angle.

eyef = 70

eyef = 50

Effect of Changing The view on the Graph screen is always oriented along the viewing
eyeψ angles set by eyeq and eyef. You can change eyeψ to rotate the graph
around that line of sight.

Note: During rotation, the In this example,


axes expand or contract to
z1(x,y)=(x 3yì y 3x) / 390 eyeq=20 and eyef=70
fit the screen’s width and
height. This causes some
distortion as shown in the eyeψ=0
example.
z=10
When eyeψ=0,
the z axis runs
the height of the
screen. z=ë10 eyeψ=45

When eyeψ=90, the z axis


runs the width of the screen.

z=10 z=ë10
eyeψ=90
As the z axis rotates 90¡, its
range (ë 10 to 10 in this
example) expands to almost
twice its original length.
Likewise, the x and y axes
expand or contract.

From the Home The eye values are stored in the system variables eyeq, eyef, and
Screen or a Program eyeψ. You can access or store to these variables as necessary.
To type f or ψ, press ¥ c j [ F] or ¥ c j Ú, respectively.
You can also press 2 ¿ and use the Greek menu.

Chapter 10: 3D Graphing 151

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 151 of 22
Animating a 3D Graph Interactively

After plotting any 3D graph, you can change the viewing angle
interactively by using the cursor. Refer to the preview example
on page 142.

The Viewing Orbit When using A and B to animate a graph, think of it as moving the
viewing angle along its “viewing orbit” around the graph.
Note: The viewing orbit Moving along this orbit can
affects the eye Window cause the z axis to wobble
variables in differing
amounts. slightly during the animation
(as you can see in the preview
example on page 142).

Animating the To: Do this:


Graph Animate the graph incrementally Press and release the
cursor quickly.
Note: If the graph is shown Move along the viewing orbit: A or B
in expanded view, it returns Change the viewing orbit’s elevation: C or D
to normal view automatically
when you press a cursor (primarily increases
key. or decreases eyef)

Tip: After animating the Animate the graph continuously Press and hold the cursor
graph, use ¸ or j  for about 1 second, and
to stop and then re-start the then release it.
animation in the same
direction. To stop, press N, ¸,
Tip: During an animation,
´, or ¥  (space).
you can press j [F] to Change between 4 animation speeds Press « or |.
switch to the next graph
format style. (increase or decrease the incremental
changes in the eye Window variables)
Tip: To see a graphic that
shows the eye angles, refer Change the viewing angle of a non- Press X, Y or Z,
to page 150. animated graph to look along the x, y, respectively.
or z axis
Return to the initial eye angle values Press 0
(zero, not the letter O).

Animating a Series You can also animate a graph by saving a series of graph pictures
of Graph Pictures and then flipping (or cycling) through those pictures. Refer to
“Animating a Series of Graph Pictures” in Chapter 12: Additional
Graphing Topics. This method gives you more control over the
Window variable values, particularly eyeψ (page 150), which rotates
the graph.

152 Chapter 10: 3D Graphing

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 152 of 22
Changing the Axes and Style Formats

With its default settings, the TI-89 displays hidden surfaces on


a 3D graph but does not display the axes. However, you can
change the graph format at any time.

Displaying the From the Y= Editor, Window Editor, or Graph screen:


GRAPH FORMATS ¦ Press ƒ and select 9:Format.
Dialog Box — or —
¦ Press ¥ Í.
¦ The dialog box shows the
current graph format
settings.
¦ To exit without making a
change, press N.

To change any of these settings, use the same procedure that you use
to change other types of dialog boxes, such as the MODE dialog box.

Examples of Axes To display the valid Axes settings,


Settings highlight the current setting and
press B. z1(x,y) = xñ+.5yñ
¦ AXES — Shows standard
Tip: Setting Labels = ON is xyz axes.
helpful when you display
either type of 3D axes.
¦ BOX — Shows 3-dimensional
box axes.
The edges of the box are
determined by the Window
variables xmin, xmax, etc.
In many cases, the origin (0,0,0) is inside the box, not at a corner.
For example, if xmin = ymin = zmin = ë 10 and xmax = ymax = zmax = 10,
the origin is at the center of the box.

Chapter 10: 3D Graphing 153

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 153 of 22
Examples of Style To display the valid Style settings,
Settings highlight the current setting and
press B.
¦ WIRE FRAME — Shows the 3D
Tip: WIRE FRAME is faster shape as a transparent wire
to graph and may be more frame.
convenient when you’re
experimenting with different
shapes. ¦ HIDDEN SURFACES — Uses
shading to differentiate the
two sides of the 3D shape.

Later sections in this chapter describe CONTOUR LEVELS, WIRE AND


CONTOUR (page 155) and IMPLICIT PLOT (page 159).

Be Aware of The eye angles used to view a graph (eyeq, eyef, and eyeψ Window
Possible variables) can result in optical illusions that cause you to lose
Optical Illusions perspective on a graph.
Typically, most optical illusions occur when the eye angles are in a
negative quadrant of the coordinate system.
Optical illusions may be more noticeable with box axes. For
example, it may not be immediately obvious which is the “front” of
the box.

Looking down Looking up


from above the xy plane from below the xy plane

Note: These examples


show the graphs as
displayed on the screen.

eyeq = 20, eyef = 55, eyeψ = 0 eyeq = 20, eyef = 120, eyeψ= 0

Note: These examples use


artificial shading (which is
not displayed on the screen)
to show the front of the box.

To minimize the effect of optical illusions, use the GRAPH FORMATS


dialog box to set Style = HIDDEN SURFACE.

154 Chapter 10: 3D Graphing

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 154 of 22
Contour Plots

In a contour plot, a line is drawn to connect adjacent points on


the 3D graph that have the same z value. This section
discusses the CONTOUR LEVELS and WIRE AND CONTOUR
graph format styles.

Selecting the Graph In 3D graphing mode, define an equation and graph it as you would
Format Style any 3D equation, with the following exception. Display the GRAPH
FORMATS dialog box by pressing ¥ Í from the Y= Editor, Window
editor, or Graph screen. Then set:
Tip: From the Graph Style = CONTOUR LEVELS
screen, you can press – or –
j [F] to switch from one
graph format style to the Style = WIRE AND CONTOUR
next (skipping IMPLICIT
PLOT).

Note: Pressing j [F] to ¦ For CONTOUR LEVELS, only the contours are shown.
select CONTOUR LEVELS
does not affect the viewing − The viewing angle is set initially so that you are viewing the
angle, view, or Labels contours by looking down the z axis. You can change the
format as it does if you use
¥ Í.
viewing angle as necessary.
− The graph is shown in expanded view. To switch between
expanded and normal view, press p.
− The Labels format is set to OFF automatically.
¦ For WIRE AND CONTOUR, the contours are drawn on a wire
frame view. The viewing angle, view (expanded or normal), and
Labels format retain their previous settings.

Style z1(x,y)=(xò yì yò x) / 390 z1(x,y)=xñ +.5yñ ì 5

Looking down z axis

Note: These examples use


the same x, y, and z
CONTOUR
Window variable values as a
ZoomStd viewing cube. If LEVELS
you use ZoomStd, press Z
to look down the z axis.
Using eyeq=20, eyef=70, eye ψ =0

CONTOUR
LEVELS

Note: Do not confuse the WIRE AND


contours with the grid lines.
The contours are darker. CONTOUR

Chapter 10: 3D Graphing 155

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 155 of 22
How Are Z Values You can set the ncontour Window variable ( ¥ $ ) to specify the
Determined? number of contours that will be evenly distributed along the
displayed range of z values, where:
zmax ì zmin
increment =
ncontour + 1

The z values for the contours are:


zmin + increment
zmin + 2(increment)
zmin + 3(increment)
©
zmin + ncontour(increment) The default is 5. You can
set this to 0 through 20.

If ncontour=5 and you use the standard viewing window (zmin=ë 10


and zmax=10) , the increment is 3.333. Five contours are drawn for
z=ë 6.666, ë 3.333, 0, 3.333, and 6.666.
Note, however, that a contour is not drawn for a z value if the 3D
graph is not defined at that z value.

Drawing a Contour If a contour graph is currently displayed, you can specify a point on
for the Z Value of a the graph and draw a contour for the corresponding z value.
Selected Point 1. Press 2 ˆ to display the Draw
Interactively menu.
2. Select 7:Draw Contour.
3. Either:
¦ Type the point’s x value and press
¸, and then type the y value
and press ¸.
Tip: Any existing contours – or –
remain on the graph. To
remove the default contours, ¦ Move the cursor to the applicable point. (The cursor moves
display the Window editor along the grid lines.) Then press ¸.
( ¥ $ ) and set
ncontour=0. For example, suppose the current graph is z1(x,y)=xñ +.5yñ ì 5. If you
specify x=2 and y=3, a contour is drawn for z=3.5.

156 Chapter 10: 3D Graphing

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 156 of 22
Drawing Contours From the Graph screen, press 2 ˆ Draw and then select
for Specified Z 8:DrwCtour. The Home screen is displayed automatically with
Values DrwCtour in the entry line. You can then specify one or more z values
individually or generate a sequence of z values.
Some examples are:
Tip: To remove the default DrwCtour 5 Draws a contour for z=5.
contours, use
¥ $ and set DrwCtour {1,2,3} Draws contours for z=1, 2, and 3.
ncontour=0.
DrwCtour seq(n,n,ë 10,10,2) Draws contours for a sequence of z
values from ë10 through 10 in
steps of 2 (ë10, ë8, ë6, etc.).

The specified contours are drawn on the current 3D graph.


(A contour is not drawn if the specified z value is outside the viewing
cube or if the 3D graph is not defined at that z value.)

Notes about For a contour plot:


Contour Plots ¦ You can use the cursor keys (page 152) to animate the contour
plot.
¦ You cannot trace ( … ) the contours themselves. However, you
can trace the wire frame as seen when Style=WIRE AND
CONTOUR.
¦ It may take awhile to evaluate the equation initially.
¦ Because of possible long evaluation times, you first may want to
experiment with your 3D equation by using Style=WIRE FRAME.
The evaluation time is much shorter. Then, after you’re sure you
have the correct Window variable values, use ¥ Í to set
Style=CONTOUR LEVELS or WIRE AND CONTOUR.

Chapter 10: 3D Graphing 157

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 157 of 22
Example: Contours of a Complex Modulus Surface

The complex modulus surface given by z(a,b) = abs(f(a+bi))


shows all the complex zeros of any polynomial y=f(x).

Example In this example, let f(x)=x 3+1. By substituting the general complex
form x+yi for x, you can express the complex surface equation as
z(x,y)=abs((x+yù i)3+1).
1. Use 3 to set Graph=3D.
2. Press ¥ #, and define the
equation:
z1(x,y)=abs((x+yù i)^3+1)

3. Press ¥ $, and set


the Window variables as
shown.

4. Press ¥ Í, turn on the


axes, set Style = CONTOUR
LEVELS, and return to the
Window editor.

5. Press ¥ % to graph the equation.


It will take awhile to evaluate the graph; so be patient. When the
graph is displayed, the complex modulus surface touches the
xy plane at exactly the complex zeros of the polynomial:
1 3 1 3
ë 1, + i , and ì i
2 2 2 2
Note: For more accurate 6. Press …, and move the
estimates, increase the trace cursor to the zero in
xgrid and ygrid Window
variables. However, this the fourth quadrant.
increases the graph
The coordinates let you
evaluation time.
estimate .428ì.857 i as
the zero. The zero is precise when z=0.

Tip: When you animate the 7. Press N. Then use the


graph, the screen changes cursor keys to animate the
to normal view. Use p to
toggle between normal and graph and view it from
expanded views. different eye angles.
This example shows eyeq=70,
eyef=70, and eyeψ=0.

158 Chapter 10: 3D Graphing

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 158 of 22
Implicit Plots

An implicit plot is used primarily as a way to graph 2D implicit


forms that cannot be graphed in function graphing mode.
Technically, an implicit plot is a 3D contour plot with a single
contour drawn for z=0 only.

Explicit and Implicit In 2D function graphing mode,


Forms equations have an explicit form
y=f(x), where y is unique for
each value of x.
Many equations, however, have
y is not unique for each x, so
an implicit form f(x,y)=g(x,y), you cannot graph this in
where you cannot explicitly function graphing mode.
solve for y in terms of x or for x
in terms of y.
Tip: You can also graph By using implicit plots in 3D graphing mode, you can graph these
many implicit forms if you implicit forms without solving for y or x.
either:
• Express them as Rearrange the implicit form as f(x,y)ì g(x,y)=0
parametric equations. an equation set to zero.
Refer to Chapter 7.
• Break them into
In the Y= Editor, enter the non- z1(x,y)=f(x,y)ì g(x,y)
separate, explicit zero side of the equation. This
functions. Refer to the is valid because an implicit plot
preview example in automatically sets the equation
Chapter 6.
equal to zero.
For example, given the ellipse If xñ +.5yñ =30,
equation shown to the right, then z1(x,y)=xñ +.5yñ ì 30.
enter the implicit form in the
Y= Editor.

Selecting the Graph In 3D graphing mode, define an appropriate equation and graph it as
Format Style you would any 3D equation, with the following exception. Display
the GRAPH FORMATS dialog box by pressing ¥ Í from the
Y= Editor, Window editor, or Graph screen.
Note: From the Graph Then set:
screen, you can press
j [F] to switch to the Style = IMPLICIT PLOT
other graph format styles.
However, you must use
¥ Í to return to IMPLICIT
PLOT.

Chapter 10: 3D Graphing 159

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 159 of 22
¦ The viewing angle is set initially so that you are viewing the plot
by looking down the z axis. You can change the viewing angle as
necessary.
¦ The plot is shown in expanded view. To switch between
expanded and normal view, press p.
¦ The Labels format is set to OFF automatically.

xñ ì yñ =4 sin(x)+cos(y)= e (xù y)
Style z1(x,y)=xñ ì yñ ì 4 z1(x,y)=sin(x)+cos(y)ì e (xù y)
Note: These examples use
the same x, y, and z
Window variable values as a IMPLICIT
ZoomStd viewing cube. If PLOT
you use ZoomStd, press Z
to look down the z axis.

Notes About For an implicit plot:


Implicit Plots ¦ The ncontour Window variable (page 156) has no affect. Only the
z=0 contour is drawn, regardless of the value of ncontour. The
displayed plot shows where the implicit form intersects the
xy plane.
¦ You can use the cursor keys (page 152) to animate the plot.
¦ You cannot trace ( … ) the implicit plot itself. However, you can
trace the unseen wire frame graph of the 3D equation.
¦ It may take awhile to evaluate the equation initially.
¦ Because of possible long evaluation times, you first may want to
experiment with your 3D equation by using Style=WIRE FRAME.
The evaluation time is much shorter. Then, after you’re sure you
have the correct Window variable values, use ¥ Í to set
Style=IMPLICIT PLOT.

160 Chapter 10: 3D Graphing

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 160 of 22
Example: Implicit Plot of a More Complicated Equation

You can use the IMPLICIT PLOT graph format style to plot and
animate a complicated equation that cannot be graphed
otherwise. Although it may take a long time to evaluate such a
graph, the visual results can justify the time required.

Example Graph the equation sin(x 4+yì x 3 y) = .1.


1. Use 3 to set Graph=3D.
2. Press ¥ #, and define the
equation:
z1(x,y)=sin(x^4+yì x^3y)ì.1

3. Press ¥ $, and set


the Window variables as
shown.

4. Press ¥ Í, turn on the


axes, set Style = IMPLICIT
PLOT, and return to the
Window editor.

Note: For more detail, 5. Press ¥ % to graph


increase the xgrid and ygrid the equation.
Window variables. However,
this increases the graph It will take awhile to
evaluation time.
evaluate the graph; so be
patient. The graph shows where
sin(x 4 +yìx 3 y) = .1

Tip: When you animate the 6. Use the cursor keys to


graph, the screen changes animate the graph and view
to normal view. Press p to
switch between normal and it from different eye angles.
expanded views.
In expanded view, this example
shows eyeq=ë127.85, eyef=52.86,
and eyeψ=ë18.26.

Chapter 10: 3D Graphing 161

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 161 of 22
162 Chapter 10: 3D Graphing

3D.DOC TI-89: 3D Graphing (US English) Joan Terrell Revised: 07/29/98 1:11 PM Printed: 07/29/98 1:12 PM Page 162 of 22
Chapter 11:
Differential Equation Graphing
Preview of Differential Equation Graphing ....................................... 164

11 Overview of Steps in Graphing Differential Equations .................... 166


Differences in Diff Equations and Function Graphing ..................... 167
Setting the Initial Conditions ............................................................... 172
Defining a System for Higher-Order Equations ................................. 174
Example of a 2nd-Order Equation....................................................... 175
Example of a 3rd-Order Equation ....................................................... 177
Setting Axes for Time or Custom Plots .............................................. 178
Example of Time and Custom Axes.................................................... 179
Example Comparison of RK and Euler............................................... 181
Example of the deSolve( ) Function................................................... 184
Troubleshooting with the Fields Graph Format................................ 185

This chapter describes how to solve differential equations


graphically on the TI-89. Before using this chapter, you should be
familiar with Chapter 6: Basic Function Graphing.

Note: A differential equation The TI-89 solves 1st-order systems of ordinary differential
is: equations. For example:
• 1st-order when only
1st-order derivatives y' = .001 y ù (100 ì y)
appear.
• Ordinary when all the
or coupled 1st-order differential equations such as:
derivatives are with
respect to the same y1' = ë y1 + 0.1 ù y1 ù y2
independent variable. y2' = 3 ù y2 ì y1 ù y2
You can solve higher-order equations by defining them as a
system of 1st-order equations. For example:
y'' + y = sin(t) can be defined as y1' = y2
y2' = ë y1 + sin(t)
By setting appropriate initial conditions, you can graph a
particular solution curve of a differential equation.
You can also graph a slope
or direction field that helps
you visualize the behavior
of the entire family of
solution curves.
For graphing, the TI-89 uses numerical methods that approximate
the true solutions. The new deSolve() function lets you solve
some differential equations symbolically. This chapter introduces
deSolve(). Refer to Appendix A for more details.

Chapter 11: Differential Equation Graphing 163

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 08/03/98 1:05 PM Printed: 08/03/98 2:28 PM Page 163 of 27
Preview of Differential Equation Graphing

Graph the solution to the logistic 1st-order differential equation y' = .001yù (100ì y). Start
by drawing only the slope field. Then enter initial conditions in the Y= Editor and
interactively from the Graph screen.

Steps Keystrokes Display

1. Display the MODE dialog box. 3


For Graph mode, select B6
DIFF EQUATIONS. ¸

2. Display and clear the Y= Editor. ¥#


Then define the 1st-order differential ƒ8¸
equation: ¸.0 0 1
y1'(t)=.001y1ù (100ì y1) Y1pc100
|Y1d¸
Press p to enter the ù shown above. Do
not use implied multiplication between the
variable and parentheses. If you do, it is
treated as a function call. Important: With y1' selected, the
Leave the initial condition yi1 blank. TI-89 will graph the y1 solution
curve, not the derivative y1'.

3. Display the GRAPH FORMATS dialog ¥Í


box. Then set Axes = ON, Labels = ON, DDB2
Solution Method = RK, and Fields = DDB2
SLPFLD. DB1
Important: To graph one differential DB1¸
equation, Fields must be set to SLPFLD or
FLDOFF . If Fields= DIRFLD , an error occurs
when you graph.

4. Display the Window Editor, and set ¥$


the Window variables as shown to 0D10D
the right. .1D0D
·10D110D
10D·10D
120D10D
0 D.0 0 1 D
20

5. Display the Graph screen. ¥%


Because you did not specify an initial
condition, only the slope field is drawn
(as specified by Fields= SLPFLD in the
GRAPH FORMATS dialog box).

164 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 164 of 26
Steps Keystrokes Display

6. Return to the Y= Editor and enter an ¥#


initial condition: ¸10
yi1=10 ¸

7. Return to the Graph screen. ¥%


Initial conditions entered in the Y= Editor
always occur at t0. The graph begins at The initial condition is
the initial condition and plots to the right. marked with a circle.
Then it plots to the left.

8. Return to the Y= Editor and change ¥#C


yi1 to enter two initial conditions as ¸2[
a list: 10b202\
yi1={10,20} ¸

9. Return to the Graph screen. ¥%

10. Use 2 Š IC to select an initial 2Š


condition interactively. When 40¸
prompted, enter t=40 and y1=45. 45¸
When selecting an initial condition
interactively, you can specify a value for t
other than the t0 value entered in the
Y= Editor or Window Editor.
Instead of entering t and y1 after pressing
2 Š, you can move the cursor to a point
on the screen and then press ¸.
You can use … to trace curves for initial
conditions specified in the Y= Editor.
However, you cannot trace the curve for
an initial condition selected interactively.

Chapter 11: Differential Equation Graphing 165

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 165 of 26
Overview of Steps in Graphing Differential Equations

To graph differential equations, use the same general steps


used for y(x) functions as described in Chapter 6: Basic Function
Graphing. Any differences are described on the following pages.

Graphing Set Graph mode (3)


Differential to DIFF EQUATIONS .
Also set Angle mode,
Equations if necessary.

Define equations and,


optionally, initial
conditions on Y= Editor
(¥ #).

Tip: To turn off any stat Select (†) which


data plots, press ‡ 5 or defined equations to
use † to deselect them. graph.
Refer to Chapter 16.

Set the display style


(2 ˆ) for an
equation, if necessary.

Note: The Fields format is Set the graph format


critical, depending on the (¥ Í or ƒ 9).
order of the equation Solution Method and
(page 185). Fields are unique to
differential equations.

Note: Valid Axes settings Set the axes (2 ‰),


depend on the Fields format as applicable,
(pages 178 and 185). depending on the
Fields format.

Note: Depending on the Define the viewing


Solution Method and Fields window (¥ $).
formats, different Window
variables are displayed.

Tip: „ Zoom also changes


the viewing window.

Graph the equations


(¥ %).

166 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 166 of 26
Differences in Diff Equations and Function Graphing

This chapter assumes that you already know how to graph y(x)
functions as described in Chapter 6: Basic Function Graphing.
This section describes the differences.

Setting the Use 3 to set Graph = DIFF EQUATIONS before you define
Graph Mode differential equations or set Window variables. The Y= Editor and the
Window Editor let you enter information for the current Graph mode
setting only.

Defining Differential Use t0 to specify when initial


Equations on the conditions occur. You can also set
t0 in the Window Editor.
Y= Editor
Use yi to specify one or more initial
conditions for the corresponding
differential equation.

You can define differential


equations y1'(t) through y99'(t).

Tip: You can use the Define When entering equations in the Y= Editor, do not use y(t) formats to
command from the Home refer to results. For example:
screen to define functions
Do not use implied multiplication
and equations. between a variable and
Enter: y1' = .001y1ù (100ì y1) parenthetical expression. If you
Not: y1' = .001y1(t)ù (100ì y1(t)) do, it is treated as a function call.

Only 1st-order equations can be entered in the Y= Editor. To graph


2nd- or higher-order equations, you must enter them as a system of
1st-order equations. For information, refer to page 174.
For detailed information about setting initial conditions, refer to
page 172.

Selecting You can use † to select a


Differential differential equation, but not
its initial condition.
Equations
Important: Selecting y1'
will graph the y1 solution
curve, not the derivative
y1', depending on the axis
setting.

Selecting the With 2 ˆ Style, only the Line, Dot, Square, Thick, Animate, and Path
Display Style styles are available. Dot and Square mark only those discrete values
(in tstep increments) at which a differential equation is plotted.

Chapter 11: Differential Equation Graphing 167

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 167 of 26
Setting Graph From the Y= Editor, Window
Formats Editor, or Graph screen, press
¥ Í.

The formats affected by differential equations are:

Graph format Description


Graph Order Not available.
Solution Specifies the method used to solve the differential
Method equations.
¦ RK — Runge-Kutta method. For information
about the algorithm used for this method, refer
to Appendix B.
¦ EULER — Euler method.
The method lets you choose either greater
accuracy or speed. Typically, RK is more accurate
than EULER but takes longer to find the solution.
Important: The Fields Fields Specifies whether to draw a field for the
graph format is critical in differential equation.
successfully graphing
differential equations. Refer ¦ SLPFLD — Draws a slope field for only one 1st-
to “Troubleshooting with the
order equation, with t on the x axis and the
Fields Graph Format” on
page 185. solution on the y axis. To see how a slope field
is used, refer to the example starting on
Tip: If you press ¸ page 164.
while a slope or direction
field is being drawn, the ¦ DIRFLD — Draws a direction field for only one
graph pauses after the field 2nd-order equation (or system of two 1st-order
is drawn but before the
solutions are plotted. Press equations), with axes determined by the
¸ again to continue. custom axes settings. To see how a direction
field is used, refer to the example starting on
Tip: To cancel graphing, page 175.
press ´.
¦ FLDOFF — Does not display a field. This is
valid for equations of any order, but you must
use it for 3rd- or higher-order. You must enter
the same number of initial conditions for all
equations in the Y= Editor (page 172). For an
example, refer to page 177.

168 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 168 of 26
Setting Axes In the Y= Editor, 2 ‰ Axes may or may not be available,
depending on the current graph format.
If 2 ‰ is available, you can select
the axes that are used to graph the
differential equations. For more
information, refer to page 178.

Axes Description
TIME Plots t on the x axis and y (the solutions to the selected
differential equations) on the y axis.
CUSTOM Lets you select the x and y axes.

Window Variables Differential equation graphs use the following Window variables.
Depending on the Solution Method and Fields graph formats, not all of
these variables are listed in the Window Editor ( ¥ $ ) at the
same time.

Variable Description
t0 Time at which the initial conditions entered in the
Y= Editor occur. You can set t0 in the Window Editor
and Y= Editor. (If you set t0 in the Y= Editor, tplot is set
to the same value automatically.)
Note: If tmax < t0, tstep must tmax, Used to determine the t values where the equations are
be negative. tstep plotted:
y'(t0)
y'(t0+tstep)
y'(t0+2ù tstep)
... not to exceed ...
y'(tmax)
If Fields = SLPFLD, tmax is ignored. Equations are
plotted from t0 to both edges of the screen in tstep
increments.
Note: If Fields=SLPFLD, tplot First t value plotted. If this is not a tstep increment,
tplot is ignored and is plotting begins at the next tstep increment. In some
assumed to be the same
as t0. situations, the first points evaluated and plotted
starting at t0 may not be interesting visually. By setting
tplot greater than t0, you can start the plot at the
interesting area, which speeds up the graphing time
and avoids unnecessary clutter on the Graph screen.

Chapter 11: Differential Equation Graphing 169

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 169 of 26
Window Variables xmin, xmax, Boundaries of the viewing window.
(Continued) ymin, ymax

xscl, yscl Distance between tick marks on the x and y axes.


ncurves Number of solution curves (0 through 10) that will be
drawn automatically if you do not specify an initial
condition. By default, ncurves = 0.
Note: For information about When ncurves is used, t0 is set temporarily at the middle
how the Fields graph format of the screen and initial conditions are distributed
affects whether ncurves is
used, refer to page 172. evenly along the y axis, where:
ymax ì ymin
increment =
ncurves + 1

The y values for the initial conditions are:


ymin + increment
ymin + 2ù (increment)
©
ymin + ncurvesù (increment)
diftol (Solution Method = RK only) Tolerance used by the RK
method to help select a step size for solving the
equation; must be ‚1Eë 14.
fldres (Fields = SLPFLD or DIRFLD only) Number of columns
(1 through 80) used to draw a slope or direction field
across the full width of the screen.
Estep (Solution Method = EULER only) Euler iterations
between tstep values; must be an integer >0. For more
accuracy, you can increase Estep without plotting
additional points.
dtime (Fields = DIRFLD only) Point in time at which a
direction field is drawn.

Standard values (set when you select 6:ZoomStd from the „ Zoom
toolbar menu) are:

t0 = 0. xmin = ë 1. ymin = ë 10. ncurves = 0.


tmax = 10. xmax = 10. ymax = 10. diftol = .001
tstep = .1 xscl = 1. yscl = 1. Estep = 1.
tplot = 0. fldres = 14.
dtime = 0.

You may need to change the standard values for the t variables to
ensure that sufficient points are plotted.

170 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 170 of 26
The fldpic System When a slope or direction field is drawn, a picture of the field is
Variable stored automatically to a system variable named fldpic. If you
perform an operation that regraphs the plotted equations but does
not affect the field, the TI-89 reuses the picture in fldpic instead of
having to redraw the field. This can speed up the regraphing time
significantly.
fldpic is deleted automatically when you exit the differential equation
graphing mode or when you display a graph with Fields = FLDOFF.

Exploring a Graph As in function graphing, you can explore a graph by using the
following tools. Any displayed coordinates are shown in rectangular
or polar form as set in the graph format.

Tool For Differential Equation Graphs:


Free-Moving Works just as it does for function graphs.
Cursor
„ Zoom Works just as it does for function graphs.
¦ Only x (xmin, xmax, xscl) and y (ymin, ymax, yscl)
Window variables are affected.
¦ The t Window variables (t0, tmax, tstep, tplot) are
not affected unless you select 6:ZoomStd (which
sets all Window variables to their standard values).
Tip: During a trace, you can … Trace Lets you move the cursor along the curve one tstep at
move the cursor to a a time. To move approximately ten plotted points at a
particular point by typing a
value for t and pressing time, press 2 B or 2 A.
¸.
If you enter initial conditions in the Y= Editor or let
the ncurves Window variable plot curves
automatically, you can trace the curves. If you use
2 Š IC from the Graph screen to select initial
conditions interactively, you cannot trace the curves.
Tip: You can use QuickCenter applies to all directions. If you move the
QuickCenter at any time cursor off the screen (top or bottom, left or right),
during a trace, even if the
cursor is still on the screen. press ¸ to center the viewing window on the
cursor location. Use C or D to view results on all
plotted curves.
‡ Math Only 1:Value is available.
¦ With TIME axes, the y(t) solution value (represented
by yc) is displayed for a specified t value.
¦ With CUSTOM axes, the values that correspond to
x and y depend on the axes you choose.

Chapter 11: Differential Equation Graphing 171

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 171 of 26
Setting the Initial Conditions

You can enter initial conditions in the Y= Editor, let the TI-89
calculate initial conditions automatically, or select them
interactively from the Graph screen.

Entering Initial You can specify one or more initial conditions in the Y= Editor. To
Conditions in the specify more than one, enter them as a list enclosed in braces { } and
Y= Editor separated by commas.
To enter initial conditions for
the y1' equation, use the yi1 line,
etc.

To specify when the initial


conditions occur, use t0.
This is also the first t
evaluated for the graph.

To graph a family of solutions, Enter {10,20} even


enter a list of initial conditions. though {10 20} is
displayed.

Note: For information about For a 2nd- or higher-order differential equation, you must define a
defining a system for higher- system of 1st-order equations in the Y= Editor.
order equations, refer to
page 174. If you enter initial conditions,
you must enter the same number
of initial conditions for each
equation in the system.
Otherwise, a Dimension error
occurs.

If You Do Not Enter If you do not enter initial conditions, the ncurves Window variable
an Initial Condition ( ¥ $ ) specifies the number of solution curves graphed
in the Y= Editor automatically. By default, ncurves = 0. You can enter a value from
0 through 10. However, the Fields graph format ( ¥ Í ) and the Axes
setting determine whether ncurves is used.

Tip: Without entering initial If Fields = Then:


conditions, use SLPFLD
(with ncurves=0) or DIRFLD SLPFLD Uses ncurves, if not set to 0, to graph curves.
to display a slope or
direction field only. DIRFLD Ignores ncurves. Does not graph any curves.

Note: SLPFLD is for a single FLDOFF Uses ncurves if Axes = TIME (or if Axes = Custom and
1st-order equation only. the x axis is t). Otherwise, a Diff Eq setup error occurs.
DIRFLD is for a 2nd-order
equation (or system of two
1st-order equations) only. When ncurves is used, t0 is set temporarily at the middle of the Graph
screen. However, the value of t0 as set in the Y= Editor or Window
Editor is not changed.

172 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 172 of 26
Selecting an Initial When a differential equation is graphed (regardless of whether a
Condition solution curve is displayed), you can select a point on the Graph
Interactively from screen and use it as an initial condition.
the Graph Screen
If Fields = Do this:
Note: With SLPFLD or SLPFLD 1. Press 2 Š.
DIRFLD, you can select – or –
initial conditions interactively 2. Specify an initial condition. Either:
regardless of whether you DIRFLD
enter initial conditions in the ¦ Move the cursor to the applicable point and
Y= Editor. press ¸.
– or –
¦ For each of the two coordinates, type a value
and press ¸.
− For SLPFLD (1st-order only), enter values
for t0 and y(t0).
− For DIRFLD (2nd-order or system of two 1st-
order equations only), enter values for both
y(t0) initial conditions, where t0 is the value
set in the Y= Editor or Window Editor.
A circle marks the initial condition and the solution
curve is drawn.
Note: With FLDOFF, you FLDOFF 1. Press 2 Š.
can select initial conditions
interactively. However, if You are prompted to select the axes for which you
three or more equations are want to enter initial conditions.
entered, you must enter a
single value (not a list) as
the initial condition for each t is a valid selection.
equation in the Y= Editor. It will let you specify
Otherwise, a Dimension a value for t0.
error occurs when graphing.
Your selections will be used as the axes for the
graph.
2. You can accept the defaults or change them. Then
press ¸.
3. Specify an initial condition as described for
SLPFLD or DIRFLD.

Note about Tracing When you enter initial conditions in the Y= Editor or let ncurves
a Solution Curve graph solution curves automatically, you can use … to trace the
curves.
However, you cannot trace a curve drawn by selecting an initial
condition interactively. These curves are drawn, not plotted.

Chapter 11: Differential Equation Graphing 173

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 173 of 26
Defining a System for Higher-Order Equations

In the Y= Editor, you must enter all differential equations as


1st-order equations. If you have an n th-order equation, you
must transform it into a system of n 1st-order equations.

Transforming an A system of equations can be defined in various ways, but the


Equation into a 1st- following is a general method.
Order System 1. Rewrite the original differential y'' + y' + y = e x
equation as necessary.
a. Solve for the highest-ordered y'' = e x ì y' ì y
derivative.
b. Express it in terms of y and t. y'' = e t ì y' ì y
Note: To produce a 1st- c. On the right side of the equation
order equation, the right only, substitute to eliminate any
side must contain non-
derivative variables only. references to derivative values.

In place of: Substitute:


y y1 y'' = e t ì y2 ì y1
y' y2
y'' y3 Do not
y''' y4 substitute on
y (4) y5 the left side
© © at this time.

d. On the left side of the equation,


substitute for the derivative value
as shown below.

In place of: Substitute:


y' y1' y2' = e t ì y2 ì y1
y'' y2'
y''' y3'
y (4) y4'
© ©

Note: Based on the above 2. On the applicable lines in the Y= Editor,


substitutions, the y' lines in define the system of equations as:
the Y= Editor represent:
y1' = y'
y2' = y'' y1' = y2
etc. y2' = y3
So, this example’s 2nd- y3' = y4
order equation is entered on
– up to –
the y2' line.
yn ' = your n th-order equation

In a system such as this, the solution to the y1' equation is the


solution to the n th-order equation. You may want to deselect any
other equations in the system.

174 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 174 of 26
Example of a 2nd-Order Equation

The 2nd-order differential equation y''+y = 0 represents a


simple harmonic oscillator. Transform this into a system of
equations for the Y= Editor. Then, graph the solution for initial
conditions y(0) = 0 and y'(0) = 1.

Example 1. Press 3 and set Graph=DIFF EQUATIONS.


2. Define a system of equations y'' + y = 0
for the 2nd-order equation as y'' = ëy
described on page 174. y'' = ëy1
Rewrite the equation and y2' = ëy1
make the necessary
substitutions.
Note: t0 is the time at which 3. In the Y= Editor ( ¥ # ),
the initial conditions occur. It enter the system of equations.
is also the first t evaluated yi1 is the initial
condition for y(0).
for the graph. By default, 4. Enter the initial conditions:
t0=0.
yi1=0 and yi2=1 yi2 is the initial
condition for y'(0).

Important: For 2nd-order 5. Press ¥ Í and set Axes = ON,


equations, you must set Labels = OFF,
Fields=DIRFLD or FLDOFF.
Solution Method = RK, and
Fields = DIRFLD.

Important: Fields=DIRFLD 6. In the Y= Editor, press 2 ‰


cannot plot a time axis. An and make sure Axes =
Invalid Axes error occurs if
Axes=TIME or if t is set as a CUSTOM with y1 and y2 as the
CUSTOM axis. axes.
7. In the Window Editor t0=0. xmin=ë 2. ncurves=0.
tmax=10. xmax=2. diftol=.001
( ¥ $ ), set the tstep=.1 xscl=1. fldres=14.
Window variables. tplot=0. ymin=ë 2. dtime=0.
ymax=2.
yscl=1.

8. Display the Graph screen


( ¥ % ).

x axis = y1 = y

y axis = y2 = y'

If you select ZoomSqr ( „ 5), you can see that the phase-plane orbit
is actually a circle. However, ZoomSqr will change your Window
variables.

Chapter 11: Differential Equation Graphing 175

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 175 of 26
To examine this harmonic oscillator in more detail, use a split screen
to graph the manner in which y and y' change with respect to time (t).

Note: To display different 9. Press 3 and change the


graphs in both parts of a mode settings on Page 2 as
split screen, you must use
the 2-graph mode. shown. Then close the MODE
dialog box, which redraws the
graph.

10. Press 2 a to switch to the


right side of the split screen.
11. Use † to select y1' and y2'.
The right side uses the same
equations as the left side.
However, no equations are
selected initially in the right
side.
Important: Because 12. Press ¥ Í and set
Fields=DIRFLD cannot plot a Fields = FLDOFF.
time axis, you must change
the Fields setting. FLDOFF
turns off all fields.

13. In the Y= Editor, press 2 ‰


and make sure Axes = TIME.

Note: When you enter 2- 14. In the Window Editor, change ymin=ë 2.
graph mode, Window ymin and ymax as shown to the ymax=2.
variables for the right side
are set to their defaults. right.
15. Press ¥ % to display the
Graph screen for graph #2.
The left side shows the phase-
plane orbit. The right side
shows the solution curve and
y' y
its derivative.
16. To return to a full screen of
the original graph, press Split Screen = FULL
2 a to switch to the left
side. Then press 3 and
change the Split Screen setting.

176 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 176 of 26
Example of a 3rd-Order Equation

For the 3rd-order differential equation y'''+2y''+2y'+y = sin(x),


write a system of equations to enter in the Y= Editor. Then
graph the solution as a function of time. Use initial conditions
y(0) = 0, y'(0) = 1, and y''(0) = 1.

Example 1. Press 3 and set Graph=DIFF EQUATIONS.


2. Define a system of equations y''' + 2y'' + 2y' + y = sin(x)
for the 3rd-order equation as y''' = sin(x) ì 2y'' ì 2y' ì y
described on page 174. y''' = sin(t) ì 2y'' ì 2y' ì y
Rewrite the equation and y''' = sin(t) ì 2y3 ì 2y2 ì y1
make the necessary y3' = sin(t) ì 2y3 ì 2y2 ì y1
substitutions.
Note: t0 is the time at which 3. In the Y= Editor ( ¥ # ),
the initial conditions occur. enter the system of
By default, t0=0.
equations.
4. Enter the initial conditions:
yi1=0, yi2=1, and yi3=1
Important: The solution to the y1'
5. Be sure that only y1' is equation is the solution to the 3rd-
order equation.
selected. Use † to deselect
any other equations.
Important: For 3rd- or 6. Press ¥ Í and set Axes = ON,
higher-order equations, you Labels = ON,
must set Fields=FLDOFF.
Otherwise, an Undefined Solution Method = RK, and
variable error occurs when Fields = FLDOFF.
graphing.

Note: With Axes=TIME, the 7. In the Y= Editor, press 2 ‰


solution to the selected and set Axes = TIME.
equation is plotted against
time (t).

8. In the Window Editor t0=0. xmin=ë 1. ncurves=0.


tmax=10. xmax=10. diftol=.001
( ¥ $ ), set the tstep=.1 xscl=1.
Window variables. tplot=0. ymin=ë 3.
ymax=3.
yscl=1.

Tip: To find the solution at a 9. Display the Graph screen


particular time, use … to ( ¥ % ).
trace the graph.

Chapter 11: Differential Equation Graphing 177

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 177 of 26
Setting Axes for Time or Custom Plots

Setting the axes can give you great flexibility in graphing


differential equations. Custom axes are particularly effective
for showing different kinds of relationships.

Displaying the From the Y= Editor, press 2 ‰.


AXES Dialog Box
If Fields = SLPFLD, 2 ‰ Axes is
unavailable.

Item Description
Axes TIME — Plots t on the x axis and y (solutions to all
selected differential equations) on the y axis.
CUSTOM — Lets you select the x and y axes.
X Axis, Active only when Axes = CUSTOM, these let you select
Y Axis what you want to plot on the x and y axes.

Note: t is not valid for t — time


either Axis when
Fields=DIRFLD. If you y — solutions (y1, y2, etc.) of all selected differential
select t, an Invalid axes equations
error occurs when graphing.
y' — values of all selected differential equations (y1',
y2', etc.)
y1, y2, etc. — the solution to the corresponding
differential equation, regardless of whether that
equation is selected
y1', y2', etc. — the value of the right-hand side of the
corresponding differential equation, regardless of
whether that equation is selected

178 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 178 of 26
Example of Time and Custom Axes

Using the predator-prey model from biology, determine the


numbers of rabbits and foxes that maintain population
equilibrium in a certain region. Graph the solution using both
time and custom axes.

Predator-Prey Model Use the two coupled 1st-order differential equations:


y1' = ë y1 + 0.1y1 ù y2 and y2' = 3y2 ì y1 ù y2

where:
y1 = Population of foxes
yi1 = Initial population of foxes (2)
y2 = Population of rabbits
yi2 = Initial population of rabbits (5)

1. Use 3 to set Graph = DIFF EQUATIONS.


Tip: To speed up graphing 2. In the Y= Editor ( ¥ # ),
times, clear any other define the differential
equations in the Y= Editor.
With FLDOFF, all equations equations and enter the
are evaluated even if they initial conditions.
are not selected.
3. Press ¥ Í and set Axes = ON,
Labels = ON,
Solution Method = RK, and
Fields = FLDOFF.

4. In the Y= Editor, press 2 ‰


and set Axes = TIME.

5. In the Window Editor t0=0. xmin=ë 1. ncurves=0.


tmax=10. xmax=10. diftol=.001
( ¥ $ ), set the tstep=p/24 xscl=5.
Window variables. tplot=0. ymin=ë 10.
ymax=40.
yscl=5.
6. Graph the differential
equations ( ¥ % ).
Tip: Use C and D to move 7. Press … to trace. Then press
the trace cursor between the y2(t)
3 ¸ to see the number of
curves for y1 and y2.
foxes (yc for y1) and rabbits
(yc for y2) at t=3.
y1(t)

Chapter 11: Differential Equation Graphing 179

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 179 of 26
Note: In this example, 8. Return to the Y= Editor. Then
DIRFLD is used for two press ¥ Í and set
related differential equations
that do not represent a 2nd- Fields = DIRFLD.
order equation.

9. Press 2 ‰ and confirm that


the axes are set as shown.

10. In the Y= Editor, clear the


initial conditions for yi1 and
yi2.

11. Return to the Graph screen,


which displays only the
direction field.

Tip: Use a list to specify 12. To graph a family of solutions,


more than one initial return to the Y= Editor and
condition.
enter the initial conditions
shown below.
yi1={2,6,7} and yi2={5,12,18}

13. Return to the Graph screen,


which displays a curve for
each pair of initial conditions.
Tip: Use C and D to move 14. Press … to trace. Then press
the trace cursor from one 3 ¸ to see the number of
initial condition curve to
another. foxes (xc) and rabbits (yc) at
t=3.
Because t0=0 and tmax=10,
you can trace in the range
0  t  10.

180 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 180 of 26
Example Comparison of RK and Euler

Consider a logistic growth model dP/dt = .001ù Pù (100ì P),


with the initial condition P(0) = 10. Use the BldData instruction
to compare the graphing points calculated by the RK and Euler
solution methods. Then plot those points along with a graph of
the equation’s exact solution.

Example 1. Press 3 and set Graph=DIFF EQUATIONS.


2. Express the 1st-order equation y1'=.001y1ù (100ì y1)
in terms of y1' and y1.

Do not use implied multiplication between


the variable and parentheses. If you do, it
is treated as a function call.

Tip: To speed up graphing 3. Enter the equation in the


times, clear any other Y= Editor ( ¥ # ).
equations in the Y= Editor.
With FLDOFF, all equations 4. Enter the initial condition:
are evaluated even if they
are not selected. yi1=10 t0 is the time at which the initial
condition occurs. By default, t0=0.

5. Press ¥ Í and set


Solution Method = RK and
Fields = FLDOFF.

6. In the Window Editor t0=0. xmin=ë 1. ncurves=0.


tmax=100. xmax=100. diftol=.001
( ¥ $ ), set the tstep=1. xscl=1.
Window variables. tplot=0. ymin=ë 10.
ymax=10.
yscl=1.

Important: Change tstep from .1


(its default) to 1. Otherwise,
BldData calculates too many
rows for the data variable and a
Dimension error occurs.

Note: You do not need to 7. In the Home screen ( " ), BldData rklog
graph the equation before use BldData to create a data
using BldData. For more
information about BldData, variable containing the RK
refer to Appendix A. graphing points.
8. Return to the Y= Editor,
press ¥ Í, and set
Solution Method = EULER.

Chapter 11: Differential Equation Graphing 181

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 181 of 26
9. Return to the Home screen, BldData eulerlog
and use BldData to create a
data variable containing the
Euler graphing points.
Note: errorlog lets you 10. Use the Data/Matrix Editor
combine the data in rklog ( O 6 3 ) to create a new
and eulerlog so that you can
view the two sets of data data variable named errorlog.
side by side.

Note: rklog[1] and rklog[2] 11. In this new data variable, c1=rklog[1] or
refer to column 1 and 2 in define the c1, c2, and c3 c1=eulerlog[1]
rklog, respectively. Likewise c2=rklog[2]
with eulerlog[2]. column headers to refer to
data in rklog and eulerlog. c3=
Tip: Scroll through the data eulerlog[2]
Also, enter column titles as
variable to see how the RK shown.
and Euler values differ for
the same time value. To define a column header,
move the cursor to that
column, press †, type the
reference expression (such
as rklog[1] for c1), and press
¸.
12. In the Data/Matrix Editor,
press „. Then press ƒ and
define Plot 1 for the RK data,
as shown to the right.

13. Define Plot 2 for the Euler Plot Type=xyline


Mark=Cross
data. Use the values shown x=c1
to the right. y=c3

14. Return to the Y= Editor,


press 3, and set
Graph = FUNCTION.
Note: To see how to use 15. The exact solution to the
deSolve() to find this exact, differential equation is given
general solution, refer to
page 184. below. Enter it as y1.
y1 = (100ù e ^(x/10))/(e ^(x/10)+9)

You can use C to scroll up to see


Plot 1 and Plot 2.

182 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 182 of 26
16. In the Window Editor, set xmin=ë 10. ymin=ë 10. xres=2.
xmax=100. ymax=120.
the Window variables. xscl=10. yscl=10.

Note: The fuzzy line on the 17. Display the Graph screen
graph indicates differences ( ¥ % ).
between the RK and Euler
values.

18. In the Window Editor, set the xmin=39.7 ymin=85.5 xres=2.


xmax=40.3 ymax=86.
Window variables to zoom in xscl=.1 yscl=.1
so that you can examine the
differences in more detail.
Euler (Plot 2)
19. Return to the Graph screen. RK (Plot 1)

20. Press … to trace, and then


press C or D until y1 is
selected. (1 shows in upper
right corner.) Then enter 40.

Exact solution (y1)

y1 is selected when 1 shows here.

By moving the trace cursor to trace each solution to xc = 40, you can
find that:
¦ The exact solution (y1) is 85.8486, rounded to six digits.
¦ The RK solution (Plot 1) is 85.8952.
¦ The Euler solution (Plot 2) is 85.6527.
You can also use the Data/Matrix Editor to open the errorlog data
variable and scroll to time = 40.

Chapter 11: Differential Equation Graphing 183

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 183 of 26
Example of the deSolve( ) Function

The deSolve() function lets you solve many 1st- and 2nd-
order ordinary differential equations exactly.

Example For a general solution, use the following syntax. For a particular
solution, refer to Appendix A.

deSolve(1stOr2ndOrderODE, independentVar, dependentVar)

Using the logistic 1st-order differential equation from the example on


page 164, find the general solution for y with respect to t.
Tip: For maximum deSolve(y' = 1/1000 yù (100ì y),t,y)
accuracy, use 1/1000
instead of .001. A floating- Do not use implied multiplication between the
point number can introduce variable and parentheses. If you do, it will be
round-off errors. treated as a function call.
For ', type 2 È.
Note: This example does
not involve graphing, so you Before using deSolve(), clear any existing t and y variables.
can use any Graph mode. Otherwise, an error occurs.
1. In the Home screen ( " ),
use deSolve() to find the
general solution.

@1 represents a constant. You may


get a different constant (@2, etc.).

2. Use the solution to define a function.


a. Press C to highlight the solution in the history area. Then
press ¸ to autopaste it into the entry line.
Tip: Press 2 A to move to b. Insert the Define
the beginning of the entry instruction at the
line.
beginning of the line.
Then press ¸.

Note: If you got a different 3. For an initial condition y=10


constant (@2, etc.), solve with t=0, use solve() to find
for that constant.
the @1 constant.
For @, type
¥ §.

4. Evaluate the general solution


(y) with the constant
@1=9/100 to obtain the
particular solution shown.

You can also use deSolve() to solve this problem directly. Enter:
deSolve(y' = 1/1000 yù (100ì y) and y(0)=10,t,y)

184 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 184 of 26
Troubleshooting with the Fields Graph Format

If you have difficulties graphing a differential equation, this


section can help you correct the problem. Many problems may
be related to your Fields graph format setting.

Setting the Fields From the Y= Editor, Window


Graph Format Editor, or Graph screen, press
¥ Í.

What Order If the equation is: Valid Fields settings are:


Equation Are You 1st-order SLPFLD or FLDOFF
Graphing?
2nd-order DIRFLD or FLDOFF
(system of two 1st-order equations)
3rd- or higher-order FLDOFF
(system of three or more 1st-order
equations)

Because Fields = SLPFLD is the


default setting, a common error
message is shown to the right.

When you see this or any other error message:


¦ For your order of equation, use the previous table to find the valid
Fields settings. Change to the applicable setting.

¦ For a particular Fields setting, check the following for information


that applies to that setting.

Fields=SLPFLD In the Use † to select one and only one 1st-order equation.
Y= Editor You can enter multiple equations, but only one at a
time can be selected.
The selected equation must not refer to any other
equation in the Y= Editor. For example:
If y1'=y2, an Undefined
variable error occurs when
you graph.
In the Graph If the slope field is drawn but no solution curve is
screen plotted, specify an initial condition as described on
page 172.

Chapter 11: Differential Equation Graphing 185

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 185 of 26
Fields=DIRFLD In the Enter a valid system of two 1st-order equations. For
Y= Editor information about defining a valid system for a 2nd-
order equation, refer to page 174.
Use 2 ‰ Axes to set
Axes = CUSTOM. If Axes =
TIME, an Invalid axes error
occurs when you graph.
If you enter initial conditions in the Y= Editor, the
equations referenced by the custom axes must have
the same number of initial conditions.
Otherwise, a Dimension
error occurs when you
graph.
With custom Set axes that are valid for your system of equations.
axes
Do not select t for either axis. Otherwise, an Invalid
axes error occurs when you graph.
The two axes must refer to different equations in
your system of equations. For example, y1 vs. y2 is
valid, but y1 vs. y1' gives an Invalid axes error.
In the Graph If the direction field is drawn but no curve is plotted,
screen enter initial conditions in the Y= Editor or select one
interactively from the Graph screen as described
starting on page 172. If you did enter initial
conditions, select ZoomFit ( „ j A).
The ncurves Window variable is ignored with DIRFLD.
Default curves are not drawn automatically.
Notes With DIRFLD, the equations referenced by the custom
axes determine which equations are graphed,
regardless of which equations are selected in the
Y= Editor.
If your system of equations refers to t, the direction
field (not the plotted curves) is drawn with respect to
one particular time, which is set by the dtime Window
variable.

186 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 186 of 26
Fields=FLDOFF In the If you enter a 2nd- or higher-order equation, enter it
Y= Editor as a valid system of equations as described on
page 174.
All equations (selected or
not) must have the same
number of initial
conditions. Otherwise, a
Dimension error occurs
when you graph.
You can use 2 ‰ Axes to set Axes = TIME or
CUSTOM.
With custom If X Axis is not t, you must enter at least one initial
axes condition for each equation in the Y= Editor
(whether the equation is selected or not).
Otherwise, a Diff Eq setup
error occurs when you
graph.
In the Graph If no curve is graphed, set an initial condition as
screen described on page 172. If you did enter initial
conditions in the Y= Editor, select ZoomFit
( „ j A).
A 1st-order equation may look different with FLDOFF
than with SLPFLD. This is because FLDOFF uses the
tplot and tmax Window variables (page 169), which
are ignored with SLPFLD.
Notes For 1st-order equations, use FLDOFF and
Axes = Custom to plot axes that are not possible with
SLPFLD. For example, you can plot t vs. y1' (where
SLPFLD plots t vs. y1). If you enter multiple 1st-order
equations, you can plot one equation or its solution
vs. another by specifying them as the axes.

If You Use the Table You can use the Table screen to view the points for a differential
Screen to View equation graph. However, the table may show different equations
Differential than those graphed. The table shows only the selected equations,
Equations regardless of whether those equations will be plotted with your
current Fields and Axes settings.

Chapter 11: Differential Equation Graphing 187

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 187 of 26
188 Chapter 11: Differential Equation Graphing

DIFFEQ.DOC TI-89: Differential Equation Graphing (US English) Joan Terrell Revised: 07/29/98 1:21 PM Printed: 07/29/98 1:21 PM Page 188 of 26
Chapter 12:
Additional Graphing Topics
Preview of Additional Graphing Topics ............................................. 190
Collecting Data Points from a Graph.................................................. 191

12 Graphing a Function Defined on the Home Screen .......................... 192


Graphing a Piecewise Defined Function ............................................ 194
Graphing a Family of Curves ............................................................... 196
Using the Two-Graph Mode ................................................................. 197
Drawing a Function or Inverse on a Graph........................................ 200
Drawing a Line, Circle, or Text Label on a Graph............................. 201
Saving and Opening a Picture of a Graph .......................................... 205
Animating a Series of Graph Pictures................................................. 207
Saving and Opening a Graph Database .............................................. 208

This chapter describes additional features that you can use to


create graphs on the TI-89. This information generally applies to
all Graph mode settings.

This chapter assumes that you already know the fundamental


procedures for defining and selecting functions, setting Window
variables, and displaying graphs as described in Chapter 6: Basic
Function Graphing.

Chapter 12: Additional Graphing Topics 189

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 08/03/98 12:56 PM Printed: 08/03/98 2:29 PM Page 189 of 21
Preview of Additional Graphing Topics

From the Home screen, graph the piecewise defined function: y = ì x when x < 0 and
y = 5 cos(x) when x ‚ 0. Draw a horizontal line across the top of the cosine curve. Then
save a picture of the displayed graph.

Steps Keystrokes Display

1. Display the MODE dialog box. 3


For Graph mode, select FUNCTION. B1
For Angle mode, select RADIAN. DDD
B1
¸

2. Display the Home screen. Use the "


Graph command and the when †22j
Graph when(x<0,ë x,5ù cos(x))
function to specify the piecewise WHENjcX
defined function. 2Â0b·X
† 2 selects Graph from the Other toolbar b5p2XX
menu and automatically adds a space. dd

3. Execute the Graph command, which ¸


automatically displays the Graph
screen.
The graph uses the current Window
variables, which are assumed to be their
standard values („ 6) for this example.

4. Draw a horizontal line across the top 2‰5


of the cosine curve. C (until the line
After you press 2 ‰ 5 , the TI-89 is positioned)
remains in “line” mode until you select a ¸
different operation or press N.

5. Save a picture of the graph. Use PIC1 ƒ2


as the variable name for the picture. B2DD2
Be sure to set Type = Picture. By default, jPICj1
it is set to GDB. ¸¸

6. Clear the drawn horizontal line. 2ˆ1


You can also press † to regraph.

7. Open the saved picture variable to ƒ1


redisplay the graph with the line. B2
Be sure to set Type = Picture. By default, (if not already
it is set to GDB. shown, also set
Variable = pic1)
¸

190 Chapter 12: Additional Graphing Topics

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 190 of 20
Collecting Data Points from a Graph

From the Graph screen, you can store sets of coordinate


values and/or math results for later analysis. You can store the
information as a single-row matrix (vector) on the Home
screen or as data points in a system data variable that can be
opened in the Data/Matrix Editor.

Collecting the 1. Display the graph. (This example shows y1(x)=5ù cos(x).)
Points 2. Display the coordinates or math results you want to collect.
3. Press ¥ · or ¥ b to save the information to the Home screen
or the sysData variable, respectively.
4. Repeat the process as necessary.

Tip: To display coordinates


or math results, trace a
function with … or perform
an ‡ Math operation (such
as Minimum or Maximum).
You can also use the free-
moving cursor.

¥· ¥b

Displayed coordinates are added to Displayed coordinates are stored in a


the Home screen’s history area data variable named sysData,
(but not the entry line) as a which you can open in the
single-row matrix or vector. Data/Matrix Editor.

Tip: Use a split screen to


show a graph and the Home
screen or Data/Matrix Editor
at the same time.

Notes about ¦ When you press ¥ b :


SysData Variable − If sysData does not exist, it is created in the MAIN folder.
− If sysData already exists, new data is appended to the end of
any existing data. Existing titles or column headers (for the
affected columns) are cleared; titles are replaced with the
applicable titles for the new data.
¦ The sysData variable can be cleared, deleted, etc., just as any
other data variable. However, it cannot be locked.
¦ If the Graph screen contains a function or stat plot that
references the current contents of sysData, ¥ b will not operate.

Chapter 12: Additional Graphing Topics 191

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 191 of 20
Graphing a Function Defined on the Home Screen

In many cases, you may create a function or expression on the


Home screen and then decide to graph it. You can copy an
expression to the Y= Editor, or graph it directly from the Home
screen without using the Y= Editor.

What Is the “Native” On the Y= Editor, all functions must be defined in terms of the
Independent current graph mode’s “native” independent variable.
Variable?
Graph Mode Native Independent Variable
Function x
Parametric t
Polar q
Sequence n
3D x, y
Differential Equation t

Copying from the If you have an expression on the Home screen, you can use any of
Home Screen to the the following methods to copy it to the Y= Editor.
Y= Editor
Method Description
Copy and 1. Highlight the expression on the Home screen.
Tip: Use ¥ 6 or paste Press ƒ and select 5:Copy.
¥ 7 to copy or paste,
respectively, instead of ƒ 5 2. Display the Y= Editor, highlight the desired
or ƒ 6. function, and press ¸.
3. Press ƒ and select 6:Paste. Then press ¸.

Tip: To copy an expression § Store the expression to a Y= function name.


from the Home screen’s
history area to the entry line, 2x^3+3x^2ì 4x+12! y1(x)
use the auto-paste feature
or copy and paste. Use the complete function
name: y1(x), not just y1.

Tip: Define is available from Define Define the expression as a user-defined Y= function.
the Home screen’s command
† toolbar menu. Define y1(x)=2x^3+3x^2ì 4x+12

Tip: 2 £ is useful if an 2£ If the expression is already stored to a variable:


expression is stored to a
variable or function that 1. Display the Y= Editor, highlight the desired
does not correspond to the function, and press ¸.
Y= Editor, such as a1 or
f1(x). 2. Press 2 £. Type the variable name that
contains the expression, and press ¸ twice.
Important: To recall a function variable such as
f1(x), type only f1, not the full function name.
3. Press ¸ to save the recalled expression in the
Y= Editor’s function list.

192 Chapter 12: Additional Graphing Topics

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 192 of 20
Graphing Directly The Graph command lets you graph an expression from the Home
from the Home screen without using the Y= Editor. Unlike the Y= Editor, Graph lets
Screen you specify an expression in terms of any independent variable,
regardless of the current graphing mode.

If the expression is in Use the Graph command


terms of: as shown in this example:
Tip: Graph is available from The native
the Home screen’s graph 1.25xù cos(x)
independent variable
† toolbar menu. For function graphing,
x is the native variable.

A non-native
Note: Graph uses the graph 1.25aù cos(a),a
current Window variable
independent variable
Specify the independent
settings. variable; otherwise, you
may get an error.

Tip: To create a table from Graph does not work with sequence graphs or differential equations.
the Home screen, use the For parametric, polar, and 3D graphs, use the following variations.
Table command. It is similar
to Graph. Both share the In PARAMETRIC graphing mode: Graph xExpr, yExpr, t
same expressions.
In POLAR graphing mode: Graph expr, q
In 3D graphing mode: Graph expr, x, y

Graph does not copy the expression to the Y= Editor. Instead, it


temporarily suspends any functions selected on the Y= Editor. You
can trace, zoom, or show and edit Graph expressions on the Table
screen, just the same as Y= Editor functions.

Clearing the Graph Each time you execute Graph, the new expression is added to the
Screen existing ones. To clear the graphs:
¦ Execute the ClrGraph command (available from the Home
screen’s † Other toolbar menu).
— or —
¦ Display the Y= Editor. The next time you display the Graph
screen, it will use the functions selected on the Y= Editor.

Extra Benefits of You can define a user-defined function in terms of any independent
User-Defined variable. For example:
Functions Defined in terms of “aa”.

define f1(aa)=1.25aaù cos(aa)


graph f1(x)

Refers to the function by using the


and: native independent variable.

define f1(aa)=1.25aaù cos(aa)


f1(x)! y1(x)

Chapter 12: Additional Graphing Topics 193

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 193 of 20
Graphing a Piecewise Defined Function

To graph a piecewise function, you must first define the


function by specifying boundaries and expressions for each
piece. The when function is extremely useful for two-piece
functions. For three or more pieces, it may be easier to create
a multi-statement, user-defined function.

Using the When To define a two-piece function, use the syntax:


Function when(condition, trueExpression, falseExpression)
Tip: Graph math results For example, suppose you want to graph a function with two pieces.
may vary.

When: Use expression:


x<0 ëx
x‚0 5 cos(x)

In the Y= Editor:
The function is pretty
printed in this form.

Enter the function


in this form.
Tip: To enter when, type it
or use ½.
For three or more pieces, you can use nested when functions.

When: Use expression:


x < ìp 4 sin(x)
x ‚ ì p and x < 0 2x + 6
x‚0 6 ì xñ

In the Y= Editor:

where:

y1(x)=when(x<0,when(x<ë p,4ù sin(x),2x+6),6ì x^2)

This nested function is in effect when x<0.

Nested functions quickly become complex and difficult to visualize.

194 Chapter 12: Additional Graphing Topics

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 194 of 20
Using a Multi- For three or more pieces, you may want to create a multi-statement,
Statement, User- user-defined function.
Defined Function For example, consider the previous three-piece function.

When: Use expression:


x < ìp 4 sin(x)
x ‚ ì p and x < 0 2x + 6
x‚0 6 ì xñ

Note: For information about A multi-statement, user-defined function can have many of the
similarities and differences control and decision-making structures (If, ElseIf, Return, etc.) used
between functions and
programs, refer to in programming. When creating the structure of a function, it may be
Chapter 17. helpful to visualize it first in a block form.
Tip: Graph math results Func
may vary. If x<-p Then Func and EndFunc
must begin and end the
Return 4ù sin(x) function.
ElseIf x>=-p and x<0 Then
Return 2x+6 For information about
Else the individual
Return 6ì x^2 statements, refer to
EndIf Appendix A.
EndFunc

When entering a multi-statement function on the Y= Editor or Home


screen, you must enter the entire function on a single line.
Use a colon (:) to separate each statement.

Func:If x<-p Then:Return 4ù sin(x): ... :EndIf:EndFunc

On the Y= Editor:
Only “Func” is shown
for a multi-statement
function.

Enter a multi-statement
function on one line. Be
sure to include colons.

From the Home From the Home screen, you can also use the Define command to
Screen or a Program create a multi-statement, user-defined function. Refer to page 192 for
other information on copying a function from the Home screen to the
Y= Editor.
From the Program Editor (Chapter 17), you can create a user-defined
function. For example, use the Program Editor to create a function
named f1(xx). In the Y= Editor, set y1(x) = f1(x).

Chapter 12: Additional Graphing Topics 195

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 195 of 20
Graphing a Family of Curves

By entering a list in an expression, you can plot a separate


function for each value in the list. (You cannot graph a family
of curves in SEQUENCE or 3D graphing mode.)

Examples Using the Enter the expression {2,4,6} sin(x) and graph the functions.
Y= Editor
Tip: Graph math results
may vary.

Tip: Enclose list elements in Graphs three functions:


braces (2 [ and 2 \ ) 2 sin(x), 4 sin(x), 6 sin(x)
and separate them with
commas. Enter the expression {2,4,6} sin({1,2,3} x) and graph the functions.

Note: The commas are


shown in the entry line but
not in the function list.
Graphs three functions:
2 sin(x), 4 sin(2x), 6 sin(3x)

Example Using the Similarly, you can use the Graph command from the Home screen or
Graph Command a program as described on page 193.

graph {2,4,6}sin(x)
graph {2,4,6}sin({1,2,3}x)

Simultaneous When the graph format is set for Graph Order = SIMUL, the functions
Graphs with Lists are graphed in groups according to the element number in the list.
For these example functions, the
Tip: To set graph formats, TI-89 graphs three groups.
press ¥ Í from the
Y= Editor, Window Editor, ¦ 2 sin(x), x+4, cos(x)
or Graph screen. ¦ 4 sin(x), 2x+4
¦ 6 sin(x), 3x+4

The functions within each group are graphed simultaneously, but the
groups are graphed sequentially.

When Tracing a Pressing D or C moves the trace cursor to the next or previous
Family of Curves curve in the same family before moving to the next or previous
selected function.

196 Chapter 12: Additional Graphing Topics

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 196 of 20
Using the Two-Graph Mode

In two-graph mode, the TI-89’s graph-related features are


duplicated, giving you two independent graphing calculators.
The two-graph mode is only available in split screen mode. For
more information about split screens, refer to Chapter 14.

Setting the Mode Several mode settings affect the two-graph mode, but only two
settings are required. Both are on Page 2 of the MODE dialog box.
1. Press 3. Then press „ to display Page 2.
2. Set the following
required modes.
¦ Split Screen =
TOP-BOTTOM or
LEFT-RIGHT

¦ Number of Graphs = 2

3. Optionally, you can set the following modes.


Page 1: ¦ Graph = Graph mode for top or left side of the split
Page 2: ¦ Split 1 App = application for top or left side

¦ Split 2 App = application for bottom or right side

¦ Graph 2 = Graph mode for bottom or right side

¦ Split Screen Ratio = relative sizes of the two sides


4. Press ¸ to close the dialog box.

The Two-Graph A two-graph screen is similar to a regular split screen.


Screen
Graph 1: Graph 2:
left or top right or
side bottom side
Thick border
indicates
active graph
side
Graph mode of active graph
Active graph side:
GR#1 or GR#2

Chapter 12: Additional Graphing Topics 197

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 197 of 20
Independent Graph- Both Graph 1 and Graph 2 have independent:
Related Features ¦ Graph modes (FUNCTION, POLAR, etc.). Other modes such as
Angle, Display Digits, etc., are shared and affect both graphs.

¦ Window Editor variables.


¦ Table setup parameters and Table screens.
¦ Graph formats ( ¥ Í ) such as Coordinates, Axes, etc.
¦ Graph screens.
Note: The Y= Editor is ¦ Y= Editors. However, both graphs share common function and
completely independent stat plot definitions.
only when the two sides use
different graphing modes Independent graph-related applications (Y= Editor, Graph screen,
(as described below). etc.) can be displayed on both sides of the screen at the same time.
Non-graph-related applications (Home screen, Data/Matrix Editor,
etc.) are shared and can be displayed on only one side at a time.

The Y= Editor in Even in two-graph mode, there is actually only one Y= Editor, which
Two-Graph Mode maintains a single function list for each Graph mode setting.
However, if both sides use the same graphing mode, each side can
select different functions from that single list.

¦ When both sides use


different graphing modes,
each side shows a
different function list.

¦ When both sides use


the same graphing mode,
Note: If you make a change
on the active Y= Editor each side shows the
(redefine a function, change same function list.
a style, etc.), that change is
not reflected on the inactive − You can use † to
side until you switch to it. select different
functions and stat
plots (indicated by Ÿ)
for each side. Suppose Graph 1 and Graph 2 are
set for function graphing. Although
− If you set a display both sides show the same function
list, you can select (Ÿ) different
style (2 ˆ ) for a functions for graphing.
function, that style is
used by both sides.

198 Chapter 12: Additional Graphing Topics

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 198 of 20
Using a Split Screen For more complete information about split screens, refer to
Chapter 14.
¦ To switch from one graph side to the other, press 2 a (second
function of O ).
Note: You can display non- ¦ To display different applications:
graph-related applications
(such as the Home screen) − Switch to the applicable graph side and display the application
on only one side at a time. as you normally would.
— or —
− Use 3 to change Split 1 App and/or Split 2 App.
¦ To exit two-graph mode:
− Use 3 to set Number of Graphs = 1, or exit the split screen
by setting Split Screen = FULL.
— or —
− Press 2 K twice. This always exits a split screen and
returns to a full-sized Home screen.

Remember that the In two-graph mode, the two sides may appear to be related when, in
Two Sides Are fact, they are not. For example:
Independent

For Graph 1, For Graph 2,


the Y= Editor the polar
lists y(x) graph uses
functions. r(q)
equations
that are not
shown.

From the Home After the two-graph mode is set up, graph-related operations refer to
Screen or a Program the active graph side. For example:

10! xmax

affects either Graph 1 or Graph 2, depending on which is active when


you execute the command.
To switch the active sides, press 2 a or use the switch function,
switch(1) or switch(2).

Chapter 12: Additional Graphing Topics 199

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 199 of 20
Drawing a Function or Inverse on a Graph

For comparison purposes, you may want to draw a function


over your current graph. Typically, the drawn function is some
variation of the graph. You can also draw the inverse of a
function. (These operations are not available for 3D graphs.)

Drawing a Function, Execute DrawFunc, DrawParm, or DrawPol from the Home screen or
Parametric, or Polar a program. You cannot draw a function or equation interactively
Equation from the Graph screen.
DrawFunc expression
DrawParm expression1, expression2 [,tmin] [,tmax] [,tstep]
DrawPol expression [,qmin] [,qmax] [,qstep]

For example:
1. Define y1(x)=.1xò ì 2x+6 on
the Y= Editor, and graph the
function.
Note: 2 ˆ 2 displays the 2. On the Graph screen, press
Home screen and puts 2 ˆ and select
DrawFunc in the entry line.
2:DrawFunc.

3. On the Home screen, specify


DrawFunc y1(x)ì 6
the function to draw.
Tip: To clear the drawn 4. Press ¸ to draw the
function, press † or press function on the Graph
2 ˆ and select
1:ClrDraw. screen.
You cannot trace, zoom, or
perform a math operation on
a drawn function.

Drawing the Inverse Execute DrawInv from the Home screen or a program. You cannot
of a Function draw an inverse function interactively from the Graph screen.
DrawInv expression

For example, use the graph of y1(x)=.1xò ì 2x+6 as shown above.


Note: 2 ˆ 3 displays the 1. On the Graph screen, press 2 ˆ and select 3:DrawInv.
Home screen and puts
DrawInv in the entry line. 2. On the Home screen, specify
DrawInv y1(x)
the inverse function.
Tip: To clear the drawn 3. Press ¸.
inverse from the Graph
screen, press † or press The inverse is plotted as
2 ˆ and select (y,x) instead of (x,y).
1:ClrDraw.

200 Chapter 12: Additional Graphing Topics

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 200 of 20
Drawing a Line, Circle, or Text Label on a Graph

You can draw one or more objects on the Graph screen,


usually for comparisons. For example, draw a horizontal line to
show that two parts of a graph have the same y value. (Some
objects are not available for 3D graphs.)

Clearing All A drawn object is not part of the graph itself. It is drawn “on top of”
Drawings the graph and remains on the screen until you clear it.
From the Graph screen:
Tip: You can also enter ¦ Press 2 ˆ and select
ClrDraw on the Home 1:ClrDraw.
screen’s entry line.
— or —
¦ Press † to regraph.
You can also do anything that causes the Smart Graph feature to
redraw the graph (such as change the Window variables or deselect
a function on the Y= Editor).

Drawing a Point or a From the Graph screen:


Freehand Line 1. Press 2 ‰ and select
1:Pencil.
2. Move the cursor to the
applicable location.

To draw a: Do this:
Point (pixel-sized) Press ¸.
Tip: When drawing a Freehand line Press and hold ¤, and move the cursor to
freehand line, you can move draw the line.
the cursor diagonally.
To quit drawing the line, release ¤.

Note: If you start drawing After drawing the point or line,


on a white pixel, the pencil you are still in “pencil” mode.
draws a black point or line.
If you start on a black pixel, ¦ To continue drawing, move
the pencil draws a white
the cursor to another point.
point or line (which can act
as an eraser). ¦ To quit, press N.

Chapter 12: Additional Graphing Topics 201

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 201 of 20
Erasing Individual From the Graph screen:
Parts of a Drawing 1. Press 2 ‰ and select 2:Eraser. The cursor is shown as a small
Object box.
2. Move the cursor to the applicable location.
To erase: Do this:
Note: These techniques Area under the box Press ¸.
also erase parts of graphed
functions. Along a freehand line Press and hold ¤, and move the cursor. To
quit, release ¤.

After erasing, you are still in


“eraser” mode.
¦ To continue erasing, move
the box cursor to another
location.
¦ To quit, press N.

Drawing a Line From the Graph screen:


Between Two Points 1. Press 2 ‰ and select 3:Line.
2. Move the cursor to the 1st point, and press ¸.
Tip: Use 2 to move the 3. Move to the 2nd point, and press ¸. (As you move, a line
cursor in larger increments; extends from the 1st point to the cursor.)
2 B, etc.
After drawing the line, you are
still in “line” mode.
¦ To continue drawing another
line, move the cursor to a
new 1st point.
¦ To quit, press N.

Drawing a Circle From the Graph screen:


1. Press 2 ‰ and select 4:Circle.
Tip: Use 2 to move the 2. Move the cursor to the center
cursor in larger increments; of the circle, and press
2 B, etc.
¸.
3. Move the cursor to set the
radius, and press ¸.

202 Chapter 12: Additional Graphing Topics

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 202 of 20
Drawing a From the Graph screen:
Horizontal or 1. Press 2 ‰ and select 5:Horizontal or 6:Vertical. A horizontal or
Vertical Line vertical line and a flashing cursor are displayed on the screen.
If the line is initially displayed on an axis, it may be difficult to
see. However, you can easily see the flashing cursor.
Tip: Use 2 to move the 2. Use the cursor pad to move the line to the appropriate position.
cursor in larger increments; Then press ¸.
2 B, etc.
After drawing the line, you are
still in “line” mode.
¦ To continue, move the cursor
to another location.
¦ To quit, press N.

Drawing a Tangent To draw a tangent line, use the ‡ Math toolbar menu instead of
Line 2 ˆ or 2 ‰. From the Graph screen:
1. Press ‡ and select A:Tangent.
2. As necessary, use D and C to select the applicable function.
Tip: To set the tangent 3. Move the cursor to the
point, you can also type its x tangent point, and press
value and press ¸.
¸.
The tangent line is drawn,
and its equation is displayed.

Drawing a Line To draw a line through a specified point with a specified slope,
Based on a Point execute the DrawSlp command from the Home screen or a program.
and a Slope Use the syntax:
DrawSlp x, y, slope

You can also access DrawSlp from the Graph screen.


1. Press 2 ˆ and select 6:DrawSlp. This switches to the Home
screen and puts DrawSlp in the entry line.
2. Complete the command, and
DrawSlp 4,0,6.37
press ¸.
The TI-89 automatically
switches to the Graph screen
and draws the line.

Chapter 12: Additional Graphing Topics 203

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 203 of 20
Typing Text Labels From the Graph screen:
1. Press 2 ‰ and select 7:Text.
Tip: The text cursor 2. Move the text cursor to the location where you want to begin
indicates the upper-left typing.
corner of the next character
you type. 3. Type the text label.
After typing the text, you are
still in “text” mode.
¦ To continue, move the cursor
to another location.
¦ To quit, press ¸ or N.

From the Home Commands are available for drawing any of the objects described in
Screen or a Program this section. There are also commands (such as PxlOn, PxlLine, etc.)
that let you draw objects by specifying exact pixel locations on the
screen.
For a list of the available drawing commands, refer to “Drawing on
the Graph Screen” in Chapter 17.

204 Chapter 12: Additional Graphing Topics

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 204 of 20
Saving and Opening a Picture of a Graph

You can save an image of the current Graph screen in a


PICTURE (or PIC) variable. Then, at a later time, you can open
that variable and display the image. This saves the image
only, not the graph settings used to produce it.

Saving a Picture of A picture includes any plotted functions, axes, tick marks, and drawn
the Whole Graph objects. The picture does not include lower and upper bound
Screen indicators, prompts, or cursor coordinates.
Display the Graph screen as you
want to save it. Then:
1. Press ƒ and select
2:Save Copy As.

2. Specify the type (Picture),


folder, and a unique variable
name.
3. Press ¸. After typing in an
input box such as Variable, you Important: By default, Type = GDB
(for graph database). You must set
must press ¸ twice. Type = Picture.

Saving a Portion of You can define a rectangular box that encloses only the portion of
the Graph Screen the Graph screen that you want to save.
1. Press 2 ‰ and select
8:Save Picture.
Note: You cannot save a A box is shown around the
portion of a 3D graph. outer edge of the screen.

Tip: Use D and C to move 2. Set the 1st corner of the box
the top or bottom, and use by moving its top and left
B and A to move the sides.
sides. Then press ¸.
3. Set the 2nd corner by moving
the bottom and right sides.
Then press ¸.
4. Specify the folder and a
unique variable name.
5. Press ¸. After typing in an
input box such as Variable, you
must press ¸ twice. Note: When saving a portion of a
graph, Type is automatically fixed
as Picture.

Chapter 12: Additional Graphing Topics 205

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 205 of 20
Opening a Graph When you open a graph picture, it is superimposed over the current
Picture Graph screen. To display only the picture, use the Y= Editor to
deselect any other functions before opening the graph picture.
From the Graph screen:
1. Press ƒ and select 1:Open.
2. Select the type (Picture),
folder, and variable that
Note: If a variable name is contain the graph picture you
not shown on the dialog want to open.
box, there are no graph
pictures in the folder. 3. Press ¸. Important: By default, Type = GDB
(for graph database). Be sure to set
Type = Picture.

A graph picture is a drawing object. You cannot trace any curve on a


picture.

For Pictures Saved When you press ƒ and select 1:Open, the picture is superimposed
from a Portion of starting at the upper-left corner of the Graph screen. If the picture
the Graph Screen was saved from a portion of the Graph screen (page 205), it may
appear shifted from the underlying graph.
To specify which screen pixel to use as the upper-left corner, you
can use the commands listed in “From a Program or the Home
Screen” below.

Deleting a Graph Unwanted Picture variables take up calculator memory. To delete a


Picture variable, use the VAR-LINK screen ( 2 ° ) as described in
Chapter 21.

From a Program or To save (store) and open (recall) a graph picture, use the StoPic,
the Home Screen RclPic, AndPic, XorPic, and RplcPic commands as described in
Appendix A.
To display a series of graph pictures as an animation, use the
CyclePic command. For an example, refer to page 207.

206 Chapter 12: Additional Graphing Topics

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 206 of 20
Animating a Series of Graph Pictures

As described earlier in this chapter, you can save a picture of


a graph. By using the CyclePic command, you can flip
through a series of graph pictures to create an animation.

CyclePic Command Before using CyclePic, you must have a series of graph pictures that
have the same base name and are sequentially numbered starting
with 1 (such as pic1, pic2, pic3, . . . ).
To cycle the pictures, use the syntax:
CyclePic picNameString, n [,wait] [,cycles] [,direction]
1 = forward/circular cycle
ë1= forward/backward
# of times to repeat cycle
seconds between pictures
# of pictures to cycle
base name of pictures in quotes, such as "pic"

Example This example program (named cyc) generates 10 views of a 3D


graph, with each view rotated 10¡ further around the Z axis. For
information about each command, refer to Appendix A. For
information about using the Program Editor, refer to Chapter 17.

Program Listing Every Other Graph from Program


:cyc()
:Prgm
Comments start with ©. :local i
For ©, press ¥ d. :©Set mode and Window variables
:setMode(“graph”,”3d”)
For f, press ¥ c j :70! eyef
F(or press 2 ¿ and :ë 10! xmin
use the Greek menu). :10! xmax
:14! xgrid
:ë 10! ymin
:10! ymax
:14! ygrid
:ë 10! zmin
:10! zmax
:1! zscl
:©Define the function
:(x^3ù yì y^3ù x)/390! z1(x,y)
:©Generate pics and rotate
:For i,1,10,1
: iù 10! eyeq
: DispG
For #, press ½ : StoPic #("pic" & string(i))
and select it :EndFor
from the list; :©Display animation
for &, press 2 p. :CyclePic "pic",10,.5,5,ë 1
:EndPrgm

Note: Due to its complexity, After entering this program on the Program Editor, go to the Home
this program takes several screen and enter cyc().
minutes to run.

Chapter 12: Additional Graphing Topics 207

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 207 of 20
Saving and Opening a Graph Database

A graph database is the set of all elements that define a


particular graph. By saving a graph database as a GDB
variable, you can recreate that graph at a later time by opening
its stored database variable.

Elements in a Graph A graph database consists of:


Database ¦ Mode settings (3 ) for Graph, Angle, Complex Format, and
Split Screen (only if you are using the two-graph mode).
Note: In two-graph mode, ¦ All functions in the Y= Editor ( ¥ # ), including display styles
the elements for both and which functions are selected.
graphs are saved in a single
database. ¦ Table parameters ( ¥ & ), Window variables ( ¥ $ ), and
graph formats ( ¥ Í or ƒ 9 ).
A graph database does not include drawn objects or stat plots.

Saving the Current From the Y= Editor, Window Editor, Table screen, or Graph screen:
Graph Database 1. Press ƒ and select
2:Save Copy As.
2. Specify the folder and a
unique variable name.
Note: If you start from the Graph
3. Press ¸. After typing in an screen, be sure to use Type = GDB .
input box such as Variable, you
must press ¸ twice.

Opening a Graph Caution: When you open a graph database, all information in the
Database current database is replaced. You may want to store the current
graph database before opening a stored database.
From the Y= Editor, Window Editor, Table screen, or Graph screen:
1. Press ƒ and select 1:Open.
2. Select the folder and variable
that contain the graph
database you want to open.
Note: If you start from the Graph
3. Press ¸. screen, be sure to use Type=GDB .

Deleting a Graph Unused GDB variables take up calculator memory. To delete them,
Database use the VAR-LINK screen ( 2 ° ) described in Chapter 21.

From a Program or You can save (store) and open (recall) a graph database by using the
the Home Screen StoGDB and RclGDB commands as described in Appendix A.

208 Chapter 12: Additional Graphing Topics

ADDGR.DOC TI-89: Additional Graphing Tools (US English) Joan Terrell Revised: 07/29/98 1:23 PM Printed: 07/29/98 1:25 PM Page 208 of 20
Chapter 13:
Tables
Preview of Tables.................................................................................. 210
Overview of Steps in Generating a Table ........................................... 211

13 Setting Up the Table Parameters......................................................... 212


Displaying an Automatic Table............................................................ 214
Building a Manual (Ask) Table ............................................................ 217

Previously, in Chapter 6: Basic Function Graphing, you learned


how to define and graph a function.
By using a table, you can display a defined function in a tabular
form.
Y= Editor shows an
algebraic representation.

Note: Tables are not


available in 3D Graph mode.

Table screen shows a Graph screen shows a


numeric representation. graphic representation.

The table lists a series of values for the independent variable and
shows the corresponding value of the dependent variable.

Independent variable

y(x) = x3 ì 2x

Dependent variable

Chapter 13: Tables 209

TABLES.DOC TI-89: Tables (U.S. English) Joan Terrell Revised: 08/03/98 1:05 PM Printed: 08/03/98 2:30 PM Page 209 of 10
Preview of Tables

Evaluate the function y=x 3ì 2x at each integer between ë 10 and 10. How many sign
changes are there, and where do they occur?

Steps Keystrokes Display

1. Display the MODE dialog box. For the 3


Graph mode, select FUNCTION. B1
¸

2. Display and clear the Y= Editor. ¥#


Then define y1(x) = x 3 – 2x. ƒ8¸
¸
XZ3|2X
¸

3. Set the table parameters to: ¥&


tblStart = ë 10 ·10
@tbl = 1 D1
Graph < - > Table = OFF DB1
Independent = AUTO DB1¸

4. Display the Table screen. ¥'

5. Scroll through the table. Notice that D and C


y1 changes sign at x = ë 1, 1, and 2. as necessary
To scroll one page at a time, use
2 D and 2 C.

6. Zoom in on the sign change between „


x = ë 2 and x = ë 1 by changing the ·2
table parameters to: D.1
tblStart = ë 2 ¸¸
@tbl = .1

210 Chapter 13: Tables

TABLES.DOC TI-89: Tables (U.S. English) Joan Terrell Revised: 07/29/98 1:27 PM Printed: 07/29/98 1:28 PM Page 210 of 10
Overview of Steps in Generating a Table

To generate a table of values for one or more functions, use


the general steps shown below. For specific information about
setting table parameters and displaying the table, refer to the
following pages.

Generating a Table
Set Graph mode and,
Note: Tables are not if necessary,
available in 3D Graph mode. Angle mode (3).

Define functions on
Tip: For information on Y= Editor (¥ #).
defining and selecting
functions with the Select (†) which
Y= Editor, refer to defined functions to
Chapter 6. display in the table.

Tip: You can specify: Set up the initial


• An automatic table table parameters
− Based on initial values. (¥ &).
− That matches a graph.
• A manual (ask) table.

Display the table


(¥ ').

Exploring the Table From the Table screen, you can:


¦ Scroll through the table to see values on other pages.
¦ Highlight a cell to see its full value.
¦ Change the table’s setup parameters. By changing the starting or
incremental value used for the independent variable, you can
zoom in or out on the table to see different levels of detail.
¦ Change the cell width.
¦ Edit selected functions.
¦ Build or edit a manual table to show only specified values of the
independent variable.

Chapter 13: Tables 211

TABLES.DOC TI-89: Tables (U.S. English) Joan Terrell Revised: 07/29/98 1:27 PM Printed: 07/29/98 1:28 PM Page 211 of 10
Setting Up the Table Parameters

To set up the initial parameters for a table, use the TABLE


SETUP dialog box. After the table is displayed, you can also
use this dialog box to change the parameters.

Displaying the To display the TABLE SETUP dialog box, press ¥ &. From the
TABLE SETUP Table screen, you can also press „.
Dialog Box

Setup Parameter Description


Note: The table initially tblStart If Independent = AUTO and Graph < - > Table = OFF,
starts at tblStart, but you this specifies the starting value for the independent
can use C to scroll to prior
values.
variable.
@tbl If Independent = AUTO and Graph < - > Table = OFF,
this specifies the incremental value for the
independent variable. @tbl can be positive or
negative, but not zero.
Graph < - > Table If Independent = AUTO:
OFF — The table is based on the values you enter
for tblStart and @tbl.
ON — The table is based on the same independent
variable values that are used to graph the functions
on the Graph screen. These values depend on the
Window variables set in the Window Editor
(Chapter 6) and the split screen size (Chapter 14).
Independent AUTO —The TI-89 automatically generates a series
of values for the independent variable based on
tblStart, @tbl, and Graph < - > Table.

ASK — Lets you build a table manually by entering


specific values for the independent variable.

212 Chapter 13: Tables

TABLES.DOC TI-89: Tables (U.S. English) Joan Terrell Revised: 07/29/98 1:27 PM Printed: 07/29/98 1:28 PM Page 212 of 10
Which Setup To generate: tblStart @tbl Graph < - > Table Independent
Parameters to Use An automatic table
¦ Based on value value OFF AUTO
initial values
¦ That matches — — ON AUTO
Graph screen
A manual table — — — ASK

“—” means that any value entered for this parameter is ignored for
the indicated type of table.
In SEQUENCE graphing mode (Chapter 9), use integers for tblStart
and @tbl.

Changing the From the TABLE SETUP dialog box:


Setup Parameters 1. Use D and C to highlight the value or setting to change.
2. Specify the new value or setting.

To change: Do this:
tblStart Type the new value. The existing value is
or erased when you start to type.
@tbl — or —
Press A or B to remove the highlighting.
Then edit the existing value.
Tip: To cancel a menu or Graph < - > Table Press A or B to display a menu of valid
exit the dialog box without or settings. Then either:
saving any changes, press
N instead of ¸. Independent
¦ Move the cursor to highlight the
setting and press ¸.
— or —
¦ Press the number for that setting.

3. After changing all applicable values or settings, press ¸ to


save your changes and close the dialog box.

From the Home You can set up a table’s parameters from the Home screen or a
Screen or a Program program. You can:
¦ Store values directly to the system variables tblStart and @tbl.
Refer to “Storing and Recalling Variable Values” in Chapter 2.
¦ Set Graph < - > Table and Independent by using the setTable
function. Refer to Appendix A.

Chapter 13: Tables 213

TABLES.DOC TI-89: Tables (U.S. English) Joan Terrell Revised: 07/29/98 1:27 PM Printed: 07/29/98 1:28 PM Page 213 of 10
Displaying an Automatic Table

If Independent = AUTO on the TABLE SETUP dialog box, a table


is generated automatically when you display the Table screen.
If Graph < - > Table = ON, the table matches the trace values
from the Graph screen. If Graph < - > Table = OFF, the table is
based on the values you entered for tblStart and @tbl.

Before You Begin Define and select the applicable functions on the Y= Editor (¥ # ).
This example uses y1(x) = xò ì x/3.
Then enter the initial table
parameters (¥ & ).

Displaying the To display the Table screen, press ¥ ' or O 5.


Table Screen The cursor initially highlights the cell that contains the starting value
of the independent variable. You can move the cursor to any cell that
contains a value.

First column shows Other columns show corresponding


values of the values of the functions selected in
independent the Y= Editor.
variable.

Tip: You can scroll back Header row shows


from the starting value by names of independent
pressing C or 2 C. variable (x) and
selected functions
(y1).
Entry line shows
full value of
highlighted cell.

To move the cursor: Press:


One cell at a time D, C, B, or A
One page at a time 2 and then D, C, B, or A

The header row and the first column are fixed so that they cannot
scroll off the screen.
¦ When you scroll down or up, the variable and function names are
always visible across the top of the screen.
¦ When you scroll right or left, the values of the independent
variable are always visible along the left side of the screen.

214 Chapter 13: Tables

TABLES.DOC TI-89: Tables (U.S. English) Joan Terrell Revised: 07/29/98 1:27 PM Printed: 07/29/98 1:28 PM Page 214 of 10
Changing the Cell width determines the maximum number of digits and symbols
Cell Width (decimal point, minus sign, and “í ” for scientific notation) that can
be displayed in a cell. All cells in the table have the same width.
To change the cell width from the
Table screen:
Note: By default, the cell 1. Press ¥ Í or ƒ 9.
width is 6.
2. Press B or A to display a menu
of valid widths (3 – 12).
3. Move the cursor to highlight a number and press ¸. (For
single-digit numbers, you can type the number and press ¸.)
4. Press ¸ to close the dialog box and update the table.

How Numbers Are Whenever possible, a number is shown according to the currently
Displayed in a Cell selected display modes (Display Digits, Exponential Format, etc.). The
number may be rounded as necessary. However:
Note: If a function is ¦ If a number’s magnitude is too large for the current cell width, the
undefined at a particular number is rounded and shown in scientific notation.
value, undef is displayed in
the cell. ¦ If the cell width is too narrow even for scientific notation, “...” is
shown.
Tip: Use 3 to set the By default, Display Digits = FLOAT 6. With this mode setting, a number
display modes. is shown with up to six digits, even if the cell is wide enough to show
more. Other settings similarly affect a displayed number.

If cell width is:


Full Precision 3 6 9 12
Tip: To see a number in full 1.2345678901 1.2 1.2346 1.23457 1.23457
precision, highlight the cell
and look at the entry line. ë123456.78 ... ë 1.2E5 ë 123457. ë 123457.
.000005 ... 5.Eë 6 .000005 .000005

1.2345678E19 ... 1.2E19 1.2346E19 1.23457E19

ë 1.23456789012Eë 200 ... ... ë 1.2Eë 200 ë 1.2346Eë 200

Note: Depending on display mode settings, some values are


not shown in full precision even when the cell is wide enough.

If Results are A cell shows as much as possible of a complex number (according to


Complex Numbers the current display modes) and then shows “...” at the end of the
displayed portion.
When you highlight a cell containing a complex number, the entry
line shows the real and imaginary parts with a maximum of four
digits each (FLOAT 4).

Chapter 13: Tables 215

TABLES.DOC TI-89: Tables (U.S. English) Joan Terrell Revised: 07/29/98 1:27 PM Printed: 07/29/98 1:28 PM Page 215 of 10
Editing a Selected From a table, you can change a selected function without having to
Function use the Y= Editor.
1. Move the cursor to any cell in the column for that function. The
table’s header row shows the function names (y1, etc.).
2. Press † to move the cursor to the entry line, where the function
is displayed and highlighted.
Tip: You can use this 3. Make any changes, as necessary.
feature to view a function
without leaving the table. ¦ Type the new function. The old function is erased when you
begin typing.
— or —
Tip: To cancel any changes ¦ Press M to clear the old function. Then type the new one.
and return the cursor to the — or —
table, press N instead of
¸. ¦ Press A or B to remove the highlighting. Then edit the
function.
4. Press ¸ to save the edited function and update the table. The
edited function is also saved in the Y= Editor.

If You Want to After generating an automatic table, you can change its setup
Change the Setup parameters as necessary.
Parameters Press „ or ¥ & to display the TABLE SETUP dialog box. Then
make your changes as described on pages 212 and 213.

216 Chapter 13: Tables

TABLES.DOC TI-89: Tables (U.S. English) Joan Terrell Revised: 07/29/98 1:27 PM Printed: 07/29/98 1:28 PM Page 216 of 10
Building a Manual (Ask) Table

If Independent = ASK on the TABLE SETUP dialog box, the


TI-89 lets you build a table manually by entering specific values
for the independent variable.

Displaying the To display the Table screen, press ¥ ' or O 5.


Table Screen If you set Independent = ASK (with ¥ & ) before displaying a table
for the first time, a blank table is displayed. The cursor highlights the
first cell in the independent variable column.

Header row shows names of


independent variable (x) and
selected functions (y1).

Enter a value here.

If you first display an automatic table and then change it to


Independent = ASK, the table continues to show the same values.
However, you can no longer see additional values by scrolling up or
down off the screen.

Entering or Editing You can enter a value in column 1 (independent variable) only.
an Independent 1. Move the cursor to highlight the cell you want to enter or edit.
Variable Value
¦ If you start with a blank table, you can enter a value in
consecutive cells only (row 1, row 2, etc.). You cannot skip
cells (row1, row3).
¦ If a cell in column 1 contains a value, you can edit that value.
Tip: To enter a new value in 2. Press … to move the cursor to the entry line.
a cell, you do not need to
press …. Simply begin 3. Type a new value or expression, or edit the existing value.
typing.
4. Press ¸ to move the value to the table and update the
corresponding function values.
The cursor returns to the entered cell. You can use D to move to the
next row.

Enter values in any


Note: In this example, you numerical order.
can move the cursor to
column 2, but you can enter
values in column 1 only. Enter a new value here.
Shows full value of
highlighted cell.

Chapter 13: Tables 217

TABLES.DOC TI-89: Tables (U.S. English) Joan Terrell Revised: 07/29/98 1:27 PM Printed: 07/29/98 1:28 PM Page 217 of 10
Entering a List in 1. Move the cursor to highlight any cell in the independent variable
the Independent column.
Variable Column 2. Press † to move the cursor to the entry line.
3. Type a series of values, enclosed in braces { } and separated by
commas. For example:
Note: If the independent
variable column contains x={1,1.5,1.75,2}
existing values, they are
shown as a list (which you You can also enter a list variable or an expression that evaluates
can edit).
to a list.
4. Press ¸ to move the values into the independent variable
column. The table is updated to show the corresponding function
values.

Adding, Deleting, To: Do this:


or Clearing Insert a new row Highlight a cell in the specified row and
above a specified row press 2 ˆ. The new row is undefined
(undef) until you enter a value for the
independent variable.
Delete a row Highlight a cell in the row and press ‡.
If you highlight a cell in the independent
variable column, you can also press 0.
Clear the entire table Press ƒ 8. When prompted for
(but not the selected confirmation, press ¸.
Y= functions)

Cell Width and Several factors affect how numbers are displayed in a table. Refer to
Display Formats “Changing the Cell Width” and “How Numbers Are Displayed in a
Cell” on page 215.

From the Home System variable tblZnput contains a list of all independent variable
Screen or a Program values entered in the table, even those not currently displayed.
tblZnput is also used for an automatic table, but it contains only the
independent variable values that are currently displayed.
Before displaying a table, you can store a list of values directly to the
tblZnput system variable.

218 Chapter 13: Tables

TABLES.DOC TI-89: Tables (U.S. English) Joan Terrell Revised: 07/29/98 1:27 PM Printed: 07/29/98 1:28 PM Page 218 of 10
Chapter 14:
Split Screens
Preview of Split Screens....................................................................... 220
Setting and Exiting the Split Screen Mode......................................... 221

14 Selecting the Active Application ......................................................... 223

On the TI-89, you can split the screen to show two applications at
the same time.

For example, it may be helpful to show both the Y= Editor and


the Graph screen so that you can see the list of functions and
how they are graphed.

Chapter 14: Split Screens 219

SPLIT.DOC TI-89:Split Screens (US English) Joan Terrell Revised: 08/03/98 1:06 PM Printed: 08/03/98 2:31 PM Page 219 of 6
Preview of Split Screens

Split the screen to show the Y= Editor and the Graph screen. Then explore the behavior
of a polynomial as its coefficients change.

Steps Keystrokes Display

1. Display the MODE dialog box. 3


For Graph, select FUNCTION. B1
For Split Screen, select LEFT-RIGHT. „B3
For Split 1 App, select Y= Editor. DB2
For Split 2 App, select Graph. DB4¸

2. Clear the Y= Editor and turn off any ƒ8¸


stat data plots. Then define ‡5
y1(x) = .1x 3–2x+6. ¸
A thick border around the Y= Editor .1XZ3|2X
indicates it is active. When active, its entry «6¸
line goes all the way across the display.

3. Select the ZoomStd viewing window, „6


which switches to the Graph screen
and graphs the function.
The thick border is now around the Graph
screen.

4. Switch to the Y= Editor. Then 2a


edit y1(x) to change .1x 3 to .5x 3. C¸
2 a is the second function of O. ABB0
The thick border is around the Y= Editor. 5¸

5. Switch to the Graph screen, which 2a


regraphs the edited function.
The thick border is around the Graph
screen.

6. Switch to the Y= Editor. Then open 2a


the Window Editor in its place. ¥$

7. Open the Home screen. Then exit to a 2K


full-sized Home screen. 2K

220 Chapter 14: Split Screens

SPLIT.DOC TI-89:Split Screens (US English) Joan Terrell Revised: 07/26/98 4:12 PM Printed: 07/29/98 1:21 PM Page 220 of 6
Setting and Exiting the Split Screen Mode

To set up a split screen, use the MODE dialog box to specify


the applicable mode settings. After you set up the split screen,
it remains in effect until you change it.

Setting the Split 1. Press 3 to display the MODE dialog box.


Screen Mode 2. Because the modes related to split screens are listed on the
second page of the MODE dialog box, either:
¦ Use D to scroll down.
— or —
¦ Press „ to display Page 2.
3. Set the Split Screen mode to either of the following settings. For
the procedure used to change a mode setting, refer to Chapter 2.

Split Screen Settings


TOP-BOTTOM
LEFT-RIGHT

When you set Split Screen =


TOP-BOTTOM or LEFT-RIGHT ,
previously dimmed modes
such as Split 2 App become
active.

Setting the Initial Before pressing ¸ to close the


Applications MODE dialog box, you can use the
Split 1 App and Split 2 App modes to
select the applications you want to
use.

Mode Specifies the application in the:


Split 1 App Top or left part of the split screen.
Split 2 App Bottom or right part of the split screen.

Note: In two-graph mode, If you set Split 1 App and Split 2 App to the same application, the TI-89
described in Chapter 12, the exits the split screen mode and displays the application full screen.
same application can be in
both parts of a split screen. You can open different applications after the split screen is
displayed, as described on page 223.

Chapter 14: Split Screens 221

SPLIT.DOC TI-89:Split Screens (US English) Joan Terrell Revised: 07/26/98 4:12 PM Printed: 07/29/98 1:21 PM Page 221 of 6
Other Modes that Mode Description
Affect a Split Screen Number of Graphs Lets you set up and display two
independent sets of graphs.
Note: Leave this set to 1
unless you have read This is an advanced graphing feature as
the applicable section
in Chapter 12. described in “Using the Two-Graph Mode”
in Chapter 12.

Split Screens and The TI-89 has commands that use pixel coordinates to draw lines,
Pixel Coordinates circles, etc., on the Graph screen. The following chart shows how the
Split Screen settings affect the number of pixels available on the
Graph screen.

Tip: For a list of drawing Split 1 App Split 2 App


commands, refer to Split Ratio x y x y
“Drawing on the Graph
Screen” in Chapter 17. FULL N/A 0 – 158 0 – 76 N/A N/A
TOP–BOTTOM 1:1 0 – 154 0 – 34 0 – 154 0 – 34
Note: Due to the border
that indicates the active LEFT–RIGHT 1:1 0 – 76 0 – 72 0 – 76 0 – 72
application, split screens
have a smaller displayable
area than a full screen.

Exiting the Split Method 1: Press 3 to display the MODE dialog box. Then set
Screen Mode Split Screen = FULL. When you press ¸ to close the
dialog box, the full-sized screen shows the application
specified in Split 1 App.
Method 2: Press 2 K twice to display a full-sized Home screen.

When You Turn Off Turning the TI-89 off does not exit the split screen mode.
the TI-89
If the TI-89 is turned off: When you turn the TI-89 on again:
When you press 2 ® The split screen is still in effect, but the
Home screen is always displayed in
place of the application that was active
when you pressed 2 ®.
By the Automatic Power The split screen is just as you left it.
Down (APD) feature, or
when you press ¥ ®.

222 Chapter 14: Split Screens

SPLIT.DOC TI-89:Split Screens (US English) Joan Terrell Revised: 07/26/98 4:12 PM Printed: 07/29/98 1:21 PM Page 222 of 6
Selecting the Active Application

With a split screen, only one of the two applications can be


active at a time. You can easily switch between existing
applications, or you can open a different application.

The Active ¦ The active application is indicated by a thick border.


Application ¦ The toolbar and status line, which are always the full width of the
display, are associated with the active application.
¦ For applications that have an entry line (such as the Home screen
and Y= Editor), the entry line is the full width of the display only
when that application is active.

Toolbar is for Y= Editor.

Thick border indicates


the Y= Editor is active.

Entry line is full width when


Y= Editor is active.

Switching between Press 2 a (second function of O ) to switch from one


Applications application to the other.

Toolbar is for Graph


screen.

Thick border indicates the


Graph screen is active.

Graph screen does not


have an entry line.

Opening a Different Method 1: 1. Use 2 a to switch to the application you want to


Application replace.
2. Use O or ¥ (such as O 1 or ¥ $ ) to
Note: Also refer to “Using select the new application.
2 K to Display the
Home Screen” on page 224. If you select an application that is already displayed, the
TI-89 switches to that application.
Method 2: 1. Press 3 and then „.
2. Change Split 1 App and/or Split 2 App.
Note: In two-graph mode, If you set Split 1 App and Split 2 App to the same
described in Chapter 12, the application, the TI-89 exits the split screen mode and
same application can be in
both parts of a split screen. displays the application full screen.

Chapter 14: Split Screens 223

SPLIT.DOC TI-89:Split Screens (US English) Joan Terrell Revised: 07/26/98 4:12 PM Printed: 07/29/98 1:21 PM Page 223 of 6
Using 2 K to If the Home screen: Pressing 2 K :
Display the Home Is not already displayed Opens the Home screen in place of the
Screen active application.
Is displayed, but is not Switches to the Home screen and makes
Tip: Pressing 2 K twice the active application it the active application.
always exits the split screen
mode. Is the active application Exits the split screen mode and displays
a full-sized Home screen.

When Using a When you select a TOP-BOTTOM split, remember that the entry line
Top-Bottom Split and the toolbar are always associated with the active application.
For example:

Entry line is for the


active Y= Editor, not
the Graph screen.

Note: Both Top-Bottom and


Left-Right splits use the
same methods to select an
application. Toolbar is for the
active Graph screen,
not the Y= Editor.

224 Chapter 14: Split Screens

SPLIT.DOC TI-89:Split Screens (US English) Joan Terrell Revised: 07/26/98 4:12 PM Printed: 07/29/98 1:21 PM Page 224 of 6
Chapter 15:
Data/Matrix Editor
Preview of the Data/Matrix Editor...................................................... 226
Overview of List, Data, and Matrix Variables .................................... 227

15 Starting a Data/Matrix Editor Session ................................................ 229


Entering and Viewing Cell Values ....................................................... 231
Inserting and Deleting a Row, Column, or Cell ................................. 234
Defining a Column Header with an Expression ................................ 236
Using Shift and CumSum Functions in a Column Header ............... 238
Sorting Columns .................................................................................... 239
Saving a Copy of a List, Data, or Matrix Variable.............................. 240

The Data/Matrix Editor serves two main purposes.


¦ This chapter describes how to use the Data/Matrix Editor to
create and maintain a list, matrix, or data variable.

¦ Chapter 16 describes how to use the Data/Matrix Editor to


perform statistical calculations and graph statistical plots.

Chapter 15: Data/Matrix Editor 225

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 08/03/98 1:04 PM Printed: 08/03/98 2:32 PM Page 225 of 16
Preview of the Data/Matrix Editor

Use the Data/Matrix Editor to create a one-column list variable. Then add a second
column of information. Notice that the list variable (which can have only one column) is
automatically converted into a data variable (which can have multiple columns).

Steps Keystrokes Display

1. Start the Data/Matrix Editor and O63


create a new list variable named B3
TEMP. DD2™
TEMPj
¸¸

2. Enter a column of numbers. Then 1¸


move the cursor up one cell (just to 2¸
see that a highlighted cell’s value is 3¸
shown on the entry line). 4¸
LIST is shown in the upper-left corner to 5¸
indicate a list variable. 6¸
You can use D instead of ¸ to enter C
information in a cell.

3. Move to column 2, and define its B


column header so that it is twice the †
value of column 1. 2pjC1
DATA is shown in the upper-left corner to ¸
indicate that the list variable was
converted to a data variable.

Œ means the cell is in a defined column.


4. Move to the column 2 header cell to 2C
show its definition in the entry line. C
When the cursor is on the header cell, you
do not need to press † to define it. Simply
begin typing the expression.

5. Go to the Home screen, and then "


return to the current variable. O61

6. Clear the contents of the variable. ƒ8¸


Simply clearing the data does not convert
the data variable back into a list variable.

Tip: If you don’t need to save the current variable, use it as a scratchpad. The next time you need
a variable for temporary data, clear the current variable and re-use it. This lets you enter
temporary data without creating a new variable each time, which uses up memory.

226 Chapter 15: Data/Matrix Editor

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 226 of 16
Overview of List, Data, and Matrix Variables

To use the Data/Matrix Editor effectively, you must understand


list, data, and matrix variables.

List Variable A list is a series of items (numbers, expressions, or character strings)


that may or may not be related. Each item is called an element. In the
Data/Matrix Editor, a list variable:
Note: If you enter more than ¦ Is shown as a single column of Column title
one column of elements in a elements, each in a separate cell. and header
list variable, it is converted cells are not
saved as
automatically into a data ¦ Must be continuous; blank or part of the
variable.
empty cells are not allowed list.
within the list.
¦ Can have up to 999 elements.
Tip: After creating a list in On the Home screen (or anywhere else you can use a list), you can
the Data/Matrix Editor, you enter a list as a series of elements enclosed in braces { } and
can use the list in any
application (such as the separated by commas.
Home screen).
Although you must use
commas to separate
elements on the entry
line, spaces separate the
elements in the history
area.
To refer to a specified
list1[1]
element in a list, use the
format shown to the Element number
(or index number)
right.
Name of list variable

Data Variable A data variable is essentially a collection of lists that may or may not
be related. In the Data/Matrix Editor, a data variable:
¦ Can have up to 99
columns.
Note: For stat calculations, ¦ Can have up to 999
columns must have the elements in each
same length.
column. Depending on
the kind of data, all
columns may not have
to be the same length.
¦ Must have continuous columns; blank or empty cells are not
allowed within a column.

Chapter 15: Data/Matrix Editor 227

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 227 of 16
Data Variable From the Home screen
NewData data1,list1,list2
(Continued) or a program, you can
use the NewData Names of existing
command to create a list variables
data variable that Name of data variable
to create
consists of existing lists.
Although you cannot Name of data variable
directly display a data Column number
variable on the Home
screen, you can display data1[1]
a specified column or (data1[1])[1]
element.
Element number in the
column
Column number
Displays column 1 of the variable data1.
For example:

Displays element 1 in column 1


of the variable data1.

Matrix Variable A matrix is a rectangular array of elements. When you create a


matrix in the Data/Matrix Editor, you must specify the number of
rows and columns (although you can add or delete rows and
columns later). In the Data/Matrix Editor, a matrix variable:
¦ Looks similar to a data variable,
but all columns must have the
same length.
¦ Is initially created with 0 in each
cell. You can then enter the Shows the size of the
matrix.
applicable value in place of 0.

Tip: After creating a matrix From the Home screen or a row 1 row 2
in the Data/Matrix Editor, program, you can use § to
you can use the matrix in [[1,2,3][4,5,6]]! mat1
any application (such as the store a matrix with either of the [1,2,3;4,5,6]! mat1
Home screen). equivalent methods shown to
the right. row 1 row 2

Note: Use brackets to refer Although you enter the matrix as


to a specific element in a shown above, it is pretty printed in
matrix. For example, enter
mat1[2,1] to access the 1st the history area in traditional
element in the 2nd row. matrix form.

228 Chapter 15: Data/Matrix Editor

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 228 of 16
Starting a Data/Matrix Editor Session

Each time you start the Data/Matrix Editor, you can create a
new variable, resume using the current variable (the variable
that was displayed the last time you used the Data/Matrix
Editor), or open an existing variable.

Creating a New 1. Press O and then select


Data, Matrix, or List 6:Data/Matrix Editor.
Variable 2. Select 3:New.

3. Specify the applicable


information for the new
variable.

Item Lets you:


Type Select the type of variable to
create. Press B to display a
menu of available types.
Folder Select the folder in which the new variable will
be stored. Press B to display a menu of existing
folders. For information about folders, refer to
Chapter 5.
Note: If you do not type a Variable Type a new variable name.
variable name, the TI-89 will
display the Home screen. If you specify a variable that already exists, an
error message will be displayed when you press
¸. When you press N or ¸ to
acknowledge the error, the NEW dialog box is
redisplayed.
Row dimension If Type = Matrix,
and type the number
Col dimension of rows and
columns in the
matrix.

4. Press ¸ (after typing in an input box such as Variable, press


¸ twice) to create and display an empty variable in the
Data/Matrix Editor.

Chapter 15: Data/Matrix Editor 229

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 229 of 16
Using the Current You can leave the Data/Matrix Editor and go to another application
Variable at any time. To return to the variable that was displayed when you
left the Data/Matrix Editor, press O 6 and select 1:Current.

Creating a New From the Data/Matrix Editor:


Variable from the 1. Press ƒ and select 3:New.
Data/Matrix Editor
2. Specify the type, folder, and
variable name. For a matrix,
also specify the number of
rows and columns.

Opening Another You can open another variable at any time.


Variable 1. From the Data/Matrix Editor, press ƒ and select 1:Open.
— or —
From any application, press O 6 and select 2:Open.
Note: Variable shows the 2. Select the type, folder, and
first existing variable in variable to open.
alphabetic order. If there are
no existing variables, 3. Press ¸.
nothing is displayed.

Note about Because all Data/Matrix Editor variables are saved automatically,
Deleting a Variable you can accumulate quite a few variables, which take up memory.
To delete a variable, use the VAR-LINK screen ( 2 ° ). For
information about VAR-LINK, refer to Chapter 21.

230 Chapter 15: Data/Matrix Editor

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 230 of 16
Entering and Viewing Cell Values

If you create a new variable, the Data/Matrix Editor is initially


blank (for a list or data variable) or filled with zeros (for a
matrix). If you open an existing variable, the values in that
variable are displayed. You can then enter additional values or
edit the existing ones.

The Data/Matrix A blank Data/Matrix Editor screen is shown below. When the screen
Editor Screen is displayed initially, the cursor highlights the cell at row 1, column1.

Variable type

Column headers
Tip: Use the title cell at the
very top of each column to Row numbers
identify the information in
that column.
Row and column
number of
highlighted cell
Column title cells, used to type
a title for each column
When values are entered, the entry line shows the full value of the
highlighted cell.

Entering or Editing You can enter any type of expression in a cell (number, variable,
a Value in a Cell function, string, etc.).
1. Move the cursor to highlight the cell you want to enter or edit.
Tip: To enter a new value, 2. Press ¸ or … to move the cursor to the entry line.
you can start typing without
pressing ¸ or … first. 3. Type a new value or edit the existing one.
However, you must use
¸ or … to edit an 4. Press ¸ to enter the value into the highlighted cell.
existing value.
When you press ¸, the cursor automatically moves to highlight
the next cell so that you can continue entering or editing values.
However, the variable type affects the direction that the cursor
moves.

Variable Type After ¸, the cursor moves:


Note: To enter a value from List or data Down to the cell in the next row.
the entry line, you can also
use D or C. Matrix Right to the cell in the next column. From the last
cell in a row, the cursor automatically moves to
the first cell in the next row. This lets you enter
values for row1, row2, etc.

Chapter 15: Data/Matrix Editor 231

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 231 of 16
Scrolling through To move the cursor: Press:
the Editor One cell at a time D, C, B, or A
One page at a time 2 and then D, C, B, or A
Go to row 1 in the current ¥ C or
column or to the last row ¥D
that contains data for any
column on the screen,
respectively. If the cursor is
in or past that last row, ¥
D goes to row 999.
Go to column 1 or to the ¥ A or
last column that contains ¥ B
data, respectively. If the
cursor is in or past that last
column, ¥ B goes to
column 99.

When you scroll down/up, the header row remains at the top of the
screen so that the column numbers are always visible. When you
scroll right/left, the row numbers remain on the left side of the
screen so that they are always visible.

How Rows and When you enter a value in a cell, the cursor moves to the next cell.
Columns Are Filled However, you can move the cursor to any cell and enter a value. If
Automatically you leave gaps between cells, the TI-89 handles the gaps
automatically.
¦ In a list variable, a cell in the gap is undefined until you enter a
value for the cell.

Note: If you enter more than


one column of elements in a
list variable, it is converted
automatically into a data &
variable.

¦ In a data variable, gaps in a column are handled the same as a list.


However, if you leave a gap between columns, that column is
blank.

&

232 Chapter 15: Data/Matrix Editor

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 232 of 16
¦ In a matrix variable, when you enter a value in a cell outside the
current boundaries, additional rows and/or columns are added
automatically to the matrix to include the new cell. Other cells in
the new rows and/or columns are filled with zeros.

Note: Although you specify


the size of a matrix when &
you create it, you can easily
add additional rows and/or
columns.

Changing the The cell width affects how many characters are displayed in any cell.
Cell Width To change the cell width in the Data/Matrix Editor:
1. Press ¥ Í or ƒ 9 to display the FORMATS dialog box.
Cell width is the maximum
Tip: Remember, to see a number of characters that can
number in full precision, you be displayed in a cell.
can always highlight the cell
and look at the entry line. All cells have the same cell
width.
2. With the current Cell Width setting highlighted, press B or A to
display a menu of digits (3 through 12).
3. Move the cursor to highlight a number and press ¸. (For
single-digit numbers, you can type the number and press ¸.)
4. Press ¸ to close the dialog box.

Clearing a Column This procedure erases the contents of a column. It does not delete
or all Columns the column.

To clear: Do this:
Note: For a list or data A column 1. Move the cursor to any cell in the column.
variable, a clear column is
empty. For a matrix, a clear 2. Press 2 ˆ and select 5:Clear Column. (This
column contains zeros. item is not available for a matrix.)
All columns Press ƒ and select 8:Clear Editor. When prompted
for confirmation, press ¸ (or N to cancel).

Chapter 15: Data/Matrix Editor 233

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 233 of 16
Inserting and Deleting a Row, Column, or Cell

The general procedures for inserting and deleting a cell, row,


or column are simple and straightforward. You can have up to
99 columns with up to 999 elements in each column.

Note About Column You cannot delete the rows or cells that contain column titles or
Titles and Headers headers. Also, you cannot insert a row or cell before a column title or
header.

Inserting a Row or The new row or column is inserted before the row or column that
Column contains the highlighted cell. In the Data/Matrix Editor:
1. Move the cursor to any cell in the applicable row or column.
2. Press 2 ˆ and select
1:Insert.
3. Select either 2:row or
3:column.
Note: For a list variable, When you insert a row:
inserting a row is the same
as inserting a cell. ¦ In a list or data
variable, the row is
undefined.
&
¦ In a matrix variable,
the row is filled with
zeros.
Note: For a list variable, you When you insert a column:
cannot insert a column
because a list has only one ¦ In a data variable,
column. the column is
blank.
&
¦ In a matrix
variable, the
column is filled
with zeros.
You can then enter values in the undefined or blank cells.

234 Chapter 15: Data/Matrix Editor

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 234 of 16
Inserting a Cell The new cell is inserted before the highlighted cell in the same
column. (You cannot insert a cell into a locked column, which is
defined by a function in the column header. Refer to page 236.) In the
Data/Matrix Editor:
1. Move the cursor to the
applicable cell.
2. Press 2 ˆ and select
1:Insert.
3. Select 1:cell.
Note: For a matrix variable, The inserted cell is
you cannot insert a cell undefined. You can then
because the matrix must
enter a value in the cell.
retain a rectangular shape. &

Deleting a Row or In the Data/Matrix Editor:


Column 1. Move the cursor to any cell in the row or column you want to
delete.
2. Press 2 ˆ and select
2:Delete.
3. Select either 2:row or
3:column.

If you delete a row, any rows below the deleted row are shifted up.
If you delete a column, any columns to the right of the deleted
column are shifted left.

Deleting a Cell In the Data/Matrix Editor:


1. Move the cursor to the cell you want to delete. (You cannot delete
a cell in a locked column, which is defined by a function in the
column header. Refer to page 236.)
Note: For a matrix variable, 2. Press 2 ˆ and select
you cannot delete a cell 2:Delete.
because the matrix must
retain a rectangular shape. 3. Select 1:cell.

Any cells below the deleted cell are shifted up.

If You Need to Add a You do not need to use the 2 ˆ Util toolbar menu to:
New “Last” Row, ¦ Add a new row or cell at the bottom of a column.
Column, or Cell — or —
¦ Add a new column to the right of the last column.
Simply move the cursor to the applicable cell and enter a value.

Chapter 15: Data/Matrix Editor 235

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 235 of 16
Defining a Column Header with an Expression

For a list variable or a column in a data variable, you can enter


a function in the column header that automatically generates a
list of elements. In a data variable, you can also define one
column in terms of another.

Entering a Header In the Data/Matrix Editor:


Definition 1. Move the cursor to any cell in the column and press †.
— or —
Move the cursor to the header cell (c1, c2, etc.) and press ¸.
Tip: To view an existing Note: ¸ is not required if you want to type a new definition
definition, press † or move or replace the existing one. However, if you want to edit the
the cursor to the header cell
and look at the entry line. existing definition, you must press ¸.
2. Type the new expression, which replaces any existing definition.
If you used † or ¸ in Step 1, the cursor moved to the entry
line and highlighted the existing definition, if any. You can also:
Tip: To cancel any changes, ¦ Press M to clear the highlighted expression. Then type the
press N before pressing new expression.
¸.
— or —
¦ Press A or B to remove the highlighting. Then edit the old
expression.

You can use an expression that: For example:


Note: The seq function is Generates a series of numbers. c1=seq(x^2,x,1,5)
described in Appendix A. c1={1,2,3,4,5}

Note: If you refer to an Refers to another column. c2=2ù c1


empty column, you will get c4=c1ù c2ì sin(c3)
an error message (unless
Auto-calculate = OFF as
described on page 237). c1=seq(x,x,1,7)
3. Press ¸, D, or C to
c2=2ùc1
save the definition and
Note: For a data variable, update the columns.
header definitions are saved
when you leave the Data/
Matrix Editor. For a list You cannot directly
variable, the definitions are change a locked cell
(Œ) since it is defined
not saved (only their by the column header.
resulting cell values).

Clearing a Header 1. Move the cursor to any cell in the column and press † .
Definition —or—
Move the cursor to the header cell (c1, c2, etc.) and press ¸ .
2. Press M to clear the highlighted expression.
3. Press ¸ , D , or C .

236 Chapter 15: Data/Matrix Editor

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 236 of 16
Using an Existing Suppose you have one or more existing lists, and you want to use
List as a Column those existing lists as columns in a data variable.

From the: Do this:


Data/Matrix Editor In the applicable column, use † to define
Note: If you have a CBL or
the column header. Refer to the existing
CBR, use these techniques
for your collected lists. list variable. For example:
c1=list1

Tip: Use 2 ° to see Home screen or a Use the NewData command as described in
existing list variables. program Appendix A. For example:
NewData datavar, list1 [, list2] [, list3] ...
Existing list variables to
copy to columns in the
data variable.
Data variable. If this data
variable already exists, it will
be redefined based on the
specified lists.

To Fill a Matrix with You cannot use the Data/Matrix Editor to fill a matrix with a list.
a List However, you can use the listú mat command from the Home screen
or a program. For information, refer to Appendix A.

The Auto-calculate For list and data variables, the Data/Matrix Editor has an
Feature Auto-calculate feature. By default, Auto-calculate = ON. Therefore, if
you make a change that affects a header definition (or any column
referenced in a header definition), all header definitions are
recalculated automatically. For example:
¦ If you change a header definition, the new definition is applied
automatically.
¦ If column 2’s header is defined as c2=2ù c1, any change you make
in column 1 is automatically reflected in column 2.

Tip: You may want to set To turn Auto-calculate off and on from the Data/Matrix Editor:
Auto-calculate = OFF to:

• Make multiple changes 1. Press ¥ Í or ƒ 9.


without recalculating
each time. 2. Change Auto-Calculate to
OFF or ON.
• Enter a definition such
as c1=c2+c3 before you 3. Press ¸ to close the
enter columns 2 and 3.
dialog box.
• Override any errors in a
definition until you can If Auto-calculate = OFF and you make changes as described above,
debug the error.
the header definitions are not recalculated until you set
Auto-calculate = ON.

Chapter 15: Data/Matrix Editor 237

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 237 of 16
Using Shift and CumSum Functions in a Column Header

When defining a column header, you can use the shift and
cumSum functions as described below. These descriptions
differ slightly from Appendix A. This section describes how to
use the functions in the Data/Matrix Editor. Appendix A gives a
more general description for the Home screen or a program.

Using the Shift The shift function copies a base column and shifts it up or down by a
Function specified number of elements. Use † to define a column header
with the syntax:
shift (column [,integer])

Number of elements to shift (positive shifts up;


negative shifts down). Default is ë1.
Column used as the base for the shift.

For example, for a two-element shift up and down:


c2=shift(c1,2)
c3=shift(c1,ë2)

Note: To enter “shift”, type it


from the keyboard or select Shifted columns have the same
it from ½. length as the base column (c1).

Last two elements of c1 shift down and out the


bottom; undefined elements shift into the top.
First two elements of c1 shift up and out the top;
undefined elements shift into the bottom.

Using the CumSum The cumSum function returns a cumulative sum of the elements in a
Function base column. Use † to define a column header with the syntax:
cumSum (column)
Column used as the base for the cumulative sum

For example:
c2=cumSum(c1)

Note: To enter “cumSum”,


type it, select it from 1+2
½, or press 1+2+3+4
2 I and select it from
the List submenu.

238 Chapter 15: Data/Matrix Editor

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 238 of 16
Sorting Columns

After entering information in a data, list, or matrix variable, you


can easily sort a specified column in numeric or alphabetical
order. You can also sort all columns as a whole, based on a
“key” column.

Sorting a Single In the Data/Matrix Editor:


Column 1. Move the cursor to any cell in the
column.
2. Press 2 ˆ and select
3:Sort Column.

c1 c1
Numbers are sorted in ascending fred & 75
order. sally 82
chris & 98
Character strings are sorted in jane chris
alphabetical order. 75 & fred
98 jane
82 sally

Sorting All Columns Consider a database structure in which each column along the same
Based on a “Key” row contains related information (such as a student’s first name, last
Column name, and test scores). In such a case, sorting only a single column
would destroy the relationship between the columns.
In the Data/Matrix Editor:
1. Move the cursor to any
Note: For a list variable, this cell in the “key” column.
is the same as sorting a
single column. In this example, move the
cursor to the second column
(c2) to sort by last name.
Note: This menu item is not 2. Press 2 ˆ and select
available if any column is 4:Sort Col, adjust all.
locked.

When using this procedure for a data variable:


¦ All columns must have the same length.
¦ None of the columns can be locked (defined by a function in the
column header). When the cursor is in a locked column, Œ is
shown at the beginning of the entry line.

Chapter 15: Data/Matrix Editor 239

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 239 of 16
Saving a Copy of a List, Data, or Matrix Variable

You can save a copy of a list, data, or matrix variable. You can
also copy a list to a data variable, or you can select a column
from a data variable and copy that column to a list.

Valid Copy Types You can copy a: To a:


List List or data
Note: A list is automatically Data Data
converted to a data variable
if you enter more than one Data column List
column of information.
Matrix Matrix

Procedure From the Data/Matrix Editor:


1. Display the variable that you want to copy.
2. Press ƒ and select 2:Save Copy As.
3. In the dialog box:
¦ Select the Type and
Folder for the copy.

Note: If you type the name ¦ Type a variable name


of an existing variable, its for the copy.
contents will be replaced.
Column is dimmed unless you
¦ When available, select the copy a data column to a list.
column to copy from. The column information is not
used for other types of copies.

4. Press ¸ (after typing in an input box such as Variable, you


must press ¸ twice).

To Copy a Data A data variable can have multiple columns, but a list variable can
Column to a List have only one column. Therefore, when copying from a data variable
to a list, you must select the column that you want to copy.

List variable to copy to.

Data column that will be copied to


the list. By default, this shows the
column that contains the cursor.

240 Chapter 15: Data/Matrix Editor

DATAMA.DOC TI-89: Data/Matrix Editor (US English) Joan Terrell Revised: 07/29/98 1:29 PM Printed: 07/29/98 1:30 PM Page 240 of 16
Chapter 16:
Statistics and Data Plots
Preview of Statistics and Data Plots................................................... 242
Overview of Steps in Statistical Analysis ........................................... 246

16 Performing a Statistical Calculation ................................................... 247


Statistical Calculation Types ............................................................... 249
Statistical Variables............................................................................... 251
Defining a Statistical Plot..................................................................... 252
Statistical Plot Types ............................................................................ 254
Using the Y= Editor with Stat Plots .................................................... 256
Graphing and Tracing a Defined Stat Plot ......................................... 257
Using Frequencies and Categories...................................................... 258
If You Have a CBL or CBR ................................................................... 260

The Data/Matrix Editor serves two main purposes.


¦ As described previously in Chapter 15, the Data/Matrix Editor
lets you create and maintain a list, matrix, or data variable.
¦ This chapter describes how to use the Data/Matrix Editor to
perform statistical calculations and graph statistical plots.

Chapter 16: Statistics and Data Plots 241

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 08/03/98 1:06 PM Printed: 08/03/98 2:33 PM Page 241 of 22
Preview of Statistics and Data Plots

Based on a sample of seven cities, enter data that relates population to the number of
buildings with more than 12 stories. Using Median-Median and linear regression
calculations, find and plot equations to fit the data. For each regression equation, predict
how many buildings of more than 12 stories you would expect in a city of 300,000 people.

Steps Keystrokes Display

1. Display the MODE dialog box. 3


For Graph mode, select FUNCTION. B1
¸

2. Display the Data/Matrix Editor, and O63


create a new data variable named DD2™
BUILD. BUILDj
¸¸

3. Using the sample data below, enter 150¸


the population in column 1. 500¸
Pop. (in 1000s) Bldgs > 12 stories 800¸
150 4 250¸
500 31 500¸
800 42
250 9 750¸
500 20 950¸
750 55
950 73
4. Move the cursor to row 1 in column 2 B¥C
(r1c2). Then enter the corresponding 4¸
number of buildings. 31¸
¥ C moves the cursor to the top of the 42¸
page. 9¸
After typing data for a cell, you can press 20¸
¸ or D to enter the data and move the
cursor down one cell. Pressing C enters 55¸
the data and moves the cursor up one cell. 73¸

5. Move the cursor to row 1 in column 1 A¥C


(r1c1). Sort the data in ascending 2ˆ4
order of population.
This sorts column 1 and then adjusts all
other columns so that they retain the same
order as column 1. This is critical for
maintaining the relationships between
columns of data.
To sort column 1, the cursor can be
anywhere in column 1. This example has
you press ¥ C so that you can see the
first four rows.

242 Chapter 16: Statistics and Data Plots

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 242 of 22
Steps Keystrokes Display

6. Display the Calculate dialog box. Set: ‡


Calculation Type = MedMed B7D
x = C1 jC1D
y = C2 jC2D
Store RegEQ to = y1(x) BD¸

7. Perform the calculation to display the ¸


MedMed regression equation.
As specified on the Calculate dialog box,
this equation is stored in y1(x).

8. Close the STAT VARS screen. The ¸


Data/Matrix Editor displays.
9. Display the Calculate dialog box. Set: ‡
Calculation Type = LinReg B5D
x = C1 D
y = C2 D
Store RegEQ to = y2(x) BD¸

10. Perform the calculation to display the ¸


LinReg regression equation.
This equation is stored in y2(x).

11. Close the STAT VARS screen. The ¸


Data/Matrix Editor displays.
12. Display the Plot Setup screen. „
Plot 1 is highlighted by default.
… lets you clear highlighted Plot settings.

13. Define Plot 1 as: ƒ


Plot Type = Scatter B1D
Mark = Box B1D
x = C1 jC1D
y = C2 jC2
Notice the similarities between this and the
Calculate dialog box.

14. Save the plot definition and return to ¸¸


the Plot Setup screen.
Notice the shorthand notation for Plot 1’s
definition.

Chapter 16: Statistics and Data Plots 243

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 243 of 22
Steps Keystrokes Display

15. Display the Y= Editor. For y1(x), the ¥#


MedMed regression equation, set the 2ˆ2
display style to Dot.
Note: Depending on the previous contents
of your Y= Editor, you may need to move
the cursor to y1.
PLOTS 1 at the top of the screen means
that Plot 1 is selected.
Notice that y1(x) and y2(x) were selected
when the regression equations were
stored.

16. Scroll up to highlight Plot 1. C


The displayed shorthand definition is the
same as on the Plot Setup screen.

17. Use ZoomData to graph Plot 1 and the „9


regression equations y1(x) and y2(x).
ZoomData examines the data for all
selected stat plots and adjusts the viewing
window to include all points.

18. Return to the current session of the O61


Data/Matrix Editor.
19. Enter a title for column 3. Define BBCC
column 3’s header as the values 2™MED
predicted by the MedMed line. j¸
To enter a title, the cursor must highlight †Y1cjC
the title cell at the very top of the column. 1d¸
† lets you define a header from anywhere
in a column. When the cursor is on a
header cell, pressing † is not required.
20. Enter a title for column 4. Define BC2™
column 4’s header as the residuals RESIDj
(difference between observed and ¸
predicted values) for MedMed. jC2|j
C3¸

21. Enter a title for column 5. Define BCC2™


column 5’s header as the values LINj¸
predicted by the LinReg line. †Y2cj
C1d¸

244 Chapter 16: Statistics and Data Plots

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 244 of 22
Steps Keystrokes Display

22. Enter a title for column 6. Define BC2™


column 6’s header as the residuals RESIDj
for LinReg. ¸
†jC2|
jC5¸

23. Display the Plot Setup screen and „†


deselect Plot 1.
24. Highlight Plot 2 and define it as: Dƒ
Plot Type = Scatter D
Mark = Box D
x = C1 jC1D
y = C4 (MedMed residuals) jC4¸
¸

25. Highlight Plot 3 and define it as: Dƒ


Plot Type = Scatter D
Mark = Plus B3D
x = C1 jC1D
y = C6 (LinReg residuals) jC6¸
¸

26. Display the Y= Editor and turn all the ¥#


y(x) functions off. ‡3
From ‡, select 3:Functions Off, not
1:All Off.
Plots 2 and 3 are still selected.

27. Use ZoomData to graph the residuals. „9


› marks the MedMed residuals;
+ marks the LinReg residuals.

28. Display the Home screen. "

29. Use the MedMed (y1(x)) and 2I13


LinReg (y2(x)) regression Y1c300db
equations to calculate values for 0d¸
x = 300 (300,000 population). B
The round function (2 I 13) ensures AAAAAAA
that results show an integer number of A02¸
buildings.
After calculating the first result, edit the
entry line to change y1 to y2.

Chapter 16: Statistics and Data Plots 245

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 245 of 22
Overview of Steps in Statistical Analysis

This section gives an overview of the steps used to perform a


statistical calculation or graph a statistical plot. For detailed
descriptions, refer to the following pages.

Calculating and Set Graph mode (3)


to FUNCTION.
Plotting Stat Data

Note: Refer to Chapter 15 Enter stat data in the


for details on entering data in Data/Matrix Editor
the Data/Matrix Editor. (O 6).

Perform stat
calculations to find
stat variables or fit
data to a model (‡).

Define and select stat


Tip: You can also use the plots („ and then ƒ).
Y= Editor to define and
select stat plots and y(x)
functions.
Define the viewing
window (¥ $).
Tip: Use ZoomData to
optimize the viewing
window for stat plots. Change the graph
„ Zoom is available on the format (¥ Í),
Y= Editor, Window Editor, if necessary.
and Graph screen.

Graph the selected


stat plots and
functions (¥ %).

Exploring the From the Graph screen, you can:


Graphed Plots ¦ Display the coordinates of any pixel by using the free-moving
cursor, or of a plotted point by tracing a plot.
¦ Use the „ Zoom toolbar menu to zoom in or out on a portion of
the graph.
¦ Use the ‡ Math toolbar menu to analyze any function (but not
plots) that may be graphed.

246 Chapter 16: Statistics and Data Plots

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 246 of 22
Performing a Statistical Calculation

From the Data/Matrix Editor, use the ‡ Calc toolbar menu to


perform statistical calculations. You can analyze one-variable
or two-variable statistics, or perform several types of
regression analyses.

The Calculate You must have a data variable opened. The Data/Matrix Editor will
Dialog Box not perform statistical calculations with a list or matrix variable.
From the Data/Matrix Editor:
1. Press ‡ to display the
Pathname of the
Calculate dialog box. data variable

This example shows all


Note: If an item is not valid items as active. On your
for the current settings, it will calculator, items are
appear dimmed. You cannot
active only if they are
move the cursor to a
dimmed item. valid for the current
settings of Calculation
Type and Use Freq and
Categories.
2. Specify applicable settings for the active items.

Item Description
Calculation Type Select the type of calculation. For descriptions,
refer to page 249.
Tip: To use an existing list x Type the column number in the Data/Matrix
variable for x, y, Freq, or Editor (C1, C2, etc.) used for x values, the
Category, type the list name
instead of a column number.
independent variable.
y Type the column number used for y values, the
dependent variable. This is required for all
Calculation Types except OneVar.

Store RegEQ to If Calculation Type is a regression analysis, you


can select a function name (y1(x), y2(x), etc.).
This lets you store the regression equation so
that it will be displayed in the Y= Editor.
Use Freq and Select NO or YES. Note that Freq, Category, and
Categories? Include Categories are active only when
Use Freq and Categories? = YES.

Chapter 16: Statistics and Data Plots 247

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 247 of 22
The Calculate Item Description
Dialog Box Freq Type the column number that contains a
(Continued) “weight” value for each data point. If you do
not enter a column number, all data points are
assumed to have the same weight (1).
Note: For an example of Category Type the column number that contains a
using Freq, Category, and category value for each data point.
Include Categories, refer to
page 258. Include If you specify a Category column, you can use
Categories this item to limit the calculation to specified
category values. For example, if you specify
{1,4}, the calculation uses only data points with
a category value of 1 or 4.

3. Press ¸ (after typing in an input box, press ¸ twice).


The results are displayed on the STAT VARS screen. The format
depends on the Calculation Type. For example:
For Calculation Type = OneVar For Calculation Type = LinReg

Note: Any undefined data


points (shown as undef) are
ignored in a stat calculation.

When 6 is shown instead of =, you


can scroll for additional results.

4. To close the STAT VARS screen, press ¸.

Redisplaying the The Data/Matrix Editor’s 2 ‰ Stat toolbar menu redisplays the
STAT VARS Screen previous calculation results (until they are cleared from memory).
Previous results are cleared when you:
¦ Edit the data points or change the Calculation Type.
¦ Open another data variable or reopen the same data variable
(if the calculation referred to a column in a data variable). Results
are also cleared if you leave and then reopen the Data/Matrix
Editor with a data variable.
¦ Change the current folder (if the calculation referred to a list
variable in the previous folder).

248 Chapter 16: Statistics and Data Plots

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 248 of 22
Statistical Calculation Types

As described in the previous section, the Calculate dialog box


lets you specify the statistical calculation you want to perform.
This section gives more information about the calculation
types.

Selecting the From the Calculate dialog box ( ‡ ), highlight the current setting for
Calculation Type the Calculation Type and press B.

You can then select from a


menu of available types.

If an item is dimmed, it is not valid


for the current Calculation Type.

Calc Type Description


OneVar One-variable statistics — Calculates the statistical
variables described on page 251.
Note: For TwoVar and all TwoVar Two-variable statistics — Calculates the statistical
regression calculations, the variables described on page 251.
columns that you specify for
x and y (and optionally, Freq CubicReg Cubic regression — Fits the data to the third-order
or Category) must have the polynomial y=axò +bxñ +cx+d. You must have at least
same length.
four data points.
¦ For four points, the equation is a polynomial fit.
¦ For five or more points, it is a polynomial regression.
ExpReg Exponential regression — Fits the data to the model
equation y=abõ (where a is the y-intercept) using a least-
squares fit and transformed values x and ln(y).
LinReg Linear regression — Fits the data to the model y=ax+b
(where a is the slope, and b is the y-intercept) using a
least-squares fit and x and y.
LnReg Logarithmic regression — Fits the data to the model
equation y=a+b ln(x) using a least-squares fit and
transformed values ln(x) and y.
Logistic Logistic regression — Fits the data to the model
y=a/(1+b*e^(c*x))+d and updates all the system
statistics variables.

Chapter 16: Statistics and Data Plots 249

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 249 of 22
Selecting the Calc Type Description
Calculation Type MedMed Median-Median — Fits the data to the model y=ax+b
(Continued) (where a is the slope, and b is the y-intercept) using the
median-median line, which is part of the resistant line
technique.
Summary points medx1, medy1, medx2, medy2, medx3,
and medy3 are calculated and stored to variables, but
they are not displayed on the STAT VARS screen.
PowerReg Power regression — Fits the data to the model equation
y=ax b using a least-squares fit and transformed values
ln(x) and ln(y).
QuadReg Quadratic regression — Fits the data to the second-
order polynomial y=axñ +bx+c. You must have at least
three data points.
¦ For three points, the equation is a polynomial fit.
¦ For four or more points, it is a polynomial regression.
QuartReg Quartic regression — Fits the data to the fourth-order
polynomial y=ax 4+bxò +cxñ + dx+e. You must have at
least five data points.
¦ For five points, the equation is a polynomial fit.
¦ For six or more points, it is a polynomial regression.
SinReg Sinusoidal regression — Calculates the sinusoidal
regression and updates all the system statistics
variables. The output is always in radians, regardless of
the angle mode setting.

From the Home Use the applicable command for the calculation that you want to
Screen or a Program perform. The commands have the same name as the corresponding
Calculation Type. Refer to Appendix A for information about each
command.
Important: These commands perform a statistical calculation but
do not automatically display the results. Use the ShowStat command
to show the calculation results.

250 Chapter 16: Statistics and Data Plots

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 250 of 22
Statistical Variables

Statistical calculation results are stored to variables. To access


these variables, type the variable name or use the VAR-LINK
screen as described in Chapter 21. All statistical variables are
cleared when you edit the data or change the calculation type.
Other conditions that clear the variables are listed on
page 248.

Calculated Variables Statistical variables are stored as system variables. However, regCoef
and regeq are treated as a list and a function variable, respectively.

One Two
Var Var Regressions
mean of x values ü ü
sum of x values Gx Gx
Tip: From the keyboard,
press ¥ c ¤ [S] for G sum of xñ values Gxñ Gxñ
and ¥ c j [S] for s. sample std. deviation of x Sx Sx
population std. deviation of x † sx sx
Tip: To type a power (such number of data points nStat nStat
as 2 in Gxñ ), ü, or ý, press
2 ¿ and select it from
mean of y values ÿ
the Math menu. sum of y values Gy
sum of yñ values Gyñ
sample standard deviation of y Sy
population std. deviation of y † sy
sum of xù y values Gxy
minimum of x values minX minX
maximum of x values maxX maxX
minimum of y values minY
maximum of y values maxY
1st quartile q1
median medStat
3rd quartile q3
Note: 1st quartile is the regression equation regeq
median of points between
minX and medStat, and 3rd regression coefficients (a, b, c, d, e) regCoef
quartile is the median of points correlation coefficient †† corr
between medStat and maxX. coefficient of determination †† Rñ
summary points medx1, medy1,
Tip: If regeq is 4x + 7, then (MedMed only) † medx2, medy2,
regCoef is {4 7}. To access medx3, medy3
the “a” coefficient (the 1st
element in the list), use an
index such as regCoef[1]. † The indicated variables are calculated but are not shown on the
STAT VARS screen.
†† corr is defined for a linear regression only; Rñ is defined for all
polynomial regressions.

Chapter 16: Statistics and Data Plots 251

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 251 of 22
Defining a Statistical Plot

From the Data/Matrix Editor, you can use the entered data to
define several types of statistical plots. You can define up to
nine plots at a time.

Procedure From the Data/Matrix Editor:


1. Press „ to display the
Plot Setup screen.
Initially, none of the
plots are defined.
2. Move the cursor to
highlight the plot
number that you want
Pathname of the
to define. data variable
Note: This dialog box is 3. Press ƒ to define the
similar to the Calculate plot.
dialog box.
This example shows all
items as active. On your
calculator, items are
Note: If an item is not valid
for the current settings, it will active only if they are
appear dimmed. You cannot valid for the current
move the cursor to a setting of Plot Type and
dimmed item. Use Freq and Categories?

4. Specify applicable settings for the active items.

Item Description
Plot Type Select the type of plot. For descriptions, refer to
page 254.
Mark Select the symbol used to plot the data points:
Box (›), Cross (x), Plus (+), Square (0), or Dot (ø ).

Note: Plots defined with x Type the column number in the Data/Matrix
column numbers always use Editor (C1, C2, etc.) used for x values, the
the last data variable in the independent variable.
Data/Matrix Editor, even if
that variable was not used y Type the column number used for y values, the
to create the definition.
dependent variable. This is active only for
Plot Type = Scatter or xyline.
Tip: To use an existing list
variable for x, y, Freq, or Hist. Bucket Specifies the width of each bar in a histogram.
Category, type the list name
instead of the column
Width For more information, refer to page 255.
number. Use Freq and Select NO or YES. Note that Freq, Category, and
Categories? Include Categories are active only when
Use Freq and Categories? = YES. (Freq is active
only for Plot Type = Box Plot or Histogram.)

252 Chapter 16: Statistics and Data Plots

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 252 of 22
Item Description
Note: For an example of Freq Type the column number that contains a “weight”
using Freq, Category, and value for each data point. If you do not enter a
Include Categories, refer to
column number, all data points are assumed to
page 258.
have the same weight (1).
Category Type the column number that contains a category
value for each data point.
Include If you specify a Category, you can use this to limit
Categories the calculation to specified category values. For
example, if you specify {1,4}, the plot uses only
data points with a category value of 1 or 4.

5. Press ¸ (after typing in an input box, press ¸ twice).


Note: Any undefined data The Plot Setup screen is
points (shown as undef) are redisplayed.
ignored in a stat plot.
The plot you just
defined is automatically
selected for graphing.

Notice the shorthand


definition for the plot. y = c2
Plot Type = Scatter
Mark = Box x = c1

Selecting or From Plot Setup, highlight the plot and press † to toggle it on or off.
Deselecting a Plot If a stat plot is selected, it remains selected when you:
¦ Change the graph mode. (Stat plots are not graphed in 3D mode.)
¦ Execute a Graph command.
¦ Open a different variable in the Data/Matrix Editor.

Copying a Plot From Plot Setup:


Definition 1. Highlight the plot and
press „.
2. Press B and select the
Note: If the original plot was plot number that you
selected (Ÿ), the copy is want to copy to.
also selected.
3. Press ¸.

Clearing a Plot From Plot Setup, highlight the plot and press …. To redefine an
Definition existing plot, you do not necessarily need to clear it first; you can
make changes to the existing definition. To prevent a plot from
graphing, you can deselect it.

Chapter 16: Statistics and Data Plots 253

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 253 of 22
Statistical Plot Types

When you define a plot as described in the previous section,


the Plot Setup screen lets you select the plot type. This section
gives more information about the available plot types.

Scatter Data points from x and y are plotted as coordinate pairs. Therefore,
the columns or lists that you specify for x and y must be the same
length.
¦ Plotted points are shown
with the symbol that you
select as the Mark.
¦ If necessary, you can specify
the same column or list for
both x and y.

xyline This is a scatter plot in which


data points are plotted and
connected in the order in which
they appear in x and y.
You may want to sort all the
columns (2 ˆ 3 or 2 ˆ 4
in the Data/Matrix Editor)
before plotting.

Box Plot This plots one-variable data with respect to the minimum and
maximum data points (minX and maxX) in the set.
¦ A box is defined by its first Q1 Med Q3
quartile (Q1), median (Med),
and third quartile (Q3).
¦ Whiskers extend from minX
to Q1 and from Q3 to maxX. minX maxX

¦ When you select multiple box


plots, they are plotted one
above the other in the same
order as their plot numbers.
¦ Use NewPlot to show statistical data as a modified box plot.
¦ Select Mod Box Plot as the Plot Type when you define a plot in the
Data/Matrix Editor.
A modified box plot excludes points outside the interval
[Q1ì X, Q3+X], where X is defined as 1.5 (Q3ì Q1). These points,
called outliers, are plotted individually beyond the box plot’s
whiskers, using the mark that you select.

254 Chapter 16: Statistics and Data Plots

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 254 of 22
Histogram This plots one-variable data as a histogram. The x axis is divided into
equal widths called buckets or bars. The height of each bar (its y
value) indicates how many data points fall within the bar’s range.
¦ When defining the plot, you xmax ì xmin
can specify the Hist. Bucket Number of bars = Hist. Bucket Width
Width (default is 1) to set
the width of each bar.
¦ A data point at the edge of
a bar is counted in the bar
to the right.
¦ ZoomData ( „ 9 from the
Graph screen, Y= Editor, or
Window Editor) adjusts xmin + Hist. Bucket Width
xmin and xmax to include xmin
all data points, but it does
not adjust the y axis.
− Use ¥ $ to set
ymin = 0 and ymax = the
number of data points
expected in the tallest
bar. Trace cursor

¦ When you trace ( … ) a


histogram, the screen
shows information about
the traced bar.

Range of # of data
the traced points in the
bar traced bar

Chapter 16: Statistics and Data Plots 255

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 255 of 22
Using the Y= Editor with Stat Plots

The previous sections described how to define and select stat


plots from the Data/Matrix Editor. You can also define and
select stat plots from the Y= Editor.

Showing the List of Press ¥ # to display the Y= Editor. Initially, the nine stat plots are
Stat Plots located “off the top” of the screen, above the y(x) functions.
However, the PLOTS indicator provides some information.

For example, PLOTS 23


means that Plots 2 & 3
are selected.

To see the list of stat plots, use C to scroll above the y(x) functions.

Note: Plots defined with If a Plot is highlighted, this


column numbers always use shows the data variable that
the last data variable in the will be used for the plots.
Data/Matrix Editor, even if
that variable was not used If a Plot is defined, it shows
to create the definition. the same shorthand
notation as the Plot Setup
screen.

From the Y= Editor, you can perform most of the same operations on
a stat plot as you can on any other y(x) function.

To: Do this:
Note: You cannot use Edit a plot Highlight the plot and press …. You will see the
2 ˆ to set a plot’s definition same definition screen that is displayed in the
display style. However, the
plot definition lets you select Data/Matrix Editor.
the mark used for the plot.
Select or deselect Highlight the plot and press †.
a plot
Turn all plots Press ‡ and select the applicable item. You can
and/or functions also use this menu to turn all functions on.
off

To Graph Plots and As necessary, you can select and graph stat plots and y(x) functions
Y= Functions at the same time. The preview example at the beginning of this
chapter graphs data points and their regression equations.

256 Chapter 16: Statistics and Data Plots

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 256 of 22
Graphing and Tracing a Defined Stat Plot

After entering the data points and defining the stat plots, you
can graph the selected plots by using the same methods you
used to graph a function from the Y= Editor (as described in
Chapter 6).

Defining the Stat plots are displayed on the current graph, and they use the
Viewing Window Window variables that are defined in the Window Editor.
Use ¥ $ to display the Window Editor. You can either:
¦ Enter appropriate values.
— or —
¦ Select 9:ZoomData from the „ Zoom toolbar menu. (Although you
can use any zoom, ZoomData is optimized for stat plots.)
Tip: „ Zoom is available ZoomData sets the viewing window to
on the Y= Editor, Window display all statistical data points.
Editor, and Graph screen.
For histograms and box plots, only xmin
and xmax are adjusted. If the top of a
histogram is not shown, trace the
histogram to find the value for ymax.

Changing the Graph Press ¥ Í (or ƒ 9) from the


Format Y= Editor, Window Editor, or
Graph screen.
Then change the settings as
necessary.

Tracing a Stat Plot From the Graph screen, press … to trace a plot. The movement of
the trace cursor depends on the Plot Type.

Plot Type Description


Note: When a stat plot is Scatter or xyline Tracing begins at the first data point.
displayed, the Graph screen
does not automatically pan if Box plot Tracing begins at the median. Press A to trace to
you trace off the left or right Q1 and minX. Press B to trace to Q3 and maxX.
side of the screen. However,
you can still press ¸ to Histogram The cursor moves from the top center of each bar,
center the screen on the starting from the leftmost bar.
trace cursor.

When you press C or D to move to another plot or y(x) function,


tracing moves to the current or beginning point on that plot (not to
the nearest pixel).

Chapter 16: Statistics and Data Plots 257

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 257 of 22
Using Frequencies and Categories

To manipulate the way in which data points are analyzed, you


can use frequency values and/or category values. Frequency
values let you “weight” particular data points. Category values
let you analyze a subset of the data points.

Example of a In a data variable, you can use any column in the Data/Matrix Editor
Frequency Column to specify a frequency value (or weight) for the data points on each
row. A frequency value must be an integer ‚ 0 if Calculation Type =
OneVar or MedMed or if Plot Type = Box Plot. For other statistical
calculations or plots, the frequency value can be any number ‚ 0.
For example, suppose you enter a student’s test scores, where:
¦ The mid-semester exam is weighted twice as much as other tests.
¦ The final exam is weighted three times as much.
In the Data/Matrix Editor, you can enter the test scores and
frequency values in two columns.

Test scores
Frequency values

c1 c2 These c1
Tip: A frequency value of 0 85 1 weighted scores
effectively removes the data 85
97 1 are equivalent to 97
point from analysis. 92 2 the single column
of scores listed to
92 Frequency of 2
89 1 the right. 92
91 1 89
95 3 91
95
95 Frequency of 3
95

Note: You can also use To use frequency values, specify the frequency column when you
frequency values from a list perform a statistical calculation or define a stat plot. For example:
variable instead of a
column.

Set this to YES.

Type the column


number (or list
name) that
contains the
frequency values.

Example of a In a data variable, you can use any column to specify a category (or
Category Column subset) value for the data points on each row. A category value can
be any number.

258 Chapter 16: Statistics and Data Plots

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 258 of 22
Suppose you enter the test scores from a class that has 10th and 11th
grade students. You want to analyze the scores for the whole class,
but you also want to analyze categories such as 10th grade girls, 10th
grade boys, 10th grade girls and boys, etc.
First, determine the category values you want to use.

Note: You do not need a Category Value Used to indicate:


category value for the whole
class. Also, you do not need 1 10th grade girl
category values for all 10th 2 10th grade boy
graders or all 11th graders 3 11th grade girl
since they are combinations
of other categories. 4 11th grade boy
Test scores
Category values
In the Data/Matrix Editor, you
can enter the scores and the c1 c2
category values in two columns. 85 1
97 3
92 2
88 3
90 2
95 1
79 4
68 2
92 4
84 3
82 1

Note: You can also use To use category values, specify the category column and the
category values from a list category values to include in the analysis when you perform a
variable instead of a
column. statistical calculation or define a stat plot.

Set this to YES.


Type the column
number (or list
name) that
contains the
category values. Within braces { }, type the category
values to use, separated by commas. (Do
not type a column number or list name.)

To analyze: Include Categories:


Note: To analyze the whole 10th grade girls {1}
class, leave the Category 10th grade boys {2}
input box blank. Any
category values are ignored. 10th grade girls and boys {1,2}
11th grade girls {3}
11th grade boys {4}
11th grade girls and boys {3,4}
all girls (10th and 11th) {1,3}
all boys (10th and 11th) {2,4}

Chapter 16: Statistics and Data Plots 259

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 259 of 22
If You Have a CBL or CBR

The Calculator-Based Laboratoryé System (CBLé) and


Calculator-Based Rangeré System (CBRé) are optional
accessories, available separately, that let you collect data from
a variety of real-world experiments. TI-89 CBL and CBR
programs are available from the TI web site at:
http://www.ti.com/calc/docs/89.htm

How CBL Data Is When you collect data with the CBL, that data is initially stored in the
Stored CBL unit itself. You must then retrieve the data (transfer it to the
TI-89) by using the Get command, which is described in Appendix A.
Although each set of retrieved data can be stored in several variable
types (list, real, matrix, pic), using list variables makes it easier to
perform statistical calculations.
Note: For specifics about When you transfer the collected information to the TI-89, you can
using the CBL and retrieving specify the list variable names that you want to use. For example,
data to the TI-89, refer to the
guidebook that comes with you can use the CBL to collect temperature data over a period of
the CBL unit. time. When you transfer the data, suppose you store:
¦ Temperature data in a list variable called temp.
¦ Time data in a list variable called time.
After you store the CBL information on the TI-89, there are two ways
to use the CBL list variables.

Referring to the When you perform a statistical calculation or define a plot, you can
CBL Lists refer explicitly to the CBL list variables. For example:

Type the CBL list


variable name instead
of a column number.

260 Chapter 16: Statistics and Data Plots

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 260 of 22
Creating a Data You can create a new data variable that consists of the necessary
Variable with the CBL list variables.
CBL Lists
¦ From the Home screen or a program, use the NewData command.
NewData dataVar, list1 [,list2 ] [,list3 ] ...

CBL list variable names. In the new


data variable, list1 will be copied to
column 1, list 2 to column 2, etc.
Name of the new data variable that
you want to create.

For example:
NewData temp1, time, temp
creates a data variable called temp1 in which time is in column 1
and temp is in column 2.

Tip: To define or clear a ¦ From the Data/Matrix Editor, create a new, empty data variable
column header, use †. For with the applicable name. For each CBL list that you want to
more information, refer to
Chapter 15. include, define a column header as that list name.

For example, define


column 1 as time,
column 2 as temp.

At this point, the columns are linked to the CBL lists. If the lists
are changed, the columns will be updated automatically.
However, if the lists are deleted, the data will be lost.
To make the data variable independent of the CBL lists, clear the
column header for each column. The information remains in the
column, but the column is no longer linked to the CBL list.

CBR You can also use the Calculator-Based Ranger™ (CBR™) to explore
the mathematical and scientific relationships between distance,
velocity, acceleration, and time using data collected from activities
you perform. However, you will first need to obtain a separate CBR
program for the TI-89, which is available from the TI web site at:
http://www.ti.com/calc/docs/89.htm

Chapter 16: Statistics and Data Plots 261

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 261 of 22
262 Chapter 16: Statistics and Data Plots

STATPLOT.DOC TI-89: Statistics and Data Plots (US English) Joan Terrell Revised: 07/29/98 1:22 PM Printed: 07/29/98 1:23 PM Page 262 of 22
Chapter 17:
Programming
Preview of Programming...................................................................... 264
Running an Existing Program.............................................................. 266

17 Starting a Program Editor Session...................................................... 268


Overview of Entering a Program......................................................... 270
Overview of Entering a Function ........................................................ 273
Calling One Program from Another .................................................... 275
Using Variables in a Program............................................................... 276
Using Local Variables in Functions or Programs ................................. 278
String Operations .................................................................................. 280
Conditional Tests .................................................................................. 282
Using If, Lbl, and Goto to Control Program Flow ............................. 283
Using Loops to Repeat a Group of Commands ................................. 285
Configuring the TI-89............................................................................ 288
Getting Input from the User and Displaying Output......................... 289
Creating a Custom Menu ...................................................................... 291
Creating a Table or Graph.................................................................... 293
Drawing on the Graph Screen ............................................................. 295
Accessing Another TI-89, a CBLé, or a CBRé ................................. 297
Debugging Programs and Handling Errors ........................................ 298
Example: Using Alternative Approaches ........................................... 299
Assembly-Language Programs............................................................. 301

This chapter describes how to use the TI-89’s Program Editor to


create your own programs or functions.

Note: For details and


examples of any TI-89
program command
mentioned in this chapter,
refer to Appendix A.

The chapter includes:


¦ Specific instructions on using the Program Editor itself and
running an existing program.
¦ An overview of fundamental programming techniques such as
If..EndIf structures and various kinds of loops.
¦ Reference information that categorizes the available program
commands.
¦ Obtaining and running assembly-language programs.

Chapter 17: Programming 263

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 08/03/98 1:07 PM Printed: 08/03/98 2:33 PM Page 263 of 40
Preview of Programming

Write a program that prompts the user to enter an integer, sums all integers from 1 to the
entered integer, and displays the result.

Steps Keystrokes Display

1. Start a new program on the Program O73


Editor.

2. Type PROG1 (with no spaces) as the DD2™


name of the new program variable. PROGj1

3. Display the “template” for a new ¸¸


program. The program name, Prgm,
and EndPrgm are shown
automatically.
After typing in an input box such as
Variable, you must press ¸ twice.

4. Type the following program lines. Type the


program lines as
Request "Enter an integer",n
shown. Press
Displays a dialog box that prompts
“Enter an integer”, waits for the user to ¸ at the end
enter a value, and stores it (as a of each line.
string) to variable n.
expr(n)! n
Converts the string to a numeric
expression.
0! temp
Creates a variable named temp and
initializes it to 0.
For i,1,n,1
Starts a For loop based on variable i.
First time through the loop, i = 1. At
end of loop, i is incremented by 1.
Loop continues until i > n.
temp+i! temp
Adds current value of i to temp.
EndFor
Marks the end of the For loop.
Disp temp
Displays the final value of temp.

264 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 264 of 40
Steps Keystrokes Display

5. Go to the Home screen. Enter the "2™ prog1()


program name, followed by a set of PROGj1
parentheses. cd¸
You must include ( ) even when there are
no arguments for the program.
The program displays a dialog box with the
prompt specified in the program.

6. Type 5 in the displayed dialog box. 5

7. Continue with the program. The ¸¸


Disp command displays the result on
Output from other
the Program I/O screen. programs may still be
on the screen.
The result is the sum of the integers from 1
through 5. Result of integer 5.
Although the Program I/O screen looks
similar to the Home screen, it is for
program input and output only. You cannot
perform calculations on the Program I/O
screen.
8. Leave the Program I/O screen and ‡
return to the Home screen.
You can also press N, 2 K, or
" to return to the Home screen.

Chapter 17: Programming 265

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 265 of 40
Running an Existing Program

After a program is created (as described in the remaining


sections of this chapter), you can run it from the Home screen.
The program’s output, if any, is displayed on the Program I/O
screen, in a dialog box, or on the Graph screen.

Running a Program On the Home screen:


1. Type the name of the program.
Tip: Use 2 ° to list 2. You must always type a
existing PRGM variables. prog1()
set of parentheses after
Highlight a variable and If arguments are not required
press ¸ to paste its the name.
name to the entry line.
Some programs require
prog1(x,y)
you to pass an argument
Note: Arguments specify to the program. If arguments are required
initial values for a program.
Refer to page 271. 3. Press ¸.
When you run a program, the TI-89 automatically checks for errors.
For example, the following message is displayed if you:
Note: The TI-89 also checks ¦ Do not enter ( ) after the
for run-time errors that are program name.
found within the program
itself. Refer to page 298. This error message appears if you:
¦ Do not enter enough arguments,
if required.

To cancel program execution if an error occurs, press N. You can


then correct any problems and run the program again.

“Breaking” a When a program is running, the BUSY indicator is displayed in the


Program status line.
Press ´ to stop program execution. A message is then displayed.
¦ To display the program in the
Program Editor, press ¸. The
cursor appears at the command
where the break occurred.
¦ To cancel program execution,
press N.

266 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 266 of 40
Where Is the Output Depending on the commands in the program, the TI-89 automatically
Displayed? displays information on the applicable screen.
¦ Most output and input commands use the Program I/O screen.
(Input commands prompt the user to enter information.)
¦ Graph-related commands typically use the Graph screen.
After the program stops, the TI-89 shows the last screen that was
displayed.

The Program I/O On the Program I/O screen, new output is displayed below any
Screen previous output (which may have been displayed earlier in the same
program or a different program). After a full page of output, the
previous output scrolls off the top of the screen.

Tip: To clear any previous


output, enter the Clr[O
command in your program.
You can also execute Clr[O
from the Home screen.
Last output

On the Program I/O screen:


• ‡ toolbar is available; all
others are dimmed.
• There is no entry line.

Tip: If Home screen When a program stops on the Program I/O screen, you need to
calculations don’t work after recognize that it is not the Home screen (although the two screens
you run a program, you may
be on the Program I/O are similar). The Program I/O screen is used only to display output or
screen. to prompt the user for input. You cannot perform calculations on this
screen.

Leaving the From the Program I/O screen:


Program I/O Screen ¦ Press ‡ to display the Home screen. ( ‡ toggles between the
Home screen and the Program I/O screen.)
— or —
¦ Press N or 2 K or " to display the Home screen.
— or —
¦ Display any other application screen (with O, ", ¥#, etc.).

Chapter 17: Programming 267

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 267 of 40
Starting a Program Editor Session

Each time you start the Program Editor, you can resume the
current program or function (that was displayed the last time
you used the Program Editor), open an existing program or
function, or start a new program or function.

Starting a New 1. Press O and then select


Program or 7:Program Editor.
Function 2. Select 3:New.

3. Specify the applicable


information for the new
program or function. Turn on
alpha lock
( 2 ™ ).

Item Lets you:


Type Select whether to create a
new program or function.
Folder Select the folder in which the new program or
function will be stored. For information about
folders, refer to Chapter 5.
Variable Type a variable name for the program or function.
If you specify a variable that already exists, an error
message will be displayed when you press ¸.
When you press N or ¸ to acknowledge the
error, the NEW dialog box is redisplayed.

4. Press ¸ (after typing in an input box such as Variable, you


must press ¸ twice) to display an empty “template.”
Note: A program (or
function) is saved This is the template for a
automatically as you type. program. Functions have
You do not need to save it a similar template.
manually before leaving the
Program Editor, starting a
new program, or opening a
previous one.

You can now use the Program Editor as described in the


remaining sections of this chapter.

268 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 268 of 40
Resuming the You can leave the Program Editor and go to another application at
Current Program any time. To return to the program or function that was displayed
when you left the Program Editor, press O 7 and select 1:Current.

Starting a New To leave the current program or function and start a new one:
Program from the 1. Press ƒ and select 3:New.
Program Editor
2. Specify the type, folder, and
variable for the new program or
function.
3. Press ¸ twice.

Opening a Previous You can open a previously created program or function at any time.
Program 1. From within the Program Editor, press ƒ and select 1:Open.
— or —
From another application, press O 7 and select 2:Open.
Note: By default, Variable 2. Select the applicable type,
shows the first existing folder, and variable.
program or function in
alphabetical order. 3. Press ¸.

Copying a Program In some cases, you may want to copy a program or function so that
you can edit the copy while retaining the original.
1. Display the program or function you want to copy.
2. Press ƒ and select 2:Save Copy As.
3. Specify the folder and variable for the copy.
4. Press ¸ twice.

Note about Because all Program Editor sessions are saved automatically, you
Deleting a Program can accumulate quite a few previous programs and functions, which
take up memory storage space.
To delete programs and functions, use the VAR-LINK screen
( 2 ° ). For information about VAR-LINK, refer to Chapter 21.

Chapter 17: Programming 269

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 269 of 40
Overview of Entering a Program

A program is a series of commands executed in sequential


order (although some commands alter the program flow). In
general, anything that can be executed from the Home screen
can be included in a program. Program execution continues
until it reaches the end of the program or a Stop command.

Entering and Editing On a blank template, you can begin entering commands for your new
Program Lines program.

Program name, which you


specify when you create a
new program.

Note: Use the cursor pad to Enter your program


scroll through the program commands between Prgm
for entering or editing and EndPrgm.
commands. Use ¥ C or
All program lines begin
¥ D to go to the top or with a colon.
bottom of a program,
respectively. You enter and edit program commands in the Program Editor by
using the same techniques used to enter and edit text in the Text
Editor. Refer to “Entering and Editing Text” in Chapter 18.
Note: Entering a command After typing each program line, press ¸. This inserts a new blank
does not execute that line and lets you continue entering another line. A program line can
command. It is not executed
until you run the program. be longer than one line on the screen; if so, it will wrap to the next
screen line automatically.

Entering Multi- To enter more than one command on the same line, separate them
Command Lines with a colon by pressing 2 Ë.

Entering Comments A comment symbol (¦ ) lets you enter a remark in a program. When
you run the program, all characters to the right of ¦ are ignored.

:prog1()
:Prgm
Tip: Use comments to enter Description of the :¦ Displays sum of 1 thru n
information that is useful to program. :Request "Enter an integer",n
someone reading the Description of expr. :expr(n)! n:¦ Convert to numeric expression
program code. :------

To enter the comment symbol:


¦ Press ¥ d.
— or —
¦ Press „ and select 9:¦.

270 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 270 of 40
Controlling the Flow When you run a program, the program lines are executed in
of a Program sequential order. However, some commands alter the program flow.
For example:
Tip: For information, refer to ¦ Control structures such as If...EndIf commands use a conditional
pages 283 and 285. test to decide which part of a program to execute.
¦ Loops commands such as For...EndFor repeat a group of
commands.

Using Indentation For more complex programs that :If x>5 Then
use If...EndIf and loop structures : Disp "x is > 5"
such as For...EndFor, you can make :Else
: Disp "x is < or = 5"
the programs easier to read and
:EndIf
understand by using indentation.

Displaying In a program, calculated results are not displayed unless you use an
Calculated Results output command. This is an important difference between
performing a calculation on the Home screen and in a program.

These calculations will not display :12ù 6


a result in a program (although they :cos(p/4)
will on the Home screen). :solve(x^2ì xì 2=0,x)

Tip: For a list of available Output commands such as Disp will :Disp 12ù 6
output commands, refer to display a result in a program. :Disp cos(p/4)
page 290. :Disp solve(x^2ì xì 2=0,x)

Displaying a calculation result does :cos(p/4)! maximum


not store that result. If you need to :Disp maximum
refer to a result later, store it to a
variable.

Getting Values into To input values into a program, you can:


a Program ¦ Require the users to store a value (with § ) to the necessary
variables before running the program. The program can then refer
to these variables.
¦ Enter the values directly into :Disp 12ù 6
the program itself. :cos(p/4)! maximum

¦ Include input commands that :Input "Enter a value",i


prompt the users to enter the :Request "Enter an integer",n
Tip: For a list of available necessary values when they
input commands, refer to
page 289. run the program.
¦ Require the users to pass one
prog1(3,5)
or more values to the
program when they run it.

Chapter 17: Programming 271

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 271 of 40
Example of Passing The following program draws a circle on the Graph screen and then
Values to a Program draws a horizontal line across the top of the circle. Three values
must be passed to the program: x and y coordinates for the circle’s
center and the radius r.
¦ When you write the program in the Program Editor:
Note: In this example, you In the ( ) beside the program :circ(x,y,r)
cannot use circle as the name, specify the variables :Prgm Only circ( ) is
program name because it
conflicts with a command that will be used to store the :FnOff initially displayed
name. passed values. :ZoomStd on the blank
:ZoomSqr template; be sure
Notice that the program also to edit this line.
:Circle x,y,r
contains commands that set :LineHorz y+r
up the Graph screen. :EndPrgm

Before drawing the circle, the program turns off any selected
Y= Editor functions, displays a standard viewing window, and
“squares” the window.

¦ To run the program from the Home screen:


Note: This example The user must specify the
assumes that the user circ(0,0,5)
applicable values as
enters values that can be Passed to r.
displayed by the viewing arguments within the ( ).
Passed to y.
window set up by ZoomStd
The arguments, in order, are Passed to x.
and ZoomSqr.
passed to the program.

272 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 272 of 40
Overview of Entering a Function

A function created in the Program Editor is very similar to the


functions and instructions that you typically use from the Home
screen.

Why Create a User- Functions (as well as programs) are ideal for repetitive calculations
Defined Function? or tasks. You only need to write the function once. Then you can
reuse it as many times as necessary. Functions, however, have some
advantages over programs.
Note: You can create a ¦ You can create functions that expand on the TI-89’s built-in
function from the Home functions. You can then use the new functions the same as any
screen (see Chapter 5), but
the Program Editor is more other function.
convenient for complex,
multi-line functions.
¦ Functions return values that can be graphed or entered in a table;
programs cannot.
¦ You can use a function (but not a program) within an expression.
For example: 3ù func1(3) is valid, but not 3ù prog1(3).
¦ Because you pass arguments to a function, you can write generic
functions that are not tied to specific variable names.

Differences This guidebook sometimes uses the word command as a generic


Between Functions reference to instructions and functions. When writing a function,
and Programs however, you must differentiate between instructions and functions.
A user-defined function:
¦ Can use the following instructions only. Any others are invalid.
Cycle Define Exit
For...EndFor Goto If...EndIf (all forms)
Lbl Local Loop...EndLoop
Return While...EndWhile ! ( § key)
¦ Can use all built-in TI-89 functions except:
setFold setGraph setMode
setTable switch
Tip: For information about ¦ Can refer to any variable; however, it can store a value to a local
local variables, refer to variable only.
pages 276 and 278.
− The arguments used to pass values to a function are treated as
local variables automatically. If you store to any other
variables, you must declare them as local from within the
function.
¦ Cannot call a program as a subroutine, but it can call another
user-defined function.
¦ Cannot define a program.
¦ Cannot define a global function, but it can define a local function.

Chapter 17: Programming 273

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 273 of 40
Entering a Function When you create a new function in the Program Editor, the TI-89
displays a blank “template”.

Function name, which you


specify when you create a
new function. Be sure to edit this line to
include any necessary
Note: Use the cursor pad to Enter your commands arguments. Remember to
between Func and use argument names in
scroll through the function the definition that will
for entering or editing EndFunc.
never be used when
commands. calling the function.
All function lines begin
with a colon.

If the function requires input, one or more values must be passed to


the function. (A user-defined function can store to local variables
only, and it cannot use instructions that prompt the user for input.)

How to Return a There are two ways to return a value from a function:
Value from a ¦ As the last line in the function :cube(x)
Function (before EndFunc), calculate the :Func
value to be returned. :x^3
:EndFunc

Note: This example ¦ Use Return. This is useful for :cube(x)


calculates the cube if x‚0; exiting a function and returning :Func
otherwise, it returns a 0. :If x<0
a value at some point other than
: Return 0
the end of the function.
:x^3
:EndFunc

The argument x is automatically treated as a local variable. However,


if the example needed another variable, the function would need to
declare it as local by using the Local command (pages 276 and 278).
There is an implied Return at the end of the function. If the last line is
not an expression, an error occurs.

x
Example of a The following function returns the xth root of a value y ( y ). Two
Function values must be passed to the function: x and y.

Function as defined in
Function as called from the Home Screen the Program Editor
3!x:125!y
Note: Because x and y in
the function are local, they
are not affected by any 4ù xroot(3,125) 20 :xroot(x,y)
existing x or y variable. :Func
:y^(1/x)
5
:EndFunc

274 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 274 of 40
Calling One Program from Another

One program can call another program as a subroutine. The


subroutine can be external (a separate program) or internal
(included in the main program). Subroutines are useful when a
program needs to repeat the same group of commands at
several different places.

Calling a Separate To call a separate program, use the same syntax used to run the
Program program from the Home screen.

:subtest1() :subtest2(x,y)
:Prgm :Prgm
:For i,1,4,1 : Disp x,y
: subtest2(i,iù 1000) :EndPrgm
:EndFor
:EndPrgm

Calling an Internal To define an internal subroutine, use the Define command with
Subroutine Prgm...EndPrgm. Because a subroutine must be defined before it can
be called, it is a good practice to define subroutines at the beginning
of the main program.
An internal subroutine is called and executed in the same way as a
separate program.

Declares the subroutine :subtest1()


Tip: Use the Program
Editor’s † Var toolbar as a local variable. :Prgm
menu to enter the Define :local subtest2
and Prgm...EndPrgm :Define subtest2(x,y)=Prgm
commands. Defines the subroutine. : Disp x,y
:EndPrgm
:¦ Beginning of main program
:For i,1,4,1
: subtest2(i,iù 1000)
Calls the subroutine. :EndFor
:EndPrgm

Notes about Using At the end of a subroutine, execution returns to the calling program.
Subroutines To exit a subroutine at any other time, use the Return command.
A subroutine cannot access local variables declared in the calling
program. Likewise, the calling program cannot access local variables
declared in a subroutine.
Lbl commands are local to the programs in which they are located.
Therefore, a Goto command in the calling program cannot branch to
a label in a subroutine or vice versa.

Chapter 17: Programming 275

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 275 of 40
Using Variables in a Program

Programs use variables in the same general way that you use
them from the Home screen. However, the “scope” of the
variables affects how they are stored and accessed.

Scope of Variables Scope Description


System Variables with reserved names that are created
(Global) automatically to store data about the state of the TI-89.
Variables For example, Window variables (xmin, xmax, ymin,
ymax, etc.) are globally available from any folder.
¦ You can always refer to these variables by using
the variable name only, regardless of the current
folder.
¦ A program cannot create system variables, but it
can use the values and (in most cases) store new
values.
Note: For information about Folder Variables that are stored in a particular folder.
folders, refer to Chapter 5. Variables
¦ If you store to a variable name only, it is stored in
the current folder. For example:
5! start
¦ If you refer to a variable name only, that variable
must be in the current folder. Otherwise, it cannot
be found (even if the variable exists in a different
folder).
¦ To store or refer to a variable in another folder,
you must specify a pathname. For example:
5! class\start
Variable name
Folder name

After the program stops, any folder variables created


by the program still exist and still take up memory.
Note: If a program has local Local Temporary variables that exist only while a program is
variables, a graphed Variables running. When the program stops, local variables are
function cannot access
them. For example:
deleted automatically.
Local a ¦ To create a local variable in a program, use the
5! a
Graph aù cos(x) Local command to declare the variable.
may display an error or an
unexpected result (if a is an ¦ A local variable is treated as unique even if there is
existing variable in the an existing folder variable with the same name.
current folder).
¦ Local variables are ideal for temporarily storing
values that you do not want to save.

276 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 276 of 40
Circular Definition When evaluating a user-defined function or running a program, you
Errors can specify an argument that includes the same variable that was
used to define the function or create the program. However, to avoid
Circular definition errors, you must assign a value for x or i variables
that are used in evaluating the function or running the program.
For example:
x+1!x
Causes a Circular definition error message if x
– or – or i does not have a value. The error does not
For i,i,10,1 occur if x or i has already been assigned a value.
Disp i
EndFor

Variable-Related Command Description


Commands § key Stores a value to a variable. As on the Home screen,
pressing § enters a ! symbol.
Archive Moves specified variables from RAM to user data
archive memory.
BldData Lets you create a data variable based on the graph
information entered in the Y=Editor, Window
Editor, etc.

Note: The Define, DelVar,


CopyVar Copies the contents of a variable.
and Local commands are Define Defines a program (subroutine) or function variable
available from the Program within a program.
Editor’s † Var toolbar
menu. DelFold Deletes a folder. All variables in that folder must be
deleted first.
DelVar Deletes a variable.
getFold Returns the name of the current folder.
getType Returns a string that indicates the data type (EXPR,
LIST, etc.) of a variable.
Local Declares one or more variables as local variables.
Lock Locks a variable so that it cannot be accidentally
changed or deleted without first being unlocked.
MoveVar Moves a variable from one folder to another.
NewData Creates a data variable whose columns consist of a
series of specified lists.
NewFold Creates a new folder.
NewPic Creates a picture variable based on a matrix.
Rename Renames a variable.
Unarchiv Moves specified variables from user data archive
memory to RAM.
Unlock Unlocks a locked variable.

Chapter 17: Programming 277

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 277 of 40
Using Local Variables in Functions or Programs

A local variable is a temporary variable that exists only while a


user-defined function is being evaluated or a user-defined
program is running.

Example of a Local The following program segment shows a For...EndFor loop (which is
Variable discussed later in this chapter). The variable i is the loop counter. In
most cases, the variable i is used only while the program is running.

Tip: As often as possible, Declares variable i as local. :Local i


use local variables for any
:For i,0,5,1
variable that is used only
within a program and does : Disp i
not need to be stored after :EndFor
the program stops. :Disp i

If you declare variable i as local, it is deleted automatically when the


program stops so that it does not use up memory.

What Causes an An Undefined variable error message displays when you evaluate a
Undefined Variable user-defined function or run a user-defined program that references
Error Message? a local variable that is not initialized (assigned a value).
This example is a multi-statement function, rather than a program.
Line breaks are shown here, but you would type the text in the entry
line as one continuous line, such as: Define fact(n)=Func:Local…
where the ellipsis indicates the entry line text continues off-screen.
For example:
Define fact(n)=Func:
Local m: Local variable m is not assigned an
While n>1: initial value.
nùm!m: nì1!n:
EndWhile:
Return m:
EndFunc
In the example above, the local variable m exists independently of
any variable m that exists outside of the function.

You Must Initialize All local variables must be assigned an initial value before they are
Local Variables referenced.
Define fact(n)=Func:
Local m: 1!m: 1 is stored as the initial value for m.
While n>1:
nùm!m: nì1!n:
EndWhile:
Return m:
EndFunc
The TI-89 cannot use a local variable to perform symbolic
calculations.

278 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 278 of 40
To Perform If you want a function or program to perform symbolic calculations,
Symbolic you must use a global variable instead of a local. However, you must
Calculations be certain that the global variable does not already exist outside of
the program. The following methods can help.
¦ Refer to a global variable name, typically with two or more
characters, that is not likely to exist outside of the function or
program.
Include DelVar within the function or program to delete the global
variable, if it exists, before referring to it. (DelVar does not delete
locked or archived variables.)

Chapter 17: Programming 279

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 279 of 40
String Operations

Strings are used to enter and display text characters. You can
type a string directly, or you can store a string to a variable.

How Strings Are A string is a sequence of characters enclosed in "quotes". In


Used programming, strings allow the program to display information or
prompt the user to perform some action. For example:
Disp "The result is",answer
— or —
Input "Enter the angle in degrees",ang1
— or —
"Enter the angle in degrees”! str1
Input str1,ang1

Some input commands (such as InputStr) automatically store user


input as a string and do not require the user to enter quotation
marks.
A string cannot be evaluated mathematically, even if it appears to be
a numeric expression. For example, the string "61" represents the
characters "6" and "1", not the number 61.
Although you cannot use a string such as "61" or "2x+4" in a
calculation, you can convert a string into a numeric expression by
using the expr command.

280 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 280 of 40
String Commands Command Description
Note: See Appendix A for
syntax for all TI-89
# Converts a string into a variable name. This is called
commands and functions. indirection.
& Appends (concatenates) two strings into one string.
char Returns the character that corresponds to a
specified character code. This is the opposite of the
ord command.
dim Returns the number of characters in a string.
expr Converts a string into an expression and executes
that expression. This is the opposite of the string
command.
Important: Some user input commands store the
entered value as a string. Before you can perform a
mathematical operation on that value, you must
convert it to a numeric expression.
format Returns an expression as a character string based
on the format template (fixed, scientific,
engineering, etc.)
inString Searches a string to see if it contains a specified
substring. If so, inString returns the character
position where the first occurrence of the substring
begins.
left Returns a specified number of characters from the
left side (beginning) of a string.
mid Returns a specified number of characters from any
position within a string.
ord Returns the character code of the first character
within a string. This is the opposite of the char
command.
right Returns a specified number of characters from the
right side (end) of a string.
rotate Rotates the characters in a string. The default is L1
(rotate right one character).
shift Shifts the characters in a string and replaces them
with spaces. The default is L1 (shift right one
character and replace with one space). Examples:
shift("abcde",2)⇒"cde " and shift("abcde")⇒" abcd"

string Converts a numeric expression into a string. This is


the opposite of the expr command.

Chapter 17: Programming 281

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 281 of 40
Conditional Tests

Conditional tests let programs make decisions. For example,


depending on whether a test is true or false, a program can
decide which of two actions to perform. Conditional tests are
used with control structures such as If...EndIf and loops such
as While...EndWhile (described later in this chapter).

Entering a Test ¦ Type the operator directly from the keyboard.


Operator — or —
¦ Press 2 I and select
8:Test. Then select the
operator from the menu.
— or —
¦ Press ½. The test
operators are listed near the
bottom of the CATALOG
menu.

Relational Tests Relational operators let you define a conditional test that compares
two values. The values can be numbers, expressions, lists, or
matrices (but they must match in type and dimension).

Operator True if: Example


Tip: From the keyboard, > Greater than a>8
you can type: < Less than a<0
>= for ‚ ‚ Greater than or equal to a+b‚100
<= for 
/= for ƒ  Less than or equal to a+6b+1
(To get the / character, = Equal list1=list2
press e.) ƒ Not equal to mat1ƒmat2

Boolean Tests Boolean operators let you combine the results of two separate tests.

Operator True if: Example


and Both tests are true a>0 and a10
or At least one test is true a0 or b+c>10
xor One test is true and the a+6<b+1 xor c<d
other is false

The Not Function The not function changes the result of a test from true to false and
vice versa. For example:
not x>2 is true if x2
false if x>2
Note: If you use not from the Home screen, it is shown as ~ in the
history area. For example, not x>2 is shown as ~(x>2).

282 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 282 of 40
Using If, Lbl, and Goto to Control Program Flow

An If...EndIf structure uses a conditional test to decide


whether or not to execute one or more commands. Lbl (label)
and Goto commands can also be used to branch (or jump)
from one place to another in a program.

„ Control Toolbar To enter If...EndIf structures, use


Menu the Program Editor’s „ Control
toolbar menu.

The If command is available


directly from the „ menu.
To see a submenu that lists other
If structures, select 2:If...Then.

When you select a structure such as :If | Then


If...Then...EndIf, a template is
:EndIf
inserted at the cursor location.
The cursor is positioned so
that you can enter a
conditional test.
If Command To execute only one command if a conditional test is true, use the
general form:

Tip: Use indentation to Executed only if x>5; :If x>5


make your programs easier otherwise, skipped.
: Disp "x is greater than 5"
to read and understand. Always displays the value of x. :Disp x

In this example, you must store a value to x before executing the


If command.

If...Then...EndIf To execute multiple commands if a conditional test is true, use the


Structures structure:

:If x>5 Then


: Disp "x is greater than 5"
Note: EndIf marks the end Executed only if x>5.
: 2ù x! x
of the Then block that is
executed if the condition is :EndIf
true. Displays value of: :Disp x
• 2x if x>5.
• x if x5.

Chapter 17: Programming 283

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 283 of 40
If...Then...Else... To execute one group of commands if a conditional test is true and a
EndIf Structures different group if the condition is false, use this structure:

:If x>5 Then


: Disp "x is greater than 5"
Executed only if x>5.
: 2ù x! x
:Else
: Disp "x is less than or
Executed only if x5.
equal to 5"
: 5ù x! x
:EndIf
Displays value of: :Disp x
• 2x if x>5.
• 5x if x5.

If...Then...ElseIf... A more complex form of the If command lets you test a series of
EndIf Structures conditions. Suppose your program prompts the user for a number
that corresponds to one of four options. To test for each option
(If Choice=1, If Choice = 2, etc.), use the If...Then...ElseIf...EndIf
structure.
Refer to Appendix A for more information and an example.

Lbl and Goto You can also control the flow of your program by using Lbl (label)
Commands and Goto commands.
Use the Lbl command to label (assign a name to) a particular
location in the program.
Lbl labelName

name to assign to this location (use the same


naming convention as a variable name)

You can then use the Goto command at any point in the program to
branch to the location that corresponds to the specified label.
Goto labelName

specifies which Lbl command to branch to

Because a Goto command is unconditional (it always branches to the


specified label), it is often used with an If command so that you can
specify a conditional test. For example:

:If x>5
If x>5, branches directly to : Goto GT5
label GT5. :Disp x
:--------
For this example, the program :--------
must include commands (such :Lbl GT5
as Stop) that prevent Lbl GT5
from being executed if x5. :Disp "The number was > 5”

284 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 284 of 40
Using Loops to Repeat a Group of Commands

To repeat the same group of commands successively, use a


loop. Several types of loops are available. Each type gives you
a different way to exit the loop, based on a conditional test.

„ Control Toolbar To enter most of the loop-related


Menu commands, use the Program
Editor’s „ Control toolbar menu.

When you select a loop, the loop :For |


command and its corresponding :EndFor
Note: A loop command
marks the start of the loop. End command are inserted at the If the loop requires
The corresponding End cursor location. arguments, the cursor is
command marks the end of positioned after the command.
the loop.
You can then begin entering the commands that will be executed in
the loop.

For...EndFor Loops A For...EndFor loop uses a counter to control the number of times
the loop is repeated. The syntax of the For command is:
For(variable, begin, end [, increment])
added to the counter each subsequent time
Note: The ending value can For is executed (If this optional value is
be less than the beginning omitted, the increment is 1.)
value, but the increment exits the loop when variable exceeds this value
must be negative.
counter value used the first time For is executed
variable used as a counter

When For is executed, the variable value is compared to the end


value. If variable does not exceed end, the loop is executed;
otherwise, program control jumps to the command following EndFor.

Note: The For command :For i,0,5,1


i>5 i5 : --------
automatically increments the
counter variable so that the : --------
program can exit the loop :EndFor
after a certain number of :--------
repetitions.

At the end of the loop (EndFor), program control jumps back to the
For command, where variable is incremented and compared to end.

Chapter 17: Programming 285

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 285 of 40
For example:
Tip: You can declare the :For i,0,5,1
counter variable as local
Displays 0, 1, 2, 3, 4, and 5. : Disp i
(pages 276 and 278) if it
does not need to be saved :EndFor
after the program stops. Displays 6. When variable :Disp i
increments to 6, the loop
is not executed.

While...EndWhile A While...EndWhile loop repeats a block of commands as long as a


Loops specified condition is true. The syntax of the While command is:
While condition
When While is executed, the condition is evaluated. If condition is
true, the loop is executed; otherwise, program control jumps to the
command following EndWhile.
Note: The While command :While x<5
does not automatically x‚5 x<5 : --------
change the condition. You
must include commands : --------
that allow the program to :EndWhile
exit the loop. :--------

At the end of the loop (EndWhile), program control jumps back to


the While command, where condition is re-evaluated.
To execute the loop the first time, the condition must initially be
true.
¦ Any variables referenced in the condition must be set before the
While command. (You can build the values into the program or
prompt the user to enter the values.)
¦ The loop must contain commands that change the values in the
condition, eventually causing it to be false. Otherwise, the
condition is always true and the program cannot exit the loop
(called an infinite loop).
For example:

Initially sets x. :0! x


:While x<5
Displays 0, 1, 2, 3, and 4. : Disp x
Increments x. : x+1! x
:EndWhile
Displays 5. When x :Disp x
increments to 5, the loop is
not executed.

286 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 286 of 40
Loop...EndLoop A Loop...EndLoop creates an infinite loop, which is repeated
Loops endlessly. The Loop command does not have any arguments.

:Loop
: --------
: --------
:EndLoop
:--------

Typically, the loop contains commands that let the program exit
from the loop. Commonly used commands are: If, Exit, Goto, and
Lbl (label). For example:

:0! x
:Loop
: Disp x
: x+1! x
An If command checks : If x>5
the condition. : Exit
Note: The Exit command
:EndLoop
exits from the current loop.
Exits the loop and jumps to :Disp x
here when x increments to 6.

In this example, the If command can be anywhere in the loop.

When the If command is: The loop is:


At the beginning of the loop Executed only if the condition is true.
At the end of the loop Executed at least once and repeated
only if the condition is true.

The If command could also use a Goto command to transfer program


control to a specified Lbl (label) command.

Repeating a Loop The Cycle command immediately transfers program control to the
Immediately next iteration of a loop (before the current iteration is complete).
This command works with For...EndFor, While...EndWhile, and
Loop...EndLoop.

Lbl and Goto Although the Lbl (label) and Goto commands are not strictly loop
Loops commands, they can be used to create an infinite loop. For example:

:Lbl START
: --------
: --------
:Goto START
:--------

As with Loop...EndLoop, the loop should contain commands that let


the program exit from the loop.

Chapter 17: Programming 287

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 287 of 40
Configuring the TI-89

Programs can contain commands that change the TI-89’s


configuration. Because mode changes are particularly useful,
the Program Editor’s 2 ˆ Mode toolbar menu makes it
easy to enter the correct syntax for the setMode command.

Configuration Command Description


Commands getConfg Returns a list of calculator characteristics.
getFold Returns the name of the current folder.
getMode Returns the current setting for a specified mode.
getUnits Returns a list of default units.
setFold Sets the current folder.
setGraph Sets a specified graph format (Coordinates, Graph
Order, etc.).
setMode Sets any mode except Current Folder.
setTable Sets a specified table setup parameter
(tblStart, @tbl, etc.)
setUnits Sets default units for displayed results.
switch Sets the active window in a split screen, or returns
the number of the active window.

Entering the In the Program Editor:


SetMode Command 1. Position the cursor where you want to insert the setMode
command.
Note: 2 ˆ does not let 2. Press 2 ˆ to
you set the Current Folder display a list of
mode. To set this mode, use
the setFold command. modes.
3. Select a mode to
display a menu of its
valid settings.
4. Select a setting.
The correct syntax is
inserted into your :setMode("Graph","FUNCTION")
program.

288 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 288 of 40
Getting Input from the User and Displaying Output

Although values can be built into a program (or stored to


variables in advance), a program can prompt the user to enter
information while the program is running. Likewise, a program
can display information such as the result of a calculation.

… I/O Toolbar Menu To enter most of the commonly


used input/output commands, use
the Program Editor’s … I/O toolbar
menu.

To see a submenu that lists


additional commands, select
1:Dialog.

Input Commands Command Description


getKey Returns the key code of the next key pressed.
Input Prompts the user to enter an expression. The
expression is treated according to how it is entered.
For example:
¦ A numeric expression is treated as an
expression.
¦ An expression enclosed in "quotes" is treated as
a string.
Input can also display the Graph screen and let the
user update the variables xc and yc (rc and qc in
polar mode) by positioning the graph cursor.
Tip: String input cannot be InputStr Prompts the user to enter an expression. The
used in a calculation. To
expression is always treated as a string; the user
convert a string to a numeric
expression, use the expr does not need to enclose the expression in "quotes".
command.
PopUp Displays a pop-up menu box and lets the user select
an item.
Prompt Prompts the user to enter a series of expressions. As
with Input, each expression is treated according to
how it is entered.
Request Displays a dialog box that prompts the user to enter
an expression. Request always treats the entered
expression as a string.

Chapter 17: Programming 289

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 289 of 40
Output Commands Command Description
ClrZO Clears the Program I/O screen.
Note: In a program, simply Disp Displays an expression or string on the Program I/O
performing a calculation screen. Disp can also display the current contents of
does not display the result.
You must use an output
the Program I/O screen without displaying
command. additional information.
DispG Displays the current contents of the Graph screen.
DispHome Displays the current contents of the Home screen.
DispTbl Displays the current contents of the Table screen.
Output Displays an expression or string starting at specified
coordinates on the Program I/O screen.
Format Formats the way in which numeric information is
displayed.
Tip: After Disp and Output, Pause Suspends program execution until the user presses
the program immediately ¸. Optionally, you can display an expression
continues. You may want to
add a Pause command.
during the pause. A pause lets users read your
output and decide when they are ready to continue.
Text Displays a dialog box that contains a specified
character string.

Graphical User Command Description


Interface Dialog... Defines a program block (consisting of Title,
Commands endDlog Request, etc., commands) that displays a dialog box.
Toolbar... Defines a program block (consisting of Title, Item,
EndTbar etc., commands) that replaces the toolbar menus.
The redefined toolbar is in effect only while the
program is running and only until the user selects an
item. Then the original toolbar is redisplayed.
Tip: When you run a CustmOn... Activates or removes a custom toolbar.
program that sets up a CustmOff
custom toolbar, that toolbar
is still available even after Custom... Defines a program block that displays a custom
the program has stopped. EndCustm toolbar when the user presses 2 ¾. That
toolbar remains in effect until the user presses
2 ¾ again or changes applications.
DropDown Displays a drop-down menu within a dialog box.
Item Displays a menu item for a redefined toolbar.
Note: Request and Text Request Creates an input box within a dialog box.
are stand-alone commands
that can also be used Text Displays a character string within a dialog box.
outside of a dialog box or
toolbar program block. Title Displays the title of a dialog box or a menu title
within a toolbar.

290 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 290 of 40
Creating a Custom Menu

The TI-89’s custom menu feature lets you create your own
toolbar menu. A custom menu can contain any available
function, instruction, or set of characters. The TI-89 has a
default custom menu that you can modify or redefine.

Turning the Custom When you create a custom menu, you can let the user turn it on and
Menu On and Off off manually, or you can let a program turn it on and off
automatically.

To: Do this:
Note: When the custom Turn on the From the Home screen or any other application:
menu is turned on, it custom menu
replaces the normal toolbar ¦ Press 2 ¾.
menu. Unless a different
custom menu has been From the Home screen or a program:
created, the default custom
menu is displayed. ¦ Execute the CustmOn command.
Turn off the From any application:
custom menu
¦ Press 2 ¾ again.
— or —
¦ Go to a different application.
Using the default custom menu on the Home
screen:
1. Select 2 ‰ Tools.
Then select 3:CustmOff.
This pastes CustmOff in
the entry line. CustmOff
2. Press ¸.
You can also use CustmOff in a program.

Defining a Custom To create a custom menu, use the following general structure.
Menu :Custom
: Title title of F1 menu
Note: When the user : Item item 1
selects a menu item, the
text defined by that Item : Item item 2
command is pasted to the : øøø
current cursor location. : Title title of F2 menu
: øøø
: Title title of F3 menu
: øøø
:EndCustm

Chapter 17: Programming 291

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 291 of 40
Note: The following may be For example:
slightly different than the
default custom menu on :Custom
your calculator. :Title "Vars"
:Item "L1":Item "M1":Item "Prgm1":Item "Func1":Item "Data1"
:Item "Text1":Item "Pic1":Item "GDB1":Item "Str1"
:Title "f(x)"
:Item "f(x)":Item "g(x)":Item "f(x,y)":Item "g(x,y)"
:Item "f(x+h)":Item "Define f(x) ="
:Title "Solve"
:Item "Solve(":Item " and ":Item "{x,y}"
:Item "Solve( and ,{x,y})"
:Title "Units"
:Item "_m/_s^2":Item "_ft/_s^2":Item "_m":Item "_ft":Item "_l"
:Item "_gal":Item "_\o\C":Item "_\o\F":Item "_kph":Item "_mph"
:Title "Symbols"
:Item "#":Item "\beta\":Item "?":Item "~":Item "&"
Note: See how "_\o\C" and
:Title "Internat'l"
"_\o\F" display as ¡C and ¡F
in the menu. Similarly, see :Item "\e`\":Item "\e'\":Item "\e^\":Item "\a`\"
the international accented :Item "\u`\":Item "\u^\":Item "\o^\":Item "\c,\":Item "\u..\"
characters. :Title "Tools"
:Item "ClrHome":Item "NewProb":Item "CustmOff"
:EndCustm
:CustmOn

Note: This inserts all the To modify the default custom menu, use 3:Restore custom default
commands on a single line. (as described below) to get the commands for the default menu.
You do not need to split
them into separate lines. Copy those commands, use the Program Editor to create a new
program, and paste them into the blank program. Then modify the
commands as necessary.
You can create and use only one custom menu at a time. If you need
more, write a separate program for each custom menu. Then run the
program for the menu you need.

Restoring the To restore the default:


Default Custom 1. From the Home screen’s normal menu (not the custom menu),
Menu select 2 ˆ Clean Up.
2. Select 3:Restore custom default.
This pastes the commands used
to create the default menu into
the entry line.
3. Press ¸ to execute the commands and restore the default.
When you restore the default, any previous custom menu is erased. If
the previous menu was created with a program, you can run the
program again if you want to reuse the menu later.

292 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 292 of 40
Creating a Table or Graph

To create a table or a graph based on one or more functions or


equations, use the commands listed in this section.

Table Commands Command Description


DispTbl Displays the current contents of the Table screen.
setTable Sets the Graph <–> Table or Independent table
parameters. (To set the other two table parameters,
you can store the applicable values to the tblStart
and @tbl system variables.)
Table Builds and displays a table based on one or more
expressions or functions.

Graphing Command Description


Commands ClrGraph Erases any functions or expressions that were
graphed with the Graph command.
Define Creates a user-defined function.
DispG Displays the current contents of the Graph screen.
FnOff Deselects all (or only specified) Y= functions.
FnOn Selects all (or only specified) Y= functions.
Graph Graphs one or more specified expressions, using the
current graphing mode.
Input Displays the Graph screen and lets the user update
the variables xc and yc (rc and qc in polar mode) by
positioning the graph cursor.
NewPlot Creates a new stat plot definition.
PlotsOff Deselects all (or only specified) stat data plots.
PlotsOn Selects all (or only specified) stat data plots.
setGraph Changes settings for the various graph formats
(Coordinates, Graph Order, etc.).
Note: For more information setMode Sets the Graph mode, as well as other modes.
about using setMode, refer
to page 288. Style Sets the display style for a function.
Trace Lets a program trace a graph.
ZoomBox Perform all of the Zoom operations that are available
– to – from the „ toolbar menu on the Y= Editor, Window
ZoomTrig Editor, and Graph screen.

Chapter 17: Programming 293

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 293 of 40
Graph Picture and Command Description
Database AndPic Displays the Graph screen and superimposes a
Commands stored graph picture by using AND logic.
CyclePic Animates a series of stored graph pictures.
Note: For information about
graph pictures and NewPic Creates a graph picture variable based on a matrix.
databases, also refer to
Chapter 12. RclGDB Restores all settings stored in a graph database.
RclPic Displays the Graph screen and superimposes a
stored graph picture by using OR logic.
RplcPic Clears the Graph screen and displays a stored graph
picture.
StoGDB Stores the current graph settings to a graph
database variable.
StoPic Copies the Graph screen (or a specified rectangular
portion) to a graph picture variable.
XorPic Displays the Graph screen and superimposes a
stored graph picture by using XOR logic.

294 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 294 of 40
Drawing on the Graph Screen

To create a drawing object on the Graph screen, use the


commands listed in this section.

Pixel vs. Point When drawing an object, you can use either of two coordinate
Coordinates systems to specify a location on the screen.
¦ Pixel coordinates — Refer to the pixels that physically make up
the screen. These are independent of the viewing window
because the screen is always 160 (0 to 159) pixels wide and 100
(0 to 99) pixels tall.
¦ Point coordinates — Refer to the coordinates in effect for the
current viewing window (as defined in the Window Editor).

(0,0) (159,0) (-10,10) (10,10)


Tip: For information about
pixel coordinates in split
screens, refer to
Chapter 14. (0,99) (159,99) (-10,-10) (10,-10)

Pixel coordinates Point coordinates


(independent of viewing window) (for standard viewing window)

Note: Pixel commands start Many drawing commands have two forms: one for pixel coordinates
with Pxl, such as PxlChg. and one for point coordinates.

Erasing Drawn Command Description


Objects ClrDraw Erases all drawn objects from the Graph screen.

Drawing a Point or Command Description


Pixel PtChg or Toggles (inverts) a pixel at the specified coordinates.
PxlChg PtChg, which uses point coordinates, affects the
pixel closest to the specified point. If the pixel is off,
it is turned on. If the pixel is on, it is turned off.
PtOff or Turns off (erases) a pixel at the specified
PxlOff coordinates. PtOff, which uses point coordinates,
affects the pixel closest to the specified point.
PtOn or Turns on (displays) a pixel at the specified
PxlOn coordinates. PtOn, which uses point coordinates,
affects the pixel closest to the specified point.
PtTest or Returns true or false to indicate if the specified
PxlTest coordinate is on or off, respectively.
PtText or Displays a character string at the specified
PxlText coordinates.

Chapter 17: Programming 295

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 295 of 40
Drawing Lines and Command Description
Circles Circle or Draws, erases, or inverts a circle with a specified
PxlCrcl center and radius.
DrawSlp Draws a line with a specified slope through a
specified point.
Line or Draws, erases, or inverts a line between two sets of
PxlLine coordinates.
LineHorz or Draws, erases, or inverts a horizontal line at a
PxlHorz specified row coordinate.
LineTan Draws a tangent line for a specified expression at a
specified point. (This draws the tangent line only,
not the expression.)
LineVert or Draws, erases, or inverts a vertical line at a
PxlVert specified column coordinate.

Drawing Command Description


Expressions DrawFunc Draws a specified expression.
DrawInv Draws the inverse of a specified expression.
DrawParm Draws a parametric equation using specified
expressions as its x and y components.
DrawPol Draws a specified polar expression.
DrwCtour Draws contours in 3D graphing mode.
Shade Draws two expressions and shades the areas where
expression1 < expression2.

296 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 296 of 40
Accessing Another TI-89, a CBLé, or a CBRé

If you link two TI-89's (described in Chapter 22), programs on


both units can transmit variables between them. If you link a
TI-89 to a Calculator-Based Laboratoryé (CBL) or a
Calculator-Based Ranger™ (CBR), a program on the TI-89 can
access the CBL or CBR.

… I/O Toolbar Menu Use the Program Editor’s … I/O


toolbar menu to enter the commands
in this section.
1. Press … and select 8:Link.
2. Select a command.

Accessing Another When two TI-89s are linked, one acts as a receiving unit and the other
TI-89 as a sending unit.

Command Description
GetCalc Executed on the receiving unit. Sets up the unit to
receive a variable via the I/O port.
Note: For a sample program ¦ After the receiving unit executes GetCalc, the
that synchronizes the
receiving and sending units sending unit must execute SendCalc.
so that GetCalc and
SendCalc are executed in ¦ After the sending unit executes SendCalc, the
the proper sequence, refer sent variable is stored on the receiving unit (in
to “Transmitting Variables the variable name specified by GetCalc).
under Program Control” in
Chapter 22. SendCalc Executed on the sending unit. Sends a variable to
the receiving unit via the I/O port.
¦ Before the sending unit executes SendCalc, the
receiving unit must execute GetCalc.
SendChat Executed on the sending unit as a general
alternative to SendCalc. Useful if the receiving unit
is a TI-92 (or for a generic "chat" program that
allows either a TI-92 or TI-92 Plus to be used).

Accessing a CBL or For additional information, refer to the manual that comes with the
CBR CBL or CBR unit.
Note: Before using the CBR
with the TI-89, you need to Command Description
obtain a separate CBR Get Gets a variable from an attached CBL or CBR and
program for the TI-89, which
is available from the TI web
stores it in the TI-89.
site at: http://www.ti.com/ Send Sends a list variable from the TI-89 to the CBL or
calc/docs/89.htm
CBR.

Chapter 17: Programming 297

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 297 of 40
Debugging Programs and Handling Errors

After you write a program, you can use several techniques to


find and correct errors. You can also build an error-handling
command into the program itself.

Run-Time Errors The first step in debugging your program is to run it. The TI-89
automatically checks each executed command for syntax errors. If
there is an error, a message indicates the nature of the error.
¦ To display the program in the
Program Editor, press ¸.
The cursor appears in the
approximate area of the error.
¦ To cancel program execution and return to the Home screen,
press N.
If your program allows the user to select from several options, be
sure to run the program and test each option.

Debugging Run-time error messages can locate syntax errors but not errors in
Techniques program logic. The following techniques may be useful.
¦ During testing, do not use local variables so that you can check
the variable values after the program stops. When the program is
debugged, declare the applicable variables as local.
¦ Within a program, temporarily insert Disp and Pause commands
to display the values of critical variables.
− Disp and Pause cannot be used in a user-defined function. To
temporarily change the function into a program, change Func
and EndFunc to Prgm and EndPrgm. Use Disp and Pause to
debug the program. Then remove Disp and Pause and change
the program back into a function.
¦ To confirm that a loop is executed the correct number of times,
display the counter variable or the values in the conditional test.
¦ To confirm that a subroutine is executed, display messages such
as "Entering subroutine" and "Exiting subroutine" at the beginning and
end of the subroutine.

Error-Handling Command Description


Commands Try...EndTry Defines a program block that lets the program
execute a command and, if necessary, recover from
an error generated by that command.
ClrErr Clears the error status and sets the error number in
system variable Errornum to zero.
PassErr Passes an error to the next level of the Try...EndTry
block.

298 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 298 of 40
Example: Using Alternative Approaches

The preview at the beginning of this chapter shows a program


that prompts the user to enter an integer, sums all integers
from 1 to the entered integer, and displays the result. This
section gives several approaches that you can use to achieve
the same goal.

Example 1 This example is the program given in the preview at the beginning of
the chapter. Refer to the preview for detailed information.
:prog1()
Prompts for input :Prgm
in a dialog box.
:Request "Enter an integer",n
Converts string entered :expr(n)! n
with Request to an :0! temp
expression.
:For i,1,n,1
Loop calculation. : temp+i! temp
:EndFor
Displays output on :Disp temp
Program I/O screen. :EndPrgm

Example 2 This example uses InputStr for input, a While...EndWhile loop to


calculate the result, and Text to display the result.
:prog2()
Prompts for input on :Prgm
Program I/O screen.
:InputStr "Enter an integer",n
Converts string entered :expr(n)! n
with InputStr to an :0! temp:1! i
expression.
Tip: For , type <=. :While in
For &, press ¥ p (times). : temp+i! temp
Loop calculation.
: i+1! i
:EndWhile
Displays output :Text "The answer is "&string(temp)
in a dialog box. :EndPrgm

Example 3 This example uses Prompt for input, Lbl and Goto to create a loop,
and Disp to display the result.
:prog3()
:Prgm
Note: Because Prompt Prompts for input on :Prompt n
returns n as a number, you Program I/O screen. :0! temp:1! i
do not need to use expr to :Lbl top
convert n. : temp+i! temp
Loop calculation. : i+1! i
Tip: For , type <=. : If in
: Goto top
Displays output on :Disp temp
Program I/O screen. :EndPrgm

Chapter 17: Programming 299

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 299 of 40
Example 4 This example uses Dialog...EndDlog to create dialog boxes for input
and output. It uses Loop...EndLoop to calculate the result.
:prog4()
:Prgm
:Dialog
Defines a dialog box : Title "Enter an integer"
for input. : Request "Integer",n
:EndDlog
Converts string entered :expr(n)! n
with Request to an :0! temp:0! i
expression.
:Loop
: temp+i! temp
: i+1! i
Loop calculation.
: If i>n
: Exit
:EndLoop
:Dialog
Defines a dialog : Title "The answer is"
box for output. : Text string(temp)
:EndDlog
:EndPrgm

Example 5 This example uses the TI-89’s built-in functions to calculate the result
without using a loop.
:prog5()
Prompts for input on :Prgm
Program I/O screen.
Note: Because Input :Input "Enter an integer",n
returns n as a number, you Calculates sum. :sum(seq(i,i,1,n))! temp
do not need to use expr to :Disp temp
convert n. Displays output on
Program I/O screen. :EndPrgm

Function Used in this example to:


seq Generate the sequence of integers from 1 to n.
seq(expression, var, low, high [,step])
increment for var ;
if omitted, uses 1.
initial and final values of var
variable that will be incremented
expression used to generate the sequence

sum Sum the integers in the list generated by seq.

300 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 300 of 40
Assembly-Language Programs

You can run programs written for the TI-89 in assembly


language. Typically, assembly-language programs run much
faster and provide greater control than the keystroke programs
that you write with the built-in Program Editor.

Where to Get Assembly-language programs, as well as http://www.ti.com/calc


Assembly-Language keystroke programs, are available on
Programs the TI web site at:
http://www.ti.com/calc
The programs available from this site
provide additional functions or
features that are not built into the
TI-89. Check the TI web site for up-to-
date information.
via TI-GRAPH LINK
After downloading a program from the for the TI-89
web to your computer, use a TI-GRAPH
TI-89

LINKé (available separately) to send


the program to your TI-89. Refer to the
manual that comes with the TI-GRAPH
LINK.

Running an After a TI-89 assembly-language program is stored on your unit, you


Assembly-Language can run the program from the Home screen just as you would any
Program other program.
If the program requires one or more arguments,
type them within the ( ). Refer to the program’s
documentation to find out about required
arguments.

Tip: If the program is not in


the current folder, be sure to
specify the pathname.

You can call an assembly-language program from another program as


a subroutine, delete it, or use it the same as any other program.

Chapter 17: Programming 301

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 301 of 40
Shortcuts to Run a On the Home screen, you can use keyboard shortcuts to run up to
Program nine user-defined or assembly-language programs. However, the
programs must have the following names.

On Home screen, press: To run a program, if any, named:


Note: The programs must ¥1 kbdprgm1()
be stored in the MAIN folder. © ©
Also, you cannot use a
shortcut to run a program ¥9 kbdprgm9()
that requires an argument.
If you have a program with a different name and you would like to
run it with a keyboard shortcut, copy or rename the existing program
to kbdprgm1(), etc.

You Cannot Edit an You cannot use your TI-89 to edit an assembly-language program.
Assembly-Language The built-in Program Editor will not open assembly-language
Program programs.

Displaying a List of To list the assembly-language programs stored in memory:


Assembly-Language 1. Display the VAR-LINK screen ( 2 ° ).
Programs
2. Press „ View.
3. Select the applicable folder
(or All folders) and set
Var Type = Assembly.
Note: Assembly-language 4. Press ¸ to display the
programs have an ASM list of assembly-language
data type.
programs.

For Information The information required to teach a novice programmer how to write
about Writing an an assembly-language program is beyond the scope of this book.
Assembly-Language However, if you have a working knowledge of assembly language,
Program please check the TI web site (listed previously in this section) for
specific information about how to access TI-89 features.
Note: You must use a The TI-89 also includes an Exec command that executes a string
computer to write assembly- consisting of a series of Motorola 68000 op-codes. These codes act as
language programs. You
cannot create assembly- another form of an assembly-language program. Check the TI web site
language programs from the for available information.
TI-89 keyboard.

302 Chapter 17: Programming

PROGRAM.DOC TI-89:Programming (US English) Joan Terrell Revised: 07/29/98 1:26 PM Printed: 07/29/98 1:30 PM Page 302 of 40
Chapter 18:
Text Editor
Preview of Text Operations ................................................................. 304
Starting a Text Editor Session ............................................................. 305

18 Entering and Editing Text .................................................................... 307


Entering Special Characters ................................................................. 311
Entering and Executing a Command Script....................................... 313
Creating a Lab Report........................................................................... 315

This chapter shows you how to use the Text Editor to enter and
edit text. Entering text is simple; just begin typing. To edit text,
you can use the same techniques that you use to edit information
on the Home screen.

Each time you start a new text session, you must specify the
name of a text variable. After you begin a session, any text that
you type is stored automatically in the associated text variable.
You do not need to save a session manually before leaving the
Text Editor.

Chapter 18: Text Editor 303

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 08/03/98 1:08 PM Printed: 08/03/98 2:34 PM Page 303 of 14
Preview of Text Operations

Start a new Text Editor session. Then practice using the Text Editor by typing whatever
text you want. As you type, practice moving the text cursor and correcting any typos you
may enter.

Steps Keystrokes Display

1. Start a new session on the Text O8


Editor. 3

2. Create a text variable called TEST, D


which will automatically store any 2™
text you enter in the new session. TEST
Use the MAIN folder, shown as the default ¸¸
on the NEW dialog box.
To type alphabetic characters,
After typing in an input box such as you can use j (or 2 ™ to
Variable , you must press ¸ twice. turn alpha-lock on).

3. Type some sample text.


type
• To type a single uppercase letter, press anything
¤ and then the letter.
you
• To type a space, press  (alpha want
function of the · key).
• To type a period, press j to turn
alpha-lock off, press ¶ , and then press
2 ™ to turn alpha-lock on again.
In this example, alpha-lock
Practice editing your text by using: remains turned on from the
previous step.
• The cursor pad to move the text cursor.
• 0 or ¥ 8 to delete the character to the
left or right of the cursor, respectively.

4. Leave the Text Editor and display the "


Home screen.
Your text session was stored automatically
as you typed. Therefore, you do not need
to save the session manually before
exiting the Text Editor.

5. Return to the current session on the O8


Text Editor. 1

6. Notice that the displayed session is


exactly the same as you left it.

304 Chapter 18: Text Editor

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 304 of 14
Starting a Text Editor Session

Each time you start the Text Editor, you can start a new text
session, resume the current session (the session that was
displayed the last time you used the Text Editor), or open a
previous session.

Starting a New 1. Press O and then


Session select 8:Text Editor.
2. Select 3:New.
The NEW dialog box is
displayed.
Note: Use j or 3. Specify a folder and text
2 ™ to type alphabetic variable that you want to
characters.
use to store the new
session.

Item Description
Type Automatically set as Text and cannot be changed.
Folder Shows the folder in which the text variable will be
stored. For information about folders, refer to
Chapter 5.
To use a different folder, press B to display a menu
of existing folders. Then select a folder.
Variable Type a variable name.
If you specify a variable that already exists, an error
message will be displayed when you press ¸.
When you press N or ¸ to acknowledge the
error, the NEW dialog box is redisplayed.

4. Press ¸ (after typing in an input box such as Variable, you


must press ¸ twice) to display an empty Text Editor screen.
Note: Your session is saved
automatically as you type.
You do not need to save a A colon marks the
beginning of a
session manually before paragraph.
leaving the Text Editor,
starting a new session, or The blinking cursor
opening a previous one. shows where typed
text will appear.

You can now use the Text Editor as described in the remaining
sections of this chapter.

Chapter 18: Text Editor 305

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 305 of 14
Resuming the You can leave the Text Editor and go to another application at any
Current Session time. To return to the session that was displayed when you left the
Text Editor, press O 8 and select 1:Current.

Starting a New To leave the current Text Editor


Session from the session and start a new one:
Text Editor 1. Press ƒ and select 3:New.
2. Specify a folder and text
variable for the new session.
3. Press ¸ twice.

Opening a Previous You can open a previous Text Editor session at any time.
Session 1. From within the Text Editor, press ƒ and select 1:Open.
— or —
From any application, press O 8 and select 2:Open.
Note: By default, Variable 2. Select the applicable folder
shows the first existing text and text variable.
variable in alphabetic order.
3. Press ¸.

Copying a Session In some cases, you may want to copy a session so that you can edit
the copy while retaining the original.
1. Display the session you want to copy.
2. Press ƒ and select 2:Save Copy As.
3. Specify the folder and text variable for the copied session.
4. Press ¸ twice.

Note about Because all Text Editor sessions are saved automatically, you can
Deleting a Session accumulate quite a few previous sessions, which take up memory
storage space.
To delete a session, use the VAR-LINK screen ( 2 ° ) to
delete that session’s text variable. For information about VAR-LINK,
refer to Chapter 21.

306 Chapter 18: Text Editor

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 306 of 14
Entering and Editing Text

After beginning a Text Editor session, you can enter and edit
text. In general, use the same techniques that you have
already used to enter and edit information on the Home
screen’s entry line.

Typing Text When you create a new Text Editor session, you see an empty
screen. When you open a previous session or return to the current
session, you see the existing text for that session.

Note: Use the cursor pad to All text paragraphs


scroll through a session or begin with a space
position the text cursor. and a colon.

The beginning
Tip: Press 2 C or 2 D space is used in
to scroll up or down one command scripts
screen at a time, and ¥ C and lab reports.
or ¥ D to go to the top or
bottom of the text session.
Blinking text cursor

Tip: If you have an optional You do not need to press ¸ at the end of each line. At the end of
TI-GRAPH LINK, you can a line, the next character you type wraps to the next line. Press
use a computer keyboard to
type lengthy text and then ¸ only when you want to start a new paragraph.
send it to the TI-89. Refer to
As you reach the bottom of the screen, previous lines scroll off the
page 310.
top of the screen.

Typing Alphabetic To: Press:


Characters Type a single lowercase alpha character j and then the
(status line shows ) letter key
Note: You do not need j Type a single uppercase alpha character ¤ and then the letter
or alpha-lock to type x, y, z, (status line shows + ) key
or t. But you must use ¤ or
uppercase ALPHA-lock for Type a space  (alpha function of
X, Y, Z, or T.
the · key)
Turn on lowercase alpha-lock 2™
(status line shows )
Turn on uppercase ALPHA-lock ¤™
(status line shows )
Note: Alpha-lock is always Turn off either alpha-lock j
turned off when you change
applications, such as going
from the Text Editor to the While either type of alpha-lock is on:
Home screen.
¦ To type a period, comma, or other character that is the primary
function of a key, you must turn alpha-lock off.
¦ To type a second function character such as 2 [, you do not
need to turn alpha-lock off. After you type the character, alpha-
lock remains on.

Chapter 18: Text Editor 307

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 307 of 14
Deleting Characters To delete: Press:
The character to the left of the cursor 0 or ƒ 7
The character to the right of the cursor ¥ 8 (same as ¥ 0)
Note: If there are no All characters to the right of the cursor M
characters to the right of the through the end of the paragraph
cursor, M erases the
entire paragraph. All characters in the paragraph (regardless MM
of the cursor’s position in that paragraph)

Replacing or To: Do this:


Deleting Highlighted Highlight text 1. Move the cursor to the beginning or end of
Text the text.
2. Hold ¤ and press:
¦ A or B to highlight characters to the left
Tip: To remove highlighting or right of the cursor, respectively.
without replacing or
deleting, move the cursor.
¦ D or C to highlight all characters up to
the cursor position on the next or
previous line, respectively.

Replace Type the new text.


highlighted text
Delete Press 0.
highlighted text

Cutting, Copying, Cutting and copying both place highlighted text into the TI-89’s
and Pasting Text clipboard. Cutting deletes the text from its current location (used to
move text) and copying leaves the text.
1. Highlight the text you want to move or copy.
Tip: You can press ¥ 5, 2. Press ƒ.
¥ 6, and ¥ 7 to
cut, copy, and paste without 3. Select the applicable menu item.
having to use the ƒ toolbar
menu. ¦ To move the text, select 4:Cut.
— or —
¦ To copy the text, select 5:Copy.
4. Move the text cursor to the location where you want to insert the
text.
5. Press ƒ and then select 6:Paste.

308 Chapter 18: Text Editor

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 308 of 14
You can use this general procedure to cut , copy, and paste text:
¦ Within the same text session.
¦ From one text session to another. After cutting or copying text in
one session, open the other session and then paste the text.
¦ From a text session to a different application. For example, you
can paste the text into the Home screen’s entry line.

Finding Text From the Text Editor:


1. Place the text cursor at any location preceding the text you want
to search for. All searches start at the current cursor location.
Tip: The FIND dialog box 2. Press ‡.
retains the last search text
you entered. You can type 3. Type the search text.
over it or edit it.
The search is not case sensitive.
For example: CASE, case, and
Case have the same effect.
4. Press ¸ twice.

If the search text is: The cursor:


Found Moves to beginning of the search text.
Not found Does not move.

Inserting or By default, the TI-89 is in insert mode. To toggle between insert and
Overtyping a overtype mode, press 2 /.
Character
If the TI-89 is in: The next character you type:
Tip: Look at the shape of Will be inserted at the cursor.
the cursor to see if you’re in
Thin cursor between
insert or overtype mode. characters

Will replace the highlighted


Cursor highlights character.
a character

Clearing the Text To erase all existing paragraphs and display an empty text screen,
Editor press ƒ and then select 8:Clear Editor.

Chapter 18: Text Editor 309

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 309 of 14
Using a Computer If you have an optional TI-GRAPH LINK computer-to-calculator cable
and TI-GRAPH LINK and software for the TI-89, you can use the computer keyboard to
to Enter Text type a text file and then send that file to the TI-89. This is useful if
you need to create a lengthy text file.
For information about obtaining a TI-GRAPH LINK cable and software
or upgrading your existing TI-GRAPH LINK software for use with the
TI-89, check the TI web site at:
http://www.ti.com/calc
or contact Texas Instruments as described in Appendix C.
For complete instructions on how to create a text file on a computer
and send it to your calculator, refer to the manual that comes with
the TI-GRAPH LINK. The general steps are:
1. Use the TI-GRAPH LINK software to create a new text file.
a. In the software, select New from the File menu. Then select a
TI-89 Data File and click OK. An untitled edit window is
displayed.
Note: On the TI-89, the b. In the Name box at the top of the edit window, type the name
name of the text variable will you want to use for the text variable on the TI-89. Then type
be the name you enter in
Step 1b, not the file name in the applicable text.
Step 1c.
c. From the File menu, select Save As. In the dialog box, type a
File Name, select TI89 Text as the File Type, select a directory,
and click OK.
2. Use the TI-GRAPH LINK software to send the file from the
computer to the TI-89.
a. Use the TI-GRAPH LINK cable to connect the computer and
the calculator.
b. Be sure the TI-89 is on the Home screen.
c. In the software, select Send from the Link menu. Select the
text file and click Add to add it to the Files Selected list. Then
click OK.
d. When notified that the sending process is complete, click OK.
3. On the TI-89, use the Text Editor to open the text variable.

310 Chapter 18: Text Editor

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 310 of 14
Entering Special Characters

You can use the CHAR menu to select any special character
from a list. You can also type certain commonly used
characters from the keyboard. To see which characters are
available from the keyboard, you can display a map that
shows the characters and their corresponding keys.

Selecting 1. Press 2 ¿.
Characters from the 2. Select the applicable category.
CHAR Menu
A menu lists the characters in
that category.
3. Select a character. You may ï indicates that
need to scroll through the you can scroll.
menu.
For accented characters, select
International. Commonly used
international characters are also
available from the default custom
menu (2 ¾).

Displaying the The keyboard map shows shortcuts that let you enter certain special
Keyboard Map characters and Greek letters from the keyboard. It also shows
shortcuts for other calculator features.
Press ¥ ^ to display the map.
To access these shortcuts, first
press the ¥ key.
The shortcuts for the other
features shown on the map are:
¦ FMT ( ¥ Í ) — Displays the FORMATS dialog box.

¦ SYSDATA ( ¥ b ) — Copies the current graph coordinates to the


system variable sysdata.
¦ KBDPRGM1 – 9 ( ¥ 1 through ¥ 9 ) — If you have user-defined or
assembly-language programs named kbdprgm1() through
kbdprgm9(), these shortcuts run the corresponding program.

¦ HOMEDATA ( ¥ · ) — Copies the current graph coordinates to


the Home screen’s history area.
¦ OFF ( ¥ ´ ) — Turns off the TI-89 so that it returns to the
current application the next time you turn it on. If you use
2 ®, the calculator always returns to the Home screen.

Chapter 18: Text Editor 311

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 311 of 14
Typing Special Press ¥ and then the key for the
Symbols from the symbol.
Keyboard For example:
¥ Á displays ƒ.
These special symbols are not
affected by whether alpha-lock is Note: To help you find the
on or off. applicable keys, this map shows
only the special symbols.

Typing Greek Press ¥ c to access the Greek ξ ψ ζ τ


Letters from the character set. Then select the
X Y Z T
Keyboard applicable alpha character on

the keyboard to enter a Greek α β δ ε
letter. A B C D E
Tip: For q or p, press ¥ Ï Γ
or 2 T. The TI-89 does not display a φ γ
map of Greek letters. The
map shown here is for F G H I J
reference only.
λ µ
Several keys let you access K L M N O
lowercase and uppercase Π Σ
π ρ σ
Greek letters.
P Q R S U
If you press a key combination Ω
that does not access a Greek ω
letter, you get the normal letter V W
for that key.
The exact keys that you press depend on whether alpha-lock is on or
off. For example:

If: Then:
Alpha-lock is off. ¥ c j X or ¥ c X displays ξ.
¥ c j W displays ω.
j is not required ¥ c ¤ W displays Ω.
for X, Y, Z, or T.
¤ is used for
uppercase letters.
Important: If you press Lowercase alpha-lock ¥ c X displays ξ.
j to access a Greek ( 2 ™ ) is on. ¥ c W displays ω.
letter while alpha-lock is on,
it turns alpha-lock off. ¥ c ¤ W displays Ω.
Uppercase ALPHA-LOCK ¥ c X displays ξ.
( ¤ ™ ) is on. ¥ c W displays Ω.
¥ c ¤ W displays Ω.

For a List of All For a list of all special characters, refer to Appendix B.
Special Characters

312 Chapter 18: Text Editor

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 312 of 14
Entering and Executing a Command Script

By using a command script, you can use the Text Editor to


type a series of command lines that can be executed at any
time on the Home screen. This lets you create interactive
example scripts in which you predefine a series of commands
and then execute them individually.

Inserting a In the Text Editor:


Command Mark 1. Place the cursor on the line for the command.
2. Press „ to display the
Note: This does not insert a Command toolbar menu.
new line for the command, it
simply marks an existing 3. Select 1:Command.
line as a command line.
“C” is displayed at the beginning
of the text line (to the left of the
colon).
Tip: You can mark a line as 4. Type a command just
a command either before or as you would on the
after typing the command on
Home screen.
that line.
The line can contain
only the command,
with no additional text.
You can type multiple commands on the same line if you type a
colon to separate the commands.

Deleting a This deletes only the “C” mark; it does not delete the command text
Command Mark itself.
1. Place the cursor anywhere on the marked line.
2. Press „ and select 4:Clear command.

Executing a To execute a command, you must first mark the line with a “C”. If
Command you execute a line that is not marked with “C”, it will be ignored.
1. Place the cursor anywhere on the command line.
2. Press †.
Tip: To examine the result The command is copied to the entry line on the Home screen and
on the Home screen, press executed. The Home screen is displayed temporarily during
" or use a split screen.
execution, and then the Text Editor is redisplayed.
After execution, the cursor moves to the next line in the script so
that you can continue to execute a series of commands.

Chapter 18: Text Editor 313

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 313 of 14
Splitting the With a split screen, you can view your command script and see the
Text Editor/ result of an executed command at the same time.
Home Screen
To: Press:
Split the screen … and select
1:Script view.

Return to a full … and select


screen Text Editor 2:Clear split.

You can also use 3 to set up a split screen manually. However,


… sets up a Text Editor/Home screen split much easier than 3.
¦ The active application is indicated by a thick border. (By default,
the Text Editor is the active application.)
¦ To switch between the Text Editor and the Home screen, press
2 a (second function of O ).

Creating a Script From the Home screen, you can save all the entries in the history
from Your Home area to a text variable. The entries are automatically saved in a script
Screen Entries format so that you can open the text variable in the Text Editor and
execute the entries as commands.
For information, refer to “Saving the Home Screen Entries as a Text
Editor Script” in Chapter 5.

Example 1. Type your script. Press


„ and select 1:Command to
mark the command lines.
2. Press … and select
1:Script view.

3. Move the cursor to the first


Note: Some commands command line. Then press
take longer to execute. Wait † to execute the command.
until the Busy indicator
disappears before pressing 4. Continue using † to execute
† again. each command, but stop just
before executing the
Graph command.

Note: In this example, the 5. Execute the Graph


Graph command displays command.
the Graph screen in place of
the Home screen. 6. Press … and select
2:Clear split to return to a full
screen Text Editor.

314 Chapter 18: Text Editor

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 314 of 14
Creating a Lab Report

If you have a TI-GRAPH LINKé, an optional accessory that lets


the TI-89 communicate with a personal computer, you can
create lab reports. Use the Text Editor to write a report, which
can include print objects. Then use the TI-GRAPH LINK to print
the report on the printer attached to the computer.

Print Objects In the Text Editor, you can specify a variable name as a print object.
When you print the report by using the TI-GRAPH LINK, the TI-89
substitutes the contents of the variable (an expression, picture, list,
etc.) in place of the variable name.

Inserting a Print In the Text Editor:


Object Mark 1. Place the cursor on the line for the print object.
2. Press „ to display the
Command toolbar menu.

Note: This does not insert a 3. Select 3:PrintObj.


new line for the print object,
it simply marks an existing “P” is displayed at the beginning of the
line as a print object. text line (to the left of the colon).
Tip: You can mark a line as 4. Type the name of the variable that contains the print object.
a print object either before
or after typing a variable The line can contain
name on that line. only the variable
name, with no
additional text.

Inserting a Page When you print a lab report, page breaks occur automatically at the
Break Mark bottom of each printed page. However, you can manually force a
page break at any line.
1. Place the cursor on the line that you want to print on the top of
the next page. (The line can be blank or you can enter text on it.)
2. Press „ and select 2:Page break.
A “Î ” is displayed at the beginning of the line (to the left of the
colon).

Deleting a Print This deletes only the “P” or “Î ” mark; it does not delete any text that
Object or Page is on the line.
Break Mark 1. Place the cursor anywhere on the marked line.
2. Press „ and select 4:Clear command.

Chapter 18: Text Editor 315

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 315 of 14
Printing the Report General Steps For Detailed Information
1. Connect the TI-89 to your Refer to the manual that came
computer via the TI-GRAPH with your TI-GRAPH LINK.
LINK cable.
2. Use the TI-GRAPH LINK
software to get the lab
report from the calculator,
and then print the report.

Example Assume you have stored:


¦ A function as y1(x)
(specify y1, not y1(x)).
¦ A graph picture as pic1.
¦ Applicable information in
variables der and sol.
When you print the lab report,
the contents of the print
objects are printed in place of
their variable names.

My assignment was to study the function:

.1*x^3ì.5*x+3
The three parts were:

1. Graph the function.

2. Find its derivative.


Note: To store the
derivative to variable der, .3*x^2ì.5
enter: d(y1(x),x)! der
3. Look for critical points.
Note: To store the x=1.29099 or x=ì 1.29099
derivative’s critical points to
variable sol, enter:
solve(der=0,x)! sol
In cases where a graph picture cannot fit on the current page, the
entire picture is shifted to the top of the next page.

316 Chapter 18: Text Editor

TXTEDITR.DOC TI-89: Text Editor (US English) Joan Terrell Revised: 07/29/98 1:15 PM Printed: 07/29/98 1:15 PM Page 316 of 14
Chapter 19:
Numeric Solver
Preview of the Numeric Solver............................................................ 318

19 Displaying the Solver and Entering an Equation............................... 319


Defining the Known Variables ............................................................. 321
Solving for the Unknown Variable ...................................................... 323
Graphing the Solution........................................................................... 324

The Numeric Solver lets you enter an expression or equation,


define values for all but one unknown variable, and then solve for
the unknown variable.

Note: To solve for the


unknown variable from the After entering an equation
Home screen or a program, and its known values,
use nSolve() as described place the cursor on the
in Appendix A. unknown variable and
press „.

You can also graph the solution.

The x axis is the unknown


variable. The y axis is the
left–rt value, which gives
the solution’s accuracy.

The solution is precise


where the curve crosses
the x axis.

As in the example above, the Numeric Solver is often used to


solve closed-form equations. But it also gives you a quick way to
solve equations such as transcendental equations in which there
is no closed form.
For example, you could rearrange the following equation
manually to solve for any of the variables.
a = (m2 ì m1) / (m2 + m1) ù g m1 = (g ì a) / (g + a) ù m2
With an equation such as the following, however, it may not be as
easy to solve for x manually.
y = x + ex
The Numeric Solver is
particularly useful for such
equations.

Chapter 19: Numeric Solver 317

SOLVER.DOC TI-89: Numeric Solver (US English) Joan Terrell Revised: 08/03/98 1:08 PM Printed: 08/03/98 2:35 PM Page 317 of 10
Preview of the Numeric Solver

Consider the equation a=(m2ì m1)/(m2+m1)ù g, where the known values are m2=10 and
g=9.8. If you assume that a=1/3 g, find the value of m1.

Steps Keystrokes Display

1. Display the Numeric Solver. O9

2. Enter the equation. jAÁcj


When you press ¸ or D, the screen M2|jM1
lists the variables used in the equation.
decjM2
«jM1dp
jG¸

3. Enter values for each variable, D10DD9.8


except the unknown variable m1.
Define m2 and g first. Then define a . (You
must define g before you can define a in CCC
terms of g. ) Accept the default for bound . jGe3
If a variable has been defined previously,
its value is shown as a default.

4. Move the cursor to the unknown DD


variable m1.
Optionally, you can enter an initial guess
for m1 . Even if you enter a value for all
variables, the Numeric Solver solves for
the variable marked by the cursor.
g/3 is evaluated when you
move the cursor off the line.
5. Solve for the unknown variable. „
To check the solution’s accuracy, the left
and right sides of the equation are
evaluated separately. The difference is
shown as leftì rt . If the solution is precise,
leftì rt=0 .

é marks the calculated values.

6. Graph the solution using a ZoomStd …3


viewing window.
The graph is displayed in a split screen.
You can explore the graph by tracing,
zooming, etc.

7. Return to the Numeric Solver and 2a


The variable marked by the cursor
exit the split screen. (unknown variable m1) is on the
…2 x axis, and leftìrt is on the y axis.
You can press ¸ or D to redisplay the
list of variables.

318 Chapter 19: Numeric Solver

SOLVER.DOC TI-89: Numeric Solver (US English) Joan Terrell Revised: 07/29/98 1:32 PM Printed: 07/29/98 1:32 PM Page 318 of 10
Displaying the Solver and Entering an Equation

After you display the Numeric Solver, start by entering the


equation that you want to solve.

Displaying the Press O and then


Numeric Solver select 9:Numeric Solver.
The Numeric Solver screen shows the
last entered equation, if any.

Entering an On the eqn: line, type in your


Equation equation.

You can: For example:


Tips: In your equation: Type an equation a=(m2ì m1)/(m2+m1)ù g
• Do not use system directly. a+b=c+sin(d)
function names (such as
y1(x) or r1(q)) as simple Refer to a function or Suppose you defined y1(x) on either the:
variables (y1 or r1). equation defined
• Be careful with implied
¦ Y= Editor: y1(x)=1.25xù cos(x)
elsewhere.
multiplication. For – or –
example, a(m2+m1) is ¦ Home screen: Define y1(x)=1.25xù cos(x)
treated as a function
reference, not as In the Numeric Solver, you then would enter:
aù (m2+m1).
y1(x)=0 or y1(t)=0, etc.

The argument does not have to


match the one used to define the
function or equation.

Note: When you define the Type an expression e+fì ln(g)


variables, you can either without an = sign.
define exp or solve for it. After you press ¸, the expression is set
equal to a system variable called exp and
entered as:
exp=e+fì ln(g)

Note: After you press Recall a previously Refer to the applicable heading later in this
¸, the current equation entered equation or section.
is stored automatically to the
system variable eqn. open a saved
equation.

Chapter 19: Numeric Solver 319

SOLVER.DOC TI-89: Numeric Solver (US English) Joan Terrell Revised: 07/29/98 1:32 PM Printed: 07/29/98 1:32 PM Page 319 of 10
Recalling Previously Your most recently entered equations (up to 11 with the default
Entered Equations setting) are retained in memory. To recall one of these equations:
1. From the Numeric Solver
screen, press ‡.
A dialog box displays the most
recently entered equation.
Tip: You can specify how 2. Select an equation.
many equations are
retained. From the Numeric ¦ To select the displayed
Solver, press ƒ and select equation, press ¸.
9:Format (or use ¥ Í ).
Then select a number from ¦ To select a different
1 through 11. equation, press B to display
a list. Then select the one Only unique equations are
listed. If you re-enter the
you want. same equation 5 times, it
appears only once.
3. Press ¸.

Saving Equations Because the number of equations that you can recall with ‡ Eqns is
for Future Use limited, a particular equation may not be retained indefinitely.
To store the current equation for future
use, save it to a variable.
1. From the Numeric Solver screen,
press ƒ and select 2:Save Copy As.
Note: An equation variable 2. Specify a folder and a variable
has an EXPR data type, as name for the equation.
shown on the MEMORY and
VAR-LINK screens. 3. Press ¸ twice.

Opening a Saved To open a previously saved equation


Equation variable:
1. From the Numeric Solver screen,
press ƒ and select 1:Open.
2. Select the applicable folder and
equation variable.
3. Press ¸.

Variable eqn contains the current


equation; it always appears
alphabetically in the list.

320 Chapter 19: Numeric Solver

SOLVER.DOC TI-89: Numeric Solver (US English) Joan Terrell Revised: 07/29/98 1:32 PM Printed: 07/29/98 1:32 PM Page 320 of 10
Defining the Known Variables

After you type an equation in the Numeric Solver, enter the


applicable values for all variables except the unknown
variable.

Defining the List of After typing your equation on


Variables the eqn: line, press ¸
or D.
The screen lists the variables in
the order they appear in the
Note: If an existing variable equation. If a variable is already The solution must be within
is locked or archived, you defined, its value is shown. You the specified bounds, which
cannot edit its value. you can edit.
can edit these variable values.
Enter a number or expression for all variables except the one you
want to solve for.

Notes and ¦ If you define a variable:


Common Errors − In terms of another
variable in the equation,
that variable must be
defined first.
− In terms of another Since a is defined in terms
of g, you must define g
variable that is not in the before a. When you move
equation, that variable the cursor to another line,
must already have a g/3 is evaluated.
value; it cannot be
undefined.
− As an expression, it is evaluated when you move the cursor off
the line. The expression must evaluate to a real number.
Note: When you assign a ¦ If the equation contains a
value to a variable in the variable already defined in
Numeric Solver, that
variable is defined globally. terms of other variables,
It still exists after you leave those other variables are
the solver. listed.
If variable a was defined
previously as b+c!a, then b
and c are listed instead of a.

¦ If you refer to a previously


defined function, any
variables used as
arguments in the function
call are listed, not the
variables used to define
the function. If f(a,b) was defined previously
as ‡(a^2+b^2) and your
equation contains f(x,y), then x
and y are listed, not a and b.

Chapter 19: Numeric Solver 321

SOLVER.DOC TI-89: Numeric Solver (US English) Joan Terrell Revised: 07/29/98 1:32 PM Printed: 07/29/98 1:32 PM Page 321 of 10
Note: You cannot solve for ¦ If the equation contains a
a system variable other than system variable (xmin, xmax,
exp. Also, if the equation
contains a system variable, etc.), that variable is not
you cannot use … to graph. listed. The solver uses the
system variable’s existing In the standard viewing window,
value. xmax=10.

¦ Although you can use a


system variable in the
equation, an error occurs if
you use … to graph the
solution.
Note: This error occurs if ¦ If you see the error shown
you use a reserved name to the right, delete the
incorrectly or refer to an
undefined system function entered variable value. Then
as a simple variable without edit the equation to use a
parentheses. different variable. For example, y1(x) is undefined
and you use y1.

Editing the Equation In the Numeric Solver, press C until the cursor is on the equation.
The screen automatically changes to show only the eqn: line. Make
your changes, and then press ¸ or D to return to the list of
variables.

Specifying an Initial To find a solution more quickly or to find a particular solution


Guess and/or (if multiple solutions exist), you can optionally:
Bounds (Optional) ¦ Enter an initial guess for
the unknown variable.
The guess must be within
the specified bounds.
Tip: To select an initial
guess graphically, refer to ¦ Enter lower and upper
pages 324 and 325. Initial guess must be
bounds close to the within the bounds.
solution.
For the bounds, you can also enter variables or expressions that
evaluate to appropriate values (bound={lower,upper}) or a valid list
variable that contains a two-element list (bound=list). The bounds
must be two floating point elements with the first one less than or
equal to the second one.

322 Chapter 19: Numeric Solver

SOLVER.DOC TI-89: Numeric Solver (US English) Joan Terrell Revised: 07/29/98 1:32 PM Printed: 07/29/98 1:32 PM Page 322 of 10
Solving for the Unknown Variable

After you type an equation in the Numeric Solver and enter


values for the known variables, you are ready to solve for the
unknown variable.

Finding the Solution With all known variables


defined:
1. Move the cursor to the
unknown variable.
Put the cursor on the variable
Note: To stop (break) a 2. Press „ Solve. you want to solve for.
calculation, press ´. The
unknown variable shows the A é marks the solution and
value being tested when the leftì rt. The é disappears
break occurred.
when you edit a value,
move the cursor to the
equation, or leave the
solver.
Using the solution and your entered values, the left and right sides of
the equation are evaluated separately. leftì rt shows the difference,
which indicates the solution’s accuracy. The smaller the value, the
more accurate the solution. If the solution is precise, leftNrt=0.

If you: Do this:
Want to solve for other Edit the equation or variable values.
values
Want to find a different Enter an initial guess and/or a new set of
solution for an equation bounds close to the other solution.
with multiple solutions
Note: An iterative process is See the message: Press N. The unknown variable shows
used to solve an equation. If the value being tested when the error
the iterative process cannot
converge on a solution, this occurred.
error occurs.
¦ The leftì rt value may be small enough
for you to accept the result.
¦ If not, enter a different set of bounds.

Chapter 19: Numeric Solver 323

SOLVER.DOC TI-89: Numeric Solver (US English) Joan Terrell Revised: 07/29/98 1:32 PM Printed: 07/29/98 1:32 PM Page 323 of 10
Graphing the Solution

You can graph an equation’s solutions any time after defining


the known variables, either before or after you solve for the
unknown variable. By graphing the solutions, you can see how
many solutions exist and use the cursor to select an accurate
initial guess and bounds.

Displaying the In the Numeric Solver, leave the


Graph cursor on the unknown variable.
Press … and select:
1:Graph View
Graph View uses the current
– or – Window variable values.
3:ZoomStd
– or – For information about ZoomStd
and ZoomFit, refer to Chapter 6.
4:ZoomFit
Tips: With split screens: The graph is shown in a split
• Use 2 a to switch screen, where:
between sides.
¦ The unknown variable is
• The active side has a
thick border. plotted on the x axis.
• The toolbar belongs to ¦ leftì rt is plotted on the y axis.
the active side.
For more information, refer Solutions for the equation exist
to Chapter 14. at leftNrt=0, where the graph The current graph format
crosses the x axis. settings are used.

You can explore the graph by using the free-moving cursor, tracing,
zooming, etc., as described in Chapter 6.

How the Graph When you use the Numeric Solver to display a graph:
Affects Various ¦ The following modes are changed automatically to these settings:
Settings
Mode Setting
Note: If you were previously Graph FUNCTION Any functions selected
using different mode in the Y= Editor will not
Split Screen LEFT-RIGHT be graphed.
settings, you will need to
reselect those settings Number of Graphs 1
manually.
¦ All stat plots are deselected.
¦ After you leave the Numeric Solver, the Graph screen may
continue to display the equation’s solution, ignoring any selected
Y= functions. If so, display the Y= Editor and then return to the
Graph screen. Also, the graph is reset when you change the Graph
mode or use ClrGraph from the Home screen ( † 5) or a program.

324 Chapter 19: Numeric Solver

SOLVER.DOC TI-89: Numeric Solver (US English) Joan Terrell Revised: 07/29/98 1:32 PM Printed: 07/29/98 1:32 PM Page 324 of 10
Selecting a New To use the graph cursor to select an initial guess:
Initial Guess from 1. Move the cursor (either free-moving or trace) to the point that
the Graph you want to use as the new guess.
2. Use 2 a to make the
Numeric Solver screen
active.
3. Make sure the cursor is on
Note: Cursor coordinate xc the unknown variable, and
is the unknown variable press †.
value, and yc is the leftì rt
value. 4. Press „ to re-solve the † sets the graph cursor’s xc value
equation. as an initial guess and the yc value
as leftìrt. The graph’s xmin and
xmax values are set as the bounds.

Returning to a Full From the split screen:


Screen ¦ To display the Numeric Solver full screen, use 2 a to make
the solver screen active, press …, and then select 2:Clear Graph
View.
– or –
¦ To display the Home screen, press 2 K twice.

Clearing Variables When you solve an equation, its variables still exist after you leave
Before Leaving the the Numeric Solver. If the equation contains single-character
Numeric Solver variables, their values may inadvertently affect later symbolic
calculations. Before leaving the Numeric Solver, you may want to:
Tip: Use 2 ˆ any time 1. Press 2 ˆ Clr a–z to clear all single-character variables in the
you want to clear single- current folder.
character variables listed in
the solver. 2. Press ¸ to confirm the action.
The screen returns to the solver’s eqn: line.

Chapter 19: Numeric Solver 325

SOLVER.DOC TI-89: Numeric Solver (US English) Joan Terrell Revised: 07/29/98 1:32 PM Printed: 07/29/98 1:32 PM Page 325 of 10
326 Chapter 19: Numeric Solver

SOLVER.DOC TI-89: Numeric Solver (US English) Joan Terrell Revised: 07/29/98 1:32 PM Printed: 07/29/98 1:32 PM Page 326 of 10
Chapter 20:
Number Bases
Preview of Number Bases .................................................................... 328

20 Entering and Converting Number Bases ............................................ 329


Performing Math Operations with Hex or Bin Numbers.................. 330
Comparing or Manipulating Bits ......................................................... 331

Wherever you enter an integer in a TI-89 calculation, you can


enter it in decimal, binary, or hexadecimal form. You can also set
the Base mode to specify the form for displaying integer results.
Fractional and floating-point results are always displayed in
decimal form.
Note: The MATH/Base Binary numbers use 0 and 1 Dec Bin Hex
menu lets you select from a in the base 2 format: Base 10 Base 2 Base 16
list of operations related to 0 0000 0
number bases. 100 1 0001 1
2 0010 2
2 0 ù 0 = +0 3 0011 3
2 1 ù 0 = +0 4 0100 4
2 2 ù 1 = +4 5 0101 5
6 0110 6
7 0111 7
Hexadecimal numbers use 8 1000 8
0 – 9 and A – F in the base 16 9 1001 9
10 1010 A
format: 11 1011 B
12 1100 C
A8F 13 1101 D
16 0 ù F = +15 14 1110 E
15 1111 F
16 1 ù 8 = +128
16 10000 10
16 2 ù A = +2560

You can use the TI-89 to convert a number from one base to
another. For example, 100 binary = 4 decimal and A8F hex = 2703
decimal.
Hexadecimal numbers are often used as a shorthand notation for
longer, hard-to-remember binary numbers. For example:
1010 1111 0011 0111
AF37 hexadecimal is usually easier to work
with than 1010111100110111 binary.
A F 3 7

The TI-89 also lets you compare or manipulate binary numbers


bit-by-bit.

Chapter 20: Number Bases 327

BASE.DOC TI-89: Number Bases (US English) Joan Terrell Revised: 08/03/98 1:02 PM Printed: 08/03/98 2:36 PM Page 327 of 6
Preview of Number Bases

Calculate 10 binary (base 2) + F hexadecimal (base 16) + 10 decimal (base 10). Then,
use the 4 operator to convert an integer from one base to another. Finally, see how
changing the Base mode affects the displayed results.

Steps Keystrokes Display

1. Display the MODE dialog box, Page 2. 3„


For Base mode, select DEC as the (use D to move
default number base. to Base mode)
Integer results are displayed according to B1¸
the Base mode. Fractional and floating-
point results are always displayed in
decimal form.
2. Calculate 0b10+0hF+10. OjB10«O
To enter a binary or hex number, you must 2™HF
use the 0b or 0h prefix (zero and the letter
B or H ). Otherwise, the entry is treated as j«10 Important: The 0b or 0h prefix is
a decimal number. a zero, not the letter O, followed
¸ by B or H.

3. Add 1 to the result and convert it to «12Ž


binary. 2™BIN
2 Ž displays the 4 conversion operator. j¸

4. Add 1 to the result and convert it to «12Ž


hexadecimal. 2™HEX

5. Add 1 to the result and leave it in the «1¸


default decimal base.

6. Change the Base mode to HEX. 3„ Results use the 0b or 0h


When Base = HEX or BIN , the magnitude (use D to move prefix to identify the base.
of a result is restricted to certain size
limitations. Refer to page 330. to Base mode)
B2¸

7. Calculate 0b10+0hF+10. OjB10«O


2™HF
j«10¸

8. Change the Base mode to BIN. 3„


(use D to move
to Base mode)
B3¸
9. Re-enter 0b10+0hF+10. ¸

328 Chapter 20: Number Bases

BASE.DOC TI-89: Number Bases (US English) Joan Terrell Revised: 07/29/98 1:34 PM Printed: 07/29/98 1:34 PM Page 328 of 6
Entering and Converting Number Bases

Regardless of the Base mode, you must always use the


appropriate prefix when entering a binary or hexadecimal
number.

Entering a Binary or To enter a binary number, use the form:


Hexadecimal 0b binaryNumber (for example: 0b11100110)
Number Binary number with up to 32 digits
Zero, not the letter O, and the letter b

Note: You can type the b or To enter a hexadecimal number, use the form:
h in the prefix, as well as
hex characters A – F, in 0h hexadecimalNumber (for example: 0h89F2C)
uppercase or lowercase. Hexadecimal number with up to 8 digits
Zero, not the letter O, and the letter h

If you enter a number without the 0b or 0h prefix, such as 11, it is


always treated as a decimal number. If you omit the 0h prefix on a
hexadecimal number containing A – F, all or part of the entry is
treated as a variable.

Converting between Use the 4 conversion operator.


Number Bases For 4, press 2 Ž. Also, you
can select base conversions
integerExpression 4 Bin from the MATH /Base menu.
integerExpression 4 Dec
integerExpression 4 Hex
For a binary or hex entry, you
Note: If your entry is not an For example, to convert 256 must use the 0b or 0h prefix.
integer, a Domain error is from decimal to binary:
displayed.
256 4 Bin

To convert 101110 from binary


to hexadecimal: Results use the 0b or 0h
prefix to identify the base.
0b101110 4 Hex

Alternate Method for Instead of using 4, you can: If Base mode = BIN:

Conversions 1. Use 3 (page 330) to set


the Base mode to the base
that you want to convert to.
If Base mode = HEX:
2. From the Home screen, type
the number that you want to
convert (using the correct
prefix) and press ¸.

Chapter 20: Number Bases 329

BASE.DOC TI-89: Number Bases (US English) Joan Terrell Revised: 07/29/98 1:34 PM Printed: 07/29/98 1:34 PM Page 329 of 6
Performing Math Operations with Hex or Bin Numbers

For any operation that uses an integer number, you can enter
a hexadecimal or binary number. Results are displayed
according to the Base mode. However, results are restricted to
certain size limits when Base = HEX or BIN.

Setting the Base 1. Press 3 „ to display


Mode for Displayed Page 2 of the MODE screen.
Results 2. Scroll to the Base mode,
press B, and select the
applicable setting.
3. Press ¸ to close the
MODE screen.
Note: The Base mode The Base mode controls the If Base mode = HEX:
affects output only. You displayed format of integer
must always use the 0h or
0b prefix to enter a hex or results only.
binary number.
Fractional and floating-point
results are always shown in
decimal form.
0h prefix in result
identifies the base.

Dividing When When Base=HEX or BIN, a If Base mode = HEX:

Base = HEX or BIN division result is displayed in


hexadecimal or binary form
only if the result is an integer.
To ensure that division always
produces an integer, use intDiv()
instead of e. Press ¥ ¸ to display the
result in APPROXIMATE form.

Size Limitations When Base=HEX or BIN, an integer result is stored internally as a


When Base = HEX signed, 32-bit binary number, which uses the range (shown in
or BIN hexadecimal and decimal):

0hFFFFFFFF 0h1
ë1 1

0h80000000 0h0 0h7FFFFFFF


ë2,147,483,648 0 2,147,483,647

If a result’s magnitude is too large to be stored in a signed, 32-bit


binary form, a symmetric modulo operation brings the result into the
range. Any number greater than 0h7FFFFFFF is affected. For
example, 0h80000000 through 0hFFFFFFFF become negative
numbers.

330 Chapter 20: Number Bases

BASE.DOC TI-89: Number Bases (US English) Joan Terrell Revised: 07/29/98 1:34 PM Printed: 07/29/98 1:34 PM Page 330 of 6
Comparing or Manipulating Bits

The following operators and functions let you compare or


manipulate bits in a binary number. You can enter an integer in
any number base. Your entries are converted to binary
automatically for the bitwise operation, and results are
displayed according to the Base mode.

Boolean Operations Operator with syntax Description


not integer Returns the one’s complement, where
each bit is flipped.
· integer Returns the two’s complement, which is
the one’s complement + 1.
Note: You can select these integer1 and integer2 In a bit-by-bit and comparison, the result
operators from the is 1 if both bits are 1; otherwise, the result
MATH/Base menu. For an
example using each is 0. The returned value represents the bit
operator, refer to results.
Appendix A in this book.
integer1 or integer2 In a bit-by-bit or comparison, the result is
1 if either bit is 1; the result is 0 only if
both bits are 0. The returned value
represents the bit results.
integer1 xor integer2 In a bit-by-bit xor comparison, the result
is 1 if either bit (but not both) is 1; the
result is 0 if both bits are 0 or both bits
are 1. The returned value represents the
bit results.

Suppose you enter: If Base mode = HEX:

0h7AC36 and 0h3D5F

Internally, the hexadecimal


integers are converted to a
signed, 32-bit binary number. If Base mode = BIN:

Then corresponding bits are


compared.

Note: If you enter an integer 0h7AC36 = 0b00000000000001111010110000110110


that is too large to be stored and and
in a signed, 32-bit binary
form, a symmetric modulo 0h3D5F = 0b00000000000000000011110101011111
operation brings the value 0b00000000000000000010110000010110 = 0h2C16
into the range (page 330). Leading zeros are not shown
in the result.

The result is displayed according to the Base mode.

Chapter 20: Number Bases 331

BASE.DOC TI-89: Number Bases (US English) Joan Terrell Revised: 07/29/98 1:34 PM Printed: 07/29/98 1:34 PM Page 331 of 6
Rotating and Function with syntax Description
Shifting Bits rotate(integer) If #ofRotations is:
– or –
¦ omitted — bits rotate once to the
rotate(integer,#ofRotations)
right (default is ë 1).
¦ negative — bits rotate the specified
Note: You can select these number of times to the right.
functions from the
MATH/Base menu. For an ¦ positive — bits rotate the specified
example using each number of times to the left.
function, refer to Appendix A
in this book. In a right rotation, the rightmost bit
rotates to the leftmost bit; vice versa for
a left rotation.
shift(integer) If #ofShifts is:
– or –
¦ omitted — bits shift once to the right
shift(integer,#ofShifts)
(default is ë 1).
¦ negative — bits shift the specified
number of times to the right.
¦ positive — bits shift the specified
number of times to the left.
In a right shift, the rightmost bit is
dropped and 0 or 1 is inserted to match
the leftmost bit. In a left shift, the
leftmost bit is dropped and 0 is inserted
as the rightmost bit.

Suppose you enter: If Base mode = HEX:

shift(0h7AC36)
Internally, the hexadecimal
integer is converted to a signed,
32-bit binary number. If Base mode = BIN:

Then the shift is applied to the


binary number.

Each bit shifts to the right.

Note: If you enter an integer 0h7AC36 = 0b00000000000001111010110000110110


that is too large to be stored
in a signed, 32-bit binary Inserts 0 if leftmost bit is 0, Dropped
form, a symmetric modulo or 1 if leftmost bit is 1.
operation brings the value
into the range (page 330).
0b00000000000000111101011000011011 = 0h3D61B
Leading zeros are not shown
in the result.
The result is displayed according to the Base mode.

332 Chapter 20: Number Bases

BASE.DOC TI-89: Number Bases (US English) Joan Terrell Revised: 07/29/98 1:34 PM Printed: 07/29/98 1:34 PM Page 332 of 6
Chapter 21:
Memory and Variable Management
Preview of Memory and Variable Management................................. 334
Checking and Resetting Memory ........................................................ 337

21 Displaying the VAR-LINK Screen ........................................................ 338


Manipulating Variables and Folders with VAR-LINK........................ 340
Pasting a Variable Name to an Application........................................ 342
Archiving and Unarchiving a Variable ................................................ 343
If a Garbage Collection Message Is Displayed................................... 345
Memory Error When Accessing an Archived Variable ..................... 347

This chapter describes how to manage variables stored in the


TI-89’s memory.

Note: Remember that


variables can contain The MEMORY screen
expressions, lists, functions, shows how the memory is
programs, graph figures, currently being used.
etc.

The VAR-LINK screen


displays a list of defined
Note: You can also use variables and folders. For
VAR-LINK to transfer information about folders,
variables between two refer to Chapter 5.
linked TI-89s, a TI-92, or a
TI-92 Plus. Refer to
Chapter 22.
You can also store variables in the TI-89’s user data archive, a
protected area of memory separate from RAM (random access
memory).

You can
archive and
TI-89 User Data
RAM Archive
unarchive
a variable.

Archiving variables can be very useful (page 343). However, if


you do not need the benefits of the user data archive, you do not
need to use it.

Chapter 21: Memory and Variable Management 333

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 08/03/98 1:09 PM Printed: 08/03/98 2:36 PM Page 333 of 16
Preview of Memory and Variable Management

Assign values to a variety of variable data types. Use the VAR-LINK screen to view a list of
the defined variables. Then move a variable to the user data archive memory and explore
the ways in which you can and cannot access an archived variable. (Archived variables
are locked automatically.) Finally, unarchive the variable and delete the unused variables
so that they will not take up memory.

Steps Keystrokes Display

1. From the Home screen, assign "


variables with the following variable 5§X1¸
types. XZ2«4§
jFcXd
Expression: 5 ! x1 ¸
Function: xñ +4 ! f(x) 2[5b10
List: {5,10} ! l1 2\§j
L1¸
Matrix: [30,25] ! m1 2g30b25
2h§
jM1¸

2. Suppose you start to perform an 5p 5ù


operation using a function variable
but can’t remember its name.
3. Display the VAR-LINK screen. By 2°
default, this screen lists all defined
variables.
This example assumes that the variables
assigned above are the only ones defined.

4. Change the screen’s view to show „DB5


only function variables. ¸
Although this may not seem particularly
useful in an example with four variables,
consider how useful it could be if there
were many variables of all different types.

334 Chapter 21: Memory and Variable Management

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 334 of 16
Steps Keystrokes Display

5. Highlight the f function variable, and D2ˆ


view its contents.
Notice that the function was assigned
using f(x) but is listed as f on the screen.

6. Close the Contents window. N

7. With the f variable still highlighted, ¸ 5ù f(


close VAR-LINK and paste the
variable name to the entry line. Notice that “ ( ” is pasted.

8. Complete the operation. 2d¸ 5ù f(2) 40

Archiving a variable:

9. Redisplay VAR-LINK, and highlight 2°


the variable you want to archive. (use D to
The previous change in view is no longer highlight x1)
in effect. The screen lists all defined
variables.

10. Use the ƒ Manage toolbar menu to ƒ8


archive the variable.

û indicates the
variable is
archived.

11. Return to the Home screen and use "


the archived variable in a calculation. 6pX1¸

12. Attempt to store a different value to 10§X1


the archived variable. ¸

13. Cancel the error message. N

Chapter 21: Memory and Variable Management 335

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 335 of 16
Steps Keystrokes Display

14. Use VAR-LINK to unarchive the 2°


variable. (use D to
highlight x1)
ƒ9

15. Return to the Home screen and store "


a different value to the unarchived ¸
variable.

Deleting variables:

16. Display VAR-LINK, and use the ‡ All 2°


toolbar menu to select all variables. ‡1
A Ÿ mark indicates items that are selected.
Notice that this also selected the MAIN
folder.
Note: Instead of using ‡ (if you don’t
want to delete all your variables), you can
select individual variables. Highlight each
variable to delete and press †.
For information about deleting individual
variables, refer to page 340.
17. Use ƒ to delete. ƒ1
Note: You can press 0 (instead of ƒ 1 )
to delete the marked variables.

18. Confirm the deletion. ¸

19. Because ‡ 1 also selected the MAIN ¸


folder, an error message states that
you cannot delete the MAIN folder.
Acknowledge the message.
When VAR-LINK is redisplayed, the deleted
variables are not listed.
20. Close VAR-LINK and return to the N
current application (Home screen in
this example).
When you use N (instead of ¸ ) to
close VAR-LINK , the highlighted name is
not pasted to the entry line.

336 Chapter 21: Memory and Variable Management

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 336 of 16
Checking and Resetting Memory

The MEMORY screen shows the amount of memory (in bytes)


used by all variables in each data type, regardless of whether
the variables are stored in RAM or the user data archive. You
can also use this screen to reset the memory.

Displaying the Press 2 ¯.


MEMORY Screen
Size of history pairs
saved in the Home
Tip: To display the size of screen’s history area
individual variables and
determine if they are in the Free space in RAM
user data archive, use the Free space in user
VAR-LINK screen. data archive
Includes programs written for the TI-89
as well as any assembly-language
programs you have loaded

To close the screen, press ¸. To reset the memory, use the


following procedure.

Resetting the From the MEMORY screen:


Memory
1. Press ƒ.
2. Select the applicable item.

Item Description
Note: Selecting 1:All resets All Deletes all user-defined variables and folders,
the display contrast to its including variables in the user data archive; resets all
factory setting. To adjust the
contrast, use ¥ « and
system variables and modes to their original factory
¥ |. settings.

Important: To delete Memory Deletes all user-defined variables and folders,


individual (instead of all) including variables in the user data archive. This does
variables, use VAR-LINK as not affect system variables (xmin, ymin, etc.) or mode
described on page 340.
settings.
Default Resets all system variables and modes to their
original factory settings. This does not affect any
user-defined variables, functions, or folders.

Tip: To cancel the reset, 3. When prompted for confirmation, press ¸.


press N instead of ¸.
The TI-89 displays a message when the reset is complete.
4. Press ¸ to acknowledge the message.

Chapter 21: Memory and Variable Management 337

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 337 of 16
Displaying the VAR-LINK Screen

The VAR-LINK screen lists the variables and folders that are
currently defined. After displaying the screen, you can
manipulate the variables and/or folders as described later in
this chapter.

Displaying the Press 2 °. By default, the VAR-LINK screen lists all user-
VAR-LINK Screen defined variables in all folders and with all data types.
… Link lets you transmit
variables between units
and update the product
code in your TI-89.
Folder names Refer to Chapter 22.
Note: For information about (alphabetically
using folders, refer to listed)
Chapter 5.
6 indicates
you can scroll
for more Size in bytes
variables
and/or folders. Data type
Variable names (listed
alphabetically within each folder)
If selected with †, shows Ÿ.
If locked, shows Œ.
If archived, shows û.

To scroll through the list:


¦ Press D or C. (Use 2 D or 2 C to scroll one page at a time.)
— or —
Tip: Type a letter repeatedly ¦ Type a letter. If there are any variable names that start with that
to cycle through the names letter, the cursor moves to highlight the first of those variable
that start with that letter.
names. (Do not press j first. If you do, you need to press
j or 2 ™ again before you can type a letter.)

Variable Types as Type Description


Listed on VAR-LINK ASM Assembly-language program
DATA Data
EXPR Expression (includes numeric values)
FIG Geometry session
FUNC Function
GDB Graph database
LIST List
Note: FIG and MAC types MAC Macro for a geometry session
cannot be created or used MAT Matrix
on the TI-89, but they can
be transmitted from a TI-92 PIC Picture of a graph
or TI-92 Plus. PRGM Program
STR String
TEXT Text Editor session

338 Chapter 21: Memory and Variable Management

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 338 of 16
Listing Only a If you have a lot of variables and/or folders, it may be difficult to
Specified Folder locate a particular variable. By changing VAR-LINK’s view, you can
and/or Variable Type specify the information you want to see.
From the VAR-LINK screen:
1. Press „ View.
2. Highlight the setting you want to
change, and press B. This
displays a menu of valid
choices.

Tip: To cancel a menu, Folder — Always lists 1:All and


press N. 2:main, but lists other folders
only if you have created them.

Tip: To list system variables Var Type — Lists the valid


(window variables, etc.), variable types.
select G:System, the last
item in the Var Type menu.
ï indicates that you can scroll
for additional variable types.

3. Select the new setting.


4. When you are back on the VAR-LINK VIEW screen, press ¸.
The VAR-LINK screen is updated to show only the specified folder
and/or variable type.

Closing the To close the VAR-LINK screen and return to the current application,
VAR-LINK Screen use ¸ or N as described below.

Press: To:
Tip: For more information ¸ Paste the highlighted variable or folder name to the cursor
on using the ¸ paste location in the current application.
feature, refer to page 342.
N Return to the current application without pasting the
highlighted name.

Chapter 21: Memory and Variable Management 339

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 339 of 16
Manipulating Variables and Folders with VAR-LINK

On the VAR-LINK screen, you can show the contents of a


variable. You can also select one or more listed items and
manipulate them by using the operations in this section.

Showing the You can show all variable types except ASM, DATA, FIG, GDB, or
Contents of a MAC. For example, you must open a DATA variable in the
Variable Data/Matrix Editor.
1. On VAR-LINK, move the cursor to highlight the variable.
Note: You cannot edit the 2. Press 2 ˆ Contents.
contents from this screen.
If you highlight a folder, the
screen shows the number of
variables in that folder.
3. To return to VAR-LINK, press
any key.

Selecting Items For other operations, select one or more variables and/or folders.
from the List
To select: Do this:
A single variable Move the cursor to highlight the item.
or folder
Note: If you use † to Ÿ one A group of variables Highlight each item and press †. A Ÿ is
or more items and then or folders displayed to the left of each selected item.
highlight a different item, the
following operations affect (If you select a folder, all variables in that
only the Ÿ’ed items. folder are selected.) Use † to select or
deselect an item.
All folders and Press ‡ All and select 1:Select All.
all variables
Selects the last set of
items transmitted to your
unit during the current
VAR-LINK session. Refer
to Chapter 22.

Deleting Variables To delete a folder, you must delete all of the variables in that folder.
or Folders However, you cannot delete the MAIN folder even if it is empty.
1. On VAR-LINK, select the
Tip: When you use † to variables and/or folders.
select a folder, its variables
are selected automatically 2. Press ƒ Manage and select
so that you can delete the 1:Delete. (You can press
folder and its variables at 0 instead of ƒ 1.)
the same time.
3. To confirm the deletion,
press ¸.

340 Chapter 21: Memory and Variable Management

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 340 of 16
Creating a New For information about using folders, refer to Chapter 5.
Folder 1. On VAR-LINK, press ƒ Manage and select 5:Create Folder.
2. Type a unique name, and
press ¸ twice.

Copying or Moving You must have at least one folder other than MAIN. You cannot use
Variables from One VAR-LINK to copy variables within the same folder.
Folder to Another 1. On VAR-LINK, select the variables.
2. Press ƒ Manage and select 2:Copy or 4:Move.
Tip: To copy a variable to a 3. Select the destination folder.
different name in the same
folder, use § (such as 4. Press ¸.
a1! a2) or the CopyVar
command from the Home The copied or moved
screen. variables retain their
original names.

Renaming Variables Remember, if you use † to select a folder, the variables in that
or Folders folder are selected automatically. As necessary, use † to deselect
individual variables.
1. On VAR-LINK, select the variables and/or folders.
2. Press ƒ Manage and select 3:Rename.
3. Type a unique name, and
press ¸ twice.
If you selected multiple items,
you are prompted to enter a
new name for each one.

Locking or When a variable is locked, you cannot delete, rename, or store to it.
Unlocking Variables However, you can copy, move, or display its contents. When a folder
or Folders is locked, you can manipulate the variables in the folder (assuming
the variables are not locked), but you cannot delete the folder.
1. On VAR-LINK, select the variables and/or folders.
2. Press ƒ Manage and select 6:Lock Variable or 7:UnLock Variable.

Œ indicates a locked variable


or folder in RAM.

û indicates an archived variable,


which is locked automatically.

Chapter 21: Memory and Variable Management 341

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 341 of 16
Pasting a Variable Name to an Application

Suppose you are typing an expression on the Home screen


and can’t remember which variable to use. You can display the
VAR-LINK screen, select a variable from the list, and paste that
variable name directly onto the Home screen’s entry line.

Which Applications From the following applications, you can paste a variable name to
Can You Use? the current cursor location.
¦ Home screen, Y= Editor, Table Editor, or Data/Matrix Editor —
The cursor must be on the entry line.
¦ Text Editor, Window Editor, Numeric Solver, or Program Editor
— The cursor can be anywhere on the screen.

Procedure Starting from an application listed above:


1. Position the cursor where
sin(|
you want to insert the
variable name.
2. Press 2 °.
Note: You can also highlight 3. Highlight the applicable
and paste folder names. variable.

4. Press ¸ to paste the


sin(a1|
variable name.
Note: This pastes the
variable’s name, not its 5. Finish typing the
sin(a1)|
contents. Use 2 £, expression.
instead of 2 °, to
recall a variable’s contents.

If you paste a variable name that is not in the current folder, the
variable’s pathname is pasted.

sin(class\a2|

Assuming that CLASS is not the current folder, this is


pasted if you highlight the a2 variable in CLASS .

342 Chapter 21: Memory and Variable Management

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 342 of 16
Archiving and Unarchiving a Variable

To archive or unarchive one or more variables interactively,


use the VAR-LINK screen. You can also perform these
operations from the Home screen or a program.

Why Would You The user data archive lets you:


Want to Archive a ¦ Store data, programs, or any other variables to a safe location
Variable? where they cannot be edited or deleted inadvertently.
¦ Create additional free RAM by archiving variables. For
example:
Note: You cannot archive − You can archive variables that you need to access but do
variables with reserved not need to edit or change, or variables that you are not
names or system variables.
using currently but need to retain for future use.
− If you acquire additional programs for your TI-89,
particularly if they are large, you may need to create
additional free RAM before you can install those programs.
Additional free RAM can improve performance times for certain
types of calculations.

Checking for Before archiving or unarchiving variables, particularly those with a


Available Space large byte size (such as large programs):
1. Use the VAR-LINK screen to find the size of the variable.
2. Use the MEMORY screen to see if there is enough free space.

Note: If there is not enough For an: Sizes must be such that:
space, unarchive or delete
variables as necessary. Archive Archive free size > variable size

Unarchive RAM free size > variable size

Even if there appears to be enough free space, you may see a


Garbage Collection message (page 345) when you attempt to archive
a variable. Depending on the usability of empty blocks in the user
data archive, you may need to unarchive existing variables to create
more free space.

Chapter 21: Memory and Variable Management 343

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 343 of 16
From the VAR-LINK To archive or unarchive:
Screen 1. Press 2 ° to display the VAR-LINK screen.
Tip: To select a single 2. Select one or more variables, which can be in different folders.
variable, highlight it. To (You can select an entire folder by selecting the folder name.)
select multiple variables,
highlight each variable and 3. Press ƒ and select either:
press † Ÿ.
8:Archive Variable
– or –
9:Unarchive Variable

Note: If you get a Garbage If you select 8:Archive Variable, the


Collection message, refer to variables are moved to the user
page 345.
data archive.
archived
variables

Note: An archived variable You can access an archived RAM User Data Archive
is locked automatically. You variable just as you would any CLASS a2
can access the variable, but û pic1
you cannot edit or delete it. locked variable. For all purposes, MAIN
Refer to page 347. an archived variable is still in its f
l1
original folder; it is simply stored m1
in the user data archive instead of û
prog1
RAM. s1
text1

From the Home Use the Archive and Unarchiv commands (Appendix A).
Screen or a Program Archive variable1, variable2, …

Unarchiv variable1, variable2, …

344 Chapter 21: Memory and Variable Management

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 344 of 16
If a Garbage Collection Message Is Displayed

If you use the user data archive extensively, you may see a
Garbage Collection message. This occurs if you try to archive
a variable when there is not enough free archive memory.
However, the TI-89 will attempt to rearrange the archived
variables to make additional room.

Responding to the When you see the message to the


Garbage Collection right:
Message ¦ To continue archiving,
press ¸.
– or –
¦ To cancel, press N.
After garbage collection, depending on how much additional space is
freed, the variable may or may not be archived. If not, you can
unarchive some variables and try again.

Why not Perform The message:


Garbage Collection ¦ Lets you know why an archive will take longer than usual. It also
Automatically, alerts you that the archive may fail if there is not enough memory.
without a Message?
¦ Can alert you when a program is caught in a loop that repetitively
fills the user data archive. Cancel the archive and investigate the
reason.

Why Is Garbage The user data archive is divided into sectors. When you first begin
Collection archiving, variables are stored consecutively in sector 1. This
Necessary? continues to the end of the sector. If there is not enough space left in
the sector, the next variable is stored at the beginning of the next
sector. Typically, this leaves an empty block at the end of the
previous sector.
Note: An archived variable Each variable that you archive is variable A Sector 1
is stored in a continuous stored in the first empty block large
block within a single sector;
it cannot cross a sector enough to hold it. variable B
Empty
boundary. block
Sector 2
variable D variable C

Depending on its size,


variable D is stored in
one of these locations.
Sector 3

Note: Garbage collection This process continues to the end of


occurs when the variable the last sector. Depending on the size of individual variables, the
you are archiving is larger
than any empty block. empty blocks may account for a significant amount of space.

Chapter 21: Memory and Variable Management 345

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 345 of 16
How Unarchiving a When you unarchive a variable, it is variable A
Sector 1
Variable Affects the copied to RAM but is not actually
Process deleted from the user data archive
memory.
After you unarchive Sector 2
variables B and C, they
continue to take up space.

variable D
Unarchived variables are “marked for
deletion,” meaning they will be Sector 3
deleted during the next garbage
collection.

If the MEMORY Even if the MEMORY screen shows


Screen Shows enough free space to archive a
Enough Free Space variable, you may still get a
Garbage Collection message.
When you unarchive a variable, the
Archive free amount increases
immediately, but the space is not Shows free space that
will be available after all
actually available until after the “marked for deletion”
next garbage collection. variables are deleted.

If the Archive free amount shows enough available space for your
variable, however, there probably will be enough space to archive it
after garbage collection (depending on the usability of any empty
blocks).

The Garbage The garbage collection process: variable A


Sector 1
Collection Process ¦ Deletes unarchived variables from
variable D
the user data archive.
¦ Rearranges the remaining
variables into consecutive blocks. Sector 2

346 Chapter 21: Memory and Variable Management

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 346 of 16
Memory Error When Accessing an Archived Variable

An archived variable is treated the same as a locked variable.


You can access the variable, but you cannot edit or delete it.
In some cases, however, you may get a Memory Error when
you try to access an archived variable.

What Causes the The Memory Error message is displayed if there is not enough free
Memory Error? RAM to access the archived variable. This may cause you to ask, “If
the variable is in the user data archive, why does it matter how much
RAM is available?” The answer is that the following operations can
be performed only if a variable is in RAM.
Note: As described below, a ¦ Opening a text variable in the Text Editor.
temporary copy lets you
open or execute an archived ¦ Opening a data variable, list, or matrix in the Data/Matrix Editor.
variable. However, you
cannot save any changes to ¦ Opening a program or function in the Program Editor.
the variable.
¦ Running a program or referring to a function.
So that you don’t have to unarchive variables unnecessarily, the
TI-89 performs a “behind-the scenes” copy. For example, if you run a
program that is in the user data archive, the TI-89:
Note: Except for programs 1. Copies the program to RAM.
and functions, referring to
an archived variable does 2. Runs the program.
not copy it. If variable ab is
archived, it is not copied if 3. Deletes the copy from RAM when the program is finished.
you perform 6ù ab.
The error message is displayed if there is not enough free RAM for
the temporary copy.

Correcting the Error To free up enough RAM to access the variable:


1. Use the VAR-LINK screen ( 2 ° ) to determine the size of
the archived variable that you want to access.
2. Use the MEMORY screen ( 2 ¯ ) to check the RAM free size.
Note: Typically, the RAM 3. Free up the needed amount of memory by:
free size must be larger than
the archived variable. ¦ Deleting unnecessary variables from RAM.
¦ Archiving large variables or programs (moving them from
RAM to the user data archive).

Chapter 21: Memory and Variable Management 347

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 347 of 16
348 Chapter 21: Memory and Variable Management

MEMORY.DOC TI-89:Memory & Variables Mgmt (US English) Joan Terrell Revised: 07/29/98 1:18 PM Printed: 07/29/98 1:18 PM Page 348 of 16
Chapter 22:
Linking and Upgrading
Transmitting Variables between Two Units....................................... 350
Transmitting Variables under Program Control ................................ 353

22 Compatibility between a TI-89, TI-92, and TI-92 Plus...................... 355


Upgrading Your TI-89 Product Code .................................................. 357

This chapter describes how you can use the VAR-LINK screen to
transfer variables from one TI-89 to another or to a TI-92 or
TI-92 Plus.
Note: Remember that
variables include programs,
The VAR-LINK screen
functions, graph figures, etc. displays a list of defined
variables and folders. For
information about using
folders, refer to Chapter 5.

You can use the Flash technology built into your TI-89 to upgrade
the calculator’s product code.
You will need: http://www.ti.com/calc

¦ Either a PC or Macintosh
computer with an Internet
connection.
¦ An optional TI-GRAPH LINKé
cable (available separately).
This is not the same as the
cable that comes with your via TI-GRAPH LINK
calculator. cable

If you have the optional TI-89

TI-GRAPH LINK software for the


TI-89, you can also transmit
variables between your
calculator and a computer. Refer
to the manual that comes with
the TI-GRAPH LINK software.

Chapter 22: Linking and Upgrading 349

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 08/03/98 1:09 PM Printed: 08/03/98 2:37 PM Page 349 of 13
Transmitting Variables between Two Units

You can transmit variables and folders between two TI-89


units, or between a TI-89 and a TI-92 or TI-92 Plus. This is a
convenient way to share any variable listed on the VAR-LINK
screen — functions, programs, etc.

Linking Two Your TI-89 comes with a cable that lets you link two units. Using firm
Units pressure, insert one end of the cable into the I/O port of each unit.

TI-89 TI-89

Note: You can link a TI-89 Sending


to another TI-89 or a TI-92 unit
or TI-92 Plus, but not to a
graphing calculator such as
Receiving
a TI-81, TI-82, TI-83, TI-85, unit
or TI-86.

Cable
I/O Port I/O Port

Either unit can send or receive, depending on how you set them up
from the VAR-LINK screen.

Transmitting Step: On the: Do this:


Variables 1. Receiving a. Display the VAR-LINK screen (2 ° ),
unit described in Chapter 21.
Note: Set up the receiving
unit first. If you set up the b. Press … Link
sending unit first, it may and select
display an error message or 2:Receive.
remain BUSY until you
cancel the transmission. The message VAR-LINK:
WAITING TO RECEIVE and the BUSY indicator are
displayed in the status line.
Note: On VAR-LINK: 2. Sending a. Display the VAR-LINK screen (2 ° ).
¦ To select a single unit
b. Select the variables to send.
variable, move the cursor
to highlight it. c. Press … Link and select the type of receiving
¦ To select multiple unit, either:
variables, highlight each
one and press † to Ÿ it. ¦ 1:Send to TI-89 / 92 Plus
You can also use the – or –
‡ All menu.
¦ 3:Send to TI-92

350 Chapter 22: Linking and Upgrading

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 07/29/98 1:20 PM Printed: 07/29/98 1:21 PM Page 350 of 12
Note: Depending on This starts the transmission.
transmission speed and
variable sizes, messages in ¦ During transmission, messages are displayed in the status line of
the status line may be both units to show the name of each transmitted item.
displayed only briefly.
¦ When transmission is complete, the VAR-LINK screen is updated
on the receiving unit.

Variables or Folders If you select a: What happens:


Variable (but not the The variable is transmitted to the current
folder it is in) folder on the receiving unit.
Locked variable The variable is transmitted but it is unlocked
on the receiving unit.
Archived variable The variable is stored in RAM (not the user
data archive) on the receiving unit. The
transmitted variable is unlocked.
Note: You cannot send an archived variable
from a TI-89 to a TI-92. If you need to send
the variable, unarchive it first.
Folder The folder and its contents are transmitted to
the receiving unit.
Note: If you use † to select a folder, all
variables in that folder are selected
automatically. Use † to deselect any
variables that you do not want to transmit.

For compatibility information about using TI-89 variables, including


functions and programs, on a TI-92 or TI-92 Plus (or vice versa),
refer to page 355.

Canceling a From either the sending or receiving unit:


Transmission 1. Press ´.
An error message is displayed.
2. Press N or ¸.

Chapter 22: Linking and Upgrading 351

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 07/29/98 1:20 PM Printed: 07/29/98 1:21 PM Page 351 of 12
Common Error and Shown on: Message and Description
Notification Sending unit
Messages

Note: The sending unit may This is displayed after several seconds if:
not always display this
message. Instead, it may ¦ A cable is not attached to the sending unit’s I/O
remain BUSY until you port.
cancel the transmission. — or —
¦ A receiving unit is not attached to the other end of
the cable.
— or —
¦ The receiving unit is not set up to receive.
Press N or ¸ to cancel the transmission.
Receiving
unit

New Name is active


only if you change
Overwrite to NO.

The receiving unit has a variable with the same name


as the specified variable being sent.
¦ To overwrite the existing variable, press ¸.
(By default, Overwrite = YES.)
¦ To store the variable to a different name, set
Overwrite = NO. In the New Name input box, type a
variable name that does not exist in the receiving
unit. Then press ¸ twice.
¦ To skip this variable and continue with the next
one, set Overwrite = SKIP and press ¸.
¦ To cancel the transmission, press N.
Receiving unit

The receiving unit does not have enough memory for


the variable being sent. Press N or ¸ to cancel
the transmission.

352 Chapter 22: Linking and Upgrading

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 07/29/98 1:20 PM Printed: 07/29/98 1:21 PM Page 352 of 12
Transmitting Variables under Program Control

You can use a program containing GetCalc and SendCalc or


SendChat to transmit a variable from one TI-89 to another or
to a TI-92 or TI-92 Plus.

Overview of SendCalc sends a variable to the link port, where a linked calculator
Commands can receive the variable value. The linked calculator must be on the
Home screen or must execute GetCalc from a program. If you send to
a TI-92, however, an error occurs if the TI-92 executes GetCalc from
a program. In this case, you must use SendChat instead.
SendChat, a general alternative to SendCalc, is useful if the receiving
calculator is a TI-92 (or for a generic chat program that allows a
TI-89, TI-92, or TI-92 Plus to be the receiving calculator). SendChat
sends a variable only if that variable is compatible with the TI-92,
which is typically true in chat programs. However, SendChat will not
send an archived variable, a TI-89 or TI-92 Plus graph data base, etc.

The “Chat” Program The following program uses GetCalc and SendChat. The program
sets up two loops that let the linked calculators take turns sending
and receiving/displaying a variable named msg. InputStr lets each
user enter a message in the msg variable.

:Chat()
:Prgm
:ClrIO
:Disp "On first unit to send,"," enter 1;","On first to receive,"
:InputStr " enter 0",msg
:If msg="0" Then
Sets up this unit to : While true
receive and display : GetCalc msg
the variable msg. : Disp msg Loop executed by the unit that
: InputStr msg receives the first message.
Then lets this user
enter a message in : SendChat msg
msg and send it. : EndWhile
:Else
Lets this user enter : While true
a message in msg : InputStr msg
and send it. : SendChat msg Loop executed by the unit that
: GetCalc msg sends the first message.
Then sets up this : Disp msg
unit to receive and
display msg. : EndWhile
:EndIf
:EndPrgm

To synchronize GetCalc and SendChat, the loops are arranged so that


the receiving unit executes GetCalc while the sending unit is waiting
for the user to enter a message.

Chapter 22: Linking and Upgrading 353

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 07/29/98 1:20 PM Printed: 07/29/98 1:21 PM Page 353 of 12
Running the This procedure assumes that:
Program ¦ The two calculators are linked with the connecting cable as
described on page 350.
¦ The Chat program is loaded on both calculators. (A program
loaded on a TI-92 must use SendCalc instead of SendChat.)
Note: For information about − Use each calculator’ s Program Editor to enter the program.
using the Program Editor, — or —
refer to Chapter 17.
− Enter the program on one calculator and then use VAR-LINK to
transmit the program variable to the other calculator as
described on page 350.

To run the program on both calculators:


1. On the Home screen of each calculator, enter:
chat()
2. When each calculator displays its initial prompt, respond as
shown below.

On the: Type:
Calculator that will send 1 and press ¸.
the first message

Calculator that will receive 0 and press ¸.


the first message.

3. Take turns typing a message and pressing ¸ to send the


variable msg to the other calculator.

Stopping the Because the Chat program sets up an infinite loop on both
Program calculators, press ´ (on both calculators) to break the program. If
you press N to acknowledge the error message, the program stops
on the Program I/O screen. Press ‡ or N to return to the Home
screen.

354 Chapter 22: Linking and Upgrading

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 07/29/98 1:20 PM Printed: 07/29/98 1:21 PM Page 354 of 12
Compatibility between a TI-89, TI-92, and TI-92 Plus

In general, TI-89 and TI-92 Plus data and programs are


compatible, with some differences. However, both calculators
have incompatibilities with the TI-92. Where possible, data
transfer with a TI-92 is allowed.

Main Types of All data is compatible between a TI-89 and TI-92 Plus, but some
Incompatibilities programs written for one may not run the same on the other because
of differences in the calculators’ screen sizes and keyboards. Also,
the TI-89 does not have built-in Geometry as does the TI-92 Plus.
Geometry figures and macros can be transferred to a TI-89, but they
cannot be used.
Compared to a TI-92, the TI-89 and TI-92 Plus:
¦ Have functions, instructions, and system variables that do not
exist on the TI-92.
¦ Can use the same variable to define and then evaluate a user-
defined function or program. For example, you can define a
function in terms of x and then evaluate that function using an
expression containing x. This causes a Circular definition error on
the TI-92. Refer to Chapter 17: Programming for more
information.
¦ Manage local variables differently than the TI-92. Refer to
Chapter 17: Programming for more information.

Text versus When you create a function or program in the Program Editor, it
Tokenized exists in text form until you run it. Then it is converted automatically
to a tokenized form.
¦ Data in text form can always be shared between a TI-89, TI-92,
and TI-92 Plus. However, the function or program may not give
the same results when run on a different calculator.
Note: If you use the ¦ Data in tokenized form contains information that describes
Program Editor to edit a included functionality. The TI-89 and TI-92 Plus use the same
function or program that is in
tokenized form, it returns to tokenized forms, but the TI-92 is different.
text form until the next time
− If you attempt to send a tokenized function, program, or other
you run it.
data type from a TI-89 or TI-92 Plus to a TI-92, the TI-89 or
TI-92 Plus automatically checks to be sure the functionality is
acceptable for the TI-92. If not, the data is not sent. This is for
your protection because the tokenized data could cause the
TI-92 to lock up if the data is sent with invalid functionality.
− Even if the tokenized data is sent, this does not guarantee that
the data will give the same results on the other calculator.

Chapter 22: Linking and Upgrading 355

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 07/29/98 1:20 PM Printed: 07/29/98 1:21 PM Page 355 of 12
TI-92 to All user-defined variables, including functions and programs, can be
TI-89 or sent from a TI-92 to a TI-89 or TI-92 Plus. However, they may behave
TI-92 Plus differently. Examples are:
¦ Conflicts between TI-89 and TI-92 Plus system variable, function,
and instruction names and TI-92 user-defined names.
¦ Programs or functions that use symbolic local variables. On a
TI-89 and TI-92 Plus, a local variable must be initialized with a
value before it can be referenced (meaning that a local variable
cannot be used symbolically), or you must use a global variable
instead. This includes programs that evaluate strings as local
variables that are symbolic, such as expr().

TI-89 or TI-92 Plus Any functionality that exists on a TI-89 or TI-92 Plus and NOT on a
to TI-92 TI-92 will NOT run as expected on a TI-92. In some cases (text
form), the data will transfer but may give an error when run on the
TI-92. In other cases (tokenized form), the data may not be sent to
the TI-92.
If the data contains only functionality available on a TI-92, it can
probably be sent to and run on a TI-92 with the same results.
Exceptions include:
¦ Graph databases (GDBs) will not be sent because the TI-89 and
TI-92 Plus use a GDB structure that has more information than
the TI-92 GDB.
¦ A function or program defined in terms of a variable such as x
and then evaluated using some expression containing that same
variable will run on a TI-89 and TI-92 Plus, but will cause a
Circular definition error on a TI-92.

¦ Some existing TI-92 functions and instructions have enhanced


functionality on a TI-89 and TI-92 Plus (such as NewData,
setMode(), and matrix functions that use the optional tolerance
argument). These functions and instructions may not be sent at
all or may cause an error on a TI-92.
¦ Archived variables will not be sent to a TI-92. Unarchive the
variables first.
¦ Data variables that contain headers will not be sent. Those
without headers will be sent only if the contents are TI-92
compatible.

356 Chapter 22: Linking and Upgrading

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 07/29/98 1:20 PM Printed: 07/29/98 1:21 PM Page 356 of 12
Upgrading Your TI-89 Product Code

You can upgrade the software, or product code, on your TI-89.


You can also transfer product code from one unit to another,
provided that the receiving unit has the appropriate certificate
that allows it to run that software.

Product Code Product code upgrades can include:


Upgrades ¦ Maintenance upgrades to your current product code (which will
be released free of charge).
Important: A product code ¦ Major software feature upgrades and/or new applications (which
upgrade completely will be available for purchase). Typically, the applications are
replaces the previous
product code. available via the O key; they are not simply programs that you
run from the Home screen.
To download a purchased product code upgrade from the TI web
site, you must provide information that identifies your TI-89.
(Instructions are given on the web.) This information is used to
create a customized electronic software certificate that specifies
which product code your unit is licensed to run.

Backing Up Your When you install new product code, the installation process:
Unit Before an ¦ Deletes all user-defined variables (in both RAM and the user data
Installation archive), functions, programs, and folders.
¦ Resets all system variables and modes to their original factory
settings. This is equivalent to using the MEMORY screen to reset
all memory.
Important: Before To retain any existing variables, do the following before installing
installation, turn on your the upgrade:
TI-89 and replace the
batteries if the low-battery ¦ Transmit the variables to another calculator as described on
indicator is displayed.
page 350.
– or –
¦ Use a TI-GRAPH LINKé (available separately) to send the
variables to a computer.
If you have a TI-GRAPH LINK cable and software for the TI-92, be
aware that the software is not compatible with the TI-89. The cable
works with both units. For information about obtaining a TI-GRAPH
LINK for the TI-89, check the TI web site at:

http://www.ti.com/calc/docs/link.htm
or contact Texas Instruments as described in Appendix C.

Chapter 22: Linking and Upgrading 357

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 07/29/98 1:20 PM Printed: 07/29/98 1:21 PM Page 357 of 12
Where to Get For up-to-date information about http://www.ti.com/calc
Upgrades and available upgrades and
Applications applications and how to install software product code
them, check the TI web site at: certificate

http://www.ti.com/calc
or contact Texas Instruments as
described in Appendix C.
You can download a new software
certificate and/or the new product
code from the TI web site to a
computer, and use a TI-GRAPH via TI-GRAPH LINK
LINK cable (available separately) cable
to install them on your TI-89. TI-89

For complete information, refer to


the instructions on the web.

If You’re Upgrading To install a purchased upgrade, each TI-89 must have its own unique
Multiple TI-89 Units certificate. During download and installation, however, you can
choose both the certificate and product code or only the certificate.
To upgrade multiple units, you can transfer product code from one
unit to another instead of installing the product code on each unit via
a computer.

Tip: Generally, transmitting From the computer, From the computer, download and
product code from unit to download and install the install only the unique certificate
unit is much quicker than certificate and product for each of the other units.
installing the product code code for one unit.
via a computer.
TI-89 TI-89 TI-89

Starting with the first unit, transfer the product code


from one unit to another as described on page 359.

358 Chapter 22: Linking and Upgrading

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 07/29/98 1:20 PM Printed: 07/29/98 1:21 PM Page 358 of 12
Transferring If the sending unit has: Then:
Product Code from Original TI-89 product code The receiving unit does not need a
One TI-89 to or a free maintenance new certificate. Its current
Another upgrade for that code certificate is valid, and the product
code can be transferred.
Tip: You can see which Any other type of product The product code must first be
version of product code is in code purchased for the receiving unit.
your TI-89. From the Home
screen, press ƒ and select The software certificate can then be
A:About. downloaded and installed on the
receiving unit, and the product code
can be transferred.

To transfer product code, connect the sending and receiving units by


using the cable that came with the TI-89. Refer to the illustration on
page 350.

Step: On the: Do this:


Important: For each 1. Receiving a. Display the VAR-LINK screen (2 ° ).
receiving unit, remember to
unit
back up information as b. Press … Link
necessary and ensure that and select
the batteries are in good
working condition. 5:Receive
Product Code.
A warning message states that all memory
(RAM and archive) will be cleared on the
receiving unit. If you need to quit and back
up any variables, press N.
c. Press ¸.
The message VAR-LINK: WAITING TO RECEIVE is
shown in the status line.
2. Sending a. Display the VAR-LINK screen (2 ° ).
unit
b. Press … Link and select 4:Send Product Code.
A warning message is displayed similar to
the one on the sending unit.
c. Press ¸.

During the transfer, the receiving unit shows how the transfer is
progressing. When the transfer is complete:
¦ The sending unit returns to the VAR-LINK screen.
¦ The receiving unit returns to the Home screen. The display
contrast is reset to its factory setting, so you may need to use
¥ | (lighten) or ¥ « (darken) to adjust the contrast.

Chapter 22: Linking and Upgrading 359

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 07/29/98 1:20 PM Printed: 07/29/98 1:21 PM Page 359 of 12
Do Not Attempt to After the transfer starts, the receiving unit’s existing product code is
Cancel the Transfer effectively deleted. If you interrupt the transfer before it is complete,
the receiving unit will not operate properly. You will then need to
reinstall the product code via a computer.

Error Messages Most error messages are displayed on the sending unit. Depending
on when the error occurs during the transfer process, you may see
an error message on the receiving unit.

Error Message Description

The sending and receiving units are


not connected properly, or the
receiving unit is not set up to
receive.
The certificate on the receiving unit
is not valid for the product code on
the sending unit. You must obtain
and install a valid certificate as
described earlier in this section.
An error occurred during the
transfer. The current product code
in the receiving unit is corrupted.
You must reinstall the product code
from a computer.
Replace the batteries on the unit
displaying this message.

360 Chapter 22: Linking and Upgrading

LINK.DOC TI-89: Linking and Upgrading (US English) Joan Terrell Revised: 07/29/98 1:20 PM Printed: 07/29/98 1:21 PM Page 360 of 12
Chapter 23:
Applications
App. 1: Analyzing the Pole-Corner Problem....................................... 362
App. 2: Deriving the Quadratic Formula ............................................ 364

23 App. 3: Exploring a Matrix ................................................................... 366


App. 4: Exploring cos(x) = sin(x)........................................................ 367
App. 5: Finding Minimum Surface Area of a Parallelepiped................ 368
App. 6: Running a Tutorial Script Using the Text Editor ................. 370
App. 7: Decomposing a Rational Function......................................... 372
App. 8: Studying Statistics: Filtering Data by Categories................. 374
App. 9: CBLé Program for the TI-89 .................................................. 377
App. 10: Studying the Flight of a Hit Baseball ................................... 378
App. 11: Visualizing Complex Zeros of a Cubic Polynomial.............. 380
App. 12: Solving a Standard Annuity Problem................................... 382
App. 13: Computing the Time-Value-of-Money .................................. 383
App. 14: Finding Rational, Real, and Complex Factors.................... 384
App. 15: Simulation of Sampling without Replacement ................... 385

This chapter contains applications that show how the TI-89 can
be used to solve, analyze, and visualize actual mathematical
problems.

Chapter 23: Applications 361

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 08/03/98 12:58 PM Printed: 08/03/98 2:38 PM Page 361 of 26
App. 1: Analyzing the Pole-Corner Problem

A ten-foot-wide hallway meets a five-foot-wide hallway in the


corner of a building. Find the maximum length pole that can be
moved around the corner without tilting the pole.

Maximum Length of The maximum length of a pole c is the shortest line segment touching
Pole in Hallway the interior corner and opposite sides of the two hallways as shown
in the diagram below.
Hint: Use proportional sides and the Pythagorean theorem to find
the length c with respect to w. Then find the zeros of the first
derivative of c(w). The minimum value of c(w) is the maximum length
of the pole.

10
a = w+5
b = 10a
w
w
a
c
5

Tip: When you want to 1. Define the expression


define a function, use for side a in terms of
multiple character names as
you build the definition. w and store it in a(w).

2. Define the expression


for side b in terms of
w and store it in b(w).

3. Define the expression


for side c in terms of
w and store it in c(w)
Enter: Define c(w)=
‡(a(w)^2+b(w)^2)

Note: The maximum length 4. Use the zeros()


of the pole is the minimum function to compute
value of c(w).
the zeros of the first
derivative of c(w) to
find the minimum
value of c(w).

362 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 362 of 26
5. Compute the exact
maximum length of
the pole.
Enter: c ( 2 ± )

Hint: Use the auto-paste 6. Compute the


feature to copy the result approximate
from step 4 to the entry line
inside the parentheses of maximum length of
c( ) and press ¥ ¸. the pole.
Result:
Approximately
20.8097 feet.

Chapter 23: Applications 363

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 363 of 26
App. 2: Deriving the Quadratic Formula

This application shows you how to derive the quadratic


formula:
ë b „ bñ -4ac
x=
2a
Detailed information about using the functions in this example
can be found in Chapter 3: Symbolic Manipulation.

Performing Perform the following steps to derive the quadratic formula by


Computations to completing the square of the generalized quadratic equation.
Derive the Quadratic 1. Clear all one-character
Formula variables in the
current folder by
pressing
2 ˆ 1 Clear a-z
¸.
2. On the Home screen,
enter the generalized
quadratic equation:
axñ +bx+c=0.
Note: This example uses 3. Subtract c from both
the result of the last answer sides of the equation.
to perform computations on
the TI-89. This feature Enter: 2 ± ì j c
reduces keystroking and
chances for error. 4. Divide both sides of
the equation by the
Tip: Continue to use the last
answer (2 ± ) as in step leading coefficient a.
3 in steps 4 through 9.

5. Use the expand()


function to expand the
result of the last
answer.
6. Complete the square
by adding ((b/a)/2)2 to
both sides of the
equation.

364 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 364 of 26
7. Factor the result using
the factor() function.

8. Multiply both sides of


the equation by 4añ.

9. Take the square root


of both sides of the
equation with the
constraint that a>0 and
b>0 and x>0.
10. Solve for x by
subtracting b from
both sides and then
dividing by 2a.
Note: This is only one of the
two general quadratic
solutions due to the
constraint in step 9.

Chapter 23: Applications 365

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 365 of 26
App. 3: Exploring a Matrix

This application shows you how to perform several matrix


operations.

Exploring a 3x3 Perform these steps to generate a random matrix, augment and find
Matrix the identity matrix, and then solve to find an invalid value of the
inverse.
1. On the Home screen,
use RandSeed to set
the random number
generator seed to the
factory default, and
then use randMat() to
create a random 3x3
matrix and store it in a.
2. Replace the [2,3]
element of the matrix
with the variable x,
and then use the
augment() function, to
augment the 3x3
identity to a and store
the result in b.
Tip: Use the cursor in the 3. Use rref() to “row
history area to scroll the reduce” matrix b:
result.
The result will have
the identity matrix in
the first three columns
and a^ë 1 in the last
three columns.
Tip: Use the cursor in the 4. Solve for the value of x
history area to scroll the that will cause the
result.
inverse of the matrix
to be invalid.
Enter: solve(getDenom(
2 ± [1,4] )=0,x)
Result: x=ë 70/17

366 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 366 of 26
App. 4: Exploring cos(x) = sin(x)

This application uses two methods to find where


cos(x) = sin(x) for the values of x between 0 and 3p.

Method 1: Perform the following steps to observe where the graphs of the
Graph Plot functions y1(x)=cos(x) and y2(x)=sin(x) intersect.
1. In the Y= Editor, set
y1(x)=cos(x) and
y2(x)=sin(x).
2. In the Window Editor,
set xmin=0 and
xmax=3p.
3. Press „ and select
A:ZoomFit.
Hint: Press ‡ and select 4. Find the intersection
5:Intersection. Respond to point of the two
the screen prompts to select
the two curves, and the functions.
lower and upper bounds for
5. Note the x and y
intersection A.
coordinates. (Repeat
steps 4 and 5 to find
the other intersections.)

Method 2: Perform the following steps to solve the equation sin(x)=cos(x) with
Symbolic respect to x.
Manipulation 1. On the Home screen,
enter solve(sin(x)=
cos(x),x).
The solution for x is
where @n1 is any
integer.
Hint: Move the cursor into 2. Using the ceiling() and
the history area to highlight floor() functions, find
the last answer. Press
¸ to copy the result of the ceiling and floor
the general solution. values for the
intersection points as
shown.
Hint: Press Í to get the 3 Enter the general
“with” operator. solution for x and
apply the constraint
for @n1 as shown.
Compare the result
with Method 1.

Chapter 23: Applications 367

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 367 of 26
App. 5: Finding Minimum Surface Area of a Parallelepiped

This application shows you how to find the minimum surface


area of a parallelepiped having a constant volume V. Detailed
information about the steps used in this example can be found
in Chapter 3: Symbolic Manipulation and Chapter 10:
3D Graphing.

Exploring a 3D Perform the following steps to define a function for the surface area
Graph of the of a parallelepiped, draw a 3D graph, and use the Trace tool to find a
Surface Area of a point close to the minimum surface area.
Parallelepiped 1. On the Home screen,
define the function
sa(x,y,v) for the
surface area of a
parallelepiped.

Enter: define
sa(x,y,v)=2ù xù y+
2v/x+2v/y
2. Select the 3D Graph
mode. Then enter the
function for z1(x,y) as
shown in this example
with volume v=300.

3. Set the Window


variables to:
eye= [60,90,0]
x= [0,15,15]
y= [0,15,15]
z= [260,300]
ncontour= [5]
4. Graph the function
and use Trace to go to
the point close to the
minimum value of the
surface area function.

The Trace cursor


is here.

368 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 368 of 26
Finding the Perform the following steps to solve the problem analytically on the
Minimum Surface Home screen.
Area Analytically 1. Solve for x and y in
terms of v.
Enter:
solve(d(sa(x,y,v),1x)=0
and (d(sa(x,y,v),y)=0,
{x,y}
Hint: Press ¸ to obtain 2. Find the minimum
the exact result in symbolic surface area when the
form. Press ¥ ¸ to
obtain the approximate value of v equals 300.
result in decimal form.
Enter: 300! v
Enter: sa(v^(1/3),
v^(1/3),v)

Chapter 23: Applications 369

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 369 of 26
App. 6: Running a Tutorial Script Using the Text Editor

This application shows you how to use the Text Editor to run a
tutorial script. Detailed information about text operations can
be found in Chapter 18: Text Editor.

Running a Tutorial Perform the following steps to write a script using the Text Editor,
Script test each line, and observe the results in the history area on the
Home screen.
1. Open the Text Editor,
and create a new
variable named demo1.

Note: The command symbol 2. Type the following lines into the Text Editor.
“C” is accessed from the
„ 1:Command toolbar : Compute the maximum value of f on the closed interval [a,b]
menu. : assume that f is differentiable on [a,b]
C : define f(x)=x^3ì 2x^2+xì 7
C : 1! a:3.22! b
C : d(f(x),x)! df(x)
C : zeros(df(x),x)
C : f(ans(1))
C : f({a,b})
: The largest number from the previous two commands is the maximum
value of the function. The smallest number is the minimum value.

3. Press … and select 1:Script view to show the Text Editor and the
Home screen on a split-screen. Move the cursor to the first line in
the Text Editor.

370 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 370 of 26
Note: Press … and select 4. Press † repeatedly to execute each line in the script one at a
2:Clear split to go back to a time.
full-sized Text Editor screen.

Tip: Press 2 K twice to 5. To see the results of the script on a full-sized screen, go to the
display the Home screen. Home screen.

Chapter 23: Applications 371

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 371 of 26
App. 7: Decomposing a Rational Function

This application examines what happens when a rational


function is decomposed into a quotient and remainder.
Detailed information about the steps used in this example can
be found in Chapter 6: Basic Function Graphing and
Chapter 3: Symbolic Manipulation.

Decomposing a To examine the decomposition of the rational function


Rational Function f(x)=(xò ì 10xñ ì x+50)/(xì 2) on a graph:
Note: Actual entries are 1. On the Home screen,
displayed in reverse type in enter the rational
the example screens.
function as shown
below and store it in a
function f(x).
Enter:
(x^3ì 10x^2ì x+50)/
(xì 2)! f(x)
2. Use the proper
fraction function
(propFrac) to split the
function into a
quotient and
remainder.
Hint: Move the cursor into 3. Copy the last answer
the history area to highlight to the entry line.
the last answer. Press
¸ to copy it to the entry —or—
line. Enter:
16/(xì 2)+x^2ì 8ù xì 17

4. Edit the last answer in


the entry line. Store
the remainder to y1(x)
and the quotient to
y2(x) as shown.
Enter: 16/ (xì 2)! y1(x):
x^2ì 8ù xì 17! y2(x)
5. In the Y= Editor, select
the thick graphing
style for y2(x).

372 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 372 of 26
6. Add the original
function f(x) to y3(x)
and select the square
graphing style.

7. In the Window Editor,


set the window
variables to:
x= [ë 10,15,10]
y= [ë 100,100,10]

Note: Be sure the Graph 8. Draw the graph.


mode is set to Function.
Observe that the global behavior of the f(x) function is basically
represented by the quadratic quotient y2(x). The rational expression
is basically a quadratic function as x gets very large in both the
positive and negative directions.
The lower graph is y3(x)=f(x) graphed separately using the line style.

Chapter 23: Applications 373

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 373 of 26
App. 8: Studying Statistics: Filtering Data by Categories

This application provides a statistical study of the weights of


high school students using categories to filter the data.
Detailed information about using the commands in this
example can be found in Chapter 15: Data/Matrix Editor, and
Chapter 16: Statistics and Data Plots.

Filtering Data by Each student is placed into one of eight categories depending on the
Categories student’s sex and academic year (freshman, sophomore, junior, or
senior). The data (weight in pounds) and respective categories are
entered in the Data/Matrix Editor.
Table 1: Category vs. Description

Category (C2) Academic Year and Sex


1 Freshman boys
2 Freshman girls
3 Sophomore boys
4 Sophomore girls
5 Junior boys
6 Junior girls
7 Senior boys
8 Senior girls

Table 2: C1 (weight of each student in pounds) vs. C2 (category)

C1 C2 C1 C2 C1 C2 C1 C2
110 1 115 3 130 5 145 7
125 1 135 3 145 5 160 7
105 1 110 3 140 5 165 7
120 1 130 3 145 5 170 7
140 1 150 3 165 5 190 7
85 2 90 4 100 6 110 8
80 2 95 4 105 6 115 8
90 2 85 4 115 6 125 8
80 2 100 4 110 6 120 8
95 2 95 4 120 6 125 8

374 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 374 of 26
Perform the following steps to compare the weight of high school
students to their year in school.
1. Start the Data/Matrix
Editor, and create a
new Data variable
named students.

2. Enter the data and


categories from Table
2 into columns c1 and
c2, respectively.

Note: Set up several box 3. Open the „ Plot Setup


plots to compare different toolbar menu.
subsets of the entire data
set.

4. Define the plot and


filter parameters for
Plot 1 as shown in this
screen.

5. Copy Plot 1 to Plot 2.

6. Repeat step 5 and


copy Plot 1 to Plot 3,
Plot 4, and Plot 5.

Chapter 23: Applications 375

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 375 of 26
7. Press ƒ, and modify
the Include Categories
item for Plot 2 through
Plot 5 to the following:
Plot 2: {1,2}
(freshman boys, girls)
Plot 3: {7,8}
(senior boys, girls)
Plot 4: {1,3,5,7}
(all boys)
Plot 5: {2,4,6,8}
(all girls)

Note: Only Plot 1 through 8. In the Y= Editor,


Plot 5 should be selected. deselect any functions
that may be selected
from a previous
application.

9. Display the plots by


pressing „ and
selecting 9:Zoomdata.

10. Use the Trace tool to


compare the median
student weights for
different subsets.
all students
all freshmen
all seniors
all boys
all girls
median, all students

376 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 376 of 26
App. 9: CBLé Program for the TI-89

This application provides a program that can be used when the TI-89 is connected to a
Calculator-Based Laboratoryé (CBLé) unit. This program works with the “Newton’s Law
of Cooling” experiment, and is similar to the “Coffee To Go” experiment in the CBL
System Experiment Workbook. You can use your computer keyboard to type lengthy text
and then use TI-GRAPH LINK to send it to the TI-89. More TI-89 CBL programs are
available from the TI web site at: http://www.ti.com/calc/docs/89.htm

Program Instruction Description


:cooltemp() Program name
:Prgm
:Local i Declare local variable; exists only at run time.
:setMode("Graph","FUNCTION") Set up the TI-89 for function graphing.
:PlotsOff Turn off any previous plots.
:FnOff Turn off any previous functions.
:ClrDraw Clear any items previously drawn on graph screens.
:ClrGraph Clear any previous graphs.
:ClrIO Clear the TI-89 Program IO (input/output) screen.
:-10!xmin:99!xmax:10!xscl Set up the Window variables.
:-20!ymin:100!ymax:10!yscl
:{0}!data Create and/or clear a list named data.
:{0}!time Create and/or clear a list named time.
:Send{1,0} Send a command to clear the CBL unit.
:Send{1,2,1} Set up Chan. 2 of the CBL to AutoID to record temperature.
:Disp "Press ENTER to start" Prompt the user to press ¸.
:Disp "graphingTemperature."
:Pause
:PtText "TEMP(C)",2,99
Wait until the user is ready to start.
:PtText "T(S)",80,-5
Label the y axis of the graph.
Label the x axis of the graph.
:Send{3,1,-1,0}
Send the Trigger command to the CBL; collect data in
:
real-time.
:For i,1,99
Repeat next two instructions for 99 temperature readings.
:Get data[i]
Get a temperature from the CBL and store it in a list.
:PtOn i,data[i]
Plot the temperature data on a graph.
:EndFor
:seq(i,i,1,99,1)!time
Create a list to represent time or data sample number.
:NewPlot 1,1,time,data,,,,4
Plot time and data using NewPlot and the Trace tool.
:DispG
Display the graph.
:PtText "TEMP(C)",2,99
Re-label the axes.
:PtText "T(S)",80,-5
:EndPrgm
Stop the program.

You can also use the Calculator-Based Ranger™ (CBR™) to explore the mathematical and
scientific relationships between distance, velocity, acceleration, and time using data collected
from activities you perform. However, you will first need to obtain a separate CBR program for
the TI-89, which is available from the TI web site at: http://www.ti.com/calc/docs/89.htm

Chapter 23: Applications 377

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 377 of 26
App. 10: Studying the Flight of a Hit Baseball

This application uses the split screen settings to show a


parametric graph and a table at the same time to study the
flight of a hit baseball.

Setting Up a Perform the following steps to study the flight of a hit baseball that
Parametric Graph has an initial velocity of 95 feet per second and an initial angle of 32
and Table degrees.
1. Set the modes for
Page 1 as shown in
this screen.

2. Set the modes for


Page 2 as shown in
this screen.

Hint: Press 2 “ to obtain 3. In the Y= Editor on the


the degree symbol. left side, enter the
equation for the
distance of the ball at
time t for xt1(t).
xt1(+)=95 ¦ t ¦ cos(32¡)

4. In the Y= Editor, enter


the equation for the
height of the ball at
time t for yt1(t).
yt1(+)=M16+^2+95 ¦ t ¦
sin(32¡)

378 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 378 of 26
5. Set the Window
variables to:
t values= [0,4,.1]
x values= [0,300,50]
y values= [0,100,10]

Hint: Press 2 a. 6. Switch to the right


side and display the
graph.

Hint: Press ¥ &. 7. Display the TABLE


SETUP dialog box, and
change tblStart to 0 and
@tbl to 0.1.

Hint: Press ¥ '. 8. Display the table in the


left side and press
D to highlight t=2.

Note: As you move the 9. Switch to the right


trace cursor from tc=0.0 to side. Press …, and
tc=3.1, you will see the
position of the ball at time tc. trace the graph to
show the values of xc
and yc when tc=2.

Optional Exercise Assuming the same initial velocity of 95 feet per second, find the
angle that the ball should be hit to achieve the greatest distance.

Chapter 23: Applications 379

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 379 of 26
App. 11: Visualizing Complex Zeros of a Cubic Polynomial

This application describes graphing the complex zeros of a


cubic polynomial. Detailed information about the steps used in
this example can be found in Chapter 3: Symbolic
Manipulation and Chapter 10: 3D Graphing.

Visualizing Complex Perform the following steps to expand the cubic polynomial
Roots (xì 1)(xì i)(x+i), find the absolute value of the function, graph the
modulus surface, and use the Trace tool to explore the modulus
surface.
Note: Actual entries are 1. On the Home screen,
displayed in reverse type in use the expand()
the example screens.
function to expand the
cubic expression
(xì 1)(xì i) (x+i) and
see the first
polynomial.
Hint: Move the cursor into 2. Copy and paste the
the history area to highlight last answer to the
the last answer and press
¸, or press ¥ 6 to entry line and store it
copy and ¥ 7 to paste. in the function f(x).
Note: The absolute value of 3. Use the abs() function
a function forces any roots to find the absolute
to visually just touch rather
than cross the x axis. value of f(x+yi).
Likewise, the absolute value
(This calculation may
of a function of two variables
will force any roots to take about 2 minutes.)
visually just touch the xy
plane. 4. Copy and paste the
last answer to the
Note: The graph of z1(x,y)
will be the modulus surface. entry line and store it
in the function z1(x,y).
5. Set the unit to 3D
graph mode, turn on
the axes for graph
format, and set the
Window variables to:
eye= [20,70,0]
x= [ë 2,2,20]
y= [ë 2,2,20]
z= [ë 1,2]
ncontour= [5]

380 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 380 of 26
Note: Calculating and 6. In the Y=Editor, press
drawing the graph takes ¥ Í and set the
about three minutes.
Graph Format
variables to:
Axes= ON
Labels= ON
Style= HIDDEN SURFACE

7. Graph the modulus


surface.
The 3D graph is used
to visually display a
picture of the roots
where the surface
touches the xy plane.
8. Use the Trace tool to
explore the function
values at x=1 and y=0.

9. Use the Trace tool to


explore the function
values at x=0 and y=1.

10. Use the Trace tool to


explore the function
values at x=0 and
y=ë 1.

Summary Note that zc is zero for each of the function values in steps 7–9. Thus,
the complex zeros 1,ë i, i of the polynomial xò ì xñ +xì 1 can be
visualized with the three points where the graph of the modulus
surface touches the xy plane.

Chapter 23: Applications 381

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 381 of 26
App. 12: Solving a Standard Annuity Problem

This application can be used to find the interest rate, starting


principal, number of compounding periods, and future value of
an annuity.

Finding the Interest Perform the following steps to find the interest rate (i) of an annuity
Rate of an Annuity where the starting principal (p) is 1,000, number of compounding
periods (n) is 6, and the future value (s) is 2,000.
1. On the Home screen,
enter the equation to
solve for p.

2. Enter the equation to


solve for n.

Tip: Press Í to enter the 3 Enter the equation to


“with” (|) operator. solve for i using the
“with” operator.
Tip: Press ¥ ¸ to
solve(s=pù (1+i)^n,i) |
obtain a floating-point result.
s=2000 and p=1000 and
n=6
Result: The interest
rate is 12.246%.

Finding the Future Find the future value of an annuity using the values from the
Value of an Annuity previous example where the interest rate is 14%.
Enter the equation to
solve for s.
solve(s=pù (1+i)^n,s)| i=.14
and p=1000 and n=6
Result: The future value at
14% interest is 2,194.97.

382 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 382 of 26
App. 13: Computing the Time-Value-of-Money

This application creates a function that can be used to find the


cost of financing an item. Detailed information about the steps
used in this example can be found in Chapter 17: Programming.

Time-Value-of- In the Program Editor, define the following Time-Value-of-Money


Money Function (tvm) function where temp1= number of payments, temp2= annual
interest rate, temp3= present value, temp4= monthly payment,
temp5=future value, and temp6=begin- or end-of-payment period
(1=begining of month, 0=end of month).
Tip: You can use your :tvm(temp1,temp2,temp3,temp4,temp5,temp6)
computer keyboard to type :Func
lengthy text and then use :Local tempi,tempfunc,tempstr1
TI-GRAPH LINK to send it :ë temp3+(1+temp2/1200ù temp6)ù temp4ù ((1ì (1+temp2/1200)^
to the TI-89.
(ë temp1))/(temp2/1200))ì temp5ù (1+temp2/1200)^(ë temp1)
! tempfunc
:For tempi,1,5,1
:"temp"&exact(string(tempi))! tempstr1
:If when(#tempstr1=0,false,false,true) Then
:If tempi=2
:Return approx(nsolve(tempfunc=0,#tempstr1) | #tempstr1>0 and
#tempstr1<100)
:Return approx(nsolve(tempfunc=0,#tempstr1))
:EndIf
:EndFor
:Return "parameter error"
:EndFunc

Finding the Monthly Find the monthly payment on 10,000 if you make 48 payments at 10%
Payment interest per year.
On the Home screen,
enter the tvm values to
find pmt.
Result: The monthly
payment is 251.53.

Finding the Number Find the number of payments it will take to pay off the loan if you
of Payments could make a 300 payment each month.
On the Home screen,
enter the tvm values to
find n.
Result: The number of
payments is 38.8308.

Chapter 23: Applications 383

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 383 of 26
App. 14: Finding Rational, Real, and Complex Factors

This application shows how to find rational, real, or complex


factors of expressions. Detailed information about the steps
used in this example can be found in Chapter 3: Symbolic
Manipulation.

Finding Factors Enter the expressions shown below on the Home screen.
1. factor(x^3ì 5x) ¸
displays a rational
result.

2. factor(x^3+5x) ¸
displays a rational
result.

3. factor(x^3ì 5x,x) ¸
displays a real result.

4. cfactor(x^3+5x,x) ¸
displays a complex
result.

384 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 384 of 26
App. 15: Simulation of Sampling without Replacement

This application simulates drawing different colored balls from an


urn without replacing them. Detailed information about the steps
used in this example can be found in Chapter 17: Programming.

Sampling-without- In the Program Editor, define drawball() as a function that can be


Replacement called with two parameters. The first parameter is a list where each
Function element is the number of balls of a certain color. The second
parameter is the number of balls to select. This function returns a list
where each element is the number of balls of each color that were
selected.
:drawball(urnlist,drawnum) :If pick  urncum[j] Then
:Func :drawlist[j]+1! drawlist[j]
:Local templist,drawlist,colordim, :templist[j]ì 1! templist[j]
numballs,i,pick,urncum,j :Exit
:If drawnum>sum(urnlist) :EndIf
:Return “too few balls” :EndFor
:dim(urnlist)! colordim :EndFor
:urnlist! templist :Return drawlist
:newlist(colordim)! drawlist :EndFunc
:For i,1,drawnum,1
:sum(templist)! numballs
:rand(numballs)! pick
:For j,1,colordim,1
:cumSum(templist)! urncum
(continued in next column)

Sampling without Suppose an urn contains n1 balls of a color, n2 balls of a second


Replacement color, n3 balls of a third color, etc. Simulate drawing balls without
replacing them.
1. Enter a random seed
using the RandSeed
command.
2. Assuming the urn
contains 10 red balls
and 25 white balls,
simulate picking 5
balls at random from
the urn without
replacement. Enter
drawball({10,25},5).
Result: 2 red balls and
3 white balls.

Chapter 23: Applications 385

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 385 of 26
386 Chapter 23: Applications

APPS.DOC TI-89:Applications (US English) Joan Terrell Revised: 07/29/98 1:38 PM Printed: 07/29/98 1:39 PM Page 386 of 26
Appendix A:
TI.89 Functions and Instructions
Quick-Find Locator ............................................................................... 388

A Alphabetical Listing of Operations...................................................... 392

A
® Click on a character to jump to that page.
B C D E F G H
I L M N O P Q R
S T U V W X Z +

This appendix describes the syntax and the action of each TI-89 function and instruction.

Name of the function or instruction.

Key or menu for entering the name.


You can also type the name.
Example

Circle CATALOG
Circle x, y, r [, drawMode] In a ZoomSqr viewing window:
Draws a circle with its center at window ZoomSqr:Circle 1,2,3 ¸
coordinates (x, y) and with a radius of r.
x, y, and r must be real values.

If drawMode = 1, draws the circle (default).


If drawMode = 0, turns off the circle.
If drawMode = -1, inverts pixels along the
circle.
Note: Regraphing erases all drawn items.
Explanation of the function or
instruction.
Arguments are shown in italics .
Arguments in [ ] brackets are optional.
Do not type the brackets.

Syntax line shows the order and the type of


arguments that you supply. Be sure to separate
multiple arguments with a comma (, ).

Appendix A: TI.89 Functions and Instructions 387

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 08/03/98 3:09 PM Printed: 08/03/98 3:10 PM Page 387 of 130
Quick-Find Locator

This section lists the TI-89 functions and instructions in


functional groups along with the page numbers where they are
described in this appendix.

Algebra | ("with") 512 cFactor() 397 comDenom() 399


cSolve() 403 cZeros 407 expand() 422
factor() 424 getDenom() 429 getNum() 430
nSolve() 450 propFrac() 458 randPoly() 463
solve() 478 tCollect() 487 tExpand() 488
zeros() 494

Calculus ‰() (integrate) 506 Π() (product) 507 G() (sum) 507
arcLen() 394 avgRC() 395 d() 410
deSolve() 412 fMax() 426 fMin() 426
limit() 437 nDeriv() 446 nInt() 448
' (prime) 510 seq() 470 taylor() 487

Graphics AndPic 393 BldData 396 Circle 398


ClrDraw 398 ClrGraph 398 CyclePic 407
DrawFunc 417 DrawInv 417 DrawParm 417
DrawPol 418 DrawSlp 418 DrwCtour 419
FnOff 426 FnOn 427 Graph 432
Line 437 LineHorz 438 LineTan 438
LineVert 438 NewPic 447 PtChg 458
PtOff 458 PtOn 458 ptTest() 458
PtText 459 PxlChg 459 PxlCrcl 459
PxlHorz 459 PxlLine 459 PxlOff 460
PxlOn 460 pxlTest() 460 PxlText 460
PxlVert 460 RclGDB 464 RclPic 464
RplcPic 468 Shade 473 StoGDB 482
StoPic 482 Style 483 Trace 490
XorPic 494 ZoomBox 496 ZoomData 496
ZoomDec 497 ZoomFit 497 ZoomIn 497
ZoomInt 498 ZoomOut 498 ZoomPrev 498
ZoomRcl 498 ZoomSqr 499 ZoomStd 499
ZoomSto 499 ZoomTrig 500

Lists + (add) 500 ì (subtract) 500 ù (multiply) 501


à (divide) 502 ë (negate) 502 ^ (power) 508
augment() 395 crossP() 403 cumSum() 405
dim() 415 dotP() 417 exp4list() 422
left() 436 list4mat() 439 mat4list() 442
max() 443 mid() 444 min() 445
newList() 447 polyEval() 456 product() 457
right() 466 rotate() 466 shift() 474
SortA 481 SortD 481 sum() 483

388 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 388 of 128
Math + (add) 500 ì (subtract) 500 ù (multiply) 501
à (divide) 502 ë (negate) 502 % (percent) 502
! (factorial) 505 ‡() (sqr. root) 507 ^ (power) 508
¡ (degree) 509  (angle) 509 ¡, ', " 510
_ (underscore) 510 4 (convert) 511 10^() 511
0b, 0h 513 4Bin 395 4Cylind 407
4DD 410 4Dec 410 4DMS 416
4Hex 432 4Polar 456 4Rect 464
4Sphere 481 abs() 392 and 392
angle() 393 approx() 394 ceiling() 396
conj() 400 cos 401 cos() 401
cosh() 402 coshê() 402 E 419
e^() 419 exact() 421 floor() 425
fpart() 428 gcd() 428 imag() 433
int() 435 intDiv() 435 iPart() 435
isPrime() 435 lcm() 436 ln() 439
log() 441 max() 443 min() 445
mod() 445 nCr() 446 nPr() 450
P4Rx() 452 P4Ry() 452 r (radian) 509
R4Pq() 462 R4Pr() 463 real() 464
remain() 465 rotate() 466 round() 467
shift() 474 sign() 475 sin() 476
sinê() 476 sinh() 477 sinhê() 477
tan() 485 tanê() 486 tanh() 486
tanhê() 486 tmpCnv() 489 @tmpCnv() 489
xê 511

Matrices + (add) 500 ì (subtract) 500 ù (multiply) 501


à (divide) 502 ë (negate) 502 .+ (dot add) 504
.. (dot subt.) 505 . (dot mult.) 505 . / (dot divide) 505
.^ (dot power) 505 ^ (power) 508 augment() 395
colDim() 399 colNorm() 399 crossP() 403
cumSum() 405 det() 414 diag() 414
dim() 415 dotP() 417 eigVc() 420
eigVl() 420 Fill 425 identity() 433
list4mat() 439 LU 442 mat4list() 442
max() 443 mean() 443 median() 443
min() 445 mRow() 445 mRowAdd() 446
newMat() 447 norm() 449 product() 457
QR 461 randMat() 463 ref() 465
rowAdd() 468 rowDim() 468 rowNorm() 468
rowSwap() 468 rref() 468 simult() 475
stdDev() 481 subMat() 483 sum() 483
T 484 unitV() 491 variance() 492
xê 511

Appendix A: TI.89 Functions and Instructions 389

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 389 of 128
Programming = 503 /= (not equal) 503 < 503
<= 504 > 504 >= 504
# (indirection) 508 ! (store) 512 © (comment) 513
and 392 ans() 394 Archive 394
ClrErr 398 ClrGraph 398 ClrHome 399
ClrIO 399 ClrTable 399 CopyVar 400
CustmOff 406 CustmOn 406 Custom 406
Cycle 406 Define 411 DelFold 412
DelVar 412 Dialog 415 Disp 415
DispG 416 DispHome 416 DispTbl 416
DropDown 418 Else 420 ElseIf 420
EndCustm 421 EndDlog 421 EndFor 421
EndFunc 421 EndIf 421 EndLoop 421
EndPrgm 421 EndTBar 421 EndTry 421
EndWhile 421 entry() 421 Exec 422
Exit 422 For 427 format() 427
Func 428 Get 429 GetCalc 429
getConfg() 429 getFold() 429 getKey() 430
getMode() 430 getType() 430 getUnits() 431
Goto 431 If 433 Input 434
InputStr 434 Item 436 Lbl 436
left() 436 Local 440 Lock 440
Loop 442 MoveVar 445 NewFold 447
NewProb 448 not 449 or 451
Output 452 part() 453 PassErr 455
Pause 455 PopUp 456 Prgm 457
Prompt 457 Rename 466 Request 466
Return 466 right() 466 Send 469
SendCalc 469 SendChat 469 setFold() 470
setGraph() 470 setMode() 471 setTable() 472
setUnits() 472 Stop 482 Style 483
switch() 484 Table 485 Text 488
Then 488 Title 488 Toolbar 490
Try 490 Unarchiv 491 Unlock 491
when() 492 While 493 xor 493

Statistics ! (factorial) 505 BldData 396 CubicReg 405


cumSum() 405 ExpReg 424 LinReg 438
LnReg 440 Logistic 441 mean() 443
median() 443 MedMed 444 nCr() 446
NewData 447 NewPlot 448 nPr() 450
OneVar 451 PlotsOff 455 PlotsOn 455
PowerReg 457 QuadReg 461 QuartReg 462
rand() 463 randNorm() 463 RandSeed 463
ShowStat 475 SinReg 478 SortA 481
SortD 481 stdDev() 481 TwoVar 491
variance() 492

390 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 390 of 128
Strings & (append) 506 # (indirection) 508 char() 397
dim() 415 expr() 423 format() 427
inString() 434 left() 436 mid() 444
ord() 452 right() 466 rotate() 466
shift() 474 string() 483

Appendix A: TI.89 Functions and Instructions 391

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 391 of 128
Alphabetical Listing of Operations

Operations whose names are not alphabetic (such as +, !, and >) are listed at the end of
this appendix, starting on page 500. Unless otherwise specified, all examples in this
section were performed in the default reset mode, and all variables are assumed to be
undefined. Additionally, due to formatting restraints, approximate results are truncated at
three decimal places (3.14159265359 is shown as 3.141...).

abs() MATH/Number menu


abs(expression1) ⇒ expression p p
abs(list1) ⇒ list
abs({p/2,ë p/3}) ¸ {2 3}
abs(matrix1) ⇒ matrix abs(2ì3i) ¸ 13
Returns the absolute value of the argument. abs(z) ¸ |z|
If the argument is a complex number, returns
the number’s modulus. abs(x+yi) ¸ x2 +y 2
Note: All undefined variables are treated as
real variables.

and MATH/Test and MATH/Base menus


Boolean expression1 and expression2 ⇒ x‚3 and x‚4 ¸ x‚4
Boolean expression
Boolean list1 and list2 ⇒ Boolean list {x‚3,x0} and {x‚4,xë2} ¸
Boolean matrix1 and matrix2 ⇒ Boolean {x ‚ 4 x  ë2}
matrix

Returns true or false or a simplified form of


the original entry.
integer1 and integer2 ⇒ integer In Hex base mode:
Compares two real integers bit-by-bit using 0h7AC36 and 0h3D5F ¸ 0h2C16
an and operation. Internally, both integers are
Important: Zero, not the letter O.
converted to signed, 32-bit binary numbers.
When corresponding bits are compared, the
result is 1 if both bits are 1; otherwise, the In Bin base mode:
result is 0. The returned value represents the 0b100101 and 0b100 ¸ 0b100
bit results, and is displayed according to the
Base mode.
In Dec base mode:
You can enter the integers in any number
base. For a binary or hexadecimal entry, you 37 and 0b100 ¸ 4
must use the 0b or 0h prefix, respectively.
Without a prefix, integers are treated as
decimal (base 10). Note: A binary entry can have up to 32
digits (not counting the 0b prefix). A
If you enter a decimal integer that is too large hexadecimal entry can have up to 8 digits.
for a signed, 32-bit binary form, a symmetric
modulo operation is used to bring the value
into the appropriate range.

392 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 392 of 128
AndPic CATALOG
AndPic picVar[, row, column] In function graphing mode and Y= Editor:
Displays the Graph screen and logically y1(x) = cos(x) C
“ANDS” the picture stored in picVar and the 2 ˆ Style = 3:Square
current graph screen at pixel coordinates „ Zoom = 7:ZoomTrig
(row, column).
ƒ = 2:Save Copy As...
picVar must be a picture type. Type = Picture, Variable = PIC1
Default coordinates are (0,0), which is the
upper left corner of the screen.

y2(x) = sin(x)
2 ˆ Style = 3:Square
y1 = no checkmark (F4 to
deselect)
„ Zoom = 7:ZoomTrig

"
AndPic PIC1 ¸ Done

angle() MATH/Complex menu


angle(expression1) ⇒ expression In Degree angle mode:
Returns the angle of expression1, interpreting angle(0+2i) ¸ 90
expression1 as a complex number.
In Radian angle mode:
Note: All undefined variables are treated as p
real variables. angle(1+i) ¸ 4
angle(z) ¸
angle(x+ iy) ¸

angle(list1) ⇒ list In Radian angle mode:


angle(matrix1) ⇒ matrix
angle({1+2i,3+0i,0ì4i}) ¸
Returns a list or matrix of angles of the
elements in list1 or matrix1, interpreting each
element as a complex number that
represents a two-dimensional rectangular
coordinate point.

Appendix A: TI.89 Functions and Instructions 393

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 393 of 128
ans() 2 ± key
ans() ⇒ value To use ans() to generate the Fibonacci
ans(integer) ⇒ value sequence on the Home screen, press:
Returns a previous answer from the 1¸ 1
Home screen history area. 1¸ 1
2±«2±A02¸ 2
integer, if included, specifies which previous
answer to recall. Valid range for integer is ¸ 3
from 1 to 99 and cannot be an expression. ¸ 5
Default is 1, the most recent answer.

approx() MATH/Algebra menu


approx(expression) ⇒ value approx(p) ¸ 3.141...
Returns the evaluation of expression as a
decimal value, when possible, regardless of
the current Exact/Approx mode.
This is equivalent to entering expression and
pressing ¥ ¸ on the Home screen.
approx(list1) ⇒ list approx({sin(p),cos(p)}) ¸
approx(matrix1) ⇒ matrix {0. ë1.}
Returns a list or matrix where each element approx([‡(2),‡(3)]) ¸
has been evaluated to a decimal value, when
[1.414... 1.732...]
possible.

Archive CATALOG
Archive var1 [, var2] [, var3] … 10!arctest ¸ 10
Archive arctest ¸ Done
Moves the specified variables from RAM to
5ùarctest ¸ 50
the user data archive memory.
15!arctest ¸
You can access an archived variable the same
as you would a variable in RAM. However,
you cannot delete, rename, or store to an
archived variable because it is locked
automatically.
To unarchive variables, use Unarchiv. N
Unarchiv arctest ¸ Done
15!arctest ¸ 15

arcLen() MATH/Calculus menu


arcLen(expression1,var,start,end) ⇒ expression arcLen(cos(x),x,0,p) ¸ 3.820...
Returns the arc length of expression1 from arcLen(f(x),x,a,b) ¸
start to end with respect to variable var. b
Regardless of the graphing mode, arc length ⌠ ( d (f(x)))ñ+1 dx
is calculated as an integral assuming a ⌡ dx
function mode definition. a

arcLen(list1,var,start,end) ⇒ list arcLen({sin(x),cos(x)},x,0,p)


{3.820... 3.820...}
Returns a list of the arc lengths of each
element of list1 from start to end with
respect to var.

394 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 394 of 128
augment() MATH/Matrix menu
augment(list1, list2) ⇒ list augment({1,ë3,2},{5,4}) ¸
{1 ë3 2 5 4}
Returns a new list that is list2 appended to
the end of list1.
augment(matrix1, matrix2) ⇒ matrix 1 2
[1,2;3,4]!M1 ¸ [3 4]
augment(matrix1; matrix2) ⇒ matrix
5
Returns a new matrix that is matrix2 [5;6]!M2 ¸ [6]
appended to matrix1. When the “,” character 1 2 5
augment(M1,M2) ¸ [ 3 4 6]
is used, the matrices must have equal row
dimensions, and matrix2 is appended to [5,6]!M2 ¸ [5 6]
matrix1 as new columns. When the “;” 1 2
character is used, the matrices must have augment(M1;M2) ¸ 3 4
equal column dimensions, and matrix2 is 5 6
appended to matrix1 as new rows. Does not
alter matrix1 or matrix2.

avgRC() CATALOG
avgRC(expression1, var [, h]) ⇒ expression avgRC(f(x),x,h) ¸
f(x+h) - f(x)
Returns the forward-difference quotient h
(average rate of change).
avgRC(sin(x),x,h)|x=2 ¸
expression1 can be a user-defined function
sin(h+2) - sin(2)
name (see Func).
h
h is the step value. If h is omitted, it defaults
avgRC(x^2ìx+2,x) ¸
to 0.001.
2.ø(x - .4995)
Note that the similar function nDeriv() uses
the central-difference quotient. avgRC(x^2ìx+2,x,.1) ¸
2.ø(x - .45)

avgRC(x^2ìx+2,x,3) ¸ 2ø(x+1)

4Bin MATH/Base menu


integer1 4Bin ⇒ integer 256 4Bin ¸ 0b100000000

Converts integer1 to a binary number. Binary 0h1F 4Bin ¸ 0b11111


or hexadecimal numbers always have a 0b or
0h prefix, respectively.
Zero, not the letter O, followed by b or h.
0b binaryNumber
0h hexadecimalNumber
A binary number can have up to
32 digits. A hexadecimal number
can have up to 8.
Without a prefix, integer1 is treated as
decimal (base 10). The result is displayed in
binary, regardless of the Base mode.
If you enter a decimal integer that is too large
for a signed, 32-bit binary form, a symmetric
modulo operation is used to bring the value
into the appropriate range.

Appendix A: TI.89 Functions and Instructions 395

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 395 of 128
BldData CATALOG
BldData [dataVar] In function graphing mode and Radian
angle mode:
Creates data variable dataVar based on the
information used to plot the current graph. 8ùsin(x)!y1(x) ¸ Done
BldData is valid in all graphing modes. 2ùsin(x)!y2(x) ¸ Done
If dataVar is omitted, the data is stored in the ZoomStd ¸
system variable sysData.
Note: The first time you start the Data/Matrix
Editor after using BldData, dataVar or sysData
(depending on the argument you used with
BldData) is set as the current data variable.

The incremental values used for any "


independent variables (x in the example to BldData ¸ Done
the right) are calculated according to the
O6 ¸
Window variable values.
For information about the increments used to
evaluate a graph, refer to the chapter that
describes that graphing mode.

3D graphing mode has two independent Note: The following sample data is from a
variables. In the sample data to the right, 3D graph.
notice that x remains constant as y
increments through its range of values.
Then, x increments to its next value and y
again increments through its range. This
pattern continues until x has incremented
through its range.

ceiling() MATH/Number menu


ceiling(expression1) ⇒ integer ceiling(0.456) ¸ 1.

Returns the nearest integer that is ‚ the


argument.
The argument can be a real or a complex
number.
Note: See also floor().
ceiling(list1) ⇒ list ceiling({ë3.1,1,2.5}) ¸
ceiling(matrix1) ⇒ matrix {ë3. 1 3.}
Returns a list or matrix of the ceiling of each
ceiling([0,ë3.2i;1.3,4]) ¸
element.
0 ë3.øi
[2. ]
4

396 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 396 of 128
cFactor() MATH/Algebra/Complex menu
cFactor(expression1[, var]) ⇒ expression cFactor(a^3ùx^2+aùx^2+a^3+a)
cFactor(list1[,var]) ⇒ list ¸
cFactor(matrix1[,var]) ⇒ matrix aø(a + ëi)ø(a + i)ø(x + ëi)ø(x + i)
cFactor(expression1) returns expression1 cFactor(x^2+4/9) ¸
factored with respect to all of its variables (3øx + ë2øi)ø(3øx + 2ø i)
over a common denominator. 9
expression1 is factored as much as possible cFactor(x^2+3) ¸ xñ + 3
toward linear rational factors even if this
introduces new non-real numbers. This cFactor(x^2+a) ¸ xñ + a
alternative is appropriate if you want
factorization with respect to more than one
variable.
cFactor(expression1,var) returns expression1 cFactor(a^3ùx^2+aùx^2+a^3+a,x)
factored with respect to variable var. ¸
aø(añ + 1)ø(x + ë i)ø(x + i)
expression1 is factored as much as possible
toward factors that are linear in var, with cFactor(x^2+3,x) ¸
perhaps non-real constants, even if it (x + ‡3ø i)ø(x + ë‡3ø i)
introduces irrational constants or
subexpressions that are irrational in other cFactor(x^2+a,x) ¸
variables. (x + ‡aøëi)ø(x + ‡aø i)
The factors and their terms are sorted with
var as the main variable. Similar powers of
var are collected in each factor. Include var if
factorization is needed with respect to only
that variable and you are willing to accept
irrational expressions in any other variables
to increase factorization with respect to var.
There might be some incidental factoring
with respect to other variables.
For the AUTO setting of the Exact/Approx cFactor(x^5+4x^4+5x^3ì6xì3) ¸
mode, including var also permits x 5 + 4øx 4 + 5øx 3 ì6øxì3
approximation with floating-point
cFactor(ans(1),x) ¸
coefficients where irrational coefficients
cannot be explicitly expressed concisely in (x ì.965)ø(x +.612)ø(x + 2.13)ø
terms of the built-in functions. Even when (x + 1.11 ì 1.07øi)ø
there is only one variable, including var might (x + 1.11 + 1.07øi)
yield more complete factorization.
Note: See also factor().

char() MATH/String menu


char(integer) ⇒ character char(38) ¸ "&"

Returns a character string containing the char(65) ¸ "A"


character numbered integer from the TI-89
character set. See Appendix B for a complete
listing of character codes.
The valid range for integer is 0–255.

Appendix A: TI.89 Functions and Instructions 397

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 397 of 128
Circle CATALOG
Circle x, y, r [, drawMode] In a ZoomSqr viewing window:
Draws a circle with its center at window ZoomSqr:Circle 1,2,3 ¸
coordinates (x, y) and with a radius of r.
x, y, and r must be real values.

If drawMode = 1, draws the circle (default).


If drawMode = 0, turns off the circle.
If drawMode = -1, inverts pixels along the
circle.
Note: Regraphing erases all drawn items. See
also PxlCrcl.

ClrDraw CATALOG
ClrDraw

Clears the Graph screen and resets the Smart


Graph feature so that the next time the Graph
screen is displayed, the graph will be
redrawn.
While viewing the Graph screen, you can
clear all drawn items (such as lines and
points) by pressing † (ReGraph) or pressing
2 ˆ and selecting 1:ClrDraw.

ClrErr CATALOG
ClrErr Program listing:
Clears the error status. It sets errornum to :clearerr()
zero and clears the internal error context :Prgm
variables. :PlotsOff:FnOff:ZoomStd
:For i,0,238
The Else clause of the Try...EndTry in the :@xù i+xmin! xcord
program should use ClrErr or PassErr. If the : Try
error is to be processed or ignored, use : PtOn xcord,ln(xcord)
ClrErr. If what to do with the error is not : Else
known, use PassErr to send it to the next : If errornum=800 or
error handler. If there are no more pending errornum=260 Then
Try...EndTry error handlers, the error dialog : ClrErr © clear the error
box will be displayed as normal. : Else
: PassErr © pass on any other
Note: See also PassErr and Try. error
: EndIf
: EndTry
:EndFor
:EndPrgm

ClrGraph CATALOG
ClrGraph

Clears any functions or expressions that


were graphed with the Graph command or
were created with the Table command. (See
Graph or Table.)

Any previously selected Y= functions will be


graphed the next time that the graph is
displayed.

398 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 398 of 128
ClrHome CATALOG
ClrHome

Clears all items stored in the entry() and ans()


Home screen history area. Does not clear the
current entry line.
While viewing the Home screen, you can
clear the history area by pressing ƒ and
selecting 8:Clear Home.
For functions such as solve() that return
arbitrary constants or integers (@1, @2, etc.),
ClrHome resets the suffix to 1.

ClrIO CATALOG
ClrIO

Clears the Program I/O screen.

ClrTable CATALOG
ClrTable

Clears all table values. Applies only to the


ASK setting on the Table Setup dialog box.

While viewing the Table screen in Ask mode,


you can clear the values by pressing ƒ and
selecting 8:Clear Table.

colDim() MATH/Matrix/Dimensions menu


colDim(matrix) ⇒ expression colDim([0,1,2;3,4,5]) ¸ 3

Returns the number of columns contained in


matrix.

Note: See also rowDim().

colNorm() MATH/Matrix/Norms menu


colNorm(matrix) ⇒ expression [1,ë 2,3;4,5,ë 6]! mat ¸
1 ë2 3
Returns the maximum of the sums of the [4 5 ë 6]
absolute values of the elements in the
columns in matrix. colNorm(mat) ¸ 9
Note: Undefined matrix elements are not
allowed. See also rowNorm().

comDenom() MATH/Algebra menu


comDenom(expression1[,var]) ⇒ expression comDenom((y^2+y)/(x+1)^2+y^2+y)
comDenom(list1[,var]) ⇒ list ¸
comDenom(matrix1[,var]) ⇒ matrix

comDenom(expression1) returns a reduced ratio


of a fully expanded numerator over a fully
expanded denominator.

Appendix A: TI.89 Functions and Instructions 399

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 399 of 128
comDenom(expression1,var) returns a reduced comDenom((y^2+y)/(x+1)
ratio of numerator and denominator expanded ^2+y^2+y,x) ¸
with respect to var. The terms and their factors
are sorted with var as the main variable.
Similar powers of var are collected. There
might be some incidental factoring of the
collected coefficients. Compared to omitting
var, this often saves time, memory, and screen
space, while making the expression more comDenom((y^2+y)/(x+1)
comprehensible. It also makes subsequent ^2+y^2+y,y) ¸
operations on the result faster and less likely to
exhaust memory.

If var does not occur in expression1, comDenom(exprn,abc)!comden


comDenom(expression1,var) returns a reduced (exprn) ¸ Done
ratio of an unexpanded numerator over an comden((y^2+y)/(x+1)^2+y^2+y)
unexpanded denominator. Such results usually ¸
save even more time, memory, and screen
space. Such partially factored results also
make subsequent operations on the result
much faster and much less likely to exhaust
memory.

Even when there is no denominator, the comden(1234x^2ù (y^3ì y)+2468x


comden function is often a fast way to achieve ù (y^2ì 1)) ¸
partial factorization if factor() is too slow or if it 1234ø xø (xø y + 2)ø (yñ ì 1)
exhausts memory.
Hint: Enter this comden() function definition
and routinely try it as an alternative to
comDenom() and factor().

conj() MATH/Complex menu


conj(expression1) ⇒ expression conj(1+2i) ¸ 1 ì 2ø i
conj(list1) ⇒ list
conj(matrix1) ⇒ matrix conj([2,1ì 3i;ë i,ë 7]) ¸
Returns the complex conjugate of the
argument. 2 1+3ø i

i ë7 
Note: All undefined variables are treated as
real variables. conj(z) z
conj(x+iy) x + ë iø y

CopyVar CATALOG
CopyVar var1, var2 x+y! a ¸ x+y
10! x ¸ 10
Copies the contents of variable var1 to var2.
If var2 does not exist, CopyVar creates it. CopyVar a,b ¸ Done
a! c ¸ y + 10
Note: CopyVar is similar to the store DelVar x ¸ Done
instruction (! ) when you are copying an
b¸ x+y
expression, list, matrix, or character string
except that no simplification takes place c¸ y + 10
when using CopyVar. You must use CopyVar
with non-algebraic variable types such as Pic
and GDB variables.

400 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 400 of 128
cos() 2 X key
cos(expression1) ⇒ expression In Degree angle mode:
cos(list1) ⇒ list ‡2
cos((p/4)ô ) ¸ 2
cos(expression1) returns the cosine of the
argument as an expression. ‡2
cos(45) ¸ 2
cos(list1) returns a list of the cosines of all
elements in list1.
cos({0,60,90}) ¸ {1 1/2 0}
Note: The argument is interpreted as either a
degree or radian angle, according to the In Radian angle mode:
current angle mode setting. You can use ‡2
ó or ô to override the angle mode cos(p/4) ¸ 2
temporarily.
‡2
cos(45¡) ¸ 2

cos(squareMatrix1) ⇒ squareMatrix In Radian angle mode:


Returns the matrix cosine of squareMatrix1. cos([1,5,3;4,2,1;6,ë 2,1]) ¸
This is not the same as calculating the cosine
.212… .205… .121…
of each element.
.160… 
.248… .259… .037… 
When a scalar function f(A) operates on  ë.090… .218… 
squareMatrix1 (A), the result is calculated by
the algorithm:
1. Compute the eigenvalues (l i) and
eigenvectors (Vi) of A.
squareMatrix1 must be diagonalizable.
Also, it cannot have symbolic variables
that have not been assigned a value.
2. Form the matrices:

0l1 0 … 0

B = 0
l2 … 0 
 0 … 0  and X = [V1,V2, … ,Vn]
0 0 … ln 

3. Then A = X B Xê and f(A) = X f(B) Xê. For


example, cos(A) = X cos(B) Xê where:

cos(λ1) 0 K 0 
 
0 cos(λ 2) K 0 
cos (B) = 
 0 0 K 0 
 
 0 0 K cos(λn )

All computations are performed using


floating-point arithmetic.

cosê () ¥ R key
cosê (expression1) ⇒ expression In Degree angle mode:
cosê (list1) ⇒ list
cosê (1) ¸ 0
cosê (expression1) returns the angle whose
cosine is expression1 as an expression. In Radian angle mode:
cosê (list1) returns a list of the inverse cosê ({0,.2,.5}) ¸
cosines of each element of list1. p
{2 1.369... 1.047...}
Note: The result is returned as either a
degree or radian angle, according to the
current angle mode setting.

Appendix A: TI.89 Functions and Instructions 401

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 401 of 128
cosê(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular
complex format mode:
Returns the matrix inverse cosine of
squareMatrix1. This is not the same as cosê([1,5,3;4,2,1;6,ë 2,1]) ¸
calculating the inverse cosine of each
ë 1.490…+2.105…øi …
 
element. For information about the 1.734…+.064…øi
calculation method, refer to cos().
ë.725…+1.515…øi .623…+.778…øi … 
squareMatrix1 must be diagonalizable. The  ë 2.083…+2.632…øi 1.790…ì 1.271…øi …
result always contains floating-point
numbers.

cosh() MATH/Hyperbolic menu


cosh(expression1) ⇒ expression cosh(1.2) ¸ 1.810...
cosh(list1) ⇒ list
cosh({0,1.2}) ¸ {1 1.810...}
cosh (expression1) returns the hyperbolic
cosine of the argument as an expression.
cosh (list1) returns a list of the hyperbolic
cosines of each element of list1.
cosh(squareMatrix1) ⇒ squareMatrix In Radian angle mode:
Returns the matrix hyperbolic cosine of cosh([1,5,3;4,2,1;6,ë 2,1]) ¸
squareMatrix1. This is not the same as
421.255 253.909 216.905
calculating the hyperbolic cosine of each
327.635 255.301 202.958
element. For information about the
calculation method, refer to cos().
226.297 216.623 167.628

squareMatrix1 must be diagonalizable. The


result always contains floating-point
numbers.

coshê () MATH/Hyperbolic menu


coshê (expression1) ⇒ expression coshê (1) ¸ 0
coshê (list1) ⇒ list
coshê ({1,2.1,3}) ¸
coshê (expression1) returns the inverse
{0 1.372... coshê (3)}
hyperbolic cosine of the argument as an
expression.
coshê (list1) returns a list of the inverse
hyperbolic cosines of each element of list1.
coshê(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular
complex format mode:
Returns the matrix inverse hyperbolic cosine
of squareMatrix1. This is not the same as coshê([1,5,3;4,2,1;6,ë 2,1])
calculating the inverse hyperbolic cosine of ¸
each element. For information about the
ë.009…ì 1.490…øi
 
2.525…+1.734…øi …
calculation method, refer to cos().
.486…ì.725…øi 1.662…+.623…øi … 
squareMatrix1 must be diagonalizable. The
result always contains floating-point ë.322…ì 2.083…øi 1.267…+1.790…øi … 
numbers.

402 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 402 of 128
crossP() MATH/Matrix/Vector ops menu
crossP(list1, list2) ⇒ list crossP({a1,b1},{a2,b2}) ¸
{0 0 a1ø b2ì a2ø b1}
Returns the cross product of list1 and list2 as
a list. crossP({0.1,2.2,ë 5},{1,ë.5,0})
¸
list1 and list2 must have equal dimension, and {ë 2.5 ë 5. ë 2.25}
the dimension must be either 2 or 3.
crossP(vector1, vector2) ⇒ vector crossP([1,2,3],[4,5,6]) ¸
[ë 3 6 ë 3]
Returns a row or column vector (depending
on the arguments) that is the cross product crossP([1,2],[3,4]) ¸
of vector1 and vector2. [0 0 ë 2]
Both vector1 and vector2 must be row vectors,
or both must be column vectors. Both
vectors must have equal dimension, and the
dimension must be either 2 or 3.

cSolve() MATH/Algebra/Complex menu


cSolve(equation, var) ⇒ Boolean expression cSolve(x^3=ë 1,x) ¸
solve(x^3=ë 1,x) ¸
Returns candidate complex solutions of an
equation for var. The goal is to produce
candidates for all real and non-real solutions.
Even if equation is real, cSolve() allows non-
real results in real mode.
Although the TI-89 processes all undefined
variables as if they were real, cSolve() can
solve polynomial equations for complex
solutions.
cSolve() temporarily sets the domain to cSolve(x^(1/3)=ë 1,x) ¸ false
complex during the solution even if the
current domain is real. In the complex solve(x^(1/3)=ë 1,x) ¸ x = ë1
domain, fractional powers having odd
denominators use the principal rather than
the real branch. Consequently, solutions from
solve() to equations involving such fractional
powers are not necessarily a subset of those
from cSolve().
cSolve() starts with exact symbolic methods. Display Digits mode in Fix 2:
Except in EXACT mode, cSolve() also uses
iterative approximate complex polynomial exact(cSolve(x^5+4x^4+5x
factoring, if necessary. ^3ì6xì3=0,x)) ¸
cSolve(ans(1),x) ¸
Note: See also cZeros(), solve(), and zeros().
Note: If equation is non-polynomial with
functions such as abs(), angle(), conj(), real(),
or imag(), you should place an underscore _
( ¥  ) at the end of var. By default, a
variable is treated as a real value.
If you use var_ , the variable is treated as z is treated as real:
complex.
cSolve(conj(z)=1+ i,z) ¸
You should also use var_ for any other
z=1+ i
variables in equation that might have unreal
values. Otherwise, you may receive z_ is treated as complex:
unexpected results.
cSolve(conj(z_)=1+ i,z_) ¸
−i
z_=1−

Appendix A: TI.89 Functions and Instructions 403

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 403 of 128
cSolve(equation1 and equation2 [and … ],
{varOrGuess1, varOrGuess2 [, … ]})
⇒ Boolean expression

Returns candidate complex solutions to the


simultaneous algebraic equations, where
each varOrGuess specifies a variable that you
want to solve for.
Optionally, you can specify an initial guess
for a variable. Each varOrGuess must have the
form:
variable
– or –
variable = real or non-real number

For example, x is valid and so is x=3+i.


If all of the equations are polynomials and if Note: The following examples use an
you do NOT specify any initial guesses, underscore _ ( ¥  ) so that the variables
cSolve() uses the lexical Gröbner/Buchberger will be treated as complex.
elimination method to attempt to determine
all complex solutions.
Complex solutions can include both real and cSolve(u_ù v_ì u_=v_ and
non-real solutions, as in the example to the v_^2=ë u_,{u_,v_}) ¸
right.
3 3
u_=1/2 + øi and v_=1/2 ì øi
2 2
3 3
or u_=1/2 ì øi and v_=1/2 + øi
2 2
or u_=0 and v_=0
You can omit solution variables whose values cSolve(u_ù v_ì u_=v_ and
are not of interest, as in the example to the v_^2=ë u_,{u_}) ¸
right. 3
u_=1/2 + øi
2
3
or u_=1/2 ì øi
2
or u_=0
Simultaneous polynomial equations can have cSolve(u_ù v_ì u_=c_ù v_ and
extra variables that have no values, but v_^2=ë u_,{u_,v_}) ¸
represent given numeric values that could be
substituted later. ë( 1ì4øc_+1)2 1ì4øc_+1
u_= and v_=
4 2
or
ë( 1ì4øc_ì1)2 ë( 1ì4øc_ì1)
u_= and v_=
4 2
or u_=0 and v_=0
You can also include solution variables that cSolve(u_ù v_ì u_=v_ and
do not appear in the equations. These v_^2=ë u_,{u_,v_,w_}) ¸
solutions show how families of solutions
might contain arbitrary constants of the form 3 3
u_=1/2 + øi and v_=1/2 ì øi
@k, where k is an integer suffix from 1 2 2
through 255. The suffix resets to 1 when you and w_=@1
use ClrHome or ƒ 8:Clear Home. or
3 3
u_=1/2 ì øi and v_=1/2 + øi
For polynomial systems, computation time or 2 2
memory exhaustion may depend strongly on and w_=@1
the order in which you list solution variables. or u_=0 and v_=0 and w_=@1
If your initial choice exhausts memory or
your patience, try rearranging the variables in
the equations and/or varOrGuess list.

404 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 404 of 128
If you do not include any guesses and if any cSolve(u_+v_=e^(w_) and u_ì v_=
equation is non-polynomial in any variable i, {u_,v_}) ¸
but all equations are linear in all solution
variables, cSolve() uses Gaussian elimination e w_ e w_ì i
to attempt to determine all solutions. u_= +1/2øi and v_=
2 2
If a system is neither polynomial in all of its cSolve(e^(z_)=w_ and w_=z_^2,
variables nor linear in its solution variables, {w_,z_}) ¸
cSolve() determines at most one solution w_=.494… and z_=ë.703…
using an approximate iterative method. To do
so, the number of solution variables must
equal the number of equations, and all other
variables in the equations must simplify to
numbers.
A non-real guess is often necessary to cSolve(e^(z_)=w_ and w_=z_^2,
determine a non-real solution. For {w_,z_=1+ i}) ¸
convergence, a guess might have to be rather w_=.149… + 4.891…øi and
close to a solution.
z_=1.588… + 1.540…øi

CubicReg MATH/Statistics/Regressions menu


CubicReg list1, list2[, [list3] [, list4, list5]] In function graphing mode.
Calculates the cubic polynomial regression {0,1,2,3}! L1 ¸ {0 1 2 3}
and updates all the statistics variables. {0,2,3,4}! L2 ¸ {0 2 3 4}
All the lists must have equal dimensions CubicReg L1,L2 ¸ Done
except for list5. ShowStat ¸

list1 represents xlist.


list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Note: list1 through list4 must be a variable


¸
name or c1–c99 (columns in the last data
variable shown in the Data/Matrix Editor). regeq(x)"y1(x) ¸ Done
list5 does not have to be a variable name and NewPlot 1,1,L1,L2 ¸ Done
cannot be c1–c99. ¥%

cumSum() MATH/List menu


cumSum(list1) ⇒ list cumSum({1,2,3,4}) ¸
{1 3 6 10}
Returns a list of the cumulative sums of the
elements in list1, starting at element 1.
⇒ 1 2
cumSum(matrix1) matrix
[1,2;3,4;5,6]! m1 ¸ 3 4 
Returns a matrix of the cumulative sums of 5 6 
1 2
the elements in matrix1. Each element is the
cumSum(m1) ¸ 4 6 
cumulative sum of the column from top to
bottom. 9 12

Appendix A: TI.89 Functions and Instructions 405

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 405 of 128
CustmOff CATALOG
CustmOff See Custom program listing example.
Removes a custom toolbar.
CustmOn and CustmOff enable a program to
control a custom toolbar. Manually, you can
press 2 ¾ to toggle a custom toolbar
on and off. Also, a custom toolbar is removed
automatically when you change applications.

CustmOn CATALOG
CustmOn See Custom program listing example.
Activates a custom toolbar that has already
been set up in a Custom...EndCustm block.
CustmOn and CustmOff enable a program to
control a custom toolbar. Manually, you can
press 2 ¾ to toggle a custom toolbar
on and off.

Custom 2 ¾ key
Custom Program listing:
block
EndCustm :Test()
:Prgm
Sets up a toolbar that is activated when you :Custom
press 2 ¾. It is very similar to the :Title "Lists"
ToolBar instruction except that Title and Item :Item "List1"
:Item "Scores"
statements cannot have labels. :Item "L3"
block can be either a single statement or a :Title "Fractions"
:Item "f(x)"
series of statements separated with the “:” :Item "h(x)"
character. :Title "Graph"
:EndCustm
Note: 2 ¾ acts as a toggle. The first :EndPrgm
instance invokes the menu, and the second
instance removes the menu. The menu is
removed also when you change applications.

Cycle CATALOG
Cycle Program listing:
Transfers program control immediately to the :© Sum the integers from 1 to
next iteration of the current loop (For, While, 100 skipping 50.
or Loop). :0! temp
Cycle is not allowed outside the three looping :For i,1,100,1
structures (For, While, or Loop). :If i=50
:Cycle
:temp+i! temp
:EndFor
:Disp temp
Contents of temp after execution: 5000

406 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 406 of 128
CyclePic CATALOG
CyclePic picNameString, n [, [wait] , [cycles], 1. Save three pics named pic1, pic2, and
[direction]] pic3.

Displays all the PIC variables specified and at 2. Enter: CyclePic "pic",3,.5,4,ë1
the specified interval. The user has optional
control over the time between pictures, the 3. The three pictures (3) will be
number of times to cycle through the displayed automatically—one-half
pictures, and the direction to go, circular or second (.5) between pictures, for
forward and backwards. four cycles (4), and forward and
backwards (ë1).
direction is 1 for circular or ë 1 for forward
and backwards. Default = 1.

4Cylind MATH/Matrix/Vector ops menu


vector 4Cylind [2,2,3] 4Cylind ¸
p
Displays the row or column vector in [2ø ‡2 4 3]
cylindrical form [r∠q, z].
vector must have exactly three elements. It
can be either a row or a column.

cZeros() MATH/Algebra/Complex menu


cZeros(expression, var) ⇒ list Display Digits mode in Fix 3:
Returns a list of candidate real and non-real cZeros(x^5+4x^4+5x^3ì 6xì 3,x)
values of var that make expression=0. cZeros() ¸
does this by computing {ë 2.125 ë.612 .965
exp8list(cSolve(expression=0,var),var). ë 1.114 ì 1.073ø i
Otherwise, cZeros() is similar to zeros(). ë 1.114 + 1.073ø i}
Note: See also cSolve(), solve(), and zeros().
Note: If expression is non-polynomial with z is treated as real:
functions such as abs(), angle(), conj(), real(),
or imag(), you should place an underscore _ cZeros(conj(z)ì 1ì i,z) ¸
( ¥  ) at the end of var. By default, a {1+i}
variable is treated as a real value. If you use
var_ , the variable is treated as complex. z_ is treated as complex:
You should also use var_ for any other cZeros(conj(z_)ì 1ì i,z_) ¸
variables in expression that might have unreal {1ì i}
values. Otherwise, you may receive
unexpected results.

Appendix A: TI.89 Functions and Instructions 407

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 407 of 128
cZeros({expression1, expression2 [, … ] },
{varOrGuess1,varOrGuess2 [, … ] }) ⇒ matrix

Returns candidate positions where the


expressions are zero simultaneously. Each
varOrGuess specifies an unknown whose
value you seek.
Optionally, you can specify an initial guess
for a variable. Each varOrGuess must have the
form:
variable
– or –
variable = real or non-real number

For example, x is valid and so is x=3+i.


If all of the expressions are polynomials and Note: The following examples use an
you do NOT specify any initial guesses, underscore _ ( ¥  ) so that the variables
cZeros() uses the lexical Gröbner/Buchberger will be treated as complex.
elimination method to attempt to determine
all complex zeros.
Complex zeros can include both real and cZeros({u_ù v_ì u_ì v_,v_^2+u_},
non-real zeros, as in the example to the right. {u_,v_}) ¸
Each row of the resulting matrix represents
an alternate zero, with the components 1/2 ì
3
2
øi 1/2 +
3
2
øi
ordered the same as the varOrGuess list. To  3 3

extract a row, index the matrix by [row]. 1/2 +
2
øi 1/2 ì øi 
2
0 0 
Extract row 2:
ans(1)[2] ¸
3 3
[ 1/2 +
2
øi 1/2 ì
2
øi]

You can omit unknowns whose values are cZeros({u_ùv_ìu_ìv_,v_^2+u_},


not of interest, as in the example to the right. {u_})¸

1/2 ì
2
3
øi 
 3

1/2 +
2
øi
0 
Simultaneous polynomials can have extra cZeros({u_ùv_ìu_ì(c_ùv_),
variables that have no values, but represent v_^2+u_},{u_,v_}) ¸
given numeric values that could be
 
substituted later. ë( 1ì 4øc_+1)2 1ì 4øc_+1

4 2
ë ( 1ì 4øc_ì 1)2 ë( 1ì 4øc_ì 1) 
0 4
0
2

408 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 408 of 128
You can also include unknown variables that cZeros({u_ù v_ì u_ì v_,v_^2+u_},
do not appear in the expressions. These {u_,v_,w_}) ¸
zeros show how families of zeros might
contain arbitrary constants of the form @k,
1/2 ì
3
2
øi 1/2 +
3
2
øi @1 
where k is an integer suffix from 1 through
 3 3 
255. The suffix resets to 1 when you use
ClrHome or ƒ 8:Clear Home.
1/2 +
2
øi 1/2 ì øi
2
@1 
0 0 @1
For polynomial systems, computation time or
memory exhaustion may depend strongly on
the order in which you list unknowns. If your
initial choice exhausts memory or your
patience, try rearranging the variables in the
expressions and/or varOrGuess list.
If you do not include any guesses and if any cZeros({u_+v_ì e^(w_),u_ì v_ì i},
expression is non-polynomial in any variable {u_,v_}) ¸
but all expressions are linear in all w_
e +1/2øi e ì i 
w_
unknowns, cZeros() uses Gaussian
elimination to attempt to determine all zeros. 2 2 
If a system is neither polynomial in all of its cZeros({e^(z_)ì w_,w_ì z_^2},
variables nor linear in its unknowns, cZeros() {w_,z_}) ¸
determines at most one zero using an
approximate iterative method. To do so, the [ .494… ë.703…]
number of unknowns must equal the number
of expressions, and all other variables in the
expressions must simplify to numbers.
A non-real guess is often necessary to cZeros({e^(z_)ì w_,w_ì z_^2},
determine a non-real zero. For convergence, {w_,z_=1+ i}) ¸
a guess might have to be rather close to a
zero.
[ .149…+4.89…øi 1.588…+1.540…øi]

Appendix A: TI.89 Functions and Instructions 409

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 409 of 128
d() 2 = key or MATH/Calculus menu
d(expression1, var [,order]) ⇒ expression d(3x^3ì x+7,x) ¸ 9xñ ì 1
d(list1,var [,order]) ⇒ list
d(matrix1,var [,order]) ⇒ matrix d(3x^3ì x+7,x,2) ¸ 18ø x
Returns the first derivative of expression1 d(f(x)ù g(x),x) ¸
with respect to variable var. expression1 can
be a list or a matrix. d d
order, if included, must be an integer. If the dx(f(x))ø g(x) + dx(g(x))ø f(x)
order is less than zero, the result will be an
anti-derivative. d(sin(f(x)),x) ¸
d
d () does not follow the normal evaluation cos(f(x)) dx(f(x))
mechanism of fully simplifying its arguments
and then applying the function definition to d(x^3,x)|x=5 ¸ 75
these fully simplified arguments. Instead, d ()
performs the following steps: d(d(x^2ù y^3,x),y) ¸ 6ø yñ ø x
1. Simplify the second argument only to the
extent that it does not lead to a non- xò
d(x^2,x,ë 1) ¸ 3
variable.
2. Simplify the first argument only to the d({x^2,x^3,x^4},x) ¸
extent that it does recall any stored value {2ø x 3ø xñ 4ø xò }
for the variable determined by step 1.
3. Determine the symbolic derivative of the
result of step 2 with respect to the
variable from step 1.
4. If the variable from step 1 has a stored
value or a value specified by a “with” (|)
operator, substitute that value into the
result from step 3.

4DD MATH/Angle menu


number 4DD ⇒ value In Degree angle mode:
list1 4DD ⇒ list
matrix1 4DD ⇒ matrix
1.5ó 4DD ¸ 1.5ó

Returns the decimal equivalent of the 45ó 22'14.3" 4DD ¸ 45.370...ó


argument. The argument is a number, list, or
matrix that is interpreted by the Mode {45ó 22'14.3",60ó 0'0"} 4DD ¸
setting in radians or degrees. {45.370... 60}¡
Note: 4DD can also accept input in radians.
In Radian angle mode:
1.5 4DD ¸ 85.9ó

4Dec MATH/Base menu


integer1 4Dec ⇒ integer 0b10011 4Dec ¸ 19

Converts integer1 to a decimal (base 10) 0h1F 4Dec ¸ 31


number. A binary or hexadecimal entry must
always have a 0b or 0h prefix, respectively.

410 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 410 of 128
Zero, not the letter O, followed by b or h.
0b binaryNumber
0h hexadecimalNumber
A binary number can have up to
32 digits. A hexadecimal number
can have up to 8.
Without a prefix, integer1 is treated as
decimal. The result is displayed in decimal,
regardless of the Base mode.

Define CATALOG
Define funcName(arg1Name, arg2Name, ...) = Define g(x,y)=2xì 3y ¸ Done
expression g(1,2) ¸ ë4
Creates funcName as a user-defined function. 1! a:2! b:g(a,b) ¸ ë4
You then can use funcName(), just as you use
built-in functions. The function evaluates Define h(x)=when(x<2,2x-3,
expression using the supplied arguments and ë 2x+3) ¸ Done
returns the result.
funcName cannot be the name of a system h(ë 3) ¸ ë9
variable or built-in function. h(4) ¸ ë5
The argument names are placeholders; you
should not use those same names as Define eigenvl(a)=
arguments when you use the function. cZeros(det(identity(dim(a)
[1])-xù a),x) ¸ Done
Note: This form of Define is equivalent to
executing the expression: eigenvl([ë 1,2;4,3]) ¸
expression!funcName(arg1Name,arg2Name). 2ø 3 - 1 ë (2ø 3 + 1)
This command also can be used to define { 11 11 }
simple variables; for example, Define a=3.
Define funcName(arg1Name, arg2Name, ...) = Func Define g(x,y)=Func:If x>y Then
block :Return x:Else:Return y:EndIf
EndFunc :EndFunc ¸ Done

Is identical to the previous form of Define, g(3,ë 7) ¸ 3


except that in this form, the user-defined
function funcName() can execute a block of
multiple statements.
block can be either a single statement or a
series of statements separated with the “:”
character. block also can include expressions
and instructions (such as If, Then, Else, and
For). This allows the function funcName() to
use the Return instruction to return a specific
result.
Note: It is usually easier to author and edit
this form of Function in the program editor
rather than on the entry line.

Appendix A: TI.89 Functions and Instructions 411

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:46 PM Page 411 of 128
Define progName(arg1Name, arg2Name, ...) = Prgm Define listinpt()=prgm:Local
block n,i,str1,num:InputStr "Enter
EndPrgm name of list",str1:Input "No.
of elements",n:For
Creates progName as a program or i,1,n,1:Input "element
subprogram, but cannot return a result using "&string(i),num:
Return. Can execute a block of multiple num! #str1[i]:EndFor:EndPrgm
statements. ¸
block can be either a single statement or a Done
series of statements separated with the “:” listinpt() ¸ Enter name of list
character. block also can include expressions
and instructions (such as If, Then, Else, and
For) without restrictions.

Note: It is usually easier to author and edit a


program block in the Program Editor rather
than on the entry line.

DelFold CATALOG
DelFold folderName1[, folderName2] [, folderName3] ... NewFold games ¸ Done
(creates the folder games)
Deletes user-defined folders with the names
folderName1, folderName2, etc. An error DelFold games ¸ Done
message is displayed if the folders contain
(deletes the folder games)
any variables.
Note: You cannot delete the main folder.

DelVar CATALOG
DelVar var1[, var2] [, var3] ... 2! a ¸ 2
(a+2)^2 ¸ 16
Deletes the specified variables from memory. DelVar a ¸ Done
(a+2)^2 ¸ (a + 2)ñ

deSolve() MATH/Calculus menu


deSolve(1stOr2ndOrderOde, independentVar, Note: To type a prime symbol ( ' ), press
dependentVar) ⇒ a general solution 2 È.
Returns an equation that explicitly or deSolve(y''+2y'+y=x^2,x,y) ¸
implicitly specifies a general solution to the y=(@1øx+@2)øe ë x+xñ ì 4øx+6
1st- or 2nd-order ordinary differential
equation (ODE). In the ODE: right(ans(1))! temp ¸
• Use a prime symbol ( ' , press 2 È) to (@1øx+@2)øe ë x+xñ ì 4øx+6
denote the 1st derivative of the dependent
variable with respect to the independent d(temp,x,2)+2ùd(temp,x)+tempìx^2
variable. ¸ 0

• Use two prime symbols to denote the DelVar temp ¸ Done


corresponding second derivative.
The ' symbol is used for derivatives within
deSolve() only. In other cases, use d().

The general solution of a 1st-order equation


contains an arbitrary constant of the form
@k, where k is an integer suffix from 1
through 255. The suffix resets to 1 when you
use ClrHome or ƒ 8: Clear Home. The
solution of a 2nd-order equation contains two
such constants.

412 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 412 of 128
Apply solve() to an implicit solution if you deSolve(y'=(cos(y))^2ù x,x,y)
want to try to convert it to one or more ¸
equivalent explicit solutions. xñ
tan(y)= +@3
2
When comparing your results with textbook solve(ans(1),y) ¸
or manual solutions, be aware that different xñ +2ø@3
methods introduce arbitrary constants at
different points in the calculation, which may
y=tanê
( 2 )+@n1øp
produce different general solutions. Note: To type an @ symbol, press
¥ §.
ans(1)|@3=cì 1 and @n1=0 ¸
xñ +2ø(cì 1)
y=tanê
2( )
deSolve(1stOrderOde and initialCondition, sin(y)=(yù e^(x)+cos(y))y'! ode
independentVar, dependentVar) ¸
⇒ a particular solution sin(y)=(e xøy+cos(y))øy'
Returns a particular solution that satisfies deSolve(ode and
1stOrderOde and initialCondition. This is y(0)=0,x,y)! soln ¸
usually easier than determining a general
ë(2øsin(y)+yñ)
solution, substituting initial values, solving =ë(exì1)øeëxøsin(y)
for the arbitrary constant, and then 2
substituting that value into the general soln|x=0 and y=0 ¸ true
solution.
initialCondition is an equation of the form: d(right(eq)ì left(eq),x)/
(d(left(eq)ì right(eq),y))
dependentVar (initialIndependentValue) =
initialDependentValue
! impdif(eq,x,y) ¸
Done
The initialIndependentValue and
initialDependentValue can be variables such as ode|y'=impdif(soln,x,y) ¸
x0 and y0 that have no stored values. Implicit true
differentiation can help verify implicit DelVar ode,soln ¸ Done
solutions.
deSolve(2ndOrderOde and initialCondition1 and deSolve(y''=y^(ë 1/2) and
initialCondition2, independentVar, y(0)=0 and y'(0)=0,t,y) ¸
dependentVar) ⇒ a particular solution 2øy 3/4
=t
Returns a particular solution that satisfies 3
2ndOrderOde and has a specified value of the
solve(ans(1),y) ¸
dependent variable and its first derivative at
one point. 22/3ø(3øt)4/3
y= and t‚0
4
For initialCondition1, use the form:
dependentVar (initialIndependentValue) =
initialDependentValue

For initialCondition2, use the form:


dependentVar' (initialIndependentValue) =
initial1stDerivativeValue

Appendix A: TI.89 Functions and Instructions 413

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 413 of 128
deSolve(2ndOrderOde and boundaryCondition1 and deSolve(w''ì 2w'/x+(9+2/x^2)w=
boundaryCondition2, independentVar, xù e^(x) and w(p/6)=0 and
dependentVar) ⇒ a particular solution
w(p/3)=0,x,w) ¸
Returns a particular solution that satisfies p
2ndOrderOde and has specified values at two e 3øxøcos(3øx)
different points. w=
10
p
e øxøsin(3øx) x⋅⋅e x
6

ì +
10 10

det() MATH/Matrix menu


det(squareMatrix[, tol]) ⇒ expression det([a,b;c,d]) ¸ aø d ì bø c

Returns the determinant of squareMatrix. det([1,2;3,4]) ¸ ë2


Optionally, any matrix element is treated as det(identity(3) ì xù [1,ë 2,3;
zero if its absolute value is less than tol. This
tolerance is used only if the matrix has ë 2,4,1;ë 6,ë 2,7]) ¸
floating-point entries and does not contain ë (98ø xò ì 55ø xñ + 12ø x ì 1)
any symbolic variables that have not been
assigned a value. Otherwise, tol is ignored.
• If you use ¥ ¸ or set the mode to 1.E20 1
[1E20,1;0,1]!mat1 [0 1]
Exact/Approx=APPROXIMATE, computations
are done using floating-point arithmetic. det(mat1) ¸ 0
det(mat1,.1) ¸ 1.E20
• If tol is omitted or not used, the default
tolerance is calculated as:
5Eë 14 ù max(dim(squareMatrix))
ù rowNorm(squareMatrix)

diag() MATH/Matrix menu


diag(list) ⇒ matrix 2 0 0
diag(rowMatrix) ⇒ matrix diag({2,4,6}) ¸ 0 4 0
diag(columnMatrix) ⇒ matrix
0 0 6

Returns a matrix with the values in the


argument list or matrix in its main diagonal.
⇒ 4 6 8
diag(squareMatrix) rowMatrix
[4,6,8;1,2,3;5,7,9] ¸ 1 2 3
Returns a row matrix containing the 5 7 9
elements from the main diagonal of
squareMatrix.
diag(ans(1)) ¸ [4 2 9]

squareMatrix must be square.

414 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 414 of 128
Dialog CATALOG
Dialog Program listing:
block
EndDlog
:Dlogtest()
:Prgm
Generates a dialog box when the program is :Dialog
executed. :Title "This is a dialog box"
:Request "Your name",Str1
block can be either a single statement or a :Dropdown "Month you were born",
series of statements separated with the “:” seq(string(i),i,1,12),Var1
character. Valid block options in the :EndDlog
… I/O, 1:Dialog menu item in the Program :EndPrgm
Editor are 1:Text, 2:Request, 4:DropDown, and
7:Title.

The variables in a dialog box can be given


values that will be displayed as the default
(or initial) value. If ¸ is pressed, the
variables are updated from the dialog box
and variable ok is set to 1. If N is pressed,
its variables are not updated, and system
variable ok is set to zero.

dim() MATH/Matrix/Dimensions menu


dim(list) ⇒ integer dim({0,1,2}) ¸ 3

Returns the dimension of list.


dim(matrix) ⇒ list dim([1,ë 1,2;ë 2,3,5]) ¸ {2 3}

Returns the dimensions of matrix as a two-


element list {rows, columns}.
dim(string) ⇒ integer dim("Hello") ¸ 5

Returns the number of characters contained dim("Hello"&" there") ¸ 11


in character string string.

Disp CATALOG
Disp [exprOrString1] [, exprOrString2] ... Disp "Hello" ¸ Hello

Displays the current contents of the Program Disp cos(2.3) ¸ ë.666…


I/O screen. If one or more exprOrString is
specified, each expression or character string {1,2,3,4}! L1 ¸
is displayed on a separate line of the Program Disp L1 ¸ {1 2 3 4}
I/O screen.
Disp 180_min 4 _hr ¸ 3.ø_hr
An expression can include conversion
operations such as 4DD and 4Rect. You can
also use the 4 operator to perform unit and Note: To type an underscore ( _ ), press
number base conversions. ¥ . To type 4, press 2 Ž.
If Pretty Print = ON, expressions are displayed
in pretty print.
From the Program I/O screen, you can press
‡ to display the Home screen, or a program
can use DispHome.

Appendix A: TI.89 Functions and Instructions 415

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 415 of 128
DispG CATALOG
DispG In function graphing mode:
Displays the current contents of the Graph Program segment:
screen.
©
:5ù cos(x)! y1(x)
:ë 10! xmin
:10! xmax
:ë 5! ymin
:5! ymax
:DispG
©

DispHome CATALOG
DispHome Program segment:
Displays the current contents of the Home ©
screen. :Disp "The result is: ",xx
:Pause "Press Enter to quit"
:DispHome
:EndPrgm

DispTbl CATALOG
DispTbl 5ù cos(x)! y1(x) ¸
DispTbl ¸
Displays the current contents of the Table
screen.
Note: The cursor pad is active for scrolling.
Press N or ¸ to resume execution if in
a program.

4DMS MATH/Angle menu


expression 4DMS In Degree angle mode:
list 4DMS
matrix 4DMS
45.371 4DMS ¸ 45ó 22'15.6"

Interprets the argument as an angle and {45.371,60} 4DMS ¸


displays the equivalent DMS {45ó 22'15.6" 60ó }
(DDDDDD¡MM¢SS.ss£) number. See ¡, ', " on
page 510 for DMS (degree, minutes, seconds)
format.
Note: 4DMS will convert from radians to
degrees when used in radian mode. If the
input is followed by a degree symbol ( ¡ ), no
conversion will occur. You can use 4DMS only
at the end of an entry line.

416 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 416 of 128
dotP() MATH/Matrix/Vector ops menu
dotP(list1, list2) ⇒ expression dotP({a,b,c},{d,e,f}) ¸
aø d + bø e + cø f
Returns the “dot” product of two lists.
dotP({1,2},{5,6}) ¸ 17

dotP(vector1, vector2) ⇒ expression dotP([a,b,c],[d,e,f]) ¸


aø d + bø e + cø f
Returns the “dot” product of two vectors.
dotP([1,2,3],[4,5,6]) ¸ 32
Both must be row vectors, or both must be
column vectors.

DrawFunc CATALOG
DrawFunc expression In function graphing mode and ZoomStd
window:
Draws expression as a function, using x as the
independent variable. DrawFunc 1.25xù cos(x) ¸

Note: Regraphing erases all drawn items.

DrawInv CATALOG
DrawInv expression In function graphing mode and ZoomStd
window:
Draws the inverse of expression by plotting x
values on the y axis and y values on the x DrawInv 1.25xù cos(x) ¸
axis.
x is the independent variable.

Note: Regraphing erases all drawn items.

DrawParm CATALOG
DrawParm expression1, expression2 In function graphing mode and ZoomStd
[, tmin] [, tmax] [, tstep] window:
Draws the parametric equations expression1 DrawParm
and expression2, using t as the independent tù cos(t),tù sin(t),0,10,.1 ¸
variable.
Defaults for tmin, tmax, and tstep are the
current settings for the Window variables
tmin, tmax, and tstep. Specifying values does
not alter the window settings. If the current
graphing mode is not parametric, these three
arguments are required.
Note: Regraphing erases all drawn items.

Appendix A: TI.89 Functions and Instructions 417

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 417 of 128
DrawPol CATALOG
DrawPol expression[, qmin] [, qmax] [, qstep] In function graphing mode and ZoomStd
window:
Draws the polar graph of expression, using q
as the independent variable. DrawPol 5ù cos(3ù q),0,3.5,.1
¸
Defaults for qmin, qmax, and qstep are the
current settings for the Window variables
qmin, qmax, and qstep. Specifying values does
not alter the window settings. If the current
graphing mode is not polar, these three
arguments are required.
Note: Regraphing erases all drawn items.

DrawSlp CATALOG
DrawSlp x1, y1, slope In function graphing mode and ZoomStd
window:
Displays the graph and draws a line using the
formula yì y1=slopeø (xì x1). DrawSlp 2,3,ë 2 ¸

Note: Regraphing erases all drawn items.

DropDown CATALOG
DropDown titleString, {item1String, item2String, ...}, See Dialog program listing example.
varName

Displays a drop-down menu with the name


titleString and containing the items
1:item1String, 2:item2String, and so forth.
DropDown must be within a Dialog...EndDlog
block.
If varName already exists and has a value
within the range of items, the referenced item
is displayed as the default selection.
Otherwise, the menu’s first item is the default
selection.
When you select an item from the menu, the
corresponding number of the item is stored
in the variable varName. (If necessary,
DropDown creates varName.)

418 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 418 of 128
DrwCtour CATALOG
DrwCtour expression In 3D graphing mode:
DrwCtour list
(1/5)x^2+(1/5)y^2ì 10!z1(x,y)
Draws contours on the current 3D graph at ¸
the z values specified by expression or list. Done
The 3D graphing mode must already be set. L10!xmin:10!xmax ¸ 10
DrwCtour automatically sets the graph format L10!ymin:10!ymax ¸ 10
style to CONTOUR LEVELS. L10!zmin:10!zmax ¸ 10
0!ncontour ¸ 0
By default, the graph automatically contains DrwCtour {L9,L4.5,L3,0,4.5,9}
the number of equally spaced contours ¸
specified by the ncontour Window variable.
DrwCtour draws contours in addition to the
defaults.
To turn off the default contours, set ncontour
to zero, either by using the Window screen or
by storing 0 to the ncontour system variable.
• Use the cursor to change the viewing
angle. Press 0 (zero) to return to the
original view.
• Press Í to toggle between different
graph format styles.
• Press X, Y, or Z to look down the
corresponding axis.

í ^ key
mantissaEexponent 2.3í 4 ¸ 23000.

Enters a number in scientific notation. The 2.3í 9+4.1í 15 ¸ 4.1í 15


number is interpreted as mantissa ×
10 exponent.
Hint: If you want to enter a power of 10 3ù 10^4 ¸ 30000
without causing a decimal value result, use
10^integer.

e^() ¥ s key
e^(expression1) ⇒ expression e^(1) ¸ e
Returns e raised to the expression1 power. e^(1.) ¸ 2.718...
Note: Pressing ¥ s to display e^( is e^(3)^2 ¸ e9
different from pressing j [E ] .
You can enter a complex number in re i q polar
form. However, use this form in Radian angle
mode only; it causes a Domain error in Degree
angle mode.
e^(list1) ⇒ list e^({1,1.,0,.5}) ¸
{e 2.718... 1 1.648...}
Returns e raised to the power of each
element in list1.

Appendix A: TI.89 Functions and Instructions 419

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 419 of 128
e^(squareMatrix1) ⇒ squareMatrix e^([1,5,3;4,2,1;6,ë 2,1]) ¸

Returns the matrix exponential of 782.209 559.617 456.509


squareMatrix1. This is not the same as 680.546 488.795 396.521
calculating e raised to the power of each 524.929 371.222 307.879
element. For information about the
calculation method, refer to cos().
squareMatrix1 must be diagonalizable. The
result always contains floating-point
numbers.

eigVc() MATH/Matrix menu


eigVc(squareMatrix) ⇒ matrix In Rectangular complex format mode:
Returns a matrix containing the eigenvectors [L1,2,5;3,L6,9;2,L5,7]! m1 ¸
for a real or complex squareMatrix, where ë1 2 5
each column in the result corresponds to an  
eigenvalue. Note that an eigenvector is not  3 ë6 9

unique; it may be scaled by any constant 2 ë 5 7
factor. The eigenvectors are normalized,
meaning that if V = [x 1, x 2, … , x n], then: eigVc(m1) ¸
ë.800… .767… .767…
x1 2 + x2 2 + … + xn 2 = 1 .484… 
 .573…+.052…øi .573…ì.052…øi

squareMatrix is first balanced with similarity .352… .262…+.096…øi .262…ì.096…øi
transformations until the row and column
norms are as close to the same value as
possible. The squareMatrix is then reduced to
upper Hessenberg form and the eigenvectors
are computed via a Schur factorization.

eigVl() MATH/Matrix menu


eigVl(squareMatrix) ⇒ list In Rectangular complex format mode:
Returns a list of the eigenvalues of a real or [L1,2,5;3,L6,9;2,L5,7]! m1 ¸
complex squareMatrix. ë1 2 5
 
squareMatrix is first balanced with similarity 3 ë 6 9
transformations until the row and column 2 ë 5 7
norms are as close to the same value as
possible. The squareMatrix is then reduced to eigVl(m1) ¸
upper Hessenberg form and the eigenvalues {ë4.409… 2.204…+.763…øi
are computed from the upper Hessenberg
2.204…ì.763…øi}
matrix.

Else See If, page 433.

ElseIf CATALOG See also If, page 433.


If Boolean expression1 Then Program segment:
block1
ElseIf Boolean expression2 Then ©
block2 :If choice=1 Then
© : Goto option1
: ElseIf choice=2 Then
ElseIf Boolean expressionN Then
: Goto option2
blockN : ElseIf choice=3 Then
EndIf : Goto option3
© : ElseIf choice=4 Then
: Disp "Exiting Program"
ElseIf can be used as a program instruction : Return
for program branching. :EndIf
©

420 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 420 of 128
EndCustm See Custom, page 406.

EndDlog See Dialog, page 415.

EndFor See For, page 427.

EndFunc See Func, page 428.

EndIf See If, page 433.

EndLoop See Loop, page 442.

EndPrgm See Prgm, page 457.

EndTBar See ToolBar, page 490.

EndTry See Try, page 490.

EndWhile See While, page 493.

entry() CATALOG
entry() ⇒ expression On the Home screen:
entry(integer) ⇒ expression
1
1+1/x ¸ x+1
Returns a previous entry-line entry from the
Home screen history area.
1
1+1/entry(1) ¸ 2-x+1
integer, if included, specifies which entry
expression in the history area. The default is 1
1, the most recently evaluated entry. Valid ¸ 2ø (2ø x+1) + 3/2
range is from 1 to 99 and cannot be an
expression. 1
¸ 5/3-3ø (3ø x+2)
Note: If the last entry is still highlighted on
the Home screen, pressing ¸ is
equivalent to executing entry(1). 1
entry(4) ¸ x+1

exact() MATH/Number menu


exact(expression1 [, tol]) ⇒ expression exact(.25) ¸ 1/4
exact(list1 [, tol]) ⇒ list
exact(matrix1 [, tol]) ⇒ matrix 333333
exact(.333333) ¸ 1000000
Uses Exact mode arithmetic regardless of the
Exact/Approx mode setting to return, when
exact(.33333,.001) 1/3
possible, the rational-number equivalent of 7ø x
the argument. exact(3.5x+y) ¸ 2 +y
tol specifies the tolerance for the conversion;
exact({.2,.33,4.125}) ¸
the default is 0 (zero).
33
{1à5 100 33à8}

Appendix A: TI.89 Functions and Instructions 421

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 421 of 128
Exec CATALOG
Exec string [, expression1] [, expression2] ...

Executes a string consisting of a series of


Motorola 68000 op-codes. These codes act as a
form of an assembly-language program. If
needed, the optional expressions let you pass
one or more arguments to the program.
For more information, check the TI Web site:
http://www.ti.com/calc

Exit CATALOG
Exit Program listing:
Exits the current For, While, or Loop block. :0! temp
Exit is not allowed outside the three looping
:For i,1,100,1
: temp+i! temp
structures (For, While, or Loop).
: If temp>20
: Exit
:EndFor
:Disp temp
Contents of temp after execution: 21

exp4list() CATALOG
exp4list(expression,var) ⇒ list solve(x^2ì xì 2=0,x) ¸ x=2 or
x=ë 1
Examines expression for equations that are
separated by the word “or,” and returns a list
exp4list(solve(x^2ì xì 2=0,x),x)
containing the right-hand sides of the
¸
equations of the form var=expression. This
{ë 1 2}
gives you an easy way to extract some
solution values embedded in the results of
the solve(), cSolve(), fMin(), and fMax()
functions.
Note: exp4list() is not necessary with the
zeros and cZeros() functions because they
return a list of solution values directly.

expand() MATH/Algebra menu


expand(expression1 [, var]) ⇒ expression expand((x+y+1)^2) ¸
expand(list1 [,var]) ⇒ list xñ + 2ø xø y + 2ø x + yñ + 2ø y + 1
expand(matrix1 [,var]) ⇒ matrix
expand((x^2ì x+y^2ì y)/(x^2ù y^2
expand(expression1) returns expression1
ì x^2ù yì xù y^2+xù y)) ¸
expanded with respect to all its variables.
The expansion is polynomial expansion for
polynomials and partial fraction expansion
for rational expressions.
The goal of expand() is to transform
expression1 into a sum and/or difference of
simple terms. In contrast, the goal of factor()
is to transform expression1 into a product
and/or quotient of simple factors.

422 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 422 of 128
expand(expression1,var) returns expression expand((x+y+1)^2,y) ¸
expanded with respect to var. Similar powers yñ + 2ø yø (x + 1) + (x + 1)ñ
of var are collected. The terms and their
factors are sorted with var as the main expand((x+y+1)^2,x) ¸
variable. There might be some incidental xñ + 2ø xø (y + 1) + (y + 1)ñ
factoring or expansion of the collected
coefficients. Compared to omitting var, this expand((x^2ì x+y^2ì y)/(x^2ù y^2
often saves time, memory, and screen space, ì x^2ù yì xù y^2+xù y),y) ¸
while making the expression more
comprehensible.

expand(ans(1),x) ¸

Even when there is only one variable, using expand((x^3+x^2ì 2)/(x^2ì 2))
var might make the denominator ¸
factorization used for partial fraction 2ø x
expansion more complete. xñ ì 2 + x+1
Hint: For rational expressions, propFrac() is
a faster but less extreme alternative to expand(ans(1),x) ¸
expand(). 1 1
xì ‡2 + x+‡2 + x+1
Note: See also comDenom() for an expanded
numerator over an expanded denominator.
expand(expression1,[var]) also distributes ln(2xù y)+‡(2xù y) ¸
logarithms and fractional powers regardless ln(2ø xø y) + ‡(2ø xø y)
of var. For increased distribution of
logarithms and fractional powers, inequality expand(ans(1)) ¸
constraints might be necessary to guarantee ln(xø y) + ‡2ø ‡(xø y) + ln(2)
that some factors are nonnegative.
expand(ans(1))|y>=0 ¸
expand(expression1, [var]) also distributes
absolute values, sign(), and exponentials, ln(x) + ‡2ø ‡xø ‡y + ln(y) + ln(2)
regardless of var.
sign(xù y)+abs(xù y)+ e^(2x+y)
Note: See also tExpand() for trigonometric ¸
angle-sum and multiple-angle expansion. e 2ø x+y + sign(xø y) + |xø y|
expand(ans(1)) ¸
sign(x)øsign(y) + |x|ø|y|+ (ex)2øey

expr() MATH/String menu


expr(string) ⇒ expression expr("1+2+x^2+x") ¸ xñ + x + 3

Returns the character string contained in expr("expand((1+x)^2)") ¸


string as an expression and immediately xñ + 2ø x + 1
executes it.
"Define cube(x)=x^3"! funcstr
¸
"Define cube(x)=x^3"
expr(funcstr) ¸ Done

cube(2) ¸ 8

Appendix A: TI.89 Functions and Instructions 423

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 423 of 128
ExpReg MATH/Statistics/Regressions menu
ExpReg list1, list2 [, [list3] [, list4, list5]] In function graphing mode:
Calculates the exponential regression and {1,2,3,4,5,6,7,8}! L1 ¸
updates all the system statistics variables. {1 2 ...}
All the lists must have equal dimensions {1,2,2,2,3,4,5,7}! L2 ¸
except for list5. {1 2 ...}
ExpReg L1,L2 ¸ Done
list1 represents xlist.
ShowStat ¸
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Note: list1 through list4 must be a variable


name or c1–c99 (columns in the last data
variable shown in the Data/Matrix Editor).
list5 does not have to be a variable name and ¸
cannot be c1–c99. Regeq(x)"y1(x) ¸ Done
NewPlot 1,1,L1,L2 ¸ Done
¥%

factor() MATH/Algebra menu


factor(expression1[, var]) ⇒ expression factor(a^3ù x^2ì aù x^2ì a^3+a)
factor(list1[,var]) ⇒ list ¸
factor(matrix1[,var]) ⇒ matrix aø(a ì1)ø(a + 1)ø(x ì1)ø(x + 1)
factor(expression1) returns expression1 factor(x^2+1) ¸ xñ + 1
factored with respect to all of its variables
over a common denominator. factor(x^2ì 4) ¸ (x ì 2)ø (x + 2)

expression1 is factored as much as possible factor(x^2ì 3) ¸ xñ ì 3


toward linear rational factors without
introducing new non-real subexpressions. factor(x^2ì a) ¸ xñ ì a
This alternative is appropriate if you want
factorization with respect to more than one
variable.
factor(expression1,var) returns expression1 factor(a^3ù x^2ì aù x^2ì a^3+a,x)
factored with respect to variable var. ¸
aø (añ ì 1)ø (x ì 1)ø (x + 1)
expression1 is factored as much as possible
toward real factors that are linear in var, even factor(x^2ì 3,x) ¸
if it introduces irrational constants or (x + ‡3)ø (x ì ‡3)
subexpressions that are irrational in other
variables. factor(x^2ì a,x) ¸
The factors and their terms are sorted with (x + ‡a)ø (x ì ‡a)
var as the main variable. Similar powers of
var are collected in each factor. Include var if
factorization is needed with respect to only
that variable and you are willing to accept
irrational expressions in any other variables
to increase factorization with respect to var.
There might be some incidental factoring
with respect to other variables.

424 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 424 of 128
For the AUTO setting of the Exact/Approx factor(x^5+4x^4+5x^3ì 6xì 3) ¸
mode, including var permits approximation x 5 + 4ø x4 + 5ø x3ì 6ø x ì 3
with floating-point coefficients where
irrational coefficients cannot be explicitly factor(ans(1),x) ¸
expressed concisely in terms of the built-in (xì.964…)ø (x +.611…)ø
functions. Even when there is only one (x + 2.125…)ø (xñ + 2.227…ø
variable, including var might yield more
complete factorization. x + 2.392…)

Note: See also comDenom() for a fast way to


achieve partial factoring when factor() is not
fast enough or if it exhausts memory.
Note: See also cFactor() for factoring all the
way to complex coefficients in pursuit of
linear factors.
factor(rationalNumber) returns the rational factor(152417172689) ¸
number factored into primes. For composite 123457ø1234577
numbers, the computing time grows
exponentially with the number of digits in the isPrime(152417172689) ¸ false
second-largest factor. For example, factoring
a 30-digit integer could take more than a day,
and factoring a 100-digit number could take
more than a century.
Note: To stop (break) a computation, press
´.
If you merely want to determine if a number
is prime, use isPrime() instead. It is much
faster, particularly if rationalNumber is not
prime and if the second-largest factor has
more than five digits.

Fill MATH/Matrix menu


Fill expression, matrixVar ⇒ matrix 2 1
[1,2;3,4]! amatrx ¸ [3
4]
Replaces each element in variable matrixVar Fill 1.01,amatrx ¸ Done
with expression. 1.01 1.01
amatrx ¸ [1.01 1.01]
matrixVar must already exist.

Fill expression, listVar ⇒ list {1,2,3,4,5}! alist ¸


{1 2 3 4 5}
Replaces each element in variable listVar Fill 1.01,alist ¸ Done
with expression. alist ¸
listVar must already exist. {1.01 1.01 1.01 1.01 1.01}

floor() MATH/Number menu


floor(expression) ⇒ integer floor(ë 2.14) ¸ ë 3.

Returns the greatest integer that is  the


argument. This function is identical to int().
The argument can be a real or a complex
number.
floor(list1) ⇒ list floor({3/2,0,ë 5.3}) ¸
floor(matrix1) ⇒ matrix
{1 0 ë 6.}
Returns a list or matrix of the floor of each
element. floor([1.2,3.4;2.5,4.8]) ¸
1. 3.
Note: See also ceiling() and int(). [2. 4.]

Appendix A: TI.89 Functions and Instructions 425

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 425 of 128
fMax() MATH/Calculus menu
fMax(expression, var) ⇒ Boolean expression fMax(1ì (xì a)^2ì (xì b)^2,x) ¸

Returns a Boolean expression specifying a+b


candidate values of var that maximize x = 2
expression or locate its least upper bound.
fMax(.5x^3ì xì 2,x) ¸ x = ˆ

Use the “|” operator to restrict the solution fMax(.5x^3ì xì 2,x)|x1 ¸


interval and/or specify the sign of other
undefined variables. x = ë.816...
For the APPROX setting of the Exact/Approx fMax(aù x^2,x) ¸
mode, fMax() iteratively searches for one
x = ˆ or x = ë ˆ or x = 0 or a = 0
approximate local maximum. This is often
faster, particularly if you use the “|” operator fMax(aù x^2,x)|a<0 ¸ x=0
to constrain the search to a relatively small
interval that contains exactly one local
maximum.
Note: See also fMin() and max().

fMin() MATH/Calculus menu


fMin(expression, var) ⇒ Boolean expression fMin(1ì (xì a)^2ì (xì b)^2,x) ¸
x = ˆ or x = ë ˆ
Returns a Boolean expression specifying
candidate values of var that minimize fMin(.5x^3ì xì 2,x)|x‚1 ¸ x=1
expression or locate its greatest lower bound.

Use the “|” operator to restrict the solution fMin(aù x^2,x) ¸


interval and/or specify the sign of other x = ˆ or x = ë ˆ or x = 0 or a = 0
undefined variables.
fMin(aù x^2,x)|a>0 and x>1 ¸
For the APPROX setting of the Exact/Approx
mode, fMin() iteratively searches for one x = 1.
approximate local minimum. This is often
faster, particularly if you use the “|” operator fMin(aù x^2,x)|a>0 ¸ x=0
to constrain the search to a relatively small
interval that contains exactly one local
minimum.
Note: See also fMax() and min().

FnOff CATALOG
FnOff

Deselects all Y= functions for the current


graphing mode.
In split-screen, two-graph mode, FnOff only
applies to the active graph.
FnOff [1] [, 2] ... [,99] In function graphing mode:
FnOff 1,3 ¸ deselects y1(x) and
Deselects the specified Y= functions for the y3(x).
current graphing mode.
In parametric graphing mode:
FnOff 1,3 ¸ deselects xt1(t), yt1(t),
xt3(t), and yt3(t).

426 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 426 of 128
FnOn CATALOG
FnOn

Selects all Y= functions that are defined for


the current graphing mode.
In split-screen, two-graph mode, FnOn only
applies to the active graph.
FnOn [1] [, 2] ... [,99]

Selects the specified Y= functions for the


current graphing mode.
Note: In 3D graphing mode, only one
function at a time can be selected. FnOn 2
selects z2(x,y) and deselects any previously
selected function. In the other graph modes,
previously selected functions are not
affected.

For CATALOG
For var, low, high [, step] Program segment:
block
EndFor ©
:0! tempsum : 1! step
Executes the statements in block iteratively :For i,1,100,step
for each value of var, from low to high, in : tempsum+i! tempsum
increments of step. :EndFor
var must not be a system variable. :Disp tempsum
©
step can be positive or negative. The default
value is 1. Contents of tempsum after
execution: 5050
block can be either a single statement or a
series of statements separated with the “:” Contents of tempsum when step
character. is changed to 2: 2500

format() MATH/String menu


format(expression[, formatString]) ⇒ string format(1.234567,"f3") ¸
"1.235"
Returns expression as a character string based
on the format template. format(1.234567,"s2") ¸
"1.23í 0"
expression must simplify to a number.
formatString is a string and must be in the format(1.234567,"e3") ¸
form: “F[n]”, “S[n]”, “E[n]”, “G[n][c]”, where [ ] "1.235í 0"
indicate optional portions.
F[n]: Fixed format. n is the number of digits format(1.234567,"g3") ¸
to display after the decimal point. "1.235"

S[n]: Scientific format. n is the number of format(1234.567,"g3") ¸


digits to display after the decimal point. "1,234.567"

E[n]: Engineering format. n is the number of format(1.234567,"g3,r:") ¸


digits after the first significant digit. The "1:235"
exponent is adjusted to a multiple of three,
and the decimal point is moved to the right
by zero, one, or two digits.

Appendix A: TI.89 Functions and Instructions 427

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 427 of 128
G[n][c]: Same as fixed format but also
separates digits to the left of the radix into
groups of three. c specifies the group
separator character and defaults to a comma.
If c is a period, the radix will be shown as a
comma.
[Rc]: Any of the above specifiers may be
suffixed with the Rc radix flag, where c is a
single character that specifies what to
substitute for the radix point.

fpart() MATH/Number menu


fpart(expression1) ⇒ expression fpart(ë 1.234) ¸ ë.234
fpart(list1) ⇒ list
fpart(matrix1) ⇒ matrix fpart({1, ë 2.3, 7.003}) ¸
{0 ë.3 .003}
Returns the fractional part of the argument.
For a list or matrix, returns the fractional
parts of the elements.
The argument can be a real or a complex
number.

Func CATALOG
Func In function graphing mode, define a
block piecewise function:
EndFunc
Define g(x)=Func:If x<0 Then
Required as the first statement in a multi- :Return 3ù cos(x):Else:Return
statement function definition. 3ì x:EndIf:EndFunc ¸ Done
block can be either a single statement or a Graph g(x) ¸
series of statements separated with the “:”
character.
Note: when() also can be used to define and
graph piecewise-defined functions.

gcd() MATH/Number menu


gcd(number1, number2) ⇒ expression gcd(18,33) ¸ 3

Returns the greatest common divisor of the


two arguments. The gcd of two fractions is
the gcd of their numerators divided by the
lcm of their denominators.
In Auto or Approximate mode, the gcd of
fractional floating-point numbers is 1.0.
gcd(list1, list2) ⇒ list gcd({12,14,16},{9,7,5}) ¸
{3 7 1}
Returns the greatest common divisors of the
corresponding elements in list1 and list2.
gcd(matrix1, matrix2) ⇒ matrix gcd([2,4;6,8],[4,8;12,16]) ¸
2 4
Returns the greatest common divisors of the [6 8]
corresponding elements in matrix1 and
matrix2.

428 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 428 of 128
Get CATALOG
Get var Program segment:
Retrieves a CBL (Calculator-Based ©
Laboratory) value from the link port and :Send {3,1,ë 1,0}
stores it in variable var. :For i,1,99
: Get data[i]
: PtOn i,data[i]
:EndFor
©

GetCalc CATALOG
GetCalc var Program segment:
Retrieves a value from the link port and ©
stores it in variable var. This is for unit-to-unit :Disp "Press Enter when ready"
linking. :Pause
:GetCalc L1
Note: To get a variable to the link port from :Disp "List L1 received"
another unit, use 2 ° on the other ©
unit to select and send a variable, or do a
SendCalc on the other unit.

getConfg() CATALOG
getConfg() ⇒ ListPairs getConfg() ¸
{"Product Name" "Advanced
Returns a list of calculator attributes. The Mathematics Software"
attribute name is listed first, followed by its "Version" "1.00, 08/03/1998"
value. "Product ID" "03-0-0-13"
"Serial #" "01012 34567 ABCD"
"Cert. Rev. #" 0
"Screen Width" 160
"Screen Height" 100
"Window Width" 160
"Window Height" 67
"RAM Size" 262132
"Free RAM" 179830
"Archive Size" 393216
"Free Archive" 393204}
Note: Your screen may display different
attribute values. The Cert. Rev. # attribute
appears only if you have purchased and
installed additional software into the
calculator.

getDenom() MATH/Algebra/Extract menu


getDenom(expression1) ⇒ expression getDenom((x+2)/(yì 3)) ¸ y ì3

Transforms expression1 into one having a getDenom(2/7) ¸ 7


reduced common denominator, and then
returns its denominator. getDenom(1/x+(y^2+y)/y^2) ¸
xø y

getFold() CATALOG
getFold() ⇒ nameString getFold() ¸ "main"

Returns the name of the current folder as a getFold()! oldfoldr ¸ "main"


string.
oldfoldr ¸ "main"

Appendix A: TI.89 Functions and Instructions 429

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 429 of 128
getKey() CATALOG
getKey() ⇒ integer Program listing:
Returns the key code of the key pressed. :Disp
Returns 0 if no key is pressed. :Loop
: getKey()! key
The prefix keys (shift ¤, second function : while key=0
2, option ¥, and j) are not recognized : getKey()! key
by themselves; however, they modify the
: EndWhile
keycodes of the key that follows them. For : Disp key
example: ¥ Ù ƒ Ù ƒ 2 Ù. : If key = ord("a")
: Stop
For a listing of key codes, see Appendix B. :EndLoop

getMode() CATALOG
getMode(modeNameString) ⇒ string getMode("angle") ¸ "RADIAN"
getMode("ALL") ⇒ ListStringPairs
getMode("graph") ¸ "FUNCTION"
If the argument is a specific mode name,
returns a string containing the current setting getMode("all") ¸
for that mode. {"Graph" "FUNCTION"
"Display Digits" "FLOAT 6"
If the argument is "ALL", returns a list of "Angle" "RADIAN"
string pairs containing the settings of all the "Exponential Format" "NORMAL"
modes. If you want to restore the mode "Complex Format" "REAL"
settings later, you must store the "Vector Format" "RECTANGULAR"
getMode("ALL") result in a variable, and then "Pretty Print" "ON"
"Split Screen" "FULL"
use setMode() to restore the modes. "Split 1 App" "Home"
For a listing of mode names and possible "Split 2 App" "Graph"
"Number of Graphs" "1"
settings, see setMode(). "Graph 2" "FUNCTION"
Note: To set or return information about the "Exact/Approx" "AUTO"
"Base" "DEC"}
Unit System mode, use setUnits() or getUnits()
instead of setMode() or getMode(). Note: Your screen may display different
mode settings.

getNum() MATH/Algebra/Extract menu


getNum(expression1) ⇒ expression getNum((x+2)/(yì 3)) ¸ x+2

Transforms expression1 into one having a getNum(2/7) ¸ 2


reduced common denominator, and then
returns its numerator. getNum(1/x+1/y) ¸ x+y

getType() CATALOG
getType(var) ⇒ string {1,2,3}! temp ¸ {1 2 3}
getType(temp) ¸ "LIST"
Returns a string indicating the data type of
variable var. 2+3i! temp ¸ 2 + 3i
If var has not been defined, returns the string getType(temp) ¸ "EXPR"
"NONE".
DelVar temp ¸ Done
getType(temp) ¸ "NONE"

Data Type Variable Contents


"ASM" Assembly-language program
"DATA" Data type
"EXPR" Expression (includes complex/arbitrary/undefined, ˆ, ë ˆ, TRUE,
FALSE, pi, e)
"FUNC" Function

430 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 430 of 128
"GDB" Graph data base
"LIST" List
"MAT" Matrix
"NONE" Variable does not exist
"NUM" Real number
"OTHER" Miscellaneous data type for future use by software applications
"PIC" Picture
"PRGM" Program
"STR" String
"TEXT" Text type
"VAR" Name of another variable

getUnits() CATALOG
getUnits() ⇒ list getUnits() ¸
{"SI" "Area" "NONE"
Returns a list of strings that contain the "Capacitance" "_F"
current default units for all categories except "Charge" "_coul"
constants, temperature, amount of substance, … }
luminous intensity, and acceleration. list has
the form: Note: Your screen may display different
default units.
{"system" "cat1" "unit1" "cat2" "unit2" …}
The first string gives the system (SI, ENG/US,
or CUSTOM). Subsequent pairs of strings give
a category (such as Length) and its default
unit (such as _m for meters).
To set the default units, use setUnits().

Goto CATALOG
Goto labelName Program segment:
Transfers program control to the label ©
labelName. :0! temp
labelName must be defined in the same
:1! i
program using a Lbl instruction. :Lbl TOP
: temp+i! temp
: If i<10 Then
: i+1! i
: Goto TOP
: EndIf
:Disp temp
©

Appendix A: TI.89 Functions and Instructions 431

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 431 of 128
Graph CATALOG
Graph expression1[, expression2] [, var1] [, var2] In function graphing mode and ZoomStd
window:
The Smart Graph feature graphs the requested
expressions/ functions using the current Graph 1.25aù cos(a),a ¸
graphing mode.
Expressions entered using the Graph or Table
commands are assigned increasing function
numbers starting with 1. They can be
modified or individually deleted using the
edit functions available when the table is
displayed by pressing † Header. The In parametric graphing mode and ZoomStd
currently selected Y= functions are ignored. window:
If you omit an optional var argument, Graph Graph time,2cos(time)/time,time
uses the independent variable of the current ¸
graphing mode.
Note: Not all optional arguments are valid in
all modes because you can never have all
four arguments at the same time.

Some valid variations of this instruction are: In 3D graphing mode:


Function graphing Graph expr, x Graph (v^2 ì w^2)/4,v,w ¸

Parametric graphing Graph xExpr, yExpr, t

Polar graphing Graph expr, q

Sequence graphing Not allowed.


3D graphing Graph expr, x, y

Diff Equations graphing Not allowed.


Note: Use ClrGraph to clear these functions,
or go to the Y= Editor to re-enable the system
Y= functions.

4Hex MATH/Base menu


integer1 4Hex ⇒ integer 256 4Hex ¸ 0h100

Converts integer1 to a hexadecimal number. 0b111100001111 4Hex ¸ 0hF0F


Binary or hexadecimal numbers always have
a 0b or 0h prefix, respectively.
Zero, not the letter O, followed by b or h.
0b binaryNumber
0h hexadecimalNumber
A binary number can have up to
32 digits. A hexadecimal number
can have up to 8.
Without a prefix, integer1 is treated as
decimal (base 10). The result is displayed in
hexadecimal, regardless of the Base mode.
If you enter a decimal integer that is too large
for a signed, 32-bit binary form, a symmetric
modulo operation is used to bring the value
into the appropriate range.

432 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 432 of 128
identity() MATH/Matrix menu
identity(expression) ⇒ matrix identity(4) ¸
1 0 0 0
Returns the identity matrix with a dimension 0 1 0 0
of expression. 0 0 1 0
0 0 0 1
expression must evaluate to a positive integer.

If CATALOG
If Boolean expression If Boolean expression Then Program segment:
statement block
EndIf ©
:If x<0
If Boolean expression evaluates to true, :Disp "x is negative"
executes the single statement statement or the ©
block of statements block before continuing —or—
execution.
©
If Boolean expression evaluates to false, :If x<0 Then
continues execution without executing the : Disp "x is negative"
statement or block of statements. : abs(x)! x
:EndIf
block can be either a single statement or a ©
sequence of statements separated with the “:”
character.
If Boolean expression Then Program segment:
block1
Else ©
block2 :If x<0 Then
EndIf : Disp "x is negative"
: Else
If Boolean expression evaluates to true, : Disp "x is positive or zero"
executes block1 and then skips block2. :EndIf
©
If Boolean expression evaluates to false, skips
block1 but executes block2.

block1 and block2 can be a single statement.

If Boolean expression1 Then Program segment:


block1
ElseIf Boolean expression2 Then ©
block2 :If choice=1 Then
© : Goto option1
: ElseIf choice=2 Then
ElseIf Boolean expressionN Then
: Goto option2
blockN : ElseIf choice=3 Then
EndIf : Goto option3
: ElseIf choice=4 Then
Allows for program branching. If Boolean : Disp "Exiting Program"
expression1 evaluates to true, executes block1. : Return
If Boolean expression1 evaluates to false, :EndIf
evaluates Boolean expression2, etc. ©

imag() MATH/Complex menu


imag(expression1) ⇒ expression imag(1+2i) ¸ 2
imag(expression1) returns the imaginary part imag(z) ¸ 0
of the argument.
imag(x+iy) ¸ y
Note: All undefined variables are treated as
real variables. See also real().

Appendix A: TI.89 Functions and Instructions 433

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 433 of 128
imag(list1) ⇒ list imag({ë 3,4ë i,i}) ¸ {0 ë 1 1}
Returns a list of the imaginary parts of the
elements.
imag(matrix1) ⇒ matrix 0 0
imag([a,b;ic,id]) ¸ [c d]
Returns a matrix of the imaginary parts of the
elements.

Input CATALOG
Input Program segment:
Pauses the program, displays the current ©
Graph screen, and lets you update variables :© Get 10 points from the Graph
xc and yc (also rc and qc for polar coordinate Screen
mode) by positioning the graph cursor. :For i,1,10
: Input
When you press ¸, the program resumes. : xc! XLIST[i]
: yc! YLIST[i]
:EndFor
©

Input [promptString,] var Program segment:


Input [promptString], var pauses the program, ©
displays promptString on the Program I/O :For i,1,9,1
screen, waits for you to enter an expression, : "Enter x" & string(i)! str1
and stores the expression in variable var. : Input str1,#(right(str1,2))
:EndFor
If you omit promptString, “?” is displayed as a ©
prompt.

InputStr CATALOG
InputStr [promptString,] var Program segment:
Pauses the program, displays promptString on ©
the Program I/O screen, waits for you to :InputStr "Enter Your Name",str1
enter a response, and stores your response as ©
a string in variable var.
If you omit promptString, “?” is displayed as a
prompt.
Note: The difference between Input and
InputStr is that InputStr always stores the
result as a string so that “ ” are not required.

inString() MATH/String menu


inString(srcString, subString[, start]) ⇒ integer inString("Hello there","the")
¸ 7
Returns the character position in string
srcString at which the first occurrence of "ABCEFG"! s1:If inString(s1,
string subString begins. "D")=0:Disp "D not found." ¸
D not found.
start, if included, specifies the character
position within srcString where the search
begins. Default = 1 (the first character of
srcString).

If srcString does not contain subString or start


is > the length of srcString, returns zero.

434 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 434 of 128
int() CATALOG
int(expression) ⇒ integer int(ë 2.5) ¸ ë 3.
int(list1) ⇒ list
int(matrix1) ⇒ matrix int([-1.234,0,0.37]) ¸
[-2. 0 0.]
Returns the greatest integer that is less than
or equal to the argument. This function is
identical to floor().
The argument can be a real or a complex
number.
For a list or matrix, returns the greatest
integer of each of the elements.

intDiv() CATALOG
intDiv(number1, number2) ⇒ integer intDiv(ë 7,2) ¸ ë3
intDiv(list1, list2) ⇒ list
intDiv(matrix1, matrix2) ⇒ matrix intDiv(4,5) ¸ 0

Returns the signed integer part of argument 1 intDiv({12,ë 14,ë 16},{5,4,ë 3})
divided by argument 2. ¸
{2 ë 3 5}
For lists and matrices returns the signed
integer part of argument 1 divided by
argument 2 for each element pair.

integrate See ‰(), page 506.

iPart() MATH/Number menu


iPart(number) ⇒ integer iPart(ë 1.234) ¸ ë 1.
iPart(list1) ⇒ list
iPart(matrix1) ⇒ matrix iPart({3/2,ë 2.3,7.003}) ¸
{1 ë 2. 7.}
Returns the integer part of the argument.
For lists and matrices, returns the integer
part of each element.
The argument can be a real or a complex
number.

isPrime() MATH/Test menu


IsPrime(number) ⇒ Boolean constant expression IsPrime(5) ¸ true
IsPrime(6) ¸ false
Returns true or false to indicate if number is a
whole number ‚ 2 that is evenly divisible only
by itself and 1. Function to find the next prime after a
specified number:
If number exceeds about 306 digits and has no
factors  1021, isPrime(number) displays an Define nextPrim(n)=Func:Loop:
error message. n+1! n:if isPrime(n):return n:
If you merely want to determine if number is EndLoop:EndFunc ¸ Done
prime, use isPrime() instead of factor(). It is nextPrim(7) ¸ 11
much faster, particularly if number is not
prime and has a second-largest factor that
exceeds about five digits.

Appendix A: TI.89 Functions and Instructions 435

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 435 of 128
Item CATALOG
Item itemNameString See Custom example.
Item itemNameString, label

Valid only within a Custom...EndCustm or


ToolBar...EndTBar block. Sets up a drop-down
menu element to let you paste text to the
cursor position (Custom) or branch to a label
(ToolBar).
Note: Branching to a label is not allowed
within a Custom block.

Lbl CATALOG
Lbl labelName Program segment:
Defines a label with the name labelName in ©
the program. :Lbl lbl1
:InputStr "Enter password",
You can use a Goto labelName instruction to str1
transfer program control to the instruction :If str1ƒpassword
immediately following the label. : Goto lbl1
:Disp "Welcome to ..."
labelName must meet the same naming ©
requirements as a variable name.

lcm() MATH/Number menu


lcm(number1, number2) ⇒ expression lcm(6,9) ¸ 18
lcm(list1, list2) ⇒ list
lcm(matrix1, matrix2) ⇒ matrix lcm({1/3,ë 14,16},{2/15,7,5})
¸
Returns the least common multiple of the {2/3 14 80}
two arguments. The lcm of two fractions is
the lcm of their numerators divided by the
gcd of their denominators. The lcm of
fractional floating-point numbers is their
product.
For two lists or matrices, returns the least
common multiples of the corresponding
elements.

left() MATH/String menu


left(sourceString[, num]) ⇒ string left("Hello",2) ¸ "He"

Returns the leftmost num characters


contained in character string sourceString.
If you omit num, returns all of sourceString.
left(list1[, num]) ⇒ list left({1,3,ë 2,4},3) ¸
{1 3 ë 2}
Returns the leftmost num elements contained
in list1.
If you omit num, returns all of list1.
left(comparison) ⇒ expression left(x<3) ¸ x

Returns the left-hand side of an equation or


inequality.

436 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:00 PM Page 436 of 128
limit() MATH/Calculus menu
limit(expression1, var, point[, direction]) ⇒ limit(2x+3,x,5) ¸ 13
expression
limit(list1, var, point[, direction]) ⇒ list limit(1/x,x,0,1) ¸ ˆ
limit(matrix1, var, point[, direction]) ⇒ matrix
limit(sin(x)/x,x,0) ¸ 1
Returns the limit requested.
limit((sin(x+h)-sin(x))/h,h,0)
direction: negative=from left, positive=from ¸
right, otherwise=both. (If omitted, direction cos(x)
defaults to both.)
limit((1+1/n)^n,n,ˆ) ¸ e

Limits at positive ˆ and at negative ˆ are


always converted to one-sided limits from the
finite side.
Depending on the circumstances, limit()
returns itself or undef when it cannot
determine a unique limit. This does not
necessarily mean that a unique limit does not
exist. undef means that the result is either an
unknown number with finite or infinite
magnitude, or it is the entire set of such
numbers.
limit() uses methods such as L’Hopital’s rule, limit(a^x,x,ˆ) ¸ undef
so there are unique limits that it cannot
determine. If expression1 contains undefined limit(a^x,x,ˆ)|a>1 ¸ ˆ
variables other than var, you might have to
constrain them to obtain a more concise limit(a^x,x,ˆ)|a>0 and a<1
result. ¸ 0

Limits can be very sensitive to rounding


error. When possible, avoid the APPROX
setting of the Exact/Approx mode and
approximate numbers when computing
limits. Otherwise, limits that should be zero
or have infinite magnitude probably will not,
and limits that should have finite non-zero
magnitude might not.

Line CATALOG
Line xStart, yStart, xEnd, yEnd[, drawMode] In the ZoomStd window, draw a line and
then erase it.
Displays the Graph screen and draws, erases,
or inverts a line segment between the Line 0,0,6,9 ¸
window coordinates (xStart, yStart) and
(xEnd, yEnd), including both endpoints.
If drawMode = 1, draws the line (default).
If drawMode = 0, turns off the line.
If drawMode = ë 1, turns a line that is on to off
or off to on (inverts pixels along the line).
"
Note: Regraphing erases all drawn items. See Line 0,0,6,9,0 ¸
also PxlLine.

Appendix A: TI.89 Functions and Instructions 437

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 437 of 128
LineHorz CATALOG
LineHorz y [, drawMode] In a ZoomStd window:
Displays the Graph screen and draws, erases, LineHorz 2.5 ¸
or inverts a horizontal line at window
position y.
If drawMode = 1, draws the line (default).
If drawMode = 0, turns off the line.
If drawMode = ë 1, turns a line that is on to off
or off to on (inverts pixels along the line).
Note: Regraphing erases all drawn items. See
also PxlHorz.

LineTan CATALOG
LineTan expression1, expression2 In function graphing mode and a ZoomTrig
window:
Displays the Graph screen and draws a line
tangent to expression1 at the point specified. Graph cos(x)
"
expression1 is an expression or the name of a LineTan cos(x),p/4 ¸
function, where x is assumed to be the
independent variable, and expression2 is the x
value of the point that is tangent.
Note: In the example shown, expression1 is
graphed separately. LineTan does not graph
expression1.

LineVert CATALOG
LineVert x [, drawMode] In a ZoomStd window:
Displays the Graph screen and draws, erases, LineVert ë 2.5 ¸
or inverts a vertical line at window position x.
If drawMode = 1, draws the line (default).
If drawMode = 0, turns off the line.
If drawMode = ë 1, turns a line that is on to off
or off to on (inverts pixels along the line).
Note: Regraphing erases all drawn items. See
also PxlVert.

LinReg MATH/Statistics/Regressions menu


LinReg list1, list2[, [list3] [, list4, list5]] In function graphing mode:
Calculates the linear regression and updates {0,1,2,3,4,5,6}! L1 ¸
all the system statistics variables. {0 1 2 ...}
All the lists must have equal dimensions {0,2,3,4,3,4,6}! L2 ¸
except for list5. {0 2 3 ...}
LinReg L1,L2 ¸ Done
list1 represents xlist.
ShowStat ¸
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

438 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 438 of 128
¸
Note: list1 through list4 must be a variable
name or c1–c99 (columns in the last data Regeq(x)"y1(x) ¸ Done
variable shown in the Data/Matrix Editor). NewPlot 1,1,L1,L2 ¸ Done
list5 does not have to be a variable name and
¥%
cannot be c1–c99.

list4mat() MATH/List menu


list4mat(list [, elementsPerRow]) ⇒ matrix list4mat({1,2,3}) ¸ [1 2 3]

Returns a matrix filled row-by-row with the list4mat({1,2,3,4,5},2) ¸


elements from list. 1 2
3 4
elementsPerRow, if included, specifies the 5 0
number of elements per row. Default is the
number of elements in list (one row).
If list does not fill the resulting matrix, zeros
are added.

ln() 2 x key
ln(expression1) ⇒ expression ln(2.0) ¸ .693...
ln(list1) ⇒ list
If complex format mode is REAL:
Returns the natural logarithm of the
argument. ln({ë 3,1.2,5}) ¸
Error: Non-real result
For a list, returns the natural logarithms of
the elements. If complex format mode is RECTANGULAR:
ln({ë 3,1.2,5}) ¸
{ln(3) + pø i .182... ln(5)}

ln(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular


complex format mode:
Returns the matrix natural logarithm of
squareMatrix1. This is not the same as ln([1,5,3;4,2,1;6,ë 2,1]) ¸
calculating the natural logarithm of each
 
element. For information about the 1.831…+1.734…øi .009…ì 1.490…øi …
calculation method, refer to cos() on.
.448…ì.725…øi 1.064…+.623øi … 
squareMatrix1 must be diagonalizable. The ë.266…ì 2.083…øi 1.124…+1.790…øi … 
result always contains floating-point
numbers.

Appendix A: TI.89 Functions and Instructions 439

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 439 of 128
LnReg MATH/Statistics/Regressions menu
LnReg list1, list2[, [list3] [, list4, list5]] In function graphing mode:
Calculates the logarithmic regression and {1,2,3,4,5,6,7,8}! L1 ¸
updates all the system statistics variables. {1 2 3 ...}
All the lists must have equal dimensions {1,2,2,3,3,3,4,4}! L2 ¸
except for list5. {1 2 2 ...}
LnReg L1,L2 ¸ Done
list1 represents xlist.
ShowStat ¸
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Note: list1 through list4 must be a variable


name or c1–c99 (columns in the last data
variable shown in the Data/Matrix Editor).
¸
list5 does not have to be a variable name and
cannot be c1–c99. Regeq(x)"y1(x) ¸ Done
NewPlot 1,1,L1,L2 ¸ Done
¥%

Local CATALOG
Local var1[, var2] [, var3] ... Program listing:
Declares the specified vars as local variables. :prgmname()
Those variables exist only during evaluation :Prgm
of a program or function and are deleted :Local x,y
when the program or function finishes :Input "Enter x",x
execution. :Input "Enter y",y
:Disp xù y
Note: Local variables save memory because :EndPrgm
they only exist temporarily. Also, they do not
disturb any existing global variable values. Note: x and y do not exist after the
Local variables must be used for For loops program executes.
and for temporarily saving values in a multi-
line function since modifications on global
variables are not allowed in a function.

Lock CATALOG
Lock var1[, var2] ... {1,2,3,4}! L1 ¸ {1,2,3,4}

Locks the specified variables. This prevents Lock L1 ¸ Done


you from accidentally deleting or changing
the variable without first using the unlock DelVar L1 ¸
instruction on that variable. Error: Variable is locked or protected
In the example to the right, the variable L1 is
locked and cannot be deleted or modified.
Note: The variables can be unlocked using
the Unlock command.

440 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 440 of 128
log() CATALOG
log(expression1) ⇒ expression log(2.0) ¸ .301...
log(list1) ⇒ list
If complex format mode is REAL:
Returns the base-10 logarithm of the
argument. log({ë 3,1.2,5}) ¸
Error: Non-real result
For a list, returns the base-10 logs of the
elements. If complex format mode is RECTANGULAR:
log({ë 3,1.2,5}) ¸
ln(3) p ln(5)
{ln(10) + ln(10) øi .079... ln(10)}

log(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular


complex format mode:
Returns the matrix base-10 logarithm of
squareMatrix1. This is not the same as log([1,5,3;4,2,1;6,ë 2,1]) ¸
calculating the base-10 logarithm of each
element. For information about the
calculation method, refer to cos(). .795…+.753…øi .003…ì.647…øi …

.194…ì.315…øi .462…+.270øi … 
squareMatrix1 must be diagonalizable. The
ë.115…ì.904…øi 
result always contains floating-point  .488…+.777…øi … 
numbers.

Logistic MATH/Statistics/Regressions menu


Logistic list1, list2 [ , [iterations] , [list3] [, list4, list5] ] In function graphing mode:
Calculates the logistic regression and updates {1,2,3,4,5,6}! L1 ¸ {1 2 3 …}
all the system statistics variables. {1,1.3,2.5,3.5,4.5,4.8}! L2 ¸
All the lists must have equal dimensions {1 1.3 2.5 …}
except for list5. Logistic L1,L2 ¸ Done
ShowStat ¸
list1 represents xlist.
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

iterations specifies the maximum number of


times a solution will be attempted. If omitted,
64 is used. Typically, larger values result in ¸
better accuracy but longer execution times, regeq(x)! y1(x) ¸ Done
and vice versa. NewPlot 1,1,L1,L2 ¸ Done
¥%
Note: list1 through list4 must be a variable „9
name or c1–c99 (columns in the last data
variable shown in the Data/Matrix Editor).
list5 does not have to be a variable name and
cannot be c1–c99.

Appendix A: TI.89 Functions and Instructions 441

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 441 of 128
Loop CATALOG
Loop Program segment:
block
EndLoop
©
:1! i
Repeatedly executes the statements in block. :Loop
Note that the loop will be executed endlessly, : Rand(6)! die1
unless a Goto or Exit instruction is executed : Rand(6)! die2
within block.
: If die1=6 and die2=6
block is a sequence of statements separated : Goto End
with the “:” character. : i+1! i
:EndLoop
:Lbl End
:Disp "The number of rolls is", i
©

LU MATH/Matrix menu
LU matrix, lMatName, uMatName, pMatName[, tol] [6,12,18;5,14,31;3,8,18]!m1
¸
Calculates the Doolittle LU (lower-upper)
6 12 18
decomposition of a real or complex matrix.
5 14 31
The lower triangular matrix is stored in
lMatName, the upper triangular matrix in
3 8 18
uMatName, and the permutation matrix LU m1,lower,upper,perm ¸ Done
(which describes the row swaps done during
the calculation) in pMatName. 1 0 0
lower 5/6 1 0
1/2 1
¸
lMatName ù uMatName = pMatName ù matrix 1/2
Optionally, any matrix element is treated as 6 12 18
zero if its absolute value is less than tol. This upper 0 4 16
0 1 
¸
tolerance is used only if the matrix has 0
floating-point entries and does not contain
1 0 0
any symbolic variables that have not been
perm 0 1 0
0 1
¸
assigned a value. Otherwise, tol is ignored. 0
• If you use ¥ ¸ or set the mode to
Exact/Approx=APPROXIMATE, computations
are done using floating-point arithmetic. m n
[m,n;o,p]!m1 ¸ [ o p]
• If tol is omitted or not used, the default
tolerance is calculated as: LU m1,lower,upper,perm ¸ Done
5Eë 14 ù max(dim(matrix)) 1 0
ù rowNorm(matrix) lower ¸
m 
o 1
The LU factorization algorithm uses partial
o p
pivoting with row interchanges.
 møp
upper ¸ 0 n ì o 
 
0 1
perm ¸ [ 1 0]

mat4list() MATH/List menu


mat4list(matrix) ⇒ list mat4list([1,2,3]) ¸ {1 2 3}

Returns a list filled with the elements in [1,2,3;4,5,6]! M1 ¸


matrix. The elements are copied from matrix 1 2 3
row by row. [4 5 6]
mat4list(M1) ¸ {1 2 3 4 5 6}

442 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 442 of 128
max() MATH/List menu
max(expression1, expression2) ⇒ expression max(2.3,1.4) ¸ 2.3
max(list1, list2) ⇒ list
max(matrix1, matrix2) ⇒ matrix max({1,2},{ë 4,3}) ¸ {1 3}

Returns the maximum of the two arguments.


If the arguments are two lists or matrices,
returns a list or matrix containing the
maximum value of each pair of
corresponding elements.
max(list) ⇒ expression max({0,1,ë 7,1.3,.5}) ¸ 1.3

Returns the maximum element in list.


max(matrix1) ⇒ matrix max([1,ë 3,7;ë 4,0,.3]) ¸
[1 0 7]
Returns a row vector containing the
maximum element of each column in
matrix1.

Note: See also fMax() and min().

mean() MATH/Statistics menu


mean(list) ⇒ expression mean({.2,0,1,ë.3,.4}) ¸ .26

Returns the mean of the elements in list.


mean(matrix1) ⇒ matrix In vector format rectangular mode:
Returns a row vector of the means of all the mean([.2,0;L1,3;.4,L.5]) ¸
columns in matrix1. [L.133... .833...]

mean([1/5,0;L1,3;2/5,L1/2]) ¸
[ë 2/15 5/6]

median() MATH/Statistics menu


median(list) ⇒ expression median({.2,0,1,ë.3,.4}) ¸ .2

Returns the median of the elements in list1.


median(matrix1) ⇒ matrix median([.2,0;1,ë.3;.4,ë.5])
¸
Returns a row vector containing the medians [.4 ë.3]
of the columns in matrix1.
Note: All entries in the list or matrix must
simplify to numbers.

Appendix A: TI.89 Functions and Instructions 443

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 443 of 128
MedMed MATH/Statistics/Regressions menu
MedMed list1, list2[, [list3] [, list4, list5]] In function graphing mode:
Calculates the median-median line and {0,1,2,3,4,5,6}! L1 ¸ {0 1 2 ...}
updates all the system statistics variables. {0,2,3,4,3,4,6}! L2 ¸ {0 2 3 ...}
All the lists must have equal dimensions MedMed L1,L2 ¸ Done
except for list5. ShowStat ¸
list1 represents xlist.
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Note: list1 through list4 must be a variable


¸
name or c1–c99 (columns in the last data
variable shown in the Data/Matrix Editor). Regeq(x)! y1(x) ¸ Done
list5 does not have to be a variable name and NewPlot 1,1,L1,L2 ¸ Done
cannot be c1–c99.
¥%

mid() MATH/String menu


mid(sourceString, start[, count]) ⇒ string mid("Hello there",2) ¸
"ello there"
Returns count characters from character
string sourceString, beginning with character mid("Hello there",7,3) ¸
number start. "the"

If count is omitted or is greater than the mid("Hello there",1,5) ¸


dimension of sourceString, returns all
characters from sourceString, beginning with "Hello"
character number start. mid("Hello there",1,0) ¸
count must be ‚ 0. If count = 0, returns an ""
empty string.
mid(sourceList, start [, count]) ⇒ list mid({9,8,7,6},3) ¸ {7 6}

Returns count elements from sourceList, mid({9,8,7,6},2,2) ¸ {8 7}


beginning with element number start.
mid({9,8,7,6},1,2) ¸ {9 8}
If count is omitted or is greater than the
dimension of sourceList, returns all elements mid({9,8,7,6},1,0) ¸ {}
from sourceList, beginning with element
number start.
count must be ‚ 0. If count = 0, returns an
empty list.
mid(sourceStringList, start[, count]) ⇒ list mid({"A","B","C","D"},2,2) ¸
{"B" "C"}
Returns count strings from the list of strings
sourceStringList, beginning with element
number start.

444 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 444 of 128
min() MATH/List menu
min(expression1, expression2) ⇒ expression min(2.3,1.4) ¸ 1.4
min(list1, list2) ⇒ list
min(matrix1, matrix2) ⇒ matrix min({1,2},{ë 4,3}) ¸ {ë 4 2}

Returns the minimum of the two arguments.


If the arguments are two lists or matrices,
returns a list or matrix containing the
minimum value of each pair of corresponding
elements.
min(list) ⇒ expression min({0,1,ë 7,1.3,.5}) ¸ ë7

Returns the minimum element of list.


min(matrix1) ⇒ matrix min([1,ë 3,7;ë 4,0,.3]) ¸
[ë 4 ë 3 .3]
Returns a row vector containing the
minimum element of each column in matrix1.
Note: See also fMin() and max().

mod() MATH/Number menu


mod(expression1, expression2) ⇒ expression mod(7,0) ¸ 7
mod(list1, list2) ⇒ list
mod(matrix1, matrix2) ⇒ matrix mod(7,3) ¸ 1

Returns the first argument modulo the mod(ë 7,3) ¸ 2


second argument as defined by the identities:
mod(7,ë 3) ¸ ë2
mod(x,0)  x
mod(x,y)  xì y floor(x/y) mod(ë 7,ë 3) ¸ ë1
When the second argument is non-zero, the mod({12,ë 14,16},{9,7,ë 5}) ¸
result is periodic in that argument. The result
{3 0 ë 4}
is either zero or has the same sign as the
second argument.
If the arguments are two lists or two
matrices, returns a list or matrix containing
the modulo of each pair of corresponding
elements.
Note: See also remain().

MoveVar CATALOG
MoveVar var, oldFolder, newFolder {1,2,3,4}! L1 ¸ {1 2 3 4}
MoveVar L1,Main,Games ¸ Done
Moves variable var from oldFolder to
newFolder. If newFolder does not exist,
MoveVar creates it.

mRow() MATH/Matrix/Row ops menu


mRow(expression, matrix1, index) ⇒ matrix mRow(ë 1/3,[1,2;3,4],2) ¸
1 2
Returns a copy of matrix1 with each element [ë 1 ë 4/3]
in row index of matrix1 multiplied by
expression.

Appendix A: TI.89 Functions and Instructions 445

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 445 of 128
mRowAdd() MATH/Matrix/Row ops menu
mRowAdd(expression, matrix1, index1, index2) mRowAdd(ë 3,[1,2;3,4],1,2) ¸
⇒ matrix 1 2
[0 L2]
Returns a copy of matrix1 with each element
in row index2 of matrix1 replaced with: mRowAdd(n,[a,b;c,d],1,2) ¸
a b
expression × row index1 + row index2 [aø n+c bø n+d]

nCr() MATH/Probability menu


nCr(expression1, expression2) ⇒ expression zø (zì 2)ø (zì 1)
nCr(z,3) 6
For integer expression1 and expression2 with
expression1 ‚ expression2 ‚ 0, nCr() is the ans(1)|z=5 10
number of combinations of expression1 things
taken expression2 at a time. (This is also z!
nCr(z,c) c!(zì c)!
known as a binomial coefficient.) Both
arguments can be integers or symbolic
expressions. 1
ans(1)/nPr(z,c) c!
nCr(expression, 0) ⇒ 1

nCr(expression, negInteger) ⇒ 0

nCr(expression, posInteger) ⇒
expressionø (expressionì 1)...
(expressionì posInteger+1)/ posInteger!

nCr(expression, nonInteger) ⇒ expression!/


((expressionì nonInteger)!ø nonInteger!)

nCr(list1, list2) ⇒ list nCr({5,4,3},{2,4,2}) ¸


{10 1 3}
Returns a list of combinations based on the
corresponding element pairs in the two lists.
The arguments must be the same size list.
nCr(matrix1, matrix2) ⇒ matrix nCr([6,5;4,3],[2,2;2,2]) ¸
15 10
Returns a matrix of combinations based on [6 3 ]
the corresponding element pairs in the two
matrices. The arguments must be the same
size matrix.

nDeriv() MATH/Calculus menu


nDeriv(expression1, var[, h]) ⇒ expression nDeriv(cos(x),x,h) ¸
nDeriv(expression1, var, list) ⇒ list ë (cos(xì h)ì cos(x+h))
nDeriv(list, var[, h]) ⇒ list 2ø h
nDeriv(matrix, var[, h]) ⇒ matrix

Returns the numerical derivative as an limit(nDeriv(cos(x),x,h),h,0)


expression. Uses the central difference ¸
quotient formula. ë sin(x)

h is the step value. If h is omitted, it defaults


nDeriv(x^3,x,0.01) ¸
to 0.001. 3.ø (xñ +.000033)

When using list or matrix, the operation gets nDeriv(cos(x),x)|x=p/2 ¸


mapped across the values in the list or across ë 1.
the matrix elements.
nDeriv(x^2,x,{.01,.1}) ¸
Note: See also avgRC() and d().
{2.øx 2.øx}

446 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 446 of 128
NewData CATALOG
NewData dataVar, list1[, list2] [, list3]... NewData mydata,{1,2,3},{4,5,6}
¸
Creates data variable dataVar, where the Done
columns are the lists in order.
(Go to the Data/Matrix Editor and open
Must have at least one list. the var mydata to display the data
list1, list2, ..., listn can be lists as shown, variable below.)
expressions that resolve to lists, or list
variable names.
NewData makes the new variable current in
the Data/Matrix Editor.

NewData dataVar, matrix

Creates data variable dataVar based on


matrix.

NewData sysData, matrix

Loads the contents of matrix into the system


data variable sysData.

NewFold CATALOG
NewFold folderName NewFold games ¸ Done

Creates a user-defined folder with the name


folderName, and then sets the current folder
to that folder. After you execute this
instruction, you are in the new folder.

newList() CATALOG
newList(numElements) ⇒ list newList(4) ¸ {0 0 0 0}

Returns a list with a dimension of


numElements. Each element is zero.

newMat() CATALOG also Math/Matrix menu


newMat(numRows, numColumns) ⇒ matrix 0 0 0
newMat(2,3) ¸ [ 0 0 0]
Returns a matrix of zeros with the dimension
numRows by numColumns.

NewPic CATALOG
NewPic matrix, picVar [, maxRow][, maxCol] NewPic [1,1;2,2;3,3;4,4;5,5;
5,1;4,2;2,4;1,5],xpic ¸ Done
Creates a pic variable picVar based on matrix.
matrix must be an n×2 matrix in which each RclPic xpic ¸
row represents a pixel. Pixel coordinates
start at 0,0. If picVar already exists, NewPic
replaces it.
The default for picVar is the minimum area
required for the matrix values. The optional
arguments, maxRow and maxCol, determine
the maximum boundary limits for picVar.

Appendix A: TI.89 Functions and Instructions 447

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 447 of 128
NewPlot CATALOG
NewPlot n, type, xList [,[yList], [frqList], [catList], FnOff ¸ Done
[includeCatList], [mark] [, bucketSize]] PlotsOff ¸ Done
{1,2,3,4}! L1 ¸ {1 2 3 4}
Creates a new plot definition for plot number n.
{2,3,4,5}! L2 ¸ {2 3 4 5}
type specifies the type of the graph plot. NewPlot 1,1,L1,L2,,,,4 ¸ Done
1 = scatter plot
2 = xyline plot Press ¥ % to display:
3 = box plot
4 = histogram
5 = modified box plot
mark specifies the display type of the mark.
1 = è (box)
2 = × (cross)
3 = + (plus )
4 = é (square)
5 = ø (dot)
bucketSize is the width of each histogram
“bucket” (type = 4), and will vary based on
the window variables xmin and xmax.
bucketSize must be >0. Default = 1.

Note: n can be 1–9. Lists must be variable


names or c1–c99 (columns in the last data
variable shown in the Data/Matrix Editor),
except for includeCatList, which does not
have to be a variable name and cannot be
c1–c99.

NewProb CATALOG
NewProb NewProb ¸ Done

Performs a variety of operations that let you


begin a new problem from a cleared state
without resetting the memory.
• Clears all single-character variable names
(Clear a–z) in the current folder, unless the
variables are locked or archived.
• Turns off all functions and stat plots
(FnOff and PlotsOff) in the current
graphing mode.
• Perfoms ClrDraw, ClrErr, ClrGraph,
ClrHome, ClrIO, and ClrTable.

nInt() MATH/Calculus menu


nInt(expression1, var, lower, upper) ⇒ expression nInt(e^(ë x^2),x,ë 1,1) ¸
If the integrand expression1 contains no 1.493...
variable other than var, and if lower and upper
are constants, positive ˆ, or negative ˆ, then
nInt() returns an approximation of
‰(expression1, var, lower, upper). This
approximation is a weighted average of some
sample values of the integrand in the interval
lower<var<upper.

448 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 448 of 128
The goal is six significant digits. The adaptive nInt(cos(x),x,ë p,p+1í ë 12) ¸
algorithm terminates when it seems likely ë 1.041...í ë 12
that the goal has been achieved, or when it
seems unlikely that additional samples will ‰(cos(x),x,ë p,p+10^(ë 12)) ¸
yield a worthwhile improvement.
1
ë sin(1000000000000)
A warning is displayed (“Questionable
accuracy”) when it seems that the goal has not ans(1)¥ ¸ ë 1.í ë 12
been achieved.
Nest nInt() to do multiple numeric integration. nInt(nInt(e^(ë xù y)/‡(x^2ì y^2),
Integration limits can depend on integration y,ë x,x),x,0,1) ¸ 3.304...
variables outside them.
Note: See also ‰().

norm() MATH/Matrix/Norms menu


norm(matrix) ⇒ expression norm([a,b;c,d]) ¸

Returns the Frobenius norm. añ +bñ +cñ +dñ

norm([1,2;3,4]) ¸ 30

not MATH/Test menu


not Boolean expression1 ⇒ Boolean expression not 2>=3 ¸ true

Returns true, false, or a simplified Boolean not x<2 ¸ x‚2


expression1.
not not innocent ¸ innocent

not integer1 ⇒ integer In Hex base mode:


Returns the one’s complement of a real not 0h7AC36 ¸ 0hFFF853C9
integer. Internally, integer1 is converted to a
Important: Zero, not the letter O.
signed, 32-bit binary number. The value of
each bit is flipped (0 becomes 1, and vice
versa) for the one’s complement. Results are In Bin base mode:
displayed according to the Base mode. 0b100101 4 dec ¸ 37
You can enter the integer in any number
not 0b100101 ¸
base. For a binary or hexadecimal entry, you
must use the 0b or 0h prefix, respectively. 0b11111111111111111111111111011010
Without a prefix, the integer is treated as ans(1) 4 dec ¸ ë 38
decimal (base 10).
If you enter a decimal integer that is too large Note: A binary entry can have up to 32
for a signed, 32-bit binary form, a symmetric digits (not counting the 0b prefix). A
modulo operation is used to bring the value hexadecimal entry can have up to 8 digits.
into the appropriate range. Note: To type the 4 conversion operator,
press 2 Ž. You can also select base
conversions from the MATH/Base menu.

Appendix A: TI.89 Functions and Instructions 449

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 449 of 128
nPr() MATH/Probability menu
nPr(expression1, expression2) ⇒ expression nPr(z,3) ¸ zø (zì 2)ø (zì 1)

For integer expression1 and expression2 with ans(1)|z=5 ¸ 60


expression1 ‚ expression2 ‚ 0, nPr() is the
number of permutations of expression1 things 1
nPr(z,ë 3) ¸ (z+1)ø (z+2)ø (z+3)
taken expression2 at a time. Both arguments
can be integers or symbolic expressions.
z!
nPr(expression, 0) ⇒ 1 nPr(z,c) ¸ (zì c)!
nPr(expression, negInteger) ⇒
ans(1)ù nPr(zì c,ë c) ¸ 1
1/((expression+1)ø (expression+2)...
(expressionì negInteger))

nPr(expression, posInteger) ⇒
expressionø (expressionì 1)...
(expressionì posInteger+1)

nPr(expression, nonInteger) ⇒ expression!/


(expressionì nonInteger)!

nPr(list1, list2) ⇒ list nPr({5,4,3},{2,4,2}) ¸


{20 24 6}
Returns a list of permutations based on the
corresponding element pairs in the two lists.
The arguments must be the same size list.
nPr(matrix1, matrix2) ⇒ matrix nPr([6,5;4,3],[2,2;2,2]) ¸
30 20
Returns a matrix of permutations based on [12 6]
the corresponding element pairs in the two
matrices. The arguments must be the same
size matrix.

nSolve() MATH/Algebra menu


nSolve(equation, varOrGuess) ⇒ number or nSolve(x^2+5xì 25=9,x) ¸
error_string 3.844...
Iteratively searches for one approximate real nSolve(x^2=4,x=ë 1) ¸ ë 2.
numeric solution to equation for its one
variable. Specify varOrGuess as: nSolve(x^2=4,x=1) ¸ 2.
variable
Note: If there are multiple solutions, you
– or –
can use a guess to help find a particular
variable = real number
solution.
For example, x is valid and so is x=3.
nSolve() is often much faster than solve() or nSolve(x^2+5xì 25=9,x)|x<0 ¸
zeros(), particularly if the “|” operator is used ë 8.844...
to constrain the search to a small interval
containing exactly one simple solution. nSolve(((1+r)^24ì 1)/r=26,r)|r>
nSolve() attempts to determine either one 0 and r<.25 ¸ .0068...
point where the residual is zero or two
relatively close points where the residual has nSolve(x^2=ë 1,x) ¸
opposite signs and the magnitude of the "no solution found"
residual is not excessive. If it cannot achieve
this using a modest number of sample points,
it returns the string “no solution found.”
If you use nSolve() in a program, you can use
getType() to check for a numeric result before
using it in an algebraic expression.
Note: See also cSolve(), cZeros(), solve(), and
zeros().

450 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 450 of 128
OneVar MATH/Statistics menu
OneVar list1 [[, list2] [, list3] [, list4]] {0,2,3,4,3,4,6}! L1 ¸
OneVar L1 ¸ Done
Calculates 1-variable statistics and updates
ShowStat ¸
all the system statistics variables.
All the lists must have equal dimensions
except for list4.
list1 represents xlist.
list2 represents frequency.
list3 represents category codes.
list4 represents category include list.

Note: list1 through list3 must be a variable


name or c1–c99 (columns in the last data
variable shown in the Data/Matrix Editor).
list4 does not have to be a variable name and
cannot be c1–c99.

or MATH/Test menu
Boolean expression1 or Boolean expression2 ⇒ x‚3 or x‚4 ¸ x‚3
Boolean expression
Program segment:
Returns true or false or a simplified form of
the original entry. ©
If x<0 or x‚5
Returns true if either or both expressions Goto END
simplify to true. Returns false only if both ©
expressions evaluate to false. If choice=1 or choice=2
Disp "Wrong choice"
Note: See xor. ©

integer1 or integer2 ⇒ integer In Hex base mode:


Compares two real integers bit-by-bit using 0h7AC36 or 0h3D5F ¸ 0h7BD7F
an or operation. Internally, both integers are
Important: Zero, not the letter O.
converted to signed, 32-bit binary numbers.
When corresponding bits are compared, the
result is 1 if either bit is 1; the result is 0 only In Bin base mode:
if both bits are 0. The returned value 0b100101 or 0b100 ¸ 0b100101
represents the bit results, and is displayed
according to the Base mode. Note: A binary entry can have up to 32
You can enter the integers in any number digits (not counting the 0b prefix). A
base. For a binary or hexadecimal entry, you hexadecimal entry can have up to 8 digits.
must use the 0b or 0h prefix, respectively.
Without a prefix, integers are treated as
decimal (base 10).
If you enter a decimal integer that is too large
for a signed, 32-bit binary form, a symmetric
modulo operation is used to bring the value
into the appropriate range.
Note: See xor.

Appendix A: TI.89 Functions and Instructions 451

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 451 of 128
ord() MATH/String menu
ord(string) ⇒ integer ord("hello") ¸ 104
ord(list1) ⇒ list
char(104) ¸ "h"
Returns the numeric code of the first
character in character string string, or a list ord(char(24)) ¸ 24
of the first characters of each list element.
ord({"alpha","beta"}) ¸
See Appendix B for a complete listing of {97 98}
character codes.

Output CATALOG
Output row, column, exprOrString Program segment:
Displays exprOrString (an expression or ©
character string) on the Program I/O screen :RandSeed 1147
at the text coordinates (row, column). :ClrIO
:For i,1,90,10
An expression can include conversion : Output i, rand(100),"Hello"
operations such as 4DD and 4Rect. You can :EndFor
also use the 4 operator to perform unit and ©
number base conversions.
Result after execution:
If Pretty Print = ON, exprOrString is “pretty
printed.”
From the Program I/O screen, you can press
‡ to display the Home screen, or a program
can use DispHome.

P4Rx() MATH/Angle menu


P4Rx(rExpression, qExpression) ⇒ expression In Radian angle mode:
P4Rx(rList, qList) ⇒ list
P4Rx(rMatrix, qMatrix) ⇒ matrix P4Rx(r,q) ¸ cos(q)ø r

Returns the equivalent x-coordinate of the P4Rx(4,60¡) ¸ 2


(r, q) pair.
P4Rx({ë 3,10,1.3},{p/3,ë p/4,0})
Note: The q argument is interpreted as either ¸
a degree or radian angle, according to the
current angle mode. If the argument is an {ë 3/2 5ø ‡2 1.3 }
expression, you can use ó or ô to override the
angle mode setting temporarily.

P4Ry() MATH/Angle menu


P4Ry(rExpression, qExpression) ⇒ expression In Radian angle mode:
P4Ry(rList, qList) ⇒ list
P4Ry(rMatrix, qMatrix) ⇒ matrix P4Ry(r,q) ¸ sin(q)ø r

Returns the equivalent y-coordinate of the P4Ry(4,60¡) ¸ 2ø ‡3


(r, q) pair.
P4Ry({ë 3,10,1.3},{p/3,ë p/4,0})
Note: The q argument is interpreted as either ¸
a degree or radian angle, according to the
current angle mode. If the argument is an ë 3ø ‡3
expression, you can use ó or ô to override the { 2 ë 5ø ‡2 0. }
angle mode setting temporarily.

452 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 452 of 128
part() CATALOG
part(expression1[ ,nonNegativeInteger])

This advanced programming function lets


you identify and extract all of the sub-
expressions in the simplified result of
expression1.

For example, if expression1 simplifies to


cos(pù x+3):
• The cos() function has one argument:
(pù x+3).
• The sum of (pù x+3) has two operands:
pù x and 3.
• The number 3 has no arguments or
operands.
• The product pù x has two operands: p
and x.
• The variable x and the symbolic constant p
have no arguments or operands.
If x has a numeric value and you press
¥ ¸, the numeric value of pù x is
calculated, the result is added to 3, and then
the cosine is calculated. cos() is the top-level
operator because it is applied last.
part(expression1) ⇒ number part(cos(pù x+3)) ¸ 1

Simplifies expression1 and returns the number Note: cos(pù x+3) has one argument.
of top-level arguments or operands. This
returns 0 if expression1 is a number, variable,
or symbolic constant such as p, e, i, or ˆ.
part(expression1, 0) ⇒ string part(cos(pù x+3),0) ¸ "cos"

Simplifies expression1 and returns a string


that contains the top-level function name or
operator. This returns string(expression1) if
expression1 is a number, variable, or symbolic
constant such as p, e, i, or ˆ.
part(expression1, n) ⇒ expression part(cos(pù x+3),1) ¸ 3+pøx

Simplifies expression1 and returns the n th Note: Simplification changed the order of
argument or operand, where n is > 0 and the argument.
 the number of top-level arguments or
operands returned by part(expression1).
Otherwise, an error is returned.

Appendix A: TI.89 Functions and Instructions 453

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 453 of 128
By combining the variations of part(), you can part(cos(pù x+3)) ¸ 1
extract all of the sub-expressions in the part(cos(pù x+3),0) ¸ "cos"
simplified result of expression1. As shown in
part(cos(pù x+3),1)! temp ¸
the example to the right, you can store an
argument or operand and then use part() to 3+pøx
extract further sub-expressions. temp ¸ pøx+3
Note: When using part(), do not rely on any part(temp,0) ¸ "+"
particular order in sums and products. part(temp) ¸ 2
part(temp,2) ¸ 3
part(temp,1)! temp ¸ pøx
part(temp,0) ¸ "ù "
part(temp) ¸ 2
part(temp,1) ¸ p
part(temp,2) ¸ x

Expressions such as (x+y+z) and (xì yì z) part(x+y+z) ¸ 2


are represented internally as (x+y)+z and part(x+y+z,2) ¸ z
(xì y)ì z. This affects the values returned for part(x+y+z,1) ¸ y+x
the first and second argument. There are
technical reasons why part(x+y+z,1) returns
y+x instead of x+y.
Similarly, xù yù z is represented internally as part(xù yù z) ¸ 2
(xù y)ù z. Again, there are technical reasons part(xù yù z,2) ¸ z
why the first argument is returned as yøx part(xù yù z,1) ¸ yøx
instead of xøy.
When you extract sub-expressions from a part([a,b,c;x,y,z],0) ¸ "{"
matrix, remember that matrices are stored as part([a,b,c;x,y,z]) ¸ 2
lists of lists, as illustrated in the example to part([a,b,c;x,y,z],2)! temp ¸
the right. {x y z}
part(temp,0) ¸ "{"
part(temp) ¸ 3
part(temp,3) ¸ z
delVar temp ¸ Done

The example Program Editor function to the :d(y,x)


right uses getType() and part() to partially :Func
implement symbolic differentiation. Studying :Local f
and completing this function can help teach :If getType(y)="VAR"
: Return when(y=x,1,0,0)
you how to differentiate manually. You could :If part(y)=0
even include functions that the TI-89 cannot
: Return 0 © y=p,ˆ,i,numbers
differentiate, such as Bessel functions.
:part(y,0)! f
:If f="L" © if negate
: Return ë d(part(y,1),x)
:If f="−" © if minus
: Return d(part(y,1),x)
ì d(part(y,2),x)
:If f="+"
: Return d(part(y,1),x)
+d(part(y,2),x)
:If f="ù "
: Return
part(y,1)ù d(part(y,2),x)
+part(y,2)ù d(part(y,1),x)
:If f="{"
: Return seq(d(part(y,k),x),
k,1,part(y))
:Return undef
:EndFunc

454 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 454 of 128
PassErr CATALOG
PassErr See ClrErr program listing example.
Passes an error to the next level.
If “errornum” is zero, PassErr does not do
anything.
The Else clause in the program should use
ClrErr or PassErr. If the error is to be
processed or ignored, use ClrErr. If what to
do with the error is not known, use PassErr
to send it to the next error handler. (See also
ClrErr.)

Pause CATALOG
Pause [expression] Program segment:
Suspends program execution. If you include ©
expression, displays expression on the Program :ClrIO
I/O screen. :DelVar temp
:1"temp[1]
expression can include conversion operations :1"temp[2]
such as 4DD and 4Rect. You can also use the 4 :Disp temp[2]
operator to perform unit and number base :© Guess the Pattern
conversions. :For i,3,20
: temp[iì2]+temp[iì1]"temp[i]
If the result of expression is too big to fit on a
single screen, you can use the cursor pad to : Disp temp[i]
: Disp temp,"Can you guess the
scroll the display. next","number?"
Program execution resumes when you : Pause
:EndFor
press ¸.
©

PlotsOff CATALOG
PlotsOff [1] [, 2] [, 3] ... [, 9] PlotsOff 1,2,5 ¸ Done

Turns off the specified plots for graphing. PlotsOff ¸ Done


When in 2-graph mode, only affects the active
graph.
If no parameters, then turns off all plots.

PlotsOn CATALOG
PlotsOn [1] [, 2] [, 3] ... [, 9] PlotsOn 2,4,5 ¸ Done

Turns on the specified plots for graphing. PlotsOn ¸ Done


When in 2-graph mode, only affects the active
graph.
If you do not include any arguments, turns on
all plots.

Appendix A: TI.89 Functions and Instructions 455

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 455 of 128
4Polar MATH/Matrix/Vector ops menu
vector 4Polar [1,3.] 4Polar ¸
[x,y] 4Polar ¸
Displays vector in polar form [r q]. The
vector must be of dimension 2 and can be a
row or a column.
Note: 4Polar is a display-format instruction,
not a conversion function. You can use it
only at the end of an entry line, and it does
not update ans.
Note: See also 4Rect.
complexValue 4Polar In Radian angle mode:
p
i ( ì tanê(3/4))
Displays complexVector in polar form. 3+4i 4Polar ¸ eø 2 ø5
• Degree angle mode returns (rq). iøp
(4p/3)4Polar ¸ e 3 ø4
• Radian angle mode returns re iq.
complexValue can have any complex form.
However, an re iq entry causes an error in In Degree angle mode:
Degree angle mode. 3+4i 4Polar ¸ (590ì tanê(3/4))
Note: You must use the parentheses for an
(rq) polar entry.

polyEval() MATH/List menu


polyEval(list1, expression1) ⇒ expression polyEval({a,b,c},x) ¸
polyEval(list1, list2) ⇒ expression aø xñ +bø x+c
Interprets the first argument as the polyEval({1,2,3,4},2) ¸ 26
coefficient of a descending-degree
polynomial, and returns the polynomial polyEval({1,2,3,4},{2,ë 7})
evaluated for the value of the second ¸ {26 ë 262}
argument.

PopUp CATALOG
PopUp itemList, var PopUp
{"1990","1991","1992"},var1
Displays a pop-up menu containing the ¸
character strings from itemList, waits for you
to select an item, and stores the number of
your selection in var.
The elements of itemList must be character
strings: {item1String, item2String,
item3String, ...}

If var already exists and has a valid item


number, that item is displayed as the default
choice.
itemList must contain at least one choice.

456 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 456 of 128
PowerReg MATH/Statistics/Regressions menu
PowerReg list1, list2[, [list3] [, list4, list5]] In function graphing mode:
Calculates the power regression and updates {1,2,3,4,5,6,7}! L1 ¸
all the system statistics variables. {1 2 3 ...}
All the lists must have equal dimensions {1,2,3,4,3,4,6}! L2 ¸
except for list5. {1 2 3 ...}
PowerReg L1,L2 ¸ Done
list1 represents xlist.
ShowStat ¸
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Note: list1 through list4 must be a variable


name or c1–c99 (columns in the last data
variable shown in the Data/Matrix Editor).
¸
list5 does not have to be a variable name and
cannot be c1–c99. Regeq(x)"y1(x) ¸ Done
NewPlot 1,1,L1,L2 ¸ Done
¥%

Prgm CATALOG
Prgm Program segment:
©
EndPrgm :prgmname()
:Prgm
Required instruction that identifies the :
beginning of a program. Last line of program :EndPrgm
must be EndPrgm.

product() MATH/List menu


product(list) ⇒ expression product({1,2,3,4}) ¸ 24

Returns the product of the elements product({2,x,y}) ¸ 2ø xø y


contained in list.
product(matrix1) ⇒ matrix product([1,2,3;4,5,6;7,8,9])
¸ [28 80 162]
Returns a row vector containing the products
of the elements in the columns of matrix1.

Prompt CATALOG
Prompt var1[, var2] [, var3] ... Program segment:
Displays a prompt on the Program I/O screen ©
for each variable in the argument list, using Prompt A,B,C
the prompt var1?. Stores the entered ©
expression in the corresponding variable. EndPrgm
Prompt must have at least one argument.

Appendix A: TI.89 Functions and Instructions 457

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 457 of 128
propFrac() MATH/Algebra menu
propFrac(expression1[, var]) ⇒ expression propFrac(4/3) ¸ 1 + 1/3

propFrac(rational_number) returns propFrac(ë 4/3) ¸ ë 1ì 1/3


rational_number as the sum of an integer and
a fraction having the same sign and a greater
denominator magnitude than numerator
magnitude.
propFrac(rational_expression,var) returns the propFrac((x^2+x+1)/(x+1)+
sum of proper ratios and a polynomial with (y^2+y+1)/(y+1),x) ¸
respect to var. The degree of var in the
denominator exceeds the degree of var in the
numerator in each proper ratio. Similar
powers of var are collected. The terms and
their factors are sorted with var as the main
variable.
If var is omitted, a proper fraction expansion propFrac(ans(1))
is done with respect to the most main
variable. The coefficients of the polynomial
part are then made proper with respect to
their most main variable first and so on.
For rational expressions, propFrac() is a
faster but less extreme alternative to
expand().

PtChg CATALOG
PtChg x, y Note: PtChg through PtText show
PtChg xList, yList continuing similar examples.
PtChg 2,4 ¸
Displays the Graph screen and reverses the
screen pixel nearest to window coordinates
(x, y).

PtOff CATALOG
PtOff x, y PtOff 2,4 ¸
PtOff xList, yList

Displays the Graph screen and turns off the


screen pixel nearest to window coordinates
(x, y).

PtOn CATALOG
PtOn x, y PtOn 3,5 ¸
PtOn xList, yList

Displays the Graph screen and turns on the


screen pixel nearest to window coordinates
(x, y).

ptTest() CATALOG
ptTest (x, y) ⇒ Boolean constant expression ptTest(3,5) ¸ true
ptTest (xList, yList) ⇒ Boolean constant expression

Returns true or false. Returns true only if the


screen pixel nearest to window coordinates
(x, y) is on.

458 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 458 of 128
PtText CATALOG
PtText string, x, y PtText "sample",3,5 ¸

Displays the Graph screen and places the


character string string on the screen at the
pixel nearest the specified (x, y) window
coordinates.
string is positioned with the upper-left corner
of its first character at the coordinates.

PxlChg CATALOG
PxlChg row, col PxlChg 2,4 ¸
PxlChg rowList, colList

Displays the Graph screen and reverses the


pixel at pixel coordinates (row, col).
Note: Regraphing erases all drawn items.

PxlCrcl CATALOG
PxlCrcl row, col, r [, drawMode] PxlCrcl 40,80,30,1 ¸

Displays the Graph screen and draws a circle


centered at pixel coordinates (row, col) with a
radius of r pixels.
If drawMode = 1, draws the circle (default).
If drawMode = 0, turns off the circle.
If drawMode = -1, inverts pixels along the
circle.
Note: Regraphing erases all drawn items. See
also Circle.

PxlHorz CATALOG
PxlHorz row [, drawMode] PxlHorz 25,1 ¸

Displays the Graph screen and draws a


horizontal line at pixel position row.
If drawMode = 1, draws the line (default).
If drawMode = 0, turns off the line.
If drawMode = -1, turns a line that is on to off
or off to on (inverts pixels along the line).
Note: Regraphing erases all drawn items. See
also LineHorz.

PxlLine CATALOG
PxlLine rowStart, colStart, rowEnd, colEnd [, drawMode] PxlLine 50,15,20,90,1 ¸

Displays the Graph screen and draws a line


between pixel coordinates (rowStart, colStart)
and (rowEnd, colEnd), including both
endpoints.
If drawMode = 1, draws the line (default).
If drawMode = 0, turns off the line.
If drawMode = -1, turns a line that is on to off
or off to on (inverts pixels along the line).
Note: Regraphing erases all drawn items. See
also Line

Appendix A: TI.89 Functions and Instructions 459

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 459 of 128
PxlOff CATALOG
PxlOff row, col PxlHorz 25,1 ¸
PxlOff rowList, colList PxlOff 25,50 ¸
Displays the Graph screen and turns off the
pixel at pixel coordinates (row, col).
Note: Regraphing erases all drawn items.

25,50

PxlOn CATALOG
PxlOn row, col PxlOn 25,50 ¸
PxlOn rowList, colList

Displays the Graph screen and turns on the


pixel at pixel coordinates (row, col).
Note: Regraphing erases all drawn items.

pxlTest() CATALOG
pxlTest (row, col) ⇒ Boolean expression PxlOn 25,50 ¸
pxlTest (rowList, colList) ⇒ Boolean expression "
PxlTest(25,50) ¸ true
Returns true if the pixel at pixel coordinates
(row, col) is on. Returns false if the pixel is off. PxlOff 25,50 ¸
"
Note: Regraphing erases all drawn items. PxlTest(25,50) ¸ false

PxlText CATALOG
PxlText string, row, col PxlText "sample text",20,10
¸
Displays the Graph screen and places
character string string on the screen, starting
at pixel coordinates (row, col).
string is positioned with the upper-left corner
of its first character at the coordinates.
Note: Regraphing erases all drawn items.

PxlVert CATALOG
PxlVert col [, drawMode] PxlVert 50,1 ¸

Draws a vertical line down the screen at pixel


position col.
If drawMode = 1, draws the line (default).
If drawMode = 0, turns off the line.
If drawMode = -1, turns a line that is on to off
or off to on (inverts pixels along the line).
Note: Regraphing erases all drawn items. See
also LineVert.

460 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 460 of 128
QR MATH/Matrix menu
QR matrix, qMatName, rMatName[ , tol] The floating-point number (9.) in m1
causes results to be calculated in floating-
Calculates the Householder QR factorization point form.
of a real or complex matrix. The resulting Q
and R matrices are stored to the specified [1,2,3;4,5,6;7,8,9.]!m1 ¸
MatNames. The Q matrix is unitary. The R 1 2 3
matrix is upper triangular. 4 5 6 
7 8 9.
Optionally, any matrix element is treated as
zero if its absolute value is less than tol. This QR m1,qm,rm ¸ Done
tolerance is used only if the matrix has
.123… .904… .408…
floating-point entries and does not contain .492… .301… ë.816…
any symbolic variables that have not been qm ¸  
assigned a value. Otherwise, tol is ignored. .861… ë.301… .408… 

• If you use ¥ ¸ or set the mode to 8.124… 9.601… 11.078…


Exact/Approx=APPROXIMATE, computations rm 0. .904… 1.809… 
0. 
¸
are done using floating-point arithmetic. 0. 0.

• If tol is omitted or not used, the default


tolerance is calculated as: m n
5Eë 14 ù max(dim(matrix))
[m,n;o,p]!m1 ¸ [ o p]
ù rowNorm(matrix)
QR m1,qm,rm ¸ Done
The QR factorization is computed
numerically using Householder qm ¸
ë sign(møpì nøo)øo
 
transformations. The symbolic solution is m
computed using Gram-Schmidt. The columns
 
m2 + o2 m2 + o 2
in qMatName are the orthonormal basis møsign(møpì nøo)
 
vectors that span the space defined by o
matrix. m2 + o 2 m2 + o 2
møn+oøp
 m2 + o 2 
rm ¸
 m2 + o 2 
0 |møpì nøo|

 m2 + o 2 
QuadReg MATH/Statistics/Regressions menu
QuadReg list1, list2[, [list3] [, list4, list5]] In function graphing mode:
Calculates the quadratic polynomial {0,1,2,3,4,5,6,7}! L1 ¸
regression and updates the system statistics {1 2 3 ...}
variables. {4,3,1,1,2,2,3,3}! L2 ¸
All the lists must have equal dimensions {4 3 1 ...}
except for list5. QuadReg L1,L2 ¸ Done
ShowStat ¸
list1 represents xlist.
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Appendix A: TI.89 Functions and Instructions 461

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/29/98 1:45 PM Printed: 07/29/98 1:57 PM Page 461 of 128
¸
Note: list1 through list4 must be a variable
name or c1–c99. (columns in the last data Regeq(x)"y1(x) ¸ Done
variable shown in the Data/Matrix Editor). NewPlot 1,1,L1,L2 ¸ Done
list5 does not have to be a variable name and
¥%
cannot be c1–c99.

QuartReg MATH/Statistics/Regressions menu


QuartReg list1, list2[, [list3] [, list4, list5]] In function graphing mode:
Calculates the quartic polynomial regression {ë 2,ë 1,0,1,2,3,4,5,6}! L1 ¸
and updates the system statistics variables. {ë 2 ë 1 0 ...}
All the lists must have equal dimensions {4,3,1,2,4,2,1,4,6}! L2 ¸
except for list5. {4 3 1 ...}
QuartReg L1,L2 ¸ Done
list1 represents xlist.
list2 represents ylist.
ShowStat ¸
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Note: list1 through list4 must be a variable


name or c1–c99 (columns in the last data
variable shown in the Data/Matrix Editor).
list5 does not have to be a variable name and ¸
cannot be c1–c99. Regeq(x)"y1(x) ¸ Done
NewPlot 1,1,L1,L2 ¸ Done
¥%

R4Pq() MATH/Angle menu


R4Pq (xExpression, yExpression) ⇒ expression In Degree angle mode:
R4Pq (xList, yList) ⇒ list
R4Pq (xMatrix, yMatrix) ⇒ matrix
R8Pq(x,y) ¸

Returns the equivalent q-coordinate of the


(x,y) pair arguments.
Note: The result is returned as either a In Radian angle mode:
degree or radian angle, according to the
current angle mode. R4Pq(3,2) ¸
R4Pq([3,-4,2],[0,pà4,1.5]) ¸

462 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 462 of 128
R4Pr() MATH/Angle menu
R4Pr (xExpression, yExpression) ⇒ expression In Radian angle mode:
R4Pr (xList, yList) ⇒ list
R4Pr (xMatrix, yMatrix) ⇒ matrix
R4Pr(3,2) ¸
R4Pr(x,y) ¸
Returns the equivalent r-coordinate of the R4Pr([3,-4,2],[0,pà4,1.5]) ¸
(x,y) pair arguments.

rand() MATH/Probability menu


rand([n]) ⇒ expression RandSeed 1147 ¸ Done

n is an integer ƒ zero. (Sets the random-number seed.)


With no parameter, returns the next random
number between 0 and 1 in the sequence. rand() ¸ .158...
When an argument is positive, returns a rand(6) ¸ 5
random integer in the interval [1, n]. rand(ë 100) ¸ ë 49
When an argument is negative, returns a
random integer in the interval [ë n,ë 1].

randMat() MATH/Probability menu


randMat(numRows, numColumns) ⇒ matrix RandSeed 1147 ¸ Done
8 ë3 6
Returns a matrix of integers between -9 and 9  
of the specified dimension. randMat(3,3) ¸ ë 2 3 ë6

 0 4 ë6
Both arguments must simplify to integers.
Note: The values in this matrix will
change each time you press ¸.

randNorm() MATH/Probability menu


randNorm(mean, sd) ⇒ expression RandSeed 1147 ¸ Done
randNorm(0,1) ¸ .492...
Returns a decimal number from the specific
normal distribution. It could be any real randNorm(3,4.5) ¸ ì3.543...
number but will be heavily concentrated in
the interval [mean-3ù sd, mean+3ù sd].

randPoly() MATH/Probability menu


randPoly(var, order) ⇒ expression RandSeed 1147 ¸ Done
randPoly(x,5) ¸
Returns a polynomial in var of the specified
ë 2ø x5+3ø x4ì 6ø x3+4ø xì 6
order. The coefficients are random integers
in the range ë 9 through 9. The leading
coefficient will not be zero.
order must be 0–99.

RandSeed MATH/Probability menu


RandSeed number RandSeed 1147 ¸ Done
rand() ¸ .158...
If number = 0, sets the seeds to the factory
defaults for the random-number generator. If
number ƒ 0, it is used to generate two seeds,
which are stored in system variables seed1
and seed2.

Appendix A: TI.89 Functions and Instructions 463

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 463 of 128
RclGDB CATALOG
RclGDB GDBvar RclGDB GDBvar ¸ Done

Restores all the settings stored in the Graph


database variable GDBvar.
For a listing of the settings, see StoGDB.
Note: It is necessary to have something
saved in GDBvar before you can restore it.

RclPic CATALOG
RclPic picVar [, row, column]

Displays the Graph screen and adds the


picture stored in picVar at the upper left-hand
corner pixel coordinates (row, column) using
OR logic.
picVar must be a picture data type.

Default coordinates are (0, 0).

real() MATH/Complex menu


real(expression1) ⇒ expression real(2+3i) ¸ 2
Returns the real part of the argument. real(z) ¸ z
Note: All undefined variables are treated as real(x+iy) ¸ x
real variables. See also imag().
real(list1) ⇒ list real({a+iù b,3,i}) ¸ {a 3 0}
Returns the real parts of all elements.
real(matrix1) ⇒ matrix a 3
real([a+iù b,3;c,i]) ¸ [c 0]
Returns the real parts of all elements.

4Rect MATH/Matrix/Vector ops menu


vector 4Rect [3,pà4,pà6]4Rect ¸
3ø ‡2 3ø ‡2 3ø ‡3
Displays vector in rectangular form [x, y, z]. [ 4 4 2
]
The vector must be of dimension 2 or 3 and
can be a row or a column. [a,b,c] ¸ [aø cos(b)ø sin(c)
Note: 4Rect is a display-format instruction, aø sin(b)ø sin(c) aø cos(c)]
not a conversion function. You can use it
only at the end of an entry line, and it does
not update ans.
Note: See also 4Polar.

464 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 464 of 128
complexValue 4Rect In Radian angle mode:
p
Displays complexValue in rectangular form 4e^(p/3)4Rect ¸ 4øe 3
a+bi. The complexValue can have any complex
form. However, an re iq entry causes an error (4p/3)4Rect ¸ 2+2ø 3øi
in Degree angle mode.
Note: You must use parentheses for an (rq)
polar entry. In Degree angle mode:
(460)4Rect ¸ 2+2ø 3øi

Note: To type 4Rect from the keyboard,


press 2 Ž for the 4 operator. To type ,
press 2 ’.

ref() MATH/Matrix menu


ref(matrix1[, tol]) ⇒ matrix ref([ë 2,ë 2,0,ë 6;1,ë 1,9,ë 9;ë 5,
2,4,ë 4]) ¸
Returns the row echelon form of matrix1.
1 ë 2/5 ë 4/5 4/5
 
Optionally, any matrix element is treated as
0 1 4/7 11/7 
zero if its absolute value is less than tol. This
tolerance is used only if the matrix has
 0 0 1 ë 62/71 
floating-point entries and does not contain
any symbolic variables that have not been
assigned a value. Otherwise, tol is ignored. a b c
[a,b,c;e,f,g]!m1 ¸ [ e f g]
• If you use ¥ ¸ or set the mode to
f g
Exact/Approx=APPROXIMATE, computations 1 e e 
are done using floating-point arithmetic.
ref(m1) ¸
 aøgì cøe
• If tol is omitted or not used, the default
0 1 
 aøfì bøe
tolerance is calculated as:
5Eë 14 ù max(dim(matrix1))
ù rowNorm(matrix1)

Note: See also rref().

remain() MATH/Number menu


remain(expression1, expression2) ⇒ expression remain(7,0) ¸ 7
remain(list1, list2) ⇒ list
remain(matrix1, matrix2) ⇒ matrix remain(7,3) ¸ 1

Returns the remainder of the first argument remain(ë 7,3) ¸ ë1


with respect to the second argument as
defined by the identities: remain(7,ë 3) ¸ 1

remain(x,0)  x remain(ë 7,ë 3) ¸ ë1


remain(x,y)  xì yùiPart(x/y)
remain({12,ë 14,16},{9,7,ë 5})
¸
{3 0 1}
As a consequence, note that remain(ì x,y)  remain([9,ë 7;6,4],[4,3;4,ë 3])
ì remain(x,y). The result is either zero or it ¸
has the same sign as the first argument.
1 ë1
Note: See also mod(). [ ]
2 1

Appendix A: TI.89 Functions and Instructions 465

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 465 of 128
Rename CATALOG
Rename oldVarName, newVarName {1,2,3,4}! L1 ¸ {1,2,3,4}
Rename L1, list1 ¸ Done
Renames the variable oldVarName as
list1 ¸ {1,2,3,4}
newVarName.

Request CATALOG
Request promptString, var Request "Enter Your Name",str1
¸
If Request is inside a Dialog...EndDlog
construct, it creates an input box for the user
to type in data. If it is a stand-alone
instruction, it creates a dialog box for this
input. In either case, if var contains a string, it
is displayed and highlighted in the input box
as a default choice. promptString must be { 20
characters.
This instruction can be stand-alone or part of
a dialog construct.

Return CATALOG
Return [expression] Define factoral(nn)=Func
:local answer,count:1! answer
Returns expression as the result of the :For count,1,nn
function. Use within a Func...EndFunc block, :answerù count! answer:EndFor
or Prgm...EndPrgm block. :Return answer:EndFunc ¸ Done
Note: Use Return without an argument to factoral(3) ¸ 6
exit a program.
Note: Enter the text as one long line on the
Home screen (without line breaks).

right() MATH/List menu


right(list1[, num]) ⇒ list right({1,3,ë 2,4},3) ¸
{3 ë 2 4}
Returns the rightmost num elements
contained in list1.
If you omit num, returns all of list1.
right(sourceString[, num]) ⇒ string right("Hello",2) ¸ "lo"

Returns the rightmost num characters


contained in character string sourceString.
If you omit num, returns all of sourceString.
right(comparison) ⇒ expression right(x<3) ¸ 3

Returns the right side of an equation or


inequality.

rotate() MATH/Base menu


rotate(integer1[,#ofRotations]) ⇒ integer In Bin base mode:
Rotates the bits in a binary integer. You can rotate(0b1111010110000110101)
enter integer1 in any number base; it is ¸
converted automatically to a signed, 32-bit 0b10000000000000111101011000011010
binary form. If the magnitude of integer1 is
too large for this form, a symmetric modulo rotate(256,1) ¸ 0b1000000000
operation brings it within the range.

466 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 466 of 128
If #of Rotations is positive, the rotation is to In Hex base mode:
the left. If #of Rotations is negative, the
rotation is to the right. The default is ë 1 rotate(0h78E) ¸ 0h3C7
(rotate right one bit). rotate(0h78E,ë 2) ¸ 0h800001E3
For example, in a right rotation:
rotate(0h78E,2) ¸ 0h1E38

Each bit rotates right. Important: To enter a binary or


hexadecimal number, always use the 0b
0b00000000000001111010110000110101
or 0h prefix (zero, not the letter O).
Rightmost bit rotates to leftmost.

produces:
0b10000000000000111101011000011010
The result is displayed according to the Base
mode.
rotate(list1[,#ofRotations]) ⇒ list In Dec base mode:
Returns a copy of list1 rotated right or left by rotate({1,2,3,4}) ¸
#of Rotations elements. Does not alter list1. {4 1 2 3}
If #of Rotations is positive, the rotation is to rotate({1,2,3,4},ë 2) ¸
the left. If #of Rotations is negative, the {3 4 1 2}
rotation is to the right. The default is ë 1
(rotate right one element). rotate({1,2,3,4},1) ¸
{2 3 4 1}

rotate(string1[,#ofRotations]) ⇒ string rotate("abcd") ¸ "dabc"

Returns a copy of string1 rotated right or left rotate("abcd",ë 2) ¸ "cdab"


by #of Rotations characters. Does not alter
string1. rotate("abcd",1) ¸ "bcda"
If #of Rotations is positive, the rotation is to
the left. If #of Rotations is negative, the
rotation is to the right. The default is ë 1
(rotate right one character).

round() MATH/Number menu


round(expression1[, digits]) ⇒ expression round(1.234567,3) ¸ 1.235

Returns the argument rounded to the


specified number of digits after the decimal
point.
digits must be an integer in the range 0–12. If
digits is not included, returns the argument
rounded to 12 significant digits.
Note: Display digits mode may affect how
this is displayed.
round(list1[, digits]) ⇒ list round({p,‡(2),ln(2)},4) ¸
{3.1416 1.4142 .6931}
Returns a list of the elements rounded to the
specified number of digits.
round(matrix1[, digits]) ⇒ matrix round([ln(5),ln(3);p,e^(1)],1)
¸
Returns a matrix of the elements rounded to
the specified number of digits. 1.6 1.1
[3.1 2.7]

Appendix A: TI.89 Functions and Instructions 467

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 467 of 128
rowAdd() MATH/Matrix/Row ops menu
rowAdd(matrix1, rIndex1, rIndex2) ⇒ matrix rowAdd([3,4;ë 3,ë 2],1,2) ¸
3 4
Returns a copy of matrix1 with row rIndex2 [ 0 2]
replaced by the sum of rows rIndex1 and
rIndex2. rowAdd([a,b;c,d],1,2) ¸
a b
[a+c b+d]

rowDim() MATH/Matrix/Dimensions menu


⇒ 1 2
rowDim(matrix) expression
[1,2;3,4;5,6]! M1 ¸ 3 4
Returns the number of rows in matrix. 5 6
rowdim(M1) ¸ 3
Note: See also colDim().

rowNorm() MATH/Matrix/Norms menu


rowNorm(matrix) ⇒ expression rowNorm([-5,6,-7;3,4,9;9,-9,-7])
¸ 25
Returns the maximum of the sums of the
absolute values of the elements in the rows in
matrix.

Note: All matrix elements must simplify to


numbers. See also colNorm().

rowSwap() MATH/Matrix/Row ops menu


rowSwap(matrix1, rIndex1, rIndex2) ⇒ matrix [1,2;3,4;5,6]! Mat ¸
1 2
Returns matrix1 with rows rIndex1 and 3 4
rIndex2 exchanged. 5 6
rowSwap(Mat,1,3) ¸
5 6
3 4
1 2
RplcPic CATALOG
RplcPic picVar[, row][, column]

Clears the Graph screen and places picture


picVar at pixel coordinates (row, column). If
you do not want to clear the screen, use
RclPic.

picVar must be a picture data type variable.


row and column, if included, specify the pixel
coordinates of the upper left corner of the
picture. Default coordinates are (0, 0).
Note: For less than full-screen pictures, only
the area affected by the new picture is
cleared.

rref() MATH/Matrix menu


rref(matrix1[, tol]) ⇒ matrix rref([ë 2,ë 2,0,ë 6;1,ë 1,9,ë 9;
ë 5,2,4,ë 4]) ¸
Returns the reduced row echelon form of
1 0 0 66/71
matrix1.
 147 
0 1 0 
0 ë 62/71
71
 0 1 

468 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 468 of 128
Optionally, any matrix element is treated as rref([a,b,x;c,d,y]) ¸
zero if its absolute value is less than tol. This
tolerance is used only if the matrix has dø x-bø y
floating-point entries and does not contain 1 0 aø d-bø c 
any symbolic variables that have not been
 ë (cø x-aø y)
0 
assigned a value. Otherwise, tol is ignored.
1 aø d-bø c
• If you use ¥ ¸ or set the mode to
Exact/Approx=APPROXIMATE, computations
are done using floating-point arithmetic.
• If tol is omitted or not used, the default
tolerance is calculated as:
5Eë 14 ù max(dim(matrix1))
ù rowNorm(matrix1)

Note: See also ref().

Send CATALOG
Send list Program segment:
CBL (Calculator-Based Laboratory) ©
instruction. Sends list to the link port. :Send {1,0}
:Send {1,2,1}
©

SendCalc CATALOG
SendCalc var Program segment:
Sends variable var to the link port, where ©
another unit linked to that port can receive :a+b! x
the variable value. The receiving unit must be :SendCalc x
on the Home screen or must execute GetCalc ©
from a program.
If you send from a TI-89 or TI-92 Plus to a
TI-92, an error occurs if the TI-92 executes
GetCalc from a program. In this case, the
sending unit must use SendChat instead.

SendChat CATALOG
SendChat var Program segment:
A general alternative to SendCalc, this is ©
useful if the receiving unit is a TI-92 (or for a :a+b! x
generic "chat" program that allows either a :SendChat x
TI-92 or TI-92 Plus to be used). Refer to ©
SendCalc for more information.

SendChat sends a variable only if that


variable is compatible with the TI-92, which
is typically true in "chat" programs. However,
SendChat will not send an archived variable,
a TI-89 graph data base, etc.

Appendix A: TI.89 Functions and Instructions 469

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 469 of 128
seq() MATH/List menu
seq(expression, var, low, high[, step]) ⇒ list seq(n^2,n,1,6) ¸
{1 4 9 16 25 36}
Increments var from low through high by an
increment of step, evaluates expression, and seq(1/n,n,1,10,2) ¸
returns the results as a list. The original {1 1/3 1/5 1/7 1/9}
contents of var are still there after seq() is
completed. sum(seq(1àn^2,n,1,10,1)) ¸

var cannot be a system variable. 196...


127...
The default value for step = 1.
or press ¥ ¸ to get: 1.549...

setFold() CATALOG
setFold(newfolderName) ⇒ oldfolderString newFold chris ¸ Done

Returns the name of the current folder as a setFold(main) ¸ "chris"


string and sets newfolderName as the current
folder. setFold(chris)! oldfoldr ¸
"main"
The folder newfolderName must exist.
1! a ¸ 1

setFold(#oldfoldr) ¸ "chris"

a¸ a

chris\a ¸ 1

setGraph() CATALOG
setGraph(modeNameString, settingString) ⇒ string setGraph("Graph Order","Seq")
¸ "SEQ"
Sets the Graph mode modeNameString to
settingString, and returns the previous setting setGraph("Coordinates","Off")
of the mode. Storing the previous setting lets ¸ "RECT"
you restore it later.
Note: Capitalization and blank spaces are
modeNameString is a character string that optional when entering mode names.
specifies which mode you want to set. It must
be one of the mode names from the table
below.
settingString is a character string that
specifies the new setting for the mode. It
must be one of the settings listed below for
the specific mode you are setting.

Mode Name Settings


"Coordinates" "Rect", "Polar", "Off"
"Graph Order" "Seq", "Simul" 1
"Grid" "Off", "On" 2
"Axes" "Off", "On" (not 3D graph mode)
"Off", "Axes", "Box" (3D graph mode)
"Leading Cursor" "Off", "On" 2
"Labels" "Off", "On"
"Style" "Wire Frame", "Hidden Surface", "Contour Levels", "Wire and Contour",
"Implicit Plot" 3
"Seq Axes" "Time", "Web", "U1-vs-U2" 4

470 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 470 of 128
"DE Axes" "Time", "t-vs-y' ", "y-vs-y' ", "y1-vs-y2", "y1-vs-y2' ", "y1'-vs-y2' " 5
Tip: To type a prime symbol ( ' ), press 2 È.
"Solution Method" "RK", "Euler" 5

"Fields" "SlpFld", "DirFld", "FldOff" 5

1Notavailable in Sequence, 3D, or Diff Equations graph mode.


2Notavailable in 3D graph mode.
3Applies only to 3D graph mode.
4Applies only to Sequence graph mode.
5Applies only to Diff Equations graph mode.

setMode() CATALOG
setMode(modeNameString, settingString) ⇒ string setMode("Angle","Degree")
setMode(list) ⇒ stringList ¸ "RADIAN"
Sets mode modeNameString to the new setting ‡2
settingString, and returns the current setting
sin(45) ¸ 2
of that mode.
setMode("Angle","Radian")
modeNameString is a character string that ¸ "DEGREE"
specifies which mode you want to set. It must
be one of the mode names from the table ‡2
sin(pà4) ¸ 2
below.
settingString is a character string that setMode("Display Digits",
specifies the new setting for the mode. It "Fix 2") ¸ "FLOAT"
must be one of the settings listed below for p ¥¸ 3.14
the specific mode you are setting.
list contains pairs of keyword strings and setMode ("Display Digits",
will set them all at once. This is "Float") ¸ "FIX 2"
recommended for multiple-mode changes. p ¥¸ 3.141...
The example shown may not work if each of
the pairs is entered with a separate setMode()
setMode ({"Split Screen",
in the order shown.
"Left-Right","Split 1 App",
Use setMode(var) to restore settings saved "Graph","Split 2 App","Table"})
with getMode("ALL")! var. ¸
{"Split 2 App" "Graph"
Note: To set or return information about the "Split 1 App" "Home"
Unit System mode, use setUnits() or getUnits() "Split Screen" "FULL"}
instead of setMode() or getMode().
Note: Capitalization and blank spaces are
optional when entering mode names.
Also, the results in these examples may be
different on your unit.

Mode Name Settings


"Graph" "Function", "Parametric", "Polar", "Sequence", "3D", "Diff Equations"
"Display Digits" "Fix 0", "Fix 1", ..., "Fix 12", "Float", "Float 1", ..., "Float 12"
"Angle" "Radian", "Degree"
"Exponential Format" "Normal", "Scientific", "Engineering"
"Complex Format" "Real", "Rectangular", "Polar"
"Vector Format" "Rectangular", "Cylindrical", "Spherical"
"Pretty Print" "Off", "On"
"Split Screen" "Full", "Top-Bottom", "Left-Right"

Appendix A: TI.89 Functions and Instructions 471

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 471 of 128
"Split 1 App" "Home", "Y= Editor", "Window Editor", "Graph", "Table", "Data/Matrix
Editor", "Program Editor", "Text Editor", "Numeric Solver"
"Split 2 App" "Home", "Y= Editor", "Window Editor", "Graph", "Table", "Data/Matrix
Editor", "Program Editor", "Text Editor", "Numeric Solver"
"Number of Graphs" "1", "2"
"Graph2" "Function", "Parametric", "Polar", "Sequence", "3D", "Diff Equations"
"Exact/Approx" "Auto", "Exact", "Approximate"
"Base" "Dec", "Hex", "Bin"

setTable() CATALOG
setTable(modeNameString, settingString) ⇒ string setTable("Graph <ì >
Table","ON")
Sets the table parameter modeNameString to ¸ "OFF"
settingString, and returns the previous setting
of the parameter. Storing the previous setting setTable("Independent","AUTO")
lets you restore it later. ¸ "ASK"
modeNameString is a character string that ¥&
specifies which parameter you want to set. It
must be one of the parameters from the table
below.
settingString is a character string that
specifies the new setting for the parameter. It
must be one of the settings listed below for
the specific parameter you are setting. Note: Capitalization and blank spaces
are optional when entering parameters.

Parameter Name Settings


"Graph <-> Table" "Off", "On"
"Independent" "Auto", "Ask"

setUnits() CATALOG
setUnits(list1) ⇒ list All unit names must begin with an
underscore _ ( ¥  ). You can also select
Sets the default units to the values specified units from a menu by pressing 2 9.
in list1, and returns a list of the previous
defaults. setUnits({"SI"}) ¸
{"SI" "Area" "NONE"
• To specify the built-in SI (metric) or "Capacitance" "_F" ...}
ENG/US system, list1 uses the form:
{"SI"} or {"ENG/US"}
setUnits({"CUSTOM","Length",
• To specify a custom set of default units, "_cm","Mass","_gm"}) ¸
list1 uses the form: {"SI" "Length" "_m"
"Mass" "_kg" ...}
{"CUSTOM", "cat1", "unit1" [ , "cat2", "unit2", …]}
Note: Your screen may display different
where each cat and unit pair specifies a units.
category and its default unit. (You can
specify built-in units only, not user-defined
units.) Any category not specified will use
its previous custom unit.

472 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 472 of 128
• To return to the previous custom default
units, list1 uses the form:
{"CUSTOM"}
If you want different defaults depending on
the situation, create separate lists and save
them to unique list names. To use a set of
defaults, specify that list name in setUnits().
You can use setUnits() to restore settings
previously saved with setUnits() ! var or with
getUnits() ! var.

Shade CATALOG
Shade expr1, expr2, [xlow], [xhigh], [pattern], [patRes] In the ZoomTrig viewing window:
Displays the Graph screen, graphs expr1 and Shade cos(x),sin(x) ¸
expr2, and shades areas in which expr1 is less
than expr2. (expr1 and expr2 must be
expressions that use x as the independent
variable.)
xlow and xhigh, if included, specify left and
right boundaries for the shading. Valid inputs
are between xmin and xmax. Defaults are xmin "
and xmax.
ClrDraw ¸ Done
pattern specifies one of four shading patterns: Shade cos(x),sin(x),0,5 ¸
1 = vertical (default)
2 = horizontal
3 = negative-slope 45¡
4 = positive-slope 45¡
patRes specifies the resolution of the shading
patterns:
1= solid shading "
2= 1 pixel spacing (default) ClrDraw ¸ Done
3= 2 pixels spacing Shade cos(x),sin(x),0,5,2 ¸
©
10= 9 pixels spacing
Note: Interactive shading is available on the
Graph screen through the Shade instruction.
Automatic shading of a specific function is
available through the Style instruction. Shade
is not valid in 3D graphing mode. "
ClrDraw ¸ Done
Shade cos(x),sin(x),0,5,2,1
¸

Appendix A: TI.89 Functions and Instructions 473

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 473 of 128
shift() CATALOG
shift(integer1[,#ofShifts]) ⇒ integer In Bin base mode:
Shifts the bits in a binary integer. You can shift(0b1111010110000110101)
enter integer1 in any number base; it is ¸
converted automatically to a signed, 32-bit 0b111101011000011010
binary form. If the magnitude of integer1 is
shift(256,1) ¸
too large for this form, a symmetric modulo
operation brings it within the range. 0b1000000000

If #ofShifts is positive, the shift is to the left. If In Hex base mode:


#ofShifts is negative, the shift is to the right. shift(0h78E) ¸ 0h3C7
The default is ë 1 (shift right one bit).
shift(0h78E,ë 2) ¸ 0h1E3
In a right shift, the rightmost bit is dropped
and 0 or 1 is inserted to match the leftmost shift(0h78E,2) ¸ 0h1E38
bit. In a left shift, the leftmost bit is dropped
and 0 is inserted as the rightmost bit.
For example, in a right shift: Important: To enter a binary or
hexadecimal number, always use the 0b
or 0h prefix (zero, not the letter O).

Each bit shifts right.


0b00000000000001111010110000110101

Inserts 0 if leftmost bit is 0, Dropped


or 1 if leftmost bit is 1.
produces:
0b00000000000000111101011000011010
The result is displayed according to the Base
mode. Leading zeros are not shown.
shift(list1 [,#ofShifts]) ⇒ list In Dec base mode:
Returns a copy of list1 shifted right or left by shift({1,2,3,4}) ¸
#ofShifts elements. Does not alter list1. {undef 1 2 3}
If #ofShifts is positive, the shift is to the left. If shift({1,2,3,4},ë 2) ¸
#ofShifts is negative, the shift is to the right. {undef undef 1 2}
The default is ë 1 (shift right one element).
shift({1,2,3,4},1) ¸
Elements introduced at the beginning or end {2 3 4 undef}
of list by the shift are set to the symbol
“undef”.
shift(string1 [,#ofShifts]) ⇒ string shift("abcd") ¸ " abc"

Returns a copy of string1 shifted right or left shift("abcd",ë 2) ¸ " ab"


by #ofShifts characters. Does not alter string1.
shift("abcd",1) ¸ "bcd "
If #ofShifts is positive, the shift is to the left. If
#ofShifts is negative, the shift is to the right.
The default is ë 1 (shift right one character).
Characters introduced at the beginning or
end of string by the shift are set to a space.

474 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 474 of 128
ShowStat CATALOG
ShowStat {1,2,3,4,5}! L1 ¸ {1 2 3 4 5}
{0,2,6,10,25}! L2 ¸
Displays a dialog box containing the last
computed statistics results if they are still {0 2 6 10 25}
valid. Statistics results are cleared TwoVar L1,L2 ¸
automatically if the data to compute them ShowStat ¸
has changed.
Use this instruction after a statistics
calculation, such as LinReg.

sign() MATH/Number menu


sign(expression1) ⇒ expression sign(ë 3.2) ¸ ë 1.
sign(list1) ⇒ list
sign(matrix1) ⇒ matrix sign({2,3,4,ë 5}) ¸
{1 1 1 ë 1}
For real and complex expression1, returns
expression1/abs(expression1) when sign(1+abs(x)) ¸ 1
expression1ƒ 0.

Returns 1 if expression1 is positive.


Returns ë 1 if expression1 is negative. If complex format mode is REAL:
sign(0) returns „1 if the complex format
mode is REAL; otherwise, it returns itself. sign([ë 3,0,3]) ¸ [ë 1 „1 1]
sign(0) represents the unit circle in the
complex domain.
For a list or matrix, returns the signs of all
the elements.

simult() MATH/Matrix menu


simult(coeffMatrix, constVector[, tol]) ⇒ matrix Solve for x and y: x + 2y = 1
3x + 4y = ë 1
Returns a column vector that contains the
solutions to a system of linear equations. simult([1,2;3,4],[1;ë 1]) ¸
ë3
coeffMatrix must be a square matrix that [ ]
contains the coefficients of the equations. 2

constVector must have the same number of The solution is x=ë 3 and y=2.
rows (same dimension) as coeffMatrix and
contain the constants. Solve: ax + by = 1
Optionally, any matrix element is treated as cx + dy = 2
zero if its absolute value is less than tol. This a b
tolerance is used only if the matrix has [a,b;c,d]! matx1 ¸ [c d]
floating-point entries and does not contain simult(matx1,[1;2]) ¸
any symbolic variables that have not been ë (2ø bì d)
assigned a value. Otherwise, tol is ignored.

aø dì bø c 
• If you use ¥ ¸ or set the mode to 2ø aì c 
Exact/Approx=APPROXIMATE, computations
are done using floating-point arithmetic. 
aø dì bø c 
• If tol is omitted or not used, the default
tolerance is calculated as:
5Eë 14 ù max(dim(coeffMatrix))
ù rowNorm(coeffMatrix)

Appendix A: TI.89 Functions and Instructions 475

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 475 of 128
simult(coeffMatrix, constMatrix[, tol]) ⇒ matrix Solve: x + 2y = 1 x + 2y = 2
3x + 4y = ë 1 3x + 4y = ë 3
Solves multiple systems of linear equations,
where each system has the same equation simult([1,2;3,4],[1,2;ë 1,ë 3])
coefficients but different constants. ¸

Each column in constMatrix must contain the ë3 ë7


constants for a system of equations. Each [ ]
2 9/2
column in the resulting matrix contains the
solution for the corresponding system. For the first system, x=ë 3 and y=2. For
the second system, x=ë 7 and y=9/2.

sin() 2 W key
sin(expression1) ⇒ expression In Degree angle mode:
sin(list1) ⇒ list
‡2
sin(expression1) returns the sine of the sin((p/4)ô ) ¸ 2
argument as an expression.
sin(list1) returns a list of the sines of all
‡2
sin(45) ¸ 2
elements in list1.
Note: The argument is interpreted as either a ‡3
degree or radian angle, according to the sin({0,60,90}) ¸ {0 2 1}
current angle mode. You can use ó or ô to
override the angle mode setting temporarily. In Radian angle mode:
‡2
sin(p/4) ¸ 2

‡2
sin(45¡) ¸ 2

sin(squareMatrix1) ⇒ squareMatrix In Radian angle mode:


Returns the matrix sine of squareMatrix1. This sin([1,5,3;4,2,1;6,ë 2,1]) ¸
is not the same as calculating the sine of each
.942… ë.045… ë.031…
element. For information about the
 
calculation method, refer to cos().
ë.045… .949… ë.020…

squareMatrix1 must be diagonalizable. The ë.048… ë.005… .961… 
result always contains floating-point
numbers.

sinê () ¥ Q key
sinê (expression1) ⇒ expression In Degree angle mode:
sinê (list1) ⇒ list sinê (1) ¸ 90
sinê (expression1) returns the angle whose
sine is expression1 as an expression. In Radian angle mode:
sinê ({0,.2,.5}) ¸
sinê (list1) returns a list of the inverse sines of
each element of list1. {0 .201... .523...}

Note: The result is returned as either a


degree or radian angle, according to the
current angle mode setting.

476 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 476 of 128
sinê(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular
complex format mode:
Returns the matrix inverse sine of
squareMatrix1. This is not the same as sinê([1,5,3;4,2,1;6,ë 2,1]) ¸
calculating the inverse sine of each element.
ë.164…ì.064…øi
 
For information about the calculation 1.490…ì 2.105…øi …
method, refer to cos().
.725…ì 1.515…øi .947…ì.778…øi … 
squareMatrix1 must be diagonalizable. The 2.083…ì 2.632…øi ë 1.790…+1.271…øi … 
result always contains floating-point
numbers.

sinh() MATH/Hyperbolic menu


sinh(expression1) ⇒ expression sinh(1.2) ¸ 1.509...
sinh(list1) ⇒ list
sinh({0,1.2,3.}) ¸
sinh (expression1) returns the hyperbolic sine {0 1.509... 10.017...}
of the argument as an expression.
sinh (list) returns a list of the hyperbolic sines
of each element of list1.
sinh(squareMatrix1) ⇒ squareMatrix In Radian angle mode:
Returns the matrix hyperbolic sine of sinh([1,5,3;4,2,1;6,ë 2,1]) ¸
squareMatrix1. This is not the same as
360.954 305.708 239.604
calculating the hyperbolic sine of each
352.912 233.495 193.564
element. For information about the
calculation method, refer to cos().
298.632 154.599 140.251

squareMatrix1 must be diagonalizable. The


result always contains floating-point
numbers.

sinhê () MATH/Hyperbolic menu


sinhê (expression1) ⇒ expression sinhê (0) ¸ 0
sinhê (list1) ⇒ list
sinhê ({0,2.1,3}) ¸
sinhê (expression1) returns the inverse
{0 1.487... sinhê (3)}
hyperbolic sine of the argument as an
expression.
sinhê (list1) returns a list of the inverse
hyperbolic sines of each element of list1.
sinhê(squareMatrix1) ⇒ squareMatrix In Radian angle mode:
Returns the matrix inverse hyperbolic sine of sinhê([1,5,3;4,2,1;6,ë 2,1])
squareMatrix1. This is not the same as ¸
calculating the inverse hyperbolic sine of
.041… 2.155… 1.158…
each element. For information about the 1.463… 
calculation method, refer to cos(). 2.750… .926… .112… 
 ë 1.528… .572… 
squareMatrix1 must be diagonalizable. The
result always contains floating-point
numbers.

Appendix A: TI.89 Functions and Instructions 477

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 477 of 128
SinReg MATH/Statistics/Regressions menu
SinReg list1, list2 [ , [iterations] , [ period] [, list3, list4] ] In function graphing mode:
Calculates the sinusoidal regression and seq(x,x,1,361,30)! L1 ¸
updates all the system statistics variables. {1 31 61 …}
{5.5,8,11,13.5,16.5,19,19.5,17,
All the lists must have equal dimensions 14.5,12.5,8.5,6.5,5.5}! L2 ¸
except for list4.
{5.5 8 11 …}
list1 represents xlist. SinReg L1,L2 ¸ Done
list2 represents ylist. ShowStat ¸
list3 represents category codes.
list4 represents category include list.

iterations specifies the maximum number of


times (1 through 16) a solution will be
attempted. If omitted, 8 is used. Typically,
larger values result in better accuracy but
longer execution times, and vice versa.
¸
period specifies an estimated period. If regeq(x)! y1(x) ¸ Done
omitted, the difference between values in
list1 should be equal and in sequential order.
NewPlot 1,1,L1,L2 ¸ Done
If you specify period, the differences between ¥%
x values can be unequal. „9
Note: list1 through list3 must be a variable
name or c1–c99 (columns in the last data
variable shown in the Data/Matrix Editor).
list4 does not have to be a variable name and
cannot be c1–c99.
The output of SinReg is always in radians,
regardless of the angle mode setting.

solve() MATH/Algebra menu


solve(equation, var) ⇒ Boolean expression solve(aù x^2+bù x+c=0,x) ¸
solve(inequality, var) ⇒ Boolean expression
bñ -4ø aø c-b
Returns candidate real solutions of an equation x=
or an inequality for var. The goal is to return 2ø a
candidates for all solutions. However, there
might be equations or inequalities for which the ë bñ -4ø aø c+b
number of solutions is infinite. or x = 2ø a

Solution candidates might not be real finite ans(1)| a=1 and b=1 and c=1
solutions for some combinations of values for ¸
undefined variables. Error: Non-real result
For the AUTO setting of the Exact/Approx mode, solve((xì a)e^(x)=ë xù (xì a),x)
the goal is to produce exact solutions when ¸
they are concise, and supplemented by iterative x = a or x =ë.567...
searches with approximate arithmetic when
exact solutions are impractical.
Due to default cancellation of the greatest (x+1)(xì 1)/(xì 1)+xì 3 ¸
common divisor from the numerator and 2ø xì 2
denominator of ratios, solutions might be solve(entry(1)=0,x) ¸ x=1
solutions only in the limit from one or both
entry(2)|ans(1) ¸ undef
sides.
limit(entry(3),x,1) ¸ 0

For inequalities of types ‚, , <, or >, explicit solve(5xì 2 ‚ 2x,x) ¸ x ‚ 2/3


solutions are unlikely unless the inequality is
linear and contains only var.

478 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 478 of 128
For the EXACT setting of the Exact/Approx mode, exact(solve((xì a)e^(x)=ë xù
portions that cannot be solved are returned as (xì a),x)) ¸
an implicit equation or inequality.
e x + x = 0 or x = a

Use the “|” operator to restrict the solution In Radian angle mode:
interval and/or other variables that occur in the
equation or inequality. When you find a solution solve(tan(x)=1/x,x)|x>0 and x<1
in one interval, you can use the inequality ¸ x =.860...
operators to exclude that interval from
subsequent searches.
false is returned when no real solutions are solve(x=x+1,x) ¸ false
found. true is returned if solve() can determine
that any finite real value of var satisfies the solve(x=x,x) ¸ true
equation or inequality.
Since solve() always returns a Boolean result, 2xì 11 and solve(x^2ƒ9,x) ¸
you can use “and,” “or,” and “not” to combine x  1 and x ƒ ë 3
results from solve() with each other or with
other Boolean expressions.
Solutions might contain a unique new In Radian angle mode:
undefined variable of the form @nj with j being
an integer in the interval 1–255. Such variables solve(sin(x)=0,x) ¸ x = @n1ø p
designate an arbitrary integer.
In real mode, fractional powers having odd solve(x^(1/3)=ë 1,x) ¸ x = ë1
denominators denote only the real branch.
Otherwise, multiple branched expressions such solve(‡(x)=ë 2,x) ¸ false
as fractional powers, logarithms, and inverse
trigonometric functions denote only the solve(ë ‡(x)=ë 2,x) ¸ x=4
principal branch. Consequently, solve()
produces only solutions corresponding to that
one real or principal branch.
Note: See also cSolve(), cZeros(), nSolve(), and
zeros().

solve(equation1 and equation2 [and … ], {varOrGuess1, solve(y=x^2ì 2 and


varOrGuess2 [, … ]}) ⇒ Boolean expression x+2y=ë 1,{x,y}) ¸
Returns candidate real solutions to the x=1 and y=ë 1
simultaneous algebraic equations, where or x=ë 3/2 and y=1/4
each varOrGuess specifies a variable that you
want to solve for.
Optionally, you can specify an initial guess
for a variable. Each varOrGuess must have the
form:
variable
– or –
variable = real or non-real number

For example, x is valid and so is x=3.

Appendix A: TI.89 Functions and Instructions 479

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 479 of 128
If all of the equations are polynomials and if
you do NOT specify any initial guesses,
solve() uses the lexical Gröbner/Buchberger
elimination method to attempt to determine
all real solutions.
For example, suppose you have a circle of
radius r at the origin and another circle of
radius r centered where the first circle
crosses the positive x-axis. Use solve() to find
the intersections.
As illustrated by r in the example to the right, solve(x^2+y^2=r^2 and
simultaneous polynomial equations can have (xì r)^2+y^2=r^2,{x,y}) ¸
extra variables that have no values, but r 3ør
represent given numeric values that could be x= and y=
2 2
substituted later. ë 3ør
r
or x= and y=
2 2
You can omit solution variables whose values solve(x^2+y^2=r^2 and
are not of interest, as in the example to the (xì r)^2+y^2=r^2,{x}) ¸
right. r
x=
2
You can also (or instead) include solution solve(x^2+y^2=r^2 and
variables that do not appear in the equations. (xì r)^2+y^2=r^2,{x,y,z}) ¸
For example, you can include z as a solution r 3ør
variable to extend the previous example to x= and y= and z=@1
2 2
two parallel intersecting cylinders of radius r. ë 3ør
r
The cylinder solutions illustrate how families or x= and y= and z=@1
2 2
of solutions might contain arbitrary constants
of the form @k, where k is an integer suffix
from 1 through 255. The suffix resets to 1
when you use ClrHome or ƒ 8:Clear Home.
For polynomial systems, computation time or
memory exhaustion may depend strongly on
the order in which you list solution variables.
If your initial choice exhausts memory or
your patience, try rearranging the variables in
the equations and/or varOrGuess list.
If you do not include any guesses and if any solve(x+e^(z)ù y=1 and
equation is non-polynomial in any variable xì y=sin(z),{x,y}) ¸
but all equations are linear in the solution
variables, solve() uses Gaussian elimination ezøsin(z)+1 ë (sin(z)ì 1
to attempt to determine all real solutions. x= and y=
e z +1 e z +1

If a system is neither polynomial in all of its solve(e^(z)ù y=1 and


variables nor linear in its solution variables, ë y=sin(z),{y,z}) ¸
solve() determines at most one solution using
y=.041… and z=3.183…
an approximate iterative method. To do so,
the number of solution variables must equal
the number of equations, and all other
variables in the equations must simplify to
numbers.

480 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 480 of 128
Each solution variable starts at its guessed solve(e^(z)ù y=1 and
value if there is one; otherwise, it starts at ë y=sin(z),{y,z=2p}) ¸
0.0.
y=.001… and z=6.281…
Use guesses to seek additional solutions one
by one. For convergence, a guess may have
to be rather close to a solution.

SortA MATH/List men


SortA listName1[, listName2] [, listName3] ... {2,1,4,3}! list1 ¸ {2,1,4,3}
SortA vectorName1[, vectorName2] [, vectorName3] ... SortA list1 ¸ Done
Sorts the elements of the first argument in list1 ¸ {1 2 3 4}
ascending order. {4,3,2,1}! list2 ¸ {4 3 2 1}
If you include additional arguments, sorts the SortA list2,list1 ¸ Done
elements of each so that their new positions
match the new positions of the elements in list2 ¸ {1 2 3 4}
the first argument. list1 ¸ {4 3 2 1}

All arguments must be names of lists or


vectors. All arguments must have equal
dimensions.

SortD MATH/List menu


SortD listName1[, listName2] [, listName3] ... {2,1,4,3}! list1 ¸ {2 1 4 3}
SortD vectorName1[,vectorName 2] [,vectorName 3] ... {1,2,3,4}! list2 ¸ {1 2 3 4}
Identical to SortA, except SortD sorts the SortD list1,list2 ¸ Done
elements in descending order. list1 ¸ {4 3 2 1}
list2 ¸ {3 4 1 2}

4Sphere MATH/Matrix/Vector ops menu


vector 4Sphere [1,2,3]4Sphere
¥ ¸ [3.741... 1.107... .640...]
Displays the row or column vector in
spherical form [r q f]. [2,pà4,3]4Sphere
¥¸ [3.605... .785... .588...]
vector must be of dimension 3 and can be
p 3ø ‡13
either a row or a column vector.
¸ [‡13 4 cosê ( 13 )]
Note: 4Sphere is a display-format instruction,
Z
not a conversion function. You can use it
only at the end of an entry line. φ
(ρ,θ,φ)

stdDev() MATH/Statistics menu


stdDev(list) ⇒ expression stdDev({a,b,c}) ¸
stdDev({1,2,5,ë 6,3,ë 2}) ¸
Returns the standard deviation of the
elements in list.
Note: list must have at least two elements.

Appendix A: TI.89 Functions and Instructions 481

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 481 of 128
stdDev(matrix1) ⇒ matrix stdDev([1,2,5;-3,0,1;.5,.7,3])
¸
Returns a row vector of the standard [2.179... 1.014... 2]
deviations of the columns in matrix1.
Note: matrix1 must have at least two rows.

StoGDB CATALOG
StoGDB GDBvar

Creates a Graph database (GDB) variable


that contains the current:
* Graphing mode
* Y= functions
* Window variables
* Graph format settings
1- or 2-Graph setting (split screen and ratio
settings if 2-Graph mode)
Angle mode
Real/complex mode
* Initial conditions if Sequence or
Diff Equations mode
* Table flags
* tblStart, @tbl, tblInput
You can use RclGDB GDBvar to restore the
graph environment.
*Note: These items are saved for both graphs
in 2-Graph mode.

Stop CATALOG
Stop Program segment:
Used as a program instruction to stop ©
program execution. For i,1,10,1
If i=5
Stop
EndFor
©

StoPic CATALOG
StoPic picVar [, pxlRow, pxlCol] [, width, height]

Displays the graph screen and copies a


rectangular area of the display to the variable
picVar.

pxlRow and pxlCol, if included, specify the


upper-left corner of the area to copy (defaults
are 0, 0).
width and height, if included, specify the
dimensions, in pixels, of the area. Defaults
are the width and height, in pixels, of the
current graph screen.

Store See !, page 512.

482 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 482 of 128
string() MATH/String menu
string(expression) ⇒ string string(1.2345) ¸ "1.2345"

Simplifies expression and returns the result as string(1+2) ¸ "3"


a character string.
string(cos(x)+‡(3)) ¸
"cos(x) + ‡(3)"

Style CATALOG
Style equanum, stylePropertyString Style 1,"thick" ¸ Done

Sets the system graphing function equanum in Style 10,"path" ¸ Done


the current graph mode to use the graphing
property stylePropertyString. Note: In function graphing mode, these
examples set the style of y1(x) to "Thick"
equanum must be an integer from 1–99 and and y10(x) to "Path".
the function must already exist.
stylePropertyString must be one of: "Line",
"Dot", "Square", "Thick", "Animate", "Path",
"Above", or "Below".
Note that in parametric graphing, only the xt
half of the pair contains the style
information.
Valid style names vs. graphing mode:
Function: all styles
Parametric/Polar: line, dot, square, thick,
animate, path
Sequence: line, dot, square, thick
3D: none
Diff Equations: line, dot, square, thick,
animate, path
Note: Capitalization and blank spaces are
optional when entering stylePropertyString
names.

subMat() CATALOG
subMat(matrix1[, startRow] [, startCol] [, endRow] [1,2,3;4,5,6;7,8,9]! m1 ¸
[, endCol]) ⇒ matrix 1 2 3
4 5 6
Returns the specified submatrix of matrix1. 7 8 9
subMat(m1,2,1,3,2) ¸
Defaults: startRow=1, startCol=1, endRow=last
4 5
row, endCol=last column. [7 8]
subMat(m1,2,2) ¸
5 6
[8 9]

sum() MATH/List menu


sum(list) ⇒ expression sum({1,2,3,4,5}) ¸ 15

Returns the sum of the elements in list. sum({a,2a,3a}) ¸ 6ø a

sum(seq(n,n,1,10)) ¸ 55

sum(matrix1) ⇒ matrix sum([1,2,3;4,5,6]) ¸ [5 7 9]

Returns a row vector containing the sums of sum([1,2,3;4,5,6;7,8,9]) ¸


the elements in the columns in matrix1. [12 15 18]

Appendix A: TI.89 Functions and Instructions 483

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 483 of 128
switch() CATALOG
switch([integer1]) ⇒ integer

Returns the number of the active window.


Also can set the active window.
Note: Window 1 is left or top; Window 2 is
right or bottom.
If integer1 = 0, returns the active window
number. switch() ¸

If integer1 = 1, activates window 1 and


returns the previously active window
number.
If integer1 = 2, activates window 2 and
returns the previously active window
number.
If integer1 is omitted, switches windows and
returns the previously active window
number.
integer1 is ignored if the TI-89 is not
displaying a split screen.

T (transpose) MATH/Matrix menu


matrix1î ⇒ matrix [1,2,3;4,5,6;7,8,9]! mat1 ¸
1 2 3
Returns the complex conjugate transpose of 4 5 6
matrix1. 7 8 9
mat1î ¸
1 4 7
2 5 8
3 6 9
a b
[a,b;c,d]! mat2 ¸ [c d]
a c
mat2î ¸ [b d]

[1+i,2+i;3+i,4+i]! mat3 ¸
1+i 2+i
[3+i 4+i]

1ì i 3ì i
mat3î ¸ [2ì i 4ì i]

484 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 484 of 128
Table CATALOG
Table expression1[, expression2] [, var1] In function graphing mode.
Builds a table of the specified expressions or Table 1.25xù cos(x) ¸
functions.
The expressions in the table can also be
graphed. Expressions entered using the Table
or Graph commands are assigned increasing
function numbers starting with 1. The
expressions can be modified or individually
deleted using the edit functions available Table cos(time),time ¸
when the table is displayed by pressing
† Header. The currently selected functions in
the Y= Editor are temporarily ignored.
To clear the functions created by Table or
Graph, execute the ClrGraph command or
display the Y= Editor.
If the var parameter is omitted, the current
graph-mode independent variable is
assumed. Some valid variations of this
instruction are:
Function graphing: Table expr, x
Parametric graphing: Table xExpr, yExpr, t
Polar graphing: Table expr, q

Note: The Table command is not valid for


3D, sequence, or diff equations graphing. As
an alternative, you may want to use BldData.

tan() 2 Y key
tan(expression1) ⇒ expression In Degree angle mode:
tan(list1) ⇒ list
tan((p/4)ô ) ¸ 1
tan(expression1) returns the tangent of the
argument as an expression. tan(45) ¸ 1
tan(list1) returns a list of the tangents of all tan({0,60,90}) ¸
elements in list1. {0 ‡3 undef}
Note: The argument is interpreted as either a In Radian angle mode:
degree or radian angle, according to the
current angle mode. You can use ó or ô to tan(p/4) ¸ 1
override the angle mode temporarily.
tan(45¡) ¸ 1

tan({p,p/3,-p,p/4}) ¸
{0 ‡3 0 1}

tan(squareMatrix1) ⇒ squareMatrix In Radian angle mode:


Returns the matrix tangent of squareMatrix1. tan([1,5,3;4,2,1;6,ë 2,1]) ¸
This is not the same as calculating the
ë 28.291… 26.088… 11.114…
tangent of each element. For information
 
about the calculation method, refer to cos().
12.117… ë 7.835… ë 5.481…

squareMatrix1 must be diagonalizable. The 36.818… ë 32.806… ë 10.459… 
result always contains floating-point
numbers.

Appendix A: TI.89 Functions and Instructions 485

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 485 of 128
tanê () ¥ S key
tanê (expression1) ⇒ expression In Degree angle mode:
tanê (list1) ⇒ list
tanê (1) ¸ 45
tanê (expression1) returns the angle whose
tangent is expression1 as an expression. In Radian angle mode:
tanê (list1) returns a list of the inverse tanê ({0,.2,.5}) ¸
tangents of each element of list1.
{0 .197... .463...}
Note: The result is returned as either a
degree or radian angle, according to the
current angle mode setting.
tanê(squareMatrix1) ⇒ squareMatrix In Radian angle mode:
Returns the matrix inverse tangent of tanê([1,5,3;4,2,1;6,ë 2,1]) ¸
squareMatrix1. This is not the same as
ë.083… 1.266… .622…
calculating the inverse tangent of each
 
element. For information about the
calculation method, refer to cos().
.748… .630… ë.070…

1.686… ë 1.182… .455… 
squareMatrix1 must be diagonalizable. The
result always contains floating-point
numbers.

tanh() MATH/Hyperbolic menu


tanh(expression1) ⇒ expression tanh(1.2) ¸ .833...
tanh(list1) ⇒ list
tanh({0,1}) ¸ {0 tanh(1)}
tanh(expression1) returns the hyperbolic
tangent of the argument as an expression.
tanh(list) returns a list of the hyperbolic
tangents of each element of list1.
tanh(squareMatrix1) ⇒ squareMatrix In Radian angle mode:
Returns the matrix hyperbolic tangent of tanh([1,5,3;4,2,1;6,ë 2,1]) ¸
squareMatrix1. This is not the same as
ë.097… .933… .425…
calculating the hyperbolic tangent of each
 
element. For information about the
calculation method, refer to cos().
.488… .538… ë.129…

1.282… ë 1.034… .428… 
squareMatrix1 must be diagonalizable. The
result always contains floating-point
numbers.

tanhê () MATH/Hyperbolic menu


tanhê (expression1) ⇒ expression In rectangular complex format mode:
tanhê (list1) ⇒ list
tanhê (0) ¸ 0
tanhê (expression1) returns the inverse
hyperbolic tangent of the argument as an tanhê ({1,2.1,3}) ¸
expression. ln(2) p
{ˆ .518... ì 1.570...ø i 2 ì 2ø i}
tanhê (list1) returns a list of the inverse
hyperbolic tangents of each element of list1.

486 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/25/98 12:07 PM Printed: 07/25/98 3:06 PM Page 486 of 128
tanhê(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular
complex format mode:
Returns the matrix inverse hyperbolic
tangent of squareMatrix1. This is not the same tanhê([1,5,3;4,2,1;6,ë 2,1])
as calculating the inverse hyperbolic tangent ¸
of each element. For information about the
ë.099…+.164…øi
 
.267…ì 1.490…øi …
calculation method, refer to cos().
ë.087…ì.725…øi .479…ì.947…øi … 
squareMatrix1 must be diagonalizable. The
result always contains floating-point .511…ì 2.083…øi ë.878…+1.790…øi … 
numbers.

taylor() MATH/Calculus menu


taylor(expression1, var, order[, point]) ⇒ expression taylor(e^(‡(x)),x,2) ¸
taylor(e^(t),t,4)|t=‡(x) ¸
Returns the requested Taylor polynomial.
The polynomial includes non-zero terms of
integer degrees from zero through order in
(var minus point). taylor() returns itself if
there is no truncated power series of this
order, or if it would require negative or
fractional exponents. Use substitution and/or
temporary multiplication by a power of taylor(1/(xù (xì 1)),x,3) ¸
(var minus point) to determine more general
power series.
point defaults to zero and is the expansion
point.
expand(taylor(x/(xù(xì1)),
x,4)/x,x) ¸

tCollect() MATH\Algebra\Trig menu


tCollect(expression1) ⇒ expression tCollect((cos(a))^2) ¸
cos(2ø a) + 1
Returns an expression in which products and
integer powers of sines and cosines are 2
converted to a linear combination of sines tCollect(sin(a)cos(b)) ¸
and cosines of multiple angles, angle sums,
and angle differences. The transformation sin(aì b)+sin(a+b)
converts trigonometric polynomials into a 2
linear combination of their harmonics.
Sometimes tCollect() will accomplish your
goals when the default trigonometric
simplification does not. tCollect() tends to
reverse transformations done by tExpand().
Sometimes applying tExpand() to a result
from tCollect(), or vice versa, in two separate
steps simplifies an expression.

Appendix A: TI.89 Functions and Instructions 487

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 487 of 128
tExpand() MATH\Algebra\Trig menu
tExpand(expression1) ⇒ expression tExpand(sin(3f)) ¸
4ø sin(f)ø (cos(f))ñ ì sin(f)
Returns an expression in which sines and
cosines of integer-multiple angles, angle tExpand(cos(aì b)) ¸
sums, and angle differences are expanded.
Because of the identity (sin(x)) 2+(cos(x))2=1, cos(a)ø cos(b)+sin(a)ø sin(b)
there are many possible equivalent results.
Consequently, a result might differ from a
result shown in other publications.
Sometimes tExpand() will accomplish your
goals when the default trigonometric
simplification does not. tExpand() tends to
reverse transformations done by tCollect().
Sometimes applying tCollect() to a result from
tExpand(), or vice versa, in two separate steps
simplifies an expression.
Note: Degree-mode scaling by p/180
interferes with the ability of tExpand() to
recognize expandable forms. For best results,
tExpand() should be used in Radian mode.

Text CATALOG
Text promptString Text "Have a nice day." ¸
Done
Displays the character string promptString
dialog box.
If used as part of a Dialog...EndDlog block,
promptString is displayed inside that dialog
box. If used as a standalone instruction, Text
creates a dialog box to display the string.

Then See If, page 433.

Title CATALOG
Title titleString, [Lbl] Program segment:
Creates the title of a pull-down menu or ©
dialog box when used inside a Toolbar or :Dialog
Custom construct, or a Dialog...EndDlog :Title "This is a dialog
block. box"
:Request "Your name",Str1
Note: Lbl is only valid in the Toolbar :Dropdown "Month you were
construct. When present, it allows the menu born",
choice to branch to a specified label inside seq(string(i),i,1,12),Var1
the program. :EndDlog
©

488 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 488 of 128
tmpCnv() CATALOG
tmpCnv(expression1_¡tempUnit1, _¡tempUnit2) tmpCnv(100_¡c,_¡f) ¸ 212.ø_¡F
⇒ expression _¡tempUnit2
tmpCnv(32_¡f,_¡c) ¸ 0.ø_¡C
Converts a temperature value specified by
expression1 from one unit to another. Valid tmpCnv(0_¡c,_¡k) ¸ 273.15ø_¡K
temperature units are:
tmpCnv(0_¡f,_¡r) ¸ 459.67ø_¡R
_¡C Celsius
_¡F Fahrenheit
_¡K Kelvin
_¡R Rankine Note: To select temperature units from a
menu, press 2 9.
For _ , press ¥ .
For ¡, press 2 “.

For example, 100_¡C converts to 212_¡F:


0 100
_¡C

_¡F
32 212

To convert a temperature range, use


@tmpCnv() instead.

@tmpCnv() CATALOG
@tmpCnv(expression1_¡tempUnit1, _¡tempUnit2) To get @, you can press ¥ c ¤ [D]
⇒ expression _¡tempUnit2 (or 2 ¿ 1 5).
Converts a temperature range (the difference @tmpCnv(100_¡c,_¡f) ¸
between two temperature values) specified 180.ø_¡F
by expression1 from one unit to another. Valid
temperature units are: @tmpCnv(180_¡f,_¡c) ¸
100.ø_¡C
_¡C Celsius
_¡F Fahrenheit
@tmpCnv(100_¡c,_¡k) ¸
_¡K Kelvin
_¡R Rankine 100.ø_¡K

For _ , press ¥ . @tmpCnv(100_¡f,_¡r) ¸


For ¡, press 2 “.
100.ø_¡R
1_¡C and 1_¡K have the same magnitude, as
@tmpCnv(1_¡c,_¡f) ¸
do 1_¡F and 1_¡R. However, 1_¡C is 9/5 as
large as 1_¡F. 1.8ø_¡F

Note: To select temperature units from a


menu, press 2 9.
For example, a 100_¡C range (from 0_¡C to
100_¡C) is equivalent to a 180_¡F range:
100_¡C
0 100
_¡C
_¡F
32 212
180_¡F
To convert a particular temperature value
instead of a range, use tmpCnv().

Appendix A: TI.89 Functions and Instructions 489

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 489 of 128
Toolbar CATALOG
Toolbar Program segment:
block
EndTBar ©
:Toolbar
Creates a toolbar menu. : Title "Examples"
: Item "Trig", t
block can be either a single statement or a : Item "Calc", c
sequence of statements separated with the “:” : Item "Stop", Pexit
character. The statements can be either Title :EndTbar
or Item. ©

Items must have labels. A Title must also have Note: When run in a program, this
a label if it does not have an item. segment creates a menu with three
choices that branch to three places in the
program.

Trace CATALOG
Trace

Draws a Smart Graph and places the trace


cursor on the first defined Y= function at the
previously defined cursor position, or at the
reset position if regraphing was necessary.
Allows operation of the cursor and most keys
when editing coordinate values. Several keys,
such as the function keys, O, and 3,
are not activated during trace.
Note: Press ¸ to resume operation.

Try CATALOG
Try Program segment:
block1
Else ©
block2 :Try
EndTry : NewFold(temp)
: Else
Executes block1 unless an error occurs. : ©Already exists
Program execution transfers to block2 if an : ClrErr
error occurs in block1. Variable errornum :EndTry
contains the error number to allow the ©
program to perform error recovery.
Note: See ClrErr and PassErr.
block1 and block2 can be either a single
statement or a series of statements separated
with the “:” character.

490 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 490 of 128
TwoVar MATH/Statistics menu
TwoVar list1, list2[, [list3] [, list4, list5]] {0,1,2,3,4,5,6}! L1 ¸
{0 1 2 ...}
Calculates the TwoVar statistics and updates
all the system statistics variables. {0,2,3,4,3,4,6}! L2 ¸
{0 2 3 ...}
All the lists must have equal dimensions TwoVar L1,L2 ¸ Done
except for list5. ShowStat ¸
list1 represents xlist.
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Note: list1 through list4 must be a variable


name or c1–c99 (columns in the last data
variable shown in the Data/Matrix Editor).
list5 does not have to be a variable name and
cannot be c1–c99.

Unarchiv CATALOG
Unarchiv var1 [, var2] [, var3] … 10!arctest ¸ 10
Archive arctest ¸ Done
Moves the specified variables from the user
5ù arctest ¸ 50
data archive memory to RAM.
15!arctest ¸
You can access an archived variable the same
as you would a variable in RAM. However,
you cannot delete, rename, or store to an
archived variable because it is locked
automatically.
To archive variables, use Archive. N
Unarchiv arctest ¸ Done
15!arctest ¸ 15

unitV() MATH/Matrix/Vector ops menu


unitV(vector1) ⇒ vector unitV([a,b,c]) ¸
a b c
Returns either a row- or column-unit vector, [ ]
añ +bñ +cñ añ +bñ +cñ añ +bñ +cñ
depending on the form of vector1.
unitV([1,2,1]) ¸
vector1 must be either a single-row matrix or
a single-column matrix. ‡6 ‡6 ‡6
[6 3 6]
‡14
‡14
14 
unitV([1;2;3]) ¸
7 
3ø ‡14
 14 
Unlock CATALOG
Unlock var1[, var2][, var3]...

Unlocks the specified variables.


Note: The variables can be locked using the
Lock command.

Appendix A: TI.89 Functions and Instructions 491

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 491 of 128
variance() MATH/Statistics menu
variance(list) ⇒ expression variance({a,b,c}) ¸
añ -aø (b+c)+bñ -bø c+cñ
Returns the variance of list.
3
Note: list must contain at least two elements.
variance({1,2,5,ë 6,3,ë 2}) ¸
31/2
variance(matrix1) ⇒ matrix variance([1,2,5;ë 3,0,1;
.5,.7,3]) ¸ [4.75 1.03 4]
Returns a row vector containing the variance
of each column in matrix1.
Note: matrix1 must contain at least two
rows.

when() CATALOG
when(condition, trueResult [, falseResult]
[, unknownResult]) ⇒ expression

Returns trueResult, falseResult, or


unknownResult, depending on whether
condition is true, false, or unknown. Returns
the input if there are too few arguments to
specify the appropriate result.
Omit both falseResult and unknownResult to when(x<0,x+3)|x=5 ¸
make an expression defined only in the when(x<0,3+x)
region where condition is true.
Use an undef falseResult to define an ClrGraph ¸
expression that graphs only on an interval. Graph when(x‚ë p and
x<0,x+3,undef) ¸

Omit only the unknownResult to define a two- Graph when(x<0,x+3,5ì x^2) ¸


piece expression.

Nest when() to define expressions that have "


more than two pieces. ClrGraph ¸ Done
Graph when(x<0,when(x<ë p,
4ù sin(x),2x+3),5ì x^2) ¸

when() is helpful for defining recursive when(n>0,nù factoral(nì 1),1)


functions. ! factoral(n) ¸ Done
factoral(3) ¸ 6
3! ¸ 6

492 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 492 of 128
While CATALOG
While condition Program segment:
block
EndWhile ©
:1! i
Executes the statements in block as long as :0! temp
condition is true.
:While i<=20
block can be either a single statement or a : temp+1/i! temp
sequence of statements separated with the “:” : i+1! i
character. :EndWhile
:Disp "sum of reciprocals up to
20",temp
©

“With” See |, page 512.

xor MATH/Test menu


Boolean expression1 xor Boolean expression2 ⇒ true xor true ¸ false
Boolean expression
(5>3) xor (3>5) ¸ true
Returns true if Boolean expression1 is true and
Boolean expression2 is false, or vice versa.
Returns false if Boolean expression1 and
Boolean expression2 are both true or both
false. Returns a simplified Boolean
expression if either of the original Boolean
expressions cannot be resolved to true or
false.
Note: See or.
integer1 xor integer2 ⇒ integer In Hex base mode:
Compares two real integers bit-by-bit using 0h7AC36 xor 0h3D5F ¸ 0h79169
an xor operation. Internally, both integers are
Important: Zero, not the letter O.
converted to signed, 32-bit binary numbers.
When corresponding bits are compared, the
result is 1 if either bit (but not both) is 1; the In Bin base mode:
result is 0 if both bits are 0 or both bits are 1. 0b100101 xor 0b100 ¸ 0b100001
The returned value represents the bit results,
and is displayed according to the Base mode. Note: A binary entry can have up to 32
You can enter the integers in any number digits (not counting the 0b prefix). A
base. For a binary or hexadecimal entry, you hexadecimal entry can have up to 8 digits.
must use the 0b or 0h prefix, respectively.
Without a prefix, integers are treated as
decimal (base 10).
If you enter a decimal integer that is too large
for a signed, 32-bit binary form, a symmetric
modulo operation is used to bring the value
into the appropriate range.
Note: See or.

Appendix A: TI.89 Functions and Instructions 493

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 493 of 128
XorPic CATALOG
XorPic picVar[, row] [, column]

Displays the picture stored in picVar on the


current Graph screen.
Uses xor logic for each pixel. Only those pixel
positions that are exclusive to either the
screen or the picture are turned on. This
instruction turns off pixels that are turned on
in both images.
picVar must contain a pic data type.

row and column, if included, specify the pixel


coordinates for the upper left corner of the
picture. Defaults are (0, 0).

zeros() MATH/Algebra menu


zeros(expression, var) ⇒ list zeros(aù x^2+bù x+c,x) ¸

Returns a list of candidate real values of var ë( bñ-4øaøc-+b)


{ }
bñ-4øaøc-b
that make expression=0. zeros() does this by 2øa 2øa
computing
exp8list(solve(expression=0,var),var). aù x^2+bù x+c|x=ans(1)[2] ¸ 0

For some purposes, the result form for exact(zeros(aù (e^(x)+x)


zeros() is more convenient than that of (sign (x)ì 1),x)) ¸ {}
solve(). However, the result form of zeros()
cannot express implicit solutions, solutions exact(solve(aù (e^(x)+x)
that require inequalities, or solutions that do (sign (x)ì 1)=0,x)) ¸
not involve var. e x + x = 0 or x>0 or a = 0

Note: See also cSolve(), cZeros(), and solve().


zeros({expression1, expression2}, {varOrGuess1,
varOrGuess2 [, … ]}) ⇒ matrix

Returns candidate real zeros of the


simultaneous algebraic expressions, where
each varOrGuess specifies an unknown whose
value you seek.
Optionally, you can specify an initial guess
for a variable. Each varOrGuess must have the
form:
variable
– or –
variable = real or non-real number

For example, x is valid and so is x=3.


If all of the expressions are polynomials and
if you do NOT specify any initial guesses,
zeros() uses the lexical Gröbner/Buchberger
elimination method to attempt to determine
all real zeros.
For example, suppose you have a circle of
radius r at the origin and another circle of
radius r centered where the first circle
crosses the positive x-axis. Use zeros() to find
the intersections.

494 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 494 of 128
As illustrated by r in the example to the right, zeros({x^2+y^2ì r^2,
simultaneous polynomial expressions can (xì r)^2+y^2ì r^2},{x,y}) ¸
have extra variables that have no values, but
represent given numeric values that could be 3ør
substituted later. r 
2 2 
Each row of the resulting matrix represents r ë 3ør 
an alternate zero, with the components 2 2 
ordered the same as the varOrGuess list. To
extract a row, index the matrix by [row]. Extract row 2:
ë 3ør
r 
ans(1)[2] ¸
2 2 
You can omit unknowns whose values are zeros({x^2+y^2ì r^2,
not of interest, as in the example to the right. (xì r)^2+y^2ì r^2},{x}) ¸

r
 2 
 r 
 2 
You can also (or instead) include unknowns zeros({x^2+y^2ì r^2,
that do not appear in the expressions. For (xì r)^2+y^2ì r^2},{x,y,z}) ¸
example, you can include z as an unknown to
extend the previous example to two parallel 3ør
intersecting cylinders of radius r. The r @1 
cylinder zeros illustrate how families of zeros 2 2 
might contain arbitrary constants in the form r ë 3ør 
@k, where k is an integer suffix from 1 2 2
@1
through 255. The suffix resets to 1 when you
use ClrHome or ƒ 8:Clear Home.
For polynomial systems, computation time or
memory exhaustion may depend strongly on
the order in which you list unknowns. If your
initial choice exhausts memory or your
patience, try rearranging the variables in the
expressions and/or varOrGuess list.
If you do not include any guesses and if any zeros({x+e^(z)ù yì 1,xì yì sin(z)}
expression is non-polynomial in any variable ,{x,y}) ¸
but all expressions are linear in the ezøsin(z)+1 ë (sin(z)ì 1)
unknowns, zeros() uses Gaussian elimination  
to attempt to determine all real zeros.  e z +1 e z +1 
If a system is neither polynomial in all of its zeros({e^(z)ùyì1,ëyìsin(z)},
variables nor linear in its unknowns, zeros() {y,z}) ¸
determines at most one zero using an
approximate iterative method. To do so, the [.041… 3.183…]
number of unknowns must equal the number
of expressions, and all other variables in the
expressions must simplify to numbers.
Each unknown starts at its guessed value if
there is one; otherwise, it starts at 0.0.
Use guesses to seek additional zeros one by zeros({e^(z)ù yì 1,ë yì sin(z)},
one. For convergence, a guess may have to {y,z=2p}) ¸
be rather close to a zero.
[.001… 6.281…]

Appendix A: TI.89 Functions and Instructions 495

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 495 of 128
ZoomBox CATALOG
ZoomBox In function graphing mode:
Displays the Graph screen, lets you draw a 1.25xù cos(x)! y1(x) ¸ Done
box that defines a new viewing window, and ZoomStd:ZoomBox ¸
1st corner
updates the window. 2nd corner

The display after defining ZoomBox by


pressing ¸ the second time.

ZoomData CATALOG
ZoomData In function graphing mode:
Adjusts the window settings based on the {1,2,3,4}! L1 ¸ {1 2 3 4}
currently defined plots (and data) so that all {2,3,4,5}! L2 ¸ {2 3 4 5}
statistical data points will be sampled, and newPlot 1,1,L1,L2 ¸ Done
displays the Graph screen. ZoomStd ¸
Note: Does not adjust ymin and ymax for
histograms.

"
ZoomData ¸

496 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 496 of 128
ZoomDec CATALOG
ZoomDec In function graphing mode:
Adjusts the viewing window so that @x and 1.25xù cos(x)! y1(x) ¸ Done
@y = 0.1 and displays the Graph screen with ZoomStd ¸
the origin centered on the screen.

"
ZoomDec ¸

ZoomFit CATALOG
ZoomFit In function graphing mode:
Displays the Graph screen, and calculates the 1.25xù cos(x)! y1(x) ¸ Done
necessary window dimensions for the ZoomStd ¸
dependent variables to view all the picture
for the current independent variable settings.

"
ZoomFit ¸

ZoomIn CATALOG
ZoomIn In function graphing mode:
Displays the Graph screen, lets you set a 1.25xù cos(x)! y1(x) ¸ Done
center point for a zoom in, and updates the ZoomStd:ZoomIn ¸
viewing window.
The magnitude of the zoom is dependent on
the Zoom factors xFact and yFact. In 3D Graph
mode, the magnitude is dependent on xFact,
yFact, and zFact.

Appendix A: TI.89 Functions and Instructions 497

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 497 of 128
ZoomInt CATALOG
ZoomInt In function graphing mode:
Displays the Graph screen, lets you set a 1.25xù cos(x)! y1(x) ¸ Done
center point for the zoom, and adjusts the ZoomStd:ZoomInt ¸
window settings so that each pixel is an
integer in all directions.

ZoomOut CATALOG
ZoomOut In function graphing mode:
Displays the Graph screen, lets you set a 1.25xù cos(x)! y1(x) ¸ Done
center point for a zoom out, and updates the ZoomStd:ZoomOut ¸
viewing window.
The magnitude of the zoom is dependent on
the Zoom factors xFact and yFact. In 3D Graph
mode, the magnitude is dependent on xFact,
yFact, and zFact.

ZoomPrev CATALOG
ZoomPrev

Displays the Graph screen, and updates the


viewing window with the settings in use
before the last zoom.

ZoomRcl CATALOG
ZoomRcl

Displays the Graph screen, and updates the


viewing window using the settings stored
with the ZoomSto instruction.

498 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 498 of 128
ZoomSqr CATALOG
ZoomSqr In function graphing mode:
Displays the Graph screen, adjusts the x or y 1.25xù cos(x)! y1(x) ¸ Done
window settings so that each pixel represents ZoomStd ¸
an equal width and height in the coordinate
system, and updates the viewing window.
In 3D Graph mode, ZoomSqr lengthens the
shortest two axes to be the same as the
longest axis.

"
ZoomSqr ¸

ZoomStd CATALOG
ZoomStd In function graphing mode:
Sets the window variables to the following 1.25xù cos(x)! y1(x) ¸ Done
standard values, and then updates the ZoomStd ¸
viewing window.
Function graphing:
x: [ë 10, 10, 1], y: [ë 10, 10, 1] and xres=2

Parametric graphing:
t: [0, 2p, p/24], x: [ë 10, 10, 1], y:[ë 10, 10, 1]

Polar graphing:
q: [0, 2p, p/24], x: [ë 10, 10, 1], y: [ë 10, 10, 1]

Sequence graphing:
nmin=1, nmax=10, plotStrt=1, plotStep=1,
x: [ë 10, 10, 1], y: [ë 10, 10, 1]

3D graphing:
eyeq°=20, eyef°=70, eyeψ°=0
x: [ë 10, 10, 14], y: [ë 10, 10, 14],
z: [ë 10, 10], ncontour=5

Differential equations graphing:


t: [0, 10, .1, 0], x: [ë 1, 10, 1], y: [ë 10, 10, 1],
ncurves=0, Estep=1, diftol=.001, fldres=14,
dtime=0

ZoomSto CATALOG
ZoomSto

Stores the current Window settings in the


Zoom memory. You can use ZoomRcl to
restore the settings.

Appendix A: TI.89 Functions and Instructions 499

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 499 of 128
ZoomTrig CATALOG
ZoomTrig In function graphing mode:
Displays the Graph screen, sets @x to p/24, 1.25xù cos(x)! y1(x) ¸ Done
and xscl to p/2, centers the origin, sets the y ZoomStd ¸
settings to [ë 4, 4, .5], and updates the viewing
window.

"
ZoomTrig ¸

+ (add) « key
expression1 + expression2 ⇒ expression 56 ¸ 56
ans(1)+4 ¸ 60
Returns the sum of expression1 and ans(1)+4 ¸ 64
expression2.
ans(1)+4 ¸ 68
ans(1)+4 ¸ 72

list1 + list2 ⇒ list {22,p,p/2}! L1 ¸ {22 p p/2}


matrix1 + matrix2 ⇒ matrix {10,5,p/2}! L2 ¸ {10 5 p/2}
Returns a list (or matrix) containing the sums L1+L2 ¸ {32 p+5 p}
of corresponding elements in list1 and list2
(or matrix1 and matrix2). ans(1)+{p,ë 5,ë p} ¸
{p+32 p 0}
Dimensions of the arguments must be equal.
[a,b;c,d]+[1,0;0,1] ¸
a+1 b
[c d+1]

expression + list1 ⇒ list 15+{10,15,20} ¸ {25 30 35}


list1 + expression ⇒ list
{10,15,20}+15 ¸ {25 30 35}
Returns a list containing the sums of
expression and each element in list1.

expression + matrix1 ⇒ matrix 20+[1,2;3,4] ¸


matrix1 + expression ⇒ matrix
21 2
Returns a matrix with expression added to
[3 24]
each element on the diagonal of matrix1.
matrix1 must be square.

Note: Use .+ (dot plus) to add an expression


to each element.

ì (subtract) | key
expression1 - expression2 ⇒ expression 6ì 2 ¸ 4
Returns expression1 minus expression2. 5ø p
pì pà6 ¸ 6

500 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 500 of 128
list1 - list2 ⇒ list {22,p,pà2}ì {10,5,pà2} ¸
matrix1 - matrix2 ⇒ matrix {12 pì 5 0}
Subtracts each element in list2 (or matrix2) [3,4]ì [1,2] ¸ [2 2]
from the corresponding element in list1 (or
matrix1), and returns the results.

Dimensions of the arguments must be equal.


expression - list1 ⇒ list 15ì {10,15,20} ¸ {5 0 -5}
list1 - expression ⇒ list
{10,15,20}ì 15 ¸ {-5 0 5}
Subtracts each list1 element from expression
or subtracts expression from each list1
element, and returns a list of the results.
expression - matrix1 ⇒ matrix 20ì [1,2;3,4] ¸
matrix1 - expression ⇒ matrix 19 ë2
[ë 3 16]
expression ì matrix1 returns a matrix of
expression times the identity matrix minus
matrix1. matrix1 must be square.

matrix1 ì expression returns a matrix of


expression times the identity matrix
subtracted from matrix1. matrix1 must be
square.
Note: Use .. (dot minus) to subtract an
expression from each element.

ù (multiply) p key
expression1 ù expression2 ⇒ expression 2ù 3.45 ¸ 6.9

Returns the product of expression1 and xù yù x ¸ x2ø y


expression2.

list1ù list2 ⇒ list {1.0,2,3}ù {4,5,6} ¸ {4. 10 18}

Returns a list containing the products of the b


corresponding elements in list1 and list2. {2àa,3à2}ù {añ,bà3} ¸ {2ø a 2}
Dimensions of the lists must be equal.

matrix1 ù matrix2 ⇒ matrix [1,2,3;4,5,6]ù [a,d;b,e;c,f]


¸
Returns the matrix product of matrix1 and
matrix2.

The number of rows in matrix1 must equal


the number of columns in matrix2.

expression ù list1 ⇒ list pù {4,5,6} ¸ {4ø p 5ø p 6ø p}


list1 ù expression ⇒ list

Returns a list containing the products of


expression and each element in list1.

expression ù matrix1 ⇒ matrix .01 .02


[1,2;3,4]ù.01 ¸ [.03 .04]
matrix1 ù expression ⇒ matrix
l 0 0
Returns a matrix containing the products of 0 l 0
expression and each element in matrix1. lù identity(3) ¸  
0 0 l
Note: Use .ù (dot multiply) to multiply an
expression by each element.

Appendix A: TI.89 Functions and Instructions 501

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 501 of 128
à (divide) e key
expression1 à expression2 ⇒ expression 2/3.45 ¸ .57971

Returns the quotient of expression1 divided by x^3/x ¸ x2


expression2.

list1 à list2 ⇒ list {1.0,2,3}/{4,5,6} ¸


{.25 2/5 1/2}
Returns a list containing the quotients of list1
divided by list2.
Dimensions of the lists must be equal.
expression à list1 ⇒ list a/{3,a,‡(a)} ¸
list1 à expression ⇒ list a
{ 3 1 ‡a}
Returns a list containing the quotients of
expression divided by list1 or list1 divided by {a,b,c}/(aù bù c) ¸
expression.
1 1 1
{bø c aø c aø b}

matrix1 à expression ⇒ matrix [a,b,c]/(aù bù c) ¸

Returns a matrix containing the quotients of 1 1 1


matrix1àexpression. [bø c aø c aø b]
Note: Use . / (dot divide) to divide an
expression by each element.

ë (negate) · key and MATH/Base menu


ëexpression1 ⇒ expression ë 2.43 ¸ ë 2.43
ë list1 ⇒ list
ë matrix1 ⇒ matrix ë {ë 1,0.4,1.2í 19} ¸
{1 ë.4 ë 1.2í 19}
Returns the negation of the argument.
For a list or matrix, returns all the elements ë aù ë b ¸ aø b
negated.
If expression1 is a binary or hexadecimal In Bin base mode:
integer, the negation gives the two’s
0b100101 4dec ¸ 37
complement.
Important: Zero, not the letter O.

ë 0b100101 ¸
0b11111111111111111111111111011011

ans(1) 4dec ¸ ë 37

Note: To type 4, press 2 Ž.

% (percent) CHAR/Punctuation menu


expression1 % ⇒ expression 13% ¥ ¸ .13
list1 % ⇒ list
matrix1 % ⇒ matrix {1, 10, 100}% ¥ ¸
{.01 .1 1.}
argument
Returns .
100

For a list or matrix, returns a list or matrix


with each element divided by 100.

502 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 502 of 128
= (equal) Á key
expression1 = expression2 ⇒ Boolean expression Example function listing using math test
list1 = list2 ⇒ Boolean list symbols: =, ƒ, <, , >, ‚
matrix1 = matrix2 ⇒ Boolean matrix
:g(x)
Returns true if expression1 is determined to :Func
be equal to expression2. :If xë 5 Then
Returns false if expression1 is determined to : Return 5
: ElseIf x>ë 5 and x<0 Then
not be equal to expression2.
: Return ë x
Anything else returns a simplified form of the : ElseIf x‚0 and xƒ10 Then
equation. : Return x
: ElseIf x=10 Then
For lists and matrices, returns comparisons : Return 3
element by element. :EndIf
:EndFunc
Graph g(x) ¸

/= (not equal) ¥ Á key or e Á keys


expression1 /= expression2 ⇒ Boolean expression See "=" (equal) example.
list1 /= list2 ⇒ Boolean list
matrix1 /= matrix2 ⇒ Boolean matrix

Returns true if expression1 is determined to be


not equal to expression2.
Returns false if expression1 is determined to
be equal to expression2.
Anything else returns a simplified form of the
equation.
For lists and matrices, returns comparisons
element by element.

< 2 Â key
expression1 < expression2 ⇒ Boolean expression See "=" (equal) example.
list1 < list2 ⇒ Boolean list
matrix1 < matrix2 ⇒ Boolean matrix

Returns true if expression1 is determined to be


less than expression2.
Returns false if expression1 is determined to
be greater than or equal to expression2.
Anything else returns a simplified form of the
equation.
For lists and matrices, returns comparisons
element by element.

Appendix A: TI.89 Functions and Instructions 503

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 503 of 128
<= 2 Â Á keys
expression1 <= expression2 ⇒ Boolean expression See "=" (equal) example.
list1 <= list2 ⇒ Boolean list
matrix1 <= matrix2 ⇒ Boolean matrix

Returns true if expression1 is determined to be


less than or equal to expression2.
Returns false if expression1 is determined to
be greater than expression2.
Anything else returns a simplified form of the
equation.
For lists and matrices, returns comparisons
element by element.

> 2 Ã key
expression1 > expression2 ⇒ Boolean expression See "=" (equal) example.
list1 > list2 ⇒ Boolean list
matrix1 > matrix2 ⇒ Boolean matrix

Returns true if expression1 is determined to be


greater than expression2.
Returns false if expression1 is determined to
be less than or equal to expression2.
Anything else returns a simplified form of the
equation.
For lists and matrices, returns comparisons
element by element.

>= 2 Ã Á keys
expression1 >= expression2 ⇒ Boolean expression See "=" (equal) example.
list1 >= list2 ⇒ Boolean list
matrix1 >= matrix2 ⇒ Boolean matrix

Returns true if expression1 is determined to be


greater than or equal to expression2.
Returns false if expression1 is determined to
be less than expression2.
Anything else returns a simplified form of the
equation.
For lists and matrices, returns comparisons
element by element.

.+ (dot add) ¶ « keys


matrix1 .+ matrix2 ⇒ matrix [a,2;b,3].+[c,4;5,d] ¸
expression .+ matrix1 ⇒ matrix x.+[c,4;5,d] ¸
matrix1 .+ matrix2 returns a matrix that is the
sum of each pair of corresponding elements
in matrix1 and matrix2.
expression .+ matrix1 returns a matrix that is
the sum of expression and each element in
matrix1.

504 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 504 of 128
.. (dot subt.) ¶ | keys
matrix1 .ì matrix2 ⇒ matrix [a,2;b,3].ì [c,4;d,5] ¸
expression .ì matrix1 ⇒ matrix x.ì [c,4;d,5] ¸
matrix1 .ì matrix2 returns a matrix that is the
difference between each pair of
corresponding elements in matrix1 and
matrix2.

expression .ì matrix1 returns a matrix that is


the difference of expression and each element
in matrix1.

.ù (dot mult.) ¶ p keys


matrix1 .ù matrix2 ⇒ matrix [a,2;b,3].ù [c,4;5,d] ¸
expression .ù matrix1 ⇒ matrix
x.ù [a,b;c,d] ¸
matrix1 . ù matrix2 returns a matrix that is the
product of each pair of corresponding
elements in matrix1 and matrix2.
expression . ù matrix1 returns a matrix
containing the products of expression and
each element in matrix1.

. / (dot divide) ¶ e keys


matrix1 . / matrix2 ⇒ matrix [a,2;b,3]./[c,4;5,d] ¸
expression . / matrix1 ⇒ matrix x./[c,4;5,d] ¸
matrix1 . / matrix2 returns a matrix that is the
quotient of each pair of corresponding
elements in matrix1 and matrix2.
expression . / matrix1 returns a matrix that is
the quotient of expression and each element in
matrix1.

.^ (dot power) ¶ Z keys


matrix1 .^ matrix2 ⇒ matrix [a,2;b,3].^[c,4;5,d] ¸
expression . ^ matrix1 ⇒ matrix x.^[c,4;5,d] ¸
matrix1 .^ matrix2 returns a matrix where
each element in matrix2 is the exponent for
the corresponding element in matrix1.
expression . ^ matrix1 returns a matrix where
each element in matrix1 is the exponent for
expression.

! (factorial) ¥ e key
expression1! ⇒ expression 5! ¸ 120
list1! ⇒ list
matrix1! ⇒ matrix {5,4,3}! ¸ {120 24 6}
Returns the factorial of the argument. 1 2
[1,2;3,4]! ¸ [6 24]
For a list or matrix, returns a list or matrix of
factorials of the elements.
The TI-89 computes a numeric value for only
non-negative whole-number values.

Appendix A: TI.89 Functions and Instructions 505

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 505 of 128
& (append) ¥ p key
string1 & string2 ⇒ string "Hello " & "Nick" ¸
"Hello Nick"
Returns a text string that is string2 appended
to string1.

‰() (integrate) 2 < key


‰(expression1, var[, lower] [,upper]) ⇒ expression
‰(list1,var [,order]) ⇒ list
‰(matrix1,var [,order]) ⇒ matrix

Returns the integral of expression1 with bò aò


respect to the variable var from lower to upper. ‰(x^2,x,a,b) ¸ 3 - 3
Returns an anti-derivative if lower and upper xò
are omitted. A symbolic constant of ‰(x^2,x) ¸ 3
integration such as C is omitted.
aø xò
However, lower is added as a constant of ‰(aù x^2,x,c) ¸ 3 +c
integration if only upper is omitted.
Equally valid anti-derivatives might differ by ‰(1/(2ì cos(x)),x)! tmp(x) ¸
a numeric constant. Such a constant might be
disguised—particularly when an anti- ClrGraph:Graph tmp(x):Graph
derivative contains logarithms or inverse 1/(2ì cos(x)):Graph ‡(3)
trigonometric functions. Moreover, piecewise (2tanê (‡(3)(tan(x/2)))/3)
¸
constant expressions are sometimes added to
make an anti-derivative valid over a larger
interval than the usual formula.

‰() returns itself for pieces of expression1 that ‰(bù e^(ë x^2)+a/(x^2+a^2),x)
it cannot determine as an explicit finite ¸
combination of its built-in functions and
operators.
When lower and upper are both present, an
attempt is made to locate any discontinuities
or discontinuous derivatives in the interval
lower < var < upper and to subdivide the
interval at those places.
For the AUTO setting of the Exact/Approx
mode, numerical integration is used where
applicable when an anti-derivative or a limit
cannot be determined.
For the APPROX setting, numerical ‰(e^(ë x^2),x,ë 1,1)¥ ¸ 1.493...
integration is tried first, if applicable. Anti-
derivatives are sought only where such
numerical integration is inapplicable or fails.

506 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 506 of 128
‰() can be nested to do multiple integrals. ‰(‰(ln(x+y),y,0,x),x,0,a) ¸
Integration limits can depend on integration
variables outside them.
Note: See also nInt().

‡() (sqr. root) 2 ] key


‡ (expression1) ⇒ expression ‡(4) ¸ 2
‡ (list1) ⇒ list
‡({9,a,4}) ¸ {3 ‡a 2}
Returns the square root of the argument.
For a list, returns the square roots of all the
elements in list1.

Π() (product) MATH/Calculus menu


Π(expression1, var, low, high) ⇒ expression 1
Π(1/n,n,1,5) ¸ 120
Evaluates expression1 for each value of var
from low to high, and returns the product of Π(k^2,k,1,n) ¸ (n!)ñ
the results.
Π({1/n,n,2},n,1,5) ¸
1
{120 120 32}

Π(expression1, var, low, lowì 1) ⇒ 1 Π(k,k,4,3) ¸ 1

Π(expression1, var, low, high) ⇒ 1/Π(expression1, Π(1/k,k,4,1) ¸ 6


var, high+1, lowì 1) if high < lowì 1
Π(1/k,k,4,1)ù Π(1/k,k,2,4) ¸
1/4

G() (sum) MATH/Calculus menu


G (expression1, var, low, high) ⇒ expression 137
G(1/n,n,1,5) ¸ 60
Evaluates expression1 for each value of var
from low to high, and returns the sum of the G(k^2,k,1,n) ¸
results.
nø (n + 1)ø (2ø n + 1)
6


G(1/n^2,n,1,ˆ) ¸ 6
G (expression1, var, low, lowì 1) ⇒ 0 G(k,k,4,3) ¸ 0

G (expression1, var, low, high) ⇒ ë G ( expression1, G(k,k,4,1) ¸ ë5


var, high+1, lowì 1) if high < lowì 1
G(k,k,4,1)+G(k,k,2,4) ¸ 4

Appendix A: TI.89 Functions and Instructions 507

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 507 of 128
^ (power) Z key
expression1 ^ expression2 ⇒ expression 4^2 ¸ 16
list1 ^ list2 ⇒ list
{a,2,c}^{1,b,3} ¸ {a 2b cò }
Returns the first argument raised to the
power of the second argument.
For a list, returns the elements in list1 raised
to the power of the corresponding elements
in list2.
In the real domain, fractional powers that
have reduced exponents with odd
denominators use the real branch versus the
principal branch for complex mode.
expression ^ list1 ⇒ list 1
p^{a,2,ë 3} ¸ {p a pñ pò }
Returns expression raised to the power of the
elements in list1.
list1 ^ expression ⇒ list {1,2,3,4}^ë 2 ¸
{1 1/4 1/9 1/16}
Returns the elements in list1 raised to the
power of expression.
squareMatrix1 ^ integer ⇒ matrix [1,2;3,4]^2 ¸
[1,2;3,4]^ë 1 ¸
Returns squareMatrix1 raised to the integer
[1,2;3,4]^ë 2 ¸
power.
squareMatrix1 must be a square matrix.

If integer = ë 1, computes the inverse matrix.


If integer < ë 1, computes the inverse matrix
to an appropriate positive power.

# (indirection) CATALOG
# varNameString Program segment:
Refers to the variable whose name is ©
varNameString. This lets you create and :Request "Enter Your Name",str1
modify variables from a program using :NewFold #str1
strings. ©
©
:For i,1,5,1
: ClrGraph
: Graph iù x
: StoPic #("pic" & string(i))
:EndFor
©

508 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 508 of 128
ô (radian) MATH/Angle menu
expression1ô ⇒ expression In Degree or Radian angle mode:
list1ô ⇒ list
matrix1ô ⇒ matrix ‡2
cos((p/4)ô ) ¸ 2
In Degree angle mode, multiplies expression1
by 180/p. In Radian angle mode, returns cos({0ô,(p/12)ô,ë pô }) ¸
expression1 unchanged.
( 3+1)ø 2
This function gives you a way to use a radian {1 ë 1}
angle while in Degree mode. (In Degree angle 4
mode, sin(), cos(), tan(), and polar-to-
rectangular conversions expect the angle
argument to be in degrees.)
Hint: Use ô if you want to force radians in a
function or program definition regardless of
the mode that prevails when the function or
program is used.

¡ (degree) 2 “ key
expression¡ ⇒ value In Radian angle mode:
list1¡ ⇒ list ‡2
matrix1¡ ⇒ matrix cos(45¡) ¸ 2
In Radian angle mode, multiplies expression cos({0,p/4,90¡,30.12¡}) ¥ ¸
by p/180. In Degree angle mode, returns
{1 .707... 0 .864...}
expression unchanged.

This function gives you a way to use a degree


angle while in Radian mode. (In Radian angle
mode, sin(), cos(), tan(), and polar-to-
rectangular conversions expect the angle
argument to be in radians.)

 (angle) 2 ’ key
[radius,q_angle] ⇒ vector (polar input) [5,60¡,45¡] ¸
[radius,q_angle,Z_coordinate] ⇒ vector
In Radian mode and vector format set to:
(cylindrical input)
[radius,q_angle,f_angle] ⇒ vector
(spherical input) rectangular

Returns coordinates as a vector depending


on the Vector Format mode setting: cylindrical
rectangular, cylindrical, or spherical.
spherical

(magnitude  angle) ⇒ complexValue (polar input) In Radian angle mode and Rectangular
complex format mode:
Enters a complex value in (rq) polar form.
The angle is interpreted according to the 5+3iì (10p/4) ¸
current Angle mode setting. 5ì 5ø 2+(3ì 5ø 2)øi
¥¸ ë 2.071…ì 4.071…øi

Appendix A: TI.89 Functions and Instructions 509

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 509 of 128
¡, ', " 2 “ key (¡), 2 È key ('), 2 É key (")
dd¡mm'ss.ss" ⇒ expression In Degree angle mode:
dd A positive or negative number 25°13'17.5" ¸ 25.221...
mm A non-negative number
ss.ss A non-negative number 25°30' ¸ 51/2
Returns dd +(mm /60)+(ss.ss /3600).
This base-60 entry format lets you:
• Enter an angle in degrees/minutes/seconds
without regard to the current angle mode.
• Enter time as hours/minutes/seconds.

' (prime) 2 È key


variable ' deSolve(y''=y^(ë 1/2) and
variable '' y(0)=0 and y'(0)=0,t,y) ¸
Enters a prime symbol in a differential 2øy 3/4
equation. A single prime symbol denotes a =t
1st-order differential equation, two prime 3
symbols denote a 2nd-order, etc.

_ (underscore) ¥  key
expression_unit 3_m 4 _ft ¸ 9.842…ø_ft

Designates the units for an expression. All Note: To type 4, press 2 Ž.


unit names must begin with an underscore.
You can use pre-defined units or create
your own units. For a list of pre-defined
units, refer to the chapter about constants
and measurement units in this book. You
can press 2 9 to select units from a
menu, or you can type the unit names
directly.
variable_ Assuming z is undefined:
When variable has no value, it is treated as real(z) ¸ z
though it represents a complex number. By real(z_) ¸ real(z_)
default, without the _ , the variable is
treated as real. imag(z) ¸ 0
imag(z_) ¸ imag(z_)
If variable has a value, the _ is ignored and
variable retains its original data type.

Note: You can store a complex number to


a variable without using _ . However, for
best results in calculations such as cSolve()
and cZeros(), the _ is recommended.

510 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 510 of 128
4 (convert) 2 Ž key
expression_unit1 4 _unit2 ⇒ expression_unit2 3_m 4 _ft ¸ 9.842…ø_ft

Converts an expression from one unit to


another. The units must be in the same
category.
The _ underscore character designates the
units. For a list of valid pre-defined units,
refer to the chapter about constants and
measurement units in this book. You can
press 2 9 to select units from a menu,
or you can type the unit names directly.
To get the _ underscore when typing units
directly, press ¥ .
Note: The 4 conversion operator does not
handle temperature units. Use tmpCnv() and
@tmpCnv() instead.

10^() CATALOG
10^ (expression1) ⇒ expression 10^(1.5) ¸ 31.622...
10^ (list1) ⇒ list
10^{0,ë 2,2,a} ¸
Returns 10 raised to the power of the 1
argument. {1 100 100 10 a}

For a list, returns 10 raised to the power of


the elements in list1.
10^(squareMatrix1) ⇒ squareMatrix 10^([1,5,3;4,2,1;6,L2,1]) ¸

Returns 10 raised to the power of 1.143…E7 8.171…E6 6.675…E6


9.956…E6 7.115…E6 5.813…E6
squareMatrix1. This is not the same as
calculating 10 raised to the power of each
7.652…E6 5.469…E6 4.468…E6
element. For information about the
calculation method, refer to cos().
squareMatrix1 must be diagonalizable. The
result always contains floating-point
numbers.

xê CATALOG (^ -1)
expression1 xê ⇒ expression 3.1^ë 1 ¸ .322581
list1 xê ⇒ list
{a,4,ë.1,xì 2}^ë 1 ¸
Returns the reciprocal of the argument. 1 1 1
{a 4 ë 10. xì 2}
For a list, returns the reciprocals of the
elements in list1.
squareMatrix1 xê ⇒ squareMatrix [1,2;3,4]^ë 1 ¸
[1,2;a,4]^ë 1 ¸
Returns the inverse of squareMatrix1.
squareMatrix1 must be a non-singular square
matrix.

Appendix A: TI.89 Functions and Instructions 511

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 511 of 128
| (“with”) Í key
expression | Boolean expression1 [and Boolean x+1| x=3 ¸ 4
expression2]...[and Boolean expressionN]
x+y| x=sin(y) ¸ sin(y) + y
The “with” (|) symbol serves as a binary
operator. The operand to the left of | is an x+y| sin(y)=x ¸ x+y
expression. The operand to the right of |
specifies one or more relations that are
intended to affect the simplification of the
expression. Multiple relations after | must be
joined by a logical “and”.
The “with” operator provides three basic
types of functionality: substitutions, interval
constraints, and exclusions.
Substitutions are in the form of an equality, x^3ì 2x+7! f(x) ¸ Done
such as x=3 or y=sin(x). To be most effective,
the left side should be a simple variable. f(x)| x=‡(3) ¸ ‡3 + 7
expression | variable = value will substitute
value for every occurrence of variable in (sin(x))^2+2sin(x)ì 6| sin(x)=d
expression. ¸
dñ +2dì 6
Interval constraints take the form of one or solve(x^2ì 1=0,x)|x>0 and x<2
more inequalities joined by logical “and” ¸
operators. Interval constraints also permit x=1
simplification that otherwise might be invalid
or not computable. ‡(x)ù ‡(1/x)|x>0 ¸ 1

1
‡(x)ù ‡(1/x) ¸ x ø x

Exclusions use the “not equals” (/= or ƒ) solve(x^2ì 1=0,x)| xƒ1 ¸ x = ë 1


relational operator to exclude a specific
value from consideration. They are used
primarily to exclude an exact solution when
using cSolve(), cZeros(), fMax(), fMin(), solve(),
zeros(), etc.

! (store) § key
expression ! var p
list ! var
p/4! myvar ¸ 4
matrix ! var
expression ! fun_name(parameter1,...)
2cos(x)! Y1(x) ¸ Done
list ! fun_name(parameter1,...)
{1,2,3,4}! Lst5 ¸ {1 2 3 4}
matrix ! fun_name(parameter1,...)

If variable var does not exist, creates var and 1 2 3


[1,2,3;4,5,6]! MatG ¸ [ 4 5 6]
initializes it to expression, list, or matrix.
If var already exists and if it is not locked or "Hello"! str1 ¸ "Hello"
protected, replaces its contents with
expression, list, or matrix.

Hint: If you plan to do symbolic


computations using undefined variables,
avoid storing anything into commonly used,
one-letter variables such as a, b, c, x, y, z, etc.

512 Appendix A: TI.89 Functions and Instructions

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 512 of 128
© (comment) ¥ d key or Program Editor/Control menu
© [text] Program segment:
© processes text as a comment line, which ©
can be used to annotate program :© Get 10 points from the Graph
instructions.
screen
© can be at the beginning or anywhere in the
line. Everything to the right of ©, to the end :For i,1,10 © This loops 10
times
of the line, is the comment. ©

0b, 0h µ j [B] keys, µ j [H] keys


0b binaryNumber In Dec base mode:
0h hexadecimalNumber
0b10+0hF+10 ¸ 27
A binary number can have up to 32 digits.
A hexadecimal number can have up to 8.
Zero, not the letter O, followed by b or h.
In Bin base mode:
0b10+0hF+10 ¸ 0b11011
Denotes a binary or hexadecimal number,
respectively. To enter a binary or hex
number, you must enter the 0b or 0h In Hex base mode:
prefix regardless of the Base mode. 0b10+0hF+10 ¸ 0h1B
Without a prefix, a number is treated as
decimal (base 10).
Results are displayed according to the
Base mode.

Appendix A: TI.89 Functions and Instructions 513

APPX-A.DOC TI-89: Appendix A (US English) Joan Terrell Revised: 07/26/98 5:00 PM Printed: 07/26/98 5:01 PM Page 513 of 128
Appendix B:
Reference Information
TI-89 Error Messages.............................................................................. 516

B TI.89 Modes ............................................................................................ 524


TI-89 Character Codes ............................................................................ 529
TI-89 Key Map........................................................................................ 530
Entering Complex Numbers .................................................................... 533
Accuracy Information.............................................................................. 536
System Variables and Reserved Names .................................................. 537
EOSé (Equation Operating System) Hierarchy ..................................... 538
Regression Formulas ............................................................................... 540
Contour Levels and Implicit Plot Algorithm........................................... 542
Runge-Kutta Method ............................................................................... 543

This appendix contains a comprehensive list of TI-89 error


messages and character codes. It also includes information about
how certain TI-89 operations are calculated.

For additional information, refer to Appendix C. For example, if


you have difficulty operating the TI-89, Appendix C contains an
“In Case of Difficulty” section that gives suggestions that may
help you correct the problem.

Appendix B: Reference Information 515

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 08/03/98 1:00 PM Printed: 08/03/98 2:39 PM Page 515 of 30
TI-89 Error Messages

This section lists error messages that may be displayed when input or internal errors are
encountered. The number to the left of each error message represents an internal error
number that is not displayed. If the error occurs inside a Try...EndTry block, the error
number is stored in system variable errornum. Many of the error messages are self-
explanatory and do not require descriptive information. However, additional information
has been added for some error messages.

Error
Number Description

10 A function did not return a value

20 A test did not resolve to TRUE or FALSE


Generally, undefined variables cannot be compared. For example, the test
If a<b will cause this error if either a or b is undefined when the If statement
is executed.

30 Argument cannot be a folder name

40 Argument error

50 Argument mismatch
Two or more arguments must be of the same type. For example,
PtOn expression1,expression2 and PtOn list1,list2 are both valid, but
PtOn expression,list is a mismatch.

60 Argument must be a Boolean expression or integer

70 Argument must be a decimal number

80 Argument must be a label name

90 Argument must be a list

100 Argument must be a matrix

110 Argument must be a Pic

120 Argument must be a Pic or string

130 Argument must be a string

140 Argument must be a variable name


For example, DelVar 12 is invalid because a number cannot be a variable
name.

150 Argument must be an empty folder name

516 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 516 of 30
Error
Number Description

160 Argument must be an expression


For example, zeros(2x+3=0,x) is invalid because the first argument is an
equation.

165 Batteries too low for sending/receiving product code

170 Bound
For the interactive graph math functions like 2:Zero, the lower bound must
be less than the upper bound to define the search interval.

180 Break
The ´ key was pressed during a long calculation or during program
execution.

185 Checksum error

190 Circular definition


This message is displayed to avoid running out of memory during infinite
replacement of variable values during simplification. For example, a+1! a,
where a is an undefined variable, will cause this error.

200 Constraint expression invalid


For example, solve(3x^2ì 4=0, x) | x<0 or x>5 would produce this error
message because the constraint is separated by “or” and not “and.”

210 Data type


An argument is of the wrong data type.

220 Dependent limit


A limit of integration is dependent on the integration variable. For example,
‰(x^2,x,1,x) is not allowed.

225 Diff Eq setup

230 Dimension
A list or matrix index is not valid. For example, if the list {1,2,3,4} is stored
in L1, then L1[5] is a dimension error because L1 only contains four
elements.

240 Dimension mismatch


Two or more arguments must be of the same dimension. For example,
[1,2]+[1,2,3] is a dimension mismatch because the matrices contain a
different number of elements.

250 Divide by zero

Appendix B: Reference Information 517

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 517 of 30
Error
Number Description

260 Domain error


An argument must be in a specified domain. For example, ans(100) is not
valid because the argument for ans() must be in the range 1–99.

270 Duplicate variable name

280 Else and ElseIf invalid outside of If..EndIf block

290 EndTry is missing the matching Else statement

295 Excessive iteration

300 Expected 2 or 3-element list or matrix

310 First argument of nSolve must be a univariate equation


The first argument must be an equation, and the equation cannot contain a
non-valued variable other than the variable of interest. For example,
nSolve(3x^2ì 4=0, x) is a valid equation; however, nSolve(3x^2ì 4, x) is not an
equation, and nSolve(3x^2ì y=0,x) is not a univariate equation because y has
no value in this example.

320 First argument of solve or cSolve must be an equation or inequality


For example, solve(3x^2ì 4, x) is invalid because the first argument is not an
equation.

330 Folder
An attempt was made in the VAR-LINK menu to store a variable in a folder
that does not exist.

335 Graph functions y1(x)...y99(x) not available in Diff Equations mode

345 Inconsistent units

350 Index out of range

360 Indirection string is not a valid variable name

380 Invalid ans()

390 Invalid assignment

400 Invalid assignment value

518 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 518 of 30
Error
Number Description

405 Invalid axes

410 Invalid command

420 Invalid folder name

430 Invalid for the current mode settings

440 Invalid implied multiply


For example, x(x+1) is invalid; whereas, xù (x+1) is the correct syntax. This is
to avoid confusion between implied multiplication and function calls.

450 Invalid in a function or current expression


Only certain commands are valid in a user-defined function. Entries that are
made in the Window Editor, Table Editor, Data/Matrix Editor, and Solver,
as well as system prompts such as Lower Bound cannot contain any
commands or a colon (:). See also “Creating and Evaluating User-Defined
Functions” in Chapter 5.

460 Invalid in Custom..EndCustm block

470 Invalid in Dialog..EndDlog block

480 Invalid in Toolbar..EndTBar block

490 Invalid in Try..EndTry block

500 Invalid label


Label names must follow the same rules used for naming variables.

510 Invalid list or matrix


For example, a list inside a list such as {2,{3,4}} is not valid.

520 Invalid outside Custom..EndCustm or ToolBar..EndTbar blocks


For example, an Item command is attempted outside a Custom or ToolBar
structure.

530 Invalid outside Dialog..EndDlog, Custom..EndCustm, or ToolBar..EndTBar blocks


For example, a Title command is attempted outside a Dialog, Custom, or
ToolBar structure.

540 Invalid outside Dialog..EndDlog block


For example, the DropDown command is attempted outside a Dialog
structure.

550 Invalid outside function or program


A number of commands are not valid outside a program or a function. For
example, Local cannot be used unless it is in a program or function.

Appendix B: Reference Information 519

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 519 of 30
Error
Number Description

560 Invalid outside Loop..EndLoop, For..EndFor, or While..EndWhile blocks


For example, the Exit command is valid only inside these loop blocks.

570 Invalid pathname


For example, \\var is invalid.

575 Invalid polar complex

580 Invalid program reference


Programs cannot be referenced within functions or expressions such as
1+p(x) where p is a program.

590 Invalid syntax block


A Dialog..EndDlog block is empty or has more than one title. A
Custom..EndCustm block cannot contain PIC variables, and items must be
preceded by a title. A Toolbar..EndTBar block must have a second argument
if no items follow; or items must have a second argument and must be
preceded by a title.

600 Invalid table

605 Invalid use of units

610 Invalid variable name in a Local statement

620 Invalid variable or function name

630 Invalid variable reference

640 Invalid vector syntax

650 Link transmission


A transmission between two units was not completed. Verify that the
connecting cable is connected firmly to both units.

665 Matrix not diagonalizable

670 Memory
673 The calculation required more memory than was available at that time. If
you get this error when you run a large program, you may need to break the
program into separate, smaller programs or functions (where one program
or function calls another).

680 Missing (

520 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 520 of 30
Error
Number Description

690 Missing )

700 Missing "

710 Missing ]

720 Missing }

730 Missing start or end of block syntax

740 Missing Then in the If..EndIf block

750 Name is not a function or program

765 No functions selected

780 No solution found


Using the interactive math features (F5:Math) in the Graph application can
give this error. For example, if you attempt to find an inflection point of the
parabola y1(x)=xñ , which does not exist, this error will be displayed.

790 Non-algebraic variable in expression


If a is the name of a PIC, GDB, MAC, FIG, etc., a+1 is invalid. Use a different
variable name in the expression or delete the variable.

800 Non-real result


For example, if the unit is in the REAL setting of the Complex Format mode,
ln(ë 2) is invalid.

810 Not enough memory to save current variable. Please delete unneeded variables on
the Var-Link screen and re-open editor as current OR re-open editor and use F1 8 to
clear editor.
This error message is caused by very low memory conditions inside the
Data/Matrix Editor.

830 Overflow

840 Plot setup

Appendix B: Reference Information 521

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 521 of 30
Error
Number Description

850 Program not found


A program reference inside another program could not be found in the
provided path during execution.

860 Recursion is limited to 255 calls deep

870 Reserved name or system variable

880 Sequence setup

885 Signature error

890 Singular matrix

895 Slope fields need one selected function and are used for 1st-order equations only

900 Stat

910 Syntax
The structure of the entry is incorrect. For example, x+ì y (x plus minus y)
is invalid; whereas, x+ë y (x plus negative y) is correct.

930 Too few arguments


The expression or equation is missing one or more arguments. For
example, d(f(x)) is invalid; whereas, d(f(x),x) is the correct syntax.

940 Too many arguments


The expression or equation contains an excessive number of arguments
and cannot be evaluated.

950 Too many subscripts

955 Too many undefined variables

960 Undefined variable

965 Unlicensed product code

970 Variable in use so references or changes are not allowed

980 Variable is locked, protected, or archived

990 Variable name is limited to 8 characters

1000 Window variables domain

1010 Zoom

522 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 522 of 30
Error
Number Description

Warning: ˆ^0 or undef^0 replaced by 1

Warning: 0^0 replaced by 1

Warning: 1^ˆ or 1^undef replaced by 1

Warning: cSolve may specify more zeros

Warning: May produce false equation

Warning: Expected finite real integrand

Warning: May not be fully simplified

Warning: More solutions may exist

Warning: May introduce false solutions

Warning: Operation may lose solutions

Warning: Requires & returns 32 bit value

Warning: Overflow replaced by ˆ or ë ˆ

Warning: Questionable accuracy

Warning: Questionable solution

Warning: Solve may specify more zeros

Warning: Trig argument too big to reduce

Appendix B: Reference Information 523

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 523 of 30
TI-89 Modes

This section describes the modes of the TI-89 and lists the
possible settings of each mode. These mode settings are
displayed when you press 3.

Graph Specifies the type of graphs you can plot.

1:FUNCTION y(x) functions (Chapter 6)

2:PARAMETRIC x(t) and y(t) parametric equations (Chapter 7)

3:POLAR r(q) polar equations (Chapter 8)

4:SEQUENCE u(n) sequences (Chapter 9)

5:3D z(x,y) 3D equations (Chapter 10)

6:DIFF EQUATIONS y'(t) differential equations (Chapter 11)

Note: If you use a split screen with Number of Graphs = 2, Graph is for
the top or left part of the screen and Graph 2 is for the bottom or
right part.

Current Folder Specifies the current folder. You can set up multiple folders with
unique configurations of variables, graph databases, programs, etc.

Note: For detailed 1:main Default folder included with the TI-89.
information about using
folders, see Chapter 5. 2: — Other folders are available only if they have been
(custom folders) created by a user.

Display Digits Selects the number of digits. These decimal settings affect only how
results are displayed—you can enter a number in any format.
Internally, the TI-89 retains decimal numbers with 14 significant
digits. For display purposes, such numbers are rounded to a
maximum of 12 significant digits.

1:FIX 0 Results are always displayed with the selected


2:FIX 1 number of decimal places.

D:FIX 12

E:FLOAT The number of decimal places varies, depending


on the result.
F:FLOAT 1 If the integer part has more than the selected
G:FLOAT 2 number of digits, the result is rounded and
… displayed in scientific notation.
Q:FLOAT 12
For example, in FLOAT 4:
12345. is shown as 1.235E4

524 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 524 of 30
Angle Specifies the units in which angle values are interpreted and
displayed in trig functions and polar/rectangular conversions.

1:RADIAN

2:DEGREE

Exponential Format Specifies which notation format should be used. These formats
affect only how an answer is displayed; you can enter a number in
any format. Numeric answers can be displayed with up to 12 digits
and a 3-digit exponent.

1:NORMAL Expresses numbers in standard format. For


example, 12345.67
2:SCIENTIFIC Expresses numbers in two parts:
¦ The significant digits display with one digit to
the left of the decimal.
¦ The power of 10 displays to the right of E.
For example, 1.234567E4 means 1.234567×10 4
3:ENGINEERING Similar to scientific notation. However:
¦ The number may have one, two, or three
digits before the decimal.
¦ The power-of-10 exponent is a multiple of
three.
For example, 12.34567E3 means 12.34567×10 3

Note: If you select NORMAL, but the answer cannot be displayed in


the number of digits selected by Display Digits, the TI-89 displays the
answer in SCIENTIFIC notation. If Display Digits = FLOAT, scientific
notation will be used for exponents of 12 or more and exponents of
ì4 or less.

Complex Format Specifies whether complex results are displayed and, if so, their
format.

1:REAL Does not display complex results. (If a result is a


complex number and the input does not contain
the complex unit i, an error message is
displayed.)
2:RECTANGULAR Displays complex numbers in the form: a+bi
3:POLAR Displays complex numbers in the form: re i q

Appendix B: Reference Information 525

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 525 of 30
Vector Format Determines how 2-element and 3-element vectors are displayed. You
can enter vectors in any of the coordinate systems.

1:RECTANGULAR Coordinates are in terms of x, y, and z. For


example, [3,5,2] represents x = 3, y = 5, and z = 2.
2:CYLINDRICAL Coordinates are in terms of r, q, and z. For
example, [3,∠45,2] represents r = 3, q = 45, and
z = 2.

3:SPHERICAL Coordinates are in terms of r, q, and f. For


example, [3, ∠45, ∠90] represents r = 3, q = 45, and
f = 90.

Pretty Print Determines how results are displayed on the Home screen.

1:OFF Results are displayed in a linear, one-


dimensional form.
For example, p^2, p/2, or ‡((x-3)/x)
2:ON Results are displayed in conventional
mathematical format.

p xì3
For example, p 2, , or
2 x

Note: For a complete description of these settings, refer to “Formats


of Displayed Results” in Chapter 2.

Split Screen Lets you split the screen into two parts. For example, you can
display a graph and see the Y= Editor at the same time (Chapter 14).

1:FULL The screen is not split.


2:TOP-BOTTOM The applications are shown in two screens that
are above and below each other.
3:LEFT-RIGHT The applications are shown in two screens that
are to the left and right of each other.

To determine what and how information is displayed on a split


screen, use this mode in conjunction with other modes such as
Split 1 App, Split 2 App, and Number of Graphs.

526 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 526 of 30
Split 1 App Specifies which application is displayed on the screen.
and ¦ For a full screen, only Split 1 App is active.
Split 2 App
¦ For a split screen, Split 1 App is the top or left part of the screen
and Split 2 App is the bottom or right part.
The available application choices are those listed when you press B
from the Page 2 mode screen or when you press O. You must have
different applications in each screen unless you are in 2-graph mode.

Number of Graphs Specifies whether both parts of a split screen can display graphs at
the same time.

1 Only one part can display graphs.


2 Both parts can display an independent graph
screen (Graph or Graph 2 setting) with
independent settings.

Graph 2 Specifies the type of graphs that you can plot for the second graph
on a two-graph split screen. This is active only when Number of
Graphs = 2. In this two-graph setting, Graph sets the type of graph for
the top or left part of the split screen, and Graph 2 sets the bottom or
right part. The available choices are the same as for Graph.

Exact/Approx Specifies how fractional and symbolic expressions are calculated


and displayed. By retaining rational and symbolic forms in the
EXACT setting, the TI-89 increases precision by eliminating most
numeric rounding errors.

1:AUTO Uses EXACT setting in most cases. However,


uses APPROXIMATE if the entry contains a
decimal point.
2:EXACT Displays non-whole-number results in their
rational or symbolic form.
3:APPROXIMATE Displays numeric results in floating-point form.

Note: For a complete description of these settings, refer to “Formats


of Displayed Results” in Chapter 2.

Appendix B: Reference Information 527

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 527 of 30
Base Lets you perform calculations by entering numbers in decimal,
binary, or hexadecimal form.

1:DEC Decimal numbers use 0 - 9 in the base 10 format

2:HEX Hexadecimal numbers use 0 - 9 and A - F in the


base 16 format.

3:BIN Binary numbers use 0 and 1 in the base 2 format.

Unit System Lets you enter a unit for values in an expression, such as 6_m * 4_m
or 23_m/_s * 10_s, convert values from one unit to another within the
same category, and create your own user-defined units.

1:SI Select SI for the metric system of measurements


2:ENG/US Select ENG/US for the non-metric system of
measurements
3:CUSTOM Allows you to select custom defaults.

528 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 528 of 30
TI-89 Character Codes

The char() function lets you refer to any character by its numeric character code. For
example, to display 2 on the Program I/O screen, use Disp char(127). You can use
ord() to find the numeric code of a character. For example, ord("A") returns 65.

1. SOH 43. + 85. U 127. 2 169. ¦ 211. Ó 253. ý


2. STX 44. , 86. V 128. α 170. a 212. Ô 254. þ
3. ETX 45. ì 87. W 129. β 171. « 213. Õ 255. ÿ
4. EOT 46. . 88. X 130. Γ 172. ¬ 214. Ö
5. ENQ 47. / 89. Y 131. γ 173. - 215. ×
6. ACK 48. 0 90. Z 132. ∆ 174. ® 216. Ø
7. BELL 49. 1 91. [ 133. δ 175. - 217. Ù
8. BS 50. 2 92. \ 134. ε 176. ¡ 218. Ú
9. TAB 51. 3 93. ] 135. ζ 177. „ 219. Û
10. LF 52. 4 94. ^ 136. θ 178. ñ 220. Ü
11. ÷ 53. 5 95. _ 137. λ 179. ò 221. Ý
12. FF 54. 6 96. ` 138. ξ 180. ê 222. Þ
13. CR 55. 7 97. a 139. Π 181. µ 223. ß
14. 56. 8 98. b 140. π 182. ¶ 224. à
15. Ÿ 57. 9 99. c 141. ρ 183. ø 225. á
16. é 58. : 100. d 142. Σ 184. +
226. â
17. 7 59. ; 101. e 143. σ 185. ¹ 227. ã
18. 8 60. < 102. f 144. τ 186. o 228. ä
19. 9 61. = 103. g 145. φ 187. » 229. å
20. : 62. > 104. h 146. ψ 188. d 230. æ
21. ← 63. ? 105. i 147. Ω 189. ‰ 231. ç
22. → 64. @ 106. j 148. ω 190. ˆ 232. è
23. ↑ 65. A 107. k 149. E 191. ¿ 233. é
24. ↓ 66. B 108. l 150. e 192. À 234. ê
25. 3 67. C 109. m 151. i 193. Á 235. ë
26. 4 68. D 110. n 152. r
194. Â 236. ì
27. ' 69. E 111. o 153. î 195. Ã 237. í
28. ∪ 70. F 112. p 154. ü 196. Ä 238. î
29. ∩ 71. G 113. q 155. ý 197. Å 239. ï
30. ⊂ 72. H 114. r 156.  198. Æ 240. ð
31. ∈ 73. I 115. s 157. ƒ 199. Ç 241. ñ
32. SPACE 74. J 116. t 158. ‚ 200. È 242. ò
33. ! 75. K 117. u 159.  201. É 243. ó
34. " 76. L 118. v 160. … 202. Ê 244. ô
35. # 77. M 119. w 161. ¡ 203. Ë 245. õ
36. $ 78. N 120. x 162. ¢ 204. Ì 246. ö
37. % 79. O 121. y 163. £ 205. Í 247. ÷
38. & 80. P 122. z 164. ¤ 206. Î 248. ø
39. ' 81. Q 123. { 165. ¥ 207. Ï 249. ù
40. ( 82. R 124. | 166. ¦ 208. Ð 250. ú
41. ) 83. S 125. } 167. § 209. Ñ 251. û
42. * 84. T 126. ~ 168. ‡ 210. Ò 252. ü

Appendix B: Reference Information 529

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 529 of 30
TI-89 Key Map

The getKey() function returns a number that corresponds to the last key pressed,
according to the tables shown in this section. For example, if your program contains a
getKey() function, pressing 2 ˆ will return a value of 273.

Table 1: Key Values for Primary Keys

Key Modifier
None ¤ 2 ¥ j
Assoc. Value Assoc. Value Assoc. Value Assoc. Value Assoc. Value
ƒ F1 268 F1 268 F6 273 Y= 8460 F1 268
„ F2 269 F2 269 F7 274 WINDOW 8461 F2 269
… F3 270 F3 270 F8 275 GRAPH 8462 F3 270
† F4 271 F4 271 F4 271 TblSet 8463 F4 271
‡ F5 272 F5 272 F5 272 TABLE 8464 F5 272
¥ COPY 24576 CUT 12288
j a-lock
N ESC 264 ESC 264 QUIT 4360 PASTE 8456 ESC 264
O APPS 265 APPS 265 SWITCH 4361 8457 APPS 265
" HOME 277 HOME 277 CUST 4373 HOME 277 HOME 277
3 MODE 266 MODE 266 4 18 _ 95 MODE 266
½ CATLG 278 CATLG 278 i 151 ∞ 190 CATLG 278
0 BS 257 BS 257 INS 4353 DEL 8449 BS 257
M CLEAR 263 CLEAR 263 CLEAR 263 8455 CLEAR 263
Ù x 120 X 88 LN 4184 ex 8280 x 120
Ú y 121 Y 89 SIN 4185 SIN-1 8281 y 121
Û z 122 Z 90 COS 4186 COS-1 8282 z 122
Ü t 116 T 84 TAN 4180 TAN-1 8276 t 116
Z ^ 94 ^ 94 π 140 θ 136 ^ 94
Í | 124 F 70 ° 176 Format d/b 8316 f 102
c ( 40 B 66 { 123 b 98
d ) 41 C 67 } 125  169 c 99
b , 44 D 68 [ 91 8236 d 100
e / 47 E 69 ] 93 ! 33 e 101
p * 42 J 74 ‡ 4138 & 38 j 106
| - 45 O 79 VAR-LNK 4141 Contr. - o 111
« + 43 U 85 CHAR 4139 Contr. + u 117

530 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 530 of 30
Table 1: Key Values for Primary Keys (Continued)

Key Modifier
None ¤ 2 ¥ j
Assoc. Value Assoc. Value Assoc. Value Assoc. Value Assoc. Value
¸ CR 13 CR 13 ENTRY 4109 APPROX 8205 CR 13
§ STO4 258 P 80 RCL 4354 @ 64 p 112
Á = 61 A 65 ' 39 ƒ 157 a 97
^ EE 149 K 75 ∠ 159 SYMB 8341 k 107
· - 173 SPACE 32 ANS 4372 8365 SPACE 32
¶ . 46 W 87 > 62 ‚ 158 w 119
µ 0 48 V 86 < 60  156 v 118
¨ 1 49 Q 81 " 34 8241 q 113
© 2 50 R 82 \ 92 8242 r 114
ª 3 51 S 83 UNITS 4147 8243 s 115
y 4 52 L 76 : 58 8244 l 108
z 5 53 M 77 MATH 4149 8245 m 109
{ 6 54 N 78 MEM 4150 8246 n 110
m 7 55 G 71 ∫ 4151 8247 g 103
n 8 56 H 72 d 4152 8248 h 104
o 9 57 I 73 ; 59 8249 i 105

Table 2: Arrow Keys


Key Normal ¤ 2 ¥ j
C 338 16722 4434 8530 33106
B 340 16724 4436 8532 33108
D 344 16728 4440 8536 33112
A 337 16721 4433 8529 33105

Appendix B: Reference Information 531

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 531 of 30
Table 3: Greek Letters (prefixed by ¥ c)
Keys Second modifier
j ¤
Assoc. Value Assoc. Value
Á [A] α 128
c [B] β 129
b [D] δ 133 ∆ 132
e [E] ε 134
Í [F] φ 145
m [G] γ 131 Γ 130
y [L] λ 137
z [M] µ 181
§ [P] π 140 Π 139
© [R] ρ 141
ª [S] σ 143 Σ 142
Ü [T] τ 144
¶ [W] ω 148 Ω 147
Ù ξ 138
Ú ψ 146
Û ζ 135

532 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 532 of 30
Entering Complex Numbers

You can enter complex numbers in the polar form (rq), where
r is the magnitude and q is the angle, or polar form r e i q. You
can also enter complex numbers in rectangular form a+bi

Overview of A complex number has real and imaginary components that identify
Complex Numbers a point in the complex plane. These components are measured along
the real and imaginary axes, which are similar to the x and y axes in
the real plane.
Imaginary
The point can be expressed in a Expressed as
rectangular form or in either of a+bi, r e i q , or
two polar forms. (rq)
r b
The i symbol represents the
imaginary number À L1 . θ

Real

As shown below, the form that you can enter depends on the current
Angle mode.

You can use the form: When the Angle mode setting is:
a+bi Radian or Degree

rei q Radian only


(In Degree angle mode, this form causes a
Domain error.)

(rq) Radian or Degree

Use the following methods to enter a complex number.

To enter the: Do this:


Note: To get the i symbol, Rectangular form Substitute the applicable values or variable
press 2 ) (second a+bi names for a and b.
function of ½). Do not
simply type j [ I ] . a«b2)

For example:

Appendix B: Reference Information 533

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 533 of 30
To enter the: Do this:
Important: Do not use the Polar form Substitute the applicable values or variable
r e i q polar form in Degree re iq names for r and q, where q is interpreted
angle mode. It will cause a
Domain error.
– or – according to the Angle mode setting.
(rq)
j [R] ¥ s 2 ) ¥ q d
Note: To get the e symbol,
press ¥ s. Do not – or –
Parentheses are
simply type j [E]. required for the
c j [R] 2 ’ ¥ q d
(rq) form.
Tip: To get the  symbol, For example:
press 2 ’.

Tip: To enter q in degrees


for (rq), you can type a ¡
symbol (such as 45¡). To
get the ¡ symbol, press
2 “. You should not use
degrees for r e i q.
Results are shown in rectangular
form, but you can select polar form.

Complex Format Use 3 to set the


Mode for Displaying Complex Format mode
Results to one of three settings.

You can enter a complex number at any time, regardless of the


Complex Format mode setting. However, the mode setting determines
how results are displayed.

If Complex Format is: The TI-89:


Note: You can enter REAL Will not display complex results unless you:
complex numbers in any
form (or a mixture of all ¦ Enter a complex number.
forms) depending on the – or –
Angle mode.
¦ Use a complex function such as
cFactor(), cSolve(), or cZeros().
If complex results are displayed, they will
be shown in either a+bi or r e i q form.
RECTANGULAR Displays complex results as a+bi.
POLAR Displays complex results as:
¦ r e i q if the Angle mode = Radian
– or –
¦ (rq) if the Angle mode = Degree

534 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 534 of 30
Using Complex Regardless of the Complex Format mode setting, undefined variables
Variables in are treated as real numbers. To perform complex symbolic analysis,
Symbolic you can use either of the following methods to set up a complex
Calculations variable.

Method 1: Use an underscore _ ( ¥ ) as the last character in the


variable name to designate a complex variable. For example:
Note: For best results in z_ is treated as a
calculations such as complex variable
cSolve() and cZeros(), use
Method 1. (unless z already
exists, in which case
it retains its existing
data type).

Method 2: Define a complex variable. For example:


x+yi!z

Then z is treated as a
complex variable.

Complex Numbers Radian angle mode is recommended for complex number


and Degree Mode calculations. Internally, the TI-89 converts all entered trig values to
radians, but it does not convert values for exponential, logarithmic,
or hyperbolic functions.
Note: If you use Degree In Degree angle mode, complex identities such as e^(iq) = cos(q) +
angle mode, you must make i sin(q) are not generally true because the values for cos and sin are
polar entries in the form
(rq). In Degree angle converted to radians, while those for e^( ) are not. For example,
mode, an r e i q entry causes e^(i45) = cos(45) + i sin(45) is treated internally as e^(i45) =
an error. cos(p/4) + i sin(p/4). Complex identities are always true in Radian
angle mode.

Appendix B: Reference Information 535

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 535 of 30
Accuracy Information

To maximize accuracy, the TI-89 carries more digits internally


than it displays.

Computational Floating-point (decimal) values in memory are stored using up to 14


Accuracy digits with a 3-digit exponent.
¦ For min and max Window variables (xmin, xmax, ymin, ymax, etc.),
you can store values using up to 12 digits. Other Window
variables use 14 digits.
¦ When a floating-point value is displayed, the displayed value is
rounded as specified by the applicable mode settings (Display
Digits, Exponential Format, etc.), with a maximum of 12 digits and a
3-digit exponent.
¦ RegEQ displays up to 14-digit coefficients.
Integer values in memory are stored using up to 614 digits.

Graphing Accuracy The Window variable xmin is the center of the leftmost pixel used,
and xmax is the center of the rightmost pixel used. @x is the distance
between the centers of two horizontally adjacent pixels.
Note: For a table that lists ¦ @x is calculated as (xmax ì xmin) / (# of x pixels ì 1).
the number of pixels in a full
screen or split screen, refer ¦ If @x is entered from the Home screen or a program, xmax is
to “Setting and Exiting the calculated as xmin + @x ù (# of x pixels ì 1).
Split Screen Mode” in
Chapter 14. The Window variable ymin is the center of the bottom pixel used, and
ymax is the center of the top pixel used. @y is the distance between
the centers of two vertically adjacent pixels.
¦ @y is calculated as (ymax ì ymin) / (# of y pixels ì 1).
¦ If @y is entered from the Home screen or a program, ymax is
calculated as ymin + @y ù (# of y pixels ì 1).
Cursor coordinates are displayed as eight characters (which may
include a negative sign, decimal point, and exponent). The
coordinate values (xc, yc, zc, etc.) are updated with a maximum of
12-digit accuracy.

536 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 536 of 30
System Variables and Reserved Names

This section lists the names of system variables and reserved


function names that are used by the TI-89. Only those system
variables and reserved function names that are identified by
an asterisk (*) can be deleted by using DelVar var on the entry
line.

Graph y1(x)–y99(x)* y1'(t)–y99'(t)* yi1–yi99* r1(q)–r99(q)*


xt1(t)–xt99(t)* yt1(t)– yt99(t)* z1(x,y)–z99(x,y)* u1(n)–u99(n)*
ui1–ui99* xc yc zc
tc rc qc nc
xfact yfact zfact xmin
xmax xscl xgrid ymin
ymax yscl ygrid xres
@x @y zmin zmax
zscl eyeq eyef eyeψ
ncontour qmin qmax qstep
tmin tmax tstep t0
tplot ncurves diftol dtime
Estep fldpic fldres nmin
nmax plotStrt plotStep sysMath

Graph Zoom zxmin zxmax zxscl zxgrid


zymin zymax zyscl zygrid
zxres zqmin zqmax zqstep
ztmin ztmax ztstep zt0de
ztmaxde ztstepde ztplotde zzmin
zzmax zzscl zeyeq zeyef
zeyeψ znmin znmax zpltstrt
zpltstep

Statistics x y Gx sx
Gx2 Gxy Gy sy
Gy 2 corr maxX maxY
medStat medx1 medx2 medx3
medy1 medy2 medy3 minX
minY nStat q1 q3
regCoef* regEq(x)* seed1 seed2
Sx Sy R2

Table tblStart @tbl tblInput

Data/Matrix c1–c99 sysData*

Miscellaneous main ok errornum

Solver eqn* exp*

Appendix B: Reference Information 537

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 537 of 30
EOSé (Equation Operating System) Hierarchy

This section describes the Equation Operating System


(EOSé) that is used by the TI-89. Numbers, variables, and
functions are entered in a simple, straightforward sequence.
EOS evaluates expressions and equations using parenthetical
grouping and according to the priorities described below.

Order of Evaluation Level Operator


1 Parentheses ( ), brackets [ ], braces { }
2 Indirection (#)
3 Function calls
4 Post operators: degrees-minutes-seconds (ó,',"), factorial (!),
percentage (%), radian (ô), subscript ([ ]), transpose (î)
5 Exponentiation, power operator (^)
6 Negation (ë)
7 String concatenation (&)
8 Multiplication (ù), division (/)
9 Addition (+), subtraction (ì)
10 Equality relations: equal (=), not equal (ƒ or /=),
less than (<), less than or equal ( or <=), greater than (>),
greater than or equal (‚ or >=)
11 Logical not
12 Logical and
13 Logical or, exclusive logical xor
14 Constraint “with” operator (|)
15 Store (!)

Parentheses, All calculations inside a pair of parentheses, brackets, or braces are


Brackets, and evaluated first. For example, in the expression 4(1+2), EOS first
Braces evaluates the portion of the expression inside the parentheses, 1+2,
and then multiplies the result, 3, by 4.
The number of opening and closing parentheses, brackets, and
braces must be the same within an expression or equation. If not, an
error message is displayed that indicates the missing element. For
example, (1+2)/(3+4 will display the error message “Missing ).”
Note: Because the TI-89 allows you to define your own functions, a
variable name followed by an expression in parentheses is
considered a “function call” instead of implied multiplication. For
example a(b+c) is the function a evaluated by b+c. To multiply the
expression b+c by the variable a, use explicit multiplication: aù(b+c).

538 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 538 of 30
Indirection The indirection operator (#) converts a string to a variable or
function name. For example, #(“x”&”y”&”z”) creates the variable name
xyz. Indirection also allows the creation and modification of
variables from inside a program. For example, if 10!r and “r”!s1, then
#s1=10.

Post Operators Post operators are operators that come directly after an argument,
such as 5!, 25%, or 60ó15' 45". Arguments followed by a post operator
are evaluated at the fourth priority level. For example, in the
expression 4^3!, 3! is evaluated first. The result, 6, then becomes the
exponent of 4 to yield 4096.
Exponentiation Exponentiation (^) and element-by-element exponentiation (.^) are
evaluated from right to left. For example, the expression 2^3^2 is
evaluated the same as 2^(3^2) to produce 512. This is different from
(2^3)^2, which is 64.

Negation To enter a negative number, press · followed by the number. Post


operations and exponentiation are performed before negation. For
example, the result of ëx 2 is a negative number, and ë92 =ë81. Use
parentheses to square a negative number such as (ë9)2 to produce
81. Note also that negative 5 (ë5) is different from minus 5 (ì5), and
ë3! evaluates as ë(3!).

Constraint (|) The argument following the “with” (|) operator provides a set of
constraints that affect the evaluation of the argument preceding the
“with” operator.

Appendix B: Reference Information 539

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 539 of 30
Regression Formulas

This section describes how the statistical regressions are


calculated.

Least-Squares Most of the regressions use non-linear recursive least-squares


Algorithm techniques to optimize the following cost function, which is the sum
of the squares of the residual errors:
N
J= ∑ [ residualExpression]
i =1
2

where: residualExpression is in terms of x i and y i


x i is the independent variable list
y i is the dependent variable list
N is the dimension of the lists
This technique attempts to recursively estimate the constants in the
model expression to make J as small as possible.
For example, y=a sin(bx+c)+d is the model equation for SinReg. So
its residual expression is:
a sin(bx i+c)+dì yi
For SinReg, therefore, the least-squares algorithm finds the
constants a, b, c, and d that minimize the function:
N
J= ∑[a sin(bx + c) + d − y ]
i =1
i i
2

Regressions Regression Description


CubicReg Uses the least-squares algorithm to fit the third-order
polynomial:
y=ax 3+bx2+cx+d
For four data points, the equation is a polynomial fit;
for five or more, it is a polynomial regression. At
least four data points are required.
ExpReg Uses the least-squares algorithm and transformed
values x and ln(y) to fit the model equation:
y=ab x
LinReg Uses the least-squares algorithm to fit the model
equation:
y=ax+b
where a is the slope and b is the y-intercept.

540 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 540 of 30
Regression Description
LnReg Uses the least-squares algorithm and transformed
values ln(x) and y to fit the model equation:
y=a+b ln(x)
Logistic Uses the least-squares algorithm to fit the model
equation:
y=c/(1+a e ì bx)
MedMed Uses the median-median line (resistant line)
technique to calculate summary points x1, y1, x2, y2,
x3, and y3, and fits the model equation:
y=ax+b
where a is the slope and b is the y-intercept.
PowerReg Uses the least-squares algorithm and transformed
values ln(x) and ln(y) to fit the model equation:
y=ax b
QuadReg Uses the least-squares algorithm to fit the second-
order polynomial:
y=ax 2+bx+c
For three data points, the equation is a polynomial fit;
for four or more, it is a polynomial regression. At
least three data points are required.
QuartReg Uses the least-squares algorithm to fit the fourth-
order polynomial:
y=ax 4+bx3+cx2+dx+e
For five data points, the equation is a polynomial fit;
for six or more, it is a polynomial regression. At least
five data points are required.
SinReg Uses the least-squares algorithm to fit the model
equation:
y=a sin(bx+c)+d

Appendix B: Reference Information 541

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 541 of 30
Contour Levels and Implicit Plot Algorithm

Contours are calculated and plotted by the following method.


An implicit plot is the same as a contour, except that an implicit
plot is for the z=0 contour only.

Algorithm Based on your x and y Window variables, the distance between xmin
and xmax and between ymin and ymax is divided into a number of grid
lines specified by xgrid and ygrid. These grid lines intersect to form a
series of rectangles.

z 1 =f(x 1 ,y 1 ) z 3 =f(x 2 ,y 1 )
For each rectangle, the equation is
evaluated at each of the four E
corners (also called vertices or
grid points) and an average value
(E) is calculated: z 4 =f(x 2 ,y 2 )
z 2 =f(x 1 ,y 2 )
z1 + z2 + z3 + z4
E=
4

The E value is treated as the value of the equation at the center of the
rectangle.
For each specified contour value
(C i):
z 1 ìC i z 3 ìC i
¦ At each of the five points
EìC i
shown to the right, the
difference between the point’s
z value and the contour value
is calculated. z 2 ìC i z 4 ìC i

¦ A sign change between any two adjacent points implies that a


contour crosses the line that joins those two points. Linear
interpolation is used to approximate where the zero crosses the
line.
¦ Within the rectangle, any zero
crossings are connected with
straight lines.
¦ This process is repeated for
each contour value.
Each rectangle in the grid is treated similarly.

542 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 542 of 30
Runge-Kutta Method

For Runge-Kutta integrations of ordinary differential equations,


the TI-89 uses the Bogacki-Shampine 3(2) formula as found in
the journal Applied Math Letters, 2 (1989), pp. 1–9.

Bogacki-Shampine The Bogacki-Shampine 3(2) formula provides a result of 3rd-order


3(2) Formula accuracy and an error estimate based on an embedded 2nd-order
formula. For a problem of the form:
y' = ƒ(x, y)
and a given step size h, the Bogacki-Shampine formula can be
written:
F 1 = ƒ(xn, yn)
1 1
(
F2 = ƒ xn + h , yn + h F 1
2 2
)
3 3
(
F3 = ƒ xn + h , yn + h F 2
4 4
)

yn+1 = yn + h ( 29 F 1 + 13 F 2 + 49 F 3)
xn+1 = xn + h

F4 = ƒ (xn+1 , yn+1)

errest = h ( 725 F 1 ì 121 F 2 ì 19 F 3 + 18 F 4)


The error estimate errest is used to control the step size
automatically. For a thorough discussion of how this can be done,
refer to Numerical Solution of Ordinary Differential Equations by
L. F. Shampine (New York: Chapman & Hall, 1994).
The TI-89 software does not adjust the step size to land on particular
output points. Rather, it takes the biggest steps that it can (based on
the error tolerance diftol) and obtains results for xn  x  xn+1 using
the cubic interpolating polynomial passing through the point (xn , yn)
with slope F 1 and through (xn+1 , yn+1) with slope F 4. The interpolant
is efficient and provides results throughout the step that are just as
accurate as the results at the ends of the step.

Appendix B: Reference Information 543

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 543 of 30
544 Appendix B: Reference Information

APPX-B.DOC TI-89: Reference Information (US English) Joan Terrell Revised: 07/29/98 2:01 PM Printed: 07/29/98 2:03 PM Page 544 of 30
Appendix C:
Service and Warranty Information
Battery Information .............................................................................. 546
In Case of Difficulty .............................................................................. 547

C Information about TI Products, Service, and Warranty ................... 548

This appendix provides supplemental information that may be


helpful as you use the TI-89. It includes procedures that may help
you correct problems with the TI-89, and it describes the service
and warranty provided by Texas Instruments.

When the BATT indicator appears in the status line, it is time to


change the batteries.

Appendix C: Service and Warranty Information 545

APPX-C.DOC TI-89:Appendix C (US English) Joan Terrell Revised: 08/03/98 1:01 PM Printed: 08/03/98 2:39 PM Page 545 of 6
Battery Information

The TI-89 uses two types of batteries: four AAA alkaline


batteries, and a lithium battery as a backup for retaining
memory while you change the AAA batteries.

When to Replace As the AAA batteries run down, the display will begin to dim
the Batteries (especially during calculations). To compensate for this, you will
need to adjust the contrast to a higher setting. If you find it necessary
to increase the contrast setting frequently, you will need to replace
the AAA batteries. To assist you, a BATT indicator ( ) will display
in the status line area when the batteries have drained down to the
Note: To avoid loss of point when you should replace them soon. When the BATT indicator
information stored in is displayed in reverse text ( ), you must replace the AAA
memory, the TI-89 must be
off; also do not remove the batteries immediately.
AAA batteries and the
lithium battery at the same The lithium backup battery is inside the battery compartment, above
time. the AAA batteries. To avoid loss of data, do not remove the lithium
battery unless four fresh AAA batteries are installed. Replace the
lithium backup battery about every three or four years.

Effects of Replacing If you do not remove both types of batteries at the same time or
the Batteries allow them to run down completely, you can change either type of
battery without losing anything in memory.

Replacing the AAA 1. If the calculator is on, turn it off (press 2 ®) to avoid loss of
Batteries information stored in memory.
2. Slide the protective cover over the keyboard.
3. Holding the calculator upright, push down on the battery cover
latch, and then remove the cover.
4. Remove all four discharged AAA batteries.
CAUTION: Dispose of used batteries properly. Do not
incinerate them or leave them within reach of small
children.
5. Install four new AAA alkaline batteries, arranged according to the
polarity (+ and -) diagram inside the battery compartment.
6. Replace the battery cover by inserting the two prongs into the
two slots at the bottom of the battery compartment, and then
push the cover until the latch snaps closed.

Replacing the To replace the lithium backup battery, remove the battery cover and
Lithium Battery unscrew the tiny screw holding the BACK UP BATTERY cover in
place. Install a new CR1616 or CR1620 battery according to the
polarity (+ and -) diagram on the cover. Replace the cover and the
screw.

546 Appendix C: Service and Warranty Information

APPX-C.DOC
APPX-C DOC TI-89:Appendix C (US English) Joan Terrell Revised: 07/29/98 11:57 AM Printed: 07/29/98 2:06 PM Page 546 of 6
In Case of Difficulty

If you have difficulty operating the TI-89, the following


suggestions may help you correct the problem.

Suggestions If: Suggested action:

You cannot see anything on Press ¥ « to darken or ¥ | to


the display. lighten the display contrast.

The BATT indicator is Replace the batteries as described


displayed. on page 546. If BATT is displayed in
reverse text ( ), replace the
batteries as soon as possible.
The BUSY indicator is A calculation is in progress. If you
displayed. want to stop the calculation, press
´.
The PAUSE indicator is A graph or program is paused and
displayed. the TI-89 is waiting for input; press
¸.
An error message is Refer to Appendix B for a list of
displayed. error messages. Press N to clear.
The TI-89 does not appear to Press N several times to exit any
be working properly. menu or dialog box and to return
the cursor to the entry line.
— or —
Be sure that the batteries are
installed properly and that they are
fresh.
Note: Correcting a “lock up” The TI-89 appears to be 1. Remove one of the four AAA
will reset your TI-89 and
clear its memory. “locked up” and will not batteries. Refer to page 546.
respond to keyboard input.
2. Press and hold · and d as you
reinstall the battery.
3. Continue holding · and d for
five seconds before releasing.

Appendix C: Service and Warranty Information 547

APPX-C.DOC TI-89:Appendix C (US English) Joan Terrell Revised: 07/29/98 11:57 AM Printed: 07/29/98 2:06 PM Page 547 of 6
Information about TI Products, Service, and Warranty

For additional information about TI products, service, and


warranty, please see below.

For U.S. Customers General


Only Questions
Call Texas Instruments Customer Support:
1.800.TI.CARES (1.800.842.2737)

Technical Call the Programming Assistance Group of Customer Support:


Questions 1.972.917.8324

Service Information Always contact Texas Instruments Customer Support before


returning a product for service.

Customer Support 8:00AM – 4:25PM CST on Monday – Thursday and


Hours 10:00AM – 4:25PM CST on Friday
For more information about TI products and services, contact TI by
e-mail or visit the TI calculator home page on the World Wide Web.
e-mail address:
ti-cares@ti.com

internet address:
http://www.ti.com/calc

One-Year Limited This Texas Instruments electronic product warranty extends only to
Warranty for the original purchaser and user of the product.
Commercial Warranty Duration. This Texas Instruments electronic product is
Electronic Product warranted to the original purchaser for a period of one (1) year from
(for U.S. only) the original purchase date.
Warranty Coverage. This Texas Instruments electronic product is
warranted against defective materials and construction. THIS
WARRANTY IS VOID IF THE PRODUCT HAS BEEN DAMAGED BY
ACCIDENT OR UNREASONABLE USE, NEGLECT, IMPROPER
SERVICE, OR OTHER CAUSES NOT ARISING OUT OF DEFECTS IN
MATERIALS OR CONSTRUCTION.
Warranty Disclaimers. ANY IMPLIED WARRANTIES ARISING OUT OF
THIS SALE, INCLUDING BUT NOT LIMITED TO THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE, ARE LIMITED IN DURATION TO THE ABOVE
ONE-YEAR PERIOD. TEXAS INSTRUMENTS SHALL NOT BE LIABLE
FOR LOSS OF USE OF THE PRODUCT OR OTHER INCIDENTAL OR
CONSEQUENTIAL COSTS, EXPENSES, OR DAMAGES INCURRED BY
THE CONSUMER OR ANY OTHER USER.

548 Appendix C: Service and Warranty Information

APPX-C.DOC
APPX-C DOC TI-89:Appendix C (US English) Joan Terrell Revised: 07/29/98 11:57 AM Printed: 07/29/98 2:06 PM Page 548 of 6
Some states/provinces do not allow the exclusion or limitation of
implied warranties or consequential damages, so the above
limitations or exclusions may not apply to you.
Legal Remedies. This warranty gives you specific legal rights, and
you may also have other rights that vary from state to state or
province to province.
Warranty Performance. During the above one (1) year warranty
period, your defective product will be either repaired or replaced
with a reconditioned model of an equivalent quality (at TI’s option)
when the product is returned, postage prepaid, to Texas Instruments
Service Facility. The warranty of the repaired or replacement unit
will continue for the warranty of the original unit or six (6) months,
whichever is longer. Other than the postage requirement, no charge
will be made for such repair and/or replacement. TI strongly
recommends that you insure the product for value prior to mailing.

For Non-U.S. Customers Only


TI Products and Services Information
For more information about TI products and services, contact TI by
e-mail or visit the TI calculator home page on the World Wide Web.
e-mail address:
ti-cares@ti.com

internet address:
http://www.ti.com/calc

Service and Warranty Information


For information about the length and terms of the warranty or about
product service, refer to the warranty statement enclosed with this
product or contact your local Texas Instruments retailer/distributor.

Appendix C: Service and Warranty Information 549

APPX-C.DOC TI-89:Appendix C (US English) Joan Terrell Revised: 07/29/98 11:57 AM Printed: 07/29/98 2:06 PM Page 549 of 6
550 Appendix C: Service and Warranty Information

APPX-C.DOC
APPX-C DOC TI-89:Appendix C (US English) Joan Terrell Revised: 07/29/98 11:57 AM Printed: 07/29/98 2:06 PM Page 550 of 6
Index

Commands and functions are in bold text. Mathematical operators and symbols are listed
by their actions. For example, ! is listed as "factorial, !". Actions beginning with a number
are listed as if the number were written in alphabetic characters. For example, "3D" is
listed in the Ts as if it were "three D. "

A B C D E F G H I K L M N O P Q R S T U V W–Z

A C
About screen, 44 Calc menu, 63
absolute value, abs( ) , 380 Calculator-Based
accented letters, 312 Laboratory, CBL, 260, 297, 377
accuracy of the TI-89, 536 Ranger, CBR, 261, 297, 377
Algebra menu, 58 calculus operations, 388
algebraic operations, 60, 388 catalog, basics, 36
alpha rules, 15, 307 CBL, Calculator-Based Laboratory, 260, 297, 377
AndPic, 206 CBR, Calculator-Based Ranger, 261, 297, 377
animating ceiling( ) , 367
3D graph, 152 cell
series of graph pictures, 207 delete, 235
annuity, 382 insert, 235
answer too large, 91 locked, 236
APD (Automatic Power Down), 10 character code
APPS, applications basics, 31 char( ) , 529
archive ord( ) , 529
Archive, 344 characters
garbage collection, 345 accented, 311
memory error, 347 Greek, 312
assembly-language, 301 special, 15
augment( ) , 366 clear graph, ClrGraph, 193, 201, 324
auto-calculate, 237 cobweb plot, 135
automatic tables, 214 columns
axes, 153, 179 category, 258
delete, 235
B frequency, 258
backups, 358 headers, 236
batteries inserting, 234
install, 2 locked, 236
lithium, 546 sort, 239
low indicator, BATT, 11, 546, 547 commands, 19, 387
replace, 11, 546 common denominator, comDenom( ) , 62
begin multi-statement function, Func, 195 compatibility, 355
binary complex
divide, 330 factor, cFactor( ) , 384, 534
limits, 330 numbers, 4, 533
prefix, 329 solution, cSolve( ) , 49, 50, 51, 534
to decimal, 4Dec, 329 surface, 158
to hexadecimal, 4Hex, 329 values, 55
bits, 331 zeros, 158
Bogacki-Shampine, 543 zeros, cZeros( ) , 49, 534
box plot, 254 constants, 71
build data, BldData, 181, 182 defaults, 77
special, 68
contact TI, 548

Index 551

INDEX.DOC TI-89: Index (US English) Joan Terrell Revised: 08/03/98 3:40 PM Printed: 08/03/98 3:41 PM Page 551 of 8
contour differential equations
complex modulus surface, 158 axes, 169
draw, DrwCtour, 157 graphing, 167
levels, 155, 542 solution methods, 181
number of, ncontour, 156 solve, deSolve( ) , 184
plots, 155 tools, 171
contrast, adjust, 2, 11 troubleshooting, 185
conversions display result on Program I/O screen, Disp, 271,
number bases, 329 290, 298, 529
temperature range/value, domain constraints, 57
@tmpCnv( ) / tmpCnv( ) , 74 draw
units, 73 as function, DrawFunc, 200
copy, 83 contour, DrwCtour, 157
coordinates to Home screen, 7 erase, 202
text, 306, 308 inverse, DrawInv, 200
variable, CopyVar, 341 on graph, 201
variables, 240 parametric, DrawParm, 200
correlation coefficients, 251 polar, DrawPol, 200
cumulative sum of list, cumSum( ) , 238 slope, DrawSlp, 203
cursor
free-moving, 104 E
in 3D graph, 148, 152 ellipsis, …, 3, 28, 215
keys, 12 Elself, 195
moving, 12 end multi-statement function, EndFunc, 195,
Custom menu, 30, 291 274
custom off, CustmOff, 30 entry line, 3
custom on, CustmOn, 30 edit, 25, 39
cut, 83 on split screens, 224
text, 308 entry( ) , 40
cycle pictures, CyclePic, 207 EOS, equation operating system, 538
equation
D closed-form, 317
darker/lighter, 2, 11 graphing, 324
data points, 191, 248 hierarchy, 538
Data/Matrix Editor, 191, 227 operating system, EOS, 538
auto-calculate, 237 recall, 320
cell values, 231 storing, 320
column headers, 237 transcendental, 317
cumulative sum of list, cumSum( ) , 238 error
lists as column, 237 circular definition, 277
plots, 246 memory, 67, 347
shift( ) , 238 messages, 516
sorting columns, 239 Euler, 181
statistics, 246 execute op-codes, Exec, 302
debug program, 298 expand( ) , 5, 60, 364, 380
decimal expressions, multiple, 20
to binary, 4Bin, 329 eye, in 3D graphing, 150
to hexadecimal, 4Hex, 329
decompose, 372 F
Define, 65, 85, 118, 130, 145, 184, 192, 195, factor( ) , 4, 5, 49, 60, 365, 384
362 factorial, !, 4
delete folder, DelFold, 89 factory default random-number generator seed,
delete variable, DelVar, 48, 65, 279 RandSeed, 366
derivative, d( ) , 6, 64 Fibonacci, 139
1st-order equation, 174, 184
floating-point, ≈, 22, 39, 49, 50, 51, 53, 536
floor( ) , 367

552 Index

INDEX.DOC TI-89: Index (US English) Joan Terrell Revised: 07/29/98 2:08 PM Printed: 07/29/98 2:08 PM Page 552 of 8
fMax( ) , 49 graphing
fMin( ) , 49 basics, 7, 96
folder, 88 differential equations, 167
delete, 89, 340 draw commands, 200
list, 339 family of curves, 196, 197
lock/unlock, 341 parametric, 118
new, 89, 341 pause/stop, 103
rename, 341 piecewise, 194
set, setFold, 89, 288 polar, 124
transmit, 351 sequences, 129
For, 285 simultaneous, 196
functions, 19, 387 statistical plots, 257
analyze, 110 styles, 154
definition, 87 3D, 145
multi-statement, 86, 195 two-graph mode, 197, 221, 223
nested, 194 Y=Editor, 97
user-defined, 65, 193. See also programming Greek, 312
GUI, graphical user interface, 290
G
garbage collection, 345 H
get keypress, getKey( ) , 530 header, column, 236
GetCalc, 353 help, 547, 548
getType( ) , 47 hexadecimal
Goto, 283 divide, 330
graph, 253 limits, 330
arc length, 113 prefix, 329
axes, 169 to binary, 4Bin, 329
center view, QuickCenter, 106 to decimal, 4Dec, 329
clear, ClrGraph, 201, 324 highlight, 84
coordinates, 104 histogram plot, 255
databases, 208 Home screen, 2, 16
delete picture, 206
draw on, 201 I
format, 102, 125, 132, 147, 168 If, 195
Graph, 190, 193, 196 implicit plots, 159
intervals, 111 tracing, 160
labeling, 204 incompatibility, 355
math tools, 110 input string, InputStr, 280, 353
panning, 106 input/output, 289
points, distance, 113 integer division, intDiv( ) , 330
save as picture, 205 integer part, iPart( ) , 128
shading, 100, 114 integrate, ‰( ) , 6, 49, 50, 51, 64
slope, derivative, d( ) , 112
smart, 103
split screen pixels, 222
K
styles, 100, 119, 124, 131, 145, 152, 159, 167 keyboard, 12
tangent line, 113 map, 311
Trace, 105 keys
two-graph mode, 197, 221, 223 cursor, 12
zoom options, 107 get keypress, getKey( ) , 530
Graph Link, 310, 377 modifier, 13
graphical user interface, GUI, 290 values, 530
graphics operations, 388

Index 553

INDEX.DOC TI-89: Index (US English) Joan Terrell Revised: 07/29/98 2:08 PM Printed: 07/29/98 2:08 PM Page 553 of 8
L N
lab report, 315 negative numbers, 18
label, Lbl, 283 new
large answer, 91 data variable, NewData, 237
last answer, ans( ) , 40 folder, NewFold, 89
lighter/darker, 2, 11 plot definition, NewPlot, 254
limit( ) , 64 problem, NewProb, 35
link, 297 numbers
cancel, 351 complex, 4, 215, 533
errors, 351, 360 negative, 18
units, 350, 358 numeric
list derivative, nDeriv( ) , 66
operations, 388 integration, nInt( ) , 66
list to matrix, list4mat, 237 solver, 319
local variable, Local, 274
O
M ON/OFF, 2, 10
Math operators, 6, 331, 538
menu, 110 output/input, 290
tools, 110
math operations, 389 P
matrix parallelepiped, 368
brackets, 228 parametric graphing, 118
cell values, 231 tools, 120
cell width, 233 paste, 83
Data/Matrix Editor, 227 auto-, 41
definition, 228 folder name, 342
editor, 374 from history, 41
fill from list, list4mat, 237 text, 308
headers, 356 variable name, 342
insert row/column, 234 Pause, 298
operations, 389 pause graph, 103
pretty print, 228 phase-plane orbit, 175
random, randMat, 366 pixel
row reduce, rref( ) , 61, 366 coordinates, 222
single row, 191 line between coordinates, PxlLine, 204
store data points, 191 on, PxlOn, 204
memory, 337 plots
error, 347 clearing, 253
manage, 91 contour, 155
menus, 27 custom, 138, 178
Algebra, 58 data, 246
Calc, 63 implicit, 159, 542
Custom, 30, 291 new definition, NewPlot, 254
Math, 110 statistical, 246, 252
Zoom, 107 time, 178
modes, 33, 524 types, statistical, 254
Display Digits, 24 web, 135
Exact/Approx, 22, 49 polar graphing, 124
Exponential Format, 24 tools, 126
Pretty Print, 22 polynomials, 60, 64
modified box plot, 254 predator-prey, 138, 179
multiplication, implied, 19, 118 pretty print, 7, 22, 228, 526
product code, 357, 358

554 Index

INDEX.DOC TI-89: Index (US English) Joan Terrell Revised: 07/29/98 2:08 PM Printed: 07/29/98 2:08 PM Page 554 of 8
programming, 266, 385 session
configuration, 288 Data/Matrix Editor, 229
debug, 298 Text Editor, 305
functions, 273 set
loops, 285 folder, setFold, 288
operations, 390 split screens, 221
strings, 280 table parameters, 212
subroutines, 275 shift( ) , 238, 332
table, 293 simplification
tests, 282, 283 delayed, 54
proper fraction, propFrac( ) , 5, 62, 372 rules, 52
Pythagorean theorem, 362 simult( ) , 61
sinusoidal regression, SinReg, 540
Q smart graph, 103
quadratic software
formula, 364 certificate, 357
function, 373 version, 44
QuickCenter, 106 solve( ) , 5, 49, 50, 51, 61, 184
Quick-Find Locator, 388 split screen, 197, 199, 221, 314, 324, 325, 378
pixel coordinates, 222
switch, 223
R stat results, last computed, ShowStat, 250
RAM, random access memory, 347 statistical
random matrix, randMat, 366 calculations, 247
recall picture, RclPic, 206 last computed stat results, ShowStat, 250
regressions, 540 types, 249
replace picture, RplcPic, 206 operations, 390
reports, 315 plots, 252
reserved names, 537 Data/Matrix Editor, 252
restore graph database settings, RclGDB, 208 graph/trace, 257
Return, 195, 274 types, 254
return string as expression, expr( ) , 356 Y=Editor, 256
rotate( ) , 332 variables, 251. See also variables, system and
row reserved names
delete, 235 statistics and data plots
insert, 234 category column, 258
locked, 236 frequency column, 258
row reduce, rref( ) , 61, 366 status line, 3, 42, 96
Runge-Kutta (RK), 179, 181, 543 stop
calculation, 21, 323
S chat, 354
scatter plot, 254 graphing, 103
scientific notation, 18 transfer, 360
scripts store graph database variable, StoGDB, 208
command, 82, 313 store picture, StoPic, 206
home screen, 314 string operations, 280, 391
tutorial, 370 submenus, 28
2nd-order equation, 175, 184 subroutines, 275
SendCalc, 353 substitute values, 55
SendChat, 353 symbols, 312
sequence graphing
Fibonacci, 139
table, generate, 139
tools, 133
serial number, 44
service, 548

Index 555

INDEX.DOC TI-89: Index (US English) Joan Terrell Revised: 07/29/98 2:08 PM Printed: 07/29/98 2:08 PM Page 555 of 8
T V
tables variables
ASK, 217 archive/unarchive, 343
automatic, 214 auto-calculate, 237
cell width, 215 backups, 358
commands, 293 basics, 37
generate with sequence, 139 clearing, 325
manual, 217 commands, 353
parameters, 212 complex, 535
taylor( ) , 64 contents of, 340
technical assistance, 548 copy, 240, 341
temperature data, 227, 229
convert range/value, defined, 47
@tmpCnv( ) / tmpCnv( ) , 74 delayed simplification, 54
text delete, 65, 279, 340, 537
accented, 311 equation as, 320
cut/copy/paste, 308 error, 321
delete, 308 global, 279
editor, 305 headers, 356
find, 309 in programs, 276
highlight, 308 independent, 212, 214, 217
on graphs, 204 known, define, 321
typing, 307 list, 227, 229
3rd-order equation, 177 local, 274, 278
3D graphing lock/unlock, 341
animating, 152 manage, 88
axes, 153 matrix, 228, 229, 235
complex surface, 158 native independent, 192
implicit plots, 159 NewData, 228
optical illusions, 154 override, 48
tools, 147 rename, 341
viewing angle, 150 statistical, 251
Z values, 156 storing, 88
time-value-of-money, 383 sysData, 191
toolbar, Home screen, 3, 16 system, 171, 191, 218, 537
Trace, 105, 368, 376, 377, 380 text, 82
statistical plots, 257 transmit, 350
Trigger, 377 types, 338
troubleshooting, 547 undefined, 47
unknown, solve for, 319
U window, 101
unarchive, Unarchiv, 344 differential equations, 169
units, 71 parametric, 119
convert, 73 polar, 125
convert temperature, 74 sequence graphing, 131
defaults, 75, 77 3D, 146
user-defined, 76 Var-Link, 338
upgrades, 357 version, 44
viewing angles, in 3D graphing, 150

556 Index

INDEX.DOC TI-89: Index (US English) Joan Terrell Revised: 07/29/98 2:08 PM Printed: 07/29/98 2:08 PM Page 556 of 8
W
warning messages, 523
warranty, 548
web plots, 135
convergence, 136
divergence, 136
oscillation, 137
when( ) , 66, 190, 194
While, 286
window variables, 101
differential equations, 169
parametric, 119
polar, 125
sequence, 131
3D, 146
with operator, |, 6, 48, 55

X
XorPic, 206
xyline plot, 254

Y
Y=Editor, 97
bypassing, 193, 216
differential equations, 167, 174
initial conditions, 172
parametric, 118
polar, 124
selected, Ÿ, 99, 167
sequence, 130
statistical plots, 256
style, 100
3D, 145
two-graph mode, 198

Z
Z values, 156
zeros( ) , 49, 62, 362
Zoom menu, 107

Index 557

INDEX.DOC TI-89: Index (US English) Joan Terrell Revised: 07/29/98 2:08 PM Printed: 07/29/98 2:08 PM Page 557 of 8
CALCPIC.DOC TI-89: Back Inside Cover (US English) Joan Terrell Revised: 07/20/98 1:07 PM Printed: 07/27/98 3:58 PM Page 1 of 1

You might also like