Texas Instruments PLUS TI 92 User Manual

TI-89  
TI-92 Plus  
Guidebook  
for Advanced Mathematics  
Software Version 2.0  
© 1999-2002 Texas Instruments  
TI-89 Shortcut Keys  
General  
Alpha Rules  
¥ O  
2a  
List of Flash applications  
j
Type one lowercase letter  
Type one uppercase letter  
Lowercase alpha lock  
Uppercase alpha lock  
Exit alpha lock  
Toggle between last two chosen  
applications or split screens  
¤
2 ™  
¤ j  
j
¥ |, ¥ «  
Lighten or darken contrast  
¥ ¸  
Calculate approximate answer  
¥ C, ¥ D Move cursor to top or bottom  
(in editors)  
3D Graphing  
¤ C, ¤ D Scroll tall objects in history  
¤ A, ¤ B  
Highlight left or right from cursor  
C, D, A, B  
Animate graph  
2C, 2D Page up or page down  
«, |  
X, Y, Z  
µ
Change animation speed  
View along axis  
(in editors)  
2A, 2B Move cursor far left or far right  
Return to original view  
Change graph format style  
Expanded/normal view  
Í
On-screen Keyboard Map ( ¥ ^)  
p
Press N to exit the map.  
Greek Letters  
¥ c  
To access the Greek  
character set  
¥ c j+ letter To access lowercase Greek  
letters. Example:  
¥ c j[W] displays ω  
¥ c ¤ + letter  
To access uppercase Greek  
letters. Example:  
¥ c ¤ [W] displays Ω  
The keyboard map displays shortcuts that are  
not marked on the keyboard. As shown  
below, press ¥ and then the applicable key.  
If you press a key combination that does not  
access a Greek letter, you get the normal  
letter for that key.  
¥ Á  
¥ c  
ƒ
Access Greek letters  
(see next column)  
ξ
X
ψ
Y
ζ
Z
τ
T
¥ d  
¥ b  
¦ (comment)  
Copy graph coordinates to  
sysdata  
β
B
α
A
ε
E
δ
¥ e  
!
(factorial)  
C
H
D
I
¥ Í  
Display FORMATS dialog box  
Γ
γ
φ
F
¥ 1 – ¥ 9  
Run programs kbdprgm1()  
through kbdprgm9()  
G
J
O
U
¥ p  
& (append)  
µ
M
λ
L
¥ ^  
On-screen keyboard map  
K
N
¥ §  
¥ ´  
@
Σ
Π
ρ
R
σ
π
Turn off unit so that it returns  
to current application the  
next time you turn it on  
P
V
Q
S
ω
¥ µ (zero)  
¥ ¶  

W
¥ ·  
Copy graph coordinates to  
Home screen history  
 
TI-92 Plus Shortcut Keys  
General  
Editing  
¥ O  
2 a  
List of Flash applications  
Toggle between last two chosen  
applications or split screens  
Copy graph coordinates to  
sysdata  
Display FORMATS dialog box  
Copy graph coordinates to  
Home screen history  
Create new variable  
¥ C  
Move cursor to top  
¥ D  
Move cursor to bottom  
Move cursor to far left  
Move cursor to far right  
Scroll tall objects in history  
2 A  
¥ D  
2 B  
‚ C, ‚ D  
2 C, 2 D Page up and page down  
¥ X  
¥ C  
¥ V  
¥ F  
¥ H  
Cut  
Copy  
Paste  
¥ N  
¥ O  
¥ S  
Open existing variable  
Save copy as  
3D Graphing  
¥ |, ¥ « Lighten or darken contrast  
C, D, A, B  
Animate graph  
Change animation speed  
View along axis  
Return to original view  
Change graph format style  
Expanded/normal view  
¥ ¸  
Calculate approximate answer  
Turn off unit so that it returns  
to current application the next  
time you turn it on  
«, |  
X, Y, Z  
µ (zero)  
F
¥ ´  
¥ 1 ¥ 9  
Run programs kbdprgm1()  
p
through kbdprgm9()  
Accent Marks  
On-screen Keyboard Map ( ¥ ”)  
2 A + letter  
2 C + letter  
2 E + letter  
2 N + letter  
à, è, ì, ò, ù, À, È, Ì, Ò, Ù  
ç, Ç  
á, é, í, ó, ú, ý, Á, É, Í, Ó, Ú, Ý  
ã, ñ, õ, Ã, Ñ, Õ  
Press N to exit the map.  
2 O + letter â, ê, î, ô, û, Â, Ê, Î, Ô, Û  
2 U + letter  
ä, ë, ï, ö, ü, ÿ, Ä, Ë, Ï, Ö, Ü  
Greek Letters  
2 G  
To access the Greek  
character set  
To access lowercase Greek  
letters. Example: 2 G W  
displays ω  
See the table below for shortcuts that are not  
marked on the TI-92 Plus keyboard. See the  
next column for accent marks and Greek  
letters.  
2 G + letter  
2 Q  
2 W  
2 R  
?
!
@
#
2 G ¤ + letter To access uppercase Greek  
letters. Example: 2 G ¤ W  
displays Ω  
If you press a key combination that does not  
access a Greek letter, you get the normal  
letter for that key.  
(factorial)  
2 T  
(indirection)  
2 H  
& (append)  
2 X  
¦
ƒ

(comment)  
¥ Á  
Π
Π
¥ µ (zero)  
¥ ¶  
R
ω
ε
ρ τ  
ψ
π
Q
U
I
O
P
W
E
T
Y
Σ
Γ
α σ  
δ
φ γ  
λ
A
S
D
F
G
H
J
K
L
ζ
ξ
β
µ
Z
X
C
V
B
N
M
q
   
Table of Contents  
This guidebook describes how to use the TI-89 / TI-92 Plus. The  
table of contents can help you locate "getting started"  
information as well as detailed information about the  
location to find details about every TI-89 / TI-92 Plus function  
and instruction.  
Flash Applications...................................................................................... x  
Keystroke Differences.............................................................................xii  
What’s New?............................................................................................. xiv  
Getting the TI.89 Ready to Use ................................................................ 2  
Getting the TI.92 Plus Ready to Use........................................................ 3  
Setting the Contrast and Selecting a Language...................................... 4  
Performing Computations......................................................................... 8  
Graphing a Function ................................................................................ 11  
Chapter 1:  
Getting Started  
Turning the TI.89 / TI.92 Plus On and Off ............................................ 14  
Setting the Display Contrast................................................................... 15  
The TI.89 Keyboard ................................................................................. 16  
The TI.92 Plus Keyboard......................................................................... 17  
Modifier Keys............................................................................................ 18  
Entering Alphabetic Characters............................................................. 21  
Home Screen............................................................................................. 23  
Entering Numbers.................................................................................... 25  
Entering Expressions and Instructions................................................. 26  
Formats of Displayed Results................................................................. 29  
Editing an Expression in the Entry Line............................................... 32  
Menus......................................................................................................... 34  
Using the Custom Menu .......................................................................... 37  
Selecting an Application.......................................................................... 38  
Setting Modes ........................................................................................... 40  
Using the Clean Up Menu to Start a New Problem.............................. 43  
Using the Catalog Dialog Box................................................................. 44  
Storing and Recalling Variable Values................................................... 47  
Reusing a Previous Entry or the Last Answer...................................... 49  
Auto-Pasting an Entry or Answer from the History Area................... 52  
Status Line Indicators in the Display..................................................... 53  
Finding the Software Version and ID Number..................................... 55  
Chapter 2:  
Operating the  
Calculator  
iii  
Preview of Symbolic Manipulation........................................................ 58  
Using Undefined or Defined Variables.................................................. 59  
Using Exact, Approximate, and Auto Modes ....................................... 61  
Automatic Simplification......................................................................... 64  
Delayed Simplification for Certain Built-In Functions........................ 66  
Substituting Values and Setting Constraints ........................................ 67  
Overview of the Algebra Menu............................................................... 70  
Common Algebraic Operations.............................................................. 72  
Overview of the Calc Menu..................................................................... 75  
Common Calculus Operations................................................................ 76  
User-Defined Functions and Symbolic Manipulation ......................... 77  
If You Get an Out-of-Memory Error....................................................... 79  
Special Constants Used in Symbolic Manipulation ............................. 80  
Chapter 3:  
Symbolic  
Manipulation  
Preview of Constants and Measurement Units.................................... 82  
Entering Constants or Units ................................................................... 83  
Converting from One Unit to Another................................................... 85  
Setting the Default Units for Displayed Results .................................. 87  
Creating Your Own User-Defined Units................................................ 88  
List of Pre-Defined Constants and Units............................................... 89  
Chapter 4:  
Constants and  
Measurement Units  
Saving the Home Screen Entries as a Text Editor Script ................... 94  
Cutting, Copying, and Pasting Information .......................................... 95  
Creating and Evaluating User-Defined Functions ............................... 97  
Using Folders to Store Independent Sets of Variables ..................... 100  
If an Entry or Answer Is “Too Big” ...................................................... 103  
Chapter 5:  
Additional Home  
Screen Topics  
Preview of Basic Function Graphing................................................... 106  
Overview of Steps in Graphing Functions.......................................... 107  
Setting the Graph Mode......................................................................... 108  
Defining Functions for Graphing ......................................................... 109  
Selecting Functions to Graph............................................................... 111  
Setting the Display Style for a Function.............................................. 112  
Defining the Viewing Window .............................................................. 113  
Changing the Graph Format ................................................................. 114  
Graphing the Selected Functions......................................................... 115  
Displaying Coordinates with the Free-Moving Cursor...................... 116  
Tracing a Function................................................................................. 117  
Using Zooms to Explore a Graph......................................................... 119  
Using Math Tools to Analyze Functions ............................................. 122  
Chapter 6:  
Basic Function  
Graphing  
Preview of Parametric Graphing.......................................................... 128  
Overview of Steps in Graphing Parametric Equations ..................... 129  
Differences in Parametric and Function Graphing ........................... 130  
Chapter 7:  
Parametric  
Graphing  
iv  
Preview of Polar Graphing.................................................................... 134  
Overview of Steps in Graphing Polar Equations................................ 135  
Differences in Polar and Function Graphing...................................... 136  
Chapter 8:  
Polar Graphing  
Preview of Sequence Graphing ............................................................ 140  
Overview of Steps in Graphing Sequences......................................... 141  
Differences in Sequence and Function Graphing .............................. 142  
Setting Axes for Time, Web, or Custom Plots.................................... 146  
Using Custom Plots................................................................................ 150  
Using a Sequence to Generate a Table................................................ 151  
Chapter 9:  
Sequence Graphing  
Preview of 3D Graphing ........................................................................ 154  
Overview of Steps in Graphing 3D Equations.................................... 156  
Differences in 3D and Function Graphing.......................................... 157  
Moving the Cursor in 3D ....................................................................... 160  
Rotating and/or Elevating the Viewing Angle..................................... 162  
Animating a 3D Graph Interactively .................................................... 164  
Changing the Axes and Style Formats................................................. 165  
Contour Plots.......................................................................................... 167  
Example: Contours of a Complex Modulus Surface ......................... 170  
Implicit Plots........................................................................................... 171  
Example: Implicit Plot of a More Complicated Equation................. 173  
Chapter 10:  
3D Graphing  
Preview of Differential Equation Graphing........................................ 176  
Overview of Steps in Graphing Differential Equations..................... 178  
Differences in Diff Equations and Function Graphing...................... 179  
Setting the Initial Conditions................................................................ 184  
Defining a System for Higher-Order Equations ................................. 186  
Example of a 2nd-Order Equation ....................................................... 187  
Example of a 3rd-Order Equation........................................................ 189  
Setting Axes for Time or Custom Plots............................................... 190  
Example of Time and Custom Axes .................................................... 191  
Example Comparison of RK and Euler ............................................... 193  
Example of the deSolve( ) Function.................................................... 196  
Troubleshooting with the Fields Graph Format ................................ 197  
Chapter 11:  
Differential  
Equation Graphing  
v
Preview of Additional Graphing Topics.............................................. 202  
Collecting Data Points from a Graph................................................... 203  
Graphing a Function Defined on the Home Screen........................... 204  
Graphing a Piecewise Defined Function............................................. 206  
Graphing a Family of Curves................................................................ 208  
Using the Two-Graph Mode.................................................................. 209  
Drawing a Function or Inverse on a Graph ........................................ 212  
Drawing a Line, Circle, or Text Label on a Graph ............................. 213  
Saving and Opening a Picture of a Graph ........................................... 217  
Animating a Series of Graph Pictures ................................................. 219  
Saving and Opening a Graph Database ............................................... 220  
Chapter 12:  
Additional  
Graphing Topics  
Preview of Tables................................................................................... 222  
Overview of Steps in Generating a Table............................................ 223  
Setting Up the Table Parameters ......................................................... 224  
Displaying an Automatic Table ............................................................ 226  
Building a Manual (Ask) Table............................................................. 229  
Chapter 13:  
Tables  
Preview of Split Screens........................................................................ 232  
Setting and Exiting the Split Screen Mode ......................................... 233  
Selecting the Active Application.......................................................... 235  
Chapter 14:  
Split Screens  
Preview of the Data/Matrix Editor....................................................... 238  
Overview of List, Data, and Matrix Variables..................................... 239  
Starting a Data/Matrix Editor Session................................................. 241  
Entering and Viewing Cell Values........................................................ 243  
Inserting and Deleting a Row, Column, or Cell.................................. 246  
Defining a Column Header with an Expression................................. 248  
Using Shift and CumSum Functions in a Column Header................ 250  
Sorting Columns..................................................................................... 251  
Saving a Copy of a List, Data, or Matrix Variable .............................. 252  
Chapter 15:  
Data/Matrix Editor  
Preview of Statistics and Data Plots.................................................... 254  
Overview of Steps in Statistical Analysis............................................ 258  
Performing a Statistical Calculation.................................................... 259  
Statistical Calculation Types ................................................................ 261  
Statistical Variables................................................................................ 263  
Defining a Statistical Plot...................................................................... 264  
Statistical Plot Types ............................................................................. 266  
Using the Y= Editor with Stat Plots..................................................... 268  
Graphing and Tracing a Defined Stat Plot .......................................... 269  
Using Frequencies and Categories ...................................................... 270  
If You Have a CBL 2/CBL or CBR......................................................... 272  
Chapter 16:  
Statistics and  
Data Plots  
vi  
Preview of Programming....................................................................... 276  
Running an Existing Program............................................................... 278  
Starting a Program Editor Session....................................................... 280  
Overview of Entering a Program.......................................................... 282  
Overview of Entering a Function......................................................... 285  
Calling One Program from Another..................................................... 287  
Using Variables in a Program ............................................................... 288  
Using Local Variables in Functions or Programs .................................. 290  
String Operations ................................................................................... 292  
Conditional Tests ................................................................................... 294  
Using If, Lbl, and Goto to Control Program Flow.............................. 295  
Using Loops to Repeat a Group of Commands.................................. 297  
Configuring the TI-89 / TI-92 Plus........................................................ 300  
Getting Input from the User and Displaying Output ......................... 301  
Creating a Custom Menu....................................................................... 303  
Creating a Table or Graph..................................................................... 305  
Drawing on the Graph Screen .............................................................. 307  
Accessing Another TI.89 / TI.92 Plus, a CBL 2/CBL, or a  
Chapter 17:  
Programming  
CBR..................................................................................................... 309  
Debugging Programs and Handling Errors......................................... 310  
Example: Using Alternative Approaches ............................................ 311  
Assembly-Language Programs ............................................................. 313  
Preview of Text Operations.................................................................. 316  
Starting a Text Editor Session.............................................................. 317  
Entering and Editing Text..................................................................... 319  
Entering Special Characters.................................................................. 324  
Entering and Executing a Command Script ....................................... 328  
Creating a Lab Report............................................................................ 330  
Chapter 18:  
Text Editor  
Preview of the Numeric Solver ............................................................ 334  
Displaying the Solver and Entering an Equation ............................... 335  
Defining the Known Variables.............................................................. 337  
Solving for the Unknown Variable....................................................... 339  
Graphing the Solution............................................................................ 340  
Chapter 19:  
Numeric Solver  
Preview of Number Bases..................................................................... 344  
Entering and Converting Number Bases............................................. 345  
Performing Math Operations with Hex or Bin Numbers .................. 346  
Comparing or Manipulating Bits .......................................................... 347  
Chapter 20:  
Number Bases  
vii  
Preview of Memory and Variable Management ................................. 350  
Checking and Resetting Memory ......................................................... 353  
Displaying the VAR-LINK Screen......................................................... 355  
Manipulating Variables and Folders with VAR-LINK ........................ 357  
Pasting a Variable Name to an Application ........................................ 359  
Archiving and Unarchiving a Variable................................................. 360  
If a Garbage Collection Message Is Displayed................................... 362  
Memory Error When Accessing an Archived Variable...................... 364  
Chapter 21:  
Memory and  
Variable  
Management  
Linking Two Units.................................................................................. 366  
Transmitting Variables, Flash Applications, and Folders................. 367  
Transmitting Variables under Program Control................................. 371  
Upgrading Product Software (Base Code) ......................................... 373  
Collecting and Transmitting ID Lists................................................... 378  
Compatibility between a TI.89, TI.92 Plus, and TI.92 ...................... 380  
Chapter 22:  
Linking and  
Upgrading  
Analyzing the Pole-Corner Problem .................................................... 384  
Deriving the Quadratic Formula .......................................................... 386  
Exploring a Matrix ................................................................................. 388  
Exploring cos(x) = sin(x)...................................................................... 389  
Finding Minimum Surface Area of a Parallelepiped.......................... 390  
Running a Tutorial Script Using the Text Editor ............................... 392  
Decomposing a Rational Function....................................................... 394  
Studying Statistics: Filtering Data by Categories .............................. 396  
CBL 2/CBL Program for the TI-89 / TI-92 Plus................................... 399  
Studying the Flight of a Hit Baseball ................................................... 400  
Visualizing Complex Zeros of a Cubic Polynomial............................. 402  
Solving a Standard Annuity Problem................................................... 404  
Computing the Time-Value-of-Money.................................................. 405  
Finding Rational, Real, and Complex Factors.................................... 406  
Simulation of Sampling without Replacement................................... 407  
Chapter 23:  
Activities  
Quick-Find Locator ................................................................................ 410  
Alphabetical Listing of Operations ...................................................... 414  
Appendix A:  
Functions and  
Instructions  
viii  
TI-89 / TI-92 Plus Error Messages ....................................................... 542  
Modes....................................................................................................... 550  
TI-89 / TI-92 Plus Character Codes ..................................................... 555  
TI.89 Key Codes ..................................................................................... 556  
TI.92 Plus Key Codes............................................................................. 559  
Entering Complex Numbers ................................................................. 563  
Accuracy Information............................................................................ 566  
System Variables and Reserved Names .............................................. 567  
Regression Formulas ............................................................................. 570  
Contour Levels and Implicit Plot Algorithm....................................... 572  
Runge-Kutta Method.............................................................................. 573  
Appendix B:  
Reference  
Information  
Battery Information ............................................................................... 576  
In Case of Difficulty ............................................................................... 579  
Support and Service Information......................................................... 580  
Warranty Information............................................................................ 581  
Appendix C:  
Service and  
Warranty  
Information  
setMode( ) and getMode( ) ................................................................... 584  
setGraph( ) .............................................................................................. 587  
setTable( ) ............................................................................................... 589  
Appendix D:  
Programmer’s  
Guide  
Index ........................................................................................................ 591  
TI-89 Shortcut Keys  
TI-92 Plus Shortcut Keys  
ix  
Flash Applications  
Flash functionality enables the ability to download different  
applications to a TI-89 / TI-92 Plus calculator from the enclosed  
Applications  
CD-ROM, the TI web site, or from another calculator.  
Before downloading new applications to a TI-89 / TI-92 Plus, please  
read and accept the license agreement on the TI-89 / TI-92 Plus  
Applications CD-ROM.  
Before installing Flash applications, you will need:  
Hardware/Software  
Requirements  
A computer with a CD-ROM drive and a serial port.  
TI™ Connect or TI-GRAPH LINK™ software and a TI-GRAPH LINK  
cable. If you need the TI Connect/ TI-GRAPH LINK software or a  
TI-GRAPH LINK cable, check the TI web site at education.ti.com.  
To set up:  
Hardware Setup for  
the Computer  
1. Insert the small end of the TI-GRAPH LINK cable into the port at  
the bottom of the TI-89 or the top of the TI-92 Plus.  
2. Connect the other end to the computer’s serial port using a  
25-to-9 pin adapter if necessary.  
To install an application:  
Installing a Flash  
Application from the  
CD-ROM  
1. Insert the TI-89 / TI-92 Plus Applications CD-ROM into the  
computer’s CD-ROM drive.  
2. From the computer, start the TI-GRAPH LINK software.  
Note: For further  
information about  
transmitting applications to  
and from your computer  
using TI Connect, refer to  
the TI Connect online help.  
3. From the Link menu, click Send Flash Software 8 Applications and  
Certificates.  
4. Locate the Flash application on the CD-ROM and double-click.  
The Flash application is copied to the calculator.  
To run an application:  
Running a Flash  
Application  
1. On the TI-89 / TI-92 Plus, press ¥ O to display the FLASH  
APPLICATIONS menu.  
2. Use the cursor keys CD to highlight the application and press  
¸.  
x
 
Do not attempt to transfer an application if a low-battery message  
appears on either the receiving or sending calculator.  
Transferring a Flash  
Application from  
another  
1. Connect the calculators with the calculator-to-calculator cable  
TI-89 / TI-92 Plus  
that came with the TI-89 / TI-92 Plus.  
2. On the sending calculator:  
a. Press 2 °  
b. Press:  
Note: This guidebook uses  
TI-89 screen shots.  
TI-89: 2 ‰  
TI-92 Plus: ‰  
c. Highlight the Flash application and press (a Ÿ is displayed  
to the left of the selected item)  
3. On the receiving calculator:  
a. Press 2 °  
b. Press …  
c. Select: 2:Receive  
d. Press ¸  
4. On the sending calculator:  
a. Press …  
b. Select: 1:Send to TI-89/92 Plus  
c. Press ¸  
To back up an application to the computer:  
Backing up a Flash  
Application  
1. On the calculator, press:  
TI-89: "  
TI-92 Plus: ¹ "  
2. From the computer, start the TI-GRAPH LINK software  
3. From the Link menu, click Receive Flash Software  
4. Select one or more Flash applications and click add  
5. Click ok  
Note: For further  
information about  
transmitting applications to  
and from your computer  
using TI Connect, refer to  
the TI Connect online help.  
6. Save the application to the computer and record this information  
for future reference.  
To delete a Flash application from the calculator:  
Deleting a Flash  
Application  
1. Press 2 ° to display the VAR-LINK screen  
2. Press:  
TI-89: 2 ‰  
TI-92 Plus: ‰  
Note: To select all Flash  
applications, use the All  
menu.  
3. Highlight the Flash application and press (a Ÿis displayed to  
the left of the selected item)  
4. Press ƒ and choose 1:Delete  
— or —  
Press 0 (a confirmation message appears)  
5. Press ¸ to confirm the deletion.  
xi  
Keystroke Differences  
There are certain differences in keystrokes using the TI-89 / TI-92 Plus for various operations. The  
following table shows the keystrokes for major commands for the two calculators.  
³
FUNCTION  
TI-89  
TI-92 Plus  
LETTERS  
One lowercase letter (a-s, u, v, w)  
j A-S, U-W  
T, X, Y, Z  
2 ™  
j
A-S, U-W  
One lowercase letter (t, x, y, z)  
Several lowercase letters  
T, X, Y, Z  
End several lowercase letters  
Several uppercase letters  
¤ ™  
j
2 ¢  
End several uppercase letters  
2 ¢.  
FUNCTION KEYS  
F6  
2 ˆ  
2 ‰  
2 Š  
ˆ
Š
F7  
F8  
NAVIGATION  
Scroll tall objects up or down in history  
¤ C, ¤ D  
‚ C, ‚ D  
2 A, 2 B  
E F G H  
Move cursor far left or far right on entry line  
Diagonal movement  
2 A, 2 B  
C and A  
C and B  
D and A  
D and B  
FUNCTIONS  
Display Home screen  
"
¥ "  
¥ X  
Cut  
¥ 5  
¥ 6  
¥ 7  
½
2 9  
2 W  
2 X  
2 Y  
2 x  
¥ s  
Copy  
¥ C  
Paste  
¥ V  
Catalog  
2 ½  
¥ 9  
W
Display Units dialog box  
Sin  
Cos  
Tan  
LN  
X
Y
x
eõ  
2 s  
2 ^  
EE  
^
xii  
 
³
FUNCTION  
TI-89  
TI-92 Plus  
SYMBOLS  
ú (Conversion triangle)  
2 Ž  
¥   
¥ Ï  
Í
2 Ž  
_ (Underscore)  
θ (Theta)  
2   
Ï
| (“With”)  
2 Í  
2 È  
2 v  
2 ’  
2 >  
2 V  
Space bar  
' (Prime)  
2 È  
2 v  
2 ’  
° (Degree)  
(Angle)  
Σ (Sigma)  
xê (Reciprocal)  
Space  
½ Σ (  
½ ^-1  
j  
HIDDEN SHORTCUTS  
Place data in sysdata variable  
¥ b  
¥ D  
Greek characters  
Keyboard map  
Place data in Home screen history  
Grave (à, è, ì, ò, ù)  
Cedilla (ç)  
¥ c j or ¥ c ¤  
¥ ^  
¥ G or ¥G ¤  
¥  
¥ ·  
¥ H  
2 ¿ 5  
2 ¿ 5 6  
2 ¿ 5  
2 ¿ 5 6  
2 ¿ 5  
2 ¿ 5  
2 ¿ 3  
2 ¿ 5 6  
2 ¿ 3  
¥ p (times)  
¥ §  
2 A a, e, i, o, u  
2 C  
c
Acute (á, é, í, ó, ú, ý)  
Tilde (ã, ñ, õ)  
2 E a, e, i, o, u, y  
2 N a, n, o  
2 O a, e, i, o, u  
2 U a, e, i, o, u, y  
2 Q  
Caret (â, ê, î, ô, û)  
Umlaut (ä, ë, ï, ö, ü, ÿ)  
? (Question mark)  
β (Beta)  
2 S  
# (Indirection)  
& (Append)  
2 T  
2 H  
@ (Arbitrary)  
2 R  
(Not equal to symbol)  
! (Factorial)  
¥ Á  
2 V  
¥ e  
2 W  
Comment (Circle-C)  
New  
¥ d  
ƒ 3  
ƒ 1  
ƒ 2  
¥ Í  
¦
2 X  
¥ N  
¥ O  
¥ S  
¥ F  
¦
Open  
Save copy as  
Format dialog box  
xiii  
What’s New?  
TI developed the Advanced Mathematics  
Software Version 2.0 to enable  
downloadable calculator software  
applications for the TI-89 and TI-92 Plus.  
Introducing  
Advanced  
Mathematics  
Software  
For details, refer to:  
Chapter 21 and 22  
Version 2.0  
Advanced Mathematics Software Version 2.0 is an infrastructure  
enhancement of the current Advanced Mathematics Software  
Version 1.xx. It has all the features of Version 1.xx. The improved  
infrastructure enables multiple downloadable calculator software  
applications, language localization. This enhancement also provides  
your new TI-89 / TI-92 Plus with maximum reapportionment of the  
over 702-KB Flash memory between user data archive and calculator  
software applications.  
All previous TI-89 and TI-92 Plus Modules can be upgraded to Version  
2.0. However, on some TI-89 and all TI-92 Plus Module units, the user  
data archive can only occupy a maximum of 384-KB of the over 702-  
KB Flash memory shared with calculator software applications.  
You can down load Advan ced Math em atics Software Version  
2.0 to you r com pu ter from th e TI web site at education.ti.com,  
th en tran sfer it to you r TI-89 / TI-92 Plu s u sin g th e  
TI™ Connect or TI GRAPH LINK™ software an d a TI-GRAPH LINK  
cable. Th e Advan ced Math em atics Software is free from th e TI  
web site at education.ti.com.  
The TI-89 / TI-92 Plus can be localized into  
other languages. These free applications  
translate prompts, error messages, and  
most functions into one of several  
languages.  
Language  
Localization  
For details, refer to:  
Chapter 1  
The improved user interface allows folder collapse/expand and  
expands the CATALOG menu to include application functions and  
user-defined functions.  
Improved User  
Interface  
xiv  
 
The TI-89 / TI-92 Plus uses Flash technology,  
which lets you upgrade future software  
versions without buying a new calculator.  
Upgradability with  
Flash ROM  
For details, refer to:  
Chapter 22  
As new functionality becomes available, you can electronically  
upgrade your TI-89 / TI-92 Plus. Future software versions include  
maintenance upgrades that will be released free of charge, as well as  
new applications and major future upgrades that will be available for  
purchase from the TI web site.  
To download upgrades from the TI web site, you must have an  
Internet-connected computer, TI™ Connect or TI-GRAPH LINK™  
software, and a TI-GRAPH LINK cable. You can also transfer the  
product software (operating system) and Flash applications from  
one TI-89 / TI-92 Plus to another using a unit-to-unit cable, provided  
that the receiving calculator is also licensed to run that software.  
New to the TI-92 Plus is the custom menu feature that lets you create  
your own toolbar menu. A custom menu can contain any available  
function, instruction, or set of characters. The TI-92 Plus has a default  
custom menu that you can modify or redefine.  
Custom Menu  
xv  
Getting Started  
Getting the TI.89 Ready to Use ................................................................ 2  
Getting the TI.92 Plus Ready to Use........................................................ 3  
Setting the Contrast and Selecting a Language...................................... 4  
Performing Computations......................................................................... 8  
Graphing a Function ................................................................................ 11  
1
This chapter helps you to get started using the TI-89 / TI-92 Plus  
quickly. This chapter takes you through several examples to  
introduce you to some of the principal operating and graphing  
functions of the TI-89 / TI-92 Plus.  
After setting up your TI-89 / TI-92 Plus and completing these  
examples, please read Chapter 2: Operating the Calculator. You  
then will be prepared to advance to the detailed information  
provided in the remaining chapters in this guidebook.  
Chapter 1: Getting Started  
1
   
Getting the TI-89 Ready to Use  
The TI-89 comes with four AAA batteries. This chapter  
describes how to install these batteries. It also describes how  
to turn the unit on for the first time, set the display contrast,  
select a language, and view the Home screen for both the  
TI-89 and the TI-92 Plus.  
To install the four AAA batteries:  
Installing the AAA  
Batteries  
1. Place the TI-89 face down on a soft cloth to prevent scratching  
the display face.  
2. On the back of the calculator, depress the battery cover latch. Lift  
and remove the battery cover.  
3. Remove the batteries from the package and install them in the  
battery compartment. Arrange the batteries according to the  
polarity (+ and N) diagram in the battery compartment.  
Important: When replacing  
batteries in the future,  
ensure that the TI-89 is  
turned off by pressing  
2 ®.  
4. 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.  
To replace the batteries without losing any information stored in  
memory, follow the directions in Appendix C.  
Lithium battery  
AAA batteries  
2
Chapter 1: Getting Started  
 
Getting the TI-92 Plus Ready to Use  
The TI-92 Plus comes with four AA batteries. This chapter  
describes how to install these batteries. It also describes how  
to turn the unit on for the first time, set the display contrast,  
select a language, and view the Home screen for both the  
TI-92 Plus and the TI-89.  
To install the four AA alkaline batteries:  
Installing the AA  
Batteries  
1. Holding the TI-92 Plus unit upright, slide the latch on the top of the  
unit to the left unlocked position; slide the rear cover down about  
one-eighth inch and remove it from the main unit.  
Slide to open.  
top  
Important: When replacing  
batteries in the future,  
ensure that the TI-92 Plus is  
turned off by pressing  
2 ®.  
I/O  
2. Place the TI-92 Plus face down on a soft cloth to prevent  
scratching the display face.  
3. Install the four AA batteries. Be sure to position the batteries  
according to the diagram inside the unit. The positive (+) terminal  
of each battery should point toward the top of the unit.  
back  
AA batteries  
Lithium battery  
4. Replace the rear cover and slide the latch on the top of the unit to  
the right locked position to lock the cover back in place.  
Chapter 1: Getting Started  
3
 
Setting the Contrast and Selecting a Language  
After you install the batteries in your TI-89 / TI-92 Plus, press ´. It is  
possible that the display contrast may be too dark or too dim to see  
anything.  
Turning the Unit on  
and Adjusting the  
Display Contrast  
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.  
You will see a screen that lists several languages. The list of  
languages on your calculator may vary from this example.  
Languages other than English are available as Flash applications.  
English is part of the product software (base code). You may keep as  
many or as few alternate languages on your calculator as you want  
(subject to memory limitation) and switch between them easily.  
During the process, you will be given an opportunity to choose  
additional languages to keep or delete. You may also add or delete  
language applications through the VAR-LINK screen.  
Languages on the  
TI-89 / TI-92 Plus  
The TI-89 / TI-92 Plus can be localized into one of several languages.  
Localizing means that all menu names, dialog boxes, error messages,  
etc., will display in the language of your choice.  
Important  
Information About  
the Language  
Process  
The TI-89 / TI-92 Plus can be localized into only one language at a  
time; however, you can keep additional languages on the unit and  
switch the language at any time.  
The initial localization of the TI-89 / TI-92 Plus occurs in three phases:  
¦
Phase I - Select the language in which you would like to localize  
the TI-89 / TI-92 Plus. Future online instructions will appear in the  
selected language.  
¦
¦
Phase II - Read the instructional message that appears in the  
language you selected in Phase I.  
Note: English cannot be  
deleted and remains  
available in the product  
software (base code).  
Phase III - The TI-89 / TI-92 Plus is localized into the language you  
selected in Phase I. You can now select one or more language  
applications that you would like to keep on the calculator (in case  
you want to switch to another language later). You can always  
reload one or more language applications later, if necessary. The  
calculator will then automatically delete the unselected  
languages.  
4
Chapter 1: Getting Started  
 
1. Press the cursor keys (D or C) to  
move the pointer to the language in  
which you would like to set your  
TI-89 / TI-92 Plus. (The list of  
Localizing the  
TI-89 / TI-92 Plus  
languages on your calculator may  
vary from this example.)  
Note: Until you complete  
the localization process, the  
Select a Language dialog  
box will reappear when you  
turn the unit on.  
2. Press ¸ to set the TI-89 / TI-92 Plus into the selected language.  
(Pressing N halts the localization process and displays the  
Home screen.)  
3. Read the message that appears and  
then press ¸.  
The message displays in the  
language you previously selected.  
4. Press the cursor keys (D or C) to move the pointer and then  
press ƒ to select each additional language that you would like to  
keep.  
— or —  
Press to select and keep all of the language applications.  
You cannot uncheck English or the  
language you selected in step 1.  
Pressing ƒ toggles the Ÿ on and off.  
5. Press ¸ to complete the localization process. Additional  
selected languages, if any, are retained in memory and unselected  
languages are deleted to free up Flash memory. (Pressing N  
halts the localization process and displays the Home screen.)  
If additional language applications remain on your TI-89 / TI-92 Plus,  
you can change the localization language via Page 3 () of the Mode  
dialog box. See “Setting Modes” in Chapter 2 for information on how  
to use the Mode dialog box. You can add or delete language and other  
Flash applications via the VAR-LINK screen. See “Transmitting  
Variables, Flash Applications, and Folders” in Chapter 22.  
Language applications are available on the enclosed CD and from the  
Texas Instruments web site. For up-to-date information about Flash  
applications, including additional language applications, check the  
Texas Instruments web site at:  
education.ti.com  
Chapter 1: Getting Started  
5
After you select a language, a blank Home screen is displayed.  
About the Home  
Screen  
The Home screen lets you execute instructions, evaluate  
expressions, and view results.  
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.  
Toolbar  
Lets you display menus for  
selecting operations  
applicable to the Home  
screen. To display a toolbar  
menu, press ƒ, , etc.  
History Area  
Lists entry/answer pairs  
you have entered. Pairs  
scroll up the screen as  
you make new entries.  
Last Entry  
Your last entry.  
Last Answer  
Result of your last entry.  
Note that results are not  
displayed on the entry line.  
Entry Line  
Where you enter  
expressions or  
instructions.  
Status Line  
Shows the current state  
of the calculator.  
6
Chapter 1: Getting Started  
 
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  
displayed in the same  
form in which they are  
traditionally written.  
Answer Continues  
Highlight the answer and  
press B to scroll right and  
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.  
When you want to turn the TI-89 / TI-92 Plus off, press 2®.  
(Note: ® is the second function of the ´ key.)  
Turning the  
TI-89 / TI-92 Plus  
Off  
Chapter 1: Getting Started  
7
 
Performing Computations  
This section provides several examples for you to perform that demonstrate some of the  
computational features of the TI-89 / TI-92 Plus. 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.  
³
TI.89  
Keystrokes  
TI.92 Plus  
Keystrokes  
Steps  
Display  
Showing Computations  
1. Compute sin(p/4) and display the 2 W 2 T W 2 T  
result in symbolic and numeric  
format.  
e 4 d ¸  
¥ ¸  
e 4 d ¸  
¥ ¸  
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 5 2 I 7 1 5 2 W ¸  
numbers to see how the  
TI-89 / TI-92 Plus handles very  
large integers.  
¸
2 0 2 I 7 1 2 0 2 W ¸  
¸
To get the factorial operator (!), press  
2 I, select 7:Probability, and  
then select 1:!.  
3 0 2 I 7 1 3 0 2 W ¸  
¸
Expanding Complex Numbers  
1. Compute (3+5i)3 to see how the c 3 « 5 2 ) c 3 « 5 2 )  
TI-89 / TI-92 Plus handles  
computations involving complex  
numbers.  
d Z 3 ¸  
d Z 3 ¸  
Finding Prime Factors  
1. Compute the factors of the  
2  
2  
rational number 2634492.  
2 6 3 4 4 9 2 d 2 6 3 4 4 9 2 d  
¸
¸
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.  
8
Chapter 1: Getting Started  
 
³
TI.89  
Keystrokes  
TI.92 Plus  
Keystrokes  
Steps  
Display  
Expanding Expressions  
1. Expand the expression (xì 5)3.  
3  
3  
c X | 5 d Z 3 c X | 5 d Z 3  
You can enter “expand” on the entry  
line by typing EXPAND on the  
keyboard, or by pressing and  
selecting 3:expand(.  
d
d
¸
¸
2. (Optional) Enter other  
expressions on your own.  
Reducing Expressions  
1. Reduce the expression  
(x2ì 2xì 5)/(xì 1) to its simplest  
form.  
7  
7  
c X Z 2 | 2 X c X Z 2 | 2 X  
| 5 d e  
c X | 1 d d  
¸
| 5 d e  
c X | 1 d d  
¸
You can enter “propFrac” on the entry  
line by typing PROPFRAC on the  
keyboard, or by pressing and  
selecting 7:propFrac(.  
Factoring Polynomials  
1. Factor the polynomial (x2ì 5)  
2  
2  
with respect to x.  
X Z 2 | 5  
b X d  
¸
X Z 2 | 5  
b X d  
¸
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 x2ì 2xì 6=2  
1  
1  
with respect to x.  
X Z 2 | 2 X | 6 X Z 2 | 2 X | 6  
Á 2 b X d  
¸
Á 2 b X d  
¸
You can enter “solve(” on the entry  
line by selecting “solve(” from the  
Catalog menu, by typing SOLVE( on  
the keyboard, or by pressing and  
selecting 1:solve(.  
The status line area shows the  
required syntax for the marked item  
in the Catalog menu.  
Chapter 1: Getting Started  
9
 
³
TI.89  
Keystrokes  
TI.92 Plus  
Keystrokes  
Steps  
Display  
Solving Equations with a Domain  
Constraint  
1. Solve the equation x2ì 2xì 6=2  
with respect to x where x is  
greater than zero.  
1  
1  
X Z 2 | 2 X | 6 X Z 2 | 2 X | 6  
Á 2 b X d  
Í X  
2 Ã 0  
¸
Á 2 b X d  
2 Í X  
2 Ã 0  
¸
The “with” (I) operator provides  
domain constraint.  
TI.89: Í  
TI.92 Plus: 2 Í  
Finding the Derivative of  
Functions  
1. Find the derivative of  
2 = c X | Y 2 = c X | Y  
d Z 3 e c X « dZ3ecX«  
Y d Z 2 b X d Y d Z 2 b X d  
(xì y)3/(x+y)2 with respect to x.  
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 < X p  
2 < X p  
respect to x.  
2 W X d b W X d b  
X d ¸ X d ¸  
This example illustrates using the  
calculus integration function.  
10  
Chapter 1: Getting Started  
 
Graphing a Function  
The example in this section demonstrates some of the graphing capabilities of the  
TI-89 / TI-92 Plus. 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 / TI-92 Plus by graphing the function  
y=(|x2ì 3|ì 10)/2.  
³
TI.89  
Keystrokes  
TI.92 Plus  
Keystrokes  
Steps  
Display  
¥ #  
¥ #  
1. Display the Y= Editor.  
entry line  
c ½ A  
¸
c2½A  
¸
2. Enter the function  
(abs(x2ì 3)ì 10)/2.  
“pretty print”  
X Z 2 | 3 d | X Z 2 | 3 d |  
display of the  
function in the  
entry line  
1 0 d e 2  
1 0 d e 2  
¸
¸
6  
6  
3. Display the graph of the  
function.  
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  
‡ D D ¸ ‡ D D ¸  
5. Open the MATH menu and select  
3:Minimum.  
Chapter 1: Getting Started  
11  
 
³
TI.89  
Keystrokes  
TI.92 Plus  
Keystrokes  
Steps  
Display  
B. . . B  
B . . . B  
6. Set the lower bound.  
¸
¸
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.  
B. . . B  
B . . . B  
7. Set the upper bound.  
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  
¥ ·  
"
¥ H  
¥ "  
9. Transfer the result to the Home  
screen, and then display the  
Home screen.  
Shortcuts for copying graph  
coordinates to Home screen history:  
TI.89: ¥ ·  
TI.92 Plus: ¥ H  
12  
Chapter 1: Getting Started  
Operating the Calculator  
Turning the TI.89 / TI.92 Plus On and Off ............................................ 14  
Setting the Display Contrast................................................................... 15  
The TI.89 Keyboard ................................................................................. 16  
The TI.92 Plus Keyboard......................................................................... 17  
Modifier Keys............................................................................................ 18  
Entering Alphabetic Characters............................................................. 21  
Home Screen............................................................................................. 23  
Entering Numbers.................................................................................... 25  
Entering Expressions and Instructions................................................. 26  
Formats of Displayed Results................................................................. 29  
Editing an Expression in the Entry Line............................................... 32  
Menus......................................................................................................... 34  
Using the Custom Menu .......................................................................... 37  
Selecting an Application.......................................................................... 38  
Setting Modes ........................................................................................... 40  
Using the Clean Up Menu to Start a New Problem.............................. 43  
Using the Catalog Dialog Box................................................................. 44  
Storing and Recalling Variable Values................................................... 47  
Reusing a Previous Entry or the Last Answer...................................... 49  
Auto-Pasting an Entry or Answer from the History Area................... 52  
Status Line Indicators in the Display..................................................... 53  
Finding the Software Version and ID Number..................................... 55  
2
This chapter gives a general overview of the TI-89 / TI-92 Plus and  
describes its basic operations. By becoming familiar with the  
information in this chapter, you can use the TI-89 / TI-92 Plus to  
solve problems more effectively.  
The Home screen is the most commonly used application on the  
TI-89 / TI-92 Plus. You can use the Home screen to perform a wide  
variety of mathematical operations.  
Chapter 2: Operating the Calculator  
13  
 
Turning the TI-89 / TI-92 Plus On and Off  
You can turn the TI-89 / TI-92 Plus 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 / TI-92 Plus turn itself off automatically.  
Press ´.  
Turning the  
TI-89 / TI-92 Plus  
On  
¦
If you turned the unit off by pressing 2®, the TI-89 / TI-92 Plus  
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 / TI-92 Plus returns to whichever  
application you used last.  
You can use either of the following keys to turn off the TI-89 / TI-92 Plus.  
Turning the  
TI-89 / TI-92 Plus Off  
Press:  
Description  
Note: ® is the second  
function of the ´ key.  
2®  
(press 2  
and then  
Settings and memory contents are retained by the  
Constant Memoryé feature. However:  
¦
You cannot use 2®if an error message is  
press ®)  
displayed.  
¦
When you turn the TI-89 / TI-92 Plus on again, it  
always displays the Home screen (regardless of  
the last application you used).  
¥ ®  
Similar to 2®except:  
(press ¥  
and then  
press ®)  
¦
You can use ¥ ®if an error message is  
displayed.  
¦
When you turn the TI-89 / TI-92 Plus on again, it  
will be exactly as you left it.  
After several minutes without any activity, the TI-89 / TI-92 Plus turns  
itself off automatically. This feature is called APD.  
APD (Automatic  
Power Down)  
When you press ´, the TI-89 / TI-92 Plus 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.  
The TI-89 uses four AAA alkaline batteries and a back-up lithium  
battery. The TI-92 Plus uses four AA alkaline batteries and also has a  
back-up lithium battery. To replace the batteries in either calculator  
without losing any information stored in memory, follow the  
directions in Appendix C.  
Batteries  
14  
Chapter 2: Operating the Calculator  
 
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 / TI-92 Plus is turned off.  
You can adjust the display contrast to suit your viewing angle and  
lighting conditions.  
Adjusting the  
Display Contrast  
To:  
Press and hold both:  
Decrease (lighten) the contrast  
¥ and |  
Increase (darken) the contrast  
¥ and «  
TI-89 contrast keys  
TI-92 Plus contrast keys  
VAR-LINK  
O
VAR-LINK  
CHAR  
U
CHAR  
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 « .  
As the batteries get low, the display begins to dim (especially during  
calculations) and you must increase the contrast. If you have to  
increase the contrast frequently, replace the four alkaline batteries.  
When to Replace  
Batteries  
Tip: The display may be  
very dark after you change  
batteries. Use ¥ | to  
lighten the display.  
The status line along the bottom of the display also gives battery  
information.  
Indicator in status line  
Description  
Batteries are low.  
Replace batteries as soon as possible.  
When using the TI-92 Plus on a desk or table top, you can use the  
snap-on cover to prop up the unit at one of three angles. This may  
make it easier to view the display under various lighting conditions.  
Using the TI-92 Plus  
Cover as a Stand  
Note: Slide the tabs at the  
top-sides of the TI-92 Plus  
into the slots in the cover.  
Chapter 2: Operating the Calculator  
15  
 
The TI-89 Keyboard  
Use this section to familiarize yourself with the various keys on  
the TI-89 keyboard. Most keys can perform two or more  
functions, depending on whether you first press a modifier key.  
Overview of Some  
Important Keys  
ƒ through 2 Š  
function keys let you  
select toolbar menus.  
Used with ¥, you can  
also select applications  
(page 39).  
N cancels a menu or  
dialog box.  
A, B, C, and D move  
the cursor.  
2, ¥, ¤, and j  
modify the action of  
other keys (page 18).  
O lets you select an  
application (page 38).  
" displays the Home  
screen, where you  
perform most  
M erases the entry  
line. Also used to delete an  
entry/answer pair in the  
history area.  
calculations.  
X, Y, and Z are often  
used in symbolic  
calculations.  
½ lets you select  
from a list of functions  
and instructions (page 44).  
3 lets you view and  
change mode settings that  
determine how numbers  
and graphs are interpreted,  
calculated, and displayed  
(page 40).  
Adjust the contrast by  
pressing ¥ | (lighten) or  
¥ « (darken).  
¸ evaluates an expression,  
executes an instruction, selects a  
menu item, etc.  
You can use ¥ ¸ to display an  
approximate numerical result.  
To move the cursor in a particular direction, press the appropriate  
cursor key (A, B, C, or D).  
Moving the Cursor  
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.  
C and A, C and B, D and A, or D and B to move diagonally.  
(Press the indicated cursor keys simultaneously.)  
16  
Chapter 2: Operating the Calculator  
 
The TI-92 Plus Keyboard  
With the TI-92 Plus’s easy-to-hold shape and keyboard layout,  
you can quickly access any area of the keyboard even when  
you are holding the unit with two hands.  
The keyboard is divided into several areas of related keys.  
Keyboard Areas  
Cursor Pad  
Function Keys  
Moves the display  
cursor in up to 8  
directions, depending  
on the application.  
Access the toolbar menus  
displayed across the top  
of the screen.  
TI-92 Plus  
Application  
Shortcut Keys  
Used with the  
¥ key to let you  
select commonly  
used  
HOME  
Y=  
WINDOW GRAPH  
TblSet  
TABLE  
applications.  
QWERTY Keyboard  
Enters text characters  
just as you would on a  
typewriter.  
Calculator Keypad  
Performs a variety of  
math and scientific  
operations.  
To move the cursor, press the applicable edge of the cursor pad. This  
guidebook uses key symbols such as A and B to indicate which  
side of the cursor pad to press.  
Cursor Pad  
C
For example, press B to move the  
cursor to the right.  
Note: The diagonal directions  
(H, etc.) are used only for geometry  
A
B
and graphing applications.  
D
Chapter 2: Operating the Calculator  
17  
 
Modifier Keys  
Modifier Keys  
Modifier  
Description  
2
(second)  
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 39), menu items, and other operations from  
the keyboard. On the keyboard, these are printed in  
the same color as the ¥ key.  
(diamond)  
¤
(shift)  
Types an uppercase character for the next letter  
key you press. ¤ is also used with Band Ato  
highlight characters in the entry line for editing  
purposes.  
Note: For information about  
using ¤ and j, refer to  
“Entering Alphabetic  
j
(TI-89 only)  
Used to type alphabetic letters, including a space  
character. On the keyboard, these are printed in  
the same color as the j key.  
Characters” on page 21.  
(hand)  
Used with the cursor pad to manipulate geometric  
(TI-92 Plus only) objects. is also used for drawing on a graph.  
The N key is one of several keys that can perform three  
operations, depending on whether you first press 2 or ¥.  
Examples of 2  
and ¥ Modifiers  
The following TI-89 example shows using the 2 or ¥ modifier key  
with the N key.  
2 K accesses  
QUIT, which is the  
same color as the  
2 key.  
¥ 7 accesses PASTE,  
which is the same color as  
the ¥ key.  
QUIT PASTE  
ESC  
N accesses the  
key’s primary  
function.  
The following TI-92 Plus example shows using the 2 or ¥ modifier  
key with the Y alphabetic key.  
2 Ž accesses ú  
(convert). The  
convert symbol is  
the same color as  
the 2 key.  
¥ ' displays the  
Table screen. The word is  
the same color as the ¥  
key.  
ú TABLE  
Y
Pressing the  
primary key types  
the letter Y.  
18  
Chapter 2: Operating the Calculator  
 
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.  
On the TI-89, ¥ 5  
accesses CUT, which  
is the same color as  
the ¥ key.  
CUT  
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.  
Other Important  
Keys You Need to  
Be Familiar With  
Key  
Description  
¥ #  
Displays the Y= Editor (Chapter 6).  
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).  
¥ $  
¥ %  
¥ &  
¥ '  
Note: Some keystrokes  
differ between the TI-89 and  
the TI-92 Plus. See the  
Keystroke Differences table  
in the front of this guidebook  
for a complete list.  
TI.89:  
These keys let you edit entered information by  
performing a cut, copy, or paste operation.  
¥ 5  
¥ 6  
¥ 7  
TI.92 Plus:  
¥ X (cut)  
¥ C (copy)  
¥ V (paste)  
2 a  
Switches the active side in a split screen (Chapter 14).  
2 ¾ Toggles the custom menu on and off (page 37).  
2 Ž  
Converts measurement units (Chapter 4).  
Designates a measurement unit (Chapter 4).  
TI.89:  
¥   
TI.92 Plus:  
2   
0
Deletes the character to the left of the cursor  
(backspaces).  
2 /  
¥ 8  
Toggles between insert and overtype mode for  
entering information (page 33).  
Deletes the character to the right of the cursor.  
Chapter 2: Operating the Calculator  
19  
Important Keys  
(continued)  
Key  
Description  
TI.89:  
Í
Enters the “with” operator, which is used in symbolic  
calculations (Chapter 3).  
TI.92 Plus:  
2 Í  
2 <,  
Performs integrations and derivatives (Chapter 3).  
2 =  
2 ’  
Designates an angle in polar, cylindrical, and spherical  
coordinates.  
2 I Displays the MATH menu.  
2 ¯  
Displays the MEMORY screen (Chapter 21).  
2
Displays the VAR-LINK screen for managing variables  
°
and Flash applications (Chapter 21).  
2 £  
Recalls the contents of a variable (page 48).  
TI.89:  
Displays the UNITS dialog box (Chapter 4).  
2 9  
TI.92 Plus:  
¥ À  
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 49).  
20  
Chapter 2: Operating the Calculator  
 
Entering Alphabetic Characters  
Alphabetic characters are used in expressions such as xñ+yñ,  
to enter variable names (page 47), and in the Text Editor  
(Chapter 18).  
The letters x, y, z, and t are commonly used in algebraic expressions.  
So that you can type them quickly, these letters are primary keys on  
the TI-89 keyboard.  
Entering a Letter  
Character on the  
TI-89  
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  
is the same color as  
j [A] types an A,  
which is the same  
color as the j key.  
´
A
the 2 key.  
´
=
Typing Alphabetic  
Characters on the  
TI-89 / TI-92 Plus  
To:  
On the TI.89, press:  
On the TI.92 Plus, press:  
Type a single  
lowercase  
alpha  
j and then the letter  
key  
(status line shows  
the letter key  
)
character.  
Note: On the TI-89, you do  
not need j or alpha-lock  
to type x, y, z, or t. But you  
must use ¤ or uppercase  
ALPHA-lock for X, Y, Z, or T.  
Type a single  
uppercase  
alpha  
¤ and then the letter key ¤ and then the letter key  
(status line shows +)  
(status line shows +)  
character.  
Type a space.  
j  (alpha function  
spacebar  
of the · key)  
Note: On the TI-89, alpha-  
lock is always turned off  
when you change  
applications, such as going  
from the Text Editor to the  
Home screen.  
Turn on  
lowercase  
alpha-lock.  
2 ™  
(status line shows  
(no action needed)  
)
)
Turn on  
uppercase  
ALPHA-lock.  
¤ ™  
(status line shows  
2 ¢  
Turn off alpha- j (turns off upper-  
lock. and lowercase lock)  
2 ¢ (turns off  
uppercase lock)  
Chapter 2: Operating the Calculator  
21  
 
On the TI-89, while either type of alpha-lock is on:  
Typing Alphabetic  
Characters …  
(continued)  
¦
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.  
There are certain times when you do not need to press j or  
2 ™ to type alphabetic characters on the TI-89. Automatic  
alpha-lock is turned on whenever a dialog box is first displayed. The  
automatic alpha-lock feature applies to these dialog boxes:  
Automatic Alpha-  
Lock in TI-89 Dialog  
Boxes  
Dialog box  
Alpha-lock  
Catalog dialog box  
All commands are listed in alphabetical  
order. Press a letter to go to the first  
command that begins with that letter. See  
page 44 for more information.  
Units dialog box  
In each unit category, type the first letter of a  
unit or constant. See Chapter 4 for more  
information.  
Note: To type a number,  
press j to turn alpha-  
lock off. Press j or  
2 ™ to resume typing  
letters.  
Dialog boxes with entry These include, but are not limited to: Create  
fields  
New Folder, Rename, and Save Copy As. See  
page 35 for more information about dialog  
boxes.  
Alpha-lock is not turned on in dialog boxes that require numeric-  
only entries. The dialog boxes that accept only numeric entries are:  
Resize Matrix, Zoom Factors, and Table Setup.  
Use the 2 ¿ menu to select from a variety of special  
characters. For more information, refer to “Entering Special  
Characters” in Chapter 18.  
For Special  
Characters  
22  
Chapter 2: Operating the Calculator  
Home Screen  
When you first turn on your TI-89 / TI-92 Plus, the Home screen  
is displayed. The Home screen lets you execute instructions,  
evaluate expressions, and view results.  
When you turn on the TI-89 / TI-92 Plus after it has been turned off with  
2 ®, the display always shows the Home screen. (If the  
TI-89 / TI-92 Plus turned itself off through APDé, the display shows the  
previous screen, which may or may not have been the Home screen.)  
Displaying the  
Home Screen  
To display the Home screen at any time:  
¦
Press:  
TI.89: "  
TI.92 Plus: ¥ "  
— or —  
¦
¦
Press 2K  
— or —  
Press:  
TI.89: O jA  
TI.92 Plus: OA  
The following example gives a brief description of the main parts of  
the Home screen.  
Parts of the Home  
Screen  
History Area  
Lists entry/answer pairs  
you have entered.  
Toolbar  
Press ƒ, , etc., to  
display menus for selecting  
operations.  
Pretty Print Display  
Shows exponents,  
roots, fractions, etc.,  
in traditional form.  
Refer to page 29.  
Last Answer  
Last Entry  
Your last entry.  
Result of your last entry.  
Note that results are not  
displayed on the entry line.  
Entry Line  
Where you enter  
expressions or  
instructions.  
Status Line  
Shows the current state  
of the TI-89 / TI-92 Plus.  
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:  
History Area  
¦
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 50 and 52.  
Chapter 2: Operating the Calculator  
23  
 
Normally, the cursor is in the entry line. However, you can move the  
cursor into the history area.  
Scrolling through  
the History Area  
To:  
Do this:  
View entries or answers  
that have scrolled off  
the screen  
1. From the entry line, press Cto  
highlight the last answer.  
2. Continue using Cto 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  
viewing a long answer, refer  
to page 28.  
View an entry or answer  
that is too long for one  
line (ú is at end of line)  
Move the cursor to the entry or answer.  
Use A and B to scroll left and right (or  
2 A and 2 B to go to the beginning  
or end), respectively.  
Return the cursor to the  
entry line  
Press N, or press Duntil the cursor is  
back on the entry line.  
Use the history indicator on the status line for information about the  
entry/answer pairs. For example:  
History Information  
on the Status Line  
Total number of  
pairs that are  
currently saved.  
If the cursor  
is on the  
entry line:  
Maximum number  
of pairs that can  
be saved.  
8/30  
Pair number of  
the highlighted  
entry or answer.  
If the cursor  
is in the  
history area:  
Total number of  
pairs that are  
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  
History Area  
To:  
Do this:  
Change the number of  
pairs that can be saved  
Press ƒ and select 9:Format, or press  
TI.89: ¥ Í TI.92 Plus: ¥ F. Then  
press B, use Cor Dto 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  
entry/answer pair  
Move the cursor to either the entry or  
answer. Press 0or M.  
24  
Chapter 2: Operating the Calculator  
Entering Numbers  
The keypad lets you enter positive and negative numbers for  
your calculations. You can also enter numbers in scientific  
notation.  
1. Press the negation key ·. (Do not use the subtraction key |.)  
Entering a Negative  
Number  
2. Type the number.  
To see how the TI-89 / TI-92 Plus 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  
subtraction and use  
· for negation.  
If you use | instead of ·(or vice versa), you may get an error  
message or you may get unexpected results. For example:  
¦
¦
¦
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.  
1. Type the part of the number that precedes the exponent. This  
value can be an expression.  
Entering a Number  
in Scientific  
Notation  
2. Press:  
TI.89: ^  
TI.92 Plus: 2 ^  
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 29 through  
31) and the magnitude of the  
number.  
Represents 123.45 × 10- 2  
Chapter 2: Operating the Calculator  
25  
 
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 29.  
Expression Consists of numbers, variables, operators, functions,  
and their arguments that evaluate to a single answer.  
For example: prñ +3.  
Definitions  
¦
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  
Function  
Performs an operation such as +, ì, ù, ^.  
¦
Operators require an argument before and after the  
operator. For example: 4+5 and 5^2.  
Returns a value.  
Note: Appendix A describes  
all of the TI-89 / TI-92 Plus  
built-in functions and  
instructions.  
¦
Functions require one or more arguments  
(enclosed in parentheses) after the function. For  
example: (5) and min(5,8).  
Instruction Initiates an action.  
Note: This guidebook uses  
the word command as a  
generic reference to both  
functions and instructions.  
¦
¦
Instructions cannot be used in expressions.  
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.  
The TI-89 / TI-92 Plus recognizes implied multiplication, provided it  
does not conflict with a reserved notation.  
Implied  
Multiplication  
If you enter:  
The TI.89 / TI.92 Plus 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  
a(2)  
a[1,2]  
Single variable named xy  
Function call  
Matrix index to element a[1,2]  
26  
Chapter 2: Operating the Calculator  
 
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.  
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.  
Type the expression, and then press ¸ to evaluate it. To enter a  
function or instruction name on the entry line, you can:  
Entering an  
Expression  
¦
¦
¦
Press its key, if available. For example, press TI.89: 2W or  
TI.92 Plus: W.  
— or —  
Select it from a menu, if available. For example, select 2:abs from  
the Number submenu of the MATH menu.  
— or —  
Type the name letter-by-letter from the keyboard. (On the TI-89,  
use j and 2 ™ to type letters.) You can use any mixture  
of uppercase or lowercase letters. For example, type sin( or Sin(.  
Type the function name in this  
example.  
Calculate 3.76 ÷ (ë 7.9 + 5) + 2 log 45.  
Example  
On the TI.89:  
On the TI.92 Plus:  
Display  
3.76/(ë 7.9+(  
3 . 7 6 e  
c · 7 . 9  
« 2 ]  
3 . 7 6 e  
c · 7 . 9  
« 2 ]  
2 ] inserts ( because its  
argument must be in parentheses.  
5 d d  
5 d d  
3.76/(ë 7.9+(5))  
Use d once to close (5) and  
again to close (ë7.9 + 5).  
Note: You can also select  
log by using  
TI.89: ½  
TI.92 Plus: 2 ½  
(page 44).  
« 2  
« 2  
3.76/(ë 7.9+(5))+2log(45)  
log requires ( ) around its  
argument.  
2 ™ L O G j L O G  
c 4 5 d  
c 4 5 d  
¸
¸
Displays last result only.  
To enter more than one  
expression or instruction  
at a time, separate them  
with a colon by pressing  
2Ë.  
Entering Multiple  
Expressions on a  
Line  
! is displayed when you press §  
to store a value to a variable.  
Chapter 2: Operating the Calculator  
27  
 
In the history area, if both the entry and its answer cannot be  
displayed on one line, the answer is displayed on the next line.  
If an Entry or  
Answer Is Too Long  
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 Cto move the cursor from the entry line up into the history  
area. This highlights the last answer.  
2. As necessary, use Cand Dto highlight the entry or answer you  
want to view. For example, Cmoves from answer to entry, up  
through the history area.  
Note: When you scroll to  
the right, 7 is displayed at  
the beginning of the line.  
3. Use Band Aor 2Band  
2Ato scroll right and left.  
4. To return to the entry line,  
press N.  
When you press ¸ to evaluate an expression, the  
TI-89 / TI-92 Plus leaves the expression on the entry line and highlights  
it. You can continue to use the last answer or enter a new  
expression.  
Continuing a  
Calculation  
If you press:  
The TI.89 / TI.92 Plus:  
«, |, p, e,  
Z, or §  
Replaces the entry line with the variable ans(1),  
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.  
Calculate 3.76 ÷ (ë 7.9 + 5). Then add 2 log 45 to the result.  
Example  
On the TI.89:  
On the TI.92 Plus:  
Display  
3 . 7 6 e c · 7 . 9 «  
3 . 7 6 e c · 7 . 9 «  
2 ] 5 d d ¸  
2 ] 5 d d ¸  
« 2 2 ™ L O G j « 2 L O G  
c 4 5 d  
¸
c 4 5 d  
¸
When you press «, the entry  
line is replaced with the  
variable ans(1), which  
contains the last answer.  
When a calculation is in progress, BUSY appears on the right end of  
the status line. To stop the calculation, press ´.  
Stopping a  
Calculation  
There may be a delay before the “break”  
message is displayed.  
Press Nto return to the current application.  
28  
Chapter 2: Operating the Calculator  
 
Formats of Displayed Results  
A result may be calculated and displayed in any of several  
formats. This section describes the TI-89 / TI-92 Plus modes  
and their settings that affect the display formats. To check or  
change your current mode settings, refer to page 40.  
By default, Pretty Print = ON. Exponents, roots, fractions, etc., are  
displayed in the same form in which they are traditionally written.  
You can use 3to turn pretty print off and on.  
Pretty Print Mode  
Pretty Print  
ON  
OFF  
xì 3  
p
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 ¸.  
By default, Exact/Approx = AUTO. You can use 3to select from  
three settings.  
Exact/Approx Mode  
Because AUTO is a combination of  
the other two settings, you should be  
familiar with all three settings.  
Note: By retaining fractional  
and symbolic forms, EXACT  
reduces rounding errors that  
could be introduced by  
EXACT — Any result that is not a whole number is displayed in a  
fractional or symbolic form (1/2, p, 2, etc.).  
Shows whole-number results.  
intermediate results in  
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.  
Chapter 2: Operating the Calculator  
29  
 
APPROXIMATE — All numeric results, where possible, are displayed  
in floating-point (decimal) form.  
Exact/Approx  
(continued)  
Fractional results are  
evaluated numerically.  
Note: Results are rounded  
to the precision of the  
TI-89 / TI-92 Plus and  
displayed according to  
current mode settings.  
Symbolic forms, where  
possible, are evaluated  
numerically.  
Because undefined variables cannot be evaluated, they are  
treated algebraically. For example, if the variable r is undefined,  
prñ = 3.14159rñ.  
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  
floating-point result.  
Tip: To retain an EXACT  
form, use fractions instead  
of decimals. For example,  
use 3/2 instead of 1.5.  
The following chart compares the three settings.  
Exact  
Result  
Approximate  
Result  
Auto  
Result  
Entry  
8/4  
2
4/3  
2.  
1.33333  
25.5  
2
4/3  
Tip: To evaluate an entry in  
APPROXIMATE form,  
8/6  
regardless of the current  
setting, press ¥ ¸.  
A decimal in the  
entry forces a  
floating-point  
8.5ù 3  
51/2  
25.5  
2
2
2
2
(2)/2  
.707107  
result in AUTO.  
pù 2  
2p  
6.28319  
6.28319  
2p  
pù 2.  
2p  
6.28319  
30  
Chapter 2: Operating the Calculator  
By default, Display Digits = FLOAT 6, which means that results are  
rounded to a maximum of six digits. You can use 3to select  
different settings. The settings apply to all exponential formats.  
Display Digits Mode  
Internally, the TI-89 / TI-92 Plus 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  
(0 – 12)  
123.  
123.5  
123.46  
(FIX 0)  
(FIX 1)  
(FIX 2)  
Results are rounded to the  
selected number of decimal  
places.  
Display Digits setting, the  
full value is used for internal  
floating-point calculations to  
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 – 12)  
1.E 2  
1.2E 2  
123.  
123.5  
123.46  
(FLOAT 1) Results are rounded to the total  
(FLOAT 2) number of selected digits.  
(FLOAT 3)  
(FLOAT 4)  
(FLOAT 5)  
automatically shown in  
scientific notation if its  
magnitude cannot be  
displayed in the selected  
number of digits.  
123.457 (FLOAT 6)  
By default, Exponential Format = NORMAL.  
You can use 3to select from three  
settings.  
Exponential Format  
Mode  
Setting  
Example  
Description  
Note: In the history area, a  
number in an entry is  
displayed in SCIENTIFIC if  
its absolute value is less  
than .001.  
NORMAL  
12345.6  
If a result cannot be displayed in the  
number of digits specified by the  
Display Digits mode, the  
TI-89 / TI-92 Plus switches from  
NORMAL to SCIENTIFIC for that  
result only.  
SCIENTIFIC  
1.23456E 4  
12.3456E 3  
1.23456 × 104  
Exponent (power of 10).  
Always 1 digit to the left of the  
decimal point.  
ENGINEERING  
12.3456 × 103  
Exponent is a multiple of 3.  
May have 1, 2, or 3 digits to the  
left of the decimal point.  
Chapter 2: Operating the Calculator  
31  
 
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.  
After you press ¸ to evaluate an expression, the TI-89 / TI-92 Plus  
leaves that expression on the entry line and highlights it. To edit the  
expression, you must first remove the highlight; otherwise, you may  
clear the expression accidentally by typing over it.  
Removing the  
Highlight from the  
Previous Entry  
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.  
After removing the highlight, move the cursor to the applicable  
position within the expression.  
Moving the Cursor  
To move the cursor:  
Press:  
Note: If you accidentally  
press C instead of A or B,  
the cursor moves up into the  
history area. Press N or  
press D until the cursor  
returns to the entry line.  
Left or right within an expression.  
Aor B  
Hold the pad to  
repeat the  
movement.  
To the beginning of the expression.  
To the end of the expression.  
2A  
2B  
Deleting a Character  
To delete:  
Press:  
The character to the  
left of the cursor.  
0
Hold 0to delete multiple  
characters.  
The character to the  
right of the cursor.  
¥ 0  
All characters to the  
right of the cursor.  
M
(once only)  
If there are no characters to the  
right of the cursor, Merases  
the entire entry line.  
To clear the entry line, press:  
Clearing the Entry  
Line  
¦
¦
Mif the cursor is at the beginning or end of the entry line.  
— or —  
MMif 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.  
32  
Chapter 2: Operating the Calculator  
 
The TI-89 / TI-92 Plus has both an insert and an overtype mode. By  
default, the TI-89 / TI-92 Plus is in the insert mode. To toggle between  
the insert and overtype modes, press 2/.  
Inserting or  
Overtyping a  
Character  
If the TI.89 / TI.92 Plus is in:  
The next character you type:  
Will be inserted at the cursor.  
Tip: Look at the cursor to  
see if you’re in insert or  
overtype mode.  
Thin cursor between  
characters  
Will replace the highlighted  
character.  
Cursor highlights  
a character  
First, highlight the applicable characters. Then, replace or delete all  
the highlighted characters.  
Replacing or  
Deleting Multiple  
Characters  
To:  
Do this:  
Highlight multiple  
characters  
1. Move the cursor to either side of the  
characters you want to highlight.  
To replace sin( with cos(, place  
the cursor beside sin.  
2. Hold ¤ and press Aor Bto highlight  
characters left or right of the cursor.  
Hold ¤ and press B B B B.  
Tip: When you highlight  
characters to replace,  
remember that some  
function keys automatically  
add an open parenthesis.  
Replace the  
highlighted  
characters  
Type the new characters.  
— or —  
Delete the  
highlighted  
characters  
Press 0.  
Chapter 2: Operating the Calculator  
33  
Menus  
To leave the keyboard uncluttered, the TI-89 / TI-92 Plus 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:  
ƒ, ,  
etc.  
A toolbar menu — Drops down from the toolbar at the  
top of most application screens. Lets you select  
operations useful for that application.  
O
APPLICATIONS menu — Lets you select from a list of  
applications. Refer to page 38.  
2¿  
2I  
CHAR menu — Lets you select from categories of  
special characters (Greek, math, etc.).  
MATH menu — Lets you select from categories of  
math operations.  
TI.89:  
½
CATALOG menu — Lets you select from a complete,  
alphabetic list of the TI-89 / TI-92 Plus’s built-in  
functions and instructions. Also lets you select user-  
defined functions or Flash application functions (if  
any have been defined or loaded).  
TI.92 Plus:  
2 ½  
CUSTOM menu — Lets you access a menu that you  
can customize to list any available function,  
instruction, or character. The TI-89 / TI-92 Plus includes  
a default custom menu, which you can modify or  
redefine. Refer to page 37 and to Chapter 17.  
To select an item from the displayed menu, either:  
Selecting an Item  
from a Menu  
¦
Press the number or letter shown to the left of that item. For a  
letter on the TI-89, press j and then a letter key.  
— or —  
¦
Use the cursor pad Dand Cto highlight the item, and then press  
¸. (Note that pressing Cfrom the first item moves the  
highlight to the last item, and 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(  
34  
Chapter 2: Operating the Calculator  
 
If you select a menu item ending with ú, a submenu is displayed. You  
then select an item from the submenu.  
Items Ending with  
ú(Submenus)  
Note: Because of limited  
screen size, the TI-89  
overlaps these menus as:  
For example, List displays a  
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.)  
To wrap to the last menu item directly from the first menu item,  
press C. To wrap to the first menu item directly from the last  
menu item, press D.  
If you select a menu item containing “. . .” (ellipsis marks), a dialog  
box is displayed for you to enter additional information.  
Items Containing “. . .”  
(Dialog Boxes)  
For example, Save Copy As ...  
displays a dialog box that prompts  
you to select a folder name and  
type 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. (Alpha-lock is  
automatically turned on for the  
TI-89. See page 22.)  
After typing in an input box such as Variable, you must  
press ¸ twice to save the information and close  
the dialog box.  
To cancel the current menu without making a selection, press N.  
Depending on whether any submenus are displayed, you may need to  
press Nseveral times to cancel all displayed menus.  
Canceling a Menu  
Chapter 2: Operating the Calculator  
35  
 
To move from one toolbar menu to another without making a  
selection, either:  
Moving from One  
Toolbar Menu to  
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 Bfrom 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, Bdisplays that item’s submenu instead of moving  
to the next toolbar menu.  
Round the value of p to three decimal places. Starting from a clear  
entry line on the Home screen:  
Example: Selecting  
a Menu Item  
1. Press 2Ito 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  
DDand ¸.)  
4. Press 2Tb 3 d and then  
¸ to evaluate the expression.  
Selecting the function in  
Step 3 automatically  
typed round( on the  
entry line.  
36  
Chapter 2: Operating the Calculator  
Using the Custom Menu  
The TI-89 / TI-92 Plus 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.  
When you turn on the custom menu, it replaces the normal toolbar  
menu. When you turn it off, the normal menu returns. For example,  
from the Home screen’s normal toolbar menu, press 2 ¾ to  
toggle the custom menu on and off.  
Turning the Custom  
Menu On and Off  
Note: You can also turn the  
custom menu on and off by  
entering CustmOn or  
2 ¾  
CustmOff in the entry line  
and pressing ¸.  
Home screen normal toolbar menu  
Custom menu  
Unless the menu has been modified, the default custom menu  
appears.  
Tip: A custom menu can  
give you quick access to  
commonly used items.  
Chapter 17 shows you how  
to create custom menus for  
the items you use most  
often.  
Menu  
Function  
ƒ Var  
Common variable names.  
Function names such as f(x), g(x), and f(x,y).  
f(x)  
Solve  
Unit  
Items related to solving equations.  
Common units such as _m, _ft, and _l.  
Symbols such as #, ?, and ~.  
Symbol  
Internat’l  
Commonly accented characters such as è, é,and ê.  
TI.89: 2 ˆ  
TI.92 Plus: ˆ  
Tool  
ClrHome, NewProb, and CustmOff.  
TI.89: 2 ‰  
TI.92 Plus: ‰  
If a custom menu other than the default is displayed and you want to  
restore the default:  
Restoring the  
Default Custom  
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  
menu is erased. If that menu  
was created with a program  
(Chapter 17), it can be  
recreated later by running  
the program again.  
2. Display the Clean Up toolbar menu,  
and select 3:Restore custom default.  
TI.89: 2 ˆ  
TI.92 Plus: ˆ  
This pastes the commands used to create the default menu into  
the entry line.  
3. Press ¸ to execute the commands and restore the default.  
Chapter 2: Operating the Calculator  
37  
 
Selecting an Application  
The TI-89 / TI-92 Plus 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.  
1. Press Oto display a menu that lists the applications.  
From the  
APPLICATIONS Menu  
2. Select an application. Either:  
¦
Use the cursor pad Dor Cto  
highlight the application and  
then press ¸.  
Note: To cancel the menu  
without making a selection,  
press N.  
— or —  
¦
Press the number or letter for  
that application.  
Application:  
Lets you:  
FlashApps  
Display a list of Flash applications, if any.  
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  
Table  
Display graphs (Chapter 6).  
Display a table of variable values that  
correspond to an entered function  
(Chapter 13).  
Data/Matrix Editor  
Program Editor  
Enter and edit lists, data, and matrices. You  
can perform statistical calculations and  
graph statistical plots (Chapters 15 and 16).  
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).  
Home  
Enter expressions and instructions, and  
perform calculations.  
38  
Chapter 2: Operating the Calculator  
 
You can access commonly used applications from the keyboard. On  
the TI-89 for example, ¥ # is the same as pressing ¥ and then ƒ.  
This guidebook uses the notation ¥ #, similar to the notation used  
in second functions.  
From the Keyboard  
TI-89  
Application:  
Press:  
Applications listed  
above ƒ, etc.,  
are printed in the  
same color as ¥.  
Home  
TI.89: "  
TI.92 Plus: ¹ "  
Y= Editor  
¥ #  
Window Editor¥ $  
Y=  
WINDOW  
F2  
GRAPH  
F3  
TBLSet  
F4  
TABLE  
F5  
F1  
Graph  
¥ %  
¥ &  
Table Setup  
Table Screen ¥ '  
APPS  
HOME  
On the TI-92 Plus, applications are listed above the QWERTY keys.  
Applications  
Diamond key  
Chapter 2: Operating the Calculator  
39  
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 / TI-92 Plus is turned off. All  
numbers, including elements of matrices and lists, are  
displayed according to the current mode settings.  
Press 3to display the MODE dialog box, which lists the modes  
and their current settings.  
Checking Mode  
Settings  
There are three pages of mode listings.  
Press ƒ, , or to quickly display a  
particular page.  
! indicates that you can  
press B or A to display  
and select from a menu.  
Indicates you can  
scroll down to see  
additional modes.  
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.  
From the MODE dialog box:  
Changing Mode  
Settings  
1. Highlight the mode setting you want to change. Use Dor C(with  
ƒ, , or ) to scroll through the list.  
2. Press Bor Ato display a menu that lists the valid settings. The  
current setting is highlighted.  
Tip: To cancel a menu and  
return to the MODE dialog  
box without making a  
3. Select the applicable setting. Either:  
¦
¦
Use Dor Cto highlight the setting and press ¸.  
— or —  
Press the number or letter for that setting.  
selection, press N.  
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 Ninstead of ¸ to exit the MODE  
dialog box, any mode changes you made will be canceled.  
40  
Chapter 2: Operating the Calculator  
 
Overview of the  
Modes  
Mode  
Description  
Graph  
Type of graphs to plot: FUNCTION, PARAMETRIC,  
POLAR, SEQUENCE, 3D, or DE.  
Current  
Folder  
Folder used to store and recall variables. Unless you  
have created additional folders, only the MAIN folder  
is available. Refer to “Using Folders to Store  
Independent Sets of Variables” in Chapter 5.  
Note: For detailed  
information about a  
particular mode, look in the  
applicable section of this  
guidebook.  
Display  
Digits  
Maximum number of digits (FLOAT) or fixed number  
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 31.  
Angle  
Units in which angle values are interpreted and  
displayed: RADIAN or DEGREE.  
Exponential  
Format  
Notation used to display results: NORMAL,  
SCIENTIFIC, or ENGINEERING. Refer to page 31.  
Complex  
Format  
Format used to display complex results, if any:  
REAL (complex results are not displayed unless you  
use a complex entry), RECTANGULAR, or POLAR.  
Vector  
Format  
Format used to display 2- and 3-element vectors:  
RECTANGULAR, CYLINDRICAL, or SPHERICAL.  
Pretty Print  
Turns the pretty print display feature OFF or ON.  
Refer to page 29.  
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  
Split 2 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.  
Application in the bottom or right side of a split  
screen. This is active only for a split screen.  
Number of  
Graphs  
For a split screen, lets you set up both sides of the  
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.  
Split Screen  
Ratio  
Proportional sizes of the two parts of a split screen:  
1:1, 1:2, or 2:1. (TI-92 Plus only)  
Exact/Approx Calculates expressions and displays results in  
numeric form or in rational/symbolic form: AUTO,  
EXACT, or APPROXIMATE. Refer to page 29.  
Chapter 2: Operating the Calculator  
41  
 
Modes  
Mode  
Description  
(continued)  
Base  
Lets you perform calculations by entering numbers in  
decimal (DEC), hexadecimal (HEX), or binary (BIN) form.  
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.  
Custom Units Lets you select custom defaults. The mode is dimmed  
until you select Unit System, 3:CUSTOM.  
Language  
Lets you localize the TI-89 / TI-92 Plus into one of  
several languages, depending on which language  
Flash applications are installed.  
42  
Chapter 2: Operating the Calculator  
 
Using the Clean Up Menu to Start a New Problem  
On the Home screen, the Clean Up toolbar menu lets you start  
a new calculation from a cleared state without resetting the  
TI-89 / TI-92 Plus’s memory.  
From the Home screen, display the Clean Up menu by pressing:  
TI.89: 2 ˆ  
TI.92 Plus: ˆ  
Clean Up 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  
variable that you want to  
retain, use more than one  
character in the name. This  
prevents it from being  
deleted inadvertently by  
1:Clear a–z.  
Single-character variable names are often used in  
symbolic calculations such as:  
solve(aøxñ+bøx+c=0,x)  
If any of the variables have already been assigned a  
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  
checking and resetting  
memory or other system  
defaults, refer to  
NewProb  
Places NewProb in the entry line. You must then  
press ¸ to execute the command.  
NewProb performs a variety of operations that let you  
begin a new problem from a cleared state without  
resetting the memory:  
Chapter 21.  
¦
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  
custom  
default  
If a custom menu other than the default is in effect,  
this lets you restore the default. Refer to page 37.  
Chapter 2: Operating the Calculator  
43  
 
Using the Catalog Dialog Box  
The CATALOG provides a way to access any built-in  
TI-89 / TI-92 Plus command (functions and instructions) from  
one convenient list. In addition, the CATALOG dialog box lets  
you select functions used in Flash applications or user-defined  
functions (if any have been loaded or defined).  
To display the CATALOG dialog box, press:  
Displaying the  
CATALOG  
TI.89: ½  
TI.92 Plus: 2 ½  
The CATALOG defaults to Built-in, which displays an alphabetic  
list of all pre-installed TI-89 / TI-92 Plus commands (functions and  
instructions).  
and allow access to  
Flash application functions  
and User-Defined functions  
and programs.  
Defaults to  
Built-in.  
ƒ Help is reserved for  
a future online help  
Flash application.  
Note: Options that are not currently valid are dimmed. For  
example, ƒ Help is reserved for a future online help Flash  
application. Flash Apps is dimmed if you have not installed a  
Flash application. User-Defined is dimmed if you have not  
created a function or a program.  
When you select a command, its name is inserted in the entry line at  
the cursor location. Therefore, you should position the cursor as  
necessary before selecting the command.  
Selecting a Built-in  
Command from the  
CATALOG  
1. Press:  
TI.89: ½  
TI.92 Plus: 2 ½  
2. Press Built-in.  
Note: The first time you  
display the Built-in list, it  
starts at the top of the list.  
The next time you display  
the list, it starts at the same  
place you left it.  
¦ Commands are listed in  
alphabetical order. Commands that  
do not start with a letter  
(+, %, , G, etc.) are at the end of  
the list.  
¦ To exit the CATALOG without  
selecting a command, press N.  
44  
Chapter 2: Operating the Calculator  
 
3. Move the ú indicator to the command, and press ¸.  
To move the ú indicator:  
Press or type:  
Tip: From the top of the list,  
press C to move to the  
bottom. From the bottom,  
press D to move to the top.  
One command at a time  
Dor C  
One page at a time  
2Dor 2C  
To the first command that  
begins with a specified letter  
The letter key. (On the TI-89, do  
not press j first. If you do,  
you need to press j or  
2 ™ again before you can  
type a letter.)  
For the command indicated by ú, the status line shows the required  
and optional parameters, if any, and their type.  
Information about  
Parameters  
Indicated command  
and its parameters  
Brackets [ ] indicate  
optional parameters.  
Note: For details about the  
parameters, refer to that  
command’s description in  
Appendix A.  
From the example above, the syntax for factor is:  
factor(expression)  
— or —  
required  
optional  
factor(expression,variable)  
A Flash application may contain one or more functions. When you  
select a function, its name is inserted in the entry line at the cursor  
location. Therefore, you should position the cursor as necessary  
before selecting the function.  
Selecting a Flash  
Application  
Function  
1. Press:  
TI.89: ½  
TI.92 Plus: 2 ½  
2. Press Flash Apps. (This option is dimmed if no Flash  
applications are installed in the TI-89 / TI-92 Plus.)  
¦ The list is alphabetized by function  
name. The left column lists functions.  
The right column lists the Flash  
application that contains the function.  
¦ Information about a function is  
displayed in the status line.  
¦ To exit without selecting a function,  
press N.  
Chapter 2: Operating the Calculator  
45  
 
3. Move the ú indicator to the function, and press ¸.  
To move the ú indicator:  
Press or type:  
One function at a time  
Dor C  
One page at a time  
2Dor 2C  
To the first function that  
The letter key. (On the TI-89, do  
begins with a specified letter not press j first. If you do,  
you need to press j or  
2 ™ again before you can  
type a letter.)  
You can create your own functions or programs and then use  
User-Defined to access them. For instructions on how to create  
functions, see “Creating and Evaluating User-Defined Functions” in  
Chapter 5, and “Overview of Entering a Function” in Chapter 17. See  
Chapter 17 for instructions on how to create and run a program.  
Selecting a  
User-Defined  
Function or  
Program  
When you select a function or program, its name is inserted in the  
entry line at the cursor location. Therefore, you should position the  
cursor as necessary before selecting the function or program.  
1. Press:  
TI.89: ½  
TI.92 Plus: 2 ½  
2. Press User-Defined. (This option is dimmed if you have not  
defined a function or created a program.)  
Note: Use the VAR-LINK  
screen to manage  
variables, folders, and  
Flash applications. See  
Chapter 21.  
¦ The list is alphabetized by function /  
program name. The left column lists  
functions and programs. The right  
column lists the folder that contains  
the function or program.  
¦ If the function or program’s first line is  
a comment, the comment text is  
displayed in the status line.  
¦ To exit without selecting a function or  
program, press N.  
3. Move the ú indicator to the function or program, and press ¸.  
To move the ú indicator:  
Press or type:  
One function or program at a Dor C  
time  
One page at a time  
2Dor 2C  
To the first function or  
program that begins with a  
specified letter  
The letter key. (On the TI-89, do  
not press j first. If you do,  
you need to press j or  
2 ™ again before you can  
type a letter.)  
46  
Chapter 2: Operating the Calculator  
 
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 / TI-92 Plus encounters the name in an  
expression, it substitutes the variable’s stored value.  
A variable name:  
Rules for Variable  
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 / TI-92 Plus. 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  
a
OK  
OK  
Log  
Log1  
Not OK, name is preassigned to the log function.  
OK  
3rdTotal  
circumfer  
Not OK, starts with a digit.  
Not OK, more than 8 characters.  
You can save any TI-89 / TI-92 Plus data type as a variable. For a list of  
data types, refer to getType() in Appendix A. Some examples are:  
Data Types  
Data Types  
Expressions  
Lists  
Examples  
2.54, 1.25í 6, 2p, xmin/10, 2+3i, (xì 2)ñ, 2/2  
{2 4 6 8}, {1 1 2}  
1 0 0  
[1 0 0],  
Matrices  
3 4 6  
Character strings  
Pictures  
“Hello”, “The answer is:”, “xmin/10”  
Functions  
myfunc(arg), ellipse(x,y,r1,r2)  
Chapter 2: Operating the Calculator  
47  
 
1. Enter the value you want to store, which can be an expression.  
2. Press §. The store symbol (! ) is displayed.  
3. Type the variable name.  
Storing a Value in a  
Variable  
Note: TI-89 users should  
use j as necessary  
when typing variable names.  
4. Press ¸.  
To store to a variable temporarily, you can use the “with” operator.  
Refer to “Substituting Values and Setting Constraints” in Chapter 3.  
1. Type the variable name.  
Displaying a  
Variable  
2. Press ¸.  
If the variable is undefined, the variable name is shown in the result.  
Note: Refer to Chapter 3 for  
information about symbolic  
manipulation.  
In this example, the variable a is  
undefined. Therefore, it is used as a  
symbolic variable.  
1. Type the variable name into the  
expression.  
Using a Variable in  
an Expression  
2. Press ¸ to evaluate the  
expression.  
Tip: To view a list of existing  
variable names, use  
2 ° as described in  
Chapter 21.  
The variable’s value  
did not change.  
If you want the result to replace the  
variable’s previous value, you must  
store the result.  
In some cases, you may want to use a variable’s actual value in an  
expression instead of the variable name.  
Recalling a  
Variable’s Value  
1. Press 2£to display a dialog  
box.  
2. Type the variable name.  
3. Press ¸ twice.  
In this example, the value stored in num1 will be inserted at the  
cursor position in the entry line.  
48  
Chapter 2: Operating the Calculator  
 
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.  
When you press ¸ to evaluate an expression, the TI-89 / TI-92 Plus  
leaves that expression on the entry line and highlights it. You can  
type over the entry, or you can reuse it as necessary.  
Reusing the  
Expression on the  
Entry Line  
For example, using a variable, find the square of 1, 2, 3, etc.  
As shown below, set the initial variable value and then enter the  
variable expression. Next, reenter to increment the variable and  
calculate the square.  
Tip: Reexecuting an entry  
“as is” is useful for iterative  
calculations that involve  
variables.  
On the TI.89:  
On the TI.92 Plus:  
Display  
0 §  
2 ™ N U M  
¸
0 §  
N U M  
¸
N U M j « 1 § N U M « 1 §  
2 ™ N U M  
2 Ë N U M Z 2  
¸
N U M  
2 Ë N U M Z 2  
¸
¸ ¸  
¸ ¸  
Chapter 2: Operating the Calculator  
49  
 
Using the equation A=pr2, use trial and error to find the radius of a  
circle that covers 200 square centimeters.  
Tip: Editing an entry lets  
you make minor changes  
without retyping the entire  
entry.  
The example below uses 8 as the first guess and then displays the  
answer in its approximate floating-point form. You can edit and  
reexecute using 7.95 and continue until the answer is as accurate as  
you want.  
On the TI.89:  
On the TI.92 Plus:  
Display  
8 § j R 2 Ë 8 § R 2 Ë  
2 ã p ä j R Z 2  
2 T R Z 2  
¸
¸
¥ ¸  
¥ ¸  
Note: When the entry  
contains a decimal point, the  
result is automatically  
A ¥ 8  
7.95¸  
A ¥ .  
7.95¸  
displayed in floating-point.  
You can recall any previous entry that is stored in the history area,  
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.  
Recalling a Previous  
Entry  
To recall:  
Press:  
Effect:  
Note: You can also use the  
entry function to recall any  
previous entry. Refer to  
entry() in Appendix A.  
The last entry  
(if you’ve changed once  
the entry line)  
2²  
If the last entry is still shown on  
the entry line, this recalls the  
entry prior to that.  
Previous entries  
2²  
repeatedly  
Each press recalls the entry  
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.  
50  
Chapter 2: Operating the Calculator  
 
Each time you evaluate an expression, the TI-89 / TI-92 Plus stores the  
answer to the variable ans(1). To insert this variable in the entry line,  
press 2±.  
Recalling the Last  
Answer  
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  
Appendix A.  
Just as ans(1) always contains the last answer, ans(2), ans(3), etc.,  
also contain previous answers. For example, ans(2) contains the  
next-to-last answer.  
Chapter 2: Operating the Calculator  
51  
 
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.  
The effect of using auto-paste is similar to 2²and 2± as  
described in the previous section, but there are differences.  
Why Use Auto-Paste  
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  
Pasting Information” in  
Chapter 5.  
For answers:  
Pasting lets you:  
2 ± lets you:  
Insert the displayed Insert the variable ans(1),  
value of any  
which contains the last  
previous answer  
into the entry line.  
answer only. Each time you  
enter a calculation, ans(1) is  
updated to the latest answer.  
1. On the entry line, place the cursor where you want to insert the  
entry or answer.  
Auto-Pasting an  
Entry or Answer  
2. Press Cto move the cursor up into the history area. This  
highlights the last answer.  
Tip: To cancel auto-paste  
and return to the entry line,  
press N.  
3. Use Cand Dto highlight the entry or answer to auto-paste.  
¦
¦
Cmoves from answer to  
entry up through the history  
area.  
You can use Cto highlight  
items that have scrolled off  
the screen.  
Tip: To view an entry or  
answer too long for one line  
(indicated by ú at the end of  
the line), use B and A or  
2 B and 2 A.  
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.  
52  
Chapter 2: Operating the Calculator  
 
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 / TI-92 Plus, including several important mode settings.  
Status Line  
Indicators  
Graph  
Number  
(G#1 on the  
TI-92 Plus)  
Current  
Folder  
Modifier  
Key  
Replace  
Batteries  
Angle  
Mode  
Graph  
Mode  
History Pairs,  
Busy/Pause,  
Locked Variable  
Exact/Approx  
Mode  
Indicator  
Meaning  
Current  
Folder  
Shows the name of the current folder. Refer to  
“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 / TI-92 Plus.  
Note: To cancel 2, ¥,  
j, or ¤, press the same  
key again or press a  
Modifier Key Shows which modifier key is in effect, as described  
below.  
different modifier key.  
2nd  
2 — will use the second function of the next key  
you press.  
Note: If the next key you  
press does not have a  
diamond feature or an  
associated letter, the key  
performs its normal  
operation.  
2
¥ — will use the diamond feature of the next key  
you press.  
(TI-89)  
(TI-89)  
j — will type the lowercase letter for the next  
key you press.  
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.  
(TI-89)  
¤ 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. On the TI-89, you can use ¤ to type a  
letter without having to use j.  
Angle  
Mode  
Shows the units in which angle values are  
interpreted and displayed. To change the Angle  
mode, use the 3key.  
RAD  
DEG  
Radians  
Degrees  
Chapter 2: Operating the Calculator  
53  
 
Status Line  
(continued)  
Indicator  
Meaning  
Exact/  
Approx  
Mode  
Shows how answers are calculated and displayed.  
Refer to page 29. To change the Exact/Approx mode,  
use the 3key.  
AUTO  
Auto  
EXACT  
Exact  
APPROX  
Approximate  
Graph  
Number  
If the screen is split to show two independent graphs,  
this indicates which graph is active — GR1 or GR2.  
(Displays G#1 or G#2 on the TI-92 Plus.)  
Graph  
Mode  
Indicates the type of graphs that can be plotted. To  
change the Graph mode, use the 3key.  
FUNC  
y(x) functions  
PAR  
POL  
SEQ  
3D  
x(t) and y(t) parametric equations  
r(q) polar equations  
u(n) sequences  
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,  
Archived  
depends on the application you are using.  
Displayed on the Home screen to show the number  
of entry/answer pairs in the history area. Refer to  
page 24.  
23/30  
A calculation or graph is in progress.  
You paused a graph or program.  
BUSY  
PAUSE  
Œ
The variable opened in the current editor  
(Data/Matrix Editor, Program Editor, or Text Editor)  
is locked or archived and cannot be modified.  
54  
Chapter 2: Operating the Calculator  
 
Finding the Software Version and ID Number  
In some situations, you may need to find out information about  
your TI-89 / TI-92 Plus, particularly the software version and the  
unit’s ID number.  
From the Home screen, press  
ƒ and then select A:About.  
Displaying the  
“About” Screen  
Your screen will be different  
than the one shown to the right.  
Press ¸ or N to close the  
screen.  
The information on the About screen is intended for situations  
such as:  
When Do You Need  
this Information?  
¦
If you obtain new or upgraded software for your TI-89 / TI-92 Plus,  
you may need to provide your current software version and/or the  
ID number of your unit.  
¦
If you have difficulties with your TI-89 / TI-92 Plus and need to  
contact technical support, knowing the software version may  
make it easier to diagnose the problem.  
Chapter 2: Operating the Calculator  
55  
 
56  
Chapter 2: Operating the Calculator  
Symbolic Manipulation  
Preview of Symbolic Manipulation........................................................ 58  
Using Undefined or Defined Variables.................................................. 59  
Using Exact, Approximate, and Auto Modes ....................................... 61  
Automatic Simplification......................................................................... 64  
Delayed Simplification for Certain Built-In Functions........................ 66  
Substituting Values and Setting Constraints ........................................ 67  
Overview of the Algebra Menu............................................................... 70  
Common Algebraic Operations.............................................................. 72  
Overview of the Calc Menu..................................................................... 75  
Common Calculus Operations................................................................ 76  
User-Defined Functions and Symbolic Manipulation ......................... 77  
If You Get an Out-of-Memory Error....................................................... 79  
Special Constants Used in Symbolic Manipulation ............................. 80  
3
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  
57  
   
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.  
³
TI.89  
Keystrokes  
TI.92 Plus  
Keystrokes  
Steps  
Display  
"
M M  
1  
¥ "  
M M  
1  
1. Display the Home screen and  
clear the entry line. Solve the  
equation  
2 X | 3 Y Á 4  
b X d ¸  
2 X | 3 Y Á 4  
b X d ¸  
2x ì 3y = 4 for x.  
1 selects solve( from the Algebra  
menu. You can also type solve(  
directly from the keyboard or select it  
from the Catalog.  
1  
· X « 7 Y Á  
· 1 2 b Y d  
1  
· X « 7 Y Á  
· 1 2 b Y d  
2. Begin to solve the equation  
ë x + 7y = ë 12 for y, but do not  
press ¸ yet.  
Í
C ¸  
¸
2 Í  
C ¸  
¸
3. Use the “with” operator to  
substitute the expression for x  
that 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.  
C C C  
C C C  
4. Highlight the equation for x in  
the history area.  
¸
Í
C ¸  
¸
¸
5. Auto-paste the highlighted  
expression to the entry line.  
Then substitute the value of y  
that was calculated from the  
second equation.  
2 Í  
C ¸  
¸
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 73.)  
58  
Chapter 3: Symbolic Manipulation  
 
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.  
When you enter an expression that contains a variable, the  
TI-89 / TI-92 Plus treats the variable in one of two ways.  
How Undefined and  
Defined Variables  
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  
variable, it’s a good practice  
to use more than one  
character in the name.  
Leave one-character names  
undefined for symbolic  
calculations.  
To see why this is important, suppose you want to find the first  
derivative of xò with respect to x.  
¦
If x is undefined, the  
result is in the form  
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  
Variable Is  
Undefined  
Method:  
Example:  
If defined, the variable’s  
value is displayed.  
Enter the variable  
name.  
Note: Use 2 ° to  
view a list of defined  
variables, as described in  
Chapter 21.  
If undefined, the variable  
name is displayed.  
If defined, the variable’s  
type is displayed.  
Use the getType  
function.  
If undefined, “NONE” is  
displayed.  
Chapter 3: Symbolic Manipulation  
59  
 
You can “undefine” a defined variable by deleting it.  
Deleting a Defined  
Variable  
To delete:  
Do this:  
One or more specified  
variables  
Use the DelVar function.  
You can also delete variables by using the  
VAR-LINK screen (2°) as  
described in Chapter 21.  
Note: For information about  
folders, refer to Chapter 5.  
All one-letter variables From the Home screen Clean Up menu,  
(a z) in the current  
select 1:Clear a-z. You will be prompted to  
folder  
press ¸ to confirm the deletion.  
By using the “with” operator ( | ), you can:  
Temporarily  
Overriding a  
Variable  
¦
Temporarily override  
a variable’s defined  
value.  
Note: For more information  
about the | operator, refer to  
page 67.  
¦
Temporarily define a  
value for an undefined  
variable.  
To type the “with” operator ( | ), press:  
TI.89: Í  
TI.92 Plus: 2 Í  
60  
Chapter 3: Symbolic Manipulation  
 
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 / TI-92 Plus calculates a result. This section  
describes these mode settings as they relate to symbolic  
manipulation.  
When Exact/Approx = EXACT, the TI-89 / TI-92 Plus uses exact rational  
arithmetic with up to 614 digits in the numerator and 614 digits in the  
denominator. The EXACT setting:  
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 / TI-92 Plus.  
¦
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  
61  
 
When Exact/Approx = APPROXIMATE, the TI-89 / TI-92 Plus converts  
rational numbers and irrational constants to floating-point. However,  
there are exceptions:  
APPROXIMATE  
Setting  
¦
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: x2.0 transforms to x2 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  
needed, this might save  
time and/or use less  
Results with undefined variables or  
functions often exhibit incomplete  
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  
sometimes more  
compact and  
comprehensible than  
exact results.  
Symbolic operations such as limits and  
integration are less likely to give  
satisfying results in the APPROXIMATE  
setting.  
Approximate results are sometimes less  
If you do not plan to use compact and comprehensible than exact  
symbolic computations,  
approximate results are  
similar to familiar,  
traditional numeric  
calculators.  
results. For example, you may prefer to  
see 1/7 instead of .142857.  
62  
Chapter 3: Symbolic Manipulation  
 
When Exact/Approx = AUTO, the TI-89 / TI-92 Plus 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:  
AUTO Setting  
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  
when practical, and  
approximate numeric  
results when exact  
If you are interested only in exact  
results, some time may be wasted  
seeking approximate results.  
If you are interested only in approximate  
results, some time may be wasted  
seeking exact results. Moreover, you  
might exhaust the memory seeking those  
exact results.  
results are impractical.  
You can often control  
the format of a result by  
choosing to enter some  
coefficients as either  
rational or floating-point  
numbers.  
Chapter 3: Symbolic Manipulation  
63  
 
Automatic Simplification  
When you type an expression on the entry line and press  
¸, the TI-89 / TI-92 Plus automatically simplifies the  
expression according to its default simplification rules.  
All of the following rules are applied automatically. You do not see  
intermediate results.  
Default  
Simplification Rules  
¦
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  
folders, refer to Chapter 5.  
Default simplification does not modify variables that use path  
names to indicate a folder. For example, x+class\x does not  
simplify to 2x.  
Note: Refer to “Delayed  
Simplification for Certain  
Built-In Functions” on  
page 66.  
¦
For functions:  
The arguments are simplified. (Some built-in functions delay  
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.  
64  
Chapter 3: Symbolic Manipulation  
 
¦
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  
result).  
¦
¦
Polynomial greatest 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  
Depending on the complexity of an entry, result, or intermediate  
expression, it can take a long time to expand an expression and  
cancel common divisors as necessary for simplification.  
How Long Is the  
Simplification  
Process?  
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  
65  
 
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 delayed simplification have a required var  
argument that performs the function with respect to a variable.  
These functions have at least two arguments with the general form:  
Functions that Use  
Delayed  
Simplification  
function(expression, var [, ... ])  
Note: Not all functions that  
use a var argument use  
delayed simplification.  
For example: solve(x^2ì xì 2=0,x)  
d(x^2ì xì 2,x)  
(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  
want to define a numeric  
value for var, depending on  
the situation.  
3. If var can be further simplified, that value is then substituted into  
the result.  
For example:  
x cannot be simplified.  
Note: The example to the  
right finds the derivative of  
xò at x=5. If xò was initially  
simplified to 75, you would  
find the derivative of 75,  
which is not what you want.  
x is not simplified. The  
function uses xò, and  
then substitutes 5 for x.  
x is simplified to t. The  
function uses tò.  
x is simplified to t. The  
function uses tò, and  
then substitutes 5 for t.  
66  
Chapter 3: Symbolic Manipulation  
 
Substituting Values and Setting Constraints  
The “with” operator ( | ) lets you temporarily substitute values  
into an expression or specify domain constraints.  
To type the “with” operator ( | ), press:  
Typing the “With”  
Operator  
TI.89: Í  
TI.92 Plus: 2 Í  
For every occurrence of a  
specified variable, you can  
substitute a numeric value or an  
expression.  
Substituting for a  
Variable  
First derivative of xìò at x = 5  
To substitute for multiple  
variables at the same time, use  
the Boolean and operator.  
For every occurrence of a simple  
expression, you can substitute a  
variable, numeric value, or  
another expression.  
Substituting for a  
Simple Expression  
Substituting s for sin(x) shows that  
the expression is a polynomial in  
terms of sin(x).  
Note: acos(x) is different  
from a*cos(x).  
By replacing a commonly used  
(or long) term, you can display  
results in a more compact form.  
You can substitute complex  
values just as you would for other  
values.  
Substituting  
Complex Values  
Note: For an overview of  
complex numbers, refer to  
Appendix B.  
All undefined variables are treated as real numbers in symbolic  
calculations. To perform complex symbolic analysis, you must define  
a complex variable. For example:  
Tip: To get the complex i,  
press 2 ). Do not simply  
type the letter i on the  
keyboard.  
x+yi! z  
Then you can use z as a complex variable. You can also use z_. For  
more information see the _ (underscore) topic in Appendix A.  
Chapter 3: Symbolic Manipulation  
67  
 
Only x2 was replaced, not x4 .  
¦
Substitution occurs only  
where there is an exact  
match for the substitution.  
Be Aware of the  
Limitations of  
Substitutions  
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  
to help determine the single-  
variable substitution.  
As a general rule, you  
should substitute for a  
single variable.  
No match for substitution  
Substituting for more  
general expressions  
(either mø cñ =e  
or cñ ø m=e) may not work  
as you anticipate.  
68  
Chapter 3: Symbolic Manipulation  
 
Many identities and transformations are valid for only a particular  
domain. For example:  
Specifying Domain  
Constraints  
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 ¥ à  
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.  
In many cases, you can  
achieve the same effect  
as a substitution by  
Using Substitutions  
vs. Defining a  
Variable  
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  
the subsequent  
calculations.  
Caution: After x is defined,  
it can affect all calculations  
that involve x (until you  
delete x).  
Chapter 3: Symbolic Manipulation  
69  
 
Overview of the Algebra Menu  
You can use the Algebra toolbar menu to select the most  
commonly used algebraic functions.  
From the Home screen, press to display:  
The Algebra Menu  
This menu is also available from the MATH  
menu. Press 2I and then select  
9:Algebra.  
Note: For a complete  
description of each function  
and its syntax, refer to  
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  
nSolve  
Returns an expression as a proper fraction  
expression.  
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).  
70  
Chapter 3: Symbolic Manipulation  
 
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  
Extract  
Displays the submenu:  
These are the same as solve, factor, and zeros; but  
they also compute complex results.  
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  
return a specified number of  
elements or characters from  
the left or right side of a list  
or character string.  
left  
Returns the left-hand side of an equation  
or inequality.  
right  
Returns the right-hand side of an equation  
or inequality.  
Chapter 3: Symbolic Manipulation  
71  
 
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.  
You can add or divide  
polynomials directly, without  
using a special function.  
Adding or Dividing  
Polynomials  
Use the factor (2) and expand (3) functions.  
Factoring and  
Expanding  
Polynomials  
factor(expression [,var])  
for factoring with respect to a variable  
expand(expression [,var])  
for partial expansion with respect to a variable  
Factor x5 ì 1. Then expand the  
result.  
Notice that factor and expand  
perform opposite operations.  
The factor (2) function lets you do more than simply factor an  
algebraic polynomial.  
Finding Prime  
Factors of a Number  
You can find prime factors of a  
rational number (either an integer  
or a ratio of integers).  
With the expand (3) function’s optional var value, you can do a  
partial expansion that collects similar powers of a variable.  
Finding Partial  
Expansions  
Do a full expansion of (xñ ì x)  
(yñ ì y) with respect to all  
variables.  
Then do a partial expansion with  
respect to x.  
72  
Chapter 3: Symbolic Manipulation  
 
Use the solve (1) function to solve an equation for a specified  
variable.  
Solving an Equation  
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  
| 2 Ù subtracts 2x from  
both sides.  
| 2 x  
| y  
« 5  
p · 1  
Consider a set of two equations with  
two unknowns:  
2x ì 3y = 4  
ë x + 7y = ë 12  
Solving a System of  
Linear Equations  
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  
matrix functions are not on  
the Algebra menu. Use  
2 I 4 or the Catalog.  
with substitution ( | )  
for step-by-step  
manipulation.  
this chapter, which solved for x = ë 8/11  
and y = ë 20/11.  
Use the simult function Enter the coefficients as a matrix and the  
with a matrix.  
results as a constant column matrix.  
Use the rref function  
with a matrix.  
Enter the coefficients as an augmented  
matrix.  
Chapter 3: Symbolic Manipulation  
73  
 
Use the zeros (4) function.  
Finding the Zeros of  
an Expression  
zeros(expression, var)  
Tip: For or , type ¥ à or  
¥ Â.You can also use  
2 I 8 or 2 ¿ 2 to  
select them from a menu.  
Use the expression  
x ù sin(x) + cos(x).  
Find the zeros with respect to x  
Use the “with”  
operator to specify  
the interval.  
in the interval 0  x and x  3.  
Use the propFrac (7) and comDenom (6) functions.  
Finding Proper  
Fractions and  
Common  
propFrac(rational expression [,var])  
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  
comDenom with an  
expression, list, or matrix.  
Find a proper fraction for the  
expression  
(x4ì 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  
comDenom perform opposite  
operations.  
If you do this example on your  
TI-89 / TI-92 Plus, the propFrac  
function scrolls off the top of the  
screen.  
In this example:  
31 x + 60  
¦
¦
is the remainder of x4ì 2xñ +x divided by 2xñ +x+4.  
8
xñ  
x
4
ì
ì 15/8 is the quotient.  
2
74  
Chapter 3: Symbolic Manipulation  
 
Overview of the Calc Menu  
You can use the Calc toolbar menu to select commonly  
used calculus functions.  
From the Home screen, press to display:  
The Calc Menu  
This menu is also available from the MATH  
menu. Press 2I and then select  
A:Calculus.  
Note: For a complete  
description of each function  
and its syntax, refer to  
Appendix A.  
Menu Item  
Description  
d differentiate  
Differentiates an expression with respect to a  
specified variable.  
Note: The d symbol for  
differentiate is a special  
symbol. It is not the same as  
typing the letter D on the  
keyboard. Use 1 or  
2 =.  
integrate  
limit  
Integrates an expression with respect to a specified  
variable.  
Calculates the limit of an expression with respect to  
a specified variable.  
G sum  
Π product  
fMin  
Evaluates an expression at discrete variable values  
within a range and then calculates the sum.  
Evaluates an expression at discrete variable values  
within a range and then calculates the product.  
Finds candidate values of a specified variable that  
minimize an expression.  
fMax  
Finds candidate values of a specified variable that  
maximize an expression.  
arcLen  
taylor  
Returns the arc length of an expression with respect  
to a specified variable.  
Calculates a Taylor polynomial approximation to an  
expression with respect to a specified variable.  
nDeriv  
nInt  
Calculates the numerical derivative of an expression  
with respect to a specified variable.  
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  
75  
 
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.  
Use the integrate (2) and d differentiate (1) functions.  
Integrating and  
Differentiating  
(expression, var [,low] [,up])  
lets you specify limits or a  
constant of integration  
d (expression, var [,order])  
Note: You can integrate an  
expression only; you can  
differentiate an expression,  
list, or matrix.  
Integrate xñ ù sin(x) with respect  
to x.  
Differentiate the answer with  
respect to x.  
To get d, use 1 or 2 =.  
Do not simply type the letter D  
on the keyboard.  
Use the limit (3) function.  
Finding a Limit  
limit(expression, var, point [,direction])*  
negative = from left  
positive = from right  
omitted or 0 = both  
Note: You can find a limit  
for an expression, list, or  
matrix.  
Find the limit of sin(3x) / x as x  
approaches 0.  
Use the taylor (9) function.  
taylor(expression, var, order [,point])  
if omitted, expansion point is 0  
Finding a Taylor  
Polynomial  
Important: Degree-mode  
scaling by p/180 may cause  
calculus application results  
to appear in a different form.  
Find a 6th order Taylor  
polynomial for sin(x) with  
respect to x.  
Store the answer as a user-  
defined function named y1(x).  
Then graph sin(x) and the Taylor  
Graph sin(x):Graph y1(x)  
polynomial.  
76  
Chapter 3: Symbolic Manipulation  
 
User-Defined Functions and Symbolic Manipulation  
You can use a user-defined function as an argument for the  
TI-89 / TI-92 Plus’s built-in algebra and calculus functions.  
Refer to:  
For Information  
about Creating a  
User-Defined  
Function  
¦
¦
“Creating and Evaluating User-Defined Functions” in Chapter 5.  
“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.  
You can use functions such as f(x), g(t), r(q), etc., that have not been  
assigned a definition. These “undefined” functions yield symbolic  
results. For example:  
Undefined  
Functions  
Tip: To select d from the  
Calc toolbar menu, press  
1 (or press 2 = on the  
keyboard).  
Use DelVar to ensure that f(x)  
and g(x) are not defined.  
Then find the derivative of  
f(x)ù g(x) with respect to x.  
You can use user-defined functions consisting of a single expression.  
For example:  
Single-Statement  
Functions  
¦
Use § to create a user-defined secant function, where:  
1
sec(x) =  
cos(x)  
Tip: To select limit from the  
Calc toolbar menu, press  
3.  
Then find the limit of sec(x)  
as x approaches p/4.  
¦
Use Define to create a user-defined function h(x), where:  
x
Define h(x)= (sin(t)/t,t,0,x).  
0
h(x)= sin(t) / t  
Tip: To select from the  
Calc toolbar menu, press  
2 (or press 2 < on the  
keyboard). To select taylor,  
press 9.  
Then find a 5th order Taylor  
polynomial for h(x) with  
respect to x.  
Chapter 3: Symbolic Manipulation  
77  
 
Multi-statement user-defined functions should be used as an  
argument for numeric functions (such as nDeriv and nInt) only.  
Multi-Statement vs.  
Single-Statement  
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  
computer keyboard to type  
lengthy text and then use  
TI-GRAPH LINK to send it to  
the TI-89 / TI 92-Plus. See  
Chapter 18 for more  
¦
If you were to create a multi-statement user-defined function with  
the form:  
Func  
If x<0 Then  
Return ë x  
Define y1(x)=Func:If x<0 Then: ... :EndFunc  
information.  
Else  
Return 5cos(x)  
EndIf  
EndFunc  
Then numerically  
integrate y1(x) with  
respect to x.  
Tip: To select nInt from the  
Calc toolbar menu, press  
B:nInt.  
¦
Create an equivalent single-statement user-defined function.  
Define y1(x)=when(x<0,ëx, 5cos(x))  
Use the  
TI-89 / TI-92 Plus’s  
built-in when  
function.  
Tip: To select from the  
Calc toolbar menu, press  
2 (or press 2 < on the  
keyboard).  
Then integrate y1(x)  
with respect to x.  
Press ¥ ¸ for a  
floating-point result.  
78  
Chapter 3: Symbolic Manipulation  
 
If You Get an Out-of-Memory Error  
The TI-89 / TI-92 Plus stores intermediate results in memory and  
then deletes them when the calculation is complete. Depending  
on the complexity of the calculation, the TI-89 / TI-92 Plus may run  
out of memory before a result can be calculated.  
¦
¦
Delete unneeded variables and/or Flash applications, particularly  
large-sized ones.  
Freeing Up Memory  
Use 2° as described in Chapter 21 to view and  
delete variables and/or Flash applications.  
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.)  
¦
¦
Split the problem into parts.  
Simplifying  
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  
79  
 
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.  
These indicate the result  
of an identity or a  
true, false  
Boolean expression.  
5<3 is false.  
A solution is at every integer  
multiple of p.  
This notation indicates  
an “arbitrary integer”  
that represents any  
integer.  
@n1 ... @n255  
For @, press:  
TI.89: ¥ §  
TI.92 Plus: 2 R  
When an arbitrary  
integer occurs multiple  
times in the same  
session, each  
Both @n1 and @n2 represent  
any arbitrary integer, but this  
notation identifies separate  
arbitrary integers.  
occurrence is numbered  
consecutively. After it  
reaches 255, arbitrary  
integer consecutive  
numbering restarts at  
@n0. Use Clean Up  
2:NewProb to reset to  
@n1.  
ˆ represents infinity,  
and e represents the  
constant 2.71828...  
(base of the natural  
logarithms).  
, e  
ˆ
For ˆ, press:  
TI.89: ¥ *  
TI.92 Plus: 2 *  
For e, press:  
These constants are  
often used in entries as  
well as results.  
TI.89: ¥ s  
TI.92 Plus: 2 s  
This indicates that the result is undefined.  
undef  
Mathematically undefined  
„ˆ (undetermined sign)  
Non-unique limit  
80  
Chapter 3: Symbolic Manipulation  
 
Constants and Measurement Units  
Preview of Constants and Measurement Units.................................... 82  
Entering Constants or Units ................................................................... 83  
Converting from One Unit to Another................................................... 85  
Setting the Default Units for Displayed Results .................................. 87  
Creating Your Own User-Defined Units................................................ 88  
List of Pre-Defined Constants and Units............................................... 89  
4
The UNITS dialog box lets you select the available constants or  
units from different categories.  
Note: Constant and unit  
names always begin with an  
underscore _.  
This category lists  
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.  
International system of  
measurements (metric or  
MKS) – meters, kilograms, etc.  
Note: You can also use  
getUnits() to get a list of the  
default units or setUnits() to  
set the default units. Refer  
to Appendix A.  
pounds, etc.  
English system – feet,  
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 81  
   
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.  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
3 … B 1  
¸
3 … B 1  
¸
1. Display the MODE dialog box,  
Page 3. For Unit System mode,  
select SI for the metric system of  
measurements.  
Results are displayed according to  
these default units.  
2 9 D B M ¥ 9 D B M  
2. Create an acceleration unit for  
meters/second2 named _ms2.  
¸
¸
e 2 9  
D D D B S  
¸
Z 2 §  
¥   
e ¥ 9  
D D D B S  
¸
Z 2 §  
2   
The UNITS dialog box lets you select  
units from an alphabetical list of  
categories. You can use 2 D and  
2 C to scroll one page at a time  
through the categories.  
Now, instead of re-entering _m/_sñ  
each time you need it, you can use  
_ms2.  
2 ™ M S  
j 2 ¸  
M S  
2 ¸  
If you use the UNITS  
dialog box to select a  
unit, the _ is entered  
automatically.  
Also, you can now use the UNITS  
dialog box to select _ms2 from the  
Acceleration category.  
5 ¥   
2 ™ K G  
j p 2 0  
5 2   
K G  
p 2 0  
3. Calculate the force when  
m = 5 kilograms (_kg) and  
a = 20 meters/second2 (_ms2).  
¥  2 ™ 2   
If you know the abbreviation for a  
unit, you can type it from the  
keyboard.  
M S j 2  
M S 2  
¸
¸
5 ¥   
2 ™ K G  
j p  
5 2   
K G  
p
4. Using the same m, calculate the  
force for an acceleration due to  
gravity (the constant _g).  
2 9 B  
j G  
¸ ¸  
¥ 9 B  
G
¸ ¸  
For _g, you can use the pre-defined  
constant available from the UNITS  
dialog box or you can type _g.  
B 2 Ž ¥   
2 ™ K G F K G F  
j ¸  
B 2 Ž 2   
5. Convert to kilograms of force  
(_kgf).  
¸
2 Ž displays the 4 conversion  
operator.  
82  
Chapter 4: Constants and Measurement Units  
 
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.  
The following shows how to select a unit, but you can use the same  
general procedure to select a constant.  
From a Menu  
From the Home screen:  
1. Type the value or expression.  
6.3  
2. Display the UNITS dialog box.  
Press:  
TI.89: 2 À  
TI.92 Plus: ¥ 9  
Tip: Use 2 D and 2 C  
to scroll one page at a time  
through the categories.  
3. Use D and C to move the cursor  
to the applicable category.  
4. To select the highlighted (default)  
unit, press ¸.  
Note: If you created a user-  
defined unit for an existing  
category (page 88), it is  
listed in the menu.  
– or –  
To select a different unit from the  
category, press B. Then highlight  
the applicable unit, and press  
¸.  
You can also move the  
cursor by typing the first  
letter of a unit.  
The selected unit is placed in the  
entry line. Constant and unit names  
always begin with an underscore (_).  
6.3_pF  
If you know the abbreviation that the TI-89 / TI-92 Plus uses for a  
particular constant or unit (refer to the list that begins on page 89),  
you can type it directly from the keyboard. For example:  
From the Keyboard  
Note: You can type units in  
either uppercase or  
lowercase characters.  
256_m  
The first character must be an underscore ( _ ). For _, press:  
TI.89: ¥   
TI.92 Plus: 2   
¦
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 83  
 
You may need to combine two or more units from different  
categories.  
Combining Multiple  
Units  
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  
unit (page 88) for frequently  
used combinations.  
You can enter meters per  
second by combining _m and  
_s from the Length and Time  
categories, respectively.  
3ù 9.8_m/_s  
Combine the units _m  
and _s. There is no pre-  
defined _m/_s unit.  
In a calculation, you may need to use parentheses ( ) to group a value  
and its units so that they are evaluated properly. This is particularly  
true for division problems. For example:  
Using Parentheses  
with Units in a  
Calculation  
To calculate:  
Enter:  
Tip: If you have any doubt  
about how a value and its  
units will be evaluated,  
group them within  
100_m  
2_s  
_m  
_s  
100_m/(2_s)  
50.ø  
You must use parentheses for (2_s).  
This is important for division.  
parentheses ( ).  
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
84  
Chapter 4: Constants and Measurement Units  
Converting from One Unit to Another  
You can convert from one unit to another in the same  
category, including any user-defined units (page 88).  
If you use a unit in a calculation, it is converted and displayed  
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 87).  
For All Units Except  
Temperature  
Note: For a list of pre-  
defined units, see page 89.  
To multiply 20 times  
6 kilometers.  
Tip: From the UNITS dialog  
box, you can select  
available units from a menu.  
20ù 6_km  
Shown in the default unit for  
Length, (_m in SI system).  
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  
from miles to kilometers:  
Because a Time conversion is  
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 85  
 
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  
To convert a temperature value, you must use tmpCnv() instead of  
the 4 operator.  
For Temperature  
Values  
tmpCnv(expression_¡tempUnit1, _¡tempUnit2)  
For ¡, press 2 “.  
For example, to convert  
100_¡C to _¡F:  
tmpCnv(100_¡c, _¡f)  
0
100  
212  
_oC  
_oF  
32  
To convert a temperature range (the difference between two  
temperature values), use @tmpCnv().  
For Temperature  
Ranges  
@tmpCnv(expression_¡tempUnit1, _¡tempUnit2)  
For @, press:  
TI.89: ¥ c ¤ [D]  
TI.92 Plus: 2 G ¤ D  
For example, to convert a  
100_¡C range to its equivalent  
range in _¡F:  
@tmpCnv(100_¡c, _¡f)  
100_oC  
0
100  
212  
_oC  
_oF  
32  
o
180_ F  
86  
Chapter 4: Constants and Measurement Units  
 
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).  
The SI and ENG/US systems of  
measurement (set from Page 3  
of the MODE screen) use built-  
in default units, which you  
cannot change.  
If You’re Using the  
SI or ENG/US  
System  
If Unit System=SI or ENG/US, the  
Custom Units item is dimmed.  
You cannot set a default for  
individual categories.  
To find the default units for  
these systems, refer to page 89.  
To set custom defaults:  
Setting Custom  
Defaults  
1. Press 3…B 3 to set  
Unit System = CUSTOM.  
2. Press D to highlight SET  
Note: You can also use  
setUnits() or getUnits() to  
set or return information  
about default units. Refer to  
Appendix A.  
DEFAULTS.  
3. Press B to display the  
CUSTOM UNIT DEFAULTS  
dialog box.  
Tip: When the CUSTOM  
UNIT DEFAULTS dialog box  
first appears, it shows the  
current default units.  
4. For each category, you can  
highlight its default, press  
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  
typing the first letter of a unit.  
Many categories let you select NONE as the default unit.  
What is the NONE  
Default?  
This means that results in that  
category are displayed in the  
default units of its components.  
Note: NONE is not available  
for base categories such as  
Length and Mass that have  
no components.  
For example, Area = Lengthñ, so  
Length is the component of  
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 87  
 
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.  
Some example reasons to create a unit are:  
Why Use Your Own  
Units?  
¦
¦
¦
You want to enter length values in dekameters. Define 10_m as a  
new unit named _dm.  
Instead of entering _m/_s2 as an acceleration unit, you define that  
combination of units as a single unit named _ms2.  
Note: If you create a user-  
defined unit for an existing  
category, you can select it  
from the UNITS dialog box  
menu. But you cannot use  
3 to select the unit as a  
default for displayed results.  
You want to calculate how many times someone blinks. You can  
use _blinks as a valid unit without defining it. This “standalone”  
unit is treated similar to a variable that is not defined. For  
instance, 3_blinks is treated the same as 3a.  
The naming rules for units are similar to variables.  
Rules for User-  
Defined Unit Names  
¦
Can have up to 8 characters.  
First character must be an underscore. For _, press:  
TI.89: ¥   
TI.92 Plus: 2   
¦
¦
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.  
Define a unit the same way you store to a variable.  
Defining a Unit  
definition ! _newUnit  
For !, press §.  
Note: User-defined units are  
displayed in lowercase  
characters, regardless of the  
case you use to define  
them.  
For example, to define a  
dekameter unit:  
10_m ! _dm  
To define an acceleration unit:  
_m/_s^2 ! _ms2  
Note: User-defined units  
such as _dm are stored as  
variables. You can delete  
them the same as you  
would any variable.  
Assuming unit defaults for Length  
and Time are set to _m and _s.  
To calculate 195 blinks in 5  
minutes as _blinks/_min:  
195_blinks/(5_min)  
Assuming unit default for  
Time is set to _s.  
88  
Chapter 4: Constants and Measurement Units  
 
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. If you use 3 to set default units, note that categories  
with only one defined unit are not listed.  
The SI and ENG/US systems of measurement use built-in default  
units. In this section, the built-in defaults are indicated by (SI) and  
(ENG/US). In some categories, both systems use the same default.  
Defaults for SI and  
ENG/US  
For a description of the NONE default, refer to page 87. Notice that  
some categories do not have default units.  
_c ............speed of light .......................2.99792458E8_m/_s  
_Cc..........coulomb constant ...............8.9875517873682E9_Nø_m2/_coul2  
_g ............acceleration of gravity........9.80665_m/_s2  
Constants  
_Gc .........gravitational constant.........6.67259Eë 11_m3/_kg/_s2  
_h ............Planck’s constant................6.6260755Eë 34_Jø_s  
_k ............Boltzmann’s constant.........1.380658Eë 23_J/_°K  
_Me.........electron rest mass...............9.1093897Eë 31_kg  
_Mn.........neutron rest mass ...............1.6749286Eë 27_kg  
_Mp.........proton rest mass .................1.6726231Eë 27_kg  
_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  
_H0...........permittivity of a vacuum......8.8541878176204Eë 12_F/_m  
_s ............Stefan-Boltzmann constant ..5.6705119Eë 8_W/_m2/_¡K4  
_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  
Note: The TI-89 / TI-92 Plus  
simplifies unit expressions  
and displays results  
according to your default  
units. Therefore, constant  
values displayed on your  
screen may appear different  
from the values in this table.  
Tip: For Greek characters,  
refer to Shortcut Keys  
(inside front and back  
covers).  
_Ang .......angstrom  
_au ..........astronomical unit  
_cm.........centimeter  
_fath .......fathom  
_fm..........fermi  
_ft............foot (ENG/US)  
_in...........inch  
_mi..........mile  
Length  
_mil.........1/1000 inch  
_mm........millimeter  
_Nmi .......nautical mile  
_pc ..........parsec  
_rod.........rod  
_yd ..........yard  
_km.........kilometer  
_ltyr ........light year  
_m...........meter (SI)  
_m ............micron  
_A ............angstrom  
¡
_acre.......acre  
_ha ..........hectare  
NONE (SI) (ENG/US)  
Area  
Chapter 4: Constants and Measurement Units 89  
 
_cup........cup  
_ml..........milliliter  
_pt...........pint  
_qt ...........quart  
_tbsp.......tablespoon  
_tsp .........teaspoon  
NONE (SI) (ENG/US)  
Volume  
_floz........fluid ounce  
_flozUK ..British fluid ounce  
_gal .........gallon  
_galUK....British gallon  
_l .............liter  
_day ........day  
_hr...........hour  
_s.............second (SI) (ENG/US)  
_week .....week  
Time  
_min........minute  
_ms .........millisecond  
_ns ..........nanosecond  
_yr...........year  
_ms ..........microsecond  
_knot ......knot  
_kph........kilometers per hour  
_mph.......miles per hour  
NONE (SI) (ENG/US)  
Velocity  
no pre-defined units  
Acceleration  
Temperature  
_¡C..........¡Celsius  
For ¡, press 2.  
_¡F ..........¡Fahrenheit  
_¡K ..........¡Kelvin  
_¡R ..........¡Rankine  
(no default)  
_cd ..........candela  
(no default)  
Luminous Intensity  
_mol........mole  
(no default)  
Amount of  
Substance  
_amu.......atomic mass unit  
_gm.........gram  
_oz...........ounce  
_slug .......slug  
Mass  
_kg ..........kilogram (SI)  
_lb...........pound (ENG/US)  
_mg.........milligram  
_ton.........ton  
_tonne ....metric ton  
_tonUK ...long ton  
_mton .....metric ton  
_dyne......dyne  
_kgf.........kilogram force  
_lbf..........pound force (ENG/US)  
_N............newton (SI)  
_tonf .......ton force  
Force  
_Btu ........British thermal unit  
(ENG/US)  
_ftlb.........foot-pound  
_J.............joule (SI)  
Energy  
_cal .........calorie  
_erg.........erg  
_eV..........electron volt  
_kcal .......kilocalorie  
_kWh.......kilowatt-hour  
_latm.......liter-atmosphere  
_hp..........horsepower (ENG/US)  
_kW.........kilowatt  
_W...........watt (SI)  
Power  
90  
Chapter 4: Constants and Measurement Units  
 
_atm........atmosphere  
_bar.........bar  
_mmHg...millimeters of mecury  
_Pa..........pascal (SI)  
Pressure  
_inH2O ...inches of water  
_inHg......inches of mercury  
_mmH2O..millimeters of water  
_psi .........pounds per square  
inch (ENG/US)  
_torr........millimeters of mecury  
_St...........stokes  
_P............poise  
Viscosity, Kinematic  
Viscosity, Dynamic  
Frequency  
_GHz.......gigahertz  
_Hz..........hertz (SI) (ENG/US)  
_kHz........kilohertz  
_MHz ......megahertz  
_A............ampere (SI) (ENG/US)  
_kA .........kiloampere  
_mA..........microampere  
Electric Current  
_mA ........milliampere  
_coul.......coulomb (SI) (ENG/US)  
Charge  
_kV..........kilovolt  
_mV.........millivolt  
_V............volt (SI) (ENG/US)  
_volt........volt  
Potential  
_kJ .........kilo ohm  
_MJ ........megaohm  
_ohm.......ohm  
Resistance  
_J ...........ohm (SI) (ENG/US)  
_mho.......mho (ENG/US)  
_mmho ...millimho  
_siemens..siemens (SI)  
_mmho ....micromho  
Conductance  
Capacitance  
_F............farad (SI) (ENG/US)  
_nF..........nanofarad  
_mF..........microfarad  
_pF..........picofarad  
_Oe .........oersted  
NONE (SI) (ENG/US)  
Mag Field Strength  
Mag Flux Density  
Magnetic Flux  
Inductance  
_Gs..........gauss  
_T............tesla (SI) (ENG/US)  
_Wb.........weber (SI) (ENG/US)  
_henry ....henry (SI) (ENG/US)  
_mH ........millihenry  
_mH .........microhenry  
_nH .........nanohenry  
Chapter 4: Constants and Measurement Units 91  
 
92  
Chapter 4: Constants and Measurement Units  
 
Additional Home Screen Topics  
Saving the Home Screen Entries as a Text Editor Script ................... 94  
Cutting, Copying, and Pasting Information .......................................... 95  
Creating and Evaluating User-Defined Functions ............................... 97  
Using Folders to Store Independent Sets of Variables ..................... 100  
If an Entry or Answer Is “Too Big” ...................................................... 103  
5
To help you get started using the TI-89 / TI-92 Plus 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  
93  
 
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.  
From the Home screen:  
Saving the Entries  
in the History Area  
1. Press ƒ and select 2:Save Copy As.  
2. Specify a folder and text variable  
that you want to use to store the  
entries.  
Note: Only the entries are  
saved, not the answers.  
Item  
Description  
Type  
Automatically set as Text and cannot be changed.  
Note: For information about  
folders, refer to page 100.  
Folder  
Shows the folder in which the text variable will be  
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).  
Because the entries are stored in a script format, you cannot restore  
them from the Home screen. (On the Home screen’s ƒ toolbar  
menu, 1:Open is not available.) Instead:  
Restoring the Saved  
Entries  
Note: For complete  
information on using the  
Text Editor and executing a  
command script, refer to  
Chapter 18.  
1. Use the Text Editor to open the variable containing the saved  
Home screen entries.  
The saved entries are listed as a series of command lines that you  
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.  
94  
Chapter 5: Additional Home Screen Topics  
 
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 / TI-92 Plus’s  
clipboard, which is an area in memory that serves as a  
temporary storage location.  
Auto-paste, described in Chapter 2, is a quick way to copy an entry or  
answer in the history area and paste it to the entry line.  
Auto-paste vs.  
Cut/Copy/Paste  
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.)  
When you cut or copy information, that information is placed in the  
clipboard. However, cutting deletes the information from its current  
location (used to move information) and copying leaves the  
information.  
Cutting or Copying  
Information to the  
Clipboard  
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 cut, copy or  
paste without having to use  
the ƒ toolbar menu. Press:  
TI.89:  
2. Press ƒ and select 4:Cut or 5:Copy.  
Clipboard = (empty or the previous contents)  
¥ 5, ¥ 6, or ¥ 7  
TI.92 Plus:  
¥ X, ¥ C, or ¥ V  
After cut  
After copy  
Note: When you cut or copy  
information, it replaces the  
clipboard’s previous  
Clipboard = x^4ì 3x^3ì 6x^2+8x  
Clipboard = x^4ì 3x^3ì 6x^2+8x  
contents, if any.  
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  
95  
 
A paste operation inserts the contents of the clipboard at the current  
cursor location on the entry line. This does not change the contents  
of the clipboard.  
Pasting Information  
from the Clipboard  
1. Position the cursor where you want to paste the information.  
2. Press ƒ and select 6:Paste, or use the key shortcut:  
TI.89: ¥ 7  
TI.92 Plus: ¥ V  
Suppose you want to reuse an expression without retyping it each  
time.  
Example: Copying  
and Pasting  
1. Copy the applicable information.  
a. Use ¤ B or ¤ A to highlight the  
expression.  
b. Press:  
TI.89: ¥ 6  
TI.92 Plus: ¥ C  
c. For this example, press ¸ to evaluate the entry.  
2. Paste the copied information into a new entry.  
a. Press 1 to select the d differentiate function.  
Tip: You can also reuse an  
expression by creating a  
user-defined function. Refer  
to page 97.  
b. Press:  
TI.89: ¥ 7  
TI.92 Plus: ¥ V  
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.  
a. Press ¥ # to display the Y= Editor.  
b. Press ¸ to define y1(x).  
pasting, you can easily  
transfer information from  
one application to another.  
c. Press:  
TI.89: ¥ 7  
TI.92 Plus: ¥ V  
to paste.  
d. Press ¸ to save the new  
definition.  
96  
Chapter 5: Additional Home Screen Topics  
 
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 / TI-92 Plus’s capabilities beyond the built-in functions.  
The following examples show user-defined functions with one  
argument and two arguments. You can use as many arguments as  
necessary. In these examples, the definition consists of a single  
expression (or statement).  
Format of a  
Function  
1
cube(x) = x3  
xroot(x,y) = yx  
Note: Function names  
follow the same rules as  
variable names. Refer to  
“Storing and Recalling  
Variable Values” in  
Chapter 2.  
Definition  
Argument list  
Function name  
Definition  
Argument list  
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.  
Use one of the following methods.  
Creating a User-  
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  
97  
 
You can also create a user-defined function whose definition consists  
of multiple statements. The definition can include many of the  
control and decision-making structures (If, ElseIf, Return, etc.) used  
in programming.  
Creating a Multi-  
Statement Function  
Note: For information about  
similarities and differences  
between functions and  
programs, refer to  
For example, suppose you want to create a function that sums a  
series of reciprocals based on an entered integer (n):  
Chapter 17.  
1
n
1
nì 1  
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  
declared as local.  
Func  
Func and EndFunc  
must begin and end the  
function.  
Local temp,i  
If fPart(nn)ƒ0 or nn0  
Returns a message  
if nn is not an  
integer or if nn0.  
Return “bad argument”  
0! temp  
For information about  
the individual  
statements, refer to  
Appendix A.  
For i,nn,1,ë 1  
approx(temp+1/i)! temp  
EndFor  
Sums the reciprocals.  
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  
show as “Func”.  
Tip: It’s easier to create a  
complicated multi-statement  
function in the Program  
On the Home screen:  
Editor than on the Home  
screen. Refer to Chapter 17.  
Enter a multi-statement  
function on one line. Be  
sure to include colons.  
You can use a user-defined function just as you would any other  
function. Evaluate it by itself or include it in another expression.  
Evaluating a  
Function  
98  
Chapter 5: Additional Home Screen Topics  
Displaying and  
Editing a Function  
Definition  
To:  
Do this:  
Display a list of all  
user-defined functions screen. You may need to use the View  
toolbar menu to specify the Function  
Press 2° to display the VAR-LINK  
variable type. (Refer to Chapter 21.)  
— or —  
Press:  
TI.89: ½ †  
TI.92 Plus: 2 ½ †  
Display a list of Flash  
application functions  
Press:  
TI.89: ½ …  
TI.92 Plus: 2 ½ …  
Note: You can view a user-  
defined function in the  
CATALOG dialog box, but  
you cannot use the  
CATALOG to view or edit its  
definition.  
Display the definition  
of a user-defined  
function  
From the VAR-LINK screen, highlight the  
function and display the Contents menu.  
TI.89: 2ˆ  
TI.92 Plus: ˆ  
— 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  
99  
 
Using Folders to Store Independent Sets of Variables  
The TI-89 / TI-92 Plus 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 give you a convenient way to manage variables by organizing  
them into related groups. For example, you can create separate  
folders for different TI-89 / TI-92 Plus applications (Math, Text Editor,  
etc.) or classes.  
Folders and  
Variables  
¦
You can store a user-  
defined variable in any  
existing folder.  
Example of variables that  
can be stored in MAIN only  
Window variables  
(xmin, xmax, etc.)  
Table setup variables  
(TblStart, @Tbl, etc.)  
Y= Editor functions  
(y1(x), etc.)  
¦
A system variable or a  
variable with a reserved  
name, however, can be  
stored in the MAIN folder  
only.  
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.  
MAIN  
Note: User-defined  
variables are stored in the  
“current folder” unless you  
specify otherwise. Refer to  
“Using Variables in Different  
Folders” on page 102.  
System variables  
User-defined  
Variables  
a=1, b=2, c=3  
f(x)=x3 +x2 +x  
ALG102  
Name of current folder  
User-defined  
b=5, c=100  
f(x)=sin(x)+cos(x)  
DAVE  
You cannot create a folder  
within another folder.  
User-defined  
a=3, b=1, c=2  
2
f(x)=x +6  
MATH  
User-defined  
a=42, c=6  
f(x)=3x2 +4x+25  
The system variables in the MAIN folder are always directly  
accessible, regardless of the current folder.  
100  
Chapter 5: Additional Home Screen Topics  
 
Enter the NewFold command.  
Creating a Folder  
from the Home  
Screen  
NewFold folderName  
Folder name to create. This new folder is set  
automatically as the current folder.  
The VAR-LINK screen, which is described in Chapter 21, lists the  
existing variables and folders.  
Creating a Folder  
from the VAR-LINK  
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.  
Enter the setFold function.  
Setting the Current  
Folder from the  
Home Screen  
setFold (folderName)  
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.  
To use the MODE dialog box:  
Setting the Current  
Folder from the  
MODE Dialog Box  
1. Press 3.  
2. Highlight the Current  
Folder setting.  
Tip: To cancel the menu or  
exit the dialog box without  
saving any changes, press  
N.  
3. Press B to display a  
menu of existing  
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  
101  
 
You can access a user-defined variable or function that is not in the  
current folder. Specify the complete pathname instead of only the  
variable name.  
Using Variables in  
Different Folders  
A pathname has the form:  
folderName\variableName  
— or —  
folderName\functionName  
For example:  
If Current Folder = MAIN  
Folders  
Note: This example  
assumes that you have  
already created a folder  
named MATH.  
MAIN  
a=1  
f(x)=x3 +x2 +x  
MATH  
a=42  
f(x)=3x2 +4x+25  
Note: For information about  
the VAR-LINK screen, refer  
to Chapter 21.  
To see a list of existing folders and variables, press 2°. On  
the VAR-LINK screen, you can highlight a variable and press ¸ to  
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.  
Before deleting a folder, you must delete all the variables stored in  
that folder.  
Deleting a Folder  
from the Home  
Screen  
¦
To delete a variable, enter the DelVar command.  
DelVar var1 [, var2] [, var3] ...  
Note: You cannot delete the  
MAIN folder.  
¦
To delete an empty folder, enter the DelFold command.  
DelFold folder1 [, folder2] [, folder3] ...  
VAR-LINK lets you delete a folder and its variables at the same time.  
Refer to Chapter 21.  
Deleting a Folder  
from the VAR-LINK  
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.  
102  
Chapter 5: Additional Home Screen Topics  
 
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 / TI-92 Plus may not be able to display an  
answer because there is not enough free memory.  
Move the cursor into the history area, and highlight the entry or  
answer. Then use the cursor pad to scroll. For example:  
If an Entry or  
Answer Is  
“Too Long”  
¦
The following shows an answer that is too long for one line.  
Press B  
or 2 B  
to scroll  
right.  
Press A  
or 2 A  
to scroll  
left.  
¦
The following shows an answer that is both too long and too tall  
to be displayed on the screen.  
TI.89: Press C or ¤ C to scroll up.  
TI.92 Plus: Press C or ‚ C to scroll up  
Press A  
or 2 A  
to scroll  
left.  
Press B  
or 2 B  
to scroll  
right.  
Note: This example uses  
the randMat function to  
generate a 25 x 25 matrix.  
TI.89: Press ¤ D to scroll down.  
TI.92 Plus: Press ‚ D to scroll down  
A <<...>>symbol is displayed when the TI-89 / TI-92 Plus does not have  
enough free memory to display the answer.  
If There Is not  
Enough Memory  
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 and/or  
Flash applications. 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  
103  
 
104  
Chapter 5: Additional Home Screen Topics  
Basic Function Graphing  
Preview of Basic Function Graphing................................................... 106  
Overview of Steps in Graphing Functions.......................................... 107  
Setting the Graph Mode......................................................................... 108  
Defining Functions for Graphing ......................................................... 109  
Selecting Functions to Graph............................................................... 111  
Setting the Display Style for a Function.............................................. 112  
Defining the Viewing Window .............................................................. 113  
Changing the Graph Format ................................................................. 114  
Graphing the Selected Functions......................................................... 115  
Displaying Coordinates with the Free-Moving Cursor...................... 116  
Tracing a Function................................................................................. 117  
Using Zooms to Explore a Graph......................................................... 119  
Using Math Tools to Analyze Functions ............................................. 122  
6
This chapter describes the steps used to display and explore a  
graph. Before using this chapter, you should be familiar with  
Chapter 2.  
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  
105  
   
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.  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
3
B 1  
¸
3
B 1  
¸
1. Display the MODE dialog box.  
For Graph mode, select  
FUNCTION.  
"
5 § j R  
¸
¥ "  
5 § R  
¸
2. Display the Home screen. Then  
5! r  
store the radius, 5, in variable r.  
3. Display and clear the Y= Editor.  
¥ #  
¥ #  
Then define y1(x) = rñ - xñ , the  
top half of a circle.  
ƒ 8 ¸  
¸ 2 ]  
ƒ 8 ¸  
¸ 2 ]  
j R Z 2 | X R Z 2 | X  
In function graphing, you must define  
separate functions for the top and  
bottom halves of a circle.  
Z 2 d ¸  
Z 2 d ¸  
4. Define y2(x) = ë rñ - xñ , the  
¸
¸
· Y 1 c X d  
¸
· Y 1 c X d  
¸
function for the bottom half of  
the circle.  
Use the full function name  
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, which automatically  
graphs the functions.  
6  
6  
In the standard viewing window, 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. Therefore, the  
circle appears as an ellipse.  
Notice slight gap  
between top and  
bottom halves.  
6. Select ZoomSqr.  
5  
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.  
106  
Chapter 6: Basic Function Graphing  
 
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),  
press 5 or use to  
deselect them.  
Select () which  
defined functions to  
graph.  
Set the display style for  
a function.  
Tip: This is optional. For  
multiple functions, this helps  
visually distinguish one from  
another.  
TI.89: 2 ˆ  
TI.92 Plus: ˆ  
Define the viewing  
window (¥ $).  
Tip: Zoom also changes  
the viewing window.  
Change the graph  
format, if necessary.  
ƒ 9  
— or —  
TI.89: ¥ Í  
TI.92 Plus: ¥ F  
Graph the selected  
functions (¥ %).  
From the Graph screen, you can:  
Exploring the Graph  
¦
¦
¦
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  
107  
 
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 / TI-92 Plus graphs trigonometric functions.  
1. Press 3 to display the MODE dialog box, which shows the  
Graph Mode  
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 / TI-92 Plus lets you select from six Graph mode settings.  
Graph Mode Setting  
Description  
FUNCTION  
y(x) functions  
Note: Other Graph mode  
settings are described in  
later chapters.  
PARAMETRIC  
POLAR  
x(t) and y(t) parametric equations  
r(q) polar equations  
SEQUENCE  
3D  
u(n) sequences  
z(x,y) 3D equations  
DIFFERENTIAL EQUATION y'(t) differential equations  
When using trigonometric functions, set the Angle mode for the units  
(RADIAN or DEGREE) in which you want to enter and display angle  
values.  
Angle Mode  
To see the current Graph mode and Angle mode, check the status line  
at the bottom of the screen.  
Checking the  
Status Line  
Angle  
Mode  
Graph  
Mode  
108  
Chapter 6: Basic Function Graphing  
 
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.)  
1. Press ¥ # or O 2 to display the Y= Editor.  
Defining a New  
Function  
Plots — You can scroll above y1= to see  
a list of stat plots. See Chapter 16.  
Note: The function list  
shows abbreviated function  
names such as y1, but the  
entry line shows the full  
name y1(x).  
Function List — You can scroll through  
the list of functions and definitions.  
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 2D and 2C 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  
you begin typing, the cursor  
moves to the entry line.  
4. Type the expression to define the function.  
¦
¦
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  
line, press N to move it  
back to the function list.  
5. When you complete the expression, press ¸.  
The function list now shows the new function, which is  
automatically selected for graphing.  
From the Y= Editor:  
Editing a Function  
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  
changes, press N instead  
of ¸.  
4. Press ¸.  
The function list now shows the edited function, which is  
automatically selected for graphing.  
Chapter 6: Basic Function Graphing  
109  
 
From the Y= Editor:  
Clearing a Function  
To erase:  
Do this:  
A function from  
the function list  
Highlight the function and press 0 or M.  
A function from  
the entry line  
Press M once or twice (depending on the  
cursor’s location) and then press ¸.  
All functions  
Press ƒ and then select 8:Clear Functions.  
When prompted for confirmation, press ¸.  
Note: ƒ 8 does not erase  
any stat plots (Chapter 16).  
You don’t have to clear a function to prevent it from being graphed.  
As described on page 111, you can select the functions you want to  
graph.  
From the Y=Editor:  
Shortcuts to Move  
the Cursor  
Press:  
To:  
¥ C or  
¥ D  
Go to function 1 or to the last defined function,  
respectively. If the cursor is on or past the last  
defined function, ¥ D goes to function 99.  
You can also define and evaluate a function from the Home screen or  
a program.  
From the Home  
Screen or a  
Program  
¦
Use the Define and Graph commands. Refer to:  
“Graphing a Function Defined on the Home Screen” and  
“Graphing a Piecewise Defined Function” in Chapter 12.  
Tip: User-defined functions  
can have almost any name.  
However, if you want them  
to appear in the Y= Editor,  
use function names y1(x),  
y2(x), etc.  
“Overview of Entering a Function” in Chapter 17.  
¦
Store an expression directly to a function variable. Refer to:  
“Storing and Recalling Variable Values” in Chapter 2.  
“Creating and Evaluating User-Defined Functions” in  
Chapter 5.  
110  
Chapter 6: Basic Function Graphing  
 
Selecting Functions to Graph  
Regardless of how many functions are defined in the  
Y= Editor, you can select the ones you want to graph.  
Press ¥ # or O2 to display the Y= Editor.  
Selecting or  
Deselecting  
Functions  
A “Ÿ” indicates which functions will be graphed the next time you  
display the Graph screen.  
If PLOT numbers are  
displayed, those stat plots  
are selected.  
Selected  
Deselected  
In this example, Plots 1  
and 2 are selected. To  
view them, scroll above  
y1=.  
To select or deselect: Do this:  
A specified function  
1. Move the cursor to highlight the function.  
Tip: You don’t have to  
select a function when you  
enter or edit it; it is selected  
automatically.  
2. Press .  
This procedure selects a deselected function  
or deselects a selected function.  
Tip: To turn off any stat  
plots, press 5 or use †  
to deselect them.  
All functions  
1. Press to display the All toolbar menu.  
2. Select the applicable item.  
You can also select or deselect functions from the Home screen or a  
program.  
From the Home  
Screen or a 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  
111  
 
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.  
From the Y= Editor:  
Displaying or  
Changing a  
Function’s Style  
1. Move the cursor to highlight the applicable function.  
2. Select the Style menu:  
TI.89: Press 2ˆ.  
TI.92 Plus: Press ˆ.  
¦
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  
Line  
Description  
Tip: To set Line as the style  
for all functions, press ‡  
and select 4:Reset Styles.  
Connects plotted points with a line. This is the default.  
Displays a dot at each plotted point.  
Displays a solid box at each plotted point.  
Connects plotted points with a thick line.  
Dot  
Square  
Thick  
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  
Below  
Shades the area above the graph.  
Shades the area below the graph.  
The TI-89 / TI-92 Plus has four shading patterns, used on a rotating  
basis. If you 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.  
If You Use Above or  
Below Shading  
When shaded areas intersect,  
their patterns overlap.  
You can also set a function’s style from the Home screen or a  
program. Refer to the Style command in Appendix A.  
From the Home  
Screen or a Program  
112  
Chapter 6: Basic Function Graphing  
 
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.  
Press ¥ $ or O 3 to display the Window Editor.  
Displaying Window  
Variables in the  
Window Editor  
ymax  
xmin  
xscl  
xmax  
yscl  
ymin  
Window Variables  
(shown in Window Editor)  
Corresponding Viewing Window  
(shown on Graph screen)  
Variable  
Description  
xmin, xmax, Boundaries of the viewing window.  
ymin, ymax  
Tip: To turn off tick marks,  
set xscl=0 and/or yscl=0.  
xscl, yscl  
Distance between tick marks on the x and y axes.  
xres  
Sets pixel resolution (1 through 10) for function graphs.  
The default is 2.  
Tip: Small values of xres  
improve the graph’s  
resolution but may reduce  
the graphing speed.  
¦
At 1, functions are evaluated and graphed at each  
pixel along the x axis.  
¦
At 10, functions are evaluated and graphed at every  
10th pixel along the x axis.  
From the Window Editor:  
Changing the  
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.  
— or —  
Press M to clear the old value; then type the new one.  
— or —  
Press A or B to remove the highlighting; then edit the value.  
Note: If you type an  
expression, it is evaluated  
when you move the cursor  
to a different Window  
variable or leave the  
Window Editor.  
¦
¦
Values are stored as you type them; you do not need to press ¸.  
¸ simply moves the cursor to the next Window variable.  
You can also store values directly to the Window variables from the  
Home screen or a program. Refer to “Storing and Recalling Variable  
Values” in Chapter 2.  
From the Home  
Screen or a Program  
Chapter 6: Basic Function Graphing  
113  
 
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.  
From the Y= Editor, Window Editor, or Graph screen, press ƒ and  
select 9:Format.  
Displaying Graph  
Format Settings  
¦
¦
The GRAPH FORMATS dialog  
box shows the current  
settings.  
Tip: You also can display  
the GRAPH FORMATS  
dialog box from the Y=  
Editor, Window Editor, or  
Graph screen. Press:  
TI.89: ¥ Í  
To exit without making a  
change, press N.  
TI.92 Plus: ¥ F  
Format  
Description  
Coordinates  
Shows cursor coordinates in rectangular (RECT)  
or polar (POLAR) form, or hides (OFF) the  
coordinates.  
Graph Order  
Grid  
Graphs functions one at a time (SEQ) or all at the  
same time (SIMUL).  
Tip: To turn off tick marks,  
define the viewing window  
so that xscl and/or yscl = 0.  
Shows (ON) or hides (OFF) grid points that  
correspond to the tick marks on the axes.  
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.  
From the GRAPH FORMATS dialog box:  
Changing Settings  
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  
exit the dialog box without  
saving any changes, use  
N instead of ¸.  
¦
¦
Move the cursor to highlight the setting, and then press ¸.  
— or —  
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.  
114  
Chapter 6: Basic Function Graphing  
 
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.  
Press ¥ % or O 4. The TI-89 / TI-92 Plus automatically graphs  
the selected functions.  
Displaying the  
Graph Screen  
Note: If you select an  
Zoom operation from the  
Y= Editor or Window Editor,  
the TI-89 / TI-92 Plus  
automatically displays the  
Graph screen.  
BUSY indicator shows while  
graphing is in progress.  
While graphing is in progress:  
Interrupting  
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).  
Depending on various settings, a function may be graphed such that  
it is too small, too large, or offset too far to one side of the screen. To  
correct this:  
If You Need to  
Change the Viewing  
Window  
¦
Redefine the viewing window with different boundaries  
(page 113).  
¦
Use a Zoom operation (page 119).  
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  
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  
115  
 
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.  
When you first display the Graph screen, no cursor is visible. To  
display the cursor, press a cursor pad arrow. The cursor moves from  
the center of the screen, and its coordinates are displayed.  
Free-Moving Cursor  
Tip: If your screen does not  
show coordinates, set the  
graph format so that  
Coordinates = RECT or  
POLAR. Press:  
y1(x)=xñ  
The “c” indicates these are cursor  
coordinates. The values are stored in  
the xc and yc system variables.  
TI.89: ¥ Í  
TI.92 Plus: ¥ F  
Rectangular coordinates use xc and  
yc. Polar coordinates use rc and qc.  
Tip: To hide the cursor and  
its coordinates temporarily,  
press M, N, or ¸.  
The next time you move the  
cursor, it moves from its last  
position.  
To move the free-moving cursor:  
Press:  
To an adjoining pixel  
A cursor pad arrow for any  
direction.  
In increments of 10 pixels  
2 and then a cursor pad  
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.  
116  
Chapter 6: Basic Function Graphing  
 
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.  
From the Graph screen, press .  
Beginning a Trace  
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  
graphed (Chapter 16), the  
trace cursor appears on the  
lowest-numbered stat plot.  
If multiple functions are graphed, the trace cursor appears on the  
lowest-numbered function selected in the Y= Editor. The function  
number is shown in the upper right part of the screen.  
Moving along a  
Function  
To move the trace cursor:  
Do this:  
To the previous or next plotted point  
Press A or B.  
Approximately 5 plotted points  
(it may be more or less than 5,  
Press 2A or 2B.  
depending on the xres Window variable)  
Note: If you enter an x  
value, it must be between  
xmin and xmax.  
To a specified x value on the function  
Type the x value and  
press ¸.  
The trace cursor moves only from plotted point to plotted point  
along the function, not from pixel to pixel.  
Function number being  
traced. For example: y3(x).  
Tip: If your screen does not  
show coordinates, set the  
graph format so that  
Coordinates = RECT or  
POLAR. Press:  
TI.89: ¥ Í  
TI.92 Plus: ¥ F  
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  
viewing window. You cannot see the cursor as it moves in that  
“off the screen” area, but the displayed coordinate values show its  
correct coordinates.  
described on the next page,  
to trace a function that goes  
above or below the window.  
Chapter 6: Basic Function Graphing  
117  
 
Press C or D to move to the previous or next selected function at  
the same x value. The new function number is shown on the screen.  
Moving from  
Function to  
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.  
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.  
Automatic Panning  
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.  
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.  
Using QuickCenter  
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 .  
To cancel a trace at any time, press N.  
Canceling Trace  
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).  
118  
Chapter 6: Basic Function Graphing  
 
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.  
Press from the Y= Editor, Window Editor, or Graph screen.  
Overview of the  
Zoom Menu  
Procedures for using ZoomBox,  
ZoomIn, ZoomOut, ZoomStd, Memory,  
and SetFactors are given later in this  
section.  
Note: If you select a Zoom  
tool from the Y=Editor or  
Window Editor, the  
TI-89 / TI-92 Plus  
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  
distances from the center of  
one pixel to the center of an  
adjoining pixel.  
ZoomDec  
ZoomSqr  
Sets x and y to .1, and centers the origin.  
Adjusts Window variables so that a square or circle is  
shown in correct proportion (instead of a rectangle  
or ellipse).  
ZoomStd  
ZoomTrig  
Sets Window variables to their default values.  
xmin = ë 10  
xmax = 10  
xscl = 1  
ymin = ë 10  
ymax = 10  
yscl = 1  
xres = 2  
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  
ymax = 4  
yscl = 0.5  
or 7.5 degrees)  
xscl = p/2 (1.570796... radians  
or 90 degrees)  
ZoomInt  
ZoomData  
ZoomFit  
Lets you select a new center point, and then sets x  
and y to 1 and sets xscl and yscl to 10.  
Adjusts Window variables so that all selected stat  
plots are in view. Refer to Chapter 16.  
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  
119  
 
1. From the Zoom menu, select 1:ZoomBox.  
The screen prompts for 1st Corner?  
Zooming In with a  
Zoom Box  
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  
larger increments, use  
2 B, 2 D, etc.  
The cursor changes to a small  
square, and the screen  
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 N  
before you press ¸.  
4. When you have outlined the  
area you want to zoom in on,  
press ¸.  
The Graph screen shows the  
zoomed area.  
1. From the Zoom menu,  
Zooming In and Out  
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 / TI-92 Plus 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  
xFact  
new xmin =  
, etc.  
¦
For a ZoomOut, the x variables are multiplied by xFact, and the  
y variables are multiplied by yFact.  
new xmin = xmin ù xFact , etc.  
120  
Chapter 6: Basic Function Graphing  
 
The Zoom factors define the magnification and reduction used by  
ZoomIn and ZoomOut.  
Changing Zoom  
Factors  
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  
any changes, press N.  
2. Use D and C to highlight the value you want to change. Then:  
¦
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.  
After using various Zoom tools, you may want to return to a previous  
viewing window or save the current one.  
Saving or Recalling  
a Viewing Window  
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  
one set of Window variable  
values at a time. Storing a  
new set overwrites the old  
set.  
2:ZoomSto  
3:ZoomRcl  
Save the current viewing window. (The current  
Window variable values are stored to the system  
variables zxmin, zxmax, etc.)  
Recall the viewing window last stored with  
ZoomSto.  
You can restore the Window variables to their default values at any  
time.  
Restoring the  
Standard Viewing  
Window  
From the Zoom menu, select 6:ZoomStd.  
Chapter 6: Basic Function Graphing  
121  
 
Using Math Tools to Analyze Functions  
On the Graph screen, the Math toolbar menu has several  
tools that help you analyze graphed functions.  
Press from the Graph screen.  
Overview of the  
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,  
cursor coordinates are  
stored in system variables  
xc and yc (rc and qc if you  
use polar coordinates).  
Derivatives, integrals,  
distances, etc., are stored in  
the system variable  
Value  
Evaluates a selected y(x) function at a specified x  
value.  
Zero,  
Minimum,  
Maximum  
Finds a zero (x-intercept), minimum, or maximum  
point within an interval.  
Intersection  
Derivatives  
f(x)dx  
Finds the intersection of two functions.  
Finds the derivative (slope) at a point.  
sysMath.  
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  
Tangent  
Arc  
Draws and measures a line between two points on  
the same function or on two different functions.  
Draws a tangent line at a point and displays its  
equation.  
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.  
122  
Chapter 6: Basic Function Graphing  
 
1. From the Graph screen, press and select 1:Value.  
Finding y(x) at a  
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 ¸.  
The cursor moves to that  
Tip: You can also display  
function coordinates by  
tracing the function (),  
typing an x value, and  
pressing ¸.  
x value on the first function  
selected in the Y= Editor, and  
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.  
1. From the Graph screen, press and select 2:Zero, 3:Minimum, or  
Finding a Zero,  
Minimum, or  
Maximum within an  
Interval  
4:Maximum.  
2. As necessary, use D and C to select the applicable function.  
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.  
1. From the Graph screen, press and select 5:Intersection.  
Finding the  
Intersection of Two  
Functions within an  
Interval  
2. Select the first function, using D or C as necessary, and press  
¸. The cursor moves to the next graphed function.  
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.  
y2(x)=2xì7  
6. Set the upper bound, and  
press ¸.  
The cursor moves to the  
intersection, and its  
coordinates are displayed.  
Chapter 6: Basic Function Graphing  
123  
 
1. From the Graph screen, press and select 6:Derivatives. Then  
Finding the  
Derivative (Slope) at  
a Point  
select 1:dy/dx from the submenu.  
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.  
1. From the Graph screen, press and select 7:f(x)dx.  
Finding the  
Numerical Integral  
over an Interval  
2. As necessary, use D and C to select the applicable function.  
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  
area, press (ReGraph).  
The interval is shaded, and its  
approximate numerical  
integral is displayed.  
1. From the Graph screen, press and select 8:Inflection.  
Finding an Inflection  
Point within an  
Interval  
2. As necessary, use D and C to select the applicable function.  
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.  
124  
Chapter 6: Basic Function Graphing  
 
1. From the Graph screen, press and select 9:Distance.  
Finding the  
Distance between  
Two Points  
2. As necessary, use D and C to select the function for the first  
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.  
1. From the Graph screen, press and select A:Tangent.  
Drawing a Tangent  
Line  
2. As necessary, use D and C to select the applicable function.  
Tip: To erase a drawn  
tangent line, press †  
(ReGraph).  
3. Set the tangent point. Either  
move the cursor to the point  
or type its x value.  
4. Press ¸.  
The tangent line is drawn,  
and its equation is  
displayed.  
1. From the Graph screen, press and select B:Arc.  
Finding an 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  
125  
 
You must have only one function graphed. If you graph two or more  
functions, the Shade tool shades the area between two functions.  
Shading the Area  
between a Function  
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:  
TI.89: j [N]  
TI.92 Plus: N  
Note: If you do not press  
A or B, or type an x value  
when setting the lower and  
upper bound, xmin and  
xmax will be used as the  
lower and upper bound,  
respectively.  
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 bounded area is shaded.  
Tip: To erase the shaded  
area, press (ReGraph).  
You must have at least two functions graphed. If you graph only one  
function, the Shade tool shades the area between the function and  
the x axis.  
Shading the Area  
between Two  
Functions within an  
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  
A or B, or type an x value  
when setting the lower and  
upper bound, xmin and  
xmax will be used as the  
lower and upper bound,  
respectively.  
6. Set the lower bound for x. Either use A and B to move the cursor  
to the lower bound or type its x value.  
7. Press ¸. A 4 at the top of the screen marks the lower bound.  
Below  
function  
8. Set the upper bound, and  
press ¸.  
Tip: To erase the shaded  
area, press (ReGraph).  
The bounded area is shaded.  
Above  
function  
126  
Chapter 6: Basic Function Graphing  
 
Chapter 7:  
Parametric Graphing  
Preview of Parametric Graphing.......................................................... 128  
Overview of Steps in Graphing Parametric Equations ..................... 129  
Differences in Parametric and Function Graphing ........................... 130  
7
This chapter describes how to graph parametric equations on the  
TI-89 / TI-92 Plus. 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:  
(x(t),y(t))  
y(t) = v0 t sin q – (g/2)tñ  
x(t) = v0 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  
127  
   
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 (v0) of 15 meters/sec. The gravity constant g = 9.8 meters/sec2.  
Ignoring air resistance and other drag forces, what is the maximum height of the ball and  
when does it hit the ground?  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
3
B 2  
¸
3
B 2  
¸
1. Display the MODE dialog box.  
For Graph mode, select  
PARAMETRIC.  
¥ #  
ƒ 8 ¸  
¸
¥ #  
ƒ 8 ¸  
¸
2. Display and clear the Y= Editor.  
Then define the horizontal  
xt1(t)=15tù cos(60¡)  
component xt1(t) = v0t cos q.  
1 5 T p  
2 X 6 0  
2 “d ¸ 2 d ¸  
1 5 T p  
X 6 0  
Enter values for v0 and q.  
TI-89: Type T p 2 X, not  
T 2 X.  
TI-92 Plus: Type T p X, not T X.  
Enter a ¡ symbol by typing either  
2 “ or 2 I 2 1. This ensures a  
number is interpreted as degrees,  
regardless of the angle mode.  
¸
1 5 T p  
¸
1 5 T p  
3. Define the vertical component  
yt1(t) = v0t sin q – (g/2)t2.  
2 W 6 0  
2 “d | c  
9 . 8 e 2 d  
T Z 2 ¸  
W 6 0  
Enter values for v0 ,q, and g.  
2 d | c  
9 . 8 e 2 d  
T Z 2 ¸  
¥ $  
0 D 3 D  
¥ $  
0 D 3 D  
4. Display the Window Editor.  
Enter Window variables  
. 0 2 D · 2 D . 0 2 D · 2 D  
appropriate for this example.  
2 5 D 5 D  
· 2 D 1 0 D  
5
2 5 D 5 D  
· 2 D 1 0 D  
5
You can press either D or ¸ to  
enter a value and move to the next  
variable.  
¥ %  
¥ %  
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:  
B or A  
as necessary  
B or A  
as necessary  
¦
y value at maximum height.  
¦
t value where the ball hits the  
ground.  
128  
Chapter 7: Parametric Graphing  
 
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  
Parametric  
Equations  
Set Graph mode (3)  
to PARAMETRIC.  
Also set Angle mode,  
if necessary.  
Define x and y  
components on  
Y= Editor (¥ #).  
Select () which  
Tip: To turn off any stat  
data plots (Chapter 16),  
press 5 or use to  
deselect them.  
defined equations to  
graph. Select the x or y  
component, or both.  
Set the display style  
for an equation.  
You can set either the  
x or y component.  
Tip: This is optional. For  
multiple equations, this helps  
visually distinguish one from  
another.  
TI-89: 2 ˆ  
TI-92 Plus:  
ˆ
Define the viewing  
window (¥ $).  
Tip: Zoom also changes  
the viewing window.  
Change the graph  
format if necessary.  
ƒ 9  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Graph the selected  
equations (¥ %).  
From the Graph screen, you can:  
Exploring the Graph  
¦
¦
¦
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  
129  
 
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.  
Use 3 to set Graph = PARAMETRIC before you define equations or  
set Window variables. The Y= Editor and the Window Editor let you  
enter information for the current Graph mode setting only.  
Setting the  
Graph Mode  
To graph a parametric equation, you must define both its x and y  
components. If you define only one component, the equation cannot  
be graphed. (However, you can use single components to generate  
an automatic table as described in Chapter 13.)  
Defining Parametric  
Equations on the  
Y= Editor  
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  
implied multiplication is valid  
for your situation.  
Enter:  
Instead of: Because:  
tcos(60) tcos is interpreted as a user-defined  
tù cos(60)  
function called tcos, not as implied  
multiplication.  
In most cases, this refers to a nonexistent  
function. So the TI-89 / TI-92 Plus simply  
returns the function name, not a number.  
Tip: You can use the Define  
command from the Home  
screen (see Appendix A) to  
define functions and  
equations for any graphing  
mode, regardless of the  
current mode.  
The Y= Editor maintains an independent function list for each Graph  
mode setting. For example, suppose:  
¦
In FUNCTION graphing mode, you define a set of y(x) functions.  
You change to PARAMETRIC graphing mode and define a set of x  
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.  
130  
Chapter 7: Parametric Graphing  
 
To graph a parametric equation, select either its x or y component or  
both. When you enter or edit a component, it is selected  
automatically.  
Selecting  
Parametric  
Equations  
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.  
You can set the style for either the x or y component. For example, if  
you set the x component to Dot, the TI-89 / TI-92 Plus automatically  
sets the y component to Dot.  
Selecting the  
Display Style  
Tip: Use the Animate and  
Path styles for interesting  
projectile-motion effects.  
The Above and Below styles are not available for parametric  
equations and are dimmed on the Y= Editor’s Style toolbar menu.  
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.  
Window Variables  
Variable  
Description  
tmin, tmax  
Smallest and largest t values to evaluate.  
tstep  
Increment for the t value. Parametric equations are  
Note: You can use a  
negative tstep. If so, tmin  
must be greater than tmax.  
evaluated at:  
x(tmin)  
y(tmin)  
x(tmin+tstep)  
x(tmin+2(tstep))  
... not to exceed ...  
x(tmax)  
y(tmin+tstep)  
y(tmin+2(tstep))  
... not to exceed ...  
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:  
xmin = ë 10.  
ymin = ë 10.  
tmin = 0.  
tmax = 2p (6.2831853... radians  
or 360 degrees)  
xmax = 10.  
ymax = 10.  
tstep =p/24 (.1308996... radians  
or 7.5 degrees)  
xscl = 1.  
yscl = 1.  
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  
131  
 
As in function graphing, you can explore a graph by using the  
following tools.  
Exploring a Graph  
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).  
Trace  
Lets you move the cursor along a graph one tstep at a  
time.  
Tip: During a trace, you can  
also evaluate x(t) and y(t) by  
typing the t value and  
pressing ¸.  
¦
When you begin a trace, the cursor is on the first  
selected parametric equation at tmin.  
¦
QuickCenter applies to all directions. If you move  
the cursor off the screen (top or bottom, left or  
right), press ¸ to center the viewing window  
on the cursor location.  
Tip: You can use  
QuickCenter at any time  
during a trace, even if the  
cursor is still on the screen.  
¦
Automatic panning is not available. If you move the  
cursor off the left or right side of the screen, the  
TI-89 / TI-92 Plus 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.  
132  
Chapter 7: Parametric Graphing  
 
Polar Graphing  
Preview of Polar Graphing.................................................................... 134  
Overview of Steps in Graphing Polar Equations................................ 135  
Differences in Polar and Function Graphing...................................... 136  
8
This chapter describes how to graph polar equations on the  
TI-89 / TI-92 Plus. 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).  
To convert between rectangular (x,y)  
and polar coordinates (r,q):  
Y
(x,y)  
y
x = r cos q  
rñ = xñ + yñ  
x
sign(y)ø p  
x
y = r sin q  
q = ì tan1  
+
r
y
2
Note: To find q, use the  
θ
TI-89 / TI-92 Plus function angle(x+iy),  
which automatically performs the  
calculation shown above.  
X
You can view the coordinates of any point in either polar (r,q) or  
rectangular (x,y) form.  
Chapter 8: Polar Graphing  
133  
   
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.  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
3
B 3  
D D D B 1  
¸
3
B 3  
D D D B 1  
¸
1. Display the MODE dialog box.  
For Graph mode, select POLAR.  
For Angle mode, select RADIAN.  
¥ #  
ƒ 8 ¸  
¸
¥ #  
ƒ 8 ¸  
¸
2. Display and clear the Y= Editor.  
Then define the polar equation  
r1(q) = A sin Bq.  
8 2 W 2 . 5 8 W 2 . 5 Ï  
Enter 8 and 2.5 for A and B,  
respectively.  
¥ Ï d ¸  
d ¸  
3. Select the ZoomStd viewing  
window, which graphs the  
equation.  
6  
6  
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.  
¥ $  
D
¥ $  
D
4. Display the Window Editor, and  
change qmax to 4p.  
4 2 T  
4 2 T  
4p will be evaluated to a number  
when you leave the Window Editor.  
5  
5  
5. Select ZoomSqr, which regraphs  
the 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.  
134  
Chapter 8: Polar Graphing  
 
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  
Select () which  
defined equations to  
data plots (Chapter 16),  
press 5 or use to  
deselect them.  
graph.  
Set the display style  
for an equation.  
Tip: This is optional. For  
multiple equations, this helps  
TI-89: 2 ˆ  
visually distinguish one from  
another.  
TI-92 Plus: ˆ  
Define the viewing  
window (¥ $).  
Tip: Zoom also changes  
the viewing window.  
Change the graph  
format,if necessary.  
ƒ 9  
Tip: To display r and q, set  
Coordinates = POLAR.  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Graph the selected  
equations (¥ %).  
From the Graph screen, you can:  
Exploring the Graph  
¦
¦
¦
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  
135  
 
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.  
Use 3 to set Graph = POLAR before you define equations or set  
Window variables. The Y= Editor and the Window Editor let you  
enter information for the current Graph mode setting only.  
Setting the  
Graph Mode  
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  
command from the Home  
screen (see Appendix A) to  
define functions and  
equations for any graphing  
mode, regardless of the  
current mode.  
The Y= Editor maintains an independent function list for each Graph  
mode setting. For example, suppose:  
¦
In FUNCTION graphing mode, you define a set of y(x) functions.  
You change to POLAR graphing mode and define a set of r(q)  
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.  
The Above and Below styles are not available for polar equations and  
are dimmed on the Y= Editor’s Style toolbar menu.  
Selecting the  
Display Style  
136  
Chapter 8: Polar Graphing  
 
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.  
Window Variables  
Variable  
Description  
qmin, qmax Smallest and largest q values to evaluate.  
qstep  
Increment for the q value. Polar equations are  
evaluated at:  
Note: You can use a  
negative qstep. If so, qmin  
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:  
xmin = ë 10.  
ymin = ë 10.  
qmin = 0.  
qmax = 2p (6.2831853... radians  
or 360 degrees)  
xmax = 10.  
ymax = 10.  
qstep = p/24 (.1308996... radians  
or 7.5 degrees)  
xscl = 1.  
yscl = 1.  
You may need to change the standard values for the q variables  
(qmin, qmax, qstep) to ensure that enough points are plotted.  
To display coordinates as r and q values, use:  
Setting the Graph  
Format  
ƒ 9  
or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
to set 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  
137  
 
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.  
Exploring a Graph  
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).  
Trace  
Lets you move the cursor along a graph one qstep at a  
time.  
Tip: During a trace, you can  
also evaluate r(q) by typing  
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  
the cursor off the screen (top or bottom, left or  
right), press ¸ to center the viewing window  
on the cursor location.  
QuickCenter at any time  
during a trace, even if the  
cursor is still on the screen.  
¦
Automatic panning is not available. If you move the  
cursor off the left or right side of the screen, the  
TI-89 / TI-92 Plus 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.  
138  
Chapter 8: Polar Graphing  
 
Sequence Graphing  
Preview of Sequence Graphing ............................................................ 140  
Overview of Steps in Graphing Sequences......................................... 141  
Differences in Sequence and Function Graphing .............................. 142  
Setting Axes for Time, Web, or Custom Plots.................................... 146  
Using Web Plots...................................................................................... 147  
Using Custom Plots................................................................................ 150  
Using a Sequence to Generate a Table................................................ 151  
9
This chapter describes how to graph sequences on the  
TI-89 / TI-92 Plus. 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,  
starting at any positive  
integer or zero.  
u(n) = 2 ù n for n = 1, 2, 3, ...  
u(n) = 2 ù n gives the sequence 2, 4, 6, 8, 10, ...  
Note: A recursive sequence  
can reference another  
sequence. For example,  
u2(n) = nñ +u1(nì 1).  
¦
Recursive — The nth term is defined in relation to one or  
more previous terms, represented by u(nì 1), u(nì 2), etc. In  
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.  
So you must specify an initial  
u(n) = 2 ù u(nì 1) for n = 1, 2, 3, ...  
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  
139  
   
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  
.8 x (.8 x 4000 + 1000) .8 x (.8 x (.8 x 4000 + 1000) + 1000) . . .  
+ 1000 + 1000  
After 3 Years  
. . .  
4000  
.8 x 4000  
+ 1000  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
3
B 4  
¸
3
B 4  
¸
1. Display the MODE dialog box.  
For Graph mode, select  
SEQUENCE.  
¥ #  
ƒ 8 ¸  
¸
¥ #  
ƒ 8 ¸  
¸
2. Display and clear the Y= Editor.  
Then define the sequence as  
u1(n) = iPart(.8ù u1(nì 1)+1000).  
2 I 1 4  
2 I 1 4  
Use iPart to take the integer part of  
the result. No fractional trees are  
harvested.  
. 8 j U 1 c . 8 U 1 c  
j N | 1 d « N | 1 d «  
1 0 0 0 d ¸ 1 0 0 0 d ¸  
To access iPart(, you can use  
2 I, simply type it, or select it  
from the CATALOG.  
¸
4 0 0 0 ¸  
¸
4 0 0 0 ¸  
3. Define ui1 as the initial value  
that will be used as the first  
term.  
4. Display the Window Editor. Set  
¥ $  
0 D 5 0 D  
1 D 1 D  
¥ $  
0 D 5 0 D  
1 D 1 D  
the n and plot Window variables.  
nmin=0 and nmax=50 evaluate the  
size of the forest over 50 years.  
0 D 5 0 D  
1 0 D 0 D  
6 0 0 0 D  
1 0 0 0  
0 D 5 0 D  
1 0 D 0 D  
6 0 0 0 D  
1 0 0 0  
5. Set the x and y Window variables  
to appropriate values for this  
example.  
6. Display the Graph screen.  
¥ %  
¥ %  
7. Select Trace. Move the cursor to  
trace year by year. How many  
years (nc) does it take the  
B and A  
as necessary  
B and A  
as necessary  
By default, sequences use  
the Square display style.  
number of trees (yc) to stabilize?  
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.  
140  
Chapter 9: Sequence Graphing  
 
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  
Sequences  
Set Graph mode (3)  
to SEQUENCE.  
Also set Angle mode,  
if necessary.  
Define sequences and,  
if needed, initial values  
on Y= Editor (¥ #).  
Select () which  
defined sequences to  
graph. Do not select  
initial values.  
Tip: To turn off any stat  
data plots (Chapter 16),  
press 5 or use to  
deselect them.  
Set the display style  
for a sequence.  
Note: For sequences, the  
default style is Square.  
TI-89: 2 ˆ  
TI-92 Plus: ˆ  
Tip: Zoom also changes  
the viewing window.  
Define the viewing  
window (¥ $).  
Change the graph  
format if necessary.  
ƒ 9  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Graph the selected  
sequences (¥ %).  
From the Graph screen, you can:  
Exploring the Graph  
¦
¦
¦
¦
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  
a sequence while tracing.  
Simply enter the n value  
directly from the keyboard.  
Use the Math toolbar menu to evaluate a sequence. Only  
1:Value is available for sequences.  
Plot sequences on Time (the default), Web, or Custom axes.  
Chapter 9: Sequence Graphing  
141  
 
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.  
Use 3 to set Graph = SEQUENCE before you define sequences or  
set Window variables. The Y= Editor and the Window Editor let you  
enter information for the current Graph mode setting only.  
Setting the  
Graph Mode  
Defining Sequences  
on the Y= Editor  
You can define sequences  
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  
enter two or more initial  
values.  
If a sequence requires more than one initial value, enter them as a list  
enclosed in braces { } and separated by commas.  
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, Axes lets you select the axes that are used to  
graph the sequences. For more detailed information, refer to page 146.  
sequences only, you can  
select different axes for the  
graph. TIME is the default.  
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  
command from the Home  
screen (see Appendix A) to  
define functions and  
equations for any graphing  
mode, regardless of the  
current mode.  
The Y= Editor maintains an independent function list for each Graph  
mode setting. For example, suppose:  
¦
In FUNCTION graphing mode, you define a set of y(x) functions.  
You change to SEQUENCE graphing mode and define a set of u(n)  
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.  
142  
Chapter 9: Sequence Graphing  
 
With TIME and WEB axes, the TI-89 / TI-92 Plus graphs only the  
selected sequences. If you entered any sequences that require an  
initial value, you must enter the corresponding ui value.  
Selecting  
Sequences  
Note: With TIME and  
You can select a sequence.  
CUSTOM axes, all defined  
sequences are evaluated  
even if they are not plotted.  
You cannot select its  
initial value.  
With CUSTOM axes, when you specify a sequence in the custom  
settings, it is graphed regardless of whether it is selected.  
Only the Line, Dot, Square, and Thick styles are available for sequence  
graphs. Dot and Square mark only those discrete integer values (in  
plotstep increments) at which a sequence is plotted.  
Selecting the  
Display Style  
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.  
Window Variables  
Variable  
Description  
Note: Both nmin and nmax  
must be positive integers,  
although nmin can be zero.  
nmin, nmax Smallest and largest n values to evaluate. Sequences  
are evaluated at:  
u(nmin)  
u(nmin+1)  
u(nmin+2)  
... not to exceed ...  
u(nmax)  
plotStrt  
The term number that will be the first one plotted  
(depending on plotstep). For example, to begin plotting  
with the 2nd term in the sequence, set plotstrt = 2. The  
first term will be evaluated at nmin but not plotted.  
Note: nmin, nmax, plotstrt  
and plotstep must be  
integers 1. If you do not  
enter integers, they will be  
rounded to integers.  
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  
143  
 
Standard values (set when you select 6:ZoomStd from the Zoom  
toolbar menu) are:  
Window Variables  
(Continued)  
xmin = ë 10.  
xmax = 10.  
xscl = 1.  
ymin = ë 10.  
ymax = 10.  
yscl = 1.  
nmin = 1.  
nmax = 10.  
plotStrt = 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  
use the same Window  
plotStrt=1  
variables, except for plotstrt.  
This graph is plotted beginning  
with the 9th term.  
plotStrt=9  
With TIME axes (from 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)  
nmax  
plotStrt=1  
¦
ymin and ymax = expected  
values for the sequence  
The Graph Order format is not available.  
Changing the Graph  
Format  
¦
With TIME or CUSTOM axes, multiple sequences are always  
plotted simultaneously.  
¦
With WEB axes, multiple sequences are always plotted  
sequentially.  
144  
Chapter 9: Sequence Graphing  
 
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.  
Exploring a Graph  
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  
evaluate a sequence by  
typing a value for n and  
pressing ¸.  
Trace  
Depending on whether you use TIME, CUSTOM, or  
WEB axes, Trace operates very differently.  
¦
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  
2B or 2A.  
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.  
QuickCenter applies to all directions. If you  
move the cursor off the screen (top or bottom,  
left or right), press ¸ to center the viewing  
window on the cursor location.  
Tip: You can use  
QuickCenter at any time  
during a trace, even if the  
cursor is still on the screen.  
¦
With WEB axes, the trace cursor follows the web,  
not the sequence. Refer to page 147.  
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  
145  
 
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.  
From the Y= Editor, Axes:  
Displaying the  
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 147 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 150 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.  
146  
Chapter 9: Sequence Graphing  
 
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.  
A sequence must meet the following criteria; otherwise, it will not be  
graphed properly on WEB axes. The sequence:  
Valid Functions for  
Web Plots  
¦
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.  
After you select WEB axes and display the Graph screen, the  
TI-89 / TI-92 Plus:  
When You Display  
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 / TI-92 Plus draws the y=x reference  
line and then plots y = 5ì x.  
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.  
Drawing the Web  
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  
plotstrt. The value of n is  
incremented by 1 each time  
the web moves to the  
sequence (plotStep is  
ignored).  
1. Starts on the x axis at the initial value ui (when plotstrt = 1).  
2. Moves vertically (either up or down) to the sequence.  
3. Moves horizontally to the y=x reference line.  
4. Repeats this vertical and horizontal movement until n=nmax.  
Chapter 9: Sequence Graphing  
147  
 
1. On the Y= Editor (¥ #), define u1(n) = ë.8u1(nì 1) + 3.6. Set  
Example:  
Convergence  
initial value ui1 = ë 4.  
2. Set Axes = TIME.  
nmin=1.  
xmin=0.  
xmax=25. ymax=10.  
xscl=1. yscl=1.  
ymin=ë 10.  
3. On the Window Editor  
(¥ $), set the Window  
variables.  
nmax=25.  
plotstrt=1.  
plotstep=1.  
u(n)  
4. Graph the sequence  
(¥ %).  
n
By default, a sequence uses  
the Square display style.  
5. On the Y= Editor, set Axes = WEB and Build Web = AUTO.  
nmin=1.  
xmin=ë 10. ymin=ë 10.  
xmax=10. ymax=10.  
6. On the Window Editor, change  
the Window variables.  
nmax=25.  
plotStrt=1.  
plotStep=1.  
xscl=1.  
yscl=1.  
u(n)  
Tip: During a trace, you can  
move the cursor to a  
specified n value by typing  
the value and pressing  
¸.  
7. Regraph the sequence.  
y=ë.8x + 3.6  
u(nì1)  
Web plots are always shown  
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  
screen displays the cursor coordinates nc, xc, and yc (where xc  
and yc represent u(nì 1) and u(n), respectively).  
changes, the cursor is on  
the sequence. The next time  
you press B, nc stays the  
same but the cursor is now  
on the y=x reference line.  
As you trace to larger values of nc, you can see xc and yc approach  
the convergence point.  
1. On the Y= Editor (¥ #), define u1(n) = 3.2u1(nì 1) ì.8(u1(nì 1))2.  
Example:  
Divergence  
Set initial value ui1 = 4.45.  
2. Set Axes = TIME.  
nmin=0.  
xmin=0.  
xmax=10. ymax=10.  
xscl=1.  
ymin=ë 75.  
3. On the Window Editor  
(¥ $), set the  
Window variables.  
nmax=10.  
plotStrt=1.  
plotStep=1.  
yscl=1.  
u(n)  
4. Graph the sequence  
n
(¥ % ).  
Because the sequence  
quickly diverges to large  
negative values, only a few  
points are plotted.  
148  
Chapter 9: Sequence Graphing  
 
5. On the Y= Editor, set Axes = WEB and Build Web = AUTO.  
nmin=0.  
xmin=ë 10. ymin=ë 10.  
xmax=10. ymax=10.  
6. On the Window Editor, change  
the Window variables.  
nmax=10.  
plotStrt=1.  
plotStep=1.  
xscl=1.  
yscl=1.  
u(n)  
7. Regraph the sequence.  
u(nì1)  
The web plot shows how  
quickly the sequence  
diverges to large negative  
values.  
y=x  
y=3.2xì.8xñ  
This example shows how the initial value can affect a sequence.  
Example:  
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. Set Axes = TIME.  
nmin=1.  
nmax=100. xmax=100.  
plotStrt=1.  
plotStep=1.  
xmin=0.  
ymin=0.  
ymax=5.  
yscl=1.  
3. On the Window Editor  
(¥ $), set the  
Window variables.  
xscl=10.  
u(n)  
4. Graph the sequence  
Note: Compare this graph  
with the divergence  
example. This is the same  
sequence with a different  
initial value.  
(¥ %).  
n
5. On the Y= Editor, set Axes = WEB and Build Web = AUTO.  
nmin=1.  
xmin=ë 2.68 ymin=ë 4.7  
6. On the Window Editor, change  
the Window variables.  
nmax=100. xmax=6.47  
plotStrt=1. xscl=1.  
plotStep=1.  
ymax=4.7  
yscl=1.  
u(n)  
Note: The web moves to an  
orbit oscillating between two  
stable points.  
7. Regraph the sequence.  
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  
plot at a later term, the  
stable oscillation orbit is  
shown more clearly.  
9. On the Window Editor, set  
plotstrt=50. Then regraph the  
sequence.  
Chapter 9: Sequence Graphing  
149  
 
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.  
Using the predator-prey model in biology, determine the numbers of  
rabbits and foxes that maintain population equilibrium in a certain  
region.  
Example: Predator-  
Prey Model  
R
M
K
W
G
D
=
=
=
=
=
=
Number of rabbits  
Growth rate of rabbits if there are no foxes (use .05)  
Rate at which foxes can kill rabbits (use .001)  
Number of foxes  
Growth rate of foxes if there are rabbits (use .0002)  
Death rate of foxes if there are no rabbits (use .03)  
Rn  
Wn  
=
=
Rn-1 (1 + M ì K Wn-1  
Wn-1 (1 + G Rn-1 ì D)  
)
1. On the Y= Editor (¥ #), define the sequences and initial values  
for Rn and Wn.  
Note: Assume there are  
initially 200 rabbits and  
50 foxes.  
u1(n) = u1(nì 1) ù (1 + .05 ì.001 ù u2(nì 1))  
ui1 = 200  
u2(n) = u2(nì 1) ù (1 + .0002 ù u1(nì 1) ì.03)  
ui2 = 50  
2. Set Axes = TIME.  
nmin=0.  
xmin=0.  
ymin=0.  
3. On the Window Editor  
(¥ $), set the Window  
variables.  
nmax=400. xmax=400. ymax=300.  
plotStrt=1.  
plotStep=1.  
xscl=100.  
yscl=100.  
u(n)  
Note: Use to individually  
trace the number of rabbits  
u1(n) and foxes u2(n) over  
time (n).  
4. Graph the sequence  
(¥ % ).  
u1(n)  
n
u2(n)  
5. On the Y= Editor, set Axes = CUSTOM, X Axis = u1, and Y Axis = u2.  
nmin=0.  
xmin=84.  
ymin=25.  
6. In the Window Editor, change  
the Window variables.  
nmax=400. xmax=237. ymax=75.  
plotStrt=1.  
plotStep=1.  
xscl=50.  
yscl=10.  
Note: Use to trace both  
the number of rabbits (xc)  
and foxes (yc) over the  
cycle of 400 generations.  
7. Regraph the sequence.  
u2(n)  
u1(n)  
150  
Chapter 9: Sequence Graphing  
 
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.  
In a Fibonacci sequence, the first two terms are 1 and 1. Each  
succeeding term is the sum of the two immediately preceding terms.  
Example: Fibonacci  
Sequence  
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.  
3. Set Window variables  
(¥ $) so that  
nmin has the same  
value as tblStart.  
4. Display the table  
(¥ ' ).  
Fibonacci sequence  
is in column 2.  
5. Scroll down the table  
(D or 2D) to see  
more of the sequence.  
Chapter 9: Sequence Graphing  
151  
 
152  
Chapter 9: Sequence Graphing  
3D Graphing  
Preview of 3D Graphing ........................................................................ 154  
Overview of Steps in Graphing 3D Equations.................................... 156  
Differences in 3D and Function Graphing.......................................... 157  
Moving the Cursor in 3D ....................................................................... 160  
Rotating and/or Elevating the Viewing Angle..................................... 162  
Animating a 3D Graph Interactively .................................................... 164  
Changing the Axes and Style Formats................................................. 165  
Contour Plots.......................................................................................... 167  
Example: Contours of a Complex Modulus Surface ......................... 170  
Implicit Plots........................................................................................... 171  
Example: Implicit Plot of a More Complicated Equation................. 173  
10  
This chapter describes how to graph 3D equations on the  
TI-89 / TI-92 Plus. Before using this  
Z
chapter, you should be familiar  
with Chapter 6: Basic Function  
Graphing.  
(x,y,z)  
z
In a 3D graph of an equation for  
z(x,y), a point’s location is defined  
as shown here.  
x
y
The expanded view feature lets  
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.  
Tip: To switch from one  
format style to the next  
(skipping IMPLICIT PLOT),  
press:  
To switch between normal and expanded views,  
press p (multiplication key, not the letter X).  
TI-89: j [F]  
TI-92 Plus: F.  
This retains the current view  
(either expanded or normal).  
When you display a 3D graph, the expanded view is used  
automatically if:  
¦
You set or change the graph format style to CONTOUR LEVELS  
or IMPLICIT PLOT.  
Note: To switch to IMPLICIT  
PLOT (via the GRAPH  
FORMATS dialog box),  
press:  
¦
The previous graph used the expanded view.  
TI-89: ¥ Í  
TI-92 Plus: ¥ F.  
If you press a cursor key to animate the graph, the screen  
switches to the normal view automatically. You cannot animate a  
graph in the expanded view.  
Chapter 10: 3D Graphing  
153  
   
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.  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
3
3
1. Display the MODE dialog box.  
B 5  
B 5  
For Graph mode, select 3D.  
¸
¸
¥ #  
ƒ 8 ¸  
¸
¥ #  
ƒ 8 ¸  
¸
2. Display and clear the Y= Editor.  
Then define the 3D equation  
z1(x,y) = (xò y ì yò x) / 390.  
c X Z 3 Y  
| Y Z 3 X d  
e 3 9 0 ¸  
c X Z 3 Y  
| Y Z 3 X d  
e 3 9 0 ¸  
Notice that implied multiplication is  
used in the keystrokes.  
¥ Í  
¥ F  
3. Change the graph format to  
display and label the axes. Also  
set Style = WIRE FRAME.  
D B 2  
D B 2  
D B 1  
¸
D B 2  
D B 2  
D B 1  
¸
You can animate any graph format  
style, but WIRE FRAME is fastest.  
6  
6  
4. Select the ZoomStd viewing  
cube, 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  
expanded view. When you animate  
the graph, the screen returns to  
normal view automatically. (Except for  
animation, you can do the same  
things in normal and expanded view.)  
p
p
(press p to  
switch  
between  
expanded and expanded and  
normal view) normal view)  
(press p to  
switch  
between  
D D D D  
D D D D  
D D D D  
D D D D  
5. Animate the graph by decreasing  
the eyef Window variable value.  
D or C may affect eyeq and eyeψ, but  
to a lesser extent than eyef.  
To animate the graph continuously,  
press and hold the cursor for about 1  
second and then release it. To stop,  
press ¸.  
154  
Chapter 10: 3D Graphing  
 
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
0 (zero, not the 0 (zero, not the  
6. Return the graph to its initial  
orientation. Then move the  
viewing angle along the “viewing  
orbit” around the graph.  
letter O)  
letter O)  
A A A  
A A A  
For information about the viewing  
orbit, refer to page 164.  
X
Y
Z
X
Y
Z
7. View the graph along the x axis,  
the y axis, and then the z axis.  
This graph has the same shape along  
the y axis and x axis.  
8. Return to the initial orientation.  
0
0
Í
F
9. Display the graph in different  
graph format styles.  
(press Í to  
switch from  
each style to  
the next)  
(press 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 TI-89: ¥ Í TI-92 Plus: ¥ F). If you press TI-89: Í TI-92 Plus: F to switch between  
styles, the implicit plot is not displayed.  
Chapter 10: 3D Graphing  
155  
 
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  
data plots (Chapter 16),  
press 5 or use to  
deselect them.  
Select () which  
equation to graph. You  
can select only one 3D  
equation.  
Note: For 3D graphs, the  
viewing window is called  
the viewing cube. Zoom  
also changes the viewing  
cube.  
Define the viewing cube  
(¥ $).  
Change the graph  
format, if necessary.  
Tip: To help you see the  
orientation of 3D graphs,  
turn on Axes and Labels.  
ƒ 9  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Note: Before displaying the  
graph, the screen shows  
the “percent evaluated.”  
Graph the selected  
equation (¥ %).  
From the Graph screen, you can:  
Exploring the Graph  
¦
¦
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  
z(x,y) while tracing. Type  
the x value and press  
¦
Use the Math toolbar menu to evaluate the equation at a  
specified point. Only 1:Value is available for 3D graphs.  
¸; then type the y value  
and press ¸.  
156  
Chapter 10: 3D Graphing  
 
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.  
Use 3to set Graph = 3D before you define equations or set  
Window variables. The Y= Editor and the Window Editor let you  
enter information for the current Graph mode setting only.  
Setting the  
Graph Mode  
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  
command from the Home  
screen (see Appendix A) to  
define functions and  
equations for any graphing  
mode, regardless of the  
current mode.  
The Y= Editor maintains an independent function list for each Graph  
mode setting. For example, suppose:  
¦
In FUNCTION graphing mode, you define a set of y(x) functions.  
You change to 3D graphing mode and define a set of z(x,y)  
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.  
Because you can graph only one 3D equation at a time, display styles  
are not available. On the Y= Editor, Style toolbar menu is dimmed.  
Selecting the  
Display Style  
For 3D equations, however, you can use:  
ƒ 9  
or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
to set the Style format to WIRE FRAME or HIDDEN SURFACE. Refer  
to “Changing the Axes and Style Formats” on page 165.  
Chapter 10: 3D Graphing  
157  
 
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.  
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 162.  
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  
or ygrid, it is rounded to the  
nearest whole number 1.  
and ymax is divided into the specified number of grids.  
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(xmax,ymin)  
z(xmin,ymax)  
z(xmax,ymax)  
ncontour  
The number of contours evenly distributed along the  
displayed range of z values. Refer to page 168.  
Standard values (set when you select 6:ZoomStd from the Zoom  
toolbar menu) are:  
xmin = ë 10.  
xmax = 10.  
xgrid = 14.  
ymin = ë 10.  
ymax = 10.  
ygrid = 14.  
zmin = ë 10.  
zmax = 10.  
ncontour = 5.  
eyeq = 20.  
eyef = 70.  
eyeψ = 0.  
Note: Increasing the grid  
variables decreases the  
graphing speed.  
You may need to increase the standard values for the grid variables  
(xgrid, ygrid) to ensure that enough points are plotted.  
158  
Chapter 10: 3D Graphing  
 
The Axes and Style formats are specific to the 3D graphing mode.  
Refer to “Changing the Axes and Style Formats” on page 165.  
Setting the Graph  
Format  
As in function graphing, you can explore a graph by using the  
following tools. Any displayed coordinates are shown in rectangular  
Exploring a Graph  
or cylindrical form as set in the graph format. In 3D graphing,  
cylindrical coordinates are shown when you use use:  
ƒ 9  
or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
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  
3:ZoomOut  
5:ZoomSqr  
6:ZoomStd  
A:ZoomFit  
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  
Cursor in 3D” on page 160.  
Trace  
Lets you move the cursor along a grid wire from one  
grid point to the next on the 3D surface.  
¦
When you begin a trace, the cursor appears at the  
midpoint of the xy grid.  
Tip: During a trace, you can  
also evaluate z(x,y). Type  
the x value and press  
¸; then type the y value  
and press ¸.  
¦
QuickCenter is available. At any time during a trace,  
regardless of the cursor’s location, you can 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  
159  
 
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.  
On a 3D surface, the cursor always follows along a grid wire.  
How to Move the  
Cursor  
Cursor Key  
Moves the cursor to the next grid point in the:  
Note: You can move the  
cursor only within the x and y  
boundaries set by Window  
variables xmin, xmax, ymin,  
and ymax.  
B
A
C
D
Positive x direction  
Negative x direction  
Positive y direction  
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: To show the axes and  
their labels from the  
Y= Editor, Window Editor, or  
Graph screen, use:  
TI-89: ¥ Í  
In 3D graphing, x and y have a  
different orientation relative to the  
Graph screen. Also, you can rotate  
and/or elevate the viewing angle.  
eyeq=20  
eyef=70  
eyeψ=0  
TI-92 Plus: ¥ F  
The following graph shows a sloped plane that has the equation  
z1(x,y) = ë (x + y) / 2. Suppose you want to trace around the displayed  
boundary.  
Simple Example of  
Moving the Cursor  
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,  
up to xmax.  
D moves in a  
negative y direction,  
Tip: By displaying and  
back to ymin.  
labeling the axes, you can  
more easily see the pattern  
in the cursor movement.  
C moves in a  
A moves in a negative  
positive y direction,  
x direction, back to  
up to ymax.  
xmin.  
Tip: To move grid points  
closer together, you can  
increase Window variables  
xgrid and ygrid.  
When the trace cursor is on an interior point in the displayed plane,  
the cursor moves from one grid point to the next along one of the  
grid wires. You cannot move diagonally across the grid.  
Notice that the grid wires may not appear parallel to the axes.  
160  
Chapter 10: 3D Graphing  
 
On more complex shapes, the cursor may appear as if it is not on a  
grid point. This is an optical illusion caused when the cursor is on a  
hidden surface.  
Example of the  
Cursor on a 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.  
If you cut away the front side, you  
can see the cursor is actually on a  
grid point on the hidden back side.  
You can move the cursor so that it  
does not appear to be on a grid  
point.  
Although the cursor can move only along a grid wire, you will see  
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.  
Example of an “Off  
the Curve” Cursor  
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  
center the viewing cube on  
the cursor’s location. Simply  
press ¸.  
Although the cursor is actually tracing the paraboloid, it appears off  
the curve because the trace coordinates:  
¦
¦
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  
161  
 
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.  
Z
The viewing angle has three components:  
How the Viewing  
Angle Is Measured  
eyef  
¦
¦
¦
eyeq — angle in degrees from the  
positive x axis.  
eyef — angle in degrees from the  
positive z axis.  
eyeψ  
Y
eyeq  
X
eyeψ — angle in degrees by which the  
graph is rotated counterclockwise  
around the line of sight set by eyeq  
and eyef.  
Note: When eyeψ=0, the  
z axis is vertical on the  
screen. When eyeψ=90,  
the z axis is rotated 90¡  
counterclockwise and is  
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¡.  
The view on the Graph screen is always oriented along the viewing  
angle. From this point of view, you can change eyeq to rotate the  
viewing angle around the z axis.  
Effect of Changing  
eyeq  
z1(x,y) = (x3y - y3x) / 390  
In this example, eyef = 70  
eyeq = 20  
Note: This example  
increments eyeq by 30.  
eyeq = 50  
eyeq = 80  
162  
Chapter 10: 3D Graphing  
 
By changing eyef, you can elevate your viewing angle above the xy  
plane. If 90 < eyef < 270, the viewing angle is below the xy plane.  
Effect of Changing  
eyef  
z1(x,y) = (x3y - y3x) / 390  
In this example, eyeq = 20  
eyef = 90  
Note: This example starts  
on the xy plane (eyef = 90)  
and decrements eyef by 20  
to elevate the viewing angle.  
eyef = 70  
eyef = 50  
The view on the Graph screen is always oriented along the viewing  
angles set by eyeq and eyef. You can change eyeψ to rotate the graph  
around that line of sight.  
Effect of Changing  
eyeψ  
Note: During rotation, the  
axes expand or contract to  
fit the screen’s width and  
height. This causes some  
distortion as shown in the  
example.  
In this example,  
eyeq=20 and eyef=70  
z1(x,y)=(x3yì y3x) / 390  
eyeψ=0  
z=10  
When eyeψ=0,  
the z axis runs  
the height of the  
screen.  
eyeψ=45  
z=ë10  
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.  
The eye values are stored in the system variables eyeq, eyef, and  
eyeψ. You can access or store to these variables as necessary.  
From the Home  
Screen or a Program  
TI-89: To type f or ψ, press ¥ c j[F] or ¥ c Ú, respectively.  
You can also press 2¿ and use the Greek menu.  
TI-92 Plus: To type f or ψ, press 2G F or 2G Y respectively.  
You can also press 2¿ and use the Greek menu.  
Chapter 10: 3D Graphing  
163  
 
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 154.  
When using Aand Bto animate a graph, think of it as moving the  
viewing angle along its “viewing orbit” around the graph.  
The Viewing Orbit  
Note: The viewing orbit  
affects the eye Window  
variables in differing  
amounts.  
Moving along this orbit can  
cause the z axis to wobble  
slightly during the animation  
(as you can see in the preview  
example on page 154).  
Animating the  
Graph  
To:  
Do this:  
Animate the graph incrementally  
Press and release the cursor  
quickly.  
Note: If the graph is shown  
in expanded view, it returns  
to normal view automatically  
when you press a cursor  
key.  
Move along the viewing orbit: Aor B  
Change the viewing orbit’s: Cor D  
elevation  
(primarily increases  
or decreases eyef)  
Tip: After animating the  
graph, you can stop and  
then re-start the animation  
in the same direction by  
pressing:  
Animate the graph continuously  
Press and hold the cursor for  
about 1 second, and then  
release it.  
TI-89: ¸ or j   
TI-92 Plus: ¸ or space  
bar  
TI-89: To stop, press N,  
¸, ´, or ¥  (space).  
TI-92 Plus: To stop, press N,  
¸, ´, or the space bar.  
Tip: During an animation,  
you can switch to the next  
graph format style by  
pressing:  
Change between 4 animation  
speeds (increase or decrease the  
incremental changes in the eye  
Window variables)  
Press « or |.  
TI-89: Í  
TI-92 Plus: F  
Tip: To see a graphic that  
shows the eye angles, refer  
to page 162.  
Change the viewing angle of a non- Press X, Y or Z, respectively.  
animated graph to look along the x,  
y, or z axis  
Return to the initial eye angle  
Press 0  
values  
(zero, not the letter O).  
You can also animate a graph by saving a series 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 162), which rotates  
the graph.  
Animating a Series  
of Graph Pictures  
164  
Chapter 10: 3D Graphing  
 
Changing the Axes and Style Formats  
With its default settings, the TI-89 / TI-92 Plus displays hidden  
surfaces on a 3D graph but does not display the axes.  
However, you can change the graph format at any time.  
From the Y= Editor, Window Editor, or Graph screen, press:  
Displaying the  
GRAPH FORMATS  
Dialog Box  
ƒ 9  
or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
¦
¦
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.  
To display the valid Axes settings,  
highlight the current setting and  
press B.  
Examples of Axes  
Settings  
z1(x,y) = xñ+.5yñ  
¦
¦
AXES — Shows standard  
xyz axes.  
Tip: Setting Labels = ON is  
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  
165  
 
To display the valid Style settings,  
highlight the current setting and  
press B.  
Examples of Style  
Settings  
¦
WIRE FRAME — Shows the 3D  
shape as a transparent wire  
frame.  
Tip: WIRE FRAME is faster  
to graph and may be more  
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 167) and IMPLICIT PLOT (page 171).  
The eye angles used to view a graph (eyeq, eyef, and eyeψ Window  
variables) can result in optical illusions that cause you to lose  
perspective on a graph.  
Be Aware of  
Possible  
Optical Illusions  
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  
from above the xy plane  
Looking up  
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.  
166  
Chapter 10: 3D Graphing  
 
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.  
In 3D graphing mode, define an equation and graph it as you would  
any 3D equation, with the following exception. Display the GRAPH  
FORMATS dialog box by pressing ƒ 9 from the Y= Editor, Window  
editor, or Graph screen. Then set:  
Selecting the Graph  
Format Style  
Tip: From the Graph  
screen, you can switch from  
one graph format style to  
the next (skipping IMPLICIT  
PLOT) by pressing:  
TI-89: Í  
Style = CONTOUR LEVELS  
– or –  
Style = WIRE AND CONTOUR  
TI-92 Plus: F  
¦
For CONTOUR LEVELS, only the contours are shown.  
Note: Pressing:  
TI-89: Í  
TI-92 Plus: F  
The viewing angle is set initially so that you are viewing the  
contours by looking down the z axis. You can change the  
viewing angle as necessary.  
to select CONTOUR LEVELS  
does not affect the viewing  
angle, view, or Labels  
format as it does if you use:  
TI-89: ¥ Í  
The graph is shown in expanded view. To switch between  
expanded and normal view, press p.  
TI-92 Plus: ¥ F  
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  
Window variable values as a  
ZoomStd viewing cube. If  
you use ZoomStd, press Z  
to look down the z axis.  
CONTOUR  
LEVELS  
Using eyeq=20, eyef=70, eyeψ=0  
CONTOUR  
LEVELS  
Note: Do not confuse the  
contours with the grid lines.  
The contours are darker.  
WIRE AND  
CONTOUR  
Chapter 10: 3D Graphing  
167  
 
You can set the ncontour Window variable (¥ $ ) to specify the  
number of contours that will be evenly distributed along the  
displayed range of z values, where:  
How Are Z Values  
Determined?  
zmax ì zmin  
increment =  
ncontour + 1  
The z values for the contours are:  
zmin + increment  
zmin + 2(increment)  
zmin + 3(increment)  
©
The default is 5. You can  
zmin + ncontour(increment)  
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.  
If a contour graph is currently displayed, you can specify a point on  
the graph and draw a contour for the corresponding z value.  
Drawing a Contour  
for the Z Value of a  
Selected Point  
1. To display the Draw menu, press:  
TI-89: 2ˆ  
Interactively  
TI-92 Plus: ˆ  
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  
remain on the graph. To  
remove the default contours,  
display the Window editor  
(¥ $ ) and set  
– or –  
Move the cursor to the applicable point. (The cursor moves  
along the grid lines.) Then press ¸.  
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.  
168  
Chapter 10: 3D Graphing  
 
From the Graph screen, display the Draw menu and then select  
8:DrwCtour. The Home screen is displayed automatically with  
DrwCtour in the entry line. You can then specify one or more z values  
individually or generate a sequence of z values.  
Drawing Contours  
for Specified Z  
Values  
Some examples are:  
Tip: To remove the default  
contours, use  
¥ $ and set  
Draws a contour for z=5.  
DrwCtour 5  
Draws contours for z=1, 2, and 3.  
DrwCtour {1,2,3}  
ncontour=0.  
Draws contours for a sequence of z  
values from ë10 through 10 in  
steps of 2 (ë10, ë8, ë6, etc.).  
DrwCtour seq(n,n,ë 10,10,2)  
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.)  
For a contour plot:  
Notes about  
Contour Plots  
¦
You can use the cursor keys (page 164) 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, display the Graph  
Formats dialog box and set Style=CONTOUR LEVELS or WIRE  
AND CONTOUR.  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Chapter 10: 3D Graphing  
169  
 
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).  
In this example, let f(x)=x3+1. By substituting the general complex  
Example  
form x+yi for x, you can express the complex surface equation as  
z(x,y)=abs((x+yù i)3+1).  
1. Use 3to 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. Display the Graph Formats  
dialog box:  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
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
2
1
2
ë 1,  
+
3 i, and  
ì
3 i  
2
2
Note: For more accurate  
estimates, increase the  
xgrid and ygrid Window  
variables. However, this  
increases the graph  
6. Press , and move the  
trace cursor to the zero in  
the fourth quadrant.  
The coordinates let you  
estimate .428ì.857i as  
the zero.  
evaluation time.  
The zero is precise when z=0.  
Tip: When you animate the  
graph, the screen changes  
to normal view. Use p to  
toggle between normal and  
expanded views.  
7. Press N. Then use the  
cursor keys to animate the  
graph and view it from  
different eye angles.  
This example shows eyeq=70,  
eyef=70, and eyeψ=0.  
170  
Chapter 10: 3D Graphing  
 
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.  
In 2D function graphing mode,  
equations have an explicit form  
y=f(x), where y is unique for  
each value of x.  
Explicit and Implicit  
Forms  
Many equations, however, have  
an implicit form f(x,y)=g(x,y),  
y is not unique for each x, so  
you cannot graph this in  
where you cannot explicitly  
solve for y in terms of x or for x  
in terms of y.  
function graphing mode.  
Tip: You can also graph  
many implicit forms if you  
either:  
By using implicit plots in 3D graphing mode, you can graph these  
implicit forms without solving for y or x.  
f(x,y)ì g(x,y)=0  
Rearrange the implicit form as  
an equation set to zero.  
Express them as  
parametric equations.  
Refer to Chapter 7.  
z1(x,y)=f(x,y)ì g(x,y)  
In the Y= Editor, enter the non-  
zero side of the equation. This  
is valid because an implicit plot  
automatically sets the equation  
equal to zero.  
Break them into  
separate, explicit  
functions. Refer to the  
preview example in  
Chapter 6.  
If xñ +.5yñ =30,  
For example, given the ellipse  
equation shown to the right,  
enter the implicit form in the  
Y= Editor.  
then z1(x,y)=xñ +.5yñ ì 30.  
In 3D graphing mode, define an appropriate equation and graph it as  
you would any 3D equation, with the following exception. Display  
the GRAPH FORMATS dialog box from the Y= Editor, Window editor,  
Selecting the Graph  
Format Style  
or Graph screen.  
TI-89: ¥ Í  
Note: From the Graph  
screen, you can switch to  
the other graph format  
styles by pressing:  
TI-92 Plus: ¥ F  
Then set:  
Style = IMPLICIT PLOT  
TI-89: Í  
TI-92 Plus: F  
However, to return to  
IMPLICIT PLOT press:  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Chapter 10: 3D Graphing  
171  
 
¦
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)  
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  
Note: These examples use  
the same x, y, and z  
Window variable values as a  
ZoomStd viewing cube. If  
you use ZoomStd, press Z  
to look down the z axis.  
IMPLICIT  
PLOT  
For an implicit plot:  
Notes About  
Implicit Plots  
¦
The ncontour Window variable (page 168) 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 164) 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, set Style=IMPLICIT PLOT.  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
172  
Chapter 10: 3D Graphing  
 
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.  
Graph the equation sin(x4+yìx3 y) = .1.  
Example  
1. Use 3to 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:  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Turn on the axes, set  
Style = IMPLICIT PLOT, and  
return to the Window  
editor.  
Note: For more detail,  
increase the xgrid and ygrid  
Window variables. However,  
this increases the graph  
evaluation time.  
5. Press ¥ % to graph  
the equation.  
It will take awhile to  
evaluate the graph; so be  
patient.  
The graph shows where  
4
3
sin(x +yìx y) = .1  
Tip: When you animate the  
graph, the screen changes  
to normal view. Press p to  
switch between normal and  
expanded views.  
6. Use the cursor keys to  
animate the graph and view  
it from different eye angles.  
In expanded view, this example  
shows eyeq=ë127.85, eyef=52.86,  
and eyeψ=ë18.26.  
Chapter 10: 3D Graphing  
173  
 
174  
Chapter 10: 3D Graphing  
Differential Equation Graphing  
Preview of Differential Equation Graphing........................................ 176  
Overview of Steps in Graphing Differential Equations..................... 178  
Differences in Diff Equations and Function Graphing...................... 179  
Setting the Initial Conditions................................................................ 184  
Defining a System for Higher-Order Equations ................................. 186  
11  
Example of a 2nd-Order Equation ....................................................... 187  
Example of a 3rd-Order Equation........................................................ 189  
Setting Axes for Time or Custom Plots............................................... 190  
Example of Time and Custom Axes .................................................... 191  
Example Comparison of RK and Euler ............................................... 193  
Example of the deSolve( ) Function.................................................... 196  
Troubleshooting with the Fields Graph Format ................................ 197  
This chapter describes how to solve differential equations  
graphically on the TI-89 / TI-92 Plus. Before using this chapter, you  
should be familiar with Chapter 6: Basic Function Graphing.  
The TI-89 / TI-92 Plus solves 1st-order systems of ordinary  
Note: A differential equation  
is:  
differential equations. For example:  
1st-order when only  
1st-order derivatives  
appear.  
y' = .001 y ù (100 ì y)  
or coupled 1st-order differential equations such as:  
Ordinary when all the  
derivatives are with  
respect to the same  
independent variable.  
y1' = ë y1 + 0.1 ù y1 ù y2  
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 / TI-92 Plus uses numerical methods that  
approximate the true solutions. The 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  
175  
   
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.  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
3
B 6  
¸
3
B 6  
¸
1. Display the MODE dialog box.  
For Graph mode, select  
DIFF EQUATIONS.  
2. Display and clear the Y= Editor.  
Then define the 1st-order  
differential equation:  
¥ #  
¥ #  
ƒ 8 ¸  
¸.0 0 1  
Y 1 p c 1 0 0  
ƒ 8 ¸  
¸ . 0 0 1  
Y 1 p c 1 0 0  
y1'(t)=.001y1ù (100ì y1)  
Press p to enter the ù shown above. | Y 1 d ¸ | Y 1 d ¸  
Do not use implied multiplication  
between the variable and  
parentheses. If you do, it is treated as  
a function call.  
Leave the initial condition yi1 blank.  
Important: With y1'  
selected, the  
TI-89 / TI-92 Plus will graph  
the y1 solution curve, not  
the derivative y1'.  
¥ Í  
¥ F  
3. Display the GRAPH FORMATS  
dialog box. Then set Axes = ON,  
Labels = ON, Solution Method =  
RK, and Fields = SLPFLD.  
D D B 2  
D D B 2  
D B 1  
D D B 2  
D D B 2  
D B 1  
D B 1 ¸  
D B 1 ¸  
Important: To graph one differential  
equation, Fields must be set to  
SLPFLD or FLDOFF. If Fields=DIRFLD,  
an error occurs when you graph.  
¥ $  
0 D 1 0 D  
. 1 D 0 D  
· 1 0 D 1 1 0  
¥ $  
0 D 1 0 D  
. 1 D 0 D  
· 1 0 D 1 1 0  
4. Display the Window Editor, and  
set the Window variables as  
shown to the right.  
D 1 0 D · 1 0 D 1 0 D · 1 0  
D 1 2 0 D D 1 2 0 D  
1 0 D 0 D.0 0 1 1 0 D 0 D . 0 0  
D 2 0  
1 D 2 0  
¥ %  
¥ %  
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).  
176  
Chapter 11: Differential Equation Graphing  
 
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
¥ #  
¸ 1 0  
¥ #  
¸ 1 0  
6. Return to the Y= Editor and  
enter an initial condition:  
¸
¸
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  
and plots to the right. Then it plots to  
the left.  
The initial condition is  
marked with a circle.  
¥ # C  
¸ 2 [  
1 0 b 2 0 2 \ 1 0 b 2 0 2 \  
¥ # C  
¸ 2 [  
8. Return to the Y= Editor and  
change yi1 to enter two initial  
conditions as a list:  
¸
¸
yi1={10,20}  
¥ %  
¥ %  
9. Return to the Graph screen.  
2 Š  
4 0 ¸  
4 5 ¸  
Š
4 0 ¸  
4 5 ¸  
10. To select an initial condition  
interactively, press:  
TI-89: 2Š  
TI-92 Plus: Š  
When prompted, enter t=40 and  
y1=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 TI-89: 2 Š  
TI-92 Plus: Š, 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  
177  
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  
Differential  
Equations  
Set Graph mode (3)  
to DIFF EQUATIONS.  
Also set Angle mode,  
if necessary.  
Define equations and,  
optionally, initial  
conditions on Y= Editor  
(¥ #).  
Select () which  
defined equations to  
Tip: To turn off any stat  
data plots, press 5 or  
graph.  
use to deselect them.  
Refer to Chapter 16.  
Set the display style for  
an equation.  
TI-89: 2 ˆ  
TI-92 Plus: ˆ  
Set the graph format.  
Solution Method and  
Fields are unique to  
differential equations.  
Note: The Fields format is  
critical, depending on the  
order of the equation  
(page 197).  
ƒ 9  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Note: Valid Axes settings  
depend on the Fields format  
(pages 190 and 197).  
Set the axes as  
applicable, depending  
on the Fields format.  
TI-89: 2 ‰  
TI-92 Plus: ‰  
Note: Depending on the  
Solution Method and Fields  
formats, different Window  
variables are displayed.  
Define the viewing  
window (¥ $).  
Tip: Zoom also changes  
the viewing window.  
Graph the equations  
(¥ %).  
178  
Chapter 11: Differential Equation Graphing  
 
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.  
Use 3to set Graph = DIFF EQUATIONS before you define  
differential equations or set Window variables. The Y= Editor and the  
Window Editor let you enter information for the current Graph mode  
setting only.  
Setting the  
Graph Mode  
Defining Differential  
Equations on the  
Y= Editor  
Use t0 to specify when initial  
conditions occur. You can also set  
t0 in the Window 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  
command from the Home  
screen to define functions  
and equations.  
When entering equations in the Y= Editor, do not use y(t) formats to  
refer to results. For example:  
Do not use implied multiplication  
between a variable and  
parenthetical expression. If you  
do, it is treated as a function call.  
Enter: y1' = .001y1ù (100ì y1)  
Not:  
y1' = .001y1(t)ù (100ì y1(t))  
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 186.  
For detailed information about setting initial conditions, refer to  
page 184.  
Selecting  
Differential  
Equations  
You can use to select a  
differential equation, but not  
its initial condition.  
Important: Selecting y1'  
will graph the y1 solution  
curve, not the derivative  
y1', depending on the axis  
setting.  
With the Style menu, only the Line, Dot, Square, Thick, Animate, and  
Path styles are available. Dot and Square mark only those discrete  
values (in tstep increments) at which a differential equation is  
Selecting the  
Display Style  
plotted.  
TI-89: 2ˆ  
TI-92 Plus: ˆ  
Chapter 11: Differential Equation Graphing  
179  
 
From the Y= Editor, Window  
Editor, or Graph screen, press:  
ƒ 9  
Setting Graph  
Formats  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
The formats affected by differential equations are:  
Graph format  
Description  
Graph Order  
Not available.  
Solution  
Method  
Specifies the method used to solve the differential  
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  
graph format is critical in  
successfully graphing  
differential equations. Refer  
to “Troubleshooting with the  
Fields Graph Format” on  
page 197.  
Fields  
Specifies whether to draw a field for the  
differential equation.  
¦
SLPFLD — Draws a slope field for only one 1st-  
order equation, with t on the x axis and the  
solution on the y axis. To see how a slope field  
is used, refer to the example starting on  
page 176.  
Tip: If you press ¸  
while a slope or direction  
field is being drawn, the  
graph pauses after the field  
is drawn but before the  
solutions are plotted. Press  
¸ again to continue.  
¦
DIRFLD — Draws a direction field for only one  
2nd-order equation (or system of two 1st-order  
equations), with axes determined by the  
custom axes settings. To see how a direction  
field is used, refer to the example starting on  
page 187.  
Tip: To cancel graphing,  
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 184). For an  
example, refer to page 189.  
180  
Chapter 11: Differential Equation Graphing  
 
In the Y= Editor, Axes may or may not be available, depending on the  
current graph format.  
Setting Axes  
If it is available, you can select the  
axes that are used to graph the  
differential equations. For more  
information, refer to page 190.  
TI-89: 2‰  
TI-92 Plus:  
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.  
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.  
Window Variables  
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  
be negative.  
tmax,  
tstep  
Used to determine the t values where the equations are  
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 is ignored and is  
assumed to be the same  
as t0.  
tplot  
First t value plotted. If this is not a tstep increment,  
plotting begins at the next tstep increment. In some  
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  
181  
 
xmin, xmax, Boundaries of the viewing window.  
ymin, ymax  
Window Variables  
(Continued)  
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  
how the Fields graph format  
affects whether ncurves is  
used, refer to page 184.  
When ncurves is used, t0 is set temporarily at the middle  
of the screen and initial conditions are distributed  
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  
Estep  
(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.  
(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:  
xmin = ë 1.  
xmax = 10.  
xscl = 1.  
ymin = ë 10.  
ymax = 10.  
yscl = 1.  
ncurves = 0.  
diftol = .001  
Estep = 1.  
fldres = 14.  
dtime = 0.  
t0 = 0.  
tmax = 10.  
tstep = .1  
tplot = 0.  
You may need to change the standard values for the t variables to  
ensure that sufficient points are plotted.  
182  
Chapter 11: Differential Equation Graphing  
 
When a slope or direction field is drawn, a picture of the field is  
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 / TI-92 Plus reuses the picture in fldpic  
instead of having to redraw the field. This can speed up the  
regraphing time significantly.  
The fldpic System  
Variable  
fldpic is deleted automatically when you exit the differential equation  
graphing mode or when you display a graph with Fields = FLDOFF.  
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.  
Exploring a Graph  
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  
move the cursor to a  
particular point by typing a  
value for t and pressing  
¸.  
Trace  
Lets you move the cursor along the curve one tstep at  
a time. To move approximately ten plotted points at a  
time, press 2Bor 2A.  
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:  
TI-89: 2Š  
TI-92 Plus: Š  
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  
cursor off the screen (top or bottom, left or right),  
press ¸ to center the viewing window on the  
cursor location. Use C or D to view results on all  
plotted curves.  
QuickCenter at any time  
during a trace, even if the  
cursor is still on the screen.  
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  
183  
 
Setting the Initial Conditions  
You can enter initial conditions in the Y= Editor, let the  
TI-89 / TI-92 Plus calculate initial conditions automatically, or  
select them interactively from the Graph screen.  
You can specify one or more initial conditions in the Y= Editor. To  
specify more than one, enter them as a list enclosed in braces { } and  
separated by commas.  
Entering Initial  
Conditions in the  
Y= Editor  
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  
defining a system for higher-  
order equations, refer to  
page 186.  
For a 2nd- or higher-order differential equation, you must define a  
system of 1st-order equations in the Y= Editor.  
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 initial conditions, the ncurves Window variable  
(¥ $) specifies the number of solution curves graphed  
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.  
If You Do Not Enter  
an Initial Condition  
in the Y= Editor  
Tip: Without entering initial  
conditions, use SLPFLD  
(with ncurves=0) or DIRFLD  
to display a slope or  
If Fields =  
Then:  
SLPFLD  
Uses ncurves, if not set to 0, to graph curves.  
DIRFLD  
FLDOFF  
Ignores ncurves. Does not graph any curves.  
direction field only.  
Uses ncurves if Axes = TIME (or if Axes = Custom and  
the x axis is t). Otherwise, a Diff Eq setup error occurs.  
Note: SLPFLD is for a single  
1st-order equation only.  
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.  
184  
Chapter 11: Differential Equation Graphing  
 
When a differential equation is graphed (regardless of whether a  
solution curve is displayed), you can select a point on the Graph  
screen and use it as an initial condition.  
Selecting an Initial  
Condition  
Interactively from  
the Graph Screen  
If Fields =  
Do this:  
Note: With SLPFLD or  
DIRFLD, you can select  
initial conditions interactively  
regardless of whether you  
enter initial conditions in the  
Y= Editor.  
SLPFLD  
– or –  
DIRFLD  
1. Press:  
TI-89: 2Š  
TI-92 Plus: Š  
2. Specify an initial condition. Either:  
¦
¦
Move the cursor to the applicable point and  
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  
can select initial conditions  
interactively. However, if  
three or more equations are  
entered, you must enter a  
single value (not a list) as  
the initial condition for each  
equation in the Y= Editor.  
Otherwise, a Dimension  
error occurs when graphing.  
FLDOFF  
1. Press:  
TI-89: 2Š  
TI-92 Plus: Š  
You are prompted to select the axes for which you  
want to enter initial conditions.  
t is a valid selection.  
It will let you specify  
a value for t0.  
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.  
When you enter initial conditions in the Y= Editor or let ncurves  
graph solution curves automatically, you can use to trace the  
curves.  
Note about Tracing  
a Solution Curve  
However, you cannot trace a curve drawn by selecting an initial  
condition interactively. These curves are drawn, not plotted.  
Chapter 11: Differential Equation Graphing  
185  
 
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 nth-order equation, you  
must transform it into a system of n 1st-order equations.  
A system of equations can be defined in various ways, but the  
following is a general method.  
Transforming an  
Equation into a 1st-  
Order System  
y'' + y' + y = ex  
1. Rewrite the original differential  
equation as necessary.  
y'' = ex ì y' ì y  
a. Solve for the highest-ordered  
derivative.  
b. Express it in terms of y and t.  
y'' = et ì y' ì y  
Note: To produce a 1st-  
order equation, the right  
side must contain non-  
derivative variables only.  
c. On the right side of the equation  
only, substitute to eliminate any  
references to derivative values.  
In place of: Substitute:  
y'' = et ì y2 ì y1  
y
y1  
y2  
y3  
y4  
y5  
©
y'  
y''  
y'''  
y(4)  
©
Do not  
substitute on  
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:  
y2' = et ì y2 ì y1  
y'  
y1'  
y2'  
y3'  
y4'  
©
y''  
y'''  
y(4)  
©
Note: Based on the above  
substitutions, the y' lines in  
the Y= Editor represent:  
y1' = y'  
2. On the applicable lines in the Y= Editor,  
define the system of equations as:  
y1' = y2  
y2' = y''  
y2' = y3  
y3' = y4  
– up to –  
yn' = your nth-order equation  
etc.  
So, this example’s 2nd-  
order equation is entered on  
the y2' line.  
In a system such as this, the solution to the y1' equation is the  
solution to the nth-order equation. You may want to deselect any  
other equations in the system.  
186  
Chapter 11: Differential Equation Graphing  
 
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.  
1. Press 3and set Graph=DIFF EQUATIONS.  
Example  
2. Define a system of equations  
y'' + y = 0  
y'' = ëy  
y'' = ëy1  
for the 2nd-order equation as  
described on page 186.  
Rewrite the equation and  
make the necessary  
substitutions.  
y2' = ëy1  
Note: t0 is the time at which  
the initial conditions occur. It  
is also the first t evaluated  
for the graph. By default,  
t0=0.  
3. In the Y= Editor (¥ #),  
enter the system of equations.  
yi1 is the initial  
condition for y(0).  
4. Enter the initial conditions:  
yi1=0 and yi2=1  
yi2 is the initial  
condition for y'(0).  
Important: For 2nd-order  
equations, you must set  
Fields=DIRFLD or FLDOFF.  
5. Press:  
ƒ 9  
or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
and set Axes = ON, Labels =  
OFF, Solution Method = RK, and  
Fields = DIRFLD.  
Important: Fields=DIRFLD  
cannot plot a time axis. An  
Invalid Axes error occurs if  
Axes=TIME or if t is set as a  
CUSTOM axis.  
6. In the Y= Editor, press:  
TI-89: 2‰  
TI-92 Plus:  
and make sure Axes = CUSTOM  
with y1 and y2 as the axes.  
t0=0.  
xmin=ë 2. ncurves=0.  
7. In the Window Editor  
(¥ $), set the  
Window variables.  
tmax=10. xmax=2.  
tstep=.1  
tplot=0.  
diftol=.001  
fldres=14.  
xscl=1.  
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  
187  
 
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  
graphs in both parts of a  
split screen, you must use  
the 2-graph mode.  
9. Press 3and change the  
mode settings on Page 2 as  
shown. Then close the MODE  
dialog box, which redraws the  
graph.  
10. Press 2a 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:  
Fields=DIRFLD cannot plot a  
time axis, you must change  
the Fields setting. FLDOFF  
turns off all fields.  
ƒ 9  
or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Set Fields = FLDOFF.  
13. In the Y= Editor, press:  
TI-89: 2‰  
TI-92 Plus: ‰  
and make sure Axes = TIME.  
ymin=ë 2.  
Note: When you enter 2-  
graph mode, Window  
variables for the right side  
are set to their defaults.  
14. In the Window Editor, change  
ymin and ymax as shown to the  
right.  
ymax=2.  
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  
its derivative.  
y'  
y
16. To return to a full screen of  
the original graph, press  
Split Screen = FULL  
2a to switch to the left  
side. Then press 3and  
change the Split Screen setting.  
188  
Chapter 11: Differential Equation Graphing  
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.  
1. Press 3and set Graph=DIFF EQUATIONS.  
Example  
2. Define a system of equations  
y''' + 2y'' + 2y' + y = sin(x)  
y''' = sin(x) ì 2y'' ì 2y' ì y  
y''' = sin(t) ì 2y'' ì 2y' ì y  
for the 3rd-order equation as  
described on page 186.  
y''' = sin(t) ì 2y3 ì 2y2 ì y1  
y3' = sin(t) ì 2y3 ì 2y2 ì y1  
Rewrite the equation and  
make the necessary  
substitutions.  
Note: t0 is the time at which  
the initial conditions occur.  
By default, t0=0.  
3. In the Y= Editor (¥ #),  
enter the system of  
equations.  
4. Enter the initial conditions:  
yi1=0, yi2=1, and yi3=1  
Important: The solution to the y1'  
equation is the solution to the 3rd-  
order equation.  
5. Be sure that only y1' is  
selected. Use to deselect  
any other equations.  
Important: For 3rd- or  
higher-order equations, you  
must set Fields=FLDOFF.  
Otherwise, an Undefined  
variable error occurs when  
graphing.  
6. Press:  
ƒ 9  
or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Set Axes = ON, Labels = ON,  
Solution Method = RK, and  
Fields = FLDOFF.  
Note: With Axes=TIME, the  
solution to the selected  
equation is plotted against  
time (t).  
7. In the Y= Editor, press:  
TI-89: 2‰  
TI-92 Plus: ‰  
Set Axes = TIME.  
t0=0.  
xmin=ë 1. ncurves=0.  
xmax=10. diftol=.001  
xscl=1.  
ymin=ë 3.  
ymax=3.  
8. In the Window Editor  
(¥ $), set the  
Window variables.  
tmax=10.  
tstep=.1  
tplot=0.  
yscl=1.  
Tip: To find the solution at a  
particular time, use to  
trace the graph.  
9. Display the Graph screen  
(¥ % ).  
Chapter 11: Differential Equation Graphing  
189  
 
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.  
From the Y= Editor, press:  
TI-89: 2‰  
TI-92 Plus: ‰  
Displaying the  
AXES Dialog Box  
If Fields = SLPFLD, Axes is  
unavailable.  
TI-89: 2‰  
TI-92 Plus: ‰  
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  
either Axis when  
Fields=DIRFLD. If you  
select t, an Invalid axes  
error occurs when graphing.  
t — time  
y — solutions (y1, y2, etc.) of all selected differential  
equations  
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  
190  
Chapter 11: Differential Equation Graphing  
 
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.  
Use the two coupled 1st-order differential equations:  
Predator-Prey Model  
y1' = ë y1 + 0.1y1 ù y2 and  
y2' = 3y2 ì y1 ù y2  
where:  
y1  
yi1 = Initial population of foxes (2)  
y2 Population of rabbits  
=
Population of foxes  
=
yi2 = Initial population of rabbits (5)  
1. Use 3to set Graph = DIFF EQUATIONS.  
Tip: To speed up graphing  
times, clear any other  
equations in the Y= Editor.  
With FLDOFF, all equations  
are evaluated even if they  
are not selected.  
2. In the Y= Editor (¥ #),  
define the differential  
equations and enter the  
initial conditions.  
3. Press:  
ƒ 9  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Set Axes = ON, Labels = ON,  
Solution Method = RK, and  
Fields = FLDOFF.  
4. In the Y= Editor, press:  
TI-89: 2‰  
TI-92 Plus: ‰  
Set Axes = TIME.  
t0=0.  
tmax=10.  
tstep=p/24  
tplot=0.  
xmin=ë 1.  
xmax=10.  
xscl=5.  
ymin=ë 10.  
ymax=40.  
yscl=5.  
ncurves=0.  
diftol=.001  
5. In the Window Editor  
(¥ $), set the  
Window variables.  
6. Graph the differential  
equations (¥ % ).  
Tip: Use C and D to move  
the trace cursor between the  
curves for y1 and y2.  
7. Press to trace. Then press  
3 ¸ to see the number of  
foxes (yc for y1) and rabbits  
(yc for y2) at t=3.  
y2(t)  
y1(t)  
Chapter 11: Differential Equation Graphing  
191  
 
Note: In this example,  
DIRFLD is used for two  
related differential equations  
that do not represent a 2nd-  
order equation.  
8. Return to the Y= Editor. Press:  
ƒ 9  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Set Fields = DIRFLD.  
9. Press:  
TI-89: 2‰  
TI-92 Plus: ‰  
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  
more than one initial  
condition.  
12. To graph a family of solutions,  
return to the Y= Editor and  
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  
the trace cursor from one  
initial condition curve to  
another.  
14. Press to trace. Then press  
3 ¸ to see the number of  
foxes (xc) and rabbits (yc) at  
t=3.  
Because t0=0 and tmax=10,  
you can trace in the range  
0 t 10.  
192  
Chapter 11: Differential Equation Graphing  
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.  
1. Press 3and set Graph=DIFF EQUATIONS.  
Example  
y1'=.001y1ù (100ì y1)  
2. Express the 1st-order equation  
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  
times, clear any other  
equations in the Y= Editor.  
With FLDOFF, all equations  
are evaluated even if they  
are not selected.  
3. Enter the equation in the  
Y= Editor (¥ #).  
4. Enter the initial condition:  
yi1=10  
t0 is the time at which the initial  
condition occurs. By default, t0=0.  
5. Press:  
ƒ 9  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Set Solution Method = RK and  
Fields = FLDOFF.  
t0=0.  
xmin=ë 1.  
ncurves=0.  
6. In the Window Editor  
(¥ $), set the  
Window variables.  
tmax=100. xmax=100. diftol=.001  
tstep=1.  
tplot=0.  
xscl=1.  
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  
graph the equation before  
using BldData. For more  
information about BldData,  
refer to Appendix A.  
7. In the Home screen  
TI-89: "  
BldData rklog  
TI-92 Plus: ¥ "  
use BldData to create a data  
variable containing the RK  
graphing points.  
8. Return to the Y= Editor,  
press:  
ƒ 9  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Set Solution Method = EULER.  
Chapter 11: Differential Equation Graphing  
193  
 
9. Return to the Home screen,  
and use BldData to create a  
data variable containing the  
Euler graphing points.  
BldData eulerlog  
Note: errorlog lets you  
combine the data in rklog  
and eulerlog so that you can  
view the two sets of data  
side by side.  
10. Use the Data/Matrix Editor  
(O 6 3) to create a new  
data variable named errorlog.  
Note: rklog[1] and rklog[2]  
refer to column 1 and 2 in  
rklog, respectively. Likewise  
with eulerlog[2].  
11. In this new data variable,  
define the c1, c2, and c3  
column headers to refer to  
data in rklog and eulerlog.  
Also, enter column titles as  
shown.  
c1=rklog[1] or  
c1=eulerlog[1]  
c2=rklog[2]  
c3=  
eulerlog[2]  
Tip: Scroll through the data  
variable to see how the RK  
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.  
Plot Type=xyline  
Mark=Cross  
x=c1  
13. Define Plot 2 for the Euler  
data. Use the values shown  
to the right.  
y=c3  
14. Return to the Y= Editor,  
press 3, and set  
Graph = FUNCTION.  
Note: To see how to use  
deSolve() to find this exact,  
general solution, refer to  
page 196.  
15. The exact solution to the  
differential equation is given  
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.  
194  
Chapter 11: Differential Equation Graphing  
xmin=ë 10. ymin=ë 10. xres=2.  
xmax=100. ymax=120.  
16. In the Window Editor, set  
the Window variables.  
xscl=10.  
yscl=10.  
Note: The fuzzy line on the  
graph indicates differences  
between the RK and Euler  
values.  
17. Display the Graph screen  
(¥ % ).  
xmin=39.7 ymin=85.5 xres=2.  
xmax=40.3 ymax=86.  
18. In the Window Editor, set the  
Window variables to zoom in  
so that you can examine the  
differences in more detail.  
xscl=.1  
yscl=.1  
Euler (Plot 2)  
19. Return to the Graph screen.  
RK (Plot 1)  
20. Press to trace, and then  
press Cor Duntil 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  
195  
Example of the deSolve() Function  
The deSolve() function lets you solve many 1st- and 2nd-  
order ordinary differential equations exactly.  
For a general solution, use the following syntax. For a particular  
solution, refer to Appendix A.  
Example  
deSolve(1stOr2ndOrderODE, independentVar, dependentVar)  
Using the logistic 1st-order differential equation from the example on  
page 176, 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-  
point number can introduce  
round-off errors.  
Do not use implied multiplication between the  
variable and parentheses. If you do, it will be  
treated as a function call.  
For ', type 2 È.  
Note: This example does  
not involve graphing, so you  
can use any Graph mode.  
Before using deSolve(), clear any existing t and y variables.  
Otherwise, an error occurs.  
1. In the Home screen  
TI-89: "  
TI-92 Plus: ¥ "  
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 Cto highlight the solution in the history area. Then  
press ¸ to autopaste it into the entry line.  
Tip: Press 2 A to move to  
the beginning of the entry  
line.  
b. Insert the Define  
instruction at the  
beginning of the line.  
Then press ¸.  
Note: If you got a different  
constant (@2, etc.), solve  
for that constant.  
3. For an initial condition y=10  
with t=0, use solve() to find  
the @1 constant.  
For @, type  
TI-89: ¥ §  
TI-92 Plus: 2 R  
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)  
196  
Chapter 11: Differential Equation Graphing  
 
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.  
From the Y= Editor, Window  
Editor, or Graph screen, press:  
ƒ 9  
Setting the Fields  
Graph Format  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
What Order  
If the equation is:  
Valid Fields settings are:  
Equation Are You  
Graphing?  
1st-order  
SLPFLD or FLDOFF  
2nd-order  
DIRFLD or FLDOFF  
(system of two 1st-order equations)  
3rd- or higher-order  
(system of three or more 1st-order  
equations)  
FLDOFF  
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  
Y= Editor  
Use to select one and only one 1st-order equation.  
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 184.  
Chapter 11: Differential Equation Graphing  
197  
 
Fields=DIRFLD  
In the  
Y= Editor  
Enter a valid system of two 1st-order equations. For  
information about defining a valid system for a 2nd-  
order equation, refer to page 186.  
Set Axes = CUSTOM:  
TI-89: 2‰  
TI-92 Plus: ‰  
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 184. If you did enter initial  
conditions, select ZoomFit:  
TI-89: jA  
TI-92 Plus: 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.  
198  
Chapter 11: Differential Equation Graphing  
 
Fields=FLDOFF  
In the  
Y= Editor  
If you enter a 2nd- or higher-order equation, enter it  
as a valid system of equations as described on  
page 186.  
All equations (selected or  
not) must have the same  
number of initial  
conditions. Otherwise, a  
Dimension error occurs  
when you graph.  
To set Axes = TIME or CUSTOM, press:  
TI-89: 2‰  
TI-92 Plus: ‰  
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 184. If you did enter initial  
conditions in the Y= Editor, select ZoomFit:  
TI-89: jA  
TI-92 Plus: 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 181), 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.  
You can use the Table screen to view the points for a differential  
equation graph. However, the table may show different equations  
than those graphed. The table shows only the selected equations,  
regardless of whether those equations will be plotted with your  
current Fields and Axes settings.  
If You Use the Table  
Screen to View  
Differential  
Equations  
Chapter 11: Differential Equation Graphing  
199  
 
200  
Chapter 11: Differential Equation Graphing  
Additional Graphing Topics  
Preview of Additional Graphing Topics.............................................. 202  
Collecting Data Points from a Graph................................................... 203  
Graphing a Function Defined on the Home Screen........................... 204  
Graphing a Piecewise Defined Function............................................. 206  
Graphing a Family of Curves................................................................ 208  
Using the Two-Graph Mode.................................................................. 209  
Drawing a Function or Inverse on a Graph ........................................ 212  
Drawing a Line, Circle, or Text Label on a Graph ............................. 213  
Saving and Opening a Picture of a Graph ........................................... 217  
Animating a Series of Graph Pictures ................................................. 219  
Saving and Opening a Graph Database ............................................... 220  
12  
This chapter describes additional features that you can use to  
create graphs on the TI-89 / TI-92 Plus. 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  
201  
 
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.  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
3
B 1  
D D D  
3
B 1  
D D D  
1. Display the MODE dialog box.  
For Graph mode, select  
FUNCTION.  
B 1  
B 1  
For Angle mode, select RADIAN.  
¸
¸
"
22 ™  
WHENj c X WHENc X  
2 Â 0b · X 2 Â 0b · X  
b 5p 2 X b 5p X  
¥ "  
2  
2. Display the Home screen. Use  
the Graph command and the  
when function to specify the  
piecewise defined function.  
Graph when(x<0,ëx,5ùcos(x))  
2 selects Graph from the Other  
toolbar menu and automatically adds  
a space.  
Xd d  
Xd d  
¸
¸
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.  
2 ‰ 5  
C (until the line C (until the line  
5  
4. Draw a horizontal line across  
the top of the cosine curve.  
is positioned)  
¸
is positioned)  
¸
The calculator remains in “line” mode  
until you select a different operation  
or press N.  
ƒ 2  
ƒ 2  
5. Save a picture of the graph. Use  
PIC1 as the variable name for the  
picture.  
B 2D D  
PICj 1  
¸ ¸  
B 2D D  
PIC 1  
¸ ¸  
Be sure to set Type = Picture. By  
default, it is set to GDB.  
6. Clear the drawn horizontal line.  
2 ˆ 1  
ˆ 1  
You can also press to regraph.  
ƒ 1  
B 2  
(if not already  
ƒ 1  
B 2  
(if not already  
7. Open the saved picture variable  
to redisplay the graph with the  
line.  
shown, also set shown, also set  
Be sure to set Type = Picture. By  
default, it is set to GDB.  
Variable = pic1)  
Variable = pic1)  
¸
¸
202  
Chapter 12: Additional Graphing Topics  
 
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.  
1. Display the graph. (This example shows y1(x)=5ùcos(x).)  
Collecting the  
Points  
2. Display the coordinates or math results you want to collect.  
3. Save the information to the Home screen or the sysData variable.  
TI-89: ¥ · (Home screen) or ¥ b (sysData variable)  
TI-92 Plus: ¥ H (Home screen) or ¥ D (sysData variable)  
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.  
TI-89: ¥ ·  
TI-89: ¥ b  
TI-92 Plus: ¥ H  
TI-92 Plus: ¥ D  
Displayed coordinates are added to Displayed coordinates are stored in a  
the Home screen’s history area  
(but not the entry line) as a  
single-row matrix or vector.  
data variable named sysData,  
which you can open in the  
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  
SysData Variable  
¦
When you press: TI-89: ¥ b TI-92 Plus: ¥ D  
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, this command will not  
operate.  
Chapter 12: Additional Graphing Topics  
203  
 
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.  
On the Y= Editor, all functions must be defined in terms of the  
current graph mode’s “native” independent variable.  
What Is the “Native”  
Independent  
Variable?  
Graph Mode  
Native Independent Variable  
Function  
x
Parametric  
Polar  
t
q
Sequence  
3D  
Differential Equation  
n
x, y  
t
If you have an expression on the Home screen, you can use any of  
the following methods to copy it to the Y= Editor.  
Copying from the  
Home Screen to the  
Y= Editor  
Method  
Description  
Tip: Instead of using ƒ 5  
or ƒ 6 to copy and paste,  
use:  
Copy and  
paste  
1. Highlight the expression on the Home screen.  
Press ƒ and select 5:Copy.  
2. Display the Y= Editor, highlight the desired  
TI-89: ¥ 6 or ¥ 7.  
TI-92 Plus: ¥ C (copy) or  
¥ V(paste).  
function, and press ¸.  
3. Press ƒ and select 6:Paste. Then press ¸.  
Store the expression to a Y= function name.  
2x^3+3x^2ì4x+12!y1(x)  
Tip: To copy an expression  
from the Home screen’s  
history area to the entry line,  
use the auto-paste feature  
or copy and paste.  
§
Use the complete function  
name: y1(x), not just y1.  
Tip: Define is available from  
the Home screen’s †  
toolbar menu.  
Define  
command  
Define the expression as a user-defined Y= function.  
Define y1(x)=2x^3+3x^2ì4x+12  
Tip: 2 £ is useful if an  
expression is stored to a  
variable or function that  
does not correspond to the  
Y= Editor, such as a1 or  
f1(x).  
2£  
If the expression is already stored to a variable:  
1. Display the Y= Editor, highlight the desired  
function, and press ¸.  
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.  
204  
Chapter 12: Additional Graphing Topics  
 
The Graph command lets you graph an expression from the Home  
screen without using the Y= Editor. Unlike the Y= Editor, Graph lets  
you specify an expression in terms of any independent variable,  
regardless of the current graphing mode.  
Graphing Directly  
from the Home  
Screen  
If the expression is in  
terms of:  
Use the Graph command  
as shown in this example:  
Tip: Graph is available from  
the Home screen’s †  
toolbar menu.  
The native  
independent variable  
graph 1.25xùcos(x)  
For function graphing,  
x is the native variable.  
A non-native  
independent variable  
graph 1.25aùcos(a),a  
Note: Graph uses the  
current Window variable  
settings.  
Specify the independent  
variable; otherwise, you  
may get an error.  
Tip: To create a table from  
the Home screen, use the  
Table command. It is similar  
to Graph. Both share the  
same expressions.  
Graph does not work with sequence graphs or differential equations.  
For parametric, polar, and 3D graphs, use the following variations.  
In PARAMETRIC graphing mode:  
In POLAR graphing mode:  
In 3D graphing mode:  
Graph xExpr, yExpr, t  
Graph expr, q  
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.  
Each time you execute Graph, the new expression is added to the  
existing ones. To clear the graphs:  
Clearing the Graph  
Screen  
¦
¦
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.  
You can define a user-defined function in terms of any independent  
variable. For example:  
Extra Benefits of  
User-Defined  
Functions  
Defined in terms of “aa”.  
define f1(aa)=1.25aaùcos(aa)  
graph f1(x)  
Refers to the function by using the  
native independent variable.  
and:  
define f1(aa)=1.25aaùcos(aa)  
f1(x)!y1(x)  
Chapter 12: Additional Graphing Topics  
205  
 
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.  
To define a two-piece function, use the syntax:  
Using the When  
Function  
when(condition, trueExpression, falseExpression)  
Tip: Graph math results  
may vary.  
For example, suppose you want to graph a function with two pieces.  
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 the CATALOG.  
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.  
206  
Chapter 12: Additional Graphing Topics  
 
For three or more pieces, you may want to create a multi-statement,  
user-defined function.  
Using a Multi-  
Statement, User-  
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  
similarities and differences  
between functions and  
programs, refer to  
A multi-statement, user-defined function can have many of the  
control and decision-making structures (If, ElseIf, Return, etc.) used  
in programming. When creating the structure of a function, it may be  
helpful to visualize it first in a block form.  
Chapter 17.  
Func  
Tip: Graph math results  
may vary.  
Func and EndFunc  
must begin and end the  
function.  
If x<-p Then  
Return 4ùsin(x)  
ElseIf x>=-p and x<0 Then  
Return 2x+6  
Else  
Return 6ìx^2  
EndIf  
EndFunc  
For information about  
the individual  
statements, refer to  
Appendix A.  
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 screen, you can also use the Define command to  
create a multi-statement, user-defined function. Refer to page 204 for  
other information on copying a function from the Home screen to the  
Y= Editor.  
From the Home  
Screen or a Program  
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  
207  
 
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.)  
Enter the expression {2,4,6} sin(x) and graph the functions.  
Examples Using the  
Y= Editor  
Tip: Graph math results  
may vary.  
Graphs three functions:  
2 sin(x), 4 sin(x), 6 sin(x)  
Tip: Enclose list elements in  
braces (2 [ and 2 \)  
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)  
Similarly, you can use the Graph command from the Home screen or  
a program as described on page 205.  
Example Using the  
Graph Command  
graph {2,4,6}sin(x)  
graph {2,4,6}sin({1,2,3}x)  
When the graph format is set for Graph Order = SIMUL, the functions  
are graphed in groups according to the element number in the list.  
Simultaneous  
Graphs with Lists  
For these example functions, the  
TI-89 / TI-92 Plus graphs three groups.  
Tip: To set graph formats  
from the Y= Editor, Window  
Editor, or Graph screen,  
press:  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
¦
¦
¦
2 sin(x), x+4, cos(x)  
4 sin(x), 2x+4  
6 sin(x), 3x+4  
The functions within each group are graphed simultaneously, but the  
groups are graphed sequentially.  
Pressing D or C moves the trace cursor to the next or previous  
curve in the same family before moving to the next or previous  
selected function.  
When Tracing a  
Family of Curves  
208  
Chapter 12: Additional Graphing Topics  
 
Using the Two-Graph Mode  
In two-graph mode, the TI-89 / TI-92 Pluss 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.  
Several mode settings affect the two-graph mode, but only two  
settings are required. Both are on Page 2 of the MODE dialog box.  
Setting the Mode  
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:  
Page 2:  
¦
¦
¦
¦
¦
Graph = Graph mode for top or left side of the split  
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  
(TI-92 Plus only)  
4. Press ¸ to close the dialog box.  
A two-graph screen is similar to a regular split screen.  
Graph 1:  
The Two-Graph  
Screen  
Graph 2:  
left or top  
side  
right or  
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  
209  
 
Both Graph 1 and Graph 2 have independent:  
Independent Graph-  
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  
completely independent  
only when the two sides use  
different graphing modes  
(as described below).  
Y= Editors. However, both graphs share common function and  
stat plot definitions.  
Independent graph-related applications (Y= Editor, Graph screen,  
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.  
Even in two-graph mode, there is actually only one Y= Editor, which  
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.  
The Y= Editor in  
Two-Graph Mode  
¦
When both sides use  
different graphing modes,  
each side shows a  
different function list.  
¦
When both sides use  
the same graphing mode,  
each side shows the  
same function list.  
Note: If you make a change  
on the active Y= Editor  
(redefine a function, change  
a style, etc.), that change is  
not reflected on the inactive  
side until you switch to it.  
You can use to  
select different  
functions and stat  
plots (indicated by Ÿ)  
for each side.  
Suppose Graph 1 and Graph 2 are  
set for function graphing. Although  
both sides show the same function  
list, you can select (Ÿ) different  
functions for graphing.  
If you set a display  
style for a function,  
that style is used by  
both sides.  
(TI-89: 2 ˆ  
TI-92 Plus: ˆ)  
210  
Chapter 12: Additional Graphing Topics  
 
For more complete information about split screens, refer to  
Chapter 14.  
Using a Split Screen  
¦
To switch from one graph side to the other, press 2 a  
(second function of O).  
Note: You can display non-  
graph-related applications  
(such as the Home screen)  
on only one side at a time.  
¦
To display different applications:  
Switch to the applicable graph side and display the application  
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.  
In two-graph mode, the two sides may appear to be related when, in  
fact, they are not. For example:  
Remember that the  
Two Sides Are  
Independent  
For Graph 2,  
the polar  
graph uses  
r(q)  
For Graph 1,  
the Y= Editor  
lists y(x)  
functions.  
equations  
that are not  
shown.  
After the two-graph mode is set up, graph-related operations refer to  
the active graph side. For example:  
From the Home  
Screen or a Program  
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  
211  
 
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.)  
Execute DrawFunc, DrawParm, or DrawPol from the Home screen or  
a program. You cannot draw a function or equation interactively  
from the Graph screen.  
Drawing a Function,  
Parametric, or Polar  
Equation  
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.  
To display the Home screen  
and put DrawFunc in the  
entry line, press:  
TI-89: 2 ˆ 2  
TI-92 Plus: ˆ 2  
2. On the Graph screen, press:  
TI-89: 2 ˆ  
TI-92 Plus: ˆ  
and select 2:DrawFunc.  
3. On the Home screen, specify  
DrawFunc y1(x)ì6  
the function to draw.  
Tip: To clear the drawn  
function, press †  
4. Press ¸ to draw the  
function on the Graph  
screen.  
— or —  
TI-89: 2 ˆ and select  
1:ClrDraw.  
TI-92 Plus: ˆ and select  
1:ClrDraw.  
You cannot trace, zoom, or  
perform a math operation on  
a drawn function.  
Execute DrawInv from the Home screen or a program. You cannot  
draw an inverse function interactively from the Graph screen.  
Drawing the Inverse  
of a Function  
DrawInv expression  
For example, use the graph of y1(x)=.1xòì2x+6 as shown above.  
1. On the Graph screen, press:  
TI-89: 2 ˆ  
To display the Home screen  
and put DrawInv in the  
entry line, press:  
TI-89: 2 ˆ 3  
TI-92 Plus: ˆ 3  
TI-92 Plus: ˆ  
and select 3:DrawInv.  
2. On the Home screen, specify  
DrawInv y1(x)  
the inverse function.  
3. Press ¸.  
The inverse is plotted as  
(y,x) instead of (x,y).  
212  
Chapter 12: Additional Graphing Topics  
 
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.)  
A drawn object is not part of the graph itself. It is drawn “on top of”  
the graph and remains on the screen until you clear it.  
Clearing All  
Drawings  
From the Graph screen:  
Tip: You can also enter  
ClrDraw on the Home  
screen’s entry line.  
¦
TI-89: 2 ˆ  
TI-92 Plus: ˆ  
and select 1:ClrDraw.  
— 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).  
From the Graph screen:  
Drawing a Point or a  
Freehand Line  
1. TI-89: 2 ‰  
TI-92 Plus: ‰  
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, you can move  
the cursor diagonally.  
Freehand line  
TI-89: Press and hold ¤, and move the  
cursor to draw the line.  
TI-92 Plus: Press and hold , and move  
the cursor to draw the line.  
To quit drawing the line, release ¤ or .  
Note: If you start drawing  
on a white pixel, the pencil  
draws a black point or line.  
If you start on a black pixel,  
the pencil draws a white  
point or line (which can act  
as an eraser).  
After drawing the point or line,  
you are still in “pencil” mode.  
¦
To continue drawing, move  
the cursor to another point.  
¦
To quit, press N.  
Chapter 12: Additional Graphing Topics  
213  
 
From the Graph screen:  
Erasing Individual  
Parts of a Drawing  
Object  
1. TI-89: 2‰  
TI-92 Plus: ‰  
and select 2:Eraser. The cursor is shown as a small box.  
2. Move the cursor to the applicable location.  
To erase:  
Area under the box Press ¸.  
TI-89: Press and hold ¤, and move the  
Do this:  
Note: These techniques  
also erase parts of graphed  
functions.  
Along a freehand line  
cursor to erase the line.  
TI-92 Plus: Press and hold , and move  
the cursor to erase the line.  
To quit, release ¤ or .  
After erasing, you are still in  
“eraser” mode.  
¦
To continue erasing, move  
the box cursor to another  
location.  
¦
To quit, press N.  
From the Graph screen:  
Drawing a Line  
Between Two Points  
1. TI-89: 2‰  
TI-92 Plus: ‰  
and select 3:Line.  
2. Move the cursor to the 1st point, and press ¸.  
3. Move to the 2nd point, and press ¸. (As you move, a line  
Tip: Use 2 to move the  
cursor in larger increments;  
2 B, etc.  
extends from the 1st point to the cursor.)  
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.  
From the Graph screen:  
Drawing a Circle  
1. TI-89: 2‰  
TI-92 Plus: ‰  
and select 4:Circle.  
2. Move the cursor to the center  
of the circle, and press  
¸.  
Tip: Use 2 to move the  
cursor in larger increments;  
2 B, etc.  
3. Move the cursor to set the  
radius, and press ¸.  
214  
Chapter 12: Additional Graphing Topics  
 
From the Graph screen:  
Drawing a  
Horizontal or  
Vertical Line  
1. TI-89: 2‰  
TI-92 Plus: ‰  
and select 5:Horizontal or 6:Vertical. A horizontal or 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  
cursor in larger increments;  
2 B, etc.  
2. Use the cursor pad to move the line to the appropriate position.  
Then press ¸.  
After drawing the line, you are  
still in “line” mode.  
¦
To continue, move the cursor  
to another location.  
¦
To quit, press N.  
To draw a tangent line, use the Math toolbar menu. From the  
Graph screen:  
Drawing a Tangent  
Line  
1. Press and select A:Tangent.  
2. As necessary, use D and C to select the applicable function.  
Tip: To set the tangent  
point, you can also type its x  
value and press ¸.  
3. Move the cursor to the  
tangent point, and press  
¸.  
The tangent line is drawn,  
and its equation is displayed.  
To draw a line through a specified point with a specified slope,  
execute the DrawSlp command from the Home screen or a program.  
Use the syntax:  
Drawing a Line  
Based on a Point  
and a Slope  
DrawSlp x, y, slope  
You can also access DrawSlp from the Graph screen.  
1. TI-89: 2ˆ  
TI-92 Plus: ˆ  
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 / TI-92 Plus  
automatically switches to the  
Graph screen and draws the  
line.  
Chapter 12: Additional Graphing Topics  
215  
 
From the Graph screen:  
Typing Text Labels  
1. TI-89: 2‰  
TI-92 Plus: ‰  
and select 7:Text.  
Tip: The text cursor  
indicates the upper-left  
corner of the next character  
you type.  
2. Move the text cursor to the location where you want to begin  
typing.  
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.  
Commands are available for drawing any of the objects described in  
this section. There are also commands (such as PxlOn, PxlLine, etc.)  
that let you draw objects by specifying exact pixel locations on the  
screen.  
From the Home  
Screen or a Program  
For a list of the available drawing commands, refer to “Drawing on  
the Graph Screen” in Chapter 17.  
216  
Chapter 12: Additional Graphing Topics  
 
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.  
A picture includes any plotted functions, axes, tick marks, and drawn  
objects. The picture does not include lower and upper bound  
indicators, prompts, or cursor coordinates.  
Saving a Picture of  
the Whole Graph  
Screen  
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  
Important: By default, Type = GDB  
input box such as Variable, you  
(for graph database). You must set  
must press ¸ twice.  
Type = Picture.  
You can define a rectangular box that encloses only the portion of  
the Graph screen that you want to save.  
Saving a Portion of  
the Graph Screen  
1. TI-89: 2 ‰  
TI-92 Plus: ‰  
and select 8:Save Picture.  
Note: You cannot save a  
portion of a 3D graph.  
A box is shown around the  
outer edge of the screen.  
Tip: Use D and C to move  
the top or bottom, and use  
B and A to move the sides.  
2. Set the 1st corner of the box  
by moving its top and left  
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  
Note: When saving a portion of a  
graph, Type is automatically fixed  
as Picture.  
must press ¸ twice.  
Chapter 12: Additional Graphing Topics  
217  
 
When you open a graph picture, it is superimposed over the current  
Graph screen. To display only the picture, use the Y= Editor to  
deselect any other functions before opening the graph picture.  
Opening a Graph  
Picture  
From the Graph screen:  
1. Press ƒ and select 1:Open.  
2. Select the type (Picture),  
folder, and variable that  
contain the graph picture you  
want to open.  
Note: If a variable name is  
not shown on the dialog  
box, there are no graph  
pictures in the folder.  
Important: By default, Type = GDB  
(for graph database). Be sure to set  
Type = Picture.  
3. Press ¸.  
A graph picture is a drawing object. You cannot trace any curve on a  
picture.  
When you press ƒ and select 1:Open, the picture is superimposed  
starting at the upper-left corner of the Graph screen. If the picture  
was saved from a portion of the Graph screen (page 217), it may  
appear shifted from the underlying graph.  
For Pictures Saved  
from a Portion of  
the Graph Screen  
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.  
Unwanted Picture variables take up calculator memory. To delete a  
variable, use the VAR-LINK screen (2 °) as described in  
Chapter 21.  
Deleting a Graph  
Picture  
To save (store) and open (recall) a graph picture, use the StoPic,  
RclPic, AndPic, XorPic, and RplcPic commands as described in  
Appendix A.  
From a Program or  
the Home Screen  
To display a series of graph pictures as an animation, use the  
CyclePic command. For an example, refer to page 219.  
218  
Chapter 12: Additional Graphing Topics  
 
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.  
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, . . . ).  
CyclePic Command  
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"  
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.  
Example  
Program Listing  
Every Other Graph from Program  
Comments start with ¦.  
Press:  
TI-89: ¥ d  
TI-92 Plus: 2 X  
:cyc()  
:Prgm  
:local i  
:¦Set mode and Window variables  
:setMode(“graph”,”3d”)  
:70! eyef  
For f, press:  
:ë 10! xmin  
TI-89: ¥ c j F  
TI-92 Plus: ¥ G F  
: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  
: StoPic #("pic" & string(i))  
:EndFor  
:¦Display animation  
:CyclePic "pic",10,.5,5,ë 1  
:EndPrgm  
For #, press TI-89: ½  
TI-92 Plus: 2½  
and select it from the list.  
For &, press:  
TI-89: ¥ p  
TI-92 Plus: 2 H  
Note: Due to its complexity,  
this program takes several  
minutes to run.  
After entering this program on the Program Editor, go to the Home  
screen and enter cyc().  
Chapter 12: Additional Graphing Topics  
219  
 
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.  
A graph database consists of:  
Elements in a Graph  
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,  
the elements for both  
graphs are saved in a single  
database.  
All functions in the Y= Editor (¥ #), including display styles and  
which functions are selected.  
Table parameters (¥ &), Window variables (¥ $), and  
graph formats (ƒ 9 — or — TI-89: ¥ Í TI-92 Plus: ¥F.)  
A graph database does not include drawn objects or stat plots.  
From the Y= Editor, Window Editor, Table screen, or Graph screen:  
Saving the Current  
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  
screen, be sure to use Type=GDB.  
3. Press ¸. After typing in an  
input box such as Variable, you  
must press ¸ twice.  
Caution: When you open a graph database, all information in the  
current database is replaced. You may want to store the current  
graph database before opening a stored database.  
Opening a Graph  
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  
screen, be sure to use Type=GDB.  
3. Press ¸.  
Unused GDB variables take up calculator memory. To delete them,  
use the VAR-LINK screen (2 °) described in Chapter 21.  
Deleting a Graph  
Database  
You can save (store) and open (recall) a graph database by using the  
StoGDB and RclGDB commands as described in Appendix A.  
From a Program or  
the Home Screen  
220  
Chapter 12: Additional Graphing Topics  
 
Tables  
Preview of Tables................................................................................... 222  
Overview of Steps in Generating a Table............................................ 223  
Setting Up the Table Parameters ......................................................... 224  
Displaying an Automatic Table ............................................................ 226  
Building a Manual (Ask) Table............................................................. 229  
13  
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  
numeric representation.  
Graph screen shows a  
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  
221  
   
Preview of Tables  
Evaluate the function y=x3ì 2x at each integer between ë 10 and 10. How many sign  
changes are there, and where do they occur?  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
3
B 1  
¸
3
B 1  
¸
1. Display the MODE dialog box.  
For the Graph mode, select  
FUNCTION.  
¥ #  
ƒ 8¸  
¸
¥ #  
ƒ 8¸  
¸
2. Display and clear the Y= Editor.  
Then define y1(x) = x3 – 2x.  
XZ 3| 2X  
¸
XZ 3| 2X  
¸
¥ &  
· 10  
¥ &  
· 10  
3. Set the table parameters to:  
tblStart = ë 10  
D 1  
D 1  
@tbl = 1  
D B 1  
D B 1¸  
D B 1  
D B 1¸  
Graph < - > Table = OFF  
Independent = AUTO  
¥ '  
¥ '  
4. Display the Table screen.  
D and C  
as necessary  
D and C  
as necessary  
5. Scroll through the table. Notice  
that y1 changes sign at x = ë 1, 1,  
and 2.  
To scroll one page at a time, use  
2 D and 2 C.  
· 2  
D.1  
¸ ¸  
· 2  
D .1  
¸ ¸  
6. Zoom in on the sign change  
between x = ë 2 and x = ë 1 by  
changing the table parameters  
to:  
tblStart = ë 2  
@tbl = .1  
222  
Chapter 13: Tables  
 
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,  
if necessary,  
Angle mode (3).  
Note: Tables are not  
available in 3D Graph mode.  
Define functions on  
Y= Editor (¥ #).  
Tip: For information on  
defining and selecting  
functions with the  
Y= Editor, refer to  
Chapter 6.  
Select () which  
defined functions to  
display in the table.  
Set up the initial  
table parameters  
(¥ &).  
Tip: You can specify:  
An automatic table  
Based on initial values.  
That matches a graph.  
A manual (ask) table.  
Display the table  
(¥ ').  
From the Table screen, you can:  
Exploring the Table  
¦
¦
¦
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  
223  
 
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.  
To display the TABLE SETUP dialog box, press ¥ &. From the  
Table screen, you can also press .  
Displaying the  
TABLE SETUP  
Dialog Box  
Setup Parameter Description  
tblStart  
If Independent = AUTO and Graph < - > Table = OFF,  
this specifies the starting value for the independent  
variable.  
Note: The table initially  
starts at tblStart, but you  
can use C to scroll to prior  
values.  
@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 / TI-92 Plus 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.  
224  
Chapter 13: Tables  
 
Which Setup  
To generate:  
tblStart @tbl  
Graph < - > Table  
Independent  
Parameters to Use  
An automatic table  
¦ Based on  
initial values  
value value  
OFF  
ON  
AUTO  
AUTO  
ASK  
¦ That matches  
Graph screen  
A manual table  
“—” 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.  
From the TABLE SETUP dialog box:  
Changing the  
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  
or  
@tbl  
Type the new value. The existing value is  
erased when you start to type.  
— or —  
Press A or B to remove the highlighting.  
Then edit the existing value.  
Tip: To cancel a menu or  
exit the dialog box without  
saving any changes, press  
N instead of ¸.  
Graph < - > Table  
or  
Independent  
Press A or B to display a menu of valid  
settings. Then either:  
¦
¦
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.  
You can set up a table’s parameters from the Home screen or a  
program. You can:  
From the Home  
Screen or a Program  
¦
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  
225  
 
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.  
Define and select the applicable functions on the Y= Editor (¥ #).  
This example uses y1(x) = xò ì x/3.  
Before You Begin  
Then enter the initial table  
parameters (¥ &).  
To display the Table screen, press ¥ ' or O 5.  
Displaying the  
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  
values of the  
independent  
variable.  
Other columns show corresponding  
values of the functions selected in  
the Y= Editor.  
Header row shows  
names of independent  
variable (x) and  
selected functions  
(y1).  
Tip: You can scroll back  
from the starting value by  
pressing C or 2 C.  
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.  
226  
Chapter 13: Tables  
 
Cell width determines the maximum number of digits and symbols  
(decimal point, minus sign, and “í ” for scientific notation) that can  
be displayed in a cell. All cells in the table have the same width.  
Changing the  
Cell Width  
To change the cell width from the  
Table screen:  
1. Press ƒ 9  
or —  
Note: By default, the cell  
width is 6.  
TI-89: ¥ Í  
TI-92 Plus: ¥ F.  
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.  
Whenever possible, a number is shown according to the currently  
selected display modes (Display Digits, Exponential Format, etc.). The  
number may be rounded as necessary. However:  
How Numbers Are  
Displayed in a Cell  
Note: If a function is  
undefined at a particular  
value, undef is displayed in  
the cell.  
¦
If a number’s magnitude is too large for the current cell width, the  
number is rounded and shown in scientific notation.  
¦
If the cell width is too narrow even for scientific notation, “...” is  
shown.  
Tip: Use 3 to set the  
display modes.  
By default, Display Digits = FLOAT 6. With this mode setting, a number  
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  
precision, highlight the cell  
and look at the entry line.  
1.2345678901  
1.2 1.2346  
1.23457  
1.23457  
ë123456.78  
.000005  
... ë 1.2E5 ë 123457.  
... 5.Eë 6 .000005  
... 1.2E19 1.2346E19  
ë 123457.  
.000005  
1.2345678E19  
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.  
A cell shows as much as possible of a complex number (according to  
the current display modes) and then shows “...” at the end of the  
displayed portion.  
If Results are  
Complex Numbers  
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  
227  
 
From a table, you can change a selected function without having to  
use the Y= Editor.  
Editing a Selected  
Function  
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  
feature to view a function  
without leaving the table.  
3. Make any changes, as necessary.  
¦
Type the new function. The old function is erased when you  
begin typing.  
— or —  
Tip: To cancel any changes  
and return the cursor to the  
table, press N instead of  
¸.  
¦
¦
Press M to clear the old function. Then type the new one.  
— or —  
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.  
After generating an automatic table, you can change its setup  
parameters as necessary.  
If You Want to  
Change the Setup  
Parameters  
Press or ¥ & to display the TABLE SETUP dialog box. Then  
make your changes as described on pages 224 and 225.  
228  
Chapter 13: Tables  
 
Building a Manual (Ask) Table  
If Independent = ASK on the TABLE SETUP dialog box, the  
TI-89 / TI-92 Plus lets you build a table manually by entering  
specific values for the independent variable.  
To display the Table screen, press ¥ ' or O 5.  
Displaying the  
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.  
You can enter a value in column 1 (independent variable) only.  
1. Move the cursor to highlight the cell you want to enter or edit.  
Entering or Editing  
an Independent  
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 (row 1, row 3).  
¦
If a cell in column 1 contains a value, you can edit that value.  
Tip: To enter a new value in  
a cell, you do not need to  
press . Simply begin  
typing.  
2. Press to move the cursor to the entry line.  
3. Type a new value or expression, or edit the existing value.  
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  
numerical order.  
Note: In this example, you  
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  
229  
 
1. Move the cursor to highlight any cell in the independent variable  
column.  
Entering a List in  
the Independent  
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  
existing values, they are  
shown as a list (which you  
can edit).  
x={1,1.5,1.75,2}  
You can also enter a list variable or an expression that evaluates  
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,  
or Clearing  
To:  
Do this:  
Insert a new row  
above a specified row  
Highlight a cell in the specified row and  
press:  
TI-89: 2ˆ  
TI-92 Plus: ˆ  
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  
(but not the selected  
Y= functions)  
Press ƒ 8. When prompted for  
confirmation, press ¸.  
Several factors affect how numbers are displayed in a table. Refer to  
“Changing the Cell Width” and “How Numbers Are Displayed in a  
Cell” on page 227.  
Cell Width and  
Display Formats  
System variable tblZnput contains a list of all independent variable  
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.  
From the Home  
Screen or a Program  
Before displaying a table, you can store a list of values directly to the  
tblZnput system variable.  
230  
Chapter 13: Tables  
 
Split Screens  
Preview of Split Screens........................................................................ 232  
Setting and Exiting the Split Screen Mode ......................................... 233  
Selecting the Active Application.......................................................... 235  
14  
On the TI-89 / TI-92 Plus, 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  
231  
   
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.  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
3
B 1  
„ B 3  
D B 2  
3
B 1  
„ B 3  
D B 2  
1. Display the MODE dialog box.  
For Graph, select FUNCTION.  
For Split Screen, select  
LEFT-RIGHT.  
D B 4 ¸  
D B 4 ¸  
For Split 1 App, select Y= Editor.  
For Split 2 App, select Graph.  
ƒ 8 ¸  
5  
¸
ƒ 8 ¸  
5  
¸
2. Clear the Y= Editor and turn off  
any stat data plots. Then define  
y1(x) = .1x3–2x+6.  
. 1 X Z 3 | 2 X . 1 X Z 3 | 2 X  
A thick border around the Y= Editor  
indicates it is active. When active, its  
entry line goes all the way across the  
display.  
« 6 ¸  
« 6 ¸  
6  
6  
3. Select the ZoomStd viewing  
window, 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  
2 a  
C ¸  
A B B 0  
5 ¸  
2 a  
edit y1(x) to change .1x3 to .5x3.  
C ¸  
A B B 0  
5 ¸  
2 a is the second function of  
O.  
The thick border is around the  
Y= Editor.  
2 a  
2 a  
5. Switch to the Graph screen,  
which regraphs the edited  
function.  
The thick border is around the Graph  
screen.  
2 a  
¥ $  
2 a  
¥ $  
6. Switch to the Y= Editor. Then  
open the Window Editor in its  
place.  
2 K  
2 K  
2 K  
2 K  
7. Open the Home screen. Then  
exit to a full-sized Home screen.  
232  
Chapter 14: Split Screens  
 
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.  
1. Press 3 to display the MODE dialog box.  
Setting the Split  
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.  
Before pressing ¸ to close the  
MODE dialog box, you can use the  
Split 1 App and Split 2 App modes to  
select the applications you want to  
use.  
Setting the Initial  
Applications  
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,  
described in Chapter 12, the  
same application can be in  
both parts of a split screen.  
If you set Split 1 App and Split 2 App to the same application, the  
TI-89 / TI-92 Plus exits the split screen mode and displays the  
application full screen.  
You can open different applications after the split screen is  
displayed, as described on page 235.  
Chapter 14: Split Screens  
233  
 
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  
the applicable section  
in Chapter 12.  
This is an advanced graphing feature as  
described in “Using the Two-Graph Mode”  
in Chapter 12.  
The TI-89 / TI-92 Plus has commands that use pixel coordinates to  
draw lines, circles, etc., on the Graph screen. The following charts  
show how the Split Screen and Split Screen Ratio mode settings affect  
the number of pixels available on the Graph screen.  
Split Screens and  
Pixel Coordinates  
TI-89:  
Tip: For a list of drawing  
commands, refer to  
“Drawing on the Graph  
Screen” in Chapter 17.  
Split 1 App  
Split 2 App  
Split  
Ratio  
x
y
x
y
FULL  
N/A  
0 – 158  
0 – 76  
N/A  
N/A  
TOP–BOTTOM  
LEFT–RIGHT  
1:1  
1:1  
0 – 154  
0 – 76  
0 – 34  
0 – 72  
0 – 154  
0 – 76  
0 – 34  
0 – 72  
Note: Due to the border  
that indicates the active  
application, split screens  
have a smaller displayable  
area than a full screen.  
TI-92 Plus:  
Split 1 App  
Split 2 App  
Split  
Ratio  
x
y
x
y
FULL  
N/A  
0 – 238 0 –102  
N/A  
N/A  
TOP–BOTTOM  
1:1  
1:2  
2:1  
0 – 234  
0 – 234  
0 – 234  
0 – 46  
0 – 26  
0 – 68  
0 – 234  
0 – 234  
0 – 234  
0 – 46  
0 – 68  
0 – 26  
LEFT–RIGHT  
1:1  
1:2  
2:1  
0 – 116  
0 – 76  
0 – 156  
0 – 98  
0 – 98  
0 – 98  
0 –116  
0 – 156  
0 – 76  
0 – 98  
0 – 98  
0 – 98  
Method 1: Press 3 to display the MODE dialog box. Then set  
Split Screen = FULL. When you press ¸ to close the  
dialog box, the full-sized screen shows the application  
specified in Split 1 App.  
Exiting the Split  
Screen Mode  
Method 2: Press 2K twice to display a full-sized Home screen.  
Turning the TI-89 / TI-92 Plus off does not exit the split screen mode.  
When You Turn Off  
the TI-89 / TI-92 Plus  
If the calculator is turned off: When you turn the calculator 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  
Downé (APDé) feature, or  
when you press ¥ ®.  
The split screen is just as you left it.  
234  
Chapter 14: Split Screens  
 
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 application is indicated by a thick border.  
The Active  
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.  
Press 2a (second function of O) to switch from one  
application to the other.  
Switching between  
Applications  
Toolbar is for Graph  
screen.  
Thick border indicates the  
Graph screen is active.  
Graph screen does not  
have an entry line.  
Method 1: 1. Use 2a to switch to the application you want to  
Opening a Different  
Application  
replace.  
2. Use O or ¥ (such as ¹ $) to select the  
Note: Also refer to “Using  
2 K to Display the  
new application.  
Home Screen” on page 236.  
If you select an application that is already displayed, the  
TI-89 / TI-92 Plus 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,  
described in Chapter 12, the  
same application can be in  
both parts of a split screen.  
If you set Split 1 App and Split 2 App to the same  
application, the TI-89 / TI-92 Plus exits the split screen  
mode and displays the application full screen.  
Chapter 14: Split Screens  
235  
 
Using 2 K to  
Display the Home  
Screen  
If the Home screen:  
Pressing 2 K:  
Is not already displayed  
Opens the Home screen in place of the  
active application.  
Is displayed, but is not  
the active application  
Switches to the Home screen and makes  
it the active application.  
Tip: Pressing 2 K twice  
always exits the split screen  
mode.  
Is the active application  
Exits the split screen mode and displays  
a full-sized Home screen.  
When you select a TOP-BOTTOM split, remember that the entry line  
and the toolbar are always associated with the active application.  
For example:  
When Using a  
Top-Bottom Split  
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.  
236  
Chapter 14: Split Screens  
 
Data/Matrix Editor  
Preview of the Data/Matrix Editor....................................................... 238  
Overview of List, Data, and Matrix Variables..................................... 239  
Starting a Data/Matrix Editor Session................................................. 241  
Entering and Viewing Cell Values........................................................ 243  
Inserting and Deleting a Row, Column, or Cell.................................. 246  
Defining a Column Header with an Expression................................. 248  
Using Shift and CumSum Functions in a Column Header................ 250  
Sorting Columns..................................................................................... 251  
Saving a Copy of a List, Data, or Matrix Variable .............................. 252  
15  
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  
237  
   
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).  
³
TI-89  
TI-92 Plus  
Keystrokes  
Steps  
Display  
Keystrokes  
1. Start the Data/Matrix Editor and  
create a new list variable named  
TEMP.  
O 63  
B 3  
D D  
O 63  
B 3  
D D  
TEMP  
¸ ¸  
TEMP  
¸ ¸  
2. Enter a column of numbers.  
Then move the cursor up one  
cell (just to see that a  
1¸  
2¸  
3¸  
4¸  
5¸  
1¸  
2¸  
3¸  
4¸  
5¸  
6¸  
C
highlighted cell’s value is shown  
on the entry line).  
LIST is shown in the upper-left corner 6¸  
to indicate a list variable.  
C
You can use D instead of ¸ to  
enter information in a cell.  
3. Move to column 2, and define its  
column header so that it is twice  
the value of column 1.  
B
B
2p C1  
¸
2p j C1  
¸
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 show its definition in the  
entry line.  
2 C  
C
2 C  
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.  
"
O 61  
¥ "  
O 61  
6. Clear the contents of the  
variable.  
ƒ 8¸  
ƒ 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.  
238  
Chapter 15: Data/Matrix Editor  
 
Overview of List, Data, and Matrix Variables  
To use the Data/Matrix Editor effectively, you must understand  
list, data, and matrix variables.  
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:  
List Variable  
Note: If you enter more than  
one column of elements in a  
list variable, it is converted  
automatically into a data  
variable.  
¦
Is shown as a single column of  
elements, each in a separate cell.  
Column title  
and header  
cells are not  
saved as  
part of the  
list.  
¦
Must be continuous; blank or  
empty cells are not allowed  
within the list.  
¦
Can have up to 999 elements.  
Tip: After creating a list in  
the Data/Matrix Editor, you  
can use the list in any  
application (such as the  
Home screen).  
On the Home screen (or anywhere else you can use a list), you can  
enter a list as a series of elements enclosed in braces { } and  
separated by commas.  
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  
element in a list, use the  
list1[1]  
Element number  
(or index number)  
format shown to the  
right.  
Name of list 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:  
Data Variable  
¦
Can have up to 99  
columns.  
¦
Can have up to 999  
elements in each  
column. Depending on  
the kind of data, all  
columns may not have  
to be the same length.  
Note: For stat calculations,  
columns must have the  
same length.  
¦
Must have continuous columns; blank or empty cells are not  
allowed within a column.  
Chapter 15: Data/Matrix Editor  
239  
 
From the Home screen  
or a program, you can  
use the NewData  
command to create a  
data variable that  
Data Variable  
(Continued)  
NewData data1,list1,list2  
Names of existing  
list variables  
Name of data variable  
to create  
consists of existing lists.  
Although you cannot  
directly display a data  
variable on the Home  
screen, you can display  
a specified column or  
element.  
Name of data variable  
Column number  
data1[1]  
(data1[1])[1]  
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.  
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:  
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  
applicable value in place of 0.  
Shows the size of the  
matrix.  
Tip: After creating a matrix  
in the Data/Matrix Editor,  
you can use the matrix in  
any application (such as the  
Home screen).  
row 1  
row 2  
From the Home screen or a  
program, you can use § to  
store a matrix with either of the  
equivalent methods shown to  
the right.  
[[1,2,3][4,5,6]]! mat1  
[1,2,3;4,5,6]! mat1  
row 1  
row 2  
Note: Use brackets to refer  
to a specific element in a  
matrix. For example, enter  
mat1[2,1] to access the 1st  
element in the 2nd row.  
Although you enter the matrix as  
shown above, it is pretty printed in  
the history area in traditional  
matrix form.  
240  
Chapter 15: Data/Matrix Editor  
 
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.  
1. Press O and then select  
Creating a New  
Data, Matrix, or List  
Variable  
6:Data/Matrix Editor.  
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 name, the  
TI-89 / TI-92 Plus will display  
the Home screen.  
Variable  
Type a new 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.  
Row dimension  
and  
Col dimension  
If Type = Matrix,  
type the number  
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  
241  
 
You can leave the Data/Matrix Editor and go to another application  
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.  
Using the Current  
Variable  
From the Data/Matrix Editor:  
Creating a New  
Variable from the  
Data/Matrix Editor  
1. Press ƒ and select 3:New.  
2. Specify the type, folder, and  
variable name. For a matrix,  
also specify the number of  
rows and columns.  
You can open another variable at any time.  
Opening Another  
Variable  
1. From the Data/Matrix Editor, press ƒ and select 1:Open.  
— or —  
From any application, press O6 and select 2:Open.  
Note: Variable shows the  
first existing variable in  
alphabetic order. If there are  
no existing variables,  
2. Select the type, folder, and  
variable to open.  
3. Press ¸.  
nothing is displayed.  
Because all Data/Matrix Editor variables are saved automatically,  
you can accumulate quite a few variables, which take up memory.  
Note about  
Deleting a Variable  
To delete a variable, use the VAR-LINK screen (2°). For  
information about VAR-LINK, refer to Chapter 21.  
242  
Chapter 15: Data/Matrix Editor  
 
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.  
A blank Data/Matrix Editor screen is shown below. When the screen  
is displayed initially, the cursor highlights the cell at row 1, column 1.  
The Data/Matrix  
Editor Screen  
Variable type  
Column headers  
Tip: Use the title cell at the  
very top of each column to  
identify the information in  
that column.  
Row numbers  
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.  
You can enter any type of expression in a cell (number, variable,  
function, string, etc.).  
Entering or Editing  
a Value in a Cell  
1. Move the cursor to highlight the cell you want to enter or edit.  
2. Press ¸ or to move the cursor to the entry line.  
3. Type a new value or edit the existing one.  
Tip: To enter a new value,  
you can start typing without  
pressing ¸ or first.  
However, you must use  
¸ or to edit an  
existing value.  
4. Press ¸ to enter the value into the highlighted cell.  
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  
the entry line, you can also  
use D or C.  
List or data  
Down to the cell in the next row.  
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  
243  
 
Scrolling through  
the Editor  
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  
Go to row 1 in the current  
column or to the last row  
that contains data for any  
column on the screen,  
¥ C or  
¥ D  
respectively. If the cursor is  
in or past that last row, ¥  
D goes to row 999.  
Go to column 1 or to the  
last column that contains  
data, respectively. If the  
cursor is in or past that last  
column, ¥ B goes to  
column 99.  
¥ A or  
¥ B  
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.  
When you enter a value in a cell, the cursor moves to the next cell.  
However, you can move the cursor to any cell and enter a value. If  
you leave gaps between cells, the TI-89 / TI-92 Plus handles the gaps  
automatically.  
How Rows and  
Columns Are Filled  
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.  
&
244  
Chapter 15: Data/Matrix Editor  
 
¦
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.  
&
The cell width affects how many characters are displayed in any cell.  
To change the cell width in the Data/Matrix Editor:  
Changing the  
Cell Width  
1. To display the FORMATS dialog box, press ƒ 9  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Tip: Remember, to see a  
number in full precision, you  
can always highlight the cell  
and look at the entry line.  
Cell width is the maximum  
number of characters that can  
be displayed in a cell.  
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.  
This procedure erases the contents of a column. It does not delete  
the column.  
Clearing a Column  
or all Columns  
To clear:  
Do this:  
Note: For a list or data  
variable, a clear column is  
empty. For a matrix, a clear  
column contains zeros.  
A column  
1. Move the cursor to any cell in the column.  
2. TI-89: 2ˆ  
TI-92 Plus: ˆ  
and select 5:Clear Column. (This 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  
245  
 
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.  
You cannot delete the rows or cells that contain column titles or  
headers. Also, you cannot insert a row or cell before a column title or  
header.  
Note About Column  
Titles and Headers  
The new row or column is inserted before the row or column that  
contains the highlighted cell. In the Data/Matrix Editor:  
Inserting a Row or  
Column  
1. Move the cursor to any cell in the applicable row or column.  
2. TI-89: 2ˆ  
TI-92 Plus: ˆ  
and select 1:Insert.  
3. Select either 2:row or  
3:column.  
Note: For a list variable,  
inserting a row is the same  
as inserting a cell.  
When you insert a row:  
¦
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  
cannot insert a column  
because a list has only one  
column.  
When you insert a column:  
¦
In a data variable,  
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.  
246  
Chapter 15: Data/Matrix Editor  
 
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 248.) In the  
Data/Matrix Editor:  
Inserting a Cell  
1. Move the cursor to the  
applicable cell.  
2. TI-89: 2ˆ  
TI-92 Plus: ˆ  
and select 1:Insert.  
3. Select 1:cell.  
Note: For a matrix variable,  
you cannot insert a cell  
because the matrix must  
retain a rectangular shape.  
The inserted cell is  
undefined. You can then  
enter a value in the cell.  
&
In the Data/Matrix Editor:  
Deleting a Row or  
Column  
1. Move the cursor to any cell in the row or column you want to  
delete.  
2. TI-89: 2ˆ  
TI-92 Plus: ˆ  
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.  
In the Data/Matrix Editor:  
Deleting a Cell  
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 248.)  
Note: For a matrix variable,  
you cannot delete a cell  
because the matrix must  
retain a rectangular shape.  
2. TI-89: 2ˆ  
TI-92 Plus: ˆ  
and select 2:Delete.  
3. Select 1:cell.  
Any cells below the deleted cell are shifted up.  
You do not need to use the Util toolbar menu to:  
If You Need to Add a  
New “Last” Row,  
Column, or Cell  
¦
¦
Add a new row or cell at the bottom of a column.  
— 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  
247  
 
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.  
In the Data/Matrix Editor:  
Entering a Header  
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  
definition, press or move  
the cursor to the header cell  
and look at the entry line.  
Note: ¸ is not required if you want to type a new definition  
or replace the existing one. However, if you want to edit the  
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 N before pressing  
¸.  
¦
¦
Press M to clear the highlighted expression. Then type the  
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  
described in Appendix A.  
Generates a series of numbers.  
c1=seq(x^2,x,1,5)  
c1={1,2,3,4,5}  
Refers to another column.  
c2=2ù c1  
c4=c1ù c2ì sin(c3)  
Note: If you refer to an  
empty column, you will get  
an error message (unless  
Auto-calculate = OFF as  
described on page 249).  
c1=seq(x,x,1,7)  
3. Press ¸, D, or C to  
save the definition and  
update the columns.  
c2=2ùc1  
Note: For a data variable,  
header definitions are saved  
when you leave the Data/  
Matrix Editor. For a list  
variable, the definitions are  
not saved (only their  
You cannot directly  
change a locked cell  
(Œ) since it is defined  
by the column header.  
resulting cell values).  
1. Move the cursor to any cell in the column and press .  
—or—  
Clearing a Header  
Definition  
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.  
248  
Chapter 15: Data/Matrix Editor  
 
Suppose you have one or more existing lists, and you want to use  
those existing lists as columns in a data variable.  
Using an Existing  
List as a Column  
From the:  
Do this:  
Data/Matrix Editor  
In the applicable column, use to define  
the column header. Refer to the existing  
list variable. For example:  
Note: If you have a  
CBL 2é/CBL™ or CBRé,  
use these techniques for  
your collected lists.  
c1=list1  
Tip: Use 2 ° to  
see existing list variables.  
Home screen or a  
program  
Use the NewData command as described in  
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.  
You cannot use the Data/Matrix Editor to fill a matrix with a list.  
However, you can use the listú mat command from the Home screen  
or a program. For information, refer to Appendix A.  
To Fill a Matrix with  
a List  
For list and data variables, the Data/Matrix Editor has an  
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:  
The Auto-calculate  
Feature  
¦
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  
Auto-calculate = OFF to:  
To turn Auto-calculate off and on from the Data/Matrix Editor:  
1. Press ƒ 9  
—or—  
Make multiple changes  
without recalculating  
each time.  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Enter a definition such  
as c1=c2+c3 before you  
enter columns 2 and 3.  
2. Change Auto-Calculate to  
OFF or ON.  
Override any errors in a  
definition until you can  
debug the error.  
3. Press ¸ to close the  
dialog box.  
If Auto-calculate = OFF and you make changes as described above, the  
header definitions are not recalculated until you set  
Auto-calculate = ON.  
Chapter 15: Data/Matrix Editor  
249  
 
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.  
The shift function copies a base column and shifts it up or down by a  
specified number of elements. Use to define a column header  
with the syntax:  
Using the Shift  
Function  
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  
it fromthe CATALOG.  
Shifted columns have the same  
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.  
The cumSum function returns a cumulative sum of the elements in a  
base column. Use to define a column header with the syntax:  
Using the CumSum  
Function  
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 the  
CATALOG, or press  
1+2  
1+2+3+4  
2 I and select it from  
the List submenu.  
250  
Chapter 15: Data/Matrix Editor  
 
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.  
In the Data/Matrix Editor:  
Sorting a Single  
Column  
1. Move the cursor to any cell in the  
column.  
2. TI-89: 2ˆ  
TI-92 Plus: ˆ  
and select 3:Sort Column.  
c1  
c1  
75  
82  
98  
chris  
fred  
jane  
sally  
Numbers are sorted in ascending  
order.  
fred  
sally  
chris  
jane  
75  
98  
82  
&
&
&
Character strings are sorted in  
alphabetical order.  
Consider a database structure in which each column along the same  
row contains related information (such as a student’s first name, last  
name, and test scores). In such a case, sorting only a single column  
would destroy the relationship between the columns.  
Sorting All Columns  
Based on a “Key”  
Column  
In the Data/Matrix Editor:  
1. Move the cursor to any  
cell in the “key” column.  
Note: For a list variable, this  
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  
available if any column is  
locked.  
2. TI-89: 2ˆ  
TI-92 Plus: ˆ  
and select 4:Sort Col, adjust all.  
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  
251  
 
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  
converted to a data variable  
if you enter more than one  
column of information.  
Data  
Data  
List  
Data column  
Matrix  
Matrix  
From the Data/Matrix Editor:  
Procedure  
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.  
Type a variable name  
for the copy.  
Note: If you type the name  
of an existing variable, its  
contents will be replaced.  
Column is dimmed unless you  
copy a data column to a list.  
The column information is not  
used for other types of copies.  
When available, select the  
column to copy from.  
4. Press ¸ (after typing in an input box such as Variable, you  
must press ¸ twice).  
A data variable can have multiple columns, but a list variable can  
have only one column. Therefore, when copying from a data variable  
to a list, you must select the column that you want to copy.  
To Copy a Data  
Column to a List  
List variable to copy to.  
Data column that will be copied to  
the list. By default, this shows the  
column that contains the cursor.  
252  
Chapter 15: Data/Matrix Editor  
 
Statistics and Data Plots  
Preview of Statistics and Data Plots.................................................... 254  
Overview of Steps in Statistical Analysis............................................ 258  
Performing a Statistical Calculation.................................................... 259  
Statistical Calculation Types ................................................................ 261  
Statistical Variables................................................................................ 263  
Defining a Statistical Plot...................................................................... 264  
Statistical Plot Types ............................................................................. 266  
Using the Y= Editor with Stat Plots..................................................... 268  
Graphing and Tracing a Defined Stat Plot .......................................... 269  
Using Frequencies and Categories ...................................................... 270  
If You Have a CBL 2/CBL or CBR......................................................... 272  
16  
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  
253  
   
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.  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
3
B 1  
¸
3
B 1  
¸
1. Display the MODE dialog box.  
For Graph mode, select  
FUNCTION.  
O 6 3  
D D  
B U I L D  
¸ ¸  
O 6 3  
D D  
B U I L D  
¸ ¸  
2. Display the Data/Matrix Editor,  
and create a new data variable  
named BUILD.  
3. Using the sample data below,  
enter the population in  
column 1.  
1 5 0 ¸  
5 0 0 ¸  
8 0 0 ¸  
2 5 0 ¸  
5 0 0 ¸  
7 5 0 ¸  
9 5 0 ¸  
1 5 0 ¸  
5 0 0 ¸  
8 0 0 ¸  
2 5 0 ¸  
5 0 0 ¸  
7 5 0 ¸  
9 5 0 ¸  
Pop. (in 1000s)  
Bldgs > 12 stories  
150  
500  
800  
250  
500  
750  
950  
4
31  
42  
9
20  
55  
73  
4. Move the cursor to row 1 in  
column 2 (r1c2). Then enter the  
corresponding number of  
buildings.  
B ¥ C  
4 ¸  
B 2 C  
4 ¸  
3 1 ¸  
4 2 ¸  
9 ¸  
2 0 ¸  
5 5 ¸  
7 3 ¸  
3 1 ¸  
4 2 ¸  
9 ¸  
2 0 ¸  
5 5 ¸  
7 3 ¸  
¥ C moves the cursor to the top of  
the page. After typing data for a cell,  
you can press ¸ or D to enter the  
data and move the cursor down one  
cell. Pressing C enters the data and  
moves the cursor up one cell.  
5. Move the cursor to row 1 in  
column 1 (r1c1). Sort the data in  
ascending order of population.  
A ¥ C  
2 ˆ 4  
A 2 C  
ˆ 4  
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 TI-89: ¥ C  
TI-92 Plus: 2 C so that you can  
see the first four rows.  
254  
Chapter 16: Statistics and Data Plots  
 
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
6. Display the Calculate dialog box.  
B 7 D  
B 7 D  
C 1 D  
C 2 D  
Set:  
C j 1 D  
j C 2 D  
B D ¸  
Calculation Type = MedMed  
x = C1  
y = C2  
B D ¸  
Store RegEQ to = y1(x)  
¸
¸
¸
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.  
B 5 D  
D
B 5 D  
D
Set:  
Calculation Type = LinReg  
D
D
x = C1  
B D ¸  
B D ¸  
y = C2  
Store RegEQ to = y2(x)  
¸
¸
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  
Mark = Box  
ƒ
ƒ
B 1 D  
B 1 D  
C j 1 D  
j C 2  
B 1 D  
B 1 D  
C 1 D  
C 2  
x = C1  
y = C2  
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  
255  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
15. Display the Y= Editor. For y1(x),  
the MedMed regression  
equation, set the display style to  
Dot.  
¥ #  
2 ˆ 2  
¥ #  
ˆ 2  
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.  
C
C
16. Scroll up to highlight Plot 1.  
The displayed shorthand definition is  
the same as on the Plot Setup screen.  
17. Use ZoomData to graph Plot 1  
and the regression equations  
y1(x) and y2(x).  
9  
9  
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 Data/Matrix Editor.  
O 6 1  
O 6 1  
19. Enter a title for column 3. Define  
column 3’s header as the values  
predicted by the MedMed line.  
B B C C  
2 ™ M E D M E D  
j ¸  
B B C C  
¸
To enter a title, the cursor must  
highlight the title cell at the very top of  
the column.  
Y 1 c j C Y 1 c C  
1 d ¸  
1 d ¸  
lets you define a header from  
anywhere in a column. When the  
cursor is on a header cell, pressing  
is not required.  
B C 2 ™  
R E S I D j  
¸
j C 2 | j C 2 |  
C 3 ¸  
B C  
R E S I D  
¸
20. Enter a title for column 4. Define  
column 4’s header as the  
residuals (difference between  
observed and predicted values)  
for MedMed.  
C 3 ¸  
B C C 2  
L I N j L I N  
¸
B C  
21. Enter a title for column 5. Define  
column 5’s header as the values  
predicted by the LinReg line.  
¸
Y 2 c j  
C 1 d ¸  
Y 2 c  
C 1 d ¸  
256  
Chapter 16: Statistics and Data Plots  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
B C 2 ™  
R E S I D j  
¸
B C  
R E S I D  
¸
22. Enter a title for column 6. Define  
column 6’s header as the  
residuals for LinReg.  
† j C 2 |  
C 2 |  
j C 5 ¸ C 5 ¸  
„ †  
„ †  
23. Display the Plot Setup screen and  
deselect Plot 1.  
D ƒ  
D
D
D ƒ  
D
D
24. Highlight Plot 2 and define it as:  
Plot Type = Scatter  
Mark = Box  
C j 1 D  
C 1 D  
x = C1  
j C 4 ¸ C 4 ¸  
y = C4 (MedMed residuals)  
¸
¸
D ƒ  
D
B 3 D  
C j 1 D  
D ƒ  
D
B 3 D  
C 1 D  
25. Highlight Plot 3 and define it as:  
Plot Type = Scatter  
Mark = Plus  
x = C1  
j C 6 ¸ C 6 ¸  
y = C6 (LinReg residuals)  
¸
¸
¥ #  
¥ #  
26. Display the Y= Editor and turn  
3  
3  
all the y(x) functions off.  
From , select 3:Functions Off, not  
1:All Off.  
Plots 2 and 3 are still selected.  
9  
9  
27. Use ZoomData to graph the  
residuals.  
marks the MedMed residuals;  
+ marks the LinReg residuals.  
"
¥ "  
28. Display the Home screen.  
2 I 1 3  
Y 1 c 3 0 0 d  
b 0 d ¸  
B
2 I 1 3  
Y 1 c 3 0 0 d  
b 0 d ¸  
B
29. Use the MedMed (y1(x)) and  
LinReg (y2(x)) regression  
equations to calculate values for  
x = 300 (300,000 population).  
A A A A A  
A A A 0 2  
¸
A A A A A  
A A A 0 2  
¸
The round function (2 I 13)  
ensures that results show an integer  
number of buildings.  
After calculating the first result, edit  
the entry line to change y1 to y2.  
Chapter 16: Statistics and Data Plots  
257  
 
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.  
Set Graph mode (3)  
Calculating and  
Plotting Stat Data  
to FUNCTION.  
Note: Refer to Chapter 15  
for details on entering data in  
the Data/Matrix Editor.  
Enter stat data in the  
Data/Matrix Editor  
(O 6).  
Perform stat  
calculations to find  
stat variables or fit  
data to a model ().  
Define and select stat  
plots (and then ƒ).  
Tip: You can also use the  
Y= Editor to define and  
select stat plots and y(x)  
functions.  
Define the viewing  
window (¥ $).  
Change the graph  
format if necessary.  
Tip: Use ZoomData to  
optimize the viewing  
window for stat plots.  
Zoom is available on the  
Y= Editor, Window Editor,  
and Graph screen.  
ƒ 9  
— or —  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
Graph the selected  
stat plots and  
functions (¥ %).  
From the Graph screen, you can:  
Exploring the  
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.  
258  
Chapter 16: Statistics and Data Plots  
 
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.  
You must have a data variable opened. The Data/Matrix Editor will  
not perform statistical calculations with a list or matrix variable.  
The Calculate  
Dialog Box  
From the Data/Matrix Editor:  
1. Press to display the  
Pathname of the  
data variable  
Calculate dialog box.  
This example shows all  
items as active. On your  
calculator, items are  
active only if they are  
valid for the current  
settings of Calculation  
Type and Use Freq and  
Categories.  
Note: If an item is not valid  
for the current settings, it will  
appear dimmed. You cannot  
move the cursor to a  
dimmed item.  
2. Specify applicable settings for the active items.  
Item Description  
Calculation Type Select the type of calculation. For descriptions,  
refer to page 261.  
Tip: To use an existing list  
variable for x, y, Freq, or  
Category, type the list name  
instead of a column number.  
x
Type the column number in the Data/Matrix  
Editor (C1, C2, etc.) used for x values, the  
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  
Categories?  
Select NO or YES. Note that Freq, Category, and  
Include Categories are active only when  
Use Freq and Categories? = YES.  
Chapter 16: Statistics and Data Plots  
259  
 
The Calculate  
Dialog Box  
(Continued)  
Item  
Description  
Freq  
Type the column number that contains a  
“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).  
Category  
Type the column number that contains a  
category value for each data point.  
Note: For an example of  
using Freq, Category, and  
Include Categories, refer to  
page 270.  
Include  
Categories  
If you specify a Category column, you can use  
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 ¸.  
The Data/Matrix Editor’s Stat toolbar menu redisplays the previous  
calculation results (until they are cleared from memory).  
TI-89: 2‰  
Redisplaying the  
STAT VARS Screen  
TI-92 Plus:  
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).  
260  
Chapter 16: Statistics and Data Plots  
 
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.  
From the Calculate dialog box (), highlight the current setting for  
the Calculation Type and press B.  
Selecting the  
Calculation Type  
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  
TwoVar  
CubicReg  
One-variable statistics — Calculates the statistical  
variables described on page 263.  
Note: For TwoVar and all  
regression calculations, the  
columns that you specify for  
x and y (and optionally, Freq  
or Category) must have the  
same length.  
Two-variable statistics — Calculates the statistical  
variables described on page 263.  
Cubic regression — Fits the data to the third-order  
polynomial y=axò +bxñ +cx+d. You must have at least  
four data points.  
¦
¦
For four points, the equation is a polynomial fit.  
For five or more points, it is a polynomial regression.  
ExpReg  
LinReg  
LnReg  
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).  
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.  
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  
261  
 
Selecting the  
Calculation Type  
(Continued)  
Calc Type Description  
MedMed Median-Median — Fits the data to the model y=ax+b  
(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=axb using a least-squares fit and transformed values  
ln(x) and ln(y).  
QuadReg  
QuartReg  
SinReg  
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.  
Quartic regression — Fits the data to the fourth-order  
4
polynomial y=ax +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.  
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.  
Use the applicable command for the calculation that you want to  
perform. The commands have the same name as the corresponding  
Calculation Type. Refer to Appendix A for information about each  
command.  
From the Home  
Screen or a Program  
Important: These commands perform a statistical calculation but  
do not automatically display the results. Use the ShowStat command  
to show the calculation results.  
262  
Chapter 16: Statistics and Data Plots  
 
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 260.  
Statistical variables are stored as system variables. However, regCoef  
and regeq are treated as a list and a function variable, respectively.  
Calculated Variables  
One  
Var  
Two  
Var  
To type the character G,  
press:  
Regressions  
mean of x values  
sum of x values  
sum of xñ values  
sample std. deviation of x  
population std. deviation of x †  
number of data points  
mean of y values  
ü
Gx  
ü
Gx  
TI-89: ¥ c ¤ [S]  
TI-92 Plus: 2 G ¤ S  
Gxñ  
Sx  
Gxñ  
Sx  
To type the character s,  
press:  
sx  
sx  
TI-89: ¥ c j [S]  
nStat  
nStat  
ÿ
TI-92 Plus: 2 G S  
sum of y values  
Gy  
Tip: To type a power (such  
as 2 in Gxñ ), ü, or ý, press  
2 ¿ and select it from  
the Math menu.  
sum of yñ values  
Gyñ  
Sy  
sample standard deviation of y  
population std. deviation of y †  
sum of xù y values  
minimum of x values  
maximum of x values  
minimum of y values  
maximum of y values  
1st quartile  
median  
3rd quartile  
regression equation  
regression coefficients (a, b, c, d, e)  
correlation coefficient ††  
coefficient of determination ††  
sy  
Gxy  
minX  
maxX  
minY  
maxY  
minX  
maxX  
q1  
medStat  
q3  
Note: 1st quartile is the  
regeq  
regCoef  
corr  
median of points between  
minX and medStat, and 3rd  
quartile is the median of points  
between medStat and maxX.  
Rñ  
summary points  
(MedMed only) †  
medx1, medy1,  
medx2, medy2,  
medx3, medy3  
Tip: If regeq is 4x + 7, then  
regCoef is {4 7}. To access  
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  
263  
 
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.  
From the Data/Matrix Editor:  
Procedure  
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  
to define.  
Pathname of the  
data variable  
Note: This dialog box is  
similar to the Calculate  
dialog box.  
3. Press ƒ to define the  
plot.  
This example shows all  
items as active. On your  
calculator, items are  
active only if they are  
valid for the current  
Note: If an item is not valid  
for the current settings, it will  
appear dimmed. You cannot  
move the cursor to a  
setting of Plot Type and  
Use Freq and Categories?  
dimmed item.  
4. Specify applicable settings for the active items.  
Item  
Description  
Plot Type  
Select the type of plot. For descriptions, refer to  
page 266.  
Mark  
x
Select the symbol used to plot the data points:  
Box ( ), Cross (x), Plus (+), Square (0), or Dot (ø ).  
Type the column number in the Data/Matrix  
Editor (C1, C2, etc.) used for x values, the  
independent variable.  
Note: Plots defined with  
column numbers always use  
the last data variable in the  
Data/Matrix Editor, even if  
that variable was not used  
to create the definition.  
y
Type the column number used for y values, the  
dependent variable. This is active only for  
Plot Type = Scatter or xyline.  
Tip: To use an existing list  
variable for x, y, Freq, or  
Category, type the list name  
instead of the column  
number.  
Hist. Bucket  
Width  
Specifies the width of each bar in a histogram.  
For more information, refer to page 267.  
Use Freq and  
Categories?  
Select NO or YES. Note that Freq, Category, and  
Include Categories are active only when  
Use Freq and Categories? = YES. (Freq is active  
only for Plot Type = Box Plot or Histogram.)  
264  
Chapter 16: Statistics and Data Plots  
 
Item  
Description  
Freq  
Type the column number that contains a “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  
using Freq, Category, and  
Include Categories, refer to  
page 270.  
Category  
Type the column number that contains a category  
value for each data point.  
Include  
Categories  
If you specify a Category, you can use this to limit  
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  
points (shown as undef) are  
ignored in a stat plot.  
The Plot Setup screen is  
redisplayed.  
The plot you just  
defined is automatically  
selected for graphing.  
Notice the shorthand  
definition for the plot.  
y = c2  
x = c1  
Plot Type = Scatter  
Mark = Box  
From Plot Setup, highlight the plot and press to toggle it on or off.  
If a stat plot is selected, it remains selected when you:  
Selecting or  
Deselecting a Plot  
¦
¦
¦
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.  
From Plot Setup:  
Copying a Plot  
Definition  
1. Highlight the plot and  
press .  
2. Press B and select the  
plot number that you  
want to copy to.  
Note: If the original plot was  
selected (Ÿ), the copy is  
also selected.  
3. Press ¸.  
From Plot Setup, highlight the plot and press . To redefine an  
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.  
Clearing a Plot  
Definition  
Chapter 16: Statistics and Data Plots  
265  
 
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.  
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.  
Scatter  
¦
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.  
This is a scatter plot in which  
data points are plotted and  
connected in the order in which  
they appear in x and y.  
xyline  
You may want to sort all the  
columns in the Data/Matrix  
Editor before plotting.  
TI-89: 2ˆ 3 or 2ˆ 4  
TI-92 Plus: ˆ 3 or ˆ 4  
This plots one-variable data with respect to the minimum and  
maximum data points (minX and maxX) in the set.  
Box Plot  
¦
A box is defined by its first  
quartile (Q1), median (Med),  
and third quartile (Q3).  
Q1  
Med  
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.  
266  
Chapter 16: Statistics and Data Plots  
 
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.  
Histogram  
xmax ì xmin  
¦
When defining the plot, you  
can specify the Hist. Bucket  
Width (default is 1) to set  
the width of each bar.  
Number of bars =  
Hist. Bucket Width  
¦
¦
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 and xmax to include  
all data points, but it does  
not adjust the y axis.  
xmin + Hist. Bucket Width  
xmin  
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  
the traced  
bar  
# of data  
points in the  
traced bar  
Chapter 16: Statistics and Data Plots  
267  
 
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.  
Press ¥ # to display the Y= Editor. Initially, the nine stat plots are  
located “off the top” of the screen, above the y(x) functions.  
However, the PLOTS indicator provides some information.  
Showing the List of  
Stat Plots  
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  
column numbers always use  
the last data variable in the  
Data/Matrix Editor, even if  
that variable was not used  
to create the definition.  
If a Plot is highlighted, this  
shows the data variable that  
will be used for the plots.  
If a Plot is defined, it shows  
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 can not use  
TI-89: 2 ˆ  
TI-92 Plus: ˆ  
to set a plot’s display style.  
However, the plot definition  
lets you select the mark  
used for the plot.  
Edit a plot  
definition  
Highlight the plot and press . You will see the  
same definition screen that is displayed in the  
Data/Matrix Editor.  
Select or deselect Highlight the plot and press .  
a plot  
Turn all plots  
and/or functions  
off  
Press and select the applicable item. You  
can also use this menu to turn all functions on.  
As necessary, you can select and graph stat plots and y(x) functions  
at the same time. The preview example at the beginning of this  
chapter graphs data points and their regression equations.  
To Graph Plots and  
Y= Functions  
268  
Chapter 16: Statistics and Data Plots  
 
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).  
Stat plots are displayed on the current graph, and they use the  
Window variables that are defined in the Window Editor.  
Defining the  
Viewing Window  
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  
on the Y= Editor, Window  
Editor, and Graph screen.  
ZoomData sets the viewing window to  
display all statistical data points.  
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.  
Press:  
ƒ 9  
— or —  
Changing the Graph  
Format  
TI-89: ¥ Í  
TI-92 Plus: ¥F  
from the Y= Editor, Window Editor,  
or Graph screen.  
Then change the settings as  
necessary.  
From the Graph screen, press to trace a plot. The movement of  
the trace cursor depends on the Plot Type.  
Tracing a Stat Plot  
Plot Type  
Description  
Note: When a stat plot is  
displayed, the Graph screen  
does not automatically pan if  
you trace off the left or right  
side of the screen. However,  
you can still press ¸ to  
center the screen on the  
trace cursor.  
Scatter or xyline  
Tracing begins at the first data point.  
Box plot  
Tracing begins at the median. Press A to trace to  
Q1 and minX. Press B to trace to Q3 and maxX.  
Histogram  
The cursor moves from the top center of each bar,  
starting from the leftmost bar.  
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  
269  
 
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.  
In a data variable, you can use any column in the Data/Matrix Editor  
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.  
Example of a  
Frequency Column  
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  
85  
97  
92  
89  
91  
95  
c2  
1
1
2
1
1
3
These  
c1  
85  
97  
92  
92  
89  
91  
95  
95  
95  
Tip: A frequency value of 0  
effectively removes the data  
point from analysis.  
weighted scores  
are equivalent to  
the single column  
of scores listed to  
the right.  
Frequency of 2  
Frequency of 3  
Note: You can also use  
frequency values from a list  
variable instead of a  
column.  
To use frequency values, specify the frequency column when you  
perform a statistical calculation or define a stat plot. For example:  
Set this to YES.  
Type the column  
number (or list  
name) that  
contains the  
frequency values.  
In a data variable, you can use any column to specify a category (or  
subset) value for the data points on each row. A category value can  
be any number.  
Example of a  
Category Column  
270  
Chapter 16: Statistics and Data Plots  
 
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 for the whole  
class. Also, you do not need  
category values for all 10th  
graders or all 11th graders  
since they are combinations  
of other categories.  
Category Value  
Used to indicate:  
1
2
3
4
10th grade girl  
10th grade boy  
11th grade girl  
11th grade boy  
Test scores  
Category values  
In the Data/Matrix Editor, you  
can enter the scores and the  
category values in two columns.  
c1  
85  
97  
92  
88  
90  
95  
79  
68  
92  
84  
82  
c2  
1
3
2
3
2
1
4
2
4
3
1
Note: You can also use  
category values from a list  
variable instead of a  
column.  
To use category values, specify the category column and the  
category values to include in the analysis when you perform a  
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  
class, leave the Category  
input box blank. Any  
10th grade girls  
10th grade boys  
10th grade girls and boys  
11th grade girls  
{1}  
{2}  
{1,2}  
{3}  
category values are ignored.  
11th grade boys  
{4}  
11th grade girls and boys  
all girls (10th and 11th)  
all boys (10th and 11th)  
{3,4}  
{1,3}  
{2,4}  
Chapter 16: Statistics and Data Plots  
271  
 
If You Have a CBL 2/CBL or CBR  
The Calculator-Based Laboratoryé System (CBL 2é/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 / TI-92 Plus  
CBL 2/CBL and CBR programs are available from the TI web  
site at: http://www.ti.com/calc/cbl and http://www.ti.com/calc/cbr  
When you collect data with the CBL 2/CBL, that data is initially  
stored in the CBL 2/CBL unit itself. You must then retrieve the data  
(transfer it to the TI-89 / TI-92 Plus) by using the Get command, which  
is described in Appendix A.  
How CBL 2/CBL  
Data Is Stored  
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  
using the CBL 2/CBL and  
retrieving data to the  
TI-89 / TI-92 Plus, refer to  
the guidebook that comes  
with the CBL 2/CBL unit.  
When you transfer the collected information to the TI-89 / TI-92 Plus,  
you can specify the list variable names that you want to use. For  
example, you can use the CBL 2/CBL to collect temperature data  
over a period of 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 2/CBL information on the TI-89 / TI-92 Plus,  
there are two ways to use the CBL 2/CBL list variables.  
When you perform a statistical calculation or define a plot, you can  
refer explicitly to the CBL 2/CBL list variables. For example:  
Referring to the  
CBL 2/CBL Lists  
Type the CBL list  
variable name instead  
of a column number.  
272  
Chapter 16: Statistics and Data Plots  
 
You can create a new data variable that consists of the necessary  
CBL 2/CBL list variables.  
Creating a Data  
Variable with the  
CBL 2/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  
column header, use . For  
more information, refer to  
Chapter 15.  
¦
From the Data/Matrix Editor, create a new, empty data variable  
with the applicable name. For each CBL 2/CBL list that you want  
to 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 2/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 2/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 2/CBL list.  
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.  
CBR  
Chapter 16: Statistics and Data Plots  
273  
 
274  
Chapter 16: Statistics and Data Plots  
Programming  
Preview of Programming....................................................................... 276  
Running an Existing Program............................................................... 278  
Starting a Program Editor Session....................................................... 280  
Overview of Entering a Program.......................................................... 282  
Overview of Entering a Function......................................................... 285  
Calling One Program from Another..................................................... 287  
Using Variables in a Program ............................................................... 288  
Using Local Variables in Functions or Programs .................................. 290  
String Operations ................................................................................... 292  
Conditional Tests ................................................................................... 294  
Using If, Lbl, and Goto to Control Program Flow.............................. 295  
Using Loops to Repeat a Group of Commands.................................. 297  
Configuring the TI-89 / TI-92 Plus........................................................ 300  
Getting Input from the User and Displaying Output ......................... 301  
Creating a Custom Menu....................................................................... 303  
Creating a Table or Graph..................................................................... 305  
Drawing on the Graph Screen .............................................................. 307  
Accessing Another TI-89 / TI-92 Plus, a CBL 2/CBL, or a CBR......... 309  
Debugging Programs and Handling Errors......................................... 310  
Example: Using Alternative Approaches ............................................ 311  
Assembly-Language Programs ............................................................. 313  
17  
This chapter describes how to use the TI-89 / TI-92 Plus’s Program  
Editor to create your own programs or functions.  
Note: For details and  
examples of any  
TI-89 / TI-92 Plus 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  
275  
   
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.  
³
TI.89  
Keystrokes  
TI.92 Plus  
Keystrokes  
Steps  
Display  
O 73  
O 73  
1. Start a new program on the  
Program Editor.  
D D  
PROGj 1  
D D  
PROG1  
2. Type PROG1 (with no spaces) as  
the name of the new program  
variable.  
¸ ¸  
¸ ¸  
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.  
Type the  
program lines  
as shown.  
Press ¸  
at the end of  
each line.  
Type the  
program lines  
as shown.  
Press ¸  
at the end of  
each line.  
4. Type the following program  
lines.  
Request "Enter an  
integer",n  
Displays a dialog box that  
prompts “Enter an integer”, waits  
for the user to enter a value, and  
stores it (as a 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.  
276  
Chapter 17: Programming  
 
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
prog1()  
"
¥ "  
5. Go to the Home screen. Enter  
the program name, followed by a  
set of parentheses.  
2 ™ PROG PROG  
j 1  
1
c d ¸  
c d ¸  
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.  
5
5
6. Type 5 in the displayed dialog  
box.  
¸ ¸  
¸ ¸  
7. Continue with the program. The  
Disp command displays the  
result on the Program I/O  
screen.  
Output from other  
programs may still be  
on the screen.  
Result of integer 5.  
The result is the sum of the integers  
from 1 through 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  
TI.89: "  
TI.92 Plus: ¥"  
to return to the Home screen.  
Chapter 17: Programming  
277  
 
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.  
On the Home screen:  
Running a Program  
1. Type the name of the program.  
Tip: Use 2 ° to list  
existing PRGM variables.  
Highlight a variable and  
press ¸ to paste its  
name to the entry line.  
2. You must always type a  
prog1()  
set of parentheses after  
the name.  
If arguments are not required  
Some programs require  
prog1(x,y)  
you to pass an argument  
If arguments are required  
Note: Arguments specify  
initial values for a program.  
Refer to page 283.  
to the program.  
3. Press ¸.  
When you run a program, the TI-89 / TI-92 Plus automatically checks  
for errors. For example, the following message is displayed if you:  
Note: The TI-89 / TI-92 Plus  
also checks for run-time  
errors that are found within  
the program itself. Refer to  
page 310.  
¦
Do not enter ( ) after the  
program name.  
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.  
When a program is running, the BUSY indicator is displayed in the  
status line.  
“Breaking” a  
Program  
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.  
278  
Chapter 17: Programming  
 
Depending on the commands in the program, the TI-89 / TI-92 Plus  
automatically displays information on the applicable screen.  
Where Is the Output  
Displayed?  
¦
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 / TI-92 Plus shows the last screen  
that was displayed.  
On the Program I/O screen, new output is displayed below any  
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.  
The Program I/O  
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  
calculations don’t work after  
you run a program, you may  
be on the Program I/O  
screen.  
When a program stops on the Program I/O screen, you need to  
recognize that it is not the Home screen (although the two screens  
are similar). The Program I/O screen is used only to display output or  
to prompt the user for input. You cannot perform calculations on this  
screen.  
From the Program I/O screen:  
Leaving the  
Program I/O Screen  
¦
Press to toggle between the Home screen and the Program I/O  
screen.  
— or —  
¦
Press N, 2K, or  
TI.89: "  
TI.92 Plus: ¥ "  
to display the Home screen.  
— or —  
¦
Display any other application screen (with O, ¥#, etc.).  
Chapter 17: Programming  
279  
 
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.  
1. Press O and then select  
Starting a New  
Program or  
Function  
7:Program Editor.  
2. Select 3:New.  
3. Specify the applicable  
information for the new  
program or function.  
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  
program. Functions have  
a similar template.  
automatically as you type.  
You do not need to save it  
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.  
280  
Chapter 17: Programming  
 
You can leave the Program Editor and go to another application at  
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.  
Resuming the  
Current Program  
To leave the current program or function and start a new one:  
Starting a New  
Program from the  
Program Editor  
1. Press ƒ and select 3:New.  
2. Specify the type, folder, and  
variable for the new program or  
function.  
3. Press ¸ twice.  
You can open a previously created program or function at any time.  
Opening a Previous  
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  
shows the first existing  
program or function in  
alphabetical order.  
2. Select the applicable type,  
folder, and variable.  
3. Press ¸.  
In some cases, you may want to copy a program or function so that  
you can edit the copy while retaining the original.  
Copying a Program  
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.  
Because all Program Editor sessions are saved automatically, you  
can accumulate quite a few previous programs and functions, which  
take up memory storage space.  
Note about  
Deleting a Program  
To delete programs and functions, use the VAR-LINK screen  
(2°). For information about VAR-LINK, refer to Chapter 21.  
Chapter 17: Programming  
281  
 
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.  
On a blank template, you can begin entering commands for your new  
program.  
Entering and Editing  
Program Lines  
Program name, which you  
specify when you create a  
new program.  
Enter your program  
commands between Prgm  
and EndPrgm.  
Note: Use the cursor pad to  
scroll through the program  
for entering or editing  
commands. Use ¥ C or  
¥ D to go to the top or  
bottom of a program,  
respectively.  
All program lines begin  
with a colon.  
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  
does not execute that  
command. It is not executed  
until you run the program.  
After typing each program line, press ¸. This inserts a new blank  
line and lets you continue entering another line. A program line can  
be longer than one line on the screen; if so, it will wrap to the next  
screen line automatically.  
To enter more than one command on the same line, separate them  
with a colon by pressing 2Ë.  
Entering Multi-  
Command Lines  
A comment symbol (¦)lets you enter a remark in a program. When  
you run the program, all characters to the right of ¦ are ignored.  
Entering Comments  
:prog1()  
:Prgm  
Description of the  
program.  
:¦ Displays sum of 1 thru n  
:Request "Enter an integer",n  
:expr(n)! n:¦ Convert to numeric expression  
:------  
Tip: Use comments to enter  
information that is useful to  
someone reading the  
program code.  
Description of  
expr.  
To enter the comment symbol, press:  
¦
TI.89: ¥ d  
TI.92 Plus: 2 X  
— or —  
¦
Press and select 9:¦  
282  
Chapter 17: Programming  
 
When you run a program, the program lines are executed in  
sequential order. However, some commands alter the program flow.  
For example:  
Controlling the Flow  
of a Program  
Tip: For information, refer to  
pages 295 and 297.  
¦
Control structures such as If...EndIf commands use a conditional  
test to decide which part of a program to execute.  
¦
Loops commands such as For...EndFor repeat a group of  
commands.  
:If x>5 Then  
: Disp "x is > 5"  
:Else  
: Disp "x is < or = 5"  
:EndIf  
For more complex programs that  
use If...EndIf and loop structures  
such as For...EndFor, you can make  
the programs easier to read and  
understand by using indentation.  
Using Indentation  
In a program, calculated results are not displayed unless you use an  
output command. This is an important difference between  
performing a calculation on the Home screen and in a program.  
Displaying  
Calculated Results  
:12ù 6  
:cos(p/4)  
:solve(x^2ì xì 2=0,x)  
These calculations will not display  
a result in a program (although they  
will on the Home screen).  
:Disp 12ù 6  
:Disp cos(p/4)  
:Disp solve(x^2ì xì 2=0,x)  
Tip: For a list of available  
output commands, refer to  
page 302.  
Output commands such as Disp will  
display a result in a program.  
:cos(p/4)! maximum  
:Disp maximum  
Displaying a calculation result does  
not store that result. If you need to  
refer to a result later, store it to a  
variable.  
To input values into a program, you can:  
Getting Values into  
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.  
:Disp 12ù 6  
:cos(p/4)! maximum  
¦
¦
Enter the values directly into  
the program itself.  
:Input "Enter a value",i  
:Request "Enter an integer",n  
Include input commands that  
prompt the users to enter the  
necessary values when they  
run the program.  
Tip: For a list of available  
input commands, refer to  
page 301.  
¦
Require the users to pass one  
or more values to the  
prog1(3,5)  
program when they run it.  
Chapter 17: Programming  
283  
 
The following program draws a circle on the Graph screen and then  
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.  
Example of Passing  
Values to a Program  
¦
When you write the program in the Program Editor:  
Note: In this example, you  
cannot use circle as the  
program name because it  
conflicts with a command  
name.  
In the ( ) beside the program  
name, specify the variables  
that will be used to store the  
passed values.  
:circ(x,y,r)  
:Prgm  
:FnOff  
:ZoomStd  
:ZoomSqr  
:Circle x,y,r  
:LineHorz y+r  
:EndPrgm  
Only circ( ) is  
initially displayed  
on the blank  
template; be sure  
to edit this line.  
Notice that the program also  
contains commands that set  
up the Graph screen.  
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  
applicable values as  
arguments within the ( ).  
circ(0,0,5)  
assumes that the user  
enters values that can be  
displayed by the viewing  
window set up by ZoomStd  
and ZoomSqr.  
Passed to r.  
Passed to y.  
Passed to x.  
The arguments, in order, are  
passed to the program.  
284  
Chapter 17: Programming  
 
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.  
Functions (as well as programs) are ideal for repetitive calculations  
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.  
Why Create a User-  
Defined Function?  
Note: You can create a  
function from the Home  
screen (see Chapter 5), but  
the Program Editor is more  
convenient for complex,  
multi-line functions.  
¦
You can create functions that expand on the TI-89 / TI-92 Plus’s  
built-in functions. You can then use the new functions the same  
as any other function.  
¦
¦
¦
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.  
This guidebook sometimes uses the word command as a generic  
reference to instructions and functions. When writing a function,  
however, you must differentiate between instructions and functions.  
Differences  
Between Functions  
and Programs  
A user-defined function:  
¦
Can use the following instructions only. Any others are invalid.  
Cycle  
Define  
Exit  
For...EndFor  
Lbl  
Return  
Goto  
Local  
While...EndWhile  
If...EndIf (all forms)  
Loop...EndLoop  
! (§ key)  
¦
¦
Can use all built-in TI-89 / TI-92 Plus functions except:  
setFold  
setTable  
setGraph  
switch  
setMode  
Tip: For information about  
local variables, refer to  
pages 288 and 290.  
Can refer to any variable; however, it can store a value to a local  
variable only.  
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  
285  
 
When you create a new function in the Program Editor, the  
TI-89 / TI-92 Plus displays a blank “template”.  
Entering a Function  
Function name, which you  
specify when you create a  
new function.  
Be sure to edit this line to  
include any necessary  
arguments. Remember to  
use argument names in  
the definition that will  
never be used when  
Enter your commands  
between Func and  
EndFunc.  
Note: Use the cursor pad to  
scroll through the function  
for entering or editing  
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.)  
There are two ways to return a value from a function:  
How to Return a  
Value from a  
Function  
:cube(x)  
:Func  
:x^3  
¦
¦
As the last line in the function  
(before EndFunc), calculate the  
value to be returned.  
:EndFunc  
:cube(x)  
:Func  
Note: This example  
calculates the cube if x0;  
otherwise, it returns a 0.  
Use Return. This is useful for  
exiting a function and returning  
a value at some point other than  
the end of the function.  
:If x<0  
: Return 0  
: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 288 and 290).  
There is an implied Return at the end of the function. If the last line is  
not an expression, an error occurs.  
x
The following function returns the xth root of a value y ( y ). Two  
values must be passed to the function: x and y.  
Example of a  
Function  
Function as defined in  
the Program Editor  
Function as called from the Home Screen  
3!x:125!y  
Note: Because x and y in  
the function are local, they  
are not affected by any  
existing x or y variable.  
:xroot(x,y)  
:Func  
4ù xroot(3,125)  
20  
:y^(1/x)  
:EndFunc  
5
286  
Chapter 17: Programming  
 
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.  
To call a separate program, use the same syntax used to run the  
program from the Home screen.  
Calling a Separate  
Program  
:subtest2(x,y)  
:Prgm  
:subtest1()  
:Prgm  
: Disp x,y  
:EndPrgm  
:For i,1,4,1  
: subtest2(i,iù 1000)  
:EndFor  
:EndPrgm  
To define an internal subroutine, use the Define command with  
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.  
Calling an Internal  
Subroutine  
An internal subroutine is called and executed in the same way as a  
separate program.  
:subtest1()  
:Prgm  
:local subtest2  
:Define subtest2(x,y)=Prgm  
: Disp x,y  
Declares the subroutine  
as a local variable.  
Tip: Use the Program  
Editor’s Var toolbar  
menu to enter the Define  
and Prgm...EndPrgm  
commands.  
Defines the subroutine.  
:EndPrgm  
:¦ Beginning of main program  
:For i,1,4,1  
: subtest2(i,iù 1000)  
:EndFor  
Calls the subroutine.  
:EndPrgm  
At the end of a subroutine, execution returns to the calling program.  
To exit a subroutine at any other time, use the Return command.  
Notes about Using  
Subroutines  
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  
287  
 
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  
(Global)  
Variables  
Variables with reserved names that are created  
automatically to store data about the state of the  
TI-89 / TI-92 Plus. 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  
folders, refer to Chapter 5.  
Folder  
Variables  
Variables that are stored in a particular folder.  
¦
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 path name. 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  
variables, a graphed  
function cannot access  
them. For example:  
Local a  
5! a  
Graph aù cos(x)  
may display an error or an  
unexpected result (if a is an  
existing variable in the  
current folder).  
Local  
Variables  
Temporary variables that exist only while a program is  
running. When the program stops, local variables are  
deleted automatically.  
¦
¦
¦
To create a local variable in a program, use the  
Local command to declare the variable.  
A local variable is treated as unique even if there is  
an existing folder variable with the same name.  
Local variables are ideal for temporarily storing  
values that you do not want to save.  
288  
Chapter 17: Programming  
 
When evaluating a user-defined function or running a program, you  
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:  
Circular Definition  
Errors  
x+1!x  
Causes a Circular definition error message if x  
or i does not have a value. The error does not  
occur if x or i has already been assigned a value.  
– or –  
For i,i,10,1  
Disp i  
EndFor  
Variable-Related  
Commands  
Command  
Description  
§ key  
Stores a value to a variable. As on the Home screen,  
pressing § enters a ! symbol.  
Archive  
BldData  
Moves specified variables from RAM to user data  
archive memory.  
Lets you create a data variable based on the graph  
information entered in the Y=Editor, Window  
Editor, etc.  
CopyVar  
Define  
Copies the contents of a variable.  
Note: The Define, DelVar,  
and Local commands are  
available from the Program  
Editor’s Var toolbar  
menu.  
Defines a program (subroutine) or function variable  
within a program.  
DelFold  
Deletes a folder. All variables in that folder must be  
deleted first.  
DelVar  
getFold  
getType  
Deletes a variable.  
Returns the name of the current folder.  
Returns a string that indicates the data type (EXPR,  
LIST, etc.) of a variable.  
Local  
Lock  
Declares one or more variables as local variables.  
Locks a variable so that it cannot be accidentally  
changed or deleted without first being unlocked.  
MoveVar  
NewData  
Moves a variable from one folder to another.  
Creates a data variable whose columns consist of a  
series of specified lists.  
NewFold  
NewPic  
Creates a new folder.  
Creates a picture variable based on a matrix.  
Renames a variable.  
Rename  
Unarchiv  
Moves specified variables from user data archive  
memory to RAM.  
Unlock  
Unlocks a locked variable.  
Chapter 17: Programming  
289  
 
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.  
The following program segment shows a For...EndFor loop (which is  
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.  
Example of a Local  
Variable  
Tip: As often as possible,  
use local variables for any  
variable that is used only  
within a program and does  
not need to be stored after  
the program stops.  
Declares variable i as local.  
:Local i  
:For i,0,5,1  
: Disp i  
:EndFor  
: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.  
An Undefined variable error message displays when you evaluate a  
user-defined function or run a user-defined program that references  
a local variable that is not initialized (assigned a value).  
What Causes an  
Undefined Variable  
Error Message?  
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  
initial value.  
While n>1:  
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.  
All local variables must be assigned an initial value before they are  
referenced.  
You Must Initialize  
Local Variables  
Define fact(n)=Func:  
1 is stored as the initial value for m.  
Local m: 1!m:  
While n>1:  
nùm!m: nì1!n:  
EndWhile:  
Return m:  
EndFunc  
The TI-89 / TI-92 Plus cannot use a local variable to perform symbolic  
calculations.  
290  
Chapter 17: Programming  
 
If you want a function or program to perform symbolic calculations,  
you must use a global variable instead of a local. However, you must  
be certain that the global variable does not already exist outside of  
the program. The following methods can help.  
To Perform  
Symbolic  
Calculations  
¦
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  
291  
 
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.  
A string is a sequence of characters enclosed in "quotes". In  
programming, strings allow the program to display information or  
prompt the user to perform some action. For example:  
How Strings Are  
Used  
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.  
292  
Chapter 17: Programming  
 
String Commands  
Command  
Description  
#
Converts a string into a variable name. This is called  
indirection.  
Note: See Appendix A for  
syntax for all TI-89 / TI-92 Plus  
commands and functions.  
&
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  
mid  
ord  
Returns a specified number of characters from the  
left side (beginning) of a string.  
Returns a specified number of characters from any  
position within a string.  
Returns the character code of the first character  
within a string. This is the opposite of the char  
command.  
right  
rotate  
shift  
Returns a specified number of characters from the  
right side (end) of a string.  
Rotates the characters in a string. The default is L1  
(rotate right one character).  
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  
293  
 
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).  
¦
¦
Type the operator directly from the keyboard.  
— or —  
Press 2I and select  
8:Test. Then select the  
operator from the menu.  
— or —  
Entering a Test  
Operator  
¦
Display the built-in functions.  
Press:  
TI.89: ½  
TI.92 Plus: 2 ½  
The test operators are listed  
near the bottom of the  
Built-in menu.  
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).  
Relational Tests  
Operator  
True if:  
Example  
>
<

=
ƒ
Greater than  
Less than  
Greater than or equal to  
Less than or equal to  
Equal  
a>8  
a<0  
a+b100  
a+6b+1  
list1=list2  
mat1ƒmat2  
Tip: From the keyboard,  
you can type:  
>= for  
<= for  
/= for  

ƒ
(To get the / character,  
press e.)  
Not equal to  
Boolean operators let you combine the results of two separate tests.  
Boolean Tests  
Operator  
True if:  
Example  
and  
or  
xor  
Both tests are true  
At least one test is true  
One test is true and the  
other is false  
a>0 and a10  
a0 or b+c>10  
a+6<b+1 xor c<d  
The not function changes the result of a test from true to false and  
vice versa. For example:  
The Not Function  
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).  
294  
Chapter 17: Programming  
 
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.  
To enter If...EndIf structures, use  
the Program Editor’s Control  
toolbar menu.  
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.  
:If | Then  
:EndIf  
When you select a structure such as  
If...Then...EndIf, a template is  
inserted at the cursor location.  
The cursor is positioned so  
that you can enter a  
conditional test.  
To execute only one command if a conditional test is true, use the  
general form:  
If Command  
Tip: Use indentation to  
make your programs easier  
to read and understand.  
Executed only if x>5;  
otherwise, skipped.  
:If x>5  
:
Disp "x is greater than 5"  
Always displays the value of x.  
:Disp x  
In this example, you must store a value to x before executing the  
If command.  
To execute multiple commands if a conditional test is true, use the  
structure:  
If...Then...EndIf  
Structures  
:If x>5 Then  
: Disp "x is greater than 5"  
: 2ù x! x  
:EndIf  
:Disp x  
Executed only if x>5.  
Note: EndIf marks the end  
of the Then block that is  
executed if the condition is  
true.  
Displays value of:  
2x if x>5.  
x if x5.  
Chapter 17: Programming  
295  
 
To execute one group of commands if a conditional test is true and a  
different group if the condition is false, use this structure:  
If...Then...Else...  
EndIf Structures  
:If x>5 Then  
: Disp "x is greater than 5"  
: 2ù x! x  
Executed only if x>5.  
:Else  
: Disp "x is less than or  
Executed only if x5.  
equal to 5"  
: 5ù x! x  
:EndIf  
Displays value of:  
2x if x>5.  
:Disp x  
5x if x5.  
A more complex form of the If command lets you test a series of  
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.  
If...Then...ElseIf...  
EndIf Structures  
Refer to Appendix A for more information and an example.  
You can also control the flow of your program by using Lbl (label)  
and Goto commands.  
Lbl 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  
label GT5.  
: Goto GT5  
:Disp x  
:--------  
For this example, the program  
must include commands (such  
as Stop) that prevent Lbl GT5  
from being executed if x5.  
:--------  
:Lbl GT5  
:Disp "The number was > 5”  
296  
Chapter 17: Programming  
 
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.  
To enter most of the loop-related  
commands, use the Program  
Editor’s Control toolbar menu.  
Control Toolbar  
Menu  
:For |  
:EndFor  
When you select a loop, the loop  
command and its corresponding  
End command are inserted at the  
cursor location.  
Note: A loop command  
marks the start of the loop.  
The corresponding End  
command marks the end of  
the loop.  
If the loop requires  
arguments, the cursor is  
positioned after the command.  
You can then begin entering the commands that will be executed in  
the loop.  
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...EndFor Loops  
For(variable, begin, end [, increment])  
added to the counter each subsequent time  
For is executed (If this optional value is  
omitted, the increment is 1.)  
Note: The ending value can  
be less than the beginning  
value, but the increment  
must be negative.  
exits the loop when variable exceeds this value  
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.  
:For i,0,5,1  
Note: The For command  
automatically increments the  
counter variable so that the  
program can exit the loop  
after a certain number of  
repetitions.  
i > 5  
i  5  
: --------  
: --------  
:EndFor  
:--------  
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  
297  
 
For example:  
Tip: You can declare the  
counter variable as local  
(pages 288 and 290) if it  
does not need to be saved  
after the program stops.  
:For i,0,5,1  
: Disp i  
:EndFor  
Displays 0, 1, 2, 3, 4, and 5.  
Displays 6. When variable  
increments to 6, the loop  
is not executed.  
:Disp i  
A While...EndWhile loop repeats a block of commands as long as a  
specified condition is true. The syntax of the While command is:  
While...EndWhile  
Loops  
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  
does not automatically  
change the condition. You  
must include commands  
that allow the program to  
exit the loop.  
:While x<5  
x 5  
x < 5  
: --------  
: --------  
:EndWhile  
:--------  
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  
: Disp x  
: x+1! x  
:EndWhile  
:Disp x  
Displays 0, 1, 2, 3, and 4.  
Increments x.  
Displays 5. When x  
increments to 5, the loop is  
not executed.  
298  
Chapter 17: Programming  
 
A Loop...EndLoop creates an infinite loop, which is repeated  
endlessly. The Loop command does not have any arguments.  
Loop...EndLoop  
Loops  
: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  
the condition.  
: If x>5  
Exit  
:
Note: The Exit command  
exits from the current loop.  
:EndLoop  
:Disp x  
Exits the loop and jumps to  
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.  
The Cycle command immediately transfers program control to the  
next iteration of a loop (before the current iteration is complete).  
This command works with For...EndFor, While...EndWhile, and  
Loop...EndLoop.  
Repeating a Loop  
Immediately  
Although the Lbl (label) and Goto commands are not strictly loop  
commands, they can be used to create an infinite loop. For example:  
Lbl and Goto  
Loops  
:Lbl START  
: --------  
: --------  
:Goto START  
:--------  
As with Loop...EndLoop, the loop should contain commands that let  
the program exit from the loop.  
Chapter 17: Programming  
299  
 
Configuring the TI-89 / TI-92 Plus  
Programs can contain commands that change the  
configuration of the TI-89 / TI-92 Plus. Because mode changes  
are particularly useful, the Program Editor’s Mode toolbar  
menu makes it easy to enter the correct syntax for the  
setMode command.  
Configuration  
Commands  
Command  
Description  
getConfg  
getFold  
Returns a list of calculator characteristics.  
Note: The parameter/mode  
strings used in the  
Returns the name of the current folder.  
Returns the current setting for a specified mode.  
Returns a list of default units.  
getMode  
getUnits  
setFold  
setMode( ), getMode( ),  
setGraph( ), and  
setTable( ) functions do not  
translate into other  
Sets the current folder.  
languages when used in a  
program. See Appendix D.  
setGraph  
Sets a specified graph format (Coordinates, Graph  
Order, etc.).  
setMode  
setTable  
Sets any mode except Current Folder.  
Sets a specified table setup parameter  
(tblStart, @tbl, etc.)  
setUnits  
switch  
Sets default units for displayed results.  
Sets the active window in a split screen, or returns  
the number of the active window.  
In the Program Editor:  
Entering the  
SetMode Command  
1. Position the cursor where you want to insert the setMode  
command.  
Note: The Mode menu does  
not let you set the Current  
Folder mode. To set this  
mode, use the setFold  
command.  
2. Press:  
TI.89: 2ˆ  
TI.92 Plus: ˆ  
to display a list of modes.  
3. Select a mode to display a menu of its valid settings.  
4. Select a setting.  
The correct syntax is inserted into  
your program.  
:setMode("Graph","FUNCTION")  
300  
Chapter 17: Programming  
 
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.  
To enter most of the commonly  
used input/output commands, use  
the Program Editor’s I/O toolbar  
menu.  
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. See  
Appendix B for a listing of key codes.  
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  
used in a calculation. To  
convert a string to a numeric  
expression, use the expr  
command.  
InputStr  
Prompts the user to enter an expression. The  
expression is always treated as a string; the user  
does not need to enclose the expression in "quotes".  
PopUp  
Prompt  
Displays a pop-up menu box and lets the user select  
an item.  
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  
301  
 
Output Commands  
Command  
Description  
ClrZO  
Clears the Program I/O screen.  
Disp  
Displays an expression or string on the Program I/O  
screen. Disp can also display the current contents of  
the Program I/O screen without displaying  
additional information.  
Note: In a program, simply  
performing a calculation  
does not display the result.  
You must use an output  
command.  
DispG  
Displays the current contents of the Graph screen.  
Displays the current contents of the Home screen.  
Displays the current contents of the Table screen.  
DispHome  
DispTbl  
Output  
Displays an expression or string starting at specified  
coordinates on the Program I/O screen.  
Format  
Pause  
Formats the way in which numeric information is  
displayed.  
Suspends program execution until the user presses  
¸. Optionally, you can display an expression  
during the pause. A pause lets users read your  
output and decide when they are ready to continue.  
Tip: After Disp and Output,  
the program immediately  
continues. You may want to  
add a Pause command.  
Text  
Displays a dialog box that contains a specified  
character string.  
Graphical User  
Interface  
Commands  
Command  
Description  
Dialog...  
EndDlog  
Defines a program block (consisting of Title,  
Request, etc., commands) that displays a dialog box.  
Toolbar...  
EndTbar  
Defines a program block (consisting of Title, Item,  
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.  
CustmOn...  
CustmOff  
Activates or removes a custom toolbar.  
Tip: When you run a  
program that sets up a  
custom toolbar, that toolbar  
is still available even after  
the program has stopped.  
Custom...  
EndCustm  
Defines a program block that displays a custom  
toolbar when the user presses 2¾. That  
toolbar remains in effect until the user presses  
again or changes applications.  
DropDown  
Item  
Displays a drop-down menu within a dialog box.  
Displays a menu item for a redefined toolbar.  
Creates an input box within a dialog box.  
Note: Request and Text  
are stand-alone commands  
that can also be used  
Request  
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.  
302  
Chapter 17: Programming  
 
Creating a Custom Menu  
The TI-89 / TI-92 Plus 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 / TI-92 Plus  
has a default custom menu that you can modify or redefine.  
When you create a custom menu, you can let the user turn it on and  
off manually, or you can let a program turn it on and off  
automatically.  
Turning the Custom  
Menu On and Off  
To:  
Do this:  
Note: When the custom  
menu is turned on, it  
replaces the normal toolbar  
menu. Unless a different  
custom menu has been  
created, the default custom  
menu is displayed.  
Turn on the  
custom menu  
From the Home screen or any other application:  
¦
Press 2 ¾.  
From the Home screen or a program:  
Execute the CustmOn command.  
From any application:  
¦
Turn off the  
custom menu  
¦
¦
Press 2 ¾ again.  
— or —  
Go to a different application.  
Using the default custom menu on the Home  
screen:  
1. Select the Tools menu:  
TI.89: 2 ‰  
TI.92 Plus: ‰  
Then select 3:CustmOff.  
CustmOff  
This pastes CustmOff in  
the entry line.  
2. Press ¸.  
You can also use CustmOff in a program.  
To create a custom menu, use the following general structure.  
Defining a Custom  
Menu  
:Custom  
: Title title of F1 menu  
Note: When the user  
:
:
:
Item item 1  
Item item 2  
ø ø ø  
selects a menu item, the  
text defined by that Item  
command is pasted to the  
current cursor location.  
: Title title of F2 menu  
ø ø ø  
: Title title of F3 menu  
ø ø ø  
:EndCustm  
:
:
Chapter 17: Programming  
303  
 
Note: The following may be  
slightly different than the  
default custom menu on  
your calculator.  
For example:  
:Custom  
: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  
"_\o\F" display as ¡C and ¡F  
in the menu. Similarly, see  
the international accented  
characters.  
:Title "Internat'l"  
:Item "\e`\":Item "\e'\":Item "\e^\":Item "\a`\"  
:Item "\u`\":Item "\u^\":Item "\o^\":Item "\c,\":Item "\u..\"  
:Title "Tools"  
:Item "ClrHome":Item "NewProb":Item "CustmOff"  
:EndCustm  
:CustmOn  
Note: This inserts all the  
commands on a single line.  
You do not need to split  
them into separate lines.  
To modify the default custom menu, use 3:Restore custom default  
(as described below) to get the commands for the default menu.  
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.  
To restore the default:  
Restoring the  
Default Custom  
Menu  
1. From the Home screen’s normal menu (not the custom menu),  
select Clean Up:  
TI.89: 2 ˆ  
TI.92 Plus: ˆ  
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.  
304  
Chapter 17: Programming  
 
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  
DispG  
FnOff  
FnOn  
Graph  
Creates a user-defined function.  
Displays the current contents of the Graph screen.  
Deselects all (or only specified) Y= functions.  
Selects all (or only specified) Y= functions.  
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  
PlotsOff  
PlotsOn  
setGraph  
Creates a new stat plot definition.  
Deselects all (or only specified) stat data plots.  
Selects all (or only specified) stat data plots.  
Changes settings for the various graph formats  
(Coordinates, Graph Order, etc.).  
Note: For more information  
about using setMode, refer  
to page 300.  
setMode  
Style  
Sets the Graph mode, as well as other modes.  
Sets the display style for a function.  
Lets a program trace a graph.  
Trace  
ZoomBox  
– to –  
ZoomTrig  
Perform all of the Zoom operations that are available  
from the toolbar menu on the Y= Editor, Window  
Editor, and Graph screen.  
Chapter 17: Programming  
305  
 
Graph Picture and  
Database  
Commands  
Command  
Description  
AndPic  
Displays the Graph screen and superimposes a  
stored graph picture by using AND logic.  
CyclePic  
NewPic  
RclGDB  
RclPic  
Animates a series of stored graph pictures.  
Note: For information about  
graph pictures and  
databases, also refer to  
Chapter 12.  
Creates a graph picture variable based on a matrix.  
Restores all settings stored in a graph database.  
Displays the Graph screen and superimposes a  
stored graph picture by using OR logic.  
RplcPic  
StoGDB  
StoPic  
Clears the Graph screen and displays a stored graph  
picture.  
Stores the current graph settings to a graph  
database variable.  
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.  
306  
Chapter 17: Programming  
 
Drawing on the Graph Screen  
To create a drawing object on the Graph screen, use the  
commands listed in this section.  
When drawing an object, you can use either of two coordinate  
systems to specify a location on the screen.  
Pixel vs. Point  
Coordinates  
¦
Pixel coordinates — Refer to the pixels that physically make up  
the screen. These are independent of the viewing window  
because the screen is always:  
TI.89: 159 (0 to 158) pixels wide and 77 (0 to 76) pixels tall.  
TI.92 Plus: 239 (0 to 238) pixels wide and 103 (0 to 102) pixels tall.  
¦
Point coordinates — Refer to the coordinates in effect for the  
current viewing window (as defined in the Window Editor).  
0,0  
TI-89: 158,0  
TI-92 Plus: 238,0  
-10,10  
10,10  
Tip: For information about  
pixel coordinates in split  
screens, refer to  
TI-89: 158,76  
TI-92 Plus: 238,102  
TI-89: 0,76  
TI-92 Plus: 0,102  
Chapter 14.  
-10,-10  
10,-10  
Pixel coordinates  
(independent of viewing window)  
Point coordinates  
(for standard viewing window)  
Note: Pixel commands start  
with Pxl, such as PxlChg.  
Many drawing commands have two forms: one for pixel coordinates  
and one for point coordinates.  
Erasing Drawn  
Objects  
Command  
Description  
ClrDraw  
Erases all drawn objects from the Graph screen.  
Drawing a Point or  
Pixel  
Command  
Description  
PtChg or  
PxlChg  
Toggles (inverts) a pixel at the specified coordinates.  
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  
PxlOff  
Turns off (erases) a pixel at the specified  
coordinates. PtOff, which uses point coordinates,  
affects the pixel closest to the specified point.  
PtOn or  
PxlOn  
Turns on (displays) a pixel at the specified  
coordinates. PtOn, which uses point coordinates,  
affects the pixel closest to the specified point.  
PtTest or  
PxlTest  
Returns true or false to indicate if the specified  
coordinate is on or off, respectively.  
PtText or  
PxlText  
Displays a character string at the specified  
coordinates.  
Chapter 17: Programming  
307  
 
Drawing Lines and  
Circles  
Command  
Description  
Circle or  
PxlCrcl  
Draws, erases, or inverts a circle with a specified  
center and radius.  
DrawSlp  
Draws a line with a specified slope through a  
specified point.  
Line or  
PxlLine  
Draws, erases, or inverts a line between two sets of  
coordinates.  
LineHorz or  
PxlHorz  
Draws, erases, or inverts a horizontal line at a  
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  
PxlVert  
Draws, erases, or inverts a vertical line at a  
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  
DrwCtour  
Shade  
Draws a specified polar expression.  
Draws contours in 3D graphing mode.  
Draws two expressions and shades the areas where  
expression1 < expression2.  
308  
Chapter 17: Programming  
 
Accessing Another TI-89/TI-92 Plus, a CBL 2/CBL, or a CBR  
If you link two TI-89 / TI-92 Plus calculators (described in  
Chapter 22), programs on both units can transmit variables  
between them. If you link a TI-89 / TI-92 Plus to a Calculator-  
Based Laboratoryé (CBL 2é/CBL™) or a Calculator-Based  
Ranger™ (CBRé), a program on the TI-89 / TI-92 Plus can  
access the CBL 2/CBL or CBR.  
Use the Program Editor’s I/O  
toolbar menu to enter the commands  
in this section.  
I/O Toolbar Menu  
1. Press and select 8:Link.  
2. Select a command.  
When two TI-89 / TI-92 Plus calculators are linked, one acts as a  
receiving unit and the other as a sending unit.  
Accessing Another  
TI.89 / TI.92 Plus  
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  
that synchronizes the  
receiving and sending units  
so that GetCalc and  
SendCalc are executed in  
the proper sequence, refer  
to “Transmitting Variables  
under Program Control” in  
Chapter 22.  
¦
After the receiving unit executes GetCalc, the  
sending unit must execute SendCalc.  
¦
After the sending unit executes SendCalc, the  
sent variable is stored on the receiving unit (in  
the variable name specified by GetCalc).  
SendCalc  
SendChat  
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.  
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).  
For additional information, refer to the manual that comes with the  
CBL 2/CBL or CBR unit.  
Accessing a  
CBL 2/CBL or CBR  
Command  
Description  
Get  
Gets a variable from an attached CBL 2/CBL or CBR  
and stores it in the TI-89 / TI-92 Plus.  
Send  
Sends a list variable from the TI-89 / TI-92 Plus to the  
CBL 2/CBL or CBR.  
Chapter 17: Programming  
309  
 
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.  
The first step in debugging your program is to run it. The  
TI-89 / TI-92 Plus automatically checks each executed command for  
syntax errors. If there is an error, a message indicates the nature of  
the error.  
Run-Time Errors  
¦
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.  
Run-time error messages can locate syntax errors but not errors in  
program logic. The following techniques may be useful.  
Debugging  
Techniques  
¦
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  
Commands  
Command  
Description  
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.  
310  
Chapter 17: Programming  
 
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.  
This example is the program given in the preview at the beginning of  
the chapter. Refer to the preview for detailed information.  
Example 1  
:prog1()  
:Prgm  
:Request "Enter an integer",n  
Prompts for input  
in a dialog box.  
Converts string entered  
with Request to an  
expression.  
:expr(n)! n  
:0! temp  
:For i,1,n,1  
: temp+i! temp  
:EndFor  
Loop calculation.  
Displays output on  
Program I/O screen.  
:Disp temp  
:EndPrgm  
This example uses InputStr for input, a While...EndWhile loop to  
calculate the result, and Text to display the result.  
Example 2  
:prog2()  
:Prgm  
:InputStr "Enter an integer",n  
Prompts for input on  
Program I/O screen.  
Converts string entered  
with InputStr to an  
expression.  
:expr(n)! n  
:0! temp:1! i  
:While in  
: temp+i! temp  
: i+1! i  
Tip: For , type ¥ µ (zero).  
For &, press:  
TI.89: ¥ p (times)  
TI.92 Plus: 2 H  
Loop calculation.  
:EndWhile  
Displays output  
in a dialog box.  
:Text "The answer is "&string(temp)  
:EndPrgm  
This example uses Prompt for input, Lbl and Goto to create a loop,  
and Disp to display the result.  
Example 3  
:prog3()  
:Prgm  
Prompts for input on  
Program I/O screen.  
:Prompt n  
:0! temp:1! i  
:Lbl top  
: temp+i! temp  
: i+1! i  
Note: Because Prompt  
returns n as a number, you  
do not need to use expr to  
convert n.  
Loop calculation.  
: If in  
:
Goto top  
Displays output on  
Program I/O screen.  
:Disp temp  
:EndPrgm  
Chapter 17: Programming  
311  
 
This example uses Dialog...EndDlog to create dialog boxes for input  
and output. It uses Loop...EndLoop to calculate the result.  
Example 4  
:prog4()  
:Prgm  
:Dialog  
: Title "Enter an integer"  
: Request "Integer",n  
:EndDlog  
Defines a dialog box  
for input.  
Converts string entered  
with Request to an  
expression.  
:expr(n)! n  
:0! temp:0! i  
:Loop  
: temp+i! temp  
: i+1! i  
: If i>n  
Loop calculation.  
:
Exit  
:EndLoop  
:Dialog  
: Title "The answer is"  
: Text string(temp)  
:EndDlog  
Defines a dialog  
box for output.  
:EndPrgm  
This example uses the TI-89 / TI-92 Plus built-in functions to calculate  
the result without using a loop.  
Example 5  
:prog5()  
:Prgm  
:Input "Enter an integer",n  
Prompts for input on  
Program I/O screen.  
Note: Because Input  
returns n as a number, you  
do not need to use expr to  
convert n.  
Calculates sum.  
:sum(seq(i,i,1,n))! temp  
:Disp temp  
:EndPrgm  
Displays output on  
Program I/O screen.  
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.  
312  
Chapter 17: Programming  
 
Assembly-Language Programs  
You can run programs written for the TI-89 / TI-92 Plus 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.  
Assembly-language programs, as well as  
keystroke programs, are available on  
the Texas Instruments web site at:  
Where to Get  
Assembly-Language  
Programs  
education.ti.com  
education.ti.com  
The programs available from this site  
provide additional functions or  
features that are not built into the  
TI-89 / TI-92 Plus. Check the Texas  
via TI-GRAPH LINK cable  
Instruments web site for up-to-date  
information.  
After downloading a program from the  
TI-89  
web to your computer, use a TI-GRAPH  
LINKé computer-to-calculator cable to  
send the program to your  
TI-89 / TI-92 Plus. Refer to the manual  
that comes with the TI-GRAPH LINK  
cable.  
If you have a TI-GRAPH LINK computer-to-calculator cable and  
software for the TI-92, be aware that the TI-92 TI-GRAPH LINK  
software is not compatible with the TI-89 / TI-92 Plus. The cable,  
however, works with both units. For information about obtaining  
TI™ Connect or TI-GRAPH LINK software or a TI-GRAPH LINK cable,  
check the Texas Instruments web site at education.ti.com or contact  
Texas Instruments as described in Appendix C of this guidebook.  
Note about  
TI.GRAPH LINK  
After a TI-89 / TI-92 Plus assembly-language program is stored on your  
unit, you can run the program from the Home screen just as you  
would any other program.  
Running an  
Assembly-Language  
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  
313  
 
On the Home screen, you can use keyboard shortcuts to run up to  
nine user-defined or assembly-language programs. However, the  
programs must have the following names.  
Shortcuts to Run a  
Program  
On Home screen, press: To run a program, if any, named:  
Note: The programs must  
be stored in the MAIN folder.  
Also, you cannot use a  
shortcut to run a program  
that requires an argument.  
¥ 1  
©
kbdprgm1()  
©
¥ 9  
kbdprgm9()  
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 use your TI-89 / TI-92 Plus to edit an assembly-language  
program. The built-in Program Editor will not open assembly-  
language programs.  
You Cannot Edit an  
Assembly-Language  
Program  
To list the assembly-language programs stored in memory:  
1. Display the VAR-LINK screen (2 °).  
2. Press View.  
Displaying a List of  
Assembly-Language  
Programs  
3. Select the applicable folder  
(or All folders) and set  
Var Type = Assembly.  
Note: Assembly-language  
programs have an ASM  
data type.  
4. Press ¸ to display the  
list of assembly-language  
programs.  
The information required to teach a novice programmer how to write  
an assembly-language program is beyond the scope of this book.  
However, if you have a working knowledge of assembly language,  
please check the Texas Instruments web site (education.ti.com)  
for specific information about how to access TI-89 / TI-92 Plus features.  
For Information  
about Writing an  
Assembly-Language  
Program  
Note: You must use a  
The TI-89 / TI-92 Plus also includes an Exec command that executes a  
string consisting of a series of Motorola 68000 op-codes. These codes  
act as another form of an assembly-language program. Check the Texas  
Instruments web site for available information.  
computer to write assembly-  
language programs. You  
cannot create assembly-  
language programs from the  
calculator keyboard.  
Warning: Exec gives you access to the full power of the  
microprocessor. Please be aware that you can easily make a mistake  
that locks up the calculator and causes you to lose your data. We  
suggest you make a backup of the calculator contents before  
attempting to use the Exec command.  
314  
Chapter 17: Programming  
 
Text Editor  
Preview of Text Operations.................................................................. 316  
Starting a Text Editor Session.............................................................. 317  
Entering and Editing Text..................................................................... 319  
Entering Special Characters.................................................................. 324  
Entering and Executing a Command Script ....................................... 328  
Creating a Lab Report............................................................................ 330  
18  
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  
315  
   
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  
³
Display  
TI.89  
Keystrokes  
TI.92 Plus  
Keystrokes  
O 83  
O 83  
1. Start a new session on the Text  
Editor.  
2. Create a text variable called  
TEST, which will automatically  
store any text you enter in the  
new session.  
D
D
TEST  
¸ ¸  
TEST  
¸ ¸  
Use the MAIN folder, shown as the  
default on the NEW dialog box.  
After typing in an input box such as  
Variable, you must press ¸ twice.  
3. Type some sample text.  
2 ™  
type  
anything  
you  
type  
anything  
you  
To type a single uppercase letter,  
press ¤ and then the letter.  
TI-89 only:  
want  
To type a space, press j   
want  
(alpha 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.  
Practice editing your text by using:  
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.  
O 81  
O 81  
5. Return to the current session on  
the Text Editor.  
6. Notice that the displayed session  
is exactly the same as you left it.  
316  
Chapter 18: Text Editor  
 
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.  
1. Press O and then select  
Starting a New  
Session  
8:Text Editor.  
2. Select 3:New.  
The NEW dialog box is  
displayed.  
3. Specify a folder and text  
variable that you want to  
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  
session manually before  
leaving the Text Editor,  
A colon marks the  
beginning of a  
paragraph.  
starting a new session, or  
opening a previous one.  
The blinking cursor  
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  
317  
 
You can leave the Text Editor and go to another application at any  
time. To return to the session that was displayed when you left the  
Text Editor, press O 8 and select 1:Current.  
Resuming the  
Current Session  
To leave the current Text Editor  
session and start a new one:  
Starting a New  
Session from the  
Text Editor  
1. Press ƒ and select 3:New.  
2. Specify a folder and text  
variable for the new session.  
3. Press ¸ twice.  
You can open a previous Text Editor session at any time.  
Opening a Previous  
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  
shows the first existing text  
variable in alphabetic order.  
2. Select the applicable folder  
and text variable.  
3. Press ¸.  
In some cases, you may want to copy a session so that you can edit  
the copy while retaining the original.  
Copying a Session  
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.  
Because all Text Editor sessions are saved automatically, you can  
accumulate quite a few previous sessions, which take up memory  
storage space.  
Note about  
Deleting a Session  
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.  
318  
Chapter 18: Text Editor  
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.  
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.  
Typing Text  
All text paragraphs  
begin with a space  
and a colon.  
Note: Use the cursor pad to  
scroll through a session or  
position the text cursor.  
The beginning  
Tip: Press 2 C or 2 D  
to scroll up or down one  
screen at a time, and ¥ C  
or ¥ D to go to the top or  
bottom of the text session.  
space is used in  
command scripts  
and lab reports.  
Blinking text cursor  
Tip: If you have a  
You do not need to press ¸ at the end of each line. At the end of  
a line, the next character you type wraps to the next line. Press  
¸ only when you want to start a new paragraph.  
TI-GRAPH LINK™ cable,  
you can use a computer  
keyboard to type lengthy  
text and then send it to the  
calculator. Refer to  
As you reach the bottom of the screen, previous lines scroll off the  
top of the screen.  
page 322.  
Typing Alphabetic  
Characters  
To:  
On the TI.89, press:  
j and then the letter key the letter key  
(status line shows  
On the TI.92 Plus, press:  
Type a single  
lowercase  
alpha  
)
character.  
Note: On the TI-89, you do  
not need j or alpha-lock  
to type x, y, z, or t. But you  
must use ¤ or uppercase  
ALPHA-lock for X, Y, Z, or T.  
Type a single  
uppercase  
alpha  
¤ and then the letter key ¤ and then the letter key  
(status line shows  
)
+
(status line shows  
)
+
character.  
Type a space.  
j  (alpha function  
spacebar  
of the · key)  
Turn on  
2 ™  
(no action needed)  
lowercase  
alpha-lock.  
(status line shows  
)
)
Note: On the TI-89, alpha-  
lock is always turned off  
when you change  
Turn on  
uppercase  
ALPHA-lock.  
¤ ™  
(status line shows  
2 ¢  
applications, such as going  
from the Text Editor to the  
Home screen.  
Turn off alpha- j (turns off upper-  
lock. and lowercase lock)  
2 ¢ (turns off  
uppercase lock)  
Chapter 18: Text Editor  
319  
 
On the TI-89, while either type of alpha-lock is on:  
Typing Alphabetic  
Characters  
(continued)  
¦
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.  
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  
through the end of the paragraph  
M
characters to the right of the  
cursor, M erases the  
entire paragraph.  
All characters in the paragraph (regardless MM  
of the cursor’s position in that paragraph)  
Highlighting Text  
To:  
Do this:  
Highlight text  
1. Move the cursor to the beginning or end of  
the text.  
2. Hold ¤ and press:  
¦
A or B to highlight characters to the left  
or right of the cursor, respectively.  
Tip: To remove highlighting  
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.  
Replacing or  
Deleting Highlighted  
Text  
To:  
Do this:  
Replace  
highlighted text  
Type the new text.  
Delete  
Press 0.  
highlighted text  
320  
Chapter 18: Text Editor  
 
Cutting and copying both place highlighted text into the clipboard of  
the TI-89 / TI-92 Plus. Cutting deletes the text from its current location  
(used to move text) and copying leaves the text.  
Cutting, Copying,  
and Pasting Text  
1. Highlight the text you want to move or copy.  
2. Press ƒ.  
Tip: You can press:  
TI.89:  
¥ 5, ¥ 6, ¥ 7  
3. Select the applicable menu item.  
TI.92 Plus:  
¦
¦
To move the text, select 4:Cut.  
— or —  
To copy the text, select 5:Copy.  
¥ X , ¥ C , ¥ V  
to cut, copy, and paste  
without having to use the ƒ  
toolbar menu.  
4. Move the text cursor to the location where you want to insert the  
text.  
5. Press ƒ and then select 6:Paste.  
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.  
From the Text Editor:  
Finding Text  
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  
retains the last search text  
you entered. You can type  
over it or edit it.  
2. Press .  
3. Type the search text.  
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.  
Chapter 18: Text Editor  
321  
 
By default, the TI-89 / TI-92 Plus is in insert mode. To toggle between  
insert and overtype mode, press 2/.  
Inserting or  
Overtyping a  
Character  
If the TI.89 / TI.92 Plus is in:  
The next character you type:  
Will be inserted at the cursor.  
Tip: Look at the shape of  
the cursor to see if you’re in  
insert or overtype mode.  
Thin cursor between  
characters  
Will replace the highlighted  
character.  
Cursor highlights  
a character  
To erase all existing paragraphs and display an empty text screen,  
press ƒ and then select 8:Clear Editor.  
Clearing the Text  
Editor  
If you have an optional TI-GRAPH LINK™ computer-to-calculator  
cable and software for the TI-89 / TI-92 Plus, you can use the  
computer keyboard to type a text file and then send that file to the  
TI-89 / TI-92 Plus. This is useful if you need to create a lengthy text  
file.  
Using a Computer  
and TI-GRAPH LINK  
to Enter Text  
For information about obtaining a TI-GRAPH LINK cable and software  
or upgrading your existing TI™ Connect or TI-GRAPH LINK software  
for use with the TI-89 / TI-92 Plus, check the TI web site at:  
education.ti.com  
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  
either TI-89 Data File or TI-92 Plus Data File and click OK. An  
untitled edit window is displayed.  
Note: On the calculator, the  
name of the text variable will  
be the name you enter in  
Step 1b, not the file name in  
Step 1c.  
b. In the Name box at the top of the edit window, type the name  
you want to use for the text variable on the TI-89 / TI-92 Plus.  
Then type the applicable text.  
c. From the File menu, select Save As. In the dialog box, type a  
File Name, select Text as the File Type, select a directory, and  
click OK.  
322  
Chapter 18: Text Editor  
 
2. Use the TI-GRAPH LINKé software to send the file from the  
computer to the TI-89 / TI-92 Plus.  
a. Use the TI-GRAPH LINK cable to connect the computer and  
the calculator.  
b. Be sure the TI-89 / TI-92 Plus 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 / TI-92 Plus, use the Text Editor to open the text  
variable.  
Chapter 18: Text Editor  
323  
 
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.  
1. Press 2¿.  
Selecting  
Characters from the  
CHAR Menu  
2. Select the applicable category.  
A menu lists the characters in  
that category.  
3. Select a character. You may  
need to scroll through the  
menu.  
ï indicates that  
you can scroll.  
For accented characters, select  
International. Commonly used  
international characters are also  
available from the default custom  
menu (2 ¾).  
The keyboard map shows several shortcuts that let you enter certain  
special characters from the keyboard. It also shows some shortcuts  
for other calculator features.  
Displaying the  
Keyboard Map  
The keyboard map does not display all available shortcuts. Refer to  
the inside front and the inside back covers of this guidebook for a  
complete list of shortcut keys.  
On the TI.89:  
On the TI.92 Plus:  
Press ¥ ^ to display the  
Press ¥ ” to display the  
keyboard map.  
keyboard map.  
Press N to exit the map.  
Press N to exit the map.  
TI.92 Plus Keyboard map  
TI.89 Keyboard map  
To access the TI-89 shortcuts, To access the TI-92 Plus shortcuts,  
first press the ¥ key.  
first press the 2 key. Some  
special characters are marked on  
the keyboard, but most are not.  
Calculator features accessed from the keyboard map are discussed  
on the next page.  
324  
Chapter 18: Text Editor  
 
TI.89 keyboard map feature  
TI.92 Plus keyboard map feature  
shortcuts:  
shortcuts:  
GREEK (¥ c) — Accesses the  
Greek character set (described  
later in this section).  
GREEK (2 G) — Accesses the  
Greek character set (described  
later in this section).  
SYSDATA (¥ b) — Copies the  
CAPS (2 ¢)— Turns Caps  
current graph coordinates to the Lock on and off.  
system variable sysdata.  
Accent marks — (é, ü, ô, à, ç, and ~)  
FMT (¥ Í) — Displays the  
FORMATS dialog box.  
are added to the next letter you  
press (described later in this  
section).  
KBDPRGM1 – 9 (¥1 through  
¥9) — If you have user-defined  
or assembly-language programs  
named kbdprgm1() through  
kbdprgm9(), these shortcuts run  
the corresponding program.  
OFF (¥ ®) — Similar to  
2 ® except:  
¦
You can use ¥ ® if an error  
message is displayed.  
¦
When you turn the TI-89 on  
again, it will be exactly as  
you left it.  
HOMEDATA (¥ ·) — Copies  
the current graph coordinates to  
the Home screen’s history area.  
Typing Special  
Symbols from the  
Keyboard  
On the TI.89:  
On the TI.92 Plus:  
Press ¥ and then the key for the Press 2 and then the key for  
symbol.  
the symbol.  
For example: ¥ p (times)  
For example: 2 H displays &.  
displays &.  
Note: To help you find the  
applicable keys, these maps  
show only the special  
symbols.  
These special symbols are not  
affected by whether Caps Lock is  
on or off.  
These special symbols are not  
affected by whether Alpha-Lock  
is on or off.  
Chapter 18: Text Editor  
325  
 
Pressing an accent mark key does  
not display an accented letter. The  
accent mark will be added to the  
next letter you press.  
Typing Accent  
Marks from the  
TI.92 Plus Keyboard  
1. Press 2 and then the key  
Note: To help you find the  
applicable keys, this map shows  
only the accent mark keys.  
for the accent mark.  
2. Press the key for the letter you want to accent.  
¦
¦
You can accent lowercase and uppercase letters.  
An accent mark can be added to only those letters that are  
valid for that mark.  
Accent  
Mark  
Valid Letters  
(lowercase or uppercase)  
Examples  
é, É  
A, E, I, O, U, Y  
A, E, I, O, U, y (but not Y)  
A, E, I, O, U  
A, E, I, O, U  
C
´
¨
ˆ
ü, Ü  
ô, Ô  
à, À  
ç, Ç  
`
ç
A, O, N  
ñ, Ñ  
~
Press the key combination that accesses the Greek character set on  
your calculator. Then select the applicable alpha character on the  
keyboard to enter a Greek letter.  
Typing Greek  
Letters from the  
Keyboard  
On the TI.89:  
On the TI.92 Plus:  
Press ¥ c to access the Greek Press 2 G to access the Greek  
character set.  
character set.  
Π
Note: Neither calculator  
displays a map of Greek  
letters. The maps shown  
here are for reference only.  
ξ
X
ψ
Y
ζ
Z
τ
T
Π
ω
ε
ρ
τ
ψ
π
W
T
U
P
Q
E
R
Y
I
O
β
B
α
A
ε
E
δ
Σ
Γ
C
H
D
I
α
σ
δ
φ
γ
λ
Γ
A
S
D
F
G
H
J
K
L
γ
φ
F
G
J
O
U
ζ
ξ
β
µ
Z
X
C
V
B
N
M
q
µ
M
λ
L
K
N
Σ
Π
ρ
R
σ
π
P
V
Q
S
ω
W
If you press a key combination that does not access a Greek letter,  
you get the normal letter for that key.  
326  
Chapter 18: Text Editor  
 
Several keys let you access lowercase and uppercase Greek letters.  
For example:  
On the TI.89:  
On the TI.92 Plus:  
1. Press ¥ c to access the  
1. Press 2 G to access the  
Greek character set.  
Greek character set.  
2. Press ¥ c j + letter to  
access lowercase Greek  
letters. Example:  
2. Press 2 G + letter to access  
lowercase Greek letters.  
Example:  
¥ c j [W] displays ω  
2 G W displays ω  
3. Press ¥ c ¤ + letter to  
access uppercase Greek  
letters. Example:  
3. Press 2 G ¤ + letter to  
access uppercase Greek  
letters. Example:  
¥ c ¤ [W] displays Ω  
2 G ¤ W displays Ω  
The exact keys that you press on the TI-89 depend on whether alpha-  
lock is on or off. For example:  
On the TI.89, if:  
Then:  
Alpha-lock is off.  
¥ c X or ¥ c j X displays ξ.  
j is not required  
for X, Y, Z, or T.  
¥ c j W displays ω.  
¥ c ¤ W displays .  
¤ is used for  
uppercase letters.  
Important: If you press  
j on the TI-89 to access  
a Greek letter while alpha-  
lock is on, it turns alpha-lock  
off.  
Lowercase alpha-lock  
(2 ™) is on.  
¥ c X displays ξ.  
¥ c W displays ω.  
¥ c ¤ W displays .  
Uppercase ALPHA-LOCK  
(¤ ™) is on.  
¥ c X displays ξ.  
¥ c W displays .  
¥ c ¤ W displays .  
For a list of all special characters, refer to Appendix B.  
For a List of All  
Special Characters  
Chapter 18: Text Editor  
327  
 
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.  
In the Text Editor:  
Inserting a  
Command Mark  
1. Place the cursor on the line for the command.  
2. Press to display the  
Note: This does not insert a  
new line for the command, it  
simply marks an existing  
line as a command line.  
Command toolbar menu.  
3. Select 1:Command.  
C” is displayed at the beginning  
of the text line (to the left of the  
colon).  
4. Type a command just  
as you would on the  
Home screen.  
Tip: You can mark a line as  
a command either before or  
after typing the command on  
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.  
This deletes only the “C” mark; it does not delete the command text  
itself.  
Deleting a  
Command Mark  
1. Place the cursor anywhere on the marked line.  
2. Press and select 4:Clear command.  
To execute a command, you must first mark the line with a “C”. If  
you execute a line that is not marked with “C”, it will be ignored.  
Executing a  
Command  
1. Place the cursor anywhere on the command line.  
2. Press .  
Tip: To examine the result  
on the Home screen, use a  
split screen or press:  
TI.89: "  
The command is copied to the entry line on the Home screen and  
executed. The Home screen is displayed temporarily during  
execution, and then the Text Editor is redisplayed.  
TI.92 Plus: ¥ "  
After execution, the cursor moves to the next line in the script so  
that you can continue to execute a series of commands.  
328  
Chapter 18: Text Editor  
 
With a split screen, you can view your command script and see the  
result of an executed command at the same time.  
Splitting the  
Text Editor/  
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  
2a (second function of O).  
From the Home screen, you can save all the entries in the history  
area to a text variable. The entries are automatically saved in a script  
format so that you can open the text variable in the Text Editor and  
execute the entries as commands.  
Creating a Script  
from Your Home  
Screen Entries  
For information, refer to “Saving the Home Screen Entries as a Text  
Editor Script” in Chapter 5.  
1. Type your script. Press „  
and select 1:Command to  
mark the command lines.  
Example  
2. Press and select  
1:Script view.  
3. Move the cursor to the first  
command line. Then press  
to execute the command.  
Note: Some commands  
take longer to execute. Wait  
until the Busy indicator  
disappears before pressing  
again.  
4. Continue using to execute  
each command, but stop just  
before executing the  
Graph command.  
5. Execute the Graph  
Note: In this example, the  
Graph command displays  
the Graph screen in place of  
the Home screen.  
command.  
6. Press and select  
2:Clear split to return to a full  
screen Text Editor.  
Chapter 18: Text Editor  
329  
 
Creating a Lab Report  
If you have a TI-GRAPH LINKé cable, an optional accessory  
that lets the TI-89 / TI-92 Plus 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 software to print the report on the printer  
attached to the computer.  
In the Text Editor, you can specify a variable name as a print object.  
When you print the report by using TI-GRAPH LINK, the  
TI-89 / TI-92 Plus substitutes the contents of the variable (an  
expression, picture, list, etc.) in place of the variable name.  
Print Objects  
In the Text Editor:  
Inserting a Print  
Object Mark  
1. Place the cursor on the line for the print object.  
2. Press to display the  
Command toolbar menu.  
3. Select 3:PrintObj.  
Note: This does not insert a  
new line for the print object,  
it simply marks an existing  
line as a print object.  
P” is displayed at the beginning of the  
text line (to the left of the colon).  
Tip: You can mark a line as  
a print object either before  
or after typing a variable  
name on that line.  
4. Type the name of the variable that contains the print object.  
The line can contain  
only the variable  
name, with no  
additional text.  
When you print a lab report, page breaks occur automatically at the  
bottom of each printed page. However, you can manually force a  
page break at any line.  
Inserting a Page  
Break Mark  
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).  
This deletes only the “P” or “Î ” mark; it does not delete any text that  
is on the line.  
Deleting a Print  
Object or Page  
Break Mark  
1. Place the cursor anywhere on the marked line.  
2. Press and select 4:Clear command.  
330  
Chapter 18: Text Editor  
 
Printing the Report  
General Steps  
For Detailed Information  
1. Connect the  
Refer to the manual that came  
TI-89 / TI-92 Plus to your  
computer via the TI-GRAPH  
LINK cable.  
with your TI-GRAPH LINK.  
2. Use the TI-GRAPH LINK  
software to get the lab  
report from the calculator,  
and then print the report.  
Assume you have stored:  
Example  
¦
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.  
.3*x^2ì.5  
Note: To store the  
derivative to variable der,  
enter: d(y1(x),x)! der  
3. Look for critical points.  
x=1.29099 or x=ì 1.29099  
Note: To store the  
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.  
Chapter 18: Text Editor  
331  
 
332  
Chapter 18: Text Editor  
Numeric Solver  
Preview of the Numeric Solver ............................................................ 334  
Displaying the Solver and Entering an Equation ............................... 335  
Defining the Known Variables.............................................................. 337  
Solving for the Unknown Variable....................................................... 339  
Graphing the Solution............................................................................ 340  
19  
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  
Home screen or a program,  
use nSolve() as described  
in Appendix A.  
After entering an equation  
and its known values,  
place the cursor on the  
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  
333  
   
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.  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
O 9  
O 9  
1. Display the Numeric Solver.  
2. Enter the equation.  
j A Á c  
A Á c  
j M 2 |  
j M 1 d e c M 1 d e c  
j M 2 «  
M 2 |  
When you press ¸ or D, the  
screen lists the variables used in the  
equation.  
M 2 «  
j M 1 d p  
j G ¸  
M 1 d p  
G ¸  
3. Enter values for each variable,  
except the unknown variable  
m1.  
D 1 0 D D  
9 . 8 C C C  
j G e 3  
D 1 0 D D  
9 . 8 C C C  
G e 3  
Define m2 and g first. Then define a.  
(You must define g before you can  
define a in terms of g.) Accept the  
default for bound. If a variable has  
been defined previously, its value is  
shown as a default.  
4. Move the cursor to the unknown  
D D  
D D  
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  
3  
3  
ZoomStd 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 exit the split screen.  
The variable marked by the  
cursor (unknown variable  
m1) is on the x axis, and  
leftìrt is on the y axis.  
2 a  
2  
2 a  
2  
You can press ¸ or D to  
redisplay the list of variables.  
334  
Chapter 19: Numeric Solver  
 
Displaying the Solver and Entering an Equation  
After you display the Numeric Solver, start by entering the  
equation that you want to solve.  
To display the Numeric Solver, press  
O 9.  
Displaying the  
Numeric Solver  
The Numeric Solver screen shows the  
last entered equation, if any.  
On the eqn: line, type in your  
equation.  
Entering an  
Equation  
You can:  
For example:  
Tips: In your equation:  
Type an equation  
directly.  
a=(m2ì m1)/(m2+m1)ù g  
a+b=c+sin(d)  
Do not use system  
function names (such as  
y1(x) or r1(q)) as simple  
variables (y1 or r1).  
Refer to a function or Suppose you defined y1(x) on either the:  
equation defined  
elsewhere.  
¦
¦
Y= Editor: y1(x)=1.25xù cos(x)  
– or –  
Home screen: Define y1(x)=1.25xù cos(x)  
Be careful with implied  
multiplication. For  
example, a(m2+m1) is  
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  
variables, you can either  
define exp or solve for it.  
Type an expression  
without an = sign.  
e+fì ln(g)  
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 ¸  
the current equation is  
stored automatically to the  
system variable eqn.  
Recall a previously  
entered equation or  
open a saved  
Refer to the applicable heading later in this  
section.  
equation.  
Chapter 19: Numeric Solver  
335  
 
Your most recently entered equations (up to 11 with the default  
setting) are retained in memory. To recall one of these equations:  
Recalling Previously  
Entered Equations  
1. From the Numeric Solver  
screen, press .  
A dialog box displays the most  
recently entered equation.  
Tip: You can specify how  
many equations are retained.  
From the Numeric Solver,  
press ƒ and select 9:Format  
(or use TI-89: ¥ Í  
2. Select an equation.  
¦
To select the displayed  
equation, press ¸.  
TI-92 Plus: ¥ F). Then select  
a number from 1 through 11.  
¦
To select a different  
equation, press B to display  
a list. Then select the one  
you want.  
Only unique equations are  
listed. If you re-enter the  
same equation 5 times, it  
appears only once.  
3. Press ¸.  
Because the number of equations that you can recall with Eqns is  
limited, a particular equation may not be retained indefinitely.  
Saving Equations  
for Future Use  
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  
has an EXPR data type, as  
shown on the MEMORY and  
VAR-LINK screens.  
2. Specify a folder and a variable  
name for the equation.  
3. Press ¸ twice.  
To open a previously saved equation  
variable:  
Opening a Saved  
Equation  
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.  
336  
Chapter 19: Numeric Solver  
 
Defining the Known Variables  
After you type an equation in the Numeric Solver, enter the  
applicable values for all variables except the unknown  
variable.  
After typing your equation on  
the eqn: line, press ¸ or D.  
Defining the List of  
Variables  
The screen lists the variables in  
the order they appear in the  
equation. If a variable is already  
defined, its value is shown. You  
can edit these variable values.  
Note: If an existing variable  
is locked or archived, you  
cannot edit its value.  
The solution must be within  
the specified bounds, which  
you can edit.  
Enter a number or expression for all variables except the one you  
want to solve for.  
¦
If you define a variable:  
Notes and  
Common Errors  
In terms of another  
variable in the equation,  
that variable must be  
defined first.  
Since a is defined in terms  
of g, you must define g  
before a. When you move  
the cursor to another line,  
g/3 is evaluated.  
In terms of another  
variable that is not in the  
equation, that variable  
must already have a  
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  
value to a variable in the  
Numeric Solver, that  
variable is defined globally.  
It still exists after you leave  
the solver.  
¦
¦
If the equation contains a  
variable already defined in  
terms of other variables,  
those other variables are  
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  
337  
 
Note: You cannot solve for  
a system variable other than  
exp. Also, if the equation  
contains a system variable,  
you cannot use to graph.  
¦
If the equation contains a  
system variable (xmin, xmax,  
etc.), that variable is not  
listed. The solver uses the  
system variable’s existing  
value.  
In the standard viewing window,  
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  
you use a reserved name  
incorrectly or refer to an  
undefined system function  
as a simple variable without  
parentheses.  
If you see the error shown  
to the right, delete the  
entered variable value. Then  
edit the equation to use a  
different variable.  
For example, y1(x) is undefined  
and you use y1.  
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.  
Editing the Equation  
To find a solution more quickly or to find a particular solution  
(if multiple solutions exist), you can optionally:  
Specifying an Initial  
Guess and/or  
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  
pages 340 and 341.  
¦
Enter lower and upper  
bounds close to the  
solution.  
Initial guess must be  
within the bounds.  
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.  
338  
Chapter 19: Numeric Solver  
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.  
With all known variables  
defined:  
Finding the Solution  
1. Move the cursor to the  
unknown variable.  
Put the cursor on the variable  
Note: To stop (break) a  
calculation, press ´. The  
unknown variable shows the  
value being tested when the  
break occurred.  
2. Press Solve.  
you want to solve for.  
A é marks the solution and  
leftì rt. The é disappears  
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  
values  
Edit the equation or variable values.  
Want to find a different  
solution for an equation  
with multiple solutions  
Enter an initial guess and/or a new set of  
bounds close to the other solution.  
Note: An iterative process is  
used to solve an equation. If  
the iterative process cannot  
converge on a solution, this  
error occurs.  
See the message:  
Press N. The unknown variable shows  
the value being tested when the error  
occurred.  
¦
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  
339  
 
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.  
In the Numeric Solver, leave the  
cursor on the unknown variable.  
Press and select:  
Displaying the  
Graph  
1:Graph View  
– or –  
Graph View uses the current  
Window variable values.  
3:ZoomStd  
– or –  
4:ZoomFit  
For information about ZoomStd  
and ZoomFit, refer to Chapter 6.  
Tips: With split screens:  
The graph is shown in a split  
screen, where:  
Use 2 a to switch  
between sides.  
¦
The unknown variable is  
plotted on the x axis.  
The active side has a  
thick border.  
The toolbar belongs to  
the active side.  
¦
leftì rt is plotted on the y axis.  
Solutions for the equation exist  
at leftNrt=0, where the graph  
crosses the x axis.  
For more information, refer  
to Chapter 14.  
The current graph format  
settings are used.  
You can explore the graph by using the free-moving cursor, tracing,  
zooming, etc., as described in Chapter 6.  
When you use the Numeric Solver to display a graph:  
How the Graph  
Affects Various  
Settings  
¦
The following modes are changed automatically to these settings:  
Mode  
Setting  
Any functions selected  
in the Y= Editor will not  
be graphed.  
Note: If you were previously  
using different mode  
settings, you will need to  
reselect those settings  
manually.  
Graph  
FUNCTION  
LEFT-RIGHT  
1
Split Screen  
Number of Graphs  
¦
¦
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.  
340  
Chapter 19: Numeric Solver  
 
To use the graph cursor to select an initial guess:  
Selecting a New  
Initial Guess from  
the Graph  
1. Move the cursor (either free-moving or trace) to the point that  
you want to use as the new guess.  
2. Use 2a to make the  
Numeric Solver screen  
active.  
3. Make sure the cursor is on  
the unknown variable, and  
press .  
Note: Cursor coordinate xc  
is the unknown variable  
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.  
From the split screen:  
Returning to a Full  
Screen  
¦
To display the Numeric Solver full screen, use 2a to make  
the solver screen active, press , and then select 2:Clear Graph  
View.  
– or –  
¦
To display the Home screen, press 2K twice.  
When you solve an equation, its variables still exist after you leave  
the Numeric Solver. If the equation contains single-character  
variables, their values may inadvertently affect later symbolic  
calculations. Before leaving the Numeric Solver, you may want to:  
Clearing Variables  
Before Leaving the  
Numeric Solver  
Tip: Any time you want to  
clear single-character  
variables listed in the solver,  
use:  
1. Press:  
TI-89: 2ˆ  
TI-92 Plus: ˆ  
to clear all single-character variables in the current folder.  
TI-89: 2 ˆ  
TI-92 Plus: ˆ  
2. Press ¸ to confirm the action.  
The screen returns to the solver’s eqn: line.  
Chapter 19: Numeric Solver  
341  
 
342  
Chapter 19: Numeric Solver  
Number Bases  
Preview of Number Bases..................................................................... 344  
Entering and Converting Number Bases............................................. 345  
Performing Math Operations with Hex or Bin Numbers .................. 346  
Comparing or Manipulating Bits .......................................................... 347  
20  
Wherever you enter an integer in a TI-89 / TI-92 Plus 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  
menu lets you select from a  
list of operations related to  
number bases.  
Dec  
Base 10  
Bin  
Base 2  
Hex  
Base 16  
Binary numbers use 0 and 1  
in the base 2 format:  
0
1
2
3
4
5
6
7
8
0000  
0001  
0010  
0011  
0100  
0101  
0110  
0111  
1000  
1001  
1010  
1011  
1100  
1101  
1110  
1111  
10000  
0
1
2
3
4
5
6
7
8
100  
20 ù 0 = +0  
21 ù 0 = +0  
22 ù 1 = +4  
Hexadecimal numbers use  
0 – 9 and A – F in the base 16  
format:  
9
9
10  
11  
12  
13  
14  
15  
16  
A
B
C
D
E
F
10  
A8F  
160 ù F = +15  
161 ù 8 = +128  
162 ù A = +2560  
You can use the TI-89 / TI-92 Plus 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 / TI-92 Plus also lets you compare or manipulate binary  
numbers bit-by-bit.  
Chapter 20: Number Bases  
343  
   
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.  
³
TI.89  
Keystrokes  
TI.92 Plus  
Keystrokes  
Steps  
Display  
3 „  
(use D to move (use D to move  
to Base mode) to Base mode)  
3 „  
1. Display the MODE dialog box,  
Page 2. For Base mode, select  
DEC as the default number base.  
B 1 ¸  
B 1 ¸  
Integer results are displayed  
according to the Base mode.  
Fractional and floating-point results  
are always displayed in decimal form.  
O j B 1 0 « O O B 1 0 « O  
2. Calculate 0b10+0hF+10.  
2 ™ H F  
j « 1 0  
¸
H F  
« 1 0  
¸
To enter a binary or hex number, you  
must use the 0b or 0h prefix (zero and  
the letter B or H). Otherwise, the entry  
is treated as a decimal number.  
Important: The 0b or 0h  
prefix is a zero, not the letter  
O, followed by B or H.  
« 1 2 Ž  
2 ™ B I N B I N  
« 1 2 Ž  
3. Add 1 to the result and convert it  
to binary.  
j ¸  
¸
2 Ž displays the 4 conversion operator.  
« 1 2 Ž  
2 ™ H E X H E X  
« 1 2 Ž  
4. Add 1 to the result and convert it  
to hexadecimal.  
j ¸  
¸
« 1 ¸  
« 1 ¸  
5. Add 1 to the result and leave it in  
the default decimal base.  
3 „  
(use D to move (use D to move  
to Base mode) to Base mode)  
B 2 ¸  
3 „  
6. Change the Base mode to HEX.  
Results use the 0b  
or 0h prefix to  
identify the base.  
When Base = HEX or BIN, the magnitude  
of a result is restricted to certain size  
limitations. Refer to page 346.  
B 2 ¸  
O j B 1 0 « O O B 1 0 « O  
7. Calculate 0b10+0hF+10.  
8. Change the Base mode to BIN.  
9. Re-enter 0b10+0hF+10.  
2 ™ H F  
j « 1 0  
¸
H F  
« 1 0  
¸
3 „  
3 „  
(use D to move (use D to move  
to Base mode) to Base mode)  
B 3 ¸  
B 3 ¸  
¸
¸
344  
Chapter 20: Number Bases  
 
Entering and Converting Number Bases  
Regardless of the Base mode, you must always use the  
appropriate prefix when entering a binary or hexadecimal  
number.  
To enter a binary number, use the form:  
Entering a Binary or  
Hexadecimal  
Number  
0bbinaryNumber  
(for example: 0b11100110)  
Binary number with up to 32 digits  
Zero, not the letter O, and the letter b  
Note: You can type the b or  
h in the prefix, as well as  
hex characters A F, in  
uppercase or lowercase.  
To enter a hexadecimal number, use the form:  
0hhexadecimalNumber (for example: 0h89F2C)  
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.  
Use the 4 conversion operator.  
Converting between  
Number Bases  
For 4, press 2 Ž. Also, you  
can select base conversions  
from the MATH/Base menu.  
integerExpression 4 Bin  
integerExpression 4 Dec  
integerExpression 4 Hex  
For a binary or hex entry, you  
must use the 0b or 0h prefix.  
Note: If your entry is not an  
integer, a Domain error is  
displayed.  
For example, to convert 256  
from decimal to binary:  
2564 Bin  
To convert 101110 from binary  
to hexadecimal:  
Results use the 0b or 0h  
prefix to identify the base.  
0b1011104 Hex  
If Base mode = BIN:  
Instead of using 4, you can:  
Alternate Method for  
Conversions  
1. Use 3 (page 346) 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  
345  
 
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.  
1. Press 3to display  
Setting the Base  
Mode for Displayed  
Results  
Page 2 of the MODE screen.  
2. Scroll to the Base mode,  
press B, and select the  
applicable setting.  
3. Press ¸ to close the  
MODE screen.  
If Base mode = HEX:  
Note: The Base mode  
affects output only. You  
must always use the 0h or  
0b prefix to enter a hex or  
binary number.  
The Base mode controls the  
displayed format of integer  
results only.  
Fractional and floating-point  
results are always shown in  
decimal form.  
0h prefix in result  
identifies the base.  
If Base mode = HEX:  
When Base=HEX or BIN, a  
division result is displayed in  
hexadecimal or binary form  
only if the result is an integer.  
Dividing When  
Base = HEX or BIN  
To ensure that division always  
produces an integer, use intDiv()  
instead of e.  
Press ¥ ¸ to display the  
result in APPROXIMATE form.  
When Base=HEX or BIN, an integer result is stored internally as a  
signed, 32-bit binary number, which uses the range (shown in  
hexadecimal and decimal):  
Size Limitations  
When Base = HEX  
or BIN  
0hFFFFFFFF  
0h1  
1
ë1  
0h80000000  
ë2,147,483,648  
0h0  
0
0h7FFFFFFF  
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.  
346  
Chapter 20: Number Bases  
 
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  
operators from the  
MATH/Base menu. For an  
example using each  
integer1 and integer2  
In a bit-by-bit and comparison, the result  
is 1 if both bits are 1; otherwise, the result  
is 0. The returned value represents the bit  
results.  
operator, refer to  
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.  
If Base mode = HEX:  
Suppose you enter:  
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  
that is too large to be stored  
in a signed, 32-bit binary  
form, a symmetric modulo  
operation brings the value  
into the range (page 346).  
0h7AC36 = 0b00000000000001111010110000110110  
and  
and  
0h3D5F  
=
0b00000000000000000011110101011111  
0b00000000000000000010110000010110 = 0h2C16  
Leading zeros are not shown  
in the result.  
The result is displayed according to the Base mode.  
Chapter 20: Number Bases  
347  
 
Rotating and  
Shifting Bits  
Function with syntax  
Description  
rotate(integer)  
If #ofRotations is:  
– or –  
¦
¦
¦
omitted — bits rotate once to the  
right (default is ë 1).  
rotate(integer,#ofRotations)  
negative — bits rotate the specified  
number of times to the right.  
Note: You can select these  
functions from the  
positive — bits rotate the specified  
number of times to the left.  
MATH/Base menu. For an  
example using each  
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)  
– or –  
shift(integer,#ofShifts)  
If #ofShifts is:  
¦
¦
¦
omitted — bits shift once to the right  
(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.  
If Base mode = HEX:  
Suppose you enter:  
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  
that is too large to be stored  
in a signed, 32-bit binary  
form, a symmetric modulo  
operation brings the value  
into the range (page 346).  
0h7AC36 = 0b00000000000001111010110000110110  
Inserts 0 if leftmost bit is 0,  
or 1 if leftmost bit is 1.  
Dropped  
0b00000000000000111101011000011011 = 0h3D61B  
Leading zeros are not shown  
in the result.  
The result is displayed according to the Base mode.  
348  
Chapter 20: Number Bases  
 
Memory and Variable Management  
Preview of Memory and Variable Management ................................. 350  
Checking and Resetting Memory ......................................................... 353  
Displaying the VAR-LINK Screen......................................................... 355  
Manipulating Variables and Folders with VAR-LINK ........................ 357  
Pasting a Variable Name to an Application ........................................ 359  
Archiving and Unarchiving a Variable................................................. 360  
If a Garbage Collection Message Is Displayed................................... 362  
Memory Error When Accessing an Archived Variable...................... 364  
21  
This chapter describes how to manage variables stored in the  
TI-89 / TI-92 Plus’s memory.  
Note: Remember that  
variables can contain  
expressions, lists, functions,  
programs, graph figures,  
etc.  
The MEMORY screen  
shows how the memory is  
currently being used.  
The VAR-LINK screen  
displays a list of defined  
variables and folders. For  
information about folders,  
refer to Chapter 5.  
Note: You can also use  
VAR-LINK to transfer  
variables between two  
linked TI-89s, a TI-92, or a  
TI-92 Plus. Refer to  
Chapter 22.  
You can also store variables in the TI-89 / TI-92 Plus’s user data  
archive, a protected area of memory separate from RAM (random  
access memory).  
You can  
archive and  
TI-89 /  
TI-92 Plus  
RAM  
User Data  
Archive  
unarchive  
a variable.  
Archiving variables can be very useful (page 360). 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  
349  
   
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.  
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
1. From the Home screen, assign  
variables with the following  
variable types.  
" M  
5 § X 1  
¸
¥ " M  
5 § X 1  
¸
X Z 2 « 4 § X Z 2 « 4 §  
Expression: 5 ! x1  
Function: xñ +4 ! f(x)  
List: {5,10} ! l1  
j F c X d  
¸
F c X d  
¸
2 [ 5 b 1 0  
2 \ §  
2 [ 5 b 1 0  
2 \ §  
Matrix: [30,25] ! m1  
j L 1 ¸ L 1 ¸  
2 g 3 0 b 2 5 2 g 3 0 b 2 5  
2 h §  
2 h §  
j M 1 ¸ M 1 ¸  
5 p  
5 p  
2. Suppose you start to perform an  
operation using a function  
variable but can’t remember its  
name.  
5ù  
2 °  
2 °  
3. Display the VAR-LINK screen.  
This example assumes that the  
variables assigned above are the only  
ones defined.  
„ D D B 5  
¸
„ D D B 5  
¸
4. Change the screen’s view to  
show 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.  
350  
Chapter 21: Memory and Variable Management  
 
³
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
Steps  
Display  
D 2 ˆ  
D ˆ  
5. Highlight the f function variable,  
and view its contents.  
Notice that the function was assigned  
using f(x) but is listed as f on the  
screen.  
N
N
6. Close the Contents window.  
¸
¸
7. With the f variable still  
highlighted, close VAR-LINK and  
paste the variable name to the  
entry line.  
5ù f(  
Notice that “ ( ” is  
pasted.  
2 d ¸  
2 d ¸  
8. Complete the operation.  
5ù f(2)  
Archiving a variable:  
2 °  
(use D to  
highlight x1)  
2 °  
(use D to  
highlight x1)  
9. Redisplay VAR-LINK, and  
highlight the variable you want  
to archive.  
The previous change in view is no  
longer in effect. The screen lists all  
defined variables.  
ƒ 8  
ƒ 8  
10. Use the ƒ Manage toolbar menu  
to archive the variable.  
û indicates the  
variable is archived.  
"
6 p X 1 ¸  
¥ "  
6 p X 1 ¸  
11. Return to the Home screen and  
use the archived variable in a  
calculation.  
1 0 § X 1  
¸
1 0 § X 1  
¸
12. Attempt to store a different  
value to the archived variable.  
N
N
13. Cancel the error message.  
Chapter 21: Memory and Variable Management  
351  
 
Steps  
³
Display  
TI-89  
Keystrokes  
TI-92 Plus  
Keystrokes  
2 °  
(use D to  
highlight x1)  
ƒ 9  
2 °  
(use D to  
highlight x1)  
ƒ 9  
14. Use VAR-LINK to unarchive the  
variable.  
"
¸
¥ "  
¸
15. Return to the Home screen and  
store a different value to the  
unarchived variable.  
Deleting variables:  
2 °  
1  
2 °  
1  
16. Display VAR-LINK, and use the  
All toolbar menu to select all  
variables.  
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 357.  
ƒ 1  
ƒ 1  
17. Use ƒ to delete.  
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.  
N
N
20. Close VAR-LINK and return to  
the 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.  
352  
Chapter 21: Memory and Variable Management  
 
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.  
Press 2¯.  
Displaying the  
MEMORY Screen  
Size of history pairs  
saved in the Home  
screen’s history area  
Tip: To display the size of  
individual variables and  
determine if they are in the  
user data archive, use the  
VAR-LINK screen.  
Size of Flash applications  
Free space in RAM  
Free space in Flash ROM  
Includes programs written for the TI-89 / TI-92 Plus as well  
as any assembly-language programs you have loaded  
To close the screen, press ¸. To reset the memory, use the  
following procedure.  
From the MEMORY screen:  
Resetting the  
Memory  
1. Press ƒ.  
2. Select the applicable item.  
Item  
Description  
Important: To delete  
RAM  
1:All RAM: Resetting RAM erases all data and  
programs from RAM.  
individual (instead of all)  
variables, use VAR-LINK as  
described on page 357.  
2:Default: Resets all system variables and modes to  
their original factory settings. This does not affect any  
user-defined variables, functions, or folders.  
Flash ROM 1:Archive: Resetting Archive erases all data and  
programs from Flash ROM.  
2:Flash Apps: Resetting Flash Apps erases all Flash  
applications from Flash ROM.  
3:Both: Resetting both erases all data, programs, and  
Flash applications from Flash ROM.  
All Memory Resetting will delete all data, programs, and Flash  
applications from RAM and Flash ROM.  
Tip: To cancel the reset,  
press N instead of ¸.  
3. When prompted for confirmation, press ¸.  
The TI-89 / TI-92 Plus displays a message when the reset is  
complete.  
4. Press ¸ to acknowledge the message.  
Chapter 21: Memory and Variable Management  
353  
 
The Flash ROM free displayed on  
the Memory screen 2¯ is  
shared by archive and Flash  
applications. This Flash ROM is  
divided into sectors of 64-KB  
memory. Each individual sector  
can contain either archive or Flash  
applications, but not both.  
Therefore, the actual maximum  
available space for archive or Flash  
applications can be less than the  
total Flash ROM free shown on the  
memory screen.  
Flash ROM free on  
the MEMORY  
Screen  
Note: For TI-92 Plus  
Modules and some TI-89  
users, their maximum  
archive space is about  
384-KB regardless of how  
much free Flash ROM is  
available.  
Shows Flash ROM free  
variable A  
variable B  
variable C  
Sector A  
64-KB  
25-KB  
64-KB  
Available  
for Archive  
(89-KB)  
Sector B  
64-KB  
Flash  
ROM free  
(114-KB)  
Available  
for Flash  
applications  
(89-KB)  
25-KB  
Sector C  
64-KB  
Flash application A  
354  
Chapter 21: Memory and Variable Management  
 
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.  
Press 2°. By default, the VAR-LINK screen lists all user-  
defined variables in all folders and with all data types.  
Displaying the  
VAR-LINK Screen  
Shows installed  
Flash applications  
Folder names  
(alphabetically  
listed)  
Note: For information about  
using folders, refer to  
Chapter 5.  
Size in bytes  
Data type  
Variable names (alphabetically listed)  
This...  
Indicates this...  
Lets you transmit variables and Flash applications  
between units and update the product software in your  
TI-89 / TI-92 Plus. Refer to Chapter 22.  
Link  
Collapsed folder view.  
4
Expanded folder view (to right of folder name).  
You can scroll for more variables and/or folders.  
If selected with .  
6
6
Ÿ
Œ
û
Locked  
Archived  
To scroll through the list:  
¦
Press Dor C. (Use 2Dor 2Cto scroll one page at a time.)  
— or —  
Tip: Type a letter repeatedly  
to cycle through the names  
that start with that letter.  
¦
Type a letter. If there are any variable names that start with that  
letter, the cursor moves to highlight the first of those variable  
names.  
Variable Types as  
Type  
Description  
Listed on VAR-LINK  
ASM  
DATA  
EXPR  
FUNC  
GDB  
LIST  
Assembly-language program  
Data  
Expression (includes numeric values)  
Function  
Graph database  
List  
MAT  
Matrix  
PIC  
PRGM  
STR  
Picture of a graph  
Program  
String  
TEXT  
Text Editor session  
Chapter 21: Memory and Variable Management  
355  
 
If you have a lot of variables and/or folders, or Flash applications, it  
may be difficult to locate a particular variable. By changing VAR-  
LINK’s view, you can specify the information you want to see.  
Listing Only a  
Specified Folder  
and/or Variable  
Type, or Flash  
application  
From the VAR-LINK screen:  
1. Press View.  
Tip: To cancel a menu,  
2. Highlight the setting you want to  
change, and press B. This  
displays a menu of valid  
choices.  
press N.  
Tip: To list system variables  
(window variables, etc.),  
select 3:System.  
View — Allows you to choose  
variables, Flash applications, or  
system variables to view.  
Folder — Always lists 1:All and  
2:main, but lists other folders  
only if you have created them.  
Var Type — Lists the valid  
variable types.  
ï 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, or Flash application.  
To close the VAR-LINK screen and return to the current application,  
use ¸ or Nas described below.  
Closing the  
VAR-LINK Screen  
Press:  
To:  
Tip: For more information  
on using the ¸ paste  
feature, refer to page 359.  
¸
Paste the highlighted variable or folder name to the cursor  
location in the current application.  
N
Return to the current application without pasting the  
highlighted name.  
356  
Chapter 21: Memory and Variable Management  
 
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.  
You can show all variable types except ASM, DATA, or GDB. For  
example, you must open a DATA variable in the Data/Matrix Editor.  
Showing the  
Contents of a  
Variable  
1. On VAR-LINK, move the cursor to highlight the variable.  
Note: You cannot edit the  
contents from this screen.  
2. Press:  
TI-89: 2ˆ  
TI-92 Plus: ˆ  
If you highlight a folder, the  
screen shows the number of  
variables in that folder.  
3. To return to VAR-LINK, press  
any key.  
For other operations, select one or more variables and/or folders.  
Selecting Items  
from the List  
To select:  
Do this:  
A single variable  
or folder  
Move the cursor to highlight the item.  
Note: If you use to Ÿ one  
or more items and then  
highlight a different item, the  
following operations affect  
only the Ÿ’ed items.  
A group of variables  
or folders  
Highlight each item and press . A Ÿ is  
displayed to the left of each selected item.  
(If you select a folder, all variables in that  
folder are selected.) Use to select or  
deselect an item.  
All folders and  
all variables  
Expand the folder B, press All and  
select 1:Select All.  
Tip: Press either A B to  
toggle between expand or  
collapse view when you  
have a folder highlighted.  
Selects the last set of  
items transmitted to your  
unit during the current  
VAR-LINK session. Refer  
to Chapter 22.  
Selecting 4:Expand All  
or 5:Collapse All will  
expand or collapse  
your folders or Flash  
applications.  
To delete a folder, you must delete all of the variables in that folder.  
However, you cannot delete the MAIN folder even if it is empty.  
Deleting Variables  
or Folders  
1. On VAR-LINK, select the  
variables and/or folders.  
Tip: When you use to  
select an expanded folder,  
its variables are selected  
automatically so that you  
can delete the folder and its  
variables at the same time.  
2. Press ƒ Manage and select  
1:Delete. (You can press  
0instead of ƒ 1.)  
3. To confirm the deletion,  
press ¸.  
Chapter 21: Memory and Variable Management  
357  
 
For information about using folders, refer to Chapter 5.  
Creating a New  
Folder  
1. On VAR-LINK, press ƒ Manage and select 5:Create Folder.  
2. Type a unique name, and  
press ¸ twice.  
You must have at least one folder other than MAIN. You cannot use  
VAR-LINK to copy variables within the same folder.  
Copying or Moving  
Variables from One  
Folder to Another  
1. On VAR-LINK, select the variables.  
2. Press ƒ Manage and select 2:Copy or 4:Move.  
3. Select the destination folder.  
4. Press ¸.  
Tip: To copy a variable to a  
different name in the same  
folder, use § (such as  
a1! a2) or the CopyVar  
command from the Home  
screen.  
The copied or moved  
variables retain their  
original names.  
Remember, if you use to select a folder, the variables in that  
folder are selected automatically. As necessary, use to deselect  
individual variables.  
Renaming Variables  
or Folders  
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.  
When a variable is locked, you cannot delete, rename, or store to it.  
However, you can copy, move, or display its contents. When a folder  
is locked, you can manipulate the variables in the folder (assuming  
the variables are not locked), but you cannot delete the folder. When  
a Flash application is locked, you cannot delete it.  
Locking or  
Unlocking Variables  
Folders, or Flash  
Applications  
1. On VAR-LINK, select the variables and/or folders, or Flash  
application.  
2. Press ƒ Manage and select 6:Lock or 7:UnLock.  
Œ indicates a locked variable,  
folder, or Flash application in  
RAM  
û indicates an archived variable,  
which is locked automatically.  
358  
Chapter 21: Memory and Variable Management  
 
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.  
From the following applications, you can paste a variable name to  
the current cursor location.  
Which Applications  
Can You Use?  
¦
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.  
Starting from an application listed above:  
Procedure  
1. Position the cursor where  
sin(|  
you want to insert the  
variable name.  
2. Press 2°.  
Note: You can also highlight  
and paste folder names.  
3. Highlight the applicable  
variable.  
4. Press ¸ to paste the  
sin(a1|  
variable name.  
Note: This pastes the  
5. Finish typing the  
variable’s name, not its  
contents. Use 2 £,  
instead of 2 °, to  
recall a variable’s contents.  
sin(a1)|  
expression.  
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.  
Chapter 21: Memory and Variable Management  
359  
 
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.  
The user data archive lets you:  
Why Would You  
Want to Archive a  
Variable?  
¦
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. For  
example:  
Note: You cannot archive  
variables with reserved  
names or system variables.  
You can archive variables that you need to access but do  
not need to edit or change, or variables that you are not  
using currently but need to retain for future use.  
If you acquire additional programs for your  
TI-89 / TI-92 Plus, 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.  
Before archiving or unarchiving variables, particularly those with a  
large byte size (such as large programs):  
Checking for  
Available Space  
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  
space, unarchive or delete  
variables as necessary.  
For an:  
Sizes must be such that:  
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 362) 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.  
360  
Chapter 21: Memory and Variable Management  
 
To archive or unarchive:  
From the VAR-LINK  
Screen  
1. Press 2°to display the VAR-LINK screen.  
Tip: To select a single  
variable, highlight it. To  
select multiple variables,  
highlight each variable and  
press Ÿ.  
2. Select one or more variables, which can be in different folders.  
(You can select an entire folder by selecting the folder name.)  
3. Press ƒ and select either:  
8:Archive Variable  
– or –  
9:Unarchive Variable  
Note: If you get a Garbage  
Collection message, refer to  
page 362.  
If you select 8:Archive Variable, the  
variables are moved to the user  
data archive.  
archived  
variables  
Note: An archived variable  
is locked automatically. You  
can access the variable, but  
you cannot edit or delete it.  
Refer to page 364.  
RAM  
User Data Archive  
You can access an archived  
variable just as you would any  
locked variable. For all purposes,  
an archived variable is still in its  
original folder; it is simply stored  
in the user data archive instead of  
RAM.  
CLASS  
a2  
pic1  
û
MAIN  
f
l1  
m1  
û
prog1  
s1  
text1  
Use the Archive and Unarchiv commands (Appendix A).  
Archive variable1, variable2, …  
From the Home  
Screen or a Program  
Unarchiv variable1, variable2, …  
Chapter 21: Memory and Variable Management  
361  
 
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 / TI-92 Plus will attempt to rearrange the  
archived variables to make additional room.  
When you see the message to the  
right:  
Responding to the  
Garbage Collection  
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.  
The message:  
Why not Perform  
Garbage Collection  
Automatically,  
¦
Lets you know why an archive will take longer than usual. It also  
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.  
The user data archive is divided into sectors. When you first begin  
archiving, variables are stored consecutively in sector 1. This  
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.  
Why Is Garbage  
Collection  
Necessary?  
Note: An archived variable  
is stored in a continuous  
block within a single sector;  
it cannot cross a sector  
boundary.  
Each variable that you archive is  
stored in the first empty block large  
enough to hold it.  
Sector 1  
variable A  
variable B  
Empty  
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  
occurs when the variable  
you are archiving is larger  
than any empty block.  
This process continues to the end of  
the last sector. Depending on the size of individual variables, the  
empty blocks may account for a significant amount of space.  
362  
Chapter 21: Memory and Variable Management  
 
Sector 1  
When you unarchive a variable, it is  
copied to RAM but is not actually  
deleted from the user data archive  
memory.  
How Unarchiving a  
Variable Affects the  
Process  
variable A  
After you unarchive  
variables B and C, they  
continue to take up space.  
Sector 2  
Sector 3  
variable D  
Unarchived variables are “marked for  
deletion,” meaning they will be  
deleted during the next garbage  
collection.  
Even if the MEMORY screen shows  
enough free space to archive a  
variable, you may still get a  
If the MEMORY  
Screen Shows  
Enough Free Space  
Garbage Collection message.  
When you unarchive a variable, the  
Archive free amount increases  
immediately, but the space is not  
actually available until after the  
next garbage collection.  
Shows free space that  
will be available after all  
“marked for deletion”  
variables are deleted.  
If the RAM 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).  
Sector 1  
The garbage collection process:  
The Garbage  
variable A  
Collection Process  
¦
Deletes unarchived variables from  
the user data archive.  
variable D  
¦
Rearranges the remaining  
variables into consecutive blocks.  
Sector 2  
Chapter 21: Memory and Variable Management  
363  
 
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.  
The Memory Error message is displayed if there is not enough free  
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.  
What Causes the  
Memory Error?  
Note: As described below, a  
temporary copy lets you  
open or execute an archived  
variable. However, you  
cannot save any changes to  
the variable.  
¦
¦
¦
¦
Opening a text variable in the Text Editor.  
Opening a data variable, list, or matrix in the Data/Matrix Editor.  
Opening a program or function in the Program Editor.  
Running a program or referring to a function.  
So that you don’t have to unarchive variables unnecessarily, the  
TI-89 / TI-92 Plus performs a “behind-the scenes” copy. For example, if  
you run a program that is in the user data archive, the  
TI-89 / TI-92 Plus:  
Note: Except for programs  
and functions, referring to  
an archived variable does  
not copy it. If variable ab is  
archived, it is not copied if  
you perform 6ù ab.  
1. Copies the program to RAM.  
2. Runs the program.  
3. Deletes the copy from RAM when the program is finished.  
The error message is displayed if there is not enough free RAM for  
the temporary copy.  
To free up enough RAM to access the variable:  
Correcting the Error  
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  
free size must be larger than  
the archived variable.  
3. Free up the needed amount of memory by:  
¦
¦
Deleting unnecessary variables from RAM.  
Archiving large variables or programs (moving them from  
RAM to the user data archive).  
364  
Chapter 21: Memory and Variable Management  
 
Linking and Upgrading  
Linking Two Units.................................................................................. 366  
Transmitting Variables, Flash Applications, and Folders................. 367  
Transmitting Variables under Program Control................................. 371  
Upgrading Product Software (Base Code) ......................................... 373  
Collecting and Transmitting ID Lists................................................... 378  
Compatibility between a TI.89, TI.92 Plus, and TI.92 ...................... 380  
22  
This chapter describes how to use the VAR-LINK screen to:  
¦
Transmit variables, Flash applications, and folders between  
two units  
¦
¦
Upgrade the product software (base code)  
Collect ID Lists  
It also includes information on transmitting variables under  
program control, and calculator compatibility.  
Variables include programs, functions, graph figures, etc.  
The VAR-LINK screen displays a  
list of defined variables, Flash  
applications, and folders. For  
information about using folders,  
refer to Chapter 5.  
Chapter 22: Linking and Upgrading  
365  
   
Linking Two Units  
The TI-89 and the TI-92 Plus each come with a cable that lets  
you link two units. Once connected, you can transmit  
information between two units.  
Using firm pressure, insert one end of the cable into the I/O port of  
each unit. Either unit can send or receive, depending on how you set  
them up from the VAR-LINK screen.  
Connecting before  
Sending or  
Receiving  
This shows how to link two TI-89 units together:  
TI-89  
TI-89  
Sending  
unit  
Receiving  
unit  
Note: You can link a TI-89  
or TI-92 Plus to another  
TI-89, a TI-92 Plus, or a  
TI-92, but not to a graphing  
calculator such as a TI-81,  
TI-82, TI-83, TI-83 Plus,  
TI-85, or TI-86.  
I/O Port  
I/O Port  
Cable  
This shows how to link two TI-92 Plus units together:  
I/O Port  
I/O Port  
TI-92 Plus  
TI-92 Plus  
You can also use the unit-to-unit cable that came with your  
calculator to link a TI-89 and a TI-92 Plus together.  
I/O Port  
TI-92 Plus  
I/O Port  
366  
Chapter 22: Linking and Upgrading  
 
Transmitting Variables, Flash Applications, and Folders  
Transmitting variables is a convenient way to share any  
variable listed on the VAR-LINK screen — functions, programs,  
etc. You can also transmit Flash applications and folders.  
Most Flash applications will transfer only from a TI-89 to a TI-89 or  
from a TI-92 Plus to a TI-92 Plus. You cannot send Flash applications  
to a TI-92 unless it contains a Plus module and Advanced  
Mathematics 2.x product software (base code). For more calculator  
compatibility information, refer to page 380.  
Setting Up the Units  
1. Link two units as described on page 366.  
2. On the sending unit, press 2 ° to display the VAR-LINK  
screen.  
3. On the sending unit, select the variables, folders, or Flash  
applications you want to send. Collapsed folders become  
expanded when selected.  
¦
To select a single variable or Flash application, move the  
cursor to highlight it.  
¦
To select a single folder, highlight it and press to place a  
checkmark (Ÿ) beside it. This selects the folder and its  
contents.  
Note: Use to select  
multiple variables, Flash  
applications, or folders. Use  
again to deselect any  
that you do not want to  
transmit.  
¦
¦
To select multiple variables, Flash applications, or folders  
highlight each one and press to place a checkmark (Ÿ)  
beside it.  
To select all variables, Flash applications, or folders use  
All 1:Select All.  
4. On the receiving unit, press 2 ° to display the VAR-  
LINK screen. (The sending unit remains on the VAR-LINK screen.)  
5. On both the receiving and the sending unit, press Link to  
display the menu options.  
6. On the receiving unit, select 2:Receive.  
The message VAR-LINK: WAITING TO RECEIVE and the BUSY  
indicator are displayed in the status line of the receiving unit.  
7. On the sending unit, select either:  
¦
¦
1:Send to TI-89/92 Plus  
— or —  
3:Send to TI-92  
This starts the transmission.  
During transmission, a progress bar is displayed in the status line of  
the receiving unit. When transmission is complete, the VAR-LINK  
screen is updated on the receiving unit.  
Chapter 22: Linking and Upgrading  
367  
 
Unlocked and unarchived variables having the same name on both  
the sending and receiving units will be overwritten from the sending  
unit.  
Rules for  
Transmitting  
Variables, Flash  
Applications, or  
Folders  
Locked and archived variables having the same name on both the  
sending and receiving units must be unlocked or unarchived on the  
receiving unit before they can be overwritten from the sending unit.  
You can lock, but you cannot archive a Flash application or a folder.  
If you select:  
What happens:  
Unlocked variable  
The variable is transmitted to the current  
folder and it remains unlocked on the  
receiving unit.  
Locked variable  
The variable is transmitted to the current  
folder and it remains locked on the receiving  
unit.  
Note: You cannot send an  
archived variable to a TI-92.  
You must unarchive it first.  
Archived variable  
The variable is transmitted to the current  
folder and it remains archived on the  
receiving unit.  
Unlocked Flash  
application  
If the receiving unit has the correct  
certification, the Flash application is  
transmitted. It remains unlocked on the  
receiving unit.  
Locked Flash  
application  
If the receiving unit has the correct  
certification, the Flash application is  
transmitted. It remains locked on the  
receiving unit.  
Unlocked Folder  
Locked Folder  
The folder and its selected contents are  
transmitted. The folder remains unlocked on  
the receiving unit.  
Note: You must expand a  
folder before transmitting it  
or its contents.  
The folder and its selected contents are  
transmitted. The folder becomes unlocked on  
the receiving unit.  
From either the sending or receiving unit:  
1. Press ´.  
Canceling a  
Transmission  
An error message is displayed.  
2. Press Nor ¸.  
368  
Chapter 22: Linking and Upgrading  
 
Common Error and  
Notification  
Messages  
Shown on: Message and Description:  
Sending  
unit  
This is displayed after several seconds if:  
Note: The sending unit may  
not always display this  
message. Instead, it may  
remain BUSY until you  
cancel the transmission.  
¦
A cable is not attached to the sending unit’s I/O port.  
— 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 Nor ¸ to cancel the transmission.  
Sending  
unit  
The receiving unit does not have the correct certification  
for the product software (base code) or Flash application  
being sent.  
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 what is  
being sent. Press Nor ¸ to cancel the transmission.  
Chapter 22: Linking and Upgrading  
369  
 
1. Press 2 ° to display the VAR-LINK screen.  
Deleting Variables,  
Flash Applications,  
or Folders  
2. Select the variables, folders, or Flash applications to delete.  
¦
To select a single variable or Flash application, move the  
cursor to highlight it.  
Note: You cannot delete the  
Main folder.  
¦
To select a single folder, highlight it and press to place a  
checkmark (Ÿ) beside it. This selects the folder and its  
contents.  
Note: Use to select  
multiple variables, Flash  
applications, or folders. Use  
again to deselect any  
that you do not want to  
delete.  
¦
¦
To select multiple variables, Flash applications, or folders  
highlight each one and press to place a checkmark (Ÿ)  
beside it.  
To select all variables, Flash applications, or folders use  
All 1:Select All.  
3. Press ƒ and choose 1:Delete.  
— or —  
Press 0. A confirmation message appears.  
4. Press ¸ to confirm the deletion.  
For up-to-date information about  
available Flash applications, check  
the Texas Instruments web site at:  
Where to Get Flash  
Applications  
education.ti.com  
Flash  
Certificate  
application  
education.ti.com  
or contact Texas Instruments as  
described in Appendix C.  
You can download a Flash  
application and/or certificate from  
the Texas Instruments web site to  
a computer, and use a TI-GRAPH  
LINK computer-to-calculator cable  
to install the application or  
certificate on your  
via TI-GRAPH LINK cable  
TI-89  
TI-89 / TI-92 Plus.  
For installation instructions, refer  
to the Flash Applications  
instructions in the front of this  
guidebook, or to your  
TI™ Connect online help or  
TI-GRAPH LINK guidebook.  
370  
Chapter 22: Linking and Upgrading  
 
Transmitting Variables under Program Control  
You can use a program containing GetCalc and SendCalc or  
SendChat to transmit a variable from one calculator to  
another.  
SendCalc sends a variable to the link port, where a linked calculator  
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.  
Overview of  
Commands  
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 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.  
The “Chat” Program  
:Chat()  
:Prgm  
:ClrIO  
:Disp "On first unit to send,"," enter 1;","On first to receive,"  
:InputStr " enter 0",msg  
:If msg="0" Then  
: While true  
Sets up this unit to  
receive and display  
the variable msg.  
:
:
:
:
GetCalc msg  
Disp msg  
InputStr msg  
SendChat msg  
Loop executed by the unit that  
receives the first message.  
Then lets this user  
enter a message in  
msg and send it.  
: EndWhile  
:Else  
: While true  
Lets this user enter  
a message in msg  
and send it.  
:
:
:
:
InputStr msg  
SendChat msg  
GetCalc msg  
Disp msg  
Loop executed by the unit that  
sends the first message.  
Then sets up this  
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  
371  
 
This procedure assumes that:  
Running the  
Program  
¦
The two calculators are linked with the connecting cable as  
described on page 366.  
¦
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  
using the Program Editor,  
refer to Chapter 17.  
Use each calculator’ s Program Editor to enter the program.  
— or —  
Enter the program on one calculator and then use VAR-LINK to  
transmit the program variable to the other calculator as  
described on page 367.  
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  
the first message.  
1 and press ¸.  
Calculator that will receive  
the first message.  
0 and press ¸.  
3. Take turns typing a message and pressing ¸ to send the  
variable msg to the other calculator.  
Because the Chat program sets up an infinite loop on both  
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.  
Stopping the  
Program  
372  
Chapter 22: Linking and Upgrading  
 
Upgrading Product Software (Base Code)  
You can upgrade the product software (base code) on your  
TI-89 / TI-92 Plus. You can also transfer product software (base  
code) from one TI-89 or TI-92 Plus to another, provided that the  
receiving unit has the correct certification that allows it to run  
that software.  
The term product software includes these two types of base code  
upgrades:  
Product Software  
(Base Code)  
Upgrades  
¦
¦
Maintenance upgrades (which are released free of charge).  
Feature upgrades (some of which are for purchase). Before  
downloading a purchased feature upgrade from the Texas  
Instruments web site, you must provide your calculator’s  
electronic ID number. This information is used to create a  
customized electronic certificate that specifies which product  
software your unit is licensed to run.  
Installing either a maintenance upgrade or a feature upgrade resets  
all calculator memory to the original factory settings. This means  
that all user-defined variables, programs, lists, and Flash applications  
will be deleted. See the important information concerning batteries  
(below) and “Backing Up Your Unit Before a Product Software (Base  
Code) Installation” on page 374 before performing a base code  
(maintenance or feature) upgrade.  
New batteries should be installed before beginning a base code  
(maintenance or feature upgrade) download.  
Important Product  
Software (Base  
Code) Download  
Information  
When in base code download mode, the Automatic Power Downé  
(APDé) feature does not function. If you leave your calculator in  
download mode for an extended time before you actually start the  
downloading process, your batteries may become depleted. You will  
then need to replace the depleted batteries with new batteries before  
downloading.  
You can also transfer base code from calculator-to-calculator using a  
unit-to-unit cable. If you accidentally interrupt the transfer before it  
is complete, you will need to reinstall the base code via a computer.  
Again, remember to install new batteries before downloading.  
Please contact Texas Instruments as described in Appendix C if you  
experience a problem.  
Chapter 22: Linking and Upgrading  
373  
 
When you install a product software (base code) upgrade, the  
installation process:  
Backing Up Your  
Unit Before a  
Product Software  
(Base Code)  
¦
Deletes all user-defined variables (in both RAM and the user data  
archive), functions, programs, and folders.  
Installation  
¦
¦
Could delete all Flash applications.  
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  
installation, install new  
batteries.  
To retain any existing variables or Flash applications, do the  
following before installing the upgrade:  
¦
Transmit the variables or Flash applications to another calculator  
as described on page 367.  
— or —  
Note: The computer-to-  
calculator cable is not the  
same as the cable that  
came with your calculator.  
¦
Use a TI-GRAPH LINKé computer-to-calculator cable and  
TI™ Connect or TI-GRAPH LINK software (available at no charge  
from the Texas Instruments web site) to send the variables and/or  
Flash applications to a computer.  
If you have a TI-GRAPH LINK computer-to-calculator cable and  
software for the TI-92, be aware that the TI-92 TI-GRAPH LINK  
software is not compatible with either the TI-89 or the TI-92 Plus. The  
cable, however, works with all units. For information about  
obtaining a TI-GRAPH LINK computer-to-calculator cable for the  
TI-89 / TI-92 Plus, check the Texas Instruments web site at:  
education.ti.com  
or contact Texas Instruments as described in Appendix C.  
For up-to-date information about  
available product software (base  
code) upgrades and installation  
instructions, check the Texas  
Instruments web site at:  
Where to Get  
Product Software  
(Base Code)  
education.ti.com  
Product  
software  
Certificate  
(base code)  
education.ti.com  
or contact Texas Instruments as  
described in Appendix C.  
via TI-GRAPH LINK cable  
You can download product  
software and/or a certificate from  
the Texas Instruments web site to a  
computer, and use a TI-GRAPH LINK  
computer-to-calculator cable to  
install it on your TI-89 / TI-92 Plus.  
TI-89  
For complete information, refer to  
the instructions on the web.  
374  
Chapter 22: Linking and Upgrading  
 
If the sending TI-89 or TI-92 Plus has its original product software  
(base code) or a free maintenance upgrade, the receiving TI-89 or  
TI-92 Plus does not need a new certificate. Its current certificate is  
valid, and the maintenance upgrade can be transferred.  
Transferring  
Product Software  
(Base Code)  
If the sending TI-89 or TI-92 Plus has a purchased feature upgrade, the  
upgrade must be purchased for the receiving unit. A certificate can  
then be downloaded and installed on the receiving unit. After the  
certificate is installed, the feature upgrade can be transmitted.  
You can see which version of product software is in your  
TI-89 / TI-92 Plus. From the Home screen, press ƒ and select A:About.  
Product software (base code) will transfer only from a TI-89 to a  
TI-89 or from a TI-92 Plus to a TI-92 Plus. You cannot send Advanced  
Mathematics 2.x product software (base code) to a TI-92 unless it  
contains a Plus module. For more calculator compatibility  
information, refer to page 380.  
To transfer product software (base code) from unit to unit:  
1. Link two units as described on page 366.  
Important: For each  
receiving unit, remember to  
back up information as  
necessary and install new  
batteries.  
2. On the receiving and the sending unit, press 2 ° to  
display the VAR-LINK screen.  
3. On the receiving and the sending unit, press Link to display  
the menu options.  
Important: Be sure both the  
sending and receiving units  
are in the VAR-LINK screen.  
4. On the receiving unit, select 5:Receive Product SW.  
A warning message displays. Press N to halt the process, or  
press ¸ to proceed. Pressing ¸, displays VAR-LINK:  
WAITING TO RECEIVE and BUSY in the status line of the  
receiving unit.  
5. On the sending unit, select 4:Send Product SW.  
A warning message displays. Press N to halt the process, or  
press ¸ to start the transmission.  
Chapter 22: Linking and Upgrading  
375  
 
During the transfer, the receiving unit shows how the transfer is  
progressing. When the transfer is complete:  
Transferring  
Product Software  
(continued)  
¦
¦
The sending unit returns to the VAR-LINK screen.  
The receiving unit returns to the Home screen. You may need to  
use ¥ | (lighten) or ¥ « (darken) to adjust the contrast.  
After the transfer starts, the receiving unit’s existing base code is  
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 base code (maintenance or feature) upgrade via a  
computer.  
Do Not Attempt to  
Cancel a Product  
Software (Base  
Code) Transfer  
To perform a maintenance upgrade on multiple units, you can  
transfer an upgrade from one unit to another instead of installing it  
on each unit via a computer. Maintenance upgrades are released free  
of charge and you do not need to obtain a certificate before you  
download or install them.  
If You’re Upgrading  
Product Software  
(Base Code) on  
Multiple Units  
Note: Group certificates are  
also available. See  
page 378.  
Before installing a purchased feature upgrade, each TI-89 or  
TI-92 Plus must have its own unique certificate. During download and  
installation, you can choose both the certificate and feature upgrade  
or only the certificate. The illustration below shows the most  
efficient way to prepare multiple units for a purchased feature  
upgrade.  
Tip: Generally, transmitting  
a base code upgrade from  
unit-to-unit is much quicker  
than installing it via a  
computer.  
From the computer,  
download and install the  
certificate and feature  
upgrade for one unit.  
From the computer, download and  
install only the unique certificate  
for each of the other units.  
TI-89  
TI-89  
TI-89  
Starting with the first unit, transfer the feature upgrade  
from one unit to another as described below.  
Preparing multiple TI-92 Plus units for a purchased feature upgrade  
works the same as illustrated above.  
376  
Chapter 22: Linking and Upgrading  
 
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 Messages  
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 software  
(base code) on the sending unit.  
You must obtain and install a valid  
certificate.  
An error occurred during the  
transfer. The current product  
software in the receiving unit is  
corrupted. You must reinstall the  
product software from a computer.  
Replace the batteries on the unit  
displaying this message.  
Chapter 22: Linking and Upgrading  
377  
 
Collecting and Transmitting ID Lists  
The VAR-LINK screen 6:Send ID List menu option allows  
collection of electronic ID numbers from individual  
TI-89 / TI-92 Plus calculators.  
The ID list feature provides a convenient way to collect calculator  
IDs for group purchase of commercial applications. After the IDs are  
collected, transmit them to Texas Instruments so a group certificate  
can be issued.  
ID Lists and Group  
Certificates  
A group certificate allows distribution of purchased software to  
multiple TI-89 / TI-92 Plus units. The software can be loaded, deleted  
from, and reloaded to the calculators as often as needed for as long  
as the software remains listed in the group certificate. You may add  
new ID numbers and/or new commercial applications to a group  
certificate.  
You can use one calculator to collect all of the IDs, or use several  
collection units and then consolidate their ID lists onto one  
calculator.  
Collecting ID Lists  
To send an ID number from one calculator to another, first connect  
two units by using the calculator-to-calculator cable that came with  
the TI-89 / TI-92 Plus. Refer to the illustrations on page 366.  
Step: On the:  
Do this:  
1.  
2.  
Collecting unit Display the Home screen. Press:  
(Receiving unit) TI.89: "  
TI.92 Plus: ¥ "  
Note: You cannot view the  
ID list on the sending or  
collecting units.  
Sending unit  
a. Press to display the VAR-LINK  
screen.  
b. Press Link  
and select  
6:Send ID List.  
Note: Each time an ID list is  
successfully sent from one  
calculator to another, the ID  
list is automatically deleted  
from the sending unit.  
The sending unit adds a copy of its unique ID  
number to the collection unit’s ID list. The  
sending unit always retains its own ID  
number, which cannot be deleted from the  
calculator.  
Note: If an ID is collected  
from a calculator twice, the  
duplicate ID is automatically  
deleted from the list.  
3.  
Additional units Repeat steps 1 and 2 until all the IDs are  
collected onto one calculator.  
Depending on available memory in the  
collection calculator, it is possible to collect  
over 4,000 IDs.  
378  
Chapter 22: Linking and Upgrading  
 
After all the IDs are collected onto one calculator, use the TI-GRAPH  
LINKé software and a computer-to-calculator cable (available  
separately) to store the ID list on a computer. The ID list can then be  
sent as an e-mail attachment, or it can be printed and faxed or mailed  
to Texas Instruments.  
Transmitting the ID  
List to a Computer  
For complete instructions on how to transmit an ID list from a  
TI-89 / TI-92 Plus to a computer, refer to the TI-GRAPH LINK  
guidebook. The general steps are:  
1. Connect the cable to the computer and to the calculator that  
contains the ID list.  
2. Start the TI-GRAPH LINK software on the computer.  
3. Display the Home screen on the calculator. Press:  
TI.89: "  
TI.92 Plus: ¥ "  
4. In the TI-GRAPH LINK software, select Get ID List from the Link  
menu.  
5. Select a directory on the computer in which to store the ID list  
and record this location for future reference.  
6. Click OK to store the ID list on the computer’s hard drive.  
The ID list remains on the collection calculator until you either clear  
it or send it to another TI-89 / TI-92 Plus.  
The ID list remains on the collection calculator after it is uploaded to  
the computer. You can then use the collection calculator to upload  
the list to other computers.  
Clearing the ID List  
To clear the ID list from the collection unit:  
1. Press 2 ° to display the VAR-LINK screen.  
2. Press ƒ Manage and select A:Clear ID List.  
Chapter 22: Linking and Upgrading  
379  
 
Compatibility between a TI-89, TI-92 Plus, and TI-92  
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.  
All data is compatible between a TI-89 and TI-92 Plus, but some  
programs written for one may not run the same on the other because  
of differences in the calculators’ screen sizes and keyboards.  
Main Types of  
Incompatibilities  
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.  
When you create a function or program in the Program Editor, it  
exists in text form until you run it. Then it is converted automatically  
to a tokenized form.  
Text versus  
Tokenized  
¦
Data in text form can always be shared between a TI-89,  
TI-92 Plus, and TI-92. 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  
included functionality. The TI-89 and TI-92 Plus use the same  
tokenized forms, but the TI-92 is different.  
Program Editor to edit a  
function or program that is in  
tokenized form, it returns to  
text form until the next time  
you run it.  
If you attempt to send a tokenized function, program, or other  
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.  
380  
Chapter 22: Linking and Upgrading  
 
All user-defined variables, including functions and programs, can be  
sent from a TI-92 to a TI-89 or TI-92 Plus. However, they may behave  
differently. Examples are:  
TI-92 to TI-89  
or TI-92 Plus  
¦
Conflicts between TI-89 / 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().  
Any functionality that exists on a TI-89 or TI-92 Plus and NOT on a  
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.  
TI-89 or TI-92 Plus  
to 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.  
¦
¦
Product software (base code) upgrades.  
Flash applications.  
You can upgrade a TI-92 to a TI-92 Plus by installing a TI-92 Plus  
Module. See the Texas Instruments web site education.ti.com  
for more information.  
Chapter 22: Linking and Upgrading  
381  
 
382  
Chapter 22: Linking and Upgrading  
Activities  
Analyzing the Pole-Corner Problem .................................................... 384  
Deriving the Quadratic Formula .......................................................... 386  
Exploring a Matrix ................................................................................. 388  
Exploring cos(x) = sin(x)...................................................................... 389  
Finding Minimum Surface Area of a Parallelepiped.......................... 390  
Running a Tutorial Script Using the Text Editor ............................... 392  
Decomposing a Rational Function....................................................... 394  
Studying Statistics: Filtering Data by Categories .............................. 396  
CBL 2/CBL Program for the TI-89 / TI-92 Plus................................... 399  
Studying the Flight of a Hit Baseball ................................................... 400  
Visualizing Complex Zeros of a Cubic Polynomial............................. 402  
Solving a Standard Annuity Problem................................................... 404  
Computing the Time-Value-of-Money.................................................. 405  
Finding Rational, Real, and Complex Factors.................................... 406  
Simulation of Sampling without Replacement................................... 407  
23  
This chapter contains activities that show how the  
TI-89 / TI-92 Plus can be used to solve, analyze, and visualize actual  
mathematical problems.  
Chapter 23: Activities  
383  
 
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.  
The maximum length of a pole c is the shortest line segment touching  
the interior corner and opposite sides of the two hallways as shown  
in the diagram below.  
Maximum Length of  
Pole in Hallway  
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
b
Tip: When you want to  
define a function, use  
multiple character names as  
you build the definition.  
1. Define the expression for side  
a in terms of 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  
of the pole is the minimum  
value of c(w).  
4. Use the zeros() function to  
compute the zeros of the first  
derivative of c(w) to find the  
minimum value of c(w).  
384  
Chapter 23: Activities  
 
5. Compute the exact maximum  
length of the pole.  
Enter: c(2 ± )  
Hint: Use the auto-paste  
feature to copy the result  
from step 4 to the entry line  
inside the parentheses of  
c( ) and press ¥ ¸.  
6. Compute the approximate  
maximum length of the pole.  
Result: Approximately 20.8097  
feet.  
Chapter 23: Activities  
385  
Deriving the Quadratic Formula  
This activity 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.  
Perform the following steps to derive the quadratic formula by  
completing the square of the generalized quadratic equation.  
Performing  
Computations to  
Derive the Quadratic  
Formula  
1. Clear all one-character  
variables in the current folder.  
TI-89: 2ˆ  
TI-92 Plus: ˆ  
Choose 1:Clear a-z and press  
¸ to confirm.  
2. On the Home screen, enter the  
generalized quadratic equation:  
axñ +bx+c=0.  
Note: This example uses  
the result of the last answer  
to perform computations on  
the TI-89 / TI-92 Plus. This  
feature reduces keystroking  
and chances for error.  
3. Subtract c from both sides of  
the equation.  
TI-89: 2 ± | j C  
TI-92 Plus: 2 ± | C  
4. Divide both sides of the  
equation by the leading  
coefficient a.  
Tip: Continue to use the last  
answer (2 ± ) as in step  
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.  
386  
Chapter 23: Activities  
 
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: Activities  
387  
 
Exploring a Matrix  
This activity shows you how to perform several matrix  
operations.  
Perform these steps to generate a random matrix, augment and find  
the identity matrix, and then solve to find an invalid value of the  
inverse.  
Exploring a 3x3  
Matrix  
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  
history area to scroll the  
result.  
3. Use rref() to “row reduce”  
matrix b:  
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  
history area to scroll the  
result.  
4. Solve for the value of x that  
will cause the inverse of the  
matrix to be invalid.  
Enter: solve(getDenom(  
2 ± [1,4] )=0,x)  
Result: x=ë 70/17  
388  
Chapter 23: Activities  
 
Exploring cos(x) = sin(x)  
This activity uses two methods to find where cos(x) = sin(x) for  
the values of x between 0 and 3p.  
Perform the following steps to observe where the graphs of the  
functions y1(x)=cos(x) and y2(x)=sin(x) intersect.  
Method 1:  
Graph Plot  
1. In the Y= Editor, set  
y1(x)=cos(x) and 2(x)=sin(x).  
2. In the Window Editor, set  
xmin=0 and xmax=3p.  
3. Press and select A:ZoomFit.  
Hint: Press and select  
5:Intersection. Respond to  
the screen prompts to select  
the two curves, and the  
lower and upper bounds for  
intersection A.  
4. Find the intersection point of  
the two functions.  
5. Note the x and y coordinates.  
(Repeat steps 4 and 5 to find  
the other intersections.)  
Perform the following steps to solve the equation sin(x)=cos(x) with  
respect to x.  
Method 2:  
Symbolic  
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  
the history area to highlight  
the last answer. Press  
¸ to copy the result of  
the general solution.  
2. Using the ceiling() and floor()  
functions, find the ceiling and  
floor values for the  
intersection points as shown.  
Hint: To get the “with”  
operator:  
3. Enter the general solution for x  
and apply the constraint for  
@n1 as shown.  
TI-89: Í  
TI-92 Plus: 2 È  
Compare the result with  
Method 1.  
Chapter 23: Activities  
389  
 
Finding Minimum Surface Area of a Parallelepiped  
This activity 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.  
Perform the following steps to define a function for the surface area  
of a parallelepiped, draw a 3D graph, and use the Trace tool to find a  
point close to the minimum surface area.  
Exploring a 3D  
Graph of the  
Surface Area of a  
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=  
x=  
y=  
[60,90,0]  
[0,15,15]  
[0,15,15]  
[260,300]  
z=  
ncontour= [5]  
4. Graph the function and use  
Trace to go to the point close  
to the minimum value of the  
surface area function.  
390  
Chapter 23: Activities  
 
Perform the following steps to solve the problem analytically on the  
Home screen.  
Finding the  
Minimum Surface  
Area Analytically  
1. Solve for x and y in terms of v.  
Enter:  
solve(d(sa(x,y,v),x)=0 and  
d(sa(x,y,v),y)=0,{x,y})  
Hint: Press ¸ to obtain  
the exact result in symbolic  
form. Press ¥ ¸ to  
obtain the approximate  
result in decimal form.  
2. Find the minimum surface area  
when the value of v equals 300.  
Enter: 300! v  
Enter: sa(v^(1/3), v^(1/3),v)  
Chapter 23: Activities  
391  
Running a Tutorial Script Using the Text Editor  
This activity 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.  
Perform the following steps to write a script using the Text Editor,  
test each line, and observe the results in the history area on the  
Home screen.  
Running a Tutorial  
Script  
1. Open the Text Editor, and  
create a new variable named  
demo1.  
Note: The command symbol  
“C” is accessed from the  
1:Command toolbar  
menu.  
2. Type the following lines into the Text Editor.  
: Compute the maximum value of f on the closed interval [a,b]  
: 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.  
392  
Chapter 23: Activities  
 
Note: Press and select  
2:Clear split to go back to a  
full-sized Text Editor screen.  
4. Press repeatedly to execute each line in the script one at a  
time.  
Tip: Press 2 K twice to  
display the Home screen.  
5. To see the results of the script on a full-sized screen, go to the  
Home screen.  
Chapter 23: Activities  
393  
Decomposing a Rational Function  
This activity 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.  
To examine the decomposition of the rational function  
f(x)=(xò ì 10xñ ì x+50)/(xì 2) on a graph:  
Decomposing a  
Rational Function  
Note: Actual entries are  
displayed in reverse type in  
the example screens.  
1. On the Home screen, enter the  
rational 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  
the history area to highlight  
the last answer. Press  
¸ to copy it to the entry  
line.  
3. Copy the last answer to the  
entry line.  
—or—  
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).  
394  
Chapter 23: Activities  
 
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  
mode is set to Function.  
8. Draw the graph.  
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: Activities  
395  
Studying Statistics: Filtering Data by Categories  
This activity 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.  
Each student is placed into one of eight categories depending on the  
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.  
Filtering Data by  
Categories  
Table 1: Category vs. Description  
Category (C2) Academic Year and Sex  
1
2
3
4
5
6
7
8
Freshman boys  
Freshman girls  
Sophomore boys  
Sophomore girls  
Junior boys  
Junior girls  
Senior boys  
Senior girls  
Table 2: C1 (weight of each student in pounds) vs. C2 (category)  
C1  
C2  
C1  
C2  
C1  
C2  
C1  
C2  
110  
125  
105  
120  
140  
85  
80  
90  
80  
95  
1
1
1
1
1
2
2
2
2
2
115  
135  
110  
130  
150  
90  
95  
85  
100  
95  
3
3
3
3
3
4
4
4
4
4
130  
145  
140  
145  
165  
100  
105  
115  
110  
120  
5
5
5
5
5
6
6
6
6
6
145  
160  
165  
170  
190  
110  
115  
125  
120  
125  
7
7
7
7
7
8
8
8
8
8
396  
Chapter 23: Activities  
 
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  
plots to compare different  
subsets of the entire data  
set.  
3. Open the Plot Setup toolbar  
menu.  
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: Activities  
397  
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  
Plot 5 should be selected.  
8. In the Y= Editor, deselect any  
functions that may be selected  
from a previous activity.  
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  
median, all students  
all girls  
398  
Chapter 23: Activities  
 
CBL 2/CBL Program for the TI-89 / TI-92 Plus  
This activity provides a program that can be used when the TI-89 / TI-92 Plus is connected  
to a Calculator-Based Laboratoryé (CBL 2é/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 / TI-92 Plus.  
More TI-89 / TI-92 Plus CBL 2/CBL programs are available from the TI web site at:  
education.ti.com/cbl  
Program Instruction  
Description  
:cooltemp()  
Program name  
:Prgm  
:Local i  
Declare local variable; exists only at run time.  
Set up the TI-89 / TI-92 Plus for function graphing.  
Turn off any previous plots.  
:setMode("Graph","FUNCTION")  
:PlotsOff  
:FnOff  
Turn off any previous functions.  
Clear any items previously drawn on graph screens.  
Clear any previous graphs.  
:ClrDraw  
:ClrGraph  
Clear the TI-89 / TI-92 Plus Program IO (input/output) screen.  
Set up the Window variables.  
:ClrIO  
:-10!xmin:99!xmax:10!xscl  
:-20!ymin:100!ymax:10!yscl  
:{0}!data  
Create and/or clear a list named data.  
Create and/or clear a list named time.  
:{0}!time  
Send a command to clear the CBL 2/CBL unit.  
Set up Chan. 2 of the CBL 2/CBL to AutoID to record temp.  
Prompt the user to press ¸.  
:Send{1,0}  
:Send{1,2,1}  
:Disp "Press ENTER to start"  
:Disp "graphingTemperature."  
:Pause  
Wait until the user is ready to start.  
Label the y axis of the graph.  
Label the x axis of the graph.  
Send the Trigger command to the CBL 2/CBL; collect data in  
real-time.  
Repeat next two instructions for 99 temperature readings.  
Get a temperature from the CBL 2/CBL and store it in a list.  
Plot the temperature data on a graph.  
:PtText "TEMP(C)",2,99  
:PtText "T(S)",80,-5  
:Send{3,1,-1,0}  
:
:For i,1,99  
:Get data[i]  
:PtOn i,data[i]  
:EndFor  
:seq(i,i,1,99,1)!time  
:NewPlot 1,1,time,data,,,,4  
:DispG  
Create a list to represent time or data sample number.  
Plot time and data using NewPlot and the Trace tool.  
Display the graph.  
:PtText "TEMP(C)",2,99  
:PtText "T(S)",80,-5  
:EndPrgm  
Re-label the axes.  
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.  
Chapter 23: Activities  
399  
 
Studying the Flight of a Hit Baseball  
This activity 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.  
Perform the following steps to study the flight of a hit baseball that  
has an initial velocity of 95 feet per second and an initial angle of 32  
degrees.  
Setting Up a  
Parametric Graph  
and Table  
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  
the degree symbol.  
3. In the Y= Editor on the left  
side, enter the equation for the  
distance of the ball at time t for  
xt1(t).  
xt1(t)=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(t)=M16ùt^2+95ùtù  
sin(32¡)  
400  
Chapter 23: Activities  
 
5. Set the Window variables to:  
t values=  
x values=  
y values=  
[0,4,.1]  
[0,300,50]  
[0,100,10]  
Hint: Press 2 a.  
Hint: Press ¥ &.  
Hint: Press ¥ '.  
6. Switch to the right side and  
display the graph.  
7. Display the TABLE SETUP  
dialog box, and change tblStart  
to 0 and @tbl to 0.1.  
8. Display the table in the left  
side and press Dto highlight  
t=2.  
Note: As you move the  
trace cursor from tc=0.0 to  
tc=3.1, you will see the  
9. Switch to the right side. Press  
, and trace the graph to  
show the values of xc and yc  
when tc=2.  
position of the ball at time tc.  
Assuming the same initial velocity of 95 feet per second, find the  
angle that the ball should be hit to achieve the greatest distance.  
Optional Exercise  
Chapter 23: Activities  
401  
Visualizing Complex Zeros of a Cubic Polynomial  
This activity 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.  
Perform the following steps to expand the cubic polynomial  
(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.  
Visualizing Complex  
Roots  
1. On the Home screen, use the  
expand() function to expand  
the cubic expression  
(xì 1)(xì i) (x+i) and see the first  
polynomial.  
Hint: Move the cursor into  
the history area to highlight  
the last answer and press  
¸, to copy it to the entry  
line.  
2. Copy and paste the last answer  
to the entry line and store it in  
the function f(x).  
Note: The absolute value of  
a function forces any roots  
to visually just touch rather  
than cross the x axis.  
Likewise, the absolute value  
of a function of two variables  
will force any roots to  
3. Use the abs() function to find  
the absolute value of f(x+yi).  
(This calculation may take  
about 2 minutes.)  
4. Copy and paste the last answer  
to the entry line and store it in  
the function z1(x,y).  
visually just touch the xy  
plane.  
Note: The graph of z1(x,y)  
will be the modulus surface.  
5. Set the unit to 3D graph mode,  
turn on the axes for graph  
format, and set the Window  
variables to:  
eye=  
x=  
y=  
z=  
[20,70,0]  
[ë 2,2,20]  
[ë 2,2,20]  
[ë 1,2]  
ncontour=  
[5]  
402  
Chapter 23: Activities  
 
Note: Calculating and  
drawing the graph takes  
about three minutes.  
6. In the Y=Editor, press:  
TI-89: ¥ Í  
TI-92 Plus: ¥ F  
and set the 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.  
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.  
Summary  
Chapter 23: Activities  
403  
Solving a Standard Annuity Problem  
This activity can be used to find the interest rate, starting  
principal, number of compounding periods, and future value of  
an annuity.  
Perform the following steps to find the interest rate (i) 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.  
Finding the Interest  
Rate of an Annuity  
1. On the Home screen, enter the  
equation to solve for p.  
2. Enter the equation to solve  
for n.  
Tip: To enter the “with” (|)  
operator:  
TI-89: Í  
3. Enter the equation to solve for  
i using the “with” operator.  
TI-92 Plus: 2 È  
solve(s=pù (1+i)^n,i) | s=2000 and  
p=1000 and n=6  
Tip: Press ¥ ¸ to  
Result: The interest rate is  
12.246%.  
obtain a floating-point result.  
Find the future value of an annuity using the values from the  
previous example where the interest rate is 14%.  
Finding the Future  
Value of an Annuity  
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.  
404  
Chapter 23: Activities  
 
Computing the Time-Value-of-Money  
This activity 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.  
In the Program Editor, define the following Time-Value-of-Money  
(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).  
Time-Value-of-  
Money Function  
:tvm(temp1,temp2,temp3,temp4,temp5,temp6)  
:Func  
:Local tempi,tempfunc,tempstr1  
:ë temp3+(1+temp2/1200ù temp6)ù temp4ù ((1ì (1+temp2/1200)^  
Tip: You can use your  
computer keyboard to type  
lengthy text and then use  
TI-GRAPH LINK to send it  
to the TI-89 / TI-92 Plus.  
(ë 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  
Find the monthly payment on 10,000 if you make 48 payments at 10%  
interest per year.  
Finding the Monthly  
Payment  
On the Home screen, enter the tvm  
values to find pmt.  
Result: The monthly payment is  
251.53.  
Find the number of payments it will take to pay off the loan if you  
could make a 300 payment each month.  
Finding the Number  
of Payments  
On the Home screen, enter the tvm  
values to find n.  
Result: The number of payments  
is 38.8308.  
Chapter 23: Activities  
405  
 
Finding Rational, Real, and Complex Factors  
This activity 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.  
Enter the expressions shown below on the Home screen.  
Finding Factors  
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.  
406  
Chapter 23: Activities  
 
Simulation of Sampling without Replacement  
This activity 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.  
In the Program Editor, define drawball() as a function that can be  
called with two parameters. The first parameter is a list where each  
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.  
Sampling-without-  
Replacement  
Function  
:drawball(urnlist,drawnum)  
:Func  
:If pick  urncum[j] Then  
:drawlist[j]+1! drawlist[j]  
:templist[j]ì 1! templist[j]  
:Exit  
:EndIf  
:EndFor  
:EndFor  
:Return drawlist  
:EndFunc  
:Local templist,drawlist,colordim,  
numballs,i,pick,urncum,j  
:If drawnum>sum(urnlist)  
:Return “too few balls”  
:dim(urnlist)! colordim  
:urnlist! templist  
:newlist(colordim)! drawlist  
:For i,1,drawnum,1  
:sum(templist)! numballs  
:rand(numballs)! pick  
:For j,1,colordim,1  
:cumSum(templist)! urncum  
(continued in next column)  
Suppose an urn contains n1 balls of a color, n2 balls of a second  
color, n3 balls of a third color, etc. Simulate drawing balls without  
replacing them.  
Sampling without  
Replacement  
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: Activities  
407  
 
408  
Chapter 23: Activities  
Functions and Instructions  
Quick-Find Locator ................................................................................ 410  
Alphabetical Listing of Operations ...................................................... 414  
A
This appendix describes the syntax and the action of each TI-89 / TI-92 Plus 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  
In a ZoomSqr viewing window:  
Circle x, y, r [, drawMode]  
Draws a circle with its center at window  
coordinates (x, y) and with a radius of r.  
ZoomSqr:Circle 1,2,3  
¸
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: Functions and Instructions  
409  
   
Quick-Find Locator  
This section lists the TI-89 / TI-92 Plus functions and  
| ("with")  
538  
425  
447  
474  
503  
519  
cFactor()  
cZeros  
getDenom()  
propFrac()  
tCollect()  
comDenom() 421  
Algebra  
cSolve()  
factor()  
nSolve()  
solve()  
expand()  
getNum()  
randPoly()  
tExpand()  
zeros()  
Calculus  
Graphics  
() (integrate) 532  
Π() (product) 533  
G() (sum)  
d()  
fMin()  
nInt()  
arcLen()  
deSolve()  
limit()  
416  
434  
460  
536  
avgRC()  
fMax()  
nDeriv()  
seq()  
' (prime)  
taylor()  
AndPic  
ClrDraw  
DrawFunc  
DrawPol  
FnOff  
Line  
LineVert  
PtOff  
PtText  
PxlHorz  
PxlOn  
PxlVert  
RplcPic  
StoPic  
415  
420  
439  
440  
449  
461  
462  
483  
483  
484  
484  
485  
493  
507  
519  
522  
523  
524  
525  
BldData  
ClrGraph  
DrawInv  
DrawSlp  
FnOn  
LineHorz  
NewPic  
PtOn  
PxlChg  
PxlLine  
pxlTest()  
RclGDB  
Shade  
418  
488  
498  
508  
521  
523  
524  
524  
525  
Circle  
420  
485  
489  
507  
515  
522  
523  
524  
525  
CyclePic  
DrawParm  
DrwCtour  
Graph  
LineTan  
PtChg  
ptTest()  
PxlCrcl  
PxlOff  
PxlText  
RclPic  
StoGDB  
Trace  
ZoomData  
ZoomIn  
ZoomPrev  
ZoomStd  
Style  
XorPic  
ZoomBox  
ZoomFit  
ZoomOut  
ZoomSqr  
ZoomTrig  
ZoomDec  
ZoomInt  
ZoomRcl  
ZoomSto  
Lists  
+ (add)  
à (divide)  
augment()  
dim()  
left()  
mat4list()  
min()  
product()  
shift()  
sum()  
526  
527  
417  
437  
460  
467  
469  
482  
499  
508  
ì (subtract)  
ë (negate)  
crossP()  
dotP()  
list4mat()  
max()  
newList()  
right()  
SortA  
526  
528  
425  
439  
463  
467  
471  
491  
506  
ù (multiply)  
^ (power)  
cumSum()  
exp4list()  
@list()  
mid()  
polyEval()  
rotate()  
527  
534  
428  
444  
463  
468  
480  
491  
506  
SortD  
410  
Appendix A: Functions and Instructions  
 
Math  
+ (add)  
à (divide)  
526  
527  
531  
535  
ì (subtract)  
ë (negate)  
() (sqr. root) 533  
 (angle)  
4 (convert)  
4Bin  
4Dec  
4Polar  
abs()  
approx()  
cos  
coshê()  
exact()  
gcd()  
intDiv()  
lcm()  
max()  
ù (multiply)  
% (percent)  
^ (power)  
¡, ', "  
10^()  
4Cylind  
4DMS  
438  
489  
414  
418  
424  
441  
448  
457  
459  
463  
469  
474  
535  
489  
492  
501  
502  
511  
514  
!
¡
(factorial)  
(degree)  
480  
414  
416  
423  
424  
443  
451  
458  
460  
467  
470  
476  
487  
491  
500  
502  
511  
514  
_ (underscore) 536  
0b, 0h  
4DD  
4Hex  
4Sphere  
angle()  
conj()  
cosh()  
e^()  
fpart()  
int()  
isPrime()  
log()  
mod()  
P4Rx()  
R4Pq()  
remain()  
shift()  
sinê()  
tan()  
539  
432  
456  
506  
415  
422  
424  
441  
451  
458  
459  
465  
469  
476  
487  
490  
499  
501  
510  
511  
538  
4Rect  
and  
ceiling()  
cosê()  
E
floor()  
imag()  
iPart()  
ln()  
min()  
nPr()  
nCr()  
r
P4Ry()  
R4Pr()  
rotate()  
sign()  
sinh()  
tanê()  
tmpCnv()  
(radian)  
real()  
round()  
sin()  
sinhê()  
tanh()  
@tmpCnv()  
tanhê()  
xê  
Matrices  
+ (add)  
à (divide)  
.. (dot subt.)  
526  
527  
531  
ì (subtract)  
ë (negate)  
. (dot mult.)  
^ (power)  
colNorm()  
det()  
dotP()  
Fill  
LU  
mean()  
mRow()  
norm()  
randMat()  
rowDim()  
rref()  
526  
528  
531  
534  
421  
436  
439  
448  
466  
467  
469  
473  
488  
492  
493  
508  
516  
ù (multiply)  
.+ (dot add)  
. / (dot divide) 531  
augment()  
crossP()  
diag()  
527  
530  
.^ (dot power) 531  
417  
425  
436  
442  
456  
467  
467  
470  
482  
490  
493  
500  
508  
517  
colDim()  
cumSum()  
dim()  
eigVl()  
list4mat()  
max()  
min()  
newMat()  
QR  
rowAdd()  
rowSwap()  
stdDev()  
T
421  
428  
437  
442  
463  
467  
469  
471  
485  
492  
493  
506  
509  
538  
eigVc()  
identity()  
mat4list()  
median()  
mRowAdd()  
product()  
ref()  
rowNorm()  
simult()  
sum()  
subMat()  
unitV()  
variance()  
xê  
Appendix A: Functions and Instructions  
411  
 
Programming  
=
529  
530  
529  
451  
453  
454  
456  
459  
464  
469  
473  
477  
481  
490  
491  
494  
496  
507  
510  
513  
516  
518  
<
>
# (indirection) 534  
and  
ClrErr  
ClrIO  
! (store)  
ans()  
¦ (comment) 539  
414  
420  
421  
428  
429  
434  
438  
440  
443  
443  
443  
443  
444  
451  
452  
453  
455  
458  
460  
466  
472  
476  
479  
482  
491  
494  
495  
497  
509  
513  
515  
517  
Archive  
ClrHome  
CopyVar  
Custom  
DelFold  
Disp  
DispTbl  
ElseIf  
EndFor  
EndLoop  
EndTry  
Exec  
format()  
GetCalc  
getKey()  
getUnits()  
Input  
Lbl  
Lock  
NewFold  
or  
PassErr  
Prgm  
Request  
Send  
setFold()  
setTable()  
Style  
452  
453  
454  
457  
459  
464  
471  
475  
479  
481  
490  
494  
495  
497  
508  
513  
515  
516  
518  
ClrGraph  
ClrTable  
CustmOn  
Define  
Dialog  
DispHome  
Else  
EndDlog  
EndIf  
EndTBar  
entry()  
For  
CustmOff  
Cycle  
DelVar  
DispG  
DropDown  
EndCustm  
EndFunc  
EndPrgm  
EndWhile  
Exit  
Func  
Get  
getConfg()  
getMode()  
Goto  
InputStr  
left()  
getFold()  
getType()  
If  
Item  
Local  
MoveVar  
not  
part()  
PopUp  
Rename  
right()  
SendChat  
setMode()  
Stop  
Loop  
NewProb  
Output  
Pause  
Prompt  
Return  
SendCalc  
setGraph()  
setUnits()  
switch()  
Then  
Table  
Title  
Unarchiv  
While  
Text  
Toolbar  
Unlock  
xor  
Try  
when()  
Statistics  
! (factorial)  
cumSum()  
LnReg  
median()  
NewData  
OneVar  
PowerReg  
rand()  
ShowStat  
SortD  
531  
428  
464  
467  
471  
475  
481  
488  
500  
506  
517  
BldData  
ExpReg  
Logistic  
MedMed  
NewPlot  
PlotsOff  
QuadReg  
randNorm()  
SinReg  
418  
446  
465  
468  
472  
480  
486  
488  
503  
506  
CubicReg  
LinReg  
mean()  
nCr()  
428  
462  
467  
470  
474  
480  
487  
488  
506  
516  
nPr()  
PlotsOn  
QuartReg  
RandSeed  
SortA  
stdDev()  
TwoVar  
variance()  
412  
Appendix A: Functions and Instructions  
 
# (indirection) 534  
char()  
format()  
mid()  
419  
450  
468  
491  
Strings  
& (append)  
dim()  
inString()  
ord()  
532  
437  
458  
476  
499  
expr()  
446  
460  
491  
508  
left()  
right()  
string()  
rotate()  
shift()  
Appendix A: Functions and Instructions  
413  
 
Alphabetical Listing of Operations  
Operations whose names are not alphabetic (such as +, !, and >) are listed at the end of  
this appendix, starting on page 526. 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  
abs(list1) list  
abs(matrix1)  
p
p
abs({p/2,ë p/3}) ¸  
{
}
2 3  
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.  
x2 y2  
+
abs(x+yi) ¸  
Note: All undefined variables are treated as  
real variables.  
and  
MATH/Test and MATH/Base menus  
Boolean expression1 and expression2  
x3 and x4¸  
x4  
Boolean expression  
{x3,x0} and {x4,xë2}¸  
Boolean list1 and list2  
Boolean matrix1 and matrix2  
Boolean list  
Boolean  
{x4 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  
an and operation. Internally, both integers are  
converted to signed, 32-bit binary numbers.  
When corresponding bits are compared, the  
result is 1 if both bits are 1; otherwise, the  
result is 0. The returned value represents the  
bit results, and is displayed according to the  
Base mode.  
0h7AC36 and 0h3D5F ¸ 0h2C16  
Important: Zero, not the letter O.  
In Bin base mode:  
0b100101 and 0b100 ¸  
0b100  
4
In Dec base mode:  
You can enter the integers in any number  
base. For a binary or hexadecimal entry, you  
must use the 0b or 0h prefix, respectively.  
Without a prefix, integers are treated as  
decimal (base 10).  
37 and 0b100 ¸  
Note: A binary entry can have up to 32  
digits (not counting the 0b prefix). A  
hexadecimal entry can have up to 8 digits.  
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.  
414  
Appendix A: Functions and Instructions  
 
AndPic  
CATALOG  
AndPic picVar[, row, column]  
Displays the Graph screen and logically  
In function graphing mode and Y= Editor:  
y1(x) = cos(x) C  
“ANDS” the picture stored in picVar and the  
current graph screen at pixel coordinates  
(row, column).  
TI-89: 2ˆ Style = 3:Square  
TI-92 Plus: ˆ Style = 3:Square  
Zoom = 7:ZoomTrig  
ƒ = 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)  
TI-89: 2ˆ Style = 3:Square  
TI-92 Plus: ˆ Style = 3:Square  
y1 = no checkmark (F4 to  
deselect)  
Zoom = 7:ZoomTrig  
TI-89:  
"
TI-92 Plus: ¥"  
AndPic PIC1¸  
Done  
angle()  
MATH/Complex menu  
angle(expression1)  
expression  
In Degree angle mode:  
angle(0+2i)¸  
90  
Returns the angle of expression1, interpreting  
expression1 as a complex number.  
In Radian angle mode:  
Note: All undefined variables are treated as  
p
4
real variables.  
angle(1+i)¸  
angle(z)¸  
angle(x+iy)¸  
angle(list1)  
angle(matrix1)  
list  
In Radian angle mode:  
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: Functions and Instructions  
415  
 
ans()  
2 ± key  
ans()  
ans(integer)  
value  
To use ans() to generate the Fibonacci  
sequence on the Home screen, press:  
value  
1¸  
1¸  
1
1
2
3
5
Returns a previous answer from the  
Home screen history area.  
2 ± « 2 ± A 0 2¸  
¸
¸
integer, if included, specifies which previous  
answer to recall. Valid range for integer is  
from 1 to 99 and cannot be an expression.  
Default is 1, the most recent answer.  
approx() MATH/Algebra menu  
approx(p)¸  
3.141...  
approx(expression)  
value  
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({sin(p),cos(p)})¸  
{0. ë1.}  
approx(list1)  
approx(matrix1)  
list  
matrix  
Returns a list or matrix where each element  
has been evaluated to a decimal value, when  
possible.  
approx([(2),(3)])¸  
[1.414... 1.732...]  
Archive  
CATALOG  
10!arctest ¸  
Archive arctest ¸  
5ùarctest ¸  
10  
Done  
50  
Archive var1 [, var2] [, var3] …  
Moves the specified variables from RAM to  
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 ¸  
15!arctest ¸  
Done  
15  
arcLen() MATH/Calculus menu  
arcLen(cos(x),x,0,p)¸ 3.820...  
arcLen(expression1,var,start,end)  
expression  
Returns the arc length of expression1 from  
start to end with respect to variable var.  
arcLen(f(x),x,a,b)¸  
b
d
dx  
Regardless of the graphing mode, arc length  
is calculated as an integral assuming a  
function mode definition.  
( (f(x)))ñ+1 dx  
a
arcLen({sin(x),cos(x)},x,0,p)  
arcLen(list1,var,start,end)  
list  
{3.820... 3.820...}  
Returns a list of the arc lengths of each  
element of list1 from start to end with  
respect to var.  
416  
Appendix A: Functions and Instructions  
 
augment() MATH/Matrix menu  
augment({1,ë3,2},{5,4})¸  
{1 ë3 2 5 4}  
augment(list1, list2)  
list  
Returns a new list that is list2 appended to  
the end of list1.  
1 2  
augment(matrix1, matrix2)  
augment(matrix1; matrix2)  
matrix  
matrix  
[1,2;3,4]!M1¸  
[ ]  
3 4  
5
[5;6]!M2¸  
[ ]  
6
Returns a new matrix that is matrix2  
appended to matrix1. When the “,” character  
is used, the matrices must have equal row  
dimensions, and matrix2 is appended to  
matrix1 as new columns. When the “;”  
character is used, the matrices must have  
equal column dimensions, and matrix2 is  
appended to matrix1 as new rows. Does not  
alter matrix1 or matrix2.  
1 2 5  
augment(M1,M2)¸  
[
]
3 4 6  
5 6  
[ ]  
[5,6]!M2¸  
1 2  
3 4  
5 6  
augment(M1;M2)¸  
avgRC()  
CATALOG  
avgRC(f(x),x,h)¸  
avgRC(expression1, var [, h])  
expression  
f(x+h) - f(x)  
Returns the forward-difference quotient  
(average rate of change).  
h
avgRC(sin(x),x,h)|x=2¸  
expression1 can be a user-defined function  
name (see Func).  
sin(h+2) - sin(2)  
h
h is the step value. If h is omitted, it defaults  
to 0.001.  
avgRC(x^2ìx+2,x)¸  
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  
2564Bin ¸  
0b100000000  
0b11111  
integer1 4Bin  
integer  
Converts integer1 to a binary number. Binary  
or hexadecimal numbers always have a 0b or  
0h prefix, respectively.  
0h1F4Bin ¸  
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: Functions and Instructions  
417  
 
BldData  
CATALOG  
BldData [dataVar]  
Creates data variable dataVar based on the  
In function graphing mode and Radian  
angle mode:  
8ùsin(x)!y1(x) ¸  
2ùsin(x)!y2(x) ¸  
ZoomStd ¸  
Done  
Done  
information used to plot the current graph.  
BldData is valid in all graphing modes.  
If dataVar is omitted, the data is stored in the  
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  
the right) are calculated according to the  
Window variable values.  
TI-89:  
"
TI-92 Plus: ¥ "  
BldData ¸  
O 6 ¸  
Done  
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  
variables. In the sample data to the right,  
notice that x remains constant as y  
Note: The following sample data is from a  
3D graph.  
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(0.456)¸  
1.  
ceiling(expression1)  
integer  
Returns the nearest integer that is the  
argument.  
The argument can be a real or a complex  
number.  
Note: See also floor().  
ceiling({ë3.1,1,2.5})¸  
ceiling(list1)  
ceiling(matrix1)  
list  
matrix  
{ë3. 1 3.}  
Returns a list or matrix of the ceiling of each  
element.  
ceiling([0,ë3.2i;1.3,4])¸  
ë3.øi  
0
2.  
[
]
4
418  
Appendix A: Functions and Instructions  
 
cFactor() MATH/Algebra/Complex menu  
cFactor(expression1[, var])  
cFactor(list1[,var]) list  
cFactor(matrix1[,var])  
expression  
cFactor(a^3ùx^2+aùx^2+a^3+a)  
¸
aø(a+ëi)ø(a+ i)ø(x+ëi)ø(x+i)  
matrix  
cFactor(x^2+4/9)¸  
cFactor(expression1) returns expression1  
factored with respect to all of its variables  
over a common denominator.  
(3øx+ë2øi)ø(3øx+2ø i)  
9
expression1 is factored as much as possible  
toward linear rational factors even if this  
introduces new non-real numbers. This  
alternative is appropriate if you want  
factorization with respect to more than one  
variable.  
cFactor(x^2+3)¸  
xñ +3  
cFactor(x^2+a)¸  
xñ +a  
cFactor(expression1,var) returns expression1  
factored with respect to variable var.  
cFactor(a^3ùx^2+aùx^2+a^3+a,x)  
¸
aø(añ +1)ø(x+ë i)ø(x+i)  
expression1 is factored as much as possible  
toward factors that are linear in var, with  
perhaps non-real constants, even if it  
introduces irrational constants or  
subexpressions that are irrational in other  
variables.  
cFactor(x^2+3,x)¸  
(x+3ø i)ø(x+ë3ø i)  
cFactor(x^2+a,x)¸  
(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.  
cFactor(x^5+4x^4+5x^3ì6xì3)  
¸
For the AUTO setting of the Exact/Approx  
mode, including var also permits  
approximation with floating-point  
x5 +4øx4 +5øx3 ì6øxì3  
coefficients where irrational coefficients  
cannot be explicitly expressed concisely in  
terms of the built-in functions. Even when  
there is only one variable, including var might  
yield more complete factorization.  
cFactor(ans(1),x)¸  
(xì.965)ø(x+.612)ø(x+2.13)ø  
(x+1.11ì 1.07øi)ø  
(x+1.11+1.07øi)  
Note: See also factor().  
char()  
MATH/String menu  
char(38)¸  
"&"  
"A"  
char(integer)  
character  
Returns a character string containing the  
character numbered integer from the  
TI-89 / TI-92 Plus character set. See  
Appendix B for a complete listing of  
character codes.  
char(65)¸  
The valid range for integer is 0–255.  
Appendix A: Functions and Instructions  
419  
 
Circle  
CATALOG  
Circle x, y, r [, drawMode]  
In a ZoomSqr viewing window:  
ZoomSqr:Circle 1,2,3¸  
Draws a circle with its center at window  
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:  
TI-89: 2 ˆ  
TI-92 Plus: ˆ  
and selecting 1:ClrDraw.  
ClrErr  
CATALOG  
Program listing:  
ClrErr  
Clears the error status. It sets errornum to  
zero and clears the internal error context  
variables.  
:clearerr()  
:Prgm  
:PlotsOff:FnOff:ZoomStd  
:For i,0,238  
:@xù i+xmin! xcord  
The Else clause of the Try...EndTry 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. If there are no more pending  
Try...EndTry error handlers, the error dialog  
box will be displayed as normal.  
: Try  
: PtOn xcord,ln(xcord)  
: Else  
: If errornum=800 or  
errornum=260 Then  
:
ClrErr ¦ clear the error  
: 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.  
420  
Appendix A: Functions and Instructions  
 
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([0,1,2;3,4,5])¸  
3
colDim(matrix)  
expression  
Returns the number of columns contained in  
matrix.  
Note: See also rowDim().  
colNorm() MATH/Matrix/Norms menu  
[1,ë 2,3;4,5,ë 6]! mat¸  
colNorm(matrix)  
expression  
1 ë 2 3  
4 5 ë 6  
Returns the maximum of the sums of the  
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])  
comDenom(list1[,var]) list  
comDenom(matrix1[,var])  
expression  
comDenom((y^2+y)/(x+1)^2+y^2+y)  
¸
matrix  
comDenom(expression1) returns a reduced ratio  
of a fully expanded numerator over a fully  
expanded denominator.  
Appendix A: Functions and Instructions  
421  
 
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  
comprehensible. It also makes subsequent  
operations on the result faster and less likely to  
exhaust memory.  
comDenom((y^2+y)/(x+1)  
^2+y^2+y,y) ¸  
If var does not occur in expression1,  
comDenom(expression1,var) returns a reduced  
ratio of an unexpanded numerator over an  
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.  
comDenom(exprn,abc)!comden  
(exprn) ¸  
Done  
comden((y^2+y)/(x+1)^2+y^2+y)  
¸
Even when there is no denominator, the  
comden function is often a fast way to achieve  
partial factorization if factor() is too slow or if it  
exhausts memory.  
comden(1234x^2ù (y^3ì y)+2468x  
ù (y^2ì 1))¸  
1234ø xø (xø y+2)ø (yñ ì 1)  
Hint: Enter this comden() function definition  
and routinely try it as an alternative to  
comDenom() and factor().  
conj()  
MATH/Complex menu  
conj(1+2i)¸  
1ì 2ø i  
conj(expression1)  
conj(list1) list  
conj(matrix1)  
expression  
matrix  
conj([2,1ì 3i;ë i,ë 7])¸  
Returns the complex conjugate of the  
argument.  
2 1+3ø i  
ë 7  
i
Note: All undefined variables are treated as  
real variables.  
conj(z)  
z
conj(x+iy)  
x+ë iø y  
CopyVar CATALOG  
x+y! a¸  
10! x¸  
CopyVar a,b¸  
a! c¸  
DelVar x¸  
b¸  
x+y  
10  
CopyVar var1, var2  
Copies the contents of variable var1 to var2.  
If var2 does not exist, CopyVar creates it.  
Done  
y+10  
Done  
x+y  
y+10  
Note: CopyVar is similar to the store  
instruction (! ) when you are copying an  
expression, list, matrix, or character string  
except that no simplification takes place  
when using CopyVar. You must use CopyVar  
with non-algebraic variable types such as Pic  
and GDB variables.  
c¸  
422  
Appendix A: Functions and Instructions  
 
cos()  
TI-89: 2 X key  
cos(expression1) expression  
cos(list1) list  
TI-92 Plus: X key  
In Degree angle mode:  
2  
2
cos((p/4)ô )¸  
cos(expression1) returns the cosine of the  
argument as an expression.  
2  
2
cos(45)¸  
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  
current angle mode setting. You can use  
ó or ô to override the angle mode  
temporarily.  
In Radian angle mode:  
2  
2
cos(p/4)¸  
2  
2
cos(45¡)¸  
cos(squareMatrix1)  
squareMatrix  
In Radian angle mode:  
cos([1,5,3;4,2,1;6,ë 2,1]) ¸  
Returns the matrix cosine of squareMatrix1.  
This is not the same as calculating the cosine  
of each element.  
.212… .205…  
.160… .259…  
.121…  
.037…  
When a scalar function f(A) operates on  
squareMatrix1 (A), the result is calculated by  
the algorithm:  
.248… ë.090… .218…  
1. Compute the eigenvalues (li) 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:  
l1  
0
0
0
… 0  
l2 … 0  
0
0
B =  
and X = [V1,V2, … ,Vn]  
… 0  
ln  
0
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
K
K
K
0
0
0
0
cos(λ2)  
0
0
cos (B) =  
0
0
cos(λn)  
All computations are performed using  
floating-point arithmetic.  
Appendix A: Functions and Instructions  
423  
 
cosê()  
TI-89: ¥ R key  
TI-92 Plus: 2 R key  
In Degree angle mode:  
cosê (expression1)  
cosê (list1) list  
expression  
cosê (1) ¸  
0
cosê (expression1) returns the angle whose  
cosine is expression1 as an expression.  
In Radian angle mode:  
cosê ({0,.2,.5})¸  
cosê (list1) returns a list of the inverse  
cosines of each element of list1.  
p
{
1.369... 1.047...}  
2
Note: The result is returned as either a  
degree or radian angle, according to the  
current angle mode setting.  
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  
calculating the inverse cosine of each  
element. For information about the  
calculation method, refer to cos().  
cosê([1,5,3;4,2,1;6,ë 2,1])  
¸
1.734…+.064…øi  
ë.725…+1.515…øi .623…+.778…øi  
ë 2.083…+2.632…øi 1.790…ì 1.271…øi …  
ë 1.490…+2.105…øi …  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
cosh()  
MATH/Hyperbolic menu  
cosh(1.2)¸  
1.810...  
cosh(expression1)  
expression  
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:  
cosh([1,5,3;4,2,1;6,ë 2,1])  
¸
Returns the matrix hyperbolic cosine of  
squareMatrix1. This is not the same as  
calculating the hyperbolic cosine of each  
element. For information about the  
calculation method, refer to cos().  
421.255 253.909 216.905  
327.635 255.301 202.958  
226.297 216.623 167.628  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
coshê()  
MATH/Hyperbolic menu  
coshê (1)¸  
0
coshê (expression1)  
expression  
coshê (list1) list  
coshê ({1,2.1,3})¸  
coshê (expression1) returns the inverse  
hyperbolic cosine of the argument as an  
expression.  
{0 1.372... coshê (3)}  
coshê (list1) returns a list of the inverse  
hyperbolic cosines of each element of list1.  
424  
Appendix A: Functions and Instructions  
 
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  
calculating the inverse hyperbolic cosine of  
each element. For information about the  
calculation method, refer to cos().  
coshê([1,5,3;4,2,1;6,ë 2,1])  
¸
2.525…+1.734…øi ë.009…ì 1.490…øi …  
.486…ì.725…øi  
1.662…+.623…øi  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
ë.322…ì 2.083…øi 1.267…+1.790…øi …  
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  
the dimension must be either 2 or 3.  
{ë 2.5 ë 5. ë 2.25}  
crossP([1,2,3],[4,5,6])¸  
crossP(vector1, vector2)  
vector  
[ë 3 6 ë 3]  
Returns a row or column vector (depending  
on the arguments) that is the cross product  
of vector1 and vector2.  
crossP([1,2],[3,4])¸  
[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(x^3=ë 1,x)¸  
cSolve(equation, var)  
Boolean expression  
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 / TI-92 Plus processes all  
undefined variables as if they were real,  
cSolve() can solve polynomial equations for  
complex solutions.  
cSolve(x^(1/3)=ë 1,x)¸ false  
cSolve() temporarily sets the domain to  
complex during the solution even if the  
current domain is real. In the complex  
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().  
solve(x^(1/3)=ë 1,x)¸ x=ë 1  
Appendix A: Functions and Instructions  
425  
 
cSolve() starts with exact symbolic methods.  
Except in EXACT mode, cSolve() also uses  
iterative approximate complex polynomial  
factoring, if necessary.  
Display Digits mode in Fix 2:  
exact(cSolve(x^5+4x^4+5x  
^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 _  
(TI-89: ¥  TI-92 Plus: 2 ) at the end  
of var. By default, a variable is treated as a  
real value.  
If you use var_ , the variable is treated as  
complex.  
z is treated as real:  
cSolve(conj(z)=1+i,z) ¸  
You should also use var_ for any other  
variables in equation that might have unreal  
values. Otherwise, you may receive  
unexpected results.  
z=1+i  
z_ is treated as complex:  
cSolve(conj(z_)=1+i,z_) ¸  
z_=1i  
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  
you do NOT specify any initial guesses,  
Note: The following examples use an  
underscore _ (TI-89: ¥   
cSolve() uses the lexical Gröbner/Buchberger TI-92 Plus: 2 ) so that the variables  
elimination method to attempt to determine  
will be treated as complex.  
all complex solutions.  
cSolve(u_ù v_ì u_=v_ and  
v_^2=ë u_,{u_,v_}) ¸  
Complex solutions can include both real and  
non-real solutions, as in the example to the  
right.  
u_=1/2 + 3øi and v_=1/2 ì 3øi  
2
2
or u_=1/2 ì 3øi and v_=1/2 + 3øi  
2
2
or u_=0 and v_=0  
426  
Appendix A: Functions and Instructions  
cSolve(u_ù v_ì u_=c_ù v_ and  
v_^2=ë u_,{u_,v_}) ¸  
Simultaneous polynomial equations can have  
extra variables that have no values, but  
represent given numeric values that could be  
substituted later.  
1ì4øc_+1)2  
1ì4øc_+1  
ë(  
u_=  
or  
andv_=  
4
2
1ì4øc_ì1)2  
4
1ì4øc_ì1)  
2
ë(  
ë(  
u_=  
andv_=  
or u_=0 and v_=0  
cSolve(u_ù v_ì u_=v_ and  
v_^2=ë u_,{u_,v_,w_}) ¸  
You can also include solution variables that  
do not appear in the equations. These  
solutions show how families 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.  
u_=1/2 + 3øi and v_=1/2 ì 3øi  
2
2
and w_=@1  
or  
u_=1/2 ì 3øi and v_=1/2 + 3øi  
2
2
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.  
and w_=@1  
or u_=0 and v_=0 and w_=@1  
cSolve(u_+v_=e^(w_) and u_ì v_=  
If you do not include any guesses and if any  
equation is non-polynomial in any variable  
but all equations are linear in all solution  
variables, cSolve() uses Gaussian elimination  
to attempt to determine all solutions.  
i, {u_,v_}) ¸  
ew_ì i  
ew_  
2
u_=  
+1/2øi and v_=  
2
cSolve(e^(z_)=w_ and w_=z_^2,  
{w_,z_}) ¸  
If a system is neither polynomial in all of its  
variables nor linear in its solution variables,  
cSolve() determines at most one solution  
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.  
w_=.494… and z_=ë.703…  
cSolve(e^(z_)=w_ and w_=z_^2,  
{w_,z_=1+i}) ¸  
A non-real guess is often necessary to  
determine a non-real solution. For  
convergence, a guess might have to be rather  
close to a solution.  
w_=.149… + 4.891…øi and  
z_=1.588… + 1.540…øi  
Appendix A: Functions and Instructions  
427  
CubicReg MATH/Statistics/Regressions menu  
CubicReg list1, list2[, [list3] [, list4, list5]]  
In function graphing mode.  
{0,1,2,3}! L1¸  
{0,2,3,4}! L2¸  
CubicReg L1,L2¸  
ShowStat¸  
{0 1 2 3}  
{0 2 3 4}  
Done  
Calculates the cubic polynomial regression  
and updates all the statistics variables.  
All the lists must have equal dimensions  
except for list5.  
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.  
¸
regeq(x)"y1(x)¸  
NewPlot 1,1,L1,L2¸  
Done  
Done  
¥ %  
cumSum() MATH/List menu  
cumSum({1,2,3,4})¸  
cumSum(list1)  
list  
{1 3 6 10}  
Returns a list of the cumulative sums of the  
elements in list1, starting at element 1.  
1 2  
3 4  
5 6  
1 2  
4 6  
9 12  
cumSum(matrix1)  
matrix  
[1,2;3,4;5,6]! m1¸  
Returns a matrix of the cumulative sums of  
the elements in matrix1. Each element is the  
cumulative sum of the column from top to  
bottom.  
cumSum(m1)¸  
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.  
428  
Appendix A: Functions and Instructions  
 
Custom  
2 ¾ key  
Custom  
block  
EndCustm  
Sets up a toolbar that is activated when you  
Program listing:  
:Test()  
:Prgm  
:Custom  
:Title "Lists"  
:Item "List1"  
:Item "Scores"  
:Item "L3"  
:Title "Fractions"  
:Item "f(x)"  
:Item "h(x)"  
:Title "Graph"  
:EndCustm  
press 2 ¾. It is very similar to the  
ToolBar instruction except that Title and Item  
statements cannot have labels.  
block can be either a single statement or a  
series of statements separated with the “:”  
character.  
Note: 2 ¾ acts as a toggle. The first  
instance invokes the menu, and the second  
instance removes the menu. The menu is  
removed also when you change applications.  
:EndPrgm  
Cycle  
CATALOG  
Program listing:  
Cycle  
Transfers program control immediately to the :¦ Sum the integers from 1 to  
next iteration of the current loop (For, While,  
or Loop).  
100 skipping 50.  
:0! temp  
:For i,1,100,1  
:If i=50  
Cycle is not allowed outside the three looping  
structures (For, While, or Loop).  
:Cycle  
:temp+i! temp  
:EndFor  
:Disp temp  
Contents of temp after execution:  
5000  
CyclePic CATALOG  
CyclePic picNameString, n [, [wait] , [cycles],  
[direction]]  
1. Save three pics named pic1, pic2, and  
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  
number of times to cycle through the  
pictures, and the direction to go, circular or  
3. The three pictures (3) will be  
displayed automatically—one-half  
second (.5) between pictures, for  
four cycles (4), and forward and  
forward and backwards.  
backwards (ë1).  
direction is 1 for circular or ë 1 for forward  
and backwards. Default = 1.  
4Cylind  
MATH/Matrix/Vector ops menu  
[2,2,3] 4Cylind¸  
[2ø 2   
vector 4Cylind  
p
4
Displays the row or column vector in  
cylindrical form [rq, z].  
3]  
vector must have exactly three elements. It  
can be either a row or a column.  
Appendix A: Functions and Instructions  
429  
 
cZeros() MATH/Algebra/Complex menu  
cZeros(expression, var)  
list  
Display Digits mode in Fix 3:  
Returns a list of candidate real and non-real  
values of var that make expression=0. cZeros()  
does this by computing  
exp8list(cSolve(expression=0,var),var).  
Otherwise, cZeros() is similar to zeros().  
cZeros(x^5+4x^4+5x^3ì 6xì 3,x)  
¸
{ë 2.125 ë.612 .965  
ë 1.114ì 1.073ø i  
ë 1.114+1.073ø i}  
Note: See also cSolve(), solve(), and zeros().  
Note: If expression is non-polynomial with  
functions such as abs(), angle(), conj(), real(),  
or imag(), you should place an underscore _  
(TI-89: ¥  TI-92 Plus: 2 ) at the end  
of var. By default, a variable is treated as a  
real value. If you use var_ , the variable is  
treated as complex.  
z is treated as real:  
cZeros(conj(z)ì 1ì i,z) ¸  
{1+i}  
z_ is treated as complex:  
cZeros(conj(z_)ì 1ì i,z_) ¸  
{1ì i}  
You should also use var_ for any other  
variables in expression that might have unreal  
values. Otherwise, you may receive  
unexpected results.  
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  
you do NOT specify any initial guesses,  
Note: The following examples use an  
underscore _ (TI-89: ¥   
cZeros() uses the lexical Gröbner/Buchberger TI-92 Plus: 2 ) so that the variables  
elimination method to attempt to determine  
will be treated as complex.  
all complex zeros.  
cZeros({u_ù v_ì u_ì v_,v_^2+u_},  
Complex zeros can include both real and  
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  
ordered the same as the varOrGuess list. To  
extract a row, index the matrix by [row].  
1/2 ì 3øi 1/2 + 3øi  
2
2
1/2 + 3øi 1/2 ì 3øi  
2
2
0
0
Extract row 2:  
ans(1)[2] ¸  
1/2 + 3øi 1/2 ì 3øi  
[
]
2
2
430  
Appendix A: Functions and Instructions  
 
cZeros({u_ùv_ìu_ì(c_ùv_),  
v_^2+u_},{u_,v_}) ¸  
Simultaneous polynomials can have extra  
variables that have no values, but represent  
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)  
ë (  
ë (  
4
2
0
0
cZeros({u_ù v_ì u_ì v_,v_^2+u_},  
{u_,v_,w_}) ¸  
You can also include unknown variables that  
do not appear in the expressions. These  
zeros show how families of zeros 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.  
1/2 ì 3øi 1/2 + 3øi @1  
2
2
1/2 + 3øi 1/2 ì 3øi @1  
2
2
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.  
cZeros({u_+v_ì e^(w_),u_ì v_ì i},  
If you do not include any guesses and if any  
expression is non-polynomial in any variable  
but all expressions are linear in all  
unknowns, cZeros() uses Gaussian  
elimination to attempt to determine all zeros.  
{u_,v_}) ¸  
ew_ì i  
ew_  
+1/2øi  
2
2
cZeros({e^(z_)ì w_,w_ì z_^2},  
{w_,z_}) ¸  
If a system is neither polynomial in all of its  
variables nor linear in its unknowns, cZeros()  
determines at most one zero using an  
approximate iterative method. To do so, the  
number of unknowns must equal the number  
of expressions, and all other variables in the  
expressions must simplify to numbers.  
.494… ë.703…  
[
]
cZeros({e^(z_)ì w_,w_ì z_^2},  
A non-real guess is often necessary to  
determine a non-real zero. For convergence,  
a guess might have to be rather close to a  
zero.  
{w_,z_=1+i}) ¸  
.149…+4.89…øi 1.588…+1.540…øi  
[
]
Appendix A: Functions and Instructions  
431  
d()  
2= key or MATH/Calculus menu  
d(expression1, var [,order]) expression  
d(list1,var [,order]) list  
d(matrix1,var [,order])  
d(3x^3ì x+7,x)¸  
d(3x^3ì x+7,x,2)¸  
d(f(x)ù g(x),x)¸  
9xñ ì 1  
matrix  
18ø x  
Returns the first derivative of expression1  
with respect to variable var. expression1 can  
be a list or a matrix.  
d
dx  
d
dx  
(f(x))ø g(x)+  
(g(x))ø f(x)  
order, if included, must be an integer. If the  
order is less than zero, the result will be an  
anti-derivative.  
d(sin(f(x)),x)¸  
d
dx  
d() does not follow the normal evaluation  
mechanism of fully simplifying its arguments  
and then applying the function definition to  
these fully simplified arguments. Instead, d()  
performs the following steps:  
cos(f(x)) (f(x))  
d(x^3,x)|x=5¸  
75  
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-  
variable.  
xò  
d(x^2,x,ë 1)¸  
3
2. Simplify the first argument only to the  
extent that it does recall any stored value  
for the variable determined by step 1.  
d({x^2,x^3,x^4},x)¸  
{2ø x 3ø xñ 4ø xò }  
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  
1.5ó 4DD¸  
1.5ó  
matrix1 4DD  
matrix  
45ó 22'14.3"4DD¸  
45.370...ó  
Returns the decimal equivalent of the  
argument. The argument is a number, list, or  
matrix that is interpreted by the Mode  
setting in radians or degrees.  
{45ó 22'14.3",60ó 0'0"}4DD¸  
{45.370... 60}¡  
Note: 4DD can also accept input in radians.  
In Radian angle mode:  
1.54DD¸  
85.9ó  
4Dec  
MATH/Base menu  
0b100114Dec ¸  
19  
31  
integer1 4Dec  
integer  
Converts integer1 to a decimal (base 10)  
number. A binary or hexadecimal entry must  
always have a 0b or 0h prefix, respectively.  
0h1F4Dec ¸  
432  
Appendix A: Functions and Instructions  
 
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 g(x,y)=2xì 3y¸  
g(1,2)¸  
Done  
ë 4  
Define funcName(arg1Name, arg2Name, ...) =  
expression  
1! a:2! b:g(a,b)¸  
ë 4  
Creates funcName as a user-defined function.  
You then can use funcName(), just as you use  
built-in functions. The function evaluates  
expression using the supplied arguments and  
returns the result.  
Define h(x)=when(x<2,2x-3,  
ë 2x+3)¸  
Done  
h(ë 3)¸  
ë 9  
funcName cannot be the name of a system  
variable or built-in function.  
h(4)¸  
ë 5  
The argument names are placeholders; you  
should not use those same names as  
arguments when you use the function.  
Define eigenvl(a)=  
cZeros(det(identity(dim(a)  
[1])-xù a),x)¸  
eigenvl([ë 1,2;4,3])¸  
Done  
Note: This form of Define is equivalent to  
executing the expression:  
expression!funcName(arg1Name,arg2Name).  
This command also can be used to define  
simple variables; for example, Define a=3.  
2ø 3 - 1 ë (2ø 3 + 1)  
{
}
11  
11  
Define g(x,y)=Func:If x>y Then  
:Return x:Else:Return y:EndIf  
Define funcName(arg1Name, arg2Name, ...) = Func  
block  
EndFunc  
:EndFunc¸  
Done  
g(3,ë 7)¸  
3
Is identical to the previous form of Define,  
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: Functions and Instructions  
433  
 
Define progName(arg1Name, arg2Name, ...) = Prgm  
block  
EndPrgm  
Define listinpt()=prgm:Local  
n,i,str1,num:InputStr "Enter  
name of list",str1:Input "No.  
of elements",n:For  
i,1,n,1:Input "element  
"&string(i),num:  
Creates progName as a program or  
subprogram, but cannot return a result using  
Return. Can execute a block of multiple  
statements.  
num! #str1[i]:EndFor:EndPrgm  
¸
Done  
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) without restrictions.  
listinpt()¸Enter name of list  
Note: It is usually easier to author and edit a  
program block in the Program Editor rather  
than on the entry line.  
DelFold  
CATALOG  
NewFold games¸  
Done  
Done  
DelFold folderName1[, folderName2] [, folderName3] ...  
(creates the folder games)  
Deletes user-defined folders with the names  
folderName1, folderName2, etc. An error  
message is displayed if the folders contain  
any variables.  
DelFold games¸  
(deletes the folder games)  
Note: You cannot delete the main folder.  
DelVar  
CATALOG  
2! a¸  
2
16  
Done  
DelVar var1[, var2] [, var3] ...  
(a+2)^2¸  
DelVar a¸  
(a+2)^2¸  
Deletes the specified variables from memory.  
(a+2)ñ  
deSolve() MATH/Calculus menu  
deSolve(1stOr2ndOrderOde, independentVar,  
Note: To type a prime symbol ('), press  
dependentVar)  
a general solution  
2 È.  
deSolve(y''+2y'+y=x^2,x,y)¸  
Returns an equation that explicitly or  
implicitly specifies a general solution to the  
1st- or 2nd-order ordinary differential  
equation (ODE). In the ODE:  
ë x  
y=(@1øx+@2)øe +xñ ì 4øx+6  
right(ans(1))! temp ¸  
ë x  
(@1øx+@2)øe +xñ ì 4øx+6  
Use a prime symbol ( ', press 2 È) to  
denote the 1st derivative of the dependent  
variable with respect to the independent  
variable.  
d(temp,x,2)+2ùd(temp,x)+tempìx^2  
¸
0
DelVar temp ¸  
Done  
Use two prime symbols to denote the  
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.  
434  
Appendix A: Functions and Instructions  
 
Apply solve() to an implicit solution if you  
want to try to convert it to one or more  
equivalent explicit solutions.  
deSolve(y'=(cos(y))^2ù x,x,y)  
¸
xñ  
tan(y)=  
+@3  
2
solve(ans(1),y) ¸  
When comparing your results with textbook  
or manual solutions, be aware that different  
methods introduce arbitrary constants at  
different points in the calculation, which may  
produce different general solutions.  
xñ +2ø@3  
y=tanê  
+@n1øp  
( )  
2
Note: To type an @ symbol, press:  
TI-89: ¥ §  
TI-92 Plus: 2 R  
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)=(exøy+cos(y))øy'  
deSolve(ode and  
Returns a particular solution that satisfies  
1stOrderOde and initialCondition. This is  
usually easier than determining a general  
solution, substituting initial values, solving  
for the arbitrary constant, and then  
substituting that value into the general  
solution.  
y(0)=0,x,y)! soln ¸  
ë(2øsin(y)+yñ)  
ëx  
=ë(exì1)øe øsin(y)  
2
soln|x=0 and y=0 ¸  
true  
d(right(eq)ì left(eq),x)/  
(d(left(eq)ì right(eq),y))  
! impdif(eq,x,y) ¸  
initialCondition is an equation of the form:  
dependentVar (initialIndependentValue) =  
initialDependentValue  
Done  
The initialIndependentValue and  
initialDependentValue can be variables such as  
x0 and y0 that have no stored values. Implicit  
differentiation can help verify implicit  
solutions.  
ode|y'=impdif(soln,x,y) ¸  
true  
Done  
DelVar ode,soln ¸  
deSolve(y''=y^(ë 1/2) and  
deSolve(2ndOrderOde and initialCondition1 and  
initialCondition2, independentVar,  
y(0)=0 and y'(0)=0,t,y) ¸  
dependentVar) a particular solution  
2øy3/4  
=t  
Returns a particular solution that satisfies  
2ndOrderOde and has a specified value of the  
dependent variable and its first derivative at  
one point.  
3
solve(ans(1),y) ¸  
2
2/3ø(3øt)4/3  
y=  
and t0  
4
For initialCondition1, use the form:  
dependentVar (initialIndependentValue) =  
initialDependentValue  
For initialCondition2, use the form:  
dependentVar' (initialIndependentValue) =  
initial1stDerivativeValue  
Appendix A: Functions and Instructions  
435  
deSolve(w''ì 2w'/x+(9+2/x^2)w=  
xù e^(x) and w(p/6)=0 and  
w(p/3)=0,x,w) ¸  
deSolve(2ndOrderOde and boundaryCondition1 and  
boundaryCondition2, independentVar,  
dependentVar)  
a particular solution  
Returns a particular solution that satisfies  
2ndOrderOde and has specified values at two  
different points.  
p
e3øxøcos(3øx)  
w=  
10  
p
e6øxøsin(3øx)  
xex  
10  
ì
+
10  
det()  
MATH/Matrix menu  
det([a,b;c,d])¸  
aø dì bø c  
det(squareMatrix[, tol])  
expression  
Returns the determinant of squareMatrix.  
det([1,2;3,4])¸  
ë 2  
Optionally, any matrix element is treated as  
zero if its absolute value is less than tol. This  
tolerance is used only if the matrix has  
floating-point entries and does not contain  
any symbolic variables that have not been  
assigned a value. Otherwise, tol is ignored.  
det(identity(3)ì xù [1,ë 2,3;  
ë 2,4,1;ë 6,ë 2,7])¸  
ë (98ø xò ì 55ø xñ +12ø xì 1)  
1.E20 1  
If you use ¥ ¸ or set the mode to  
Exact/Approx=APPROXIMATE, computations  
are done using floating-point arithmetic.  
[1E20,1;0,1]!mat1  
det(mat1) ¸  
det(mat1,.1) ¸  
[
]
0
0
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  
diag(rowMatrix)  
diag(columnMatrix)  
2 0 0  
0 4 0  
0 0 6  
diag({2,4,6})¸  
matrix  
matrix  
Returns a matrix with the values in the  
argument list or matrix in its main diagonal.  
4 6 8  
1 2 3  
5 7 9  
diag(squareMatrix)  
rowMatrix  
[4,6,8;1,2,3;5,7,9]¸  
Returns a row matrix containing the  
elements from the main diagonal of  
squareMatrix.  
diag(ans(1))¸  
[4 2 9]  
squareMatrix must be square.  
436  
Appendix A: Functions and Instructions  
 
Dialog  
CATALOG  
Dialog  
block  
EndDlog  
Program listing:  
:Dlogtest()  
:Prgm  
:Dialog  
Generates a dialog box when the program is  
executed.  
:Title  
"This is a dialog box"  
:Request "Your name",Str1  
:Dropdown "Month you were born",  
seq(string(i),i,1,12),Var1  
:EndDlog  
block can be either a single statement or a  
series of statements separated with the “:”  
character. Valid block options in the  
I/O, 1:Dialog menu item in the Program  
Editor are 1:Text, 2:Request, 4:DropDown, and  
7:Title.  
:EndPrgm  
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({0,1,2})¸  
3
dim(list)  
Returns the dimension of list.  
dim(matrix) list  
integer  
dim([1,ë 1,2;ë 2,3,5])¸ {2 3}  
Returns the dimensions of matrix as a two-  
element list {rows, columns}.  
dim("Hello")¸  
5
dim(string)  
integer  
Returns the number of characters contained  
in character string string.  
dim("Hello"&" there")¸  
11  
Disp  
CATALOG  
Disp "Hello"¸  
Hello  
Disp [exprOrString1] [, exprOrString2] ...  
Displays the current contents of the Program  
I/O screen. If one or more exprOrString is  
specified, each expression or character string  
is displayed on a separate line of the Program  
I/O screen.  
Disp cos(2.3)¸  
ë.666…  
{1,2,3,4}! L1¸  
Disp L1¸  
{1 2 3 4}  
Disp 180_min4 _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  
number base conversions.  
Note: To type an underscore ( _ ), press:  
TI-89: ¥   
If Pretty Print = ON, expressions are displayed  
in pretty print.  
TI-92 Plus: 2   
To type 4, press 2 Ž.  
From the Program I/O screen, you can press  
to display the Home screen, or a program  
can use DispHome.  
Appendix A: Functions and Instructions  
437  
 
DispG  
CATALOG  
DispG  
In function graphing mode:  
Program segment:  
Displays the current contents of the Graph  
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  
:Disp "The result is: ",xx  
:Pause "Press Enter to quit"  
:DispHome  
screen.  
:EndPrgm  
DispTbl  
CATALOG  
5ù cos(x)! y1(x)¸  
DispTbl  
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"  
{45.371,60} 4DMS¸  
Interprets the argument as an angle and  
displays the equivalent DMS  
{45ó 22'15.6" 60ó }  
(DDDDDD¡MM¢SS.ss£) number. See ¡, ', " on  
page 536 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.  
438  
Appendix A: Functions and Instructions  
 
dotP()  
MATH/Matrix/Vector ops menu  
dotP(list1, list2) expression  
Returns the “dot” product of two lists.  
dotP({a,b,c},{d,e,f})¸  
aø d+bø e+cø f  
dotP({1,2},{5,6})¸  
17  
dotP([a,b,c],[d,e,f])¸  
dotP(vector1, vector2)  
expression  
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  
DrawFunc 1.25xù cos(x)¸  
independent variable.  
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  
axis.  
DrawInv 1.25xù cos(x)¸  
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:  
DrawParm  
tù cos(t),tù sin(t),0,10,.1¸  
Draws the parametric equations expression1  
and expression2, using t as the independent  
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: Functions and Instructions  
439  
 
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  
DrawSlp 2,3,ë 2¸  
formula yì y1=slopeø (xì x1).  
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.)  
440  
Appendix A: Functions and Instructions  
 
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.  
The 3D graphing mode must already be set.  
DrwCtour automatically sets the graph format L10!ymin:10!ymax ¸  
style to CONTOUR LEVELS.  
Done  
L10!xmin:10!xmax ¸  
10  
10  
10  
0
L10!zmin:10!zmax ¸  
0!ncontour ¸  
By default, the graph automatically contains  
the number of equally spaced contours  
specified by the ncontour Window variable.  
DrwCtour draws contours in addition to the  
defaults.  
DrwCtour {L9,L4.5,L3,0,4.5,9}  
¸
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.  
To toggle between different graph  
format styles, press:  
TI-89: Í TI-92 Plus: F  
Press X, Y, or Z to look down the  
corresponding axis.  
í
TI-89: ^ key  
TI-92 Plus: 2 ^ key  
2.3í 4¸  
23000.  
mantissaEexponent  
Enters a number in scientific notation. The  
2.3í 9+4.1í 15¸  
4.1í 15  
number is interpreted as mantissa ×  
exponent  
10  
.
Hint: If you want to enter a power of 10  
without causing a decimal value result, use  
10^integer.  
3ù 10^4¸  
30000  
e^()  
TI-89: ¥ s key TI-92 Plus: 2 s key  
e^(1)¸  
e
2.718...  
e9  
e^(expression1)  
expression  
Returns e raised to the expression1 power.  
e^(1.)¸  
e^(3)^2¸  
Note: On the TI-89, pressing ¥ s to  
display e^( is different from pressing  
j [E]. On the TI-92 Plus, pressing 2s  
to display e^ is different from accessing the  
character e from the QWERTY keyboard.  
You can enter a complex number in reiq polar  
form. However, use this form in Radian angle  
mode only; it causes a Domain error in Degree  
angle mode.  
e^({1,1.,0,.5})¸  
e^(list1)  
list  
{e 2.718... 1 1.648...}  
Returns e raised to the power of each  
element in list1.  
Appendix A: Functions and Instructions  
441  
 
e^([1,5,3;4,2,1;6,ë 2,1]) ¸  
e^(squareMatrix1)  
squareMatrix  
Returns the matrix exponential of  
squareMatrix1. This is not the same as  
calculating e raised to the power of each  
element. For information about the  
calculation method, refer to cos().  
782.209 559.617 456.509  
680.546 488.795 396.521  
524.929 371.222 307.879  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
eigVc()  
MATH/Matrix menu  
eigVc(squareMatrix)  
matrix  
In Rectangular complex format mode:  
[L1,2,5;3,L6,9;2,L5,7]! m1¸  
Returns a matrix containing the eigenvectors  
for a real or complex squareMatrix, where  
each column in the result corresponds to an  
eigenvalue. Note that an eigenvector is not  
unique; it may be scaled by any constant  
factor. The eigenvectors are normalized,  
meaning that if V = [x1, x2, … , xn], then:  
ë 1 2  
5
3
2
ë 6 9  
ë 5 7  
eigVc(m1)¸  
ë.800… .767…  
.767…  
2
2
2
x1 + x2 + … + xn = 1  
.484…  
.352…  
.573…+.052…øi .573…ì.052…øi  
.262…+.096…øi .262…ì.096…øi  
squareMatrix is first balanced with similarity  
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:  
[L1,2,5;3,L6,9;2,L5,7]! m1¸  
Returns a list of the eigenvalues of a real or  
complex squareMatrix.  
ë 1 2  
5
3
2
ë 6 9  
ë 5 7  
squareMatrix is first balanced with similarity  
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 eigenvalues  
are computed from the upper Hessenberg  
matrix.  
eigVl(m1)¸  
{ë4.409… 2.204…+.763…øi  
2.204…ì.763…øi}  
Else  
See If, page 456.  
ElseIf  
CATALOG See also If, page 456.  
Program segment:  
If Boolean expression1 Then  
block1  
©
ElseIf Boolean expression2 Then  
:If choice=1 Then  
: Goto option1  
: ElseIf choice=2 Then  
: Goto option2  
: ElseIf choice=3 Then  
: Goto option3  
: ElseIf choice=4 Then  
: Disp "Exiting Program"  
: Return  
block2  
©
ElseIf Boolean expressionN Then  
blockN  
EndIf  
©
ElseIf can be used as a program instruction  
for program branching.  
:EndIf  
©
442  
Appendix A: Functions and Instructions  
 
EndCustm See Custom, page 429.  
EndDlog See Dialog, page 437.  
EndFor  
See For, page 450.  
EndFunc See Func, page 451.  
See If, page 456.  
EndIf  
EndLoop See Loop, page 466.  
EndPrgm See Prgm, page 481.  
EndTBar See ToolBar, page 515.  
EndTry  
See Try, page 515.  
EndWhile See While, page 518.  
entry()  
CATALOG  
expression  
entry(integer) expression  
entry()  
On the Home screen:  
1
x
1+1/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, the most recently evaluated entry. Valid  
range is from 1 to 99 and cannot be an  
expression.  
1
¸
+3/2  
2ø (2ø x+1)  
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)¸  
+1  
x
exact()  
MATH/Number menu  
exact(.25)¸  
1/4  
exact(expression1 [, tol])  
exact(list1 [, tol]) list  
exact(matrix1 [, tol])  
expression  
333333  
1000000  
matrix  
exact(.333333)¸  
Uses Exact mode arithmetic regardless of the  
Exact/Approx mode setting to return, when  
possible, the rational-number equivalent of  
the argument.  
exact(.33333,.001)  
1/3  
7ø x  
+y  
2
exact(3.5x+y)¸  
tol specifies the tolerance for the conversion;  
the default is 0 (zero).  
exact({.2,.33,4.125})¸  
33  
100  
{1à5  
33à8}  
Appendix A: Functions and Instructions  
443  
 
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:  
education.ti.com  
Warning: Exec gives you access to the full  
power of the microprocessor. Please be  
aware that you can easily make a mistake  
that locks up the calculator and causes you  
to lose your data. We suggest you make a  
backup of the calculator contents before  
attempting to use the Exec command.  
Exit  
CATALOG  
Exit  
Program listing:  
Exits the current For, While, or Loop block.  
:0! temp  
:For i,1,100,1  
Exit is not allowed outside the three looping  
structures (For, While, or Loop).  
: temp+i! temp  
: If temp>20  
: Exit  
:EndFor  
:Disp temp  
Contents of temp after execution:  
21  
exp4list() CATALOG  
solve(x^2ì xì 2=0,x)¸ x=2 or  
exp4list(expression,var)  
list  
x=ë 1  
Examines expression for equations that are  
separated by the word “or,” and returns a list  
containing the right-hand sides of the  
equations of the form var=expression. This  
gives you an easy way to extract some  
solution values embedded in the results of  
the solve(), cSolve(), fMin(), and fMax()  
functions.  
exp4list(solve(x^2ì xì 2=0,x),x)  
¸
{ë 1 2}  
Note: exp4list() is not necessary with the  
zeros and cZeros() functions because they  
return a list of solution values directly.  
444  
Appendix A: Functions and Instructions  
 
expand() MATH/Algebra menu  
expand((x+y+1)^2)¸  
expand(expression1 [, var])  
expand(list1 [,var]) list  
expand(matrix1 [,var])  
expression  
xñ +2ø xø y+2ø x+yñ +2ø y+1  
matrix  
expand((x^2ì x+y^2ì y)/(x^2ù y^2  
ì x^2ù yì xù y^2+xù y))¸  
expand(expression1) returns expression1  
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.  
expand((x+y+1)^2,y)¸  
expand(expression1,var) returns expression  
expanded with respect to var. Similar powers  
of var are collected. The terms and their  
factors are sorted with var as the main  
variable. There might be some incidental  
factoring or expansion of the collected  
coefficients. Compared to omitting var, this  
often saves time, memory, and screen space,  
while making the expression more  
yñ +2ø yø (x+1)+(x+1)ñ  
expand((x+y+1)^2,x)¸  
xñ +2ø xø (y+1)+(y+1)ñ  
expand((x^2ì x+y^2ì y)/(x^2ù y^2  
ì x^2ù yì xù y^2+xù y),y)¸  
comprehensible.  
expand(ans(1),x)¸  
Even when there is only one variable, using  
var might make the denominator  
factorization used for partial fraction  
expansion more complete.  
expand((x^3+x^2ì 2)/(x^2ì 2))  
¸
2ø x  
+x+1  
xñ ì 2  
Hint: For rational expressions, propFrac() is  
a faster but less extreme alternative to  
expand().  
expand(ans(1),x)¸  
1
1
+
+ x+1  
xì 2 x+2  
Note: See also comDenom() for an expanded  
numerator over an expanded denominator.  
Appendix A: Functions and Instructions  
445  
 
ln(2xù y)+(2xù y)¸  
ln(2ø xø y)+(2ø xø y)  
expand(expression1,[var]) also distributes  
logarithms and fractional powers regardless  
of var. For increased distribution of  
logarithms and fractional powers, inequality  
constraints might be necessary to guarantee  
that some factors are nonnegative.  
expand(ans(1))¸  
ln(xø y)+2ø (xø y)+ln(2)  
expand(ans(1))|y>=0¸  
ln(x)+2ø xø y+ln(y)+ln(2)  
expand(expression1, [var]) also distributes  
absolute values, sign(), and exponentials,  
regardless of var.  
sign(xù y)+abs(xù y)+e^(2x+y)  
¸
Note: See also tExpand() for trigonometric  
angle-sum and multiple-angle expansion.  
e2ø x+y +sign(xø y)+|xø y|  
expand(ans(1))¸  
sign(x)øsign(y)+|x|ø|y|+(ex)2øey  
expr()  
MATH/String menu  
expr("1+2+x^2+x")¸ xñ +x+3  
expr(string)  
expression  
Returns the character string contained in  
string as an expression and immediately  
executes it.  
expr("expand((1+x)^2)")¸  
xñ +2ø x+1  
"Define cube(x)=x^3"! funcstr  
¸
"Define cube(x)=x^3"  
expr(funcstr)¸  
Done  
8
cube(2)¸  
ExpReg  
MATH/Statistics/Regressions menu  
In function graphing mode:  
ExpReg list1, list2 [, [list3] [, list4, list5]]  
Calculates the exponential regression and  
updates all the system statistics variables.  
{1,2,3,4,5,6,7,8}! L1¸  
{1 2 ...}  
{1,2,2,2,3,4,5,7}! L2¸  
All the lists must have equal dimensions  
except for list5.  
{1 2 ...}  
ExpReg L1,L2¸  
ShowStat¸  
Done  
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.  
¸
Regeq(x)"y1(x)¸  
NewPlot 1,1,L1,L2¸  
Done  
Done  
¥ %  
446  
Appendix A: Functions and Instructions  
 
factor()  
MATH/Algebra menu  
factor(expression1[, var])  
factor(list1[,var]) list  
factor(matrix1[,var])  
factor(a^3ù x^2ì aù x^2ì a^3+a)  
¸
expression  
matrix  
aø(aì1)ø(a+1)ø(xì1)ø(x+1)  
factor(expression1) returns expression1  
factored with respect to all of its variables  
over a common denominator.  
factor(x^2+1)¸  
xñ +1  
factor(x^2ì 4)¸(xì 2)ø (x+2)  
expression1 is factored as much as possible  
toward linear rational factors without  
introducing new non-real subexpressions.  
This alternative is appropriate if you want  
factorization with respect to more than one  
variable.  
factor(x^2ì 3)¸  
xñ ì 3  
factor(x^2ì a)¸  
xñ ì a  
factor(a^3ù x^2ì aù x^2ì a^3+a,x)  
factor(expression1,var) returns expression1  
factored with respect to variable var.  
¸
expression1 is factored as much as possible  
toward real factors that are linear in var, even  
if it introduces irrational constants or  
subexpressions that are irrational in other  
variables.  
aø (añ ì 1)ø (xì 1)ø (x+1)  
factor(x^2ì 3,x)¸  
(x+3)ø (xì 3)  
factor(x^2ì a,x)¸  
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.  
(x+a)ø (xì a)  
factor(x^5+4x^4+5x^3ì 6xì 3)  
¸
For the AUTO setting of the Exact/Approx  
mode, including var permits approximation  
with floating-point coefficients where  
irrational coefficients cannot be explicitly  
expressed concisely in terms of the built-in  
functions. Even when there is only one  
variable, including var might yield more  
complete factorization.  
x5 +4ø x4 +5ø x3ì 6ø xì 3  
factor(ans(1),x)¸  
(xì.964…)ø (x+.611…)ø  
(x+2.125…)ø (xñ +2.227…ø  
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.  
Appendix A: Functions and Instructions  
447  
 
factor(152417172689) ¸  
123457ø1234577  
factor(rationalNumber) returns the rational  
number factored into primes. For composite  
numbers, the computing time grows  
exponentially with the number of digits in the  
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.  
isPrime(152417172689) ¸false  
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  
1 2  
Fill expression, matrixVar  
matrix  
[1,2;3,4]! amatrx¸  
Fill 1.01,amatrx¸  
[
]
3 4  
Replaces each element in variable matrixVar  
with expression.  
Done  
1.01 1.01  
]
1.01 1.01  
amatrx¸  
[
matrixVar must already exist.  
{1,2,3,4,5}! alist¸  
Fill expression, listVar  
list  
{1 2 3 4 5}  
Done  
Replaces each element in variable listVar  
with expression.  
Fill 1.01,alist¸  
alist¸  
listVar must already exist.  
{1.01 1.01 1.01 1.01 1.01}  
floor()  
MATH/Number menu  
floor(ë 2.14)¸  
ë 3.  
floor(expression)  
integer  
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({3/2,0,ë 5.3})¸  
{1 0 ë 6.}  
floor([1.2,3.4;2.5,4.8])¸  
floor(list1)  
floor(matrix1)  
list  
matrix  
Returns a list or matrix of the floor of each  
element.  
1. 3.  
2. 4.  
Note: See also ceiling() and int().  
[
]
fMax()  
MATH/Calculus menu  
fMax(1ì (xì a)^2ì (xì b)^2,x)¸  
fMax(expression, var)  
Boolean expression  
Returns a Boolean expression specifying  
candidate values of var that maximize  
expression or locate its least upper bound.  
a+b  
x =  
2
fMax(.5x^3ì xì 2,x)¸  
x = ˆ  
448  
Appendix A: Functions and Instructions  
 
fMax(.5x^3ì xì 2,x)|x1¸  
x=ë.816...  
Use the “|” operator to restrict the solution  
interval and/or specify the sign of other  
undefined variables.  
For the APPROX setting of the Exact/Approx  
mode, fMax() iteratively searches for one  
approximate local maximum. This is often  
faster, particularly if you use the “|” operator  
to constrain the search to a relatively small  
interval that contains exactly one local  
maximum.  
fMax(aù x^2,x)¸  
x=ˆ or x=ë ˆ or x=0 or a=0  
fMax(aù x^2,x)|a<0¸  
x=0  
Note: See also fMin() and max().  
fMin()  
MATH/Calculus menu  
fMin(1ì (xì a)^2ì (xì b)^2,x)¸  
fMin(expression, var)  
Boolean expression  
x=ˆ or x=ë ˆ  
Returns a Boolean expression specifying  
candidate values of var that minimize  
expression or locate its greatest lower bound.  
fMin(.5x^3ì xì 2,x)|x1¸ x=1  
fMin(aù x^2,x)¸  
x=ˆ or x=ë ˆ or x=0 or a=0  
Use the “|” operator to restrict the solution  
interval and/or specify the sign of other  
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  
approximate local minimum. This is often  
faster, particularly if you use the “|” operator  
to constrain the search to a relatively small  
interval that contains exactly one local  
minimum.  
x=1.  
fMin(aù x^2,x)|a>0¸  
x=0  
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  
y3(x).  
Deselects the specified Y= functions for the  
current graphing mode.  
In parametric graphing mode:  
FnOff 1,3 ¸ deselects xt1(t), yt1(t),  
xt3(t), and yt3(t).  
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.  
Appendix A: Functions and Instructions  
449  
 
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  
Program segment:  
For var, low, high [, step]  
block  
EndFor  
©
:0! tempsum : 1! step  
:For i,1,100,step  
: tempsum+i! tempsum  
Executes the statements in block iteratively  
for each value of var, from low to high, in  
increments of step.  
:EndFor  
:Disp tempsum  
var must not be a system variable.  
©
step can be positive or negative. The default  
value is 1.  
Contents of tempsum after  
execution:  
5050  
2500  
block can be either a single statement or a  
series of statements separated with the “:”  
character.  
Contents of tempsumwhen step  
is changed to 2:  
format()  
MATH/String menu  
format(1.234567,"f3")¸  
format(expression[, formatString])  
string  
"1.235"  
format(1.234567,"s2")¸  
"1.23í 0"  
format(1.234567,"e3")¸  
"1.235í 0"  
format(1.234567,"g3")¸  
"1.235"  
format(1234.567,"g3")¸  
Returns expression as a character string based  
on the format template.  
expression must simplify to a number.  
formatString is a string and must be in the  
form: “F[n]”, “S[n]”, “E[n]”, “G[n][c]”, where [ ]  
indicate optional portions.  
F[n]: Fixed format. n is the number of digits  
to display after the decimal point.  
S[n]: Scientific format. n is the number of  
digits to display after the decimal point.  
"1,234.567"  
E[n]: Engineering format. n is the number of  
digits after the first significant digit. The  
exponent is adjusted to a multiple of three,  
and the decimal point is moved to the right  
by zero, one, or two digits.  
format(1.234567,"g3,r:")¸  
"1:235"  
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.  
450  
Appendix A: Functions and Instructions  
 
fpart()  
MATH/Number menu  
fpart(expression1) expression  
fpart(list1) list  
fpart(matrix1)  
fpart(ë 1.234)¸  
ë.234  
fpart({1, ë 2.3, 7.003})¸  
matrix  
{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  
block  
EndFunc  
In function graphing mode, define a  
piecewise function:  
Define g(x)=Func:If x<0 Then  
:Return 3ù cos(x):Else:Return  
Required as the first statement in a multi-  
statement function definition.  
3ì x:EndIf:EndFunc¸  
Done  
block can be either a single statement or a  
series of statements separated with the “:”  
character.  
Graph g(x)¸  
Note: when() also can be used to define and  
graph piecewise-defined functions.  
gcd()  
MATH/Number menu  
gcd(18,33)¸  
3
gcd(number1, number2)  
expression  
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({12,14,16},{9,7,5})¸  
{3 7 1}  
gcd(list1, list2)  
list  
Returns the greatest common divisors of the  
corresponding elements in list1 and list2.  
gcd([2,4;6,8],[4,8;12,16])¸  
gcd(matrix1, matrix2)  
matrix  
2 4  
Returns the greatest common divisors of the  
corresponding elements in matrix1 and  
matrix2.  
[
]
6 8  
Get  
CATALOG  
Program segment:  
Get var  
Retrieves a CBL 2é/CBL™ (Calculator-Based  
Laboratoryé) or CBRé (Calculator-Based  
Rangeré) value from the link port and stores  
it in variable var.  
©
:Send {3,1,ë 1,0}  
:For i,1,99  
: Get data[i]  
: PtOn i,data[i]  
:EndFor  
©
Appendix A: Functions and Instructions  
451  
 
GetCalc  
CATALOG  
Program segment:  
GetCalc var  
Retrieves a value from the link port and  
stores it in variable var. This is for unit-to-unit  
linking.  
©
:Disp "Press Enter when ready"  
:Pause  
:GetCalc L1  
Note: To get a variable to the link port from  
another unit, use 2 ° on the other  
unit to select and send a variable, or do a  
SendCalc on the other unit.  
:Disp "List L1 received"  
©
getConfg() CATALOG  
getConfg() ListPairs  
TI-89:  
getConfg()¸  
Returns a list of calculator attributes. The  
{"Product Name" "Advanced  
Mathematics Software"  
"Version" "2.00, 09/25/1999"  
"Product ID" "03-1-4-68"  
"ID #" "01012 34567 ABCD"  
"Cert. Rev. #" 0  
attribute name is listed first, followed by its  
value.  
"Screen Width" 160  
"Screen Height" 100  
"Window Width" 160  
"Window Height" 67  
"RAM Size" 262132  
"Free RAM" 197178  
"Archive Size" 655360  
"Free Archive" 655340}  
TI-92 Plus:  
getConfg()¸  
{"Product Name" "Advanced  
Mathematics Software"  
"Version" "2.00, 09/25/1999"  
"Product ID" "01-1-4-80"  
"ID #" "01012 34567 ABCD"  
"Cert. Rev. #" 0  
"Screen Width" 240  
"Screen Height" 120  
"Window Width" 240  
"Window Height" 91  
"RAM Size" 262144  
"Free RAM" 192988  
"Archive Size" 720896  
"Free Archive" 720874}  
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((x+2)/(yì 3))¸ yì 3  
getDenom(expression1)  
expression  
Transforms expression1 into one having a  
reduced common denominator, and then  
returns its denominator.  
getDenom(2/7)¸  
7
getDenom(1/x+(y^2+y)/y^2)¸  
xø y  
452  
Appendix A: Functions and Instructions  
 
getFold() CATALOG  
getFold()¸  
"main"  
getFold()  
nameString  
Returns the name of the current folder as a  
string.  
getFold()! oldfoldr¸ "main"  
oldfoldr¸  
"main"  
getKey() CATALOG  
Program listing:  
getKey()  
integer  
Returns the key code of the key pressed.  
Returns 0 if no key is pressed.  
:Disp  
:Loop  
: getKey()! key  
The prefix keys (shift ¤, second function  
2, option ¥, alpha j, and drag ) are  
not recognized by themselves; however, they  
modify the keycodes of the key that follows  
them. For example: ¥ Ù ƒ Ù ƒ 2 Ù.  
: while key=0  
:
getKey()! key  
: EndWhile  
: Disp key  
: If key = ord("a")  
: Stop  
For a listing of key codes, see Appendix B.  
:EndLoop  
getMode() CATALOG  
getMode("angle")¸ "RADIAN"  
getMode("graph")¸ "FUNCTION"  
getMode("all")¸  
getMode(modeNameString)  
string  
getMode("ALL") ListStringPairs  
If the argument is a specific mode name,  
returns a string containing the current setting  
for that mode.  
{"Graph" "FUNCTION"  
"Display Digits" "FLOAT 6"  
"Angle" "RADIAN"  
If the argument is "ALL", returns a list of  
string pairs containing the settings of all the  
modes. If you want to restore the mode  
settings later, you must store the  
getMode("ALL") result in a variable, and then  
use setMode() to restore the modes.  
"Exponential Format" "NORMAL"  
"Complex Format" "REAL"  
"Vector Format" "RECTANGULAR"  
"Pretty Print" "ON"  
"Split Screen" "FULL"  
"Split 1 App" "Home"  
For a listing of mode names and possible  
settings, see setMode().  
"Split 2 App" "Graph"  
"Number of Graphs" "1"  
"Graph 2" "FUNCTION"  
Note: To set or return information about the  
Unit System mode, use setUnits() or getUnits()  
instead of setMode() or getMode().  
"Split Screen Ratio" "1,1"  
"Exact/Approx" "AUTO"  
"Base" "DEC"}  
Note: Your screen may display different  
mode settings.  
getNum() MATH/Algebra/Extract menu  
getNum((x+2)/(yì 3))¸  
getNum(2/7)¸  
x+2  
2
getNum(expression1)  
expression  
Transforms expression1 into one having a  
reduced common denominator, and then  
returns its numerator.  
getNum(1/x+1/y)¸  
x+y  
Appendix A: Functions and Instructions  
453  
 
getType() CATALOG  
{1,2,3}! temp¸  
getType(temp)¸  
{1 2 3}  
"LIST"  
getType(var)  
string  
Returns a string indicating the data type of  
variable var.  
2+3i! temp¸  
2+3i  
If var has not been defined, returns the string  
"NONE".  
getType(temp)¸  
"EXPR"  
DelVar temp¸  
Done  
getType(temp)¸  
"NONE"  
Data Type  
Variable Contents  
Assembly-language program  
Data type  
"ASM"  
"DATA"  
"EXPR"  
Expression (includes complex/arbitrary/undefined, ˆ, ë ˆ, TRUE,  
FALSE, pi, e)  
"FUNC"  
"GDB"  
"LIST"  
Function  
Graph data base  
List  
"MAT"  
"NONE"  
"NUM"  
"OTHER"  
"PIC"  
Matrix  
Variable does not exist  
Real number  
Miscellaneous data type for future use by software applications  
Picture  
"PRGM"  
"STR"  
Program  
String  
"TEXT"  
"VAR"  
Text type  
Name of another variable  
getUnits() CATALOG  
getUnits() ¸  
getUnits()  
list  
{"SI" "Area" "NONE"  
Returns a list of strings that contain the  
current default units for all categories except  
constants, temperature, amount of substance,  
luminous intensity, and acceleration. list has  
the form:  
"Capacitance" "_F"  
"Charge" "_coul"  
… }  
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().  
454  
Appendix A: Functions and Instructions  
 
Goto  
CATALOG  
Goto labelName  
Program segment:  
Transfers program control to the label  
©
labelName.  
:0! temp  
:1! i  
:Lbl TOP  
: temp+i! temp  
labelName must be defined in the same  
program using a Lbl instruction.  
: If i<10 Then  
:
:
i+1! i  
Goto TOP  
: EndIf  
:Disp temp  
©
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  
graphing mode.  
Graph 1.25aù cos(a),a¸  
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  
window:  
currently selected Y= functions are ignored.  
If you omit an optional var argument, Graph  
uses the independent variable of the current  
graphing mode.  
Graph time,2cos(time)/time,time  
¸
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:  
Graph (v^2ì w^2)/4,v,w¸  
Function graphing  
Parametric graphing  
Polar graphing  
Graph expr, x  
Graph xExpr, yExpr, t  
Graph expr, q  
Sequence graphing  
3D graphing  
Not allowed.  
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.  
Appendix A: Functions and Instructions  
455  
 
4Hex  
MATH/Base menu  
integer1 4Hex integer  
2564Hex ¸  
0h100  
0hF0F  
Converts integer1 to a hexadecimal number.  
Binary or hexadecimal numbers always have  
a 0b or 0h prefix, respectively.  
0b1111000011114Hex ¸  
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.  
identity() MATH/Matrix menu  
identity(4)¸  
identity(expression)  
matrix  
1 0 0 0  
0 1 0 0  
0 0 1 0  
0 0 0 1  
Returns the identity matrix with a dimension  
of expression.  
expression must evaluate to a positive integer.  
If  
CATALOG  
Program segment:  
If Boolean expression  
statement  
If Boolean expression Then  
block  
EndIf  
©
:If x<0  
:Disp "x is negative"  
If Boolean expression evaluates to true,  
executes the single statement statement or the  
block of statements block before continuing  
execution.  
©
or—  
©
If Boolean expression evaluates to false,  
continues execution without executing the  
statement or block of statements.  
:If x<0 Then  
: Disp "x is negative"  
: abs(x)! x  
:EndIf  
block can be either a single statement or a  
sequence of statements separated with the “:”  
character.  
©
Program segment:  
If Boolean expression Then  
block1  
©
Else  
block2  
EndIf  
:If x<0 Then  
: Disp "x is negative"  
:
Else  
: Disp "x is positive or zero"  
If Boolean expression evaluates to true,  
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.  
456  
Appendix A: Functions and Instructions  
 
Program segment:  
If Boolean expression1 Then  
block1  
©
ElseIf Boolean expression2 Then  
:If choice=1 Then  
: Goto option1  
: ElseIf choice=2 Then  
block2  
©
ElseIf Boolean expressionN Then  
blockN  
EndIf  
:
Goto option2  
: ElseIf choice=3 Then  
Goto option3  
:
: ElseIf choice=4 Then  
Allows for program branching. If Boolean  
expression1 evaluates to true, executes block1.  
If Boolean expression1 evaluates to false,  
evaluates Boolean expression2, etc.  
:
:
Disp "Exiting Program"  
Return  
:EndIf  
©
imag()  
MATH/Complex menu  
imag(1+2i)¸  
imag(z)¸  
2
0
y
imag(expression1)  
expression  
imag(expression1) returns the imaginary part  
of the argument.  
imag(x+iy)¸  
Note: All undefined variables are treated as  
real variables. See also real().  
imag({ë 3,4ë i,i})¸ {0 ë 1 1}  
imag(list1)  
list  
Returns a list of the imaginary parts of the  
elements.  
0 0  
imag(matrix1)  
matrix  
imag([a,b;ic,id])¸  
[ ]  
c d  
Returns a matrix of the imaginary parts of the  
elements.  
Input  
CATALOG  
Program segment:  
Input  
Pauses the program, displays the current  
Graph screen, and lets you update variables  
xc and yc (also rc and qc for polar coordinate  
mode) by positioning the graph cursor.  
©
:¦ Get 10 points from the Graph  
Screen  
:For i,1,10  
: Input  
When you press ¸, the program resumes.  
: xc! XLIST[i]  
: yc! YLIST[i]  
:EndFor  
©
Program segment:  
Input [promptString,] var  
Input [promptString], var pauses the program,  
©
displays promptString on the Program I/O  
screen, waits for you to enter an expression,  
and stores the expression in variable var.  
:For i,1,9,1  
: "Enter x" & string(i)! str1  
: Input str1,#(right(str1,2))  
:EndFor  
If you omit promptString, “?” is displayed as a  
prompt.  
©
Appendix A: Functions and Instructions  
457  
 
InputStr  
CATALOG  
InputStr [promptString,] var  
Pauses the program, displays promptString on  
Program segment:  
©
the Program I/O screen, waits for you to  
enter a response, and stores your response as  
a string in variable var.  
:InputStr "Enter Your Name",str1  
©
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  
string subString begins.  
"ABCEFG"! s1:If inString(s1,  
"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.  
int()  
CATALOG  
int(ë 2.5)¸  
ë 3.  
int(expression)  
int(list1)  
int(matrix1)  
integer  
list  
int([-1.234,0,0.37])¸  
matrix  
[-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(ë 7,2)¸  
ë 3  
intDiv(number1, number2)  
intDiv(list1, list2) list  
intDiv(matrix1, matrix2)  
integer  
matrix  
intDiv(4,5)¸  
0
Returns the signed integer part of argument 1  
divided by argument 2.  
intDiv({12,ë 14,ë 16},{5,4,ë 3})  
¸
{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 532.  
458  
Appendix A: Functions and Instructions  
 
iPart()  
MATH/Number menu  
iPart(ë 1.234)¸  
ë 1.  
iPart(number)  
integer  
iPart(list1)  
list  
iPart({3/2,ë 2.3,7.003})¸  
iPart(matrix1)  
matrix  
{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(5) ¸  
true  
isPrime(number)  
Boolean constant expression  
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  
error message.  
Define nextPrim(n)=Func:Loop:  
n+1! n:if isPrime(n):return n:  
EndLoop:EndFunc ¸  
Done  
If you merely want to determine if number is  
prime, use isPrime() instead of factor(). It is  
much faster, particularly if number is not  
prime and has a second-largest factor that  
exceeds about five digits.  
nextPrim(7) ¸  
11  
Item  
CATALOG  
Item itemNameString  
Item itemNameString, label  
See Custom example.  
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  
Program segment:  
Lbl labelName  
Defines a label with the name labelName in  
©
the program.  
:Lbl lbl1  
:InputStr "Enter password",  
You can use a Goto labelName instruction to  
transfer program control to the instruction  
immediately following the label.  
str1  
:If str1ƒpassword  
: Goto lbl1  
:Disp "Welcome to ..."  
©
labelName must meet the same naming  
requirements as a variable name.  
Appendix A: Functions and Instructions  
459  
 
lcm()  
MATH/Number menu  
lcm(number1, number2) expression  
lcm(list1, list2) list  
lcm(matrix1, matrix2)  
lcm(6,9)¸  
18  
lcm({1/3,ë 14,16},{2/15,7,5})  
matrix  
¸
Returns the least common multiple of the  
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.  
{2/3 14 80}  
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({1,3,ë 2,4},3)¸  
left(list1[, num])  
list  
{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.  
limit()  
MATH/Calculus menu  
limit(2x+3,x,5)¸  
13  
limit(expression1, var, point[, direction])  
expression  
limit(1/x,x,0,1)¸  
ˆ
limit(list1, var, point[, direction])  
limit(matrix1, var, point[, direction])  
list  
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  
defaults to both.)  
¸
cos(x)  
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.  
460  
Appendix A: Functions and Instructions  
 
limit(a^x,x,ˆ) ¸  
undef  
limit() uses methods such as L’Hopital’s rule,  
so there are unique limits that it cannot  
determine. If expression1 contains undefined  
variables other than var, you might have to  
constrain them to obtain a more concise  
result.  
limit(a^x,x,ˆ)|a>1¸  
ˆ
limit(a^x,x,ˆ)|a>0 and a<1  
¸
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  
window coordinates (xStart, yStart) and  
(xEnd, yEnd), including both endpoints.  
Line 0,0,6,9¸  
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).  
TI-89: "  
Note: Regraphing erases all drawn items. See  
also PxlLine.  
TI-92 Plus: ¥ "  
Line 0,0,6,9,0¸  
LineHorz CATALOG  
LineHorz y [, drawMode]  
In a ZoomStd window:  
LineHorz 2.5 ¸  
Displays the Graph screen and draws, erases,  
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.  
Appendix A: Functions and Instructions  
461  
 
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)  
TI-89: "  
expression1 is an expression or the name of a  
function, where x is assumed to be the  
independent variable, and expression2 is the x  
value of the point that is tangent.  
TI-92 Plus: ¥ "  
LineTan cos(x),p/4¸  
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,  
or inverts a vertical line at window position x.  
LineVert ë 2.5¸  
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  
In function graphing mode:  
LinReg list1, list2[, [list3] [, list4, list5]]  
Calculates the linear regression and updates  
all the system statistics variables.  
{0,1,2,3,4,5,6}! L1¸  
{0 1 2 ...}  
{0,2,3,4,3,4,6}! L2¸  
All the lists must have equal dimensions  
except for list5.  
{0 2 3 ...}  
LinReg L1,L2¸  
ShowStat¸  
Done  
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.  
Regeq(x)"y1(x)¸  
NewPlot 1,1,L1,L2¸  
Done  
Done  
¥ %  
462  
Appendix A: Functions and Instructions  
 
list4mat() MATH/List menu  
list4mat({1,2,3})¸  
[1 2 3]  
list4mat(list [, elementsPerRow])  
matrix  
Returns a matrix filled row-by-row with the  
elements from list.  
list4mat({1,2,3,4,5},2)¸  
1 2  
3 4  
5 0  
elementsPerRow, if included, specifies the  
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.  
@list()  
MATH/List menu  
@list({20,30,45,70}) ¸  
list(list1)  
list  
{10,15,25}  
Returns a list containing the differences  
between consecutive elements in list1. Each  
element of list1 is subtracted from the next  
element of list1. The resulting list is always  
one element shorter than the original list1.  
ln()  
TI-89: 2 x key  
ln(expression1) expression  
ln(list1) list  
TI-92 Plus: x key  
ln(2.0)¸  
.693...  
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  
calculating the natural logarithm of each  
element. For information about the  
calculation method, refer to cos() on.  
ln([1,5,3;4,2,1;6,ë 2,1]) ¸  
1.831…+1.734…øi .009…ì 1.490…øi  
.448…ì.725…øi 1.064…+.623øi  
ë.266…ì 2.083…øi 1.124…+1.790…øi …  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
Appendix A: Functions and Instructions  
463  
 
LnReg  
MATH/Statistics/Regressions menu  
In function graphing mode:  
LnReg list1, list2[, [list3] [, list4, list5]]  
Calculates the logarithmic regression and  
updates all the system statistics variables.  
{1,2,3,4,5,6,7,8}! L1¸  
{1 2 3 ...}  
{1,2,2,3,3,3,4,4}! L2¸  
{1 2 2 ...}  
All the lists must have equal dimensions  
except for list5.  
LnReg L1,L2¸  
ShowStat¸  
Done  
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.  
¸
Regeq(x)"y1(x)¸  
NewPlot 1,1,L1,L2¸  
Done  
Done  
¥ %  
Local  
CATALOG  
Program listing:  
Local var1[, var2] [, var3] ...  
Declares the specified vars as local variables. :prgmname()  
:Prgm  
Those variables exist only during evaluation  
of a program or function and are deleted  
when the program or function finishes  
execution.  
:Local x,y  
:Input "Enter x",x  
:Input "Enter y",y  
:Disp xù y  
Note: Local variables save memory because  
they only exist temporarily. Also, they do not  
disturb any existing global variable values.  
Local variables must be used for For loops  
and for temporarily saving values in a multi-  
line function since modifications on global  
variables are not allowed in a function.  
:EndPrgm  
Note: x and y do not exist after the  
program executes.  
Lock  
CATALOG  
{1,2,3,4}! L1¸  
Lock L1¸  
{1,2,3,4}  
Done  
Lock var1[, var2] ...  
Locks the specified variables. This prevents  
you from accidentally deleting or changing  
the variable without first using the unlock  
instruction on that variable.  
DelVar L1¸  
Error:Variableislockedorprotected  
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.  
464  
Appendix A: Functions and Instructions  
 
log()  
CATALOG  
log(expression1)  
log(list1) list  
log(2.0)¸  
.301...  
expression  
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})¸  
p
ln(3)  
ln(5)  
{
+
øi .079...  
}
ln(10)  
ln(10)  
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  
calculating the base-10 logarithm of each  
element. For information about the  
calculation method, refer to cos().  
log([1,5,3;4,2,1;6,ë 2,1]) ¸  
.795…+.753…øi  
.003…ì.647…øi …  
.462…+.270øi  
.194…ì.315…øi  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
ë.115…ì.904…øi .488…+.777…øi …  
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  
except for list5.  
¸
{1 1.3 2.5 …}  
list1 represents xlist.  
list2 represents ylist.  
list3 represents frequency.  
list4 represents category codes.  
list5 represents category include list.  
Logistic L1,L2 ¸  
Done  
ShowStat ¸  
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,  
and vice versa.  
¸
regeq(x)! y1(x) ¸  
NewPlot 1,1,L1,L2 ¸  
¥ %  
Done  
Done  
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.  
9  
Appendix A: Functions and Instructions  
465  
 
Loop  
CATALOG  
Loop  
block  
EndLoop  
Program segment:  
©
:1! i  
Repeatedly executes the statements in block.  
:Loop  
Note that the loop will be executed endlessly,  
unless a Goto or Exit instruction is executed  
within block.  
: Rand(6)! die1  
: Rand(6)! die2  
: If die1=6 and die2=6  
:
Goto End  
block is a sequence of statements separated  
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)  
decomposition of a real or complex matrix.  
The lower triangular matrix is stored in  
lMatName, the upper triangular matrix in  
uMatName, and the permutation matrix  
(which describes the row swaps done during  
the calculation) in pMatName.  
6 12 18  
5 14 31  
3 8  
18  
LU m1,lower,upper,perm ¸ Done  
1
0
0
0
5/6 1  
lower ¸  
upper ¸  
perm ¸  
lMatName ù uMatName = pMatName ù matrix  
1/2 1/2 1  
Optionally, any matrix element is treated as  
zero if its absolute value is less than tol. This  
tolerance is used only if the matrix has  
floating-point entries and does not contain  
any symbolic variables that have not been  
assigned a value. Otherwise, tol is ignored.  
6 12 18  
0 4  
0 0  
16  
1
1 0 0  
0 1 0  
0 0 1  
If you use ¥ ¸ or set the mode to  
Exact/Approx=APPROXIMATE, computations  
are done using floating-point arithmetic.  
m n  
o p  
[m,n;o,p]!m1 ¸  
[
]
If tol is omitted or not used, the default  
tolerance is calculated as:  
LU m1,lower,upper,perm ¸ Done  
5Eë 14 ù max(dim(matrix))  
ù rowNorm(matrix)  
1 0  
m
o
lower ¸  
1
The LU factorization algorithm uses partial  
pivoting with row interchanges.  
o p  
0 n ì  
møp  
o
upper ¸  
0 1  
1 0  
perm ¸  
[
]
466  
Appendix A: Functions and Instructions  
 
mat4list() MATH/List menu  
mat4list([1,2,3])¸  
{1 2 3}  
1 2 3  
mat4list(matrix)  
list  
Returns a list filled with the elements in  
matrix. The elements are copied from matrix  
row by row.  
[1,2,3;4,5,6]! M1¸  
[
]
4 5 6  
mat4list(M1)¸ {1 2 3 4 5 6}  
max()  
MATH/List menu  
max(2.3,1.4)¸  
2.3  
max(expression1, expression2)  
max(list1, list2) list  
max(matrix1, matrix2)  
expression  
max({1,2},{ë 4,3})¸  
{1 3}  
matrix  
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({0,1,ë 7,1.3,.5})¸  
1.3  
max(list)  
Returns the maximum element in list.  
max(matrix1) matrix  
expression  
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({.2,0,1,ë.3,.4})¸ .26  
mean(list[, freqlist])  
expression  
Returns the mean of the elements in list.  
Each freqlist element counts the number of  
consecutive occurrences of the  
mean({1,2,3},{3,2,1}) ¸ 5/3  
corresponding element in list.  
In vector format rectangular mode:  
mean(matrix1[, freqmatrix])  
matrix  
Returns a row vector of the means of all the  
columns in matrix1.  
mean([.2,0;L1,3;.4,L.5])¸  
[L.133... .833...]  
Each freqmatrix element counts the number  
of consecutive occurrences of the  
corresponding element in matrix1.  
mean([1/5,0;L1,3;2/5,L1/2])  
¸
[ë 2/15 5/6]  
mean([1,2;3,4;5,6],[5,3;4,1;  
6,2]) ¸  
[47/15, 11/3]  
median() MATH/Statistics menu  
median({.2,0,1,ë.3,.4})¸ .2  
median(list)  
Returns the median of the elements in list1.  
median(matrix1) matrix  
expression  
median([.2,0;1,ë.3;.4,ë.5])  
¸
Returns a row vector containing the medians  
of the columns in matrix1.  
[.4 ë.3]  
Note: All entries in the list or matrix must  
simplify to numbers.  
Appendix A: Functions and Instructions  
467  
 
MedMed MATH/Statistics/Regressions menu  
In function graphing mode:  
MedMed list1, list2[, [list3] [, list4, list5]]  
Calculates the median-median line and  
updates all the system statistics variables.  
{0,1,2,3,4,5,6}! L1¸ {0 1 2 ...}  
{0,2,3,4,3,4,6}! L2¸ {0 2 3 ...  
All the lists must have equal dimensions  
except for list5.  
MedMed L1,L2¸  
ShowStat¸  
Done  
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.  
¸
Regeq(x)! y1(x)¸  
NewPlot 1,1,L1,L2¸  
Done  
Done  
¥ %  
mid()  
MATH/String menu  
mid(sourceString, start[, count])  
string  
mid("Hello there",2)¸  
"ello there"  
mid("Hello there",7,3)¸  
"the"  
mid("Hello there",1,5)¸  
Returns count characters from character  
string sourceString, beginning with character  
number start.  
If count is omitted or is greater than the  
dimension of sourceString, returns all  
characters from sourceString, beginning with  
character number start.  
"Hello"  
mid("Hello there",1,0)¸  
count must be 0. If count = 0, returns an  
empty string.  
""  
mid({9,8,7,6},3)¸  
mid({9,8,7,6},2,2)¸  
mid({9,8,7,6},1,2)¸  
mid({9,8,7,6},1,0)¸  
{7 6}  
{8 7}  
{9 8}  
{}  
mid(sourceList, start [, count])  
list  
Returns count elements from sourceList,  
beginning with element number start.  
If count is omitted or is greater than the  
dimension of sourceList, returns all elements  
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.  
468  
Appendix A: Functions and Instructions  
 
min()  
MATH/List menu  
min(2.3,1.4)¸  
1.4  
min(expression1, expression2)  
expression  
min(list1, list2)  
min(matrix1, matrix2)  
list  
min({1,2},{ë 4,3})¸  
{ë 4 2}  
matrix  
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({0,1,ë 7,1.3,.5})¸  
ë 7  
min(list)  
Returns the minimum element of list.  
min(matrix1) matrix  
expression  
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(7,0)¸  
mod(7,3)¸  
mod(ë 7,3)¸  
mod(7,ë 3)¸  
mod(ë 7,ë 3)¸  
7
1
mod(expression1, expression2)  
mod(list1, list2) list  
mod(matrix1, matrix2)  
expression  
matrix  
Returns the first argument modulo the  
second argument as defined by the identities:  
2
ë 2  
ë 1  
mod(x,0)  x  
mod(x,y)  xì y floor(x/y)  
When the second argument is non-zero, the  
result is periodic in that argument. The result  
is either zero or has the same sign as the  
second argument.  
mod({12,ë 14,16},{9,7,ë 5})¸  
{3 0 ë 4}  
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  
{1,2,3,4}! L1¸  
{1 2 3 4}  
MoveVar var, oldFolder, newFolder  
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(ë 1/3,[1,2;3,4],2)¸  
mRow(expression, matrix1, index)  
matrix  
1 2  
ë 1 ë 4/3  
Returns a copy of matrix1 with each element  
in row index of matrix1 multiplied by  
expression.  
[
]
Appendix A: Functions and Instructions  
469  
 
mRowAdd() MATH/Matrix/Row ops menu  
mRowAdd(ë 3,[1,2;3,4],1,2)¸  
mRowAdd(expression, matrix1, index1, index2)  
matrix  
1 2  
[
]
L2  
0
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  
zø (zì 2)ø (zì 1)  
nCr(expression1, expression2)  
expression  
nCr(z,3)  
ans(1)|z=5  
nCr(z,c)  
6
For integer expression1 and expression2 with  
expression1 expression2 0, nCr() is the  
number of combinations of expression1 things  
taken expression2 at a time. (This is also  
known as a binomial coefficient.) Both  
arguments can be integers or symbolic  
expressions.  
10  
z!  
c!(zì c)!  
1
c!  
ans(1)/nPr(z,c)  
nCr(expression, 0)  
1
nCr(expression, negInteger)  
0
nCr(expression, posInteger)  
expressionø (expressionì 1)...  
(expressionì posInteger+1)/ posInteger!  
nCr(expression, nonInteger)  
((expressionì nonInteger)!ø nonInteger!)  
expression!/  
nCr({5,4,3},{2,4,2})¸  
nCr(list1, list2)  
list  
{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([6,5;4,3],[2,2;2,2])¸  
nCr(matrix1, matrix2)  
matrix  
15 10  
Returns a matrix of combinations based on  
the corresponding element pairs in the two  
matrices. The arguments must be the same  
size matrix.  
[
]
6
3
nDeriv()  
MATH/Calculus menu  
nDeriv(cos(x),x,h)¸  
nDeriv(expression1, var[, h])  
nDeriv(expression1, var, list)  
nDeriv(list, var[, h]) list  
nDeriv(matrix, var[, h])  
expression  
list  
ë (cos(xì h)ì cos(x+h))  
2ø h  
matrix  
limit(nDeriv(cos(x),x,h),h,0)  
Returns the numerical derivative as an  
expression. Uses the central difference  
quotient formula.  
¸
ë sin(x)  
nDeriv(x^3,x,0.01)¸  
h is the step value. If h is omitted, it defaults  
3.ø (xñ +.000033)  
to 0.001.  
When using list or matrix, the operation gets  
mapped across the values in the list or across  
the matrix elements.  
nDeriv(cos(x),x)|x=p/2¸  
ë 1.  
nDeriv(x^2,x,{.01,.1}) ¸  
Note: See also avgRC() and d().  
{2.ø x 2.ø x}  
470  
Appendix A: Functions and Instructions  
 
NewData CATALOG  
NewData dataVar, list1[, list2] [, list3]...  
NewData mydata,{1,2,3},{4,5,6}  
¸
Creates data variable dataVar, where the  
columns are the lists in order.  
Done  
(Go to the Data/Matrix Editor and open  
the var mydatato display the data  
variable below.)  
Must have at least one list.  
list1, list2, ..., listn can be lists as shown,  
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 games¸  
Done  
NewFold folderName  
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(4)¸  
{0 0 0 0}  
newList(numElements)  
list  
Returns a list with a dimension of  
numElements. Each element is zero.  
newMat() CATALOG also Math/Matrix menu  
0 0 0  
newMat(numRows, numColumns)  
matrix  
newMat(2,3)¸  
[
]
0 0 0  
Returns a matrix of zeros with the dimension  
numRows by numColumns.  
NewPic  
CATALOG  
NewPic [1,1;2,2;3,3;4,4;5,5;  
5,1;4,2;2,4;1,5],xpic¸ Done  
NewPic matrix, picVar [, maxRow][, maxCol]  
Creates a pic variable picVar based on matrix.  
matrix must be an n×2 matrix in which each  
row represents a pixel. Pixel coordinates  
start at 0,0. If picVar already exists, NewPic  
replaces it.  
RclPic xpic¸  
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: Functions and Instructions  
471  
 
NewPlot  
CATALOG  
FnOff¸  
PlotsOff¸  
Done  
Done  
NewPlot n, type, xList [,[yList], [frqList], [catList],  
[includeCatList], [mark] [, bucketSize]]  
{1,2,3,4}! L1¸  
{2,3,4,5}! L2¸  
NewPlot 1,1,L1,L2,,,,4¸ Done  
{1 2 3 4}  
{2 3 4 5}  
Creates a new plot definition for plot number n.  
type specifies the type of the graph plot.  
1 = scatter plot  
2 = xyline plot  
3 = box plot  
Press ¥ % to display:  
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 ¸  
Done  
NewProb  
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(e^(ë x^2),x,ë 1,1)¸  
nInt(expression1, var, lower, upper)  
expression  
1.493...  
If the integrand expression1 contains no  
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.  
472  
Appendix A: Functions and Instructions  
 
nInt(cos(x),x,ë p,p+1í ë 12)¸  
The goal is six significant digits. The adaptive  
algorithm terminates when it seems likely  
that the goal has been achieved, or when it  
seems unlikely that additional samples will  
yield a worthwhile improvement.  
ë 1.041...í ë 12  
(cos(x),x,ë p,p+10^(ë 12))¸  
1
ë sin(  
)
1000000000000  
A warning is displayed (“Questionable  
accuracy”) when it seems that the goal has not  
been achieved.  
ans(1)¥ ¸  
ë 1.í ë 12  
nInt(nInt(e^(ë xù y)/(x^2ì y^2),  
Nest nInt() to do multiple numeric integration.  
Integration limits can depend on integration  
variables outside them.  
y,ë x,x),x,0,1)¸  
3.304...  
Note: See also ().  
norm()  
not  
MATH/Matrix/Norms menu  
norm([a,b;c,d])¸  
norm(matrix)  
expression  
Returns the Frobenius norm.  
añ +bñ +cñ +dñ  
norm([1,2;3,4])¸  
30  
MATH/Test menu  
not 2>=3¸  
true  
not Boolean expression1  
Boolean expression  
Returns true, false, or a simplified Boolean  
expression1.  
not x<2¸  
x2  
not not innocent¸ innocent  
not integer1  
integer  
In Hex base mode:  
not 0h7AC36 ¸  
0hFFF853C9  
Returns the one’s complement of a real  
integer. Internally, integer1 is converted to a  
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  
displayed according to the Base mode.  
Important: Zero, not the letter O.  
In Bin base mode:  
0b1001014 dec ¸  
37  
You can enter the integer in any number  
base. For a binary or hexadecimal entry, you  
must use the 0b or 0h prefix, respectively.  
Without a prefix, the integer is treated as  
decimal (base 10).  
not 0b100101 ¸  
0b11111111111111111111111111011010  
ans(1)4 dec ¸  
ë 38  
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: A binary entry can have up to 32  
digits (not counting the 0b prefix). A  
hexadecimal entry can have up to 8 digits.  
Note: To type the 4 conversion operator,  
press 2 Ž. You can also select base  
conversions from the MATH/Base menu.  
Appendix A: Functions and Instructions  
473  
 
nPr()  
MATH/Probability menu  
nPr(expression1, expression2)  
nPr(z,3)¸  
zø (zì 2)ø (zì 1)  
expression  
For integer expression1 and expression2 with  
expression1 expression2 0, nPr() is the  
number of permutations of expression1 things  
taken expression2 at a time. Both arguments  
can be integers or symbolic expressions.  
ans(1)|z=5¸  
60  
1
nPr(z,ë 3)¸  
(z+1)ø (z+2)ø (z+3)  
z!  
nPr(expression, 0)  
1
nPr(z,c)¸  
(zì c)!  
nPr(expression, negInteger)  
1/((expression+1)ø (expression+2)...  
ans(1)ù nPr(zì c,ë c)¸  
1
(expressionì negInteger))  
nPr(expression, posInteger)  
expressionø (expressionì 1)...  
(expressionì posInteger+1)  
nPr(expression, nonInteger)  
(expressionì nonInteger)!  
expression!/  
nPr({5,4,3},{2,4,2})¸  
nPr(list1, list2)  
list  
{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([6,5;4,3],[2,2;2,2])¸  
30 20  
nPr(matrix1, matrix2)  
matrix  
Returns a matrix of permutations based on  
the corresponding element pairs in the two  
matrices. The arguments must be the same  
size matrix.  
[
]
6
12  
nSolve() MATH/Algebra menu  
nSolve(x^2+5xì 25=9,x)¸  
nSolve(equation, varOrGuess)  
error_string  
number or  
3.844...  
Iteratively searches for one approximate real  
numeric solution to equation for its one  
variable. Specify varOrGuess as:  
nSolve(x^2=4,x=ë 1)¸  
ë 2.  
nSolve(x^2=4,x=1)¸  
2.  
variable  
– or –  
variable = real number  
Note: If there are multiple solutions, you  
can use a guess to help find a particular  
solution.  
For example, x is valid and so is x=3.  
nSolve(x^2+5xì 25=9,x)|x<0¸  
nSolve() is often much faster than solve() or  
zeros(), particularly if the “|” operator is used  
to constrain the search to a small interval  
containing exactly one simple solution.  
ë 8.844...  
nSolve(((1+r)^24ì 1)/r=26,r)|r>  
0 and r<.25¸  
.0068...  
nSolve() attempts to determine either one  
point where the residual is zero or two  
relatively close points where the residual has  
opposite signs and the magnitude of the  
residual is not excessive. If it cannot achieve  
this using a modest number of sample points,  
it returns the string “no solution found.”  
nSolve(x^2=ë 1,x)¸  
"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().  
474  
Appendix A: Functions and Instructions  
 
OneVar  
MATH/Statistics menu  
{0,2,3,4,3,4,6}! L1¸  
OneVar L1¸  
ShowStat¸  
OneVar list1 [[, list2] [, list3] [, list4]]  
Done  
Calculates 1-variable statistics and updates  
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  
x3 or x4¸  
x3  
Boolean expression1 or Boolean expression2  
Boolean expression  
Program segment:  
Returns true or false or a simplified form of  
the original entry.  
©
If x<0 or x5  
Returns true if either or both expressions  
simplify to true. Returns false only if both  
expressions evaluate to false.  
Goto END  
©
If choice=1 or choice=2  
Disp "Wrong choice"  
Note: See xor.  
©
integer1 or integer2  
integer  
In Hex base mode:  
0h7AC36 or 0h3D5F ¸ 0h7BD7F  
Compares two real integers bit-by-bit using  
an or operation. Internally, both integers are  
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  
if both bits are 0. The returned value  
Important: Zero, not the letter O.  
In Bin base mode:  
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  
digits (not counting the 0b prefix). A  
hexadecimal entry can have up to 8 digits.  
You can enter the integers in any number  
base. For a binary or hexadecimal entry, you  
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: Functions and Instructions  
475  
 
ord()  
MATH/String menu  
ord("hello")¸  
104  
"h"  
24  
ord(string)  
ord(list1)  
integer  
list  
char(104)¸  
Returns the numeric code of the first  
character in character string string, or a list  
of the first characters of each list element.  
ord(char(24))¸  
ord({"alpha","beta"})¸  
See Appendix B for a complete listing of  
character codes.  
{97 98}  
Output  
CATALOG  
Output row, column, exprOrString  
Program segment:  
©
Displays exprOrString (an expression or  
character string) on the Program I/O screen  
at the text coordinates (row, column).  
:RandSeed 1147  
:ClrIO  
:For i,1,90,10  
: Output i, rand(100),"Hello"  
An expression can include conversion  
operations such as 4DD and 4Rect. You can  
also use the 4 operator to perform unit and  
number base conversions.  
:EndFor  
©
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  
In Radian angle mode:  
P4Rx(rExpression, qExpression)  
expression  
P4Rx(rList, qList)  
P4Rx(rMatrix, qMatrix)  
list  
P4Rx(r,q)¸  
cos(q)ø r  
matrix  
Returns the equivalent x-coordinate of the  
(r, q) pair.  
P4Rx(4,60¡)¸  
2
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  
expression, you can use ó or ô to override the  
angle mode setting temporarily.  
¸
ë 3/2 5ø 2 1.3  
{
}
P4Ry()  
MATH/Angle menu  
In Radian angle mode:  
P4Ry(rExpression, qExpression)  
expression  
P4Ry(rList, qList)  
P4Ry(rMatrix, qMatrix)  
list  
P4Ry(r,q)¸  
sin(q)ø r  
matrix  
2ø 3  
Returns the equivalent y-coordinate of the  
(r, q) pair.  
P4Ry(4,60¡)¸  
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  
expression, you can use ó or ô to override the  
angle mode setting temporarily.  
¸
ë 3ø 3  
{
2  
ë 5ø  
0.  
}
2
476  
Appendix A: Functions and Instructions  
 
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(cos(pù x+3)) ¸  
1
part(expression1)  
number  
Simplifies expression1 and returns the number  
of top-level arguments or operands. This  
returns 0 if expression1 is a number, variable,  
or symbolic constant such as p, e, i, or ˆ.  
Note: cos(pù x+3) has one argument.  
part(cos(pù x+3),0) ¸  
"cos"  
part(expression1, 0)  
string  
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(cos(pù x+3),1) ¸  
3+pøx  
part(expression1, n)  
expression  
Simplifies expression1 and returns the nth  
argument or operand, where n is > 0 and  
 the number of top-level arguments or  
operands returned by part(expression1).  
Otherwise, an error is returned.  
Note: Simplification changed the order of  
the argument.  
Appendix A: Functions and Instructions  
477  
 
part(cos(pù x+3)) ¸  
part(cos(pù x+3),0) ¸  
part(cos(pù x+3),1)! temp ¸  
3+pøx  
temp ¸  
1
By combining the variations of part(), you can  
extract all of the sub-expressions in the  
simplified result of expression1. As shown in  
the example to the right, you can store an  
argument or operand and then use part() to  
extract further sub-expressions.  
"cos"  
pøx+3  
part(temp,0) ¸  
part(temp) ¸  
part(temp,2) ¸  
part(temp,1)! temp ¸  
part(temp,0) ¸  
part(temp) ¸  
part(temp,1) ¸  
part(temp,2) ¸  
"+"  
2
3
pøx  
"ù "  
2
Note: When using part(), do not rely on any  
particular order in sums and products.  
p
x
part(x+y+z) ¸  
part(x+y+z,2) ¸  
part(x+y+z,1) ¸  
2
z
y+x  
Expressions such as (x+y+z) and (xì yì z)  
are represented internally as (x+y)+z and  
(xì y)ì z. This affects the values returned for  
the first and second argument. There are  
technical reasons why part(x+y+z,1) returns  
y+x instead of x+y.  
part(xù yù z) ¸  
part(xù yù z,2) ¸  
part(xù yù z,1) ¸  
2
z
yøx  
Similarly, xù yù z is represented internally as  
(xù y)ù z. Again, there are technical reasons  
why the first argument is returned as yøx  
instead of xøy.  
When you extract sub-expressions from a  
matrix, remember that matrices are stored as  
lists of lists, as illustrated in the example to  
the right.  
part([a,b,c;x,y,z],0) ¸ "{"  
part([a,b,c;x,y,z]) ¸  
part([a,b,c;x,y,z],2)! temp  
¸
2
{x y z}  
"{"  
part(temp,0) ¸  
part(temp) ¸  
part(temp,3) ¸  
delVar temp ¸  
3
z
Done  
478  
Appendix A: Functions and Instructions  
:d(y,x)  
The example Program Editor function to the  
right uses getType() and part() to partially  
implement symbolic differentiation. Studying  
and completing this function can help teach  
you how to differentiate manually. You could  
even include functions that the  
:Func  
:Local f  
:If getType(y)="VAR"  
: Return when(y=x,1,0,0)  
:If part(y)=0  
: Return 0 ¦ y=p,ˆ,i,numbers  
:part(y,0)! f  
TI-89 / TI-92 Plus cannot differentiate, such  
as Bessel functions.  
: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  
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  
I/O screen.  
:ClrIO  
:DelVar temp  
:1"temp[1]  
:1"temp[2]  
:Disp temp[2]  
:¦ Guess the Pattern  
expression can include conversion operations  
such as 4DD and 4Rect. You can also use the 4  
operator to perform unit and number base  
conversions.  
:For i,3,20  
: temp[iì2]+temp[iì1]"temp[i]  
: Disp temp[i]  
: Disp temp,"Can you guess the  
If the result of expression is too big to fit on a  
single screen, you can use the cursor pad to  
scroll the display.  
next","number?"  
: Pause  
Program execution resumes when you  
press ¸.  
:EndFor  
©
Appendix A: Functions and Instructions  
479  
 
PlotsOff  
CATALOG  
PlotsOff [1] [, 2] [, 3] ... [, 9]  
Turns off the specified plots for graphing.  
PlotsOff 1,2,5¸  
Done  
Done  
PlotsOff¸  
When in 2-graph mode, only affects the active  
graph.  
If no parameters, then turns off all plots.  
PlotsOn  
CATALOG  
PlotsOn 2,4,5¸  
Done  
Done  
PlotsOn [1] [, 2] [, 3] ... [, 9]  
Turns on the specified plots for graphing.  
When in 2-graph mode, only affects the active  
graph.  
PlotsOn¸  
If you do not include any arguments, turns on  
all plots.  
4Polar  
MATH/Matrix/Vector ops menu  
[1,3.]4Polar¸  
vector 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  
Displays complexVector in polar form.  
In Radian angle mode:  
p
3+4i4Polar ¸  
eiø( ì tanê(3/4))ø5  
2
iøp  
Degree angle mode returns (rq).  
Radian angle mode returns reiq  
3
(4p/3)4Polar ¸  
e
ø4  
.
complexValue can have any complex form.  
However, an reiq entry causes an error in  
Degree angle mode.  
In Degree angle mode:  
3+4i4Polar ¸(590ì tanê(3/4))  
Note: You must use the parentheses for an  
(rq) polar entry.  
polyEval() MATH/List menu  
polyEval({a,b,c},x)¸  
polyEval(list1, expression1)  
expression  
polyEval(list1, list2)  
expression  
aø xñ +bø x+c  
Interprets the first argument as the  
coefficient of a descending-degree  
polynomial, and returns the polynomial  
evaluated for the value of the second  
argument.  
polyEval({1,2,3,4},2)¸  
26  
polyEval({1,2,3,4},{2,ë 7})  
¸
{26 ë 262}  
480  
Appendix A: Functions and Instructions  
 
PopUp  
CATALOG  
PopUp itemList, var  
Displays a pop-up menu containing the  
PopUp  
{"1990","1991","1992"},var1  
¸
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.  
PowerReg MATH/Statistics/Regressions menu  
In function graphing mode:  
PowerReg list1, list2[, [list3] [, list4, list5]]  
Calculates the power regression and updates {1,2,3,4,5,6,7}! L1¸  
all the system statistics variables.  
{1 2 3 ...}  
{1,2,3,4,3,4,6}! L2¸  
{1 2 3 ...}  
All the lists must have equal dimensions  
except for list5.  
PowerReg L1,L2¸  
ShowStat¸  
Done  
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.  
¸
Regeq(x)"y1(x)¸  
NewPlot 1,1,L1,L2¸  
Done  
Done  
¥ %  
Prgm  
CATALOG  
Program segment:  
Prgm  
©
:prgmname()  
:Prgm  
EndPrgm  
:
Required instruction that identifies the  
beginning of a program. Last line of program  
:EndPrgm  
must be EndPrgm.  
Appendix A: Functions and Instructions  
481  
 
product() MATH/List menu  
product({1,2,3,4})¸  
24  
product(list[, start[, end]])  
expression  
Returns the product of the elements  
contained in list. Start and end are optional.  
They specify a range of elements.  
product({2,x,y})¸  
2ø xø y  
product({4,5,8,9},2,3) ¸ 40  
product(matrix1[, start[, end]])  
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.  
Start and end are optional. They specify a  
range of rows.  
product([1,2,3;4,5,6;7,8,9],  
1,2) ¸  
[4,10,18]  
Prompt  
CATALOG  
Program segment:  
Prompt var1[, var2] [, var3] ...  
Displays a prompt on the Program I/O screen  
for each variable in the argument list, using  
the prompt var1?. Stores the entered  
©
Prompt A,B,C  
©
EndPrgm  
expression in the corresponding variable.  
Prompt must have at least one argument.  
propFrac() MATH/Algebra menu  
propFrac(4/3)¸  
1 + 1/3  
propFrac(expression1[, var])  
expression  
propFrac(rational_number) returns  
rational_number as the sum of an integer and  
a fraction having the same sign and a greater  
denominator magnitude than numerator  
magnitude.  
propFrac(ë 4/3)¸  
ë 1ì 1/3  
propFrac((x^2+x+1)/(x+1)+  
(y^2+y+1)/(y+1),x)¸  
propFrac(rational_expression,var) returns the  
sum of proper ratios and a polynomial with  
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.  
propFrac(ans(1))  
If var is omitted, a proper fraction expansion  
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  
PtChg xList, yList  
Note: PtChg through PtText show  
continuing similar examples.  
PtChg 2,4¸  
Displays the Graph screen and reverses the  
screen pixel nearest to window coordinates  
(x, y).  
482  
Appendix A: Functions and Instructions  
 
PtOff  
CATALOG  
PtOff x, y  
PtOff xList, yList  
Displays the Graph screen and turns off the  
PtOff 2,4¸  
screen pixel nearest to window coordinates  
(x, y).  
PtOn  
CATALOG  
PtOn 3,5¸  
PtOn x, y  
PtOn xList, yList  
Displays the Graph screen and turns on the  
screen pixel nearest to window coordinates  
(x, y).  
ptTest()  
CATALOG  
ptTest(3,5)¸  
true  
ptTest (x, y)  
ptTest (xList, yList)  
Boolean constant expression  
Boolean constant expression  
Returns true or false. Returns true only if the  
screen pixel nearest to window coordinates  
(x, y) is on.  
PtText  
CATALOG  
PtText "sample",3,5¸  
PtText string, x, y  
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 2,4¸  
PxlChg row, col  
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]  
TI-89: PxlCrcl 40,80,30,1¸  
TI-92 Plus: PxlCrcl 50,125,40,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.  
Appendix A: Functions and Instructions  
483  
 
PxlHorz  
CATALOG  
PxlHorz row [, drawMode]  
Displays the Graph screen and draws a  
PxlHorz 25,1¸  
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]  
TI-89: 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.  
TI-92 Plus: PxlLine 80,20,30,150,1  
¸
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.  
PxlOff  
CATALOG  
PxlHorz 25,1¸  
PxlOff row, col  
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 25,50¸  
PxlOn row, col  
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)  
pxlTest (rowList, colList)  
Boolean expression  
Boolean expression  
PxlOn 25,50¸  
TI-89: "  
TI-92 Plus: ¥ "  
Returns true if the pixel at pixel coordinates  
(row, col) is on. Returns false if the pixel is off.  
PxlTest(25,50)¸  
true  
Note: Regraphing erases all drawn items.  
PxlOff 25,50¸  
TI-89: "  
TI-92 Plus: ¥ "  
PxlTest(25,50)¸  
false  
484  
Appendix A: Functions and Instructions  
 
PxlText  
CATALOG  
PxlText string, row, col  
Displays the Graph screen and places  
TI-89: PxlText "sample  
text",20,10¸  
character string string on the screen, starting  
at pixel coordinates (row, col).  
TI-92 Plus: PxlText "sample  
text",20,50¸  
string is positioned with the upper-left corner  
of its first character at the coordinates.  
Note: Regraphing erases all drawn items.  
PxlVert  
CATALOG  
PxlVert 50,1¸  
PxlVert col [, drawMode]  
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.  
QR  
MATH/Matrix menu  
QR matrix, qMatName, rMatName[, tol]  
The floating-point number (9.) in m1  
causes results to be calculated in floating-  
point form.  
Calculates the Householder QR factorization  
of a real or complex matrix. The resulting Q  
and R matrices are stored to the specified  
MatNames. The Q matrix is unitary. The R  
matrix is upper triangular.  
[1,2,3;4,5,6;7,8,9.]!m1 ¸  
1 2 3  
4 5 6  
7 8 9.  
Optionally, any matrix element is treated as  
zero if its absolute value is less than tol. This  
tolerance is used only if the matrix has  
floating-point entries and does not contain  
any symbolic variables that have not been  
assigned a value. Otherwise, tol is ignored.  
QR m1,qm,rm ¸  
.123… .904…  
Done  
.408…  
ë.816…  
.492… .301…  
qm ¸  
.861… ë.301… .408…  
8.124… 9.601… 11.078…  
If you use ¥ ¸ or set the mode to  
Exact/Approx=APPROXIMATE, computations  
are done using floating-point arithmetic.  
0.  
0.  
.904…  
0.  
1.809…  
0.  
rm ¸  
If tol is omitted or not used, the default  
tolerance is calculated as:  
m n  
o p  
[m,n;o,p]!m1 ¸  
[
]
5Eë 14 ù max(dim(matrix))  
ù rowNorm(matrix)  
Appendix A: Functions and Instructions  
485  
 
QR m1,qm,rm ¸  
Done  
The QR factorization is computed  
numerically using Householder  
transformations. The symbolic solution is  
computed using Gram-Schmidt. The columns  
in qMatName are the orthonormal basis  
vectors that span the space defined by  
matrix.  
qm ¸  
ë sign(møpì nøo)øo  
m
2
2
2
2
m +o  
m +o  
møsign(møpì nøo)  
o
2
2
2
2
m +o  
m +o  
møn+oøp  
2
2
m +o  
2
2
m +o  
rm ¸  
|
|
møpì nøo  
0
2
2
m +o  
QuadReg MATH/Statistics/Regressions menu  
In function graphing mode:  
{0,1,2,3,4,5,6,7}! L1¸  
{1 2 3 ...}  
QuadReg list1, list2[, [list3] [, list4, list5]]  
Calculates the quadratic polynomial  
regression and updates the system statistics  
variables.  
{4,3,1,1,2,2,3,3}! L2¸  
All the lists must have equal dimensions  
except for list5.  
{4 3 1 ...}  
QuadReg L1,L2¸  
Done  
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.  
Regeq(x)"y1(x)¸  
NewPlot 1,1,L1,L2¸  
Done  
Done  
¥ %  
486  
Appendix A: Functions and Instructions  
 
QuartReg MATH/Statistics/Regressions menu  
QuartReg list1, list2[, [list3] [, list4, list5]]  
In function graphing mode:  
{ë 2,ë 1,0,1,2,3,4,5,6}! L1¸  
{ë 2 ë 1 0 ...}  
Calculates the quartic polynomial regression  
and updates the system statistics variables.  
{4,3,1,2,4,2,1,4,6}! L2¸  
All the lists must have equal dimensions  
except for list5.  
{4 3 1 ...}  
QuartReg L1,L2¸  
ShowStat¸  
Done  
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.  
¸
Regeq(x)"y1(x)¸  
NewPlot 1,1,L1,L2¸  
Done  
Done  
¥ %  
R4Pq()  
MATH/Angle menu  
R4Pq (xExpression, yExpression)  
expression  
In Degree angle mode:  
R4Pq (xList, yList)  
R4Pq (xMatrix, yMatrix)  
list  
R8Pq(x,y)¸  
matrix  
Returns the equivalent q-coordinate of the  
(x,y) pair arguments.  
Note: The result is returned as either a  
degree or radian angle, according to the  
current angle mode.  
In Radian angle mode:  
R4Pq(3,2)¸  
R4Pq([3,-4,2],[0,4,1.5])¸  
R4Pr()  
MATH/Angle menu  
R4Pr (xExpression, yExpression)  
expression  
In Radian angle mode:  
R4Pr (xList, yList)  
R4Pr (xMatrix, yMatrix)  
list  
R4Pr(3,2)¸  
R4Pr(x,y)¸  
R4Pr([3,-4,2],[0,4,1.5])¸  
matrix  
Returns the equivalent r-coordinate of the  
(x,y) pair arguments.  
Appendix A: Functions and Instructions  
487  
 
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.  
When an argument is positive, returns a  
random integer in the interval [1, n].  
When an argument is negative, returns a  
random integer in the interval [ë n,ë 1].  
rand()¸  
rand(6)¸  
rand(ë 100)¸  
.158...  
5
ë 49  
randMat() MATH/Probability menu  
RandSeed 1147¸  
Done  
8 ë 3 6  
ë 2 3 ë 6  
0 4 ë 6  
randMat(numRows, numColumns)  
matrix  
Returns a matrix of integers between -9 and 9  
of the specified dimension.  
randMat(3,3)¸  
Both arguments must simplify to integers.  
Note: The values in this matrix will  
change each time you press ¸.  
randNorm() MATH/Probability menu  
RandSeed 1147¸  
Done  
randNorm(mean, sd)  
expression  
randNorm(0,1)¸  
.492...  
Returns a decimal number from the specific  
normal distribution. It could be any real  
number but will be heavily concentrated in  
the interval [mean-3ù sd, mean+3ù sd].  
randNorm(3,4.5)¸  
ì3.543...  
randPoly() MATH/Probability menu  
RandSeed 1147¸  
Done  
randPoly(var, order)  
expression  
randPoly(x,5)¸  
Returns a polynomial in var of the specified  
order. The coefficients are random integers  
in the range ë 9 through 9. The leading  
coefficient will not be zero.  
ë 2ø x5+3ø x4ì 6ø x3+4ø xì 6  
order must be 0–99.  
RandSeed MATH/Probability menu  
RandSeed 1147¸  
Done  
RandSeed number  
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.  
RclGDB  
CATALOG  
RclGDB GDBvar¸  
Done  
RclGDB GDBvar  
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.  
488  
Appendix A: Functions and Instructions  
 
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(2+3i)¸  
real(z)¸  
2
z
x
real(expression1)  
expression  
Returns the real part of the argument.  
Note: All undefined variables are treated as  
real variables. See also imag().  
real(x+iy)¸  
real({a+iù b,3,i})¸ {a 3 0}  
real(list1)  
Returns the real parts of all elements.  
real(matrix1) matrix  
list  
a 3  
real([a+iù b,3;c,i])¸ [  
]
c 0  
Returns the real parts of all elements.  
4Rect  
MATH/Matrix/Vector ops menu  
[3,pà4,pà6]4Rect¸  
vector 4Rect  
3ø 2 3ø 2 3ø 3  
Displays vector in rectangular form [x, y, z].  
The vector must be of dimension 2 or 3 and  
can be a row or a column.  
[
]
4
4
2
[a,b,c]¸ [aø cos(b)ø sin(c)  
Note: 4Rect 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.  
aø sin(b)ø sin(c) aø cos(c)]  
Note: See also 4Polar.  
complexValue 4Rect  
In Radian angle mode:  
p
Displays complexValue in rectangular form  
a+bi. The complexValue can have any complex  
form. However, an reiq entry causes an error  
in Degree angle mode.  
3
4e^(p/3)4Rect ¸  
4øe  
(4p/3)4Rect ¸  
2+2ø 3øi  
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 .  
Appendix A: Functions and Instructions  
489  
 
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  
11/7  
ë 62/71  
Optionally, any matrix element is treated as  
zero if its absolute value is less than tol. This  
tolerance is used only if the matrix has  
floating-point entries and does not contain  
any symbolic variables that have not been  
assigned a value. Otherwise, tol is ignored.  
0
0
1
0
4/7  
1
a b c  
e f g  
[a,b,c;e,f,g]!m1 ¸  
[
]
If you use ¥ ¸ or set the mode to  
Exact/Approx=APPROXIMATE, computations  
are done using floating-point arithmetic.  
f g  
e e  
1
aøgì cøe  
aøfì bøe  
ref(m1) ¸  
0 1  
If tol is omitted or not used, the default  
tolerance is calculated as:  
5Eë 14 ù max(dim(matrix1))  
ù rowNorm(matrix1)  
Note: See also rref().  
remain() MATH/Number menu  
remain(7,0)¸  
remain(7,3)¸  
remain(ë 7,3)¸  
remain(7,ë 3)¸  
7
remain(expression1, expression2)  
expression  
remain(list1, list2)  
remain(matrix1, matrix2)  
list  
1
ë 1  
1
matrix  
Returns the remainder of the first argument  
with respect to the second argument as  
defined by the identities:  
remain(x,0)  x  
remain(x,y)  xì yùiPart(x/y)  
remain(ë 7,ë 3)¸  
ë 1  
remain({12,ë 14,16},{9,7,ë 5})  
¸
{3 0 1}  
As a consequence, note that remain(ì x,y)   
ì remain(x,y). The result is either zero or it  
has the same sign as the first argument.  
remain([9,ë 7;6,4],[4,3;4,ë 3])  
¸
1
ë 1  
[
]
Note: See also mod().  
2 1  
Rename  
CATALOG  
{1,2,3,4}! L1¸  
Rename L1, list1¸  
list1¸  
{1,2,3,4}  
Done  
{1,2,3,4}  
Rename oldVarName, newVarName  
Renames the variable oldVarName as  
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.  
490  
Appendix A: Functions and Instructions  
 
Return  
CATALOG  
Return [expression]  
Returns expression as the result of the  
Define factoral(nn)=Func  
:local answer,count:1! answer  
:For count,1,nn  
:answerù count! answer:EndFor  
:Return answer:EndFunc¸Done  
function. Use within a Func...EndFunc block,  
or Prgm...EndPrgm block.  
Note: Use Return without an argument to  
exit a program.  
factoral(3)¸  
6
Note: Enter the text as one long line on the  
Home screen (without line breaks).  
right()  
MATH/List menu  
right({1,3,ë 2,4},3)¸  
right(list1[, num])  
list  
{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  
enter integer1 in any number base; it is  
converted automatically to a signed, 32-bit  
binary form. If the magnitude of integer1 is  
too large for this form, a symmetric modulo  
operation brings it within the range.  
rotate(0b1111010110000110101)  
¸
0b10000000000000111101011000011010  
rotate(256,1) ¸ 0b1000000000  
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 bit).  
In Hex base mode:  
rotate(0h78E) ¸  
0h3C7  
rotate(0h78E,ë 2) ¸0h800001E3  
For example, in a right rotation:  
rotate(0h78E,2) ¸  
0h1E38  
Important: To enter a binary or  
Each bit rotates right.  
hexadecimal number, always use the 0b  
or 0h prefix (zero, not the letter O).  
0b00000000000001111010110000110101  
Rightmost bit rotates to leftmost.  
produces:  
0b10000000000000111101011000011010  
The result is displayed according to the Base  
mode.  
Appendix A: Functions and Instructions  
491  
 
rotate(list1[,#ofRotations])  
list  
In Dec base mode:  
rotate({1,2,3,4}) ¸  
Returns a copy of list1 rotated right or left by  
#of Rotations elements. Does not alter list1.  
{4 1 2 3}  
rotate({1,2,3,4},ë 2) ¸  
{3 4 1 2}  
rotate({1,2,3,4},1) ¸  
{2 3 4 1}  
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 element).  
rotate("abcd") ¸  
rotate("abcd",ë 2) ¸  
rotate("abcd",1) ¸  
"dabc"  
"cdab"  
"bcda"  
rotate(string1[,#ofRotations])  
string  
Returns a copy of string1 rotated right or left  
by #of Rotations characters. Does not alter  
string1.  
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(1.234567,3)¸  
1.235  
round(expression1[, digits])  
expression  
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({p,(2),ln(2)},4)¸  
round(list1[, digits])  
list  
{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  
rowAdd() MATH/Matrix/Row ops menu  
rowAdd([3,4;ë 3,ë 2],1,2)¸  
3 4  
rowAdd(matrix1, rIndex1, rIndex2)  
matrix  
Returns a copy of matrix1 with row rIndex2  
replaced by the sum of rows rIndex1 and  
rIndex2.  
[ ]  
0 2  
rowAdd([a,b;c,d],1,2)¸  
a
b
[
]
a+c b+d  
rowDim() MATH/Matrix/Dimensions menu  
1 2  
3 4  
5 6  
rowDim(matrix)  
expression  
[1,2;3,4;5,6]! M1¸  
Returns the number of rows in matrix.  
rowdim(M1)¸  
3
Note: See also colDim().  
492  
Appendix A: Functions and Instructions  
 
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  
[1,2;3,4;5,6]! Mat¸  
rowSwap(matrix1, rIndex1, rIndex2)  
matrix  
1 2  
3 4  
5 6  
Returns matrix1 with rows rIndex1 and  
rIndex2 exchanged.  
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  
matrix1.  
1
0
0
0 0  
1 0  
0 1  
66/71  
147  
71  
ë 62/71  
Optionally, any matrix element is treated as  
zero if its absolute value is less than tol. This  
tolerance is used only if the matrix has  
floating-point entries and does not contain  
any symbolic variables that have not been  
assigned a value. Otherwise, tol is ignored.  
rref([a,b,x;c,d,y])¸  
dø x-bø y  
1 0  
0 1  
aø d-bø c  
ë (cø x-aø y)  
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().  
Appendix A: Functions and Instructions  
493  
 
Send  
CATALOG  
Send list  
Program segment:  
CBL 2é/CBLé (Calculator-Based  
Laboratoryé) or CBRé (Calculator-Based  
Rangeré) instruction. Sends list to the link  
port.  
©
:Send {1,0}  
:Send {1,2,1}  
©
SendCalc CATALOG  
Program segment:  
SendCalc var  
Sends variable var to the link port, where  
©
another unit linked to that port can receive  
the variable value. The receiving unit must be  
on the Home screen or must execute GetCalc  
from a program.  
:a+b! x  
:SendCalc x  
©
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  
Program segment:  
SendChat var  
A general alternative to SendCalc, this is  
©
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). Refer to  
SendCalc for more information.  
:a+b! x  
:SendChat x  
©
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.  
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  
returns the results as a list. The original  
contents of var are still there after seq() is  
completed.  
seq(1/n,n,1,10,2)¸  
{1 1/3 1/5 1/7 1/9}  
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...  
494  
Appendix A: Functions and Instructions  
 
setFold() CATALOG  
setFold(newfolderName)  
oldfolderString  
newFold chris¸  
Done  
Returns the name of the current folder as a  
string and sets newfolderName as the current  
folder.  
setFold(main)¸  
"chris"  
setFold(chris)! oldfoldr¸  
"main"  
The folder newfolderName must exist.  
1! a¸  
1
setFold(#oldfoldr)¸ "chris"  
a¸  
a
1
chris\a¸  
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  
you restore it later.  
¸
"RECT"  
Note: Capitalization and blank spaces are  
modeNameString is a character string that  
specifies which mode you want to set. It must  
be one of the mode names from the table  
below.  
optional when entering mode names.  
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"  
"Graph Order"  
"Grid"  
"Rect", "Polar", "Off"  
1
"Seq", "Simul"  
"Off", "On" 2  
"Axes"  
"Off", "On"  
"Off", "Axes", "Box"  
(not 3D graph mode)  
(3D graph mode)  
"Leading Cursor"  
"Labels"  
"Off", "On" 2  
"Off", "On"  
"Style"  
"Wire Frame", "Hidden Surface", "Contour Levels", "Wire and Contour",  
"Implicit Plot" 3  
4
"Seq Axes"  
"DE Axes"  
"Time", "Web", "U1-vs-U2"  
"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 È.  
5
"Solution Method"  
"Fields"  
"RK", "Euler"  
5
"SlpFld", "DirFld", "FldOff"  
1Not available in Sequence, 3D, or Diff Equations graph mode.  
2Not available in 3D graph mode.  
3Applies only to 3D graph mode.  
4Applies only to Sequence graph mode.  
5Applies only to Diff Equations graph mode.  
Appendix A: Functions and Instructions  
495  
 
setMode() CATALOG  
setMode(modeNameString, settingString)  
setMode(list) stringList  
string  
setMode("Angle","Degree")  
¸
"RADIAN"  
2  
Sets mode modeNameString to the new setting  
settingString, and returns the current setting  
of that mode.  
sin(45)¸  
2
setMode("Angle","Radian")  
¸
modeNameString is a character string that  
specifies which mode you want to set. It must  
be one of the mode names from the table  
below.  
"DEGREE"  
2  
2
sin(4)¸  
setMode("Display Digits",  
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.  
"Fix 2")¸  
"FLOAT"  
p ¥ ¸  
3.14  
setMode ("Display Digits",  
list contains pairs of keyword strings and  
will set them all at once. This is  
"Float")¸  
"FIX 2"  
recommended for multiple-mode changes.  
The example shown may not work if each of  
the pairs is entered with a separate setMode()  
in the order shown.  
p ¥ ¸  
3.141...  
setMode ({"Split Screen",  
"Left-Right","Split 1 App",  
"Graph","Split 2 App","Table"})  
¸
Use setMode(var) to restore settings saved  
with getMode("ALL")! var.  
{"Split 2 App" "Graph"  
Note: To set or return information about the  
Unit System mode, use setUnits() or getUnits()  
instead of setMode() or getMode().  
"Split 1 App" "Home"  
"Split Screen" "FULL"}  
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"  
"Fix 0", "Fix 1", ..., "Fix 12", "Float", "Float 1", ..., "Float 12"  
"Radian", "Degree"  
"Display Digits"  
"Angle"  
"Exponential Format"  
"Complex Format"  
"Vector Format"  
"Pretty Print"  
"Split Screen"  
"Split 1 App"  
"Normal", "Scientific", "Engineering"  
"Real", "Rectangular", "Polar"  
"Rectangular", "Cylindrical", "Spherical"  
"Off", "On"  
"Full", "Top-Bottom", "Left-Right"  
"Home", "Y= Editor", "Window Editor", "Graph", "Table", "Data/Matrix  
Editor", "Program Editor", "Text Editor", "Numeric Solver", "Flash App"  
"Split 2 App"  
"Home", "Y= Editor", "Window Editor", "Graph", "Table", "Data/Matrix  
Editor", "Program Editor", "Text Editor", "Numeric Solver", "Flash App"  
"Number of Graphs"  
"Graph2"  
"1", "2"  
"Function", "Parametric", "Polar", "Sequence", "3D", "Diff Equations"  
"1:1", "1:2", "2:1" (TI-92 Plus only)  
"Auto", "Exact", "Approximate"  
"Dec", "Hex", "Bin"  
"Split Screen Ratio"  
"Exact/Approx"  
"Base"  
"Language"  
"English", "Alternate Language"  
496  
Appendix A: Functions and Instructions  
 
setTable() CATALOG  
setTable(modeNameString, settingString)  
string  
setTable("Graph <ì >  
Table","ON")  
¸
Sets the table parameter modeNameString to  
settingString, and returns the previous setting  
"OFF"  
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"  
"Independent"  
"Off", "On"  
"Auto", "Ask"  
setUnits() CATALOG  
setUnits(list1)  
list  
All unit names must begin with an  
underscore _.  
Sets the default units to the values specified  
in list1, and returns a list of the previous  
defaults.  
TI-89: ¥   
TI-92 Plus: 2   
To specify the built-in SI (metric) or  
ENG/US system, list1 uses the form:  
You can also select units from a menu by  
pressing:  
{"SI"} or {"ENG/US"}  
TI-89: 2 9  
TI-92 Plus: ¥ À  
To specify a custom set of default units,  
list1 uses the form:  
setUnits({"SI"}) ¸  
{"CUSTOM", "cat1", "unit1"[, "cat2", "unit2", ]}  
{"SI" "Area" "NONE"  
"Capacitance" "_F" ...}  
where each cat and unit pair specifies a  
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.  
setUnits({"CUSTOM","Length",  
"_cm","Mass","_gm"}) ¸  
{"SI" "Length" "_m"  
"Mass" "_kg" ...}  
Note: Your screen may display different  
units.  
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.  
Appendix A: Functions and Instructions  
497  
 
Shade  
CATALOG  
Shade expr1, expr2, [xlow], [xhigh], [pattern], [patRes]  
In the ZoomTrig viewing window:  
Displays the Graph screen, graphs expr1 and  
expr2, and shades areas in which expr1 is less  
than expr2. (expr1 and expr2 must be  
expressions that use x as the independent  
variable.)  
Shade cos(x),sin(x)¸  
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.  
TI-89: "  
TI-92 Plus: ¥ "  
pattern specifies one of four shading patterns:  
1 = vertical (default)  
ClrDraw¸  
Done  
2 = horizontal  
3 = negative-slope 45¡  
Shade cos(x),sin(x),0,5¸  
4 = positive-slope 45¡  
patRes specifies the resolution of the shading  
patterns:  
1= solid shading  
2= 1 pixel spacing (default)  
3= 2 pixels spacing  
©
TI-89: "  
TI-92 Plus: ¥ "  
10= 9 pixels spacing  
ClrDraw¸  
Shade cos(x),sin(x),0,5,2¸  
Done  
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.  
TI-89: "  
TI-92 Plus: ¥ "  
ClrDraw¸  
Done  
Shade cos(x),sin(x),0,5,2,1  
¸
498  
Appendix A: Functions and Instructions  
 
shift()  
CATALOG  
shift(integer1[,#ofShifts])  
integer  
In Bin base mode:  
Shifts the bits in a binary integer. You can  
enter integer1 in any number base; it is  
converted automatically to a signed, 32-bit  
binary form. If the magnitude of integer1 is  
too large for this form, a symmetric modulo  
operation brings it within the range.  
shift(0b1111010110000110101)  
¸
0b111101011000011010  
shift(256,1) ¸  
0b1000000000  
In Hex base mode:  
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 bit).  
shift(0h78E) ¸  
0h3C7  
0h1E3  
shift(0h78E,ë 2) ¸  
shift(0h78E,2) ¸  
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.  
0h1E38  
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  
Dropped  
Inserts 0 if leftmost bit is 0,  
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:  
shift({1,2,3,4}) ¸  
Returns a copy of list1 shifted right or left by  
#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.  
The default is ë 1 (shift right one element).  
{undef undef 1 2}  
shift({1,2,3,4},1) ¸  
{2 3 4 undef}  
Elements introduced at the beginning or end  
of list by the shift are set to the symbol  
“undef”.  
shift("abcd") ¸  
shift("abcd",ë 2) ¸  
shift("abcd",1) ¸  
" abc"  
" ab"  
"bcd "  
shift(string1 [,#ofShifts])  
string  
Returns a copy of string1 shifted right or left  
by #ofShifts characters. Does not alter string1.  
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.  
Appendix A: Functions and Instructions  
499  
 
ShowStat CATALOG  
{1,2,3,4,5}! L1¸ {1 2 3 4 5}  
ShowStat  
{0,2,6,10,25}! L2¸  
Displays a dialog box containing the last  
{0 2 6 10 25}  
computed statistics results if they are still  
valid. Statistics results are cleared  
automatically if the data to compute them  
has changed.  
TwoVar L1,L2¸  
ShowStat¸  
Use this instruction after a statistics  
calculation, such as LinReg.  
sign()  
MATH/Number menu  
sign(ë 3.2)¸  
ë 1.  
sign(expression1)  
sign(list1) list  
sign(matrix1)  
expression  
sign({2,3,4,ë 5})¸  
matrix  
{1 1 1 ë 1}  
For real and complex expression1, returns  
expression1/abs(expression1) when  
expression1ƒ 0.  
sign(1+abs(x))¸  
1
Returns 1 if expression1 is positive.  
Returns ë 1 if expression1 is negative.  
sign(0) returns 1 if the complex format  
mode is REAL; otherwise, it returns itself.  
sign(0) represents the unit circle in the  
complex domain.  
If complex format mode is REAL:  
sign([ë 3,0,3])¸  
[ë 1 1 1]  
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
The solution is x=ë 3 and y=2.  
constVector must have the same number of  
rows (same dimension) as coeffMatrix and  
contain the constants.  
Solve: ax + by = 1  
cx + dy = 2  
Optionally, any matrix element is treated as  
zero if its absolute value is less than tol. This  
tolerance is used only if the matrix has  
floating-point entries and does not contain  
any symbolic variables that have not been  
assigned a value. Otherwise, tol is ignored.  
a b  
[a,b;c,d]! matx1¸  
simult(matx1,[1;2])¸  
[ ]  
c d  
ë (2ø bì d)  
aø dì bø c  
2ø aì c  
If you use ¥ ¸ or set the mode to  
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)  
500  
Appendix A: Functions and Instructions  
 
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  
coefficients but different constants.  
simult([1,2;3,4],[1,2;ë 1,ë 3])  
¸
ë 3 ë 7  
Each column in constMatrix must contain the  
constants for a system of equations. Each  
column in the resulting matrix contains the  
solution for the corresponding system.  
[
]
2
9/2  
For the first system, x=ë 3 and y=2. For  
the second system, x=ë 7 and y=9/2.  
sin()  
TI-89: 2 W key  
sin(expression1) expression  
sin(list1) list  
TI-92 Plus: W key  
In Degree angle mode:  
2  
2
sin(expression1) returns the sine of the  
argument as an expression.  
sin((p/4)ô )¸  
2  
2
sin(list1) returns a list of the sines of all  
elements in list1.  
sin(45)¸  
Note: The argument is interpreted as either a  
degree or radian angle, according to the  
current angle mode. You can use ó or ô to  
override the angle mode setting temporarily.  
3  
2
sin({0,60,90})¸ {0  
1}  
In Radian angle mode:  
2  
2
sin(p/4)¸  
2  
2
sin(45¡)¸  
sin(squareMatrix1)  
squareMatrix  
In Radian angle mode:  
sin([1,5,3;4,2,1;6,ë 2,1]) ¸  
Returns the matrix sine of squareMatrix1. This  
is not the same as calculating the sine of each  
element. For information about the  
.942… ë.045… ë.031…  
calculation method, refer to cos().  
ë.045… .949… ë.020…  
ë.048… ë.005… .961…  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
sinê()  
TI-89: ¥ Q key  
sinê (expression1) expression  
sinê (list1) list  
TI-92 Plus: 2 Q key  
In Degree angle mode:  
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.  
Appendix A: Functions and Instructions  
501  
 
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  
calculating the inverse sine of each element.  
For information about the calculation  
method, refer to cos().  
sinê([1,5,3;4,2,1;6,ë 2,1])  
¸
ë.164…ì.064…øi  
1.490…ì 2.105…øi  
.725…ì 1.515…øi  
.947…ì.778…øi  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
2.083…ì 2.632…øi ë 1.790…+1.271…øi …  
sinh()  
MATH/Hyperbolic menu  
sinh(1.2)¸  
1.509...  
sinh(expression1)  
expression  
sinh(list1) list  
sinh({0,1.2,3.})¸  
sinh (expression1) returns the hyperbolic sine  
of the argument as an expression.  
{0 1.509... 10.017...}  
sinh (list) returns a list of the hyperbolic sines  
of each element of list1.  
sinh(squareMatrix1)  
squareMatrix  
In Radian angle mode:  
sinh([1,5,3;4,2,1;6,ë 2,1])  
¸
Returns the matrix hyperbolic sine of  
squareMatrix1. This is not the same as  
calculating the hyperbolic sine of each  
element. For information about the  
calculation method, refer to cos().  
360.954 305.708 239.604  
352.912 233.495 193.564  
298.632 154.599 140.251  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
sinhê()  
MATH/Hyperbolic menu  
sinhê (0)¸  
0
sinhê (expression1)  
expression  
sinhê (list1) list  
sinhê ({0,2.1,3})¸  
sinhê (expression1) returns the inverse  
hyperbolic sine of the argument as an  
expression.  
{0 1.487... sinhê (3)}  
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  
each element. For information about the  
calculation method, refer to cos().  
¸
.041…  
2.155…  
1.158…  
.112…  
1.463… .926…  
2.750… ë 1.528… .572…  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
502  
Appendix A: Functions and Instructions  
 
SinReg  
MATH/Statistics/Regressions menu  
SinReg list1, list2 [, [iterations], [ period] [, list3, list4]]  
In function graphing mode:  
seq(x,x,1,361,30)! L1 ¸  
Calculates the sinusoidal regression and  
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  
except for list4.  
14.5,12.5,8.5,6.5,5.5}! L2 ¸  
{5.5 8 11 …}  
SinReg L1,L2 ¸  
Done  
list1 represents xlist.  
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  
omitted, the difference between values in  
list1 should be equal and in sequential order.  
If you specify period, the differences between  
x values can be unequal.  
regeq(x)! y1(x) ¸  
NewPlot 1,1,L1,L2 ¸  
¥ %  
Done  
Done  
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(inequality, var) Boolean expression  
solve(aù x^2+bù x+c=0,x)¸  
bñ -4ø aø c-b  
Returns candidate real solutions of an equation  
or an inequality for var. The goal is to return  
candidates for all solutions. However, there  
might be equations or inequalities for which the  
number of solutions is infinite.  
x=  
2ø a  
( bñ -4ø aø c+b)  
ë
or x=  
2ø a  
Solution candidates might not be real finite  
solutions for some combinations of values for  
undefined variables.  
ans(1)| a=1 and b=1 and c=1  
¸
Error: Non-real result  
For the AUTO setting of the Exact/Approx mode,  
the goal is to produce exact solutions when  
they are concise, and supplemented by iterative  
searches with approximate arithmetic when  
exact solutions are impractical.  
solve((xì a)e^(x)=ë xù (xì a),x)  
¸
x=a or x=ë.567...  
(x+1)(xì 1)/(xì 1)+xì 3¸  
Due to default cancellation of the greatest  
common divisor from the numerator and  
denominator of ratios, solutions might be  
solutions only in the limit from one or both  
sides.  
2ø xì 2  
solve(entry(1)=0,x)¸  
entry(2)|ans(1)¸  
limit(entry(3),x,1)¸  
x=1  
undef  
0
solve(5xì 22x,x)¸  
x2/3  
For inequalities of types , , <, or >, explicit  
solutions are unlikely unless the inequality is  
linear and contains only var.  
Appendix A: Functions and Instructions  
503  
 
exact(solve((xì a)e^(x)=ë xù  
For the EXACT setting of the Exact/Approx mode,  
portions that cannot be solved are returned as  
an implicit equation or inequality.  
(xì a),x))¸  
ex +x=0 or x=a  
In Radian angle mode:  
Use the “|” operator to restrict the solution  
interval and/or other variables that occur in the  
equation or inequality. When you find a solution  
in one interval, you can use the inequality  
operators to exclude that interval from  
subsequent searches.  
solve(tan(x)=1/x,x)|x>0 and x<1  
¸
x=.860...  
solve(x=x+1,x)¸  
false  
true  
false is returned when no real solutions are  
found. true is returned if solve() can determine  
that any finite real value of var satisfies the  
equation or inequality.  
solve(x=x,x)¸  
2xì 11 and solve(x^2ƒ9,x)¸  
Since solve() always returns a Boolean result,  
you can use “and,” “or,” and “not” to combine  
results from solve() with each other or with  
other Boolean expressions.  
x 1 and xƒ ë 3  
In Radian angle mode:  
Solutions might contain a unique new  
undefined variable of the form @nj with j being  
an integer in the interval 1–255. Such variables  
designate an arbitrary integer.  
solve(sin(x)=0,x)¸ x=@n1ø p  
solve(x^(1/3)=ë 1,x)¸ x=ë 1  
In real mode, fractional powers having odd  
denominators denote only the real branch.  
Otherwise, multiple branched expressions such  
as fractional powers, logarithms, and inverse  
trigonometric functions denote only the  
principal branch. Consequently, solve()  
produces only solutions corresponding to that  
one real or principal branch.  
solve((x)=ë 2,x)¸  
false  
x=4  
solve(ë (x)=ë 2,x)¸  
Note: See also cSolve(), cZeros(), nSolve(), and  
zeros().  
solve(y=x^2ì 2 and  
solve(equation1 and equation2 [and ], {varOrGuess1,  
varOrGuess2 [, ]})  
Boolean expression  
x+2y=ë 1,{x,y}) ¸  
x=1 and y=ë 1  
or x=ë 3/2 and y=1/4  
Returns candidate real 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.  
504  
Appendix A: Functions and Instructions  
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.  
solve(x^2+y^2=r^2 and  
As illustrated by r in the example to the right,  
simultaneous polynomial equations can have  
extra variables that have no values, but  
represent given numeric values that could be  
substituted later.  
(xì r)^2+y^2=r^2,{x,y}) ¸  
3ør  
r
2
x=  
and y=  
2
ë 3ør  
r
2
or x=  
and y=  
2
solve(x^2+y^2=r^2 and  
You can also (or instead) include solution  
variables that do not appear in the equations.  
For example, you can include z as a solution  
variable to extend the previous example to  
two parallel intersecting cylinders of radius r.  
(xì r)^2+y^2=r^2,{x,y,z}) ¸  
3ør  
r
2
x=  
and y=  
and z=@1  
and z=@1  
2
ë 3ør  
r
or x=  
and y=  
The cylinder solutions illustrate how families  
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.  
2
2
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.  
solve(x+e^(z)ù y=1 and  
xì y=sin(z),{x,y}) ¸  
If you do not include any guesses and if any  
equation is non-polynomial in any variable  
but all equations are linear in the solution  
variables, solve() uses Gaussian elimination  
to attempt to determine all real solutions.  
ezøsin(z)+1  
ë (sin(z)ì 1  
x=  
and y=  
ez+1  
ez+1  
solve(e^(z)ù y=1 and  
ë y=sin(z),{y,z}) ¸  
If a system is neither polynomial in all of its  
variables nor linear in its solution variables,  
solve() determines at most one solution 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.  
y=.041… and z=3.183…  
Appendix A: Functions and Instructions  
505  
solve(e^(z)ù y=1 and  
ë y=sin(z),{y,z=2p}) ¸  
Each solution variable starts at its guessed  
value if there is one; otherwise, it starts at  
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 menu  
{2,1,4,3}! list1¸ {2,1,4,3}  
SortA listName1[, listName2] [, listName3] ...  
SortA vectorName1[, vectorName2] [, vectorName3] ...  
SortA list1¸  
Done  
Sorts the elements of the first argument in  
ascending order.  
list1¸  
{4,3,2,1}! list2¸ {4 3 2 1}  
{1 2 3 4}  
If you include additional arguments, sorts the  
elements of each so that their new positions  
match the new positions of the elements in  
the first argument.  
SortA list2,list1¸  
Done  
list2¸  
list1¸  
{1 2 3 4}  
{4 3 2 1}  
All arguments must be names of lists or  
vectors. All arguments must have equal  
dimensions.  
SortD  
MATH/List menu  
{2,1,4,3}! list1¸ {2 1 4 3}  
SortD listName1[, listName2] [, listName3] ...  
SortD vectorName1[,vectorName 2] [,vectorName 3] ...  
{1,2,3,4}! list2¸ {1 2 3 4}  
SortD list1,list2¸  
list1¸  
list2¸  
Done  
{4 3 2 1}  
{3 4 1 2}  
Identical to SortA, except SortD sorts the  
elements in descending order.  
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  
either a row or a column vector.  
3ø 13  
p
4
¸ [13  

cosê (  
)]  
13  
Note: 4Sphere is a display-format instruction,  
not a conversion function. You can use it  
only at the end of an entry line.  
Z
(ρ,θ,φ)  
φ
ρ
Y
θ
X
stdDev() MATH/Statistics menu  
stdDev({a,b,c})¸  
stdDev({1,2,5,ë 6,3,ë 2})¸  
stdDev(list[, freqlist])  
expression  
Returns the standard deviation of the  
elements in list.  
Each freqlist element counts the number of  
consecutive occurrences of the  
corresponding element in list.  
Note: list must have at least two elements.  
stdDev({1.3,2.5,L6.4},{3,2,5})  
4.33345  
¸
506  
Appendix A: Functions and Instructions  
 
stdDev(matrix1[, freqmatrix])  
matrix  
stdDev([1,2,5;-3,0,1;.5,.7,3])  
¸
Returns a row vector of the standard  
deviations of the columns in matrix1.  
[2.179... 1.014...  
2]  
stdDev([L1.2,5.3;2.5,7.3;6,L4],  
[4,2;3,3;1,7]) ¸  
Each freqmatrix element counts the number  
of consecutive occurrences of the  
corresponding element in matrix1.  
[2.7005,5.44695]  
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  
Program segment:  
Stop  
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 ! (store), page 539.  
Appendix A: Functions and Instructions  
507  
 
string()  
MATH/String menu  
string(expression) string  
string(1.2345)¸  
"1.2345"  
"3"  
Simplifies expression and returns the result as  
a character string.  
string(1+2)¸  
string(cos(x)+(3))¸  
"cos(x)+(3)"  
Style  
CATALOG  
Style 1,"thick"¸  
Done  
Done  
Style equanum, stylePropertyString  
Sets the system graphing function equanum in  
the current graph mode to use the graphing  
property stylePropertyString.  
Style 10,"path"¸  
Note: In function graphing mode, these  
examples set the style of y1(x) to "Thick"  
and y10(x) to "Path".  
equanum must be an integer from 1–99 and  
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:  
3D:  
Diff Equations:  
line, dot, square, thick  
none  
line, dot, square, thick,  
animate, path  
Note: Capitalization and blank spaces are  
optional when entering stylePropertyString  
names.  
subMat() CATALOG  
[1,2,3;4,5,6;7,8,9]! m1¸  
subMat(matrix1[, startRow] [, startCol] [, endRow]  
[, endCol]) matrix  
1 2 3  
4 5 6  
7 8 9  
Returns the specified submatrix of matrix1.  
subMat(m1,2,1,3,2)¸  
Defaults: startRow=1, startCol=1, endRow=last  
row, endCol=last column.  
4 5  
[ ]  
7 8  
subMat(m1,2,2)¸  
5 6  
[ ]  
8 9  
sum()  
MATH/List menu  
sum({1,2,3,4,5}) ¸  
sum({a,2a,3a}) ¸  
15  
6ø a  
55  
sum(list[, start[, end]])  
expression  
Returns the sum of the elements in list.  
Start and end are optional. They specify a  
range of elements.  
sum(seq(n,n,1,10)) ¸  
sum({1,3,5,7,9},3) ¸  
21  
508  
Appendix A: Functions and Instructions  
 
sum([1,2,3;4,5,6])¸[5 7 9]  
sum(matrix1[, start[, end]])  
matrix  
Returns a row vector containing the sums of  
the elements in the columns in matrix1.  
sum([1,2,3;4,5,6;7,8,9])¸  
[12 15 18]  
Start and end are optional. They specify a  
range of rows.  
sum([1,2,3;4,5,6;7,8,9],2,3)  
¸
[11,13,15]  
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 / TI-92 Plus is not  
displaying a split screen.  
T
(transpose)  
matrix1  
MATH/Matrix menu  
î
[1,2,3;4,5,6;7,8,9]! mat1¸  
matrix  
1 2 3  
4 5 6  
7 8 9  
Returns the complex conjugate transpose of  
matrix1.  
î
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  
Appendix A: Functions and Instructions  
509  
 
Table  
CATALOG  
In function graphing mode.  
Table expression1[, expression2] [, var1]  
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  
Table cos(time),time¸  
deleted using the edit functions available  
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()  
TI-89: 2 Y key  
tan(expression1) expression  
tan(list1) list  
TI-92 Plus: Y key  
In Degree angle mode:  
tan((p/4)ô )¸  
1
1
tan(expression1) returns the tangent of the  
argument as an expression.  
tan(45)¸  
tan(list1) returns a list of the tangents of all  
elements in list1.  
tan({0,60,90})¸  
{0 3 undef}  
Note: The argument is interpreted as either a  
degree or radian angle, according to the  
current angle mode. You can use ó or ô to  
override the angle mode temporarily.  
In Radian angle mode:  
tan(p/4)¸  
1
1
tan(45¡)¸  
tan({p,p/3,-p,p/4})¸  
{0 3 0 1}  
tan(squareMatrix1)  
squareMatrix  
In Radian angle mode:  
tan([1,5,3;4,2,1;6,ë 2,1]) ¸  
Returns the matrix tangent of squareMatrix1.  
This is not the same as calculating the  
tangent of each element. For information  
about the calculation method, refer to cos().  
ë 28.291… 26.088…  
11.114…  
12.117…  
36.818…  
ë 7.835…  
ë 32.806… ë 10.459…  
ë 5.481…  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
510  
Appendix A: Functions and Instructions  
 
tanê()  
TI-89: ¥ S key  
tanê (expression1) expression  
tanê (list1) list  
TI-92 Plus: 2 S key  
In Degree angle mode:  
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  
tangents of each element of list1.  
tanê ({0,.2,.5})¸  
{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:  
tanê([1,5,3;4,2,1;6,ë 2,1])  
¸
Returns the matrix inverse tangent of  
squareMatrix1. This is not the same as  
calculating the inverse tangent of each  
element. For information about the  
calculation method, refer to cos().  
ë.083… 1.266…  
.748… .630…  
1.686… ë 1.182… .455…  
.622…  
ë.070…  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
tanh()  
MATH/Hyperbolic menu  
tanh(1.2)¸  
.833...  
{0 tanh(1)}  
tanh(expression1)  
expression  
tanh(list1) list  
tanh({0,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:  
tanh([1,5,3;4,2,1;6,ë 2,1])  
¸
Returns the matrix hyperbolic tangent of  
squareMatrix1. This is not the same as  
calculating the hyperbolic tangent of each  
element. For information about the  
calculation method, refer to cos().  
ë.097… .933…  
.488… .538…  
.425…  
ë.129…  
1.282… ë 1.034… .428…  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
tanhê()  
MATH/Hyperbolic menu  
In rectangular complex format mode:  
tanhê (expression1)  
expression  
tanhê (list1) list  
tanhê (0)¸  
0
tanhê (expression1) returns the inverse  
hyperbolic tangent of the argument as an  
expression.  
tanhê ({1,2.1,3})¸  
p
2
ln(2)  
2
{ˆ  
.518... ì 1.570...ø i  
ì
ø i}  
tanhê (list1) returns a list of the inverse  
hyperbolic tangents of each element of list1.  
Appendix A: Functions and Instructions  
511  
 
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  
calculation method, refer to cos().  
¸
ë.099…+.164…øi .267…ì 1.490…øi  
ë.087…ì.725…øi .479…ì.947…øi  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
.511…ì 2.083…øi ë.878…+1.790…øi …  
taylor()  
MATH/Calculus menu  
taylor(e^((x)),x,2)¸  
taylor(expression1, var, order[, point])  
expression  
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  
(var minus point) to determine more general  
power series.  
taylor(1/(xù (xì 1)),x,3)¸  
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((cos(a))^2)¸  
tCollect(expression1)  
expression  
cos(2ø a)+1  
Returns an expression in which products and  
integer powers of sines and cosines are  
converted to a linear combination of sines  
and cosines of multiple angles, angle sums,  
and angle differences. The transformation  
converts trigonometric polynomials into a  
linear combination of their harmonics.  
2
tCollect(sin(a)cos(b))¸  
sin(aì b)+sin(a+b)  
2
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.  
512  
Appendix A: Functions and Instructions  
 
tExpand() MATH\Algebra\Trig menu  
tExpand(sin(3f))¸  
4ø sin(f)ø (cos(f))ñ ì sin(f)  
tExpand(expression1)  
expression  
Returns an expression in which sines and  
cosines of integer-multiple angles, angle  
sums, and angle differences are expanded.  
Because of the identity (sin(x))2+(cos(x))2=1,  
there are many possible equivalent results.  
Consequently, a result might differ from a  
result shown in other publications.  
tExpand(cos(aì b))¸  
cos(a)ø cos(b)+sin(a)ø sin(b)  
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 "Have a nice day."¸  
Text promptString  
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  
Title  
See If, page 456.  
CATALOG  
Program segment:  
Title titleString, [Lbl]  
Creates the title of a pull-down menu or  
dialog box when used inside a Toolbar or  
Custom construct, or a Dialog...EndDlog  
block.  
©
:Dialog  
:Title  
box"  
"This is a dialog  
:Request "Your name",Str1  
:Dropdown "Month you were  
Note: Lbl is only valid in the Toolbar  
construct. When present, it allows the menu  
choice to branch to a specified label inside  
the program.  
born",  
seq(string(i),i,1,12),Var1  
:EndDlog  
©
Appendix A: Functions and Instructions  
513  
 
tmpCnv() CATALOG  
tmpCnv(100_¡c,_¡f) ¸ 212.ø_¡F  
tmpCnv(32_¡f,_¡c) ¸ 0.ø_¡C  
tmpCnv(expression1_¡tempUnit1, _¡tempUnit2)  
expression _¡tempUnit2  
Converts a temperature value specified by  
expression1 from one unit to another. Valid  
temperature units are:  
tmpCnv(0_¡c,_¡k) ¸ 273.15ø_¡K  
tmpCnv(0_¡f,_¡r) ¸ 459.67ø_¡R  
_¡C  
_¡F  
_¡K  
_¡R  
Celsius  
Fahrenheit  
Kelvin  
Note: To select temperature units from a  
menu, press:  
Rankine  
For ¡, press 2 “.  
TI-89: For _ , press ¥ .  
TI-92 Plus: For _ , press 2 .  
TI-89: 2 9  
TI-92 Plus: ¥ À  
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).  
@tmpCnv(100_¡c,_¡f) ¸  
Converts a temperature range (the difference  
between two temperature values) specified  
by expression1 from one unit to another. Valid  
temperature units are:  
180.ø_¡F  
@tmpCnv(180_¡f,_¡c) ¸  
100.ø_¡C  
_¡C  
_¡F  
_¡K  
_¡R  
Celsius  
Fahrenheit  
Kelvin  
@tmpCnv(100_¡c,_¡k) ¸  
Rankine  
100.ø_¡K  
For ¡, press 2 “.  
TI-89: For _ , press ¥ .  
TI-92 Plus: For _ , press 2 .  
@tmpCnv(100_¡f,_¡r) ¸  
100.ø_¡R  
1_¡C and 1_¡K have the same magnitude, as  
do 1_¡F and 1_¡R. However, 1_¡C is 9/5 as  
large as 1_¡F.  
@tmpCnv(1_¡c,_¡f) ¸  
1.8ø_¡F  
Note: To select temperature units from a  
menu, press:  
TI-89: 2 9  
TI-92 Plus: ¥ À  
For example, a 100_¡C range (from 0_¡C to  
100_¡C) is equivalent to a 180_¡F range:  
100_¡C  
0
100  
212  
_¡C  
_¡F  
32  
180_¡F  
To convert a particular temperature value  
instead of a range, use tmpCnv().  
514  
Appendix A: Functions and Instructions  
 
Toolbar  
CATALOG  
Program segment:  
Toolbar  
block  
EndTBar  
©
:Toolbar  
: Title "Examples"  
: Item "Trig", t  
: Item "Calc", c  
: Item "Stop", Pexit  
:EndTbar  
Creates a toolbar menu.  
block can be either a single statement or a  
sequence of statements separated with the “:”  
character. The statements can be either Title  
or Item.  
©
Note: When run in a program, this  
segment creates a menu with three  
choices that branch to three places in the  
program.  
Items must have labels. A Title must also have  
a label if it does not have an item.  
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  
Program segment:  
Try  
block1  
©
Else  
block2  
EndTry  
:Try  
: NewFold(temp)  
: Else  
:
¦Already exists  
Executes block1 unless an error occurs.  
Program execution transfers to block2 if an  
error occurs in block1. Variable errornum  
contains the error number to allow the  
program to perform error recovery.  
: ClrErr  
:EndTry  
©
Note: See ClrErr and PassErr.  
block1 and block2 can be either a single  
statement or a series of statements separated  
with the “:” character.  
Appendix A: Functions and Instructions  
515  
 
TwoVar  
MATH/Statistics menu  
{0,1,2,3,4,5,6}! L1¸  
{0 1 2 ...}  
{0,2,3,4,3,4,6}! L2¸  
{0 2 3 ...}  
TwoVar list1, list2[, [list3] [, list4, list5]]  
Calculates the TwoVar statistics and updates  
all the system statistics variables.  
All the lists must have equal dimensions  
except for list5.  
TwoVar L1,L2¸  
Done  
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  
10!arctest ¸  
Archive arctest ¸  
5ù arctest ¸  
10  
Done  
50  
Unarchiv var1 [, var2] [, var3] …  
Moves the specified variables from the user  
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 ¸  
15!arctest ¸  
Done  
15  
unitV()  
MATH/Matrix/Vector ops menu  
unitV([a,b,c])¸  
unitV(vector1) vector  
a
b
c
[
]
Returns either a row- or column-unit vector,  
depending on the form of vector1.  
añ +bñ +cñ  
añ +bñ +cñ  
añ +bñ +cñ  
unitV([1,2,1])¸  
vector1 must be either a single-row matrix or  
6 6 6  
a single-column matrix.  
[
]
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.  
516  
Appendix A: Functions and Instructions  
 
variance() MATH/Statistics menu  
variance({a,b,c})¸  
añ -aø (b+c)+bñ -bø c+cñ  
variance(list[, freqlist])  
expression  
Returns the variance of list.  
3
Each freqlist element counts the number of  
consecutive occurrences of the  
corresponding element in list.  
variance({1,2,5,ë 6,3,ë 2})¸  
31/2  
variance({1,3,5},{4,6,2}) ¸  
Note: list must contain at least two elements.  
68/33  
variance(matrix1[, freqmatrix])  
matrix  
variance([1,2,5;ë 3,0,1;  
.5,.7,3])¸ [4.75 1.03 4]  
Returns a row vector containing the variance  
variance([L1.1,2.2;3.4,5.1;  
L2.3,4.3],[6,3;2,4;5,1]) ¸  
[3.91731,2.08411]  
of each column in matrix1.  
Each freqmatrix element counts the number  
of consecutive occurrences of the  
corresponding element 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.  
when(x<0,x+3)|x=5¸  
Omit both falseResult and unknownResult to  
make an expression defined only in the  
region where condition is true.  
when(x<0,3+x)  
ClrGraph¸  
Graph when(xë p and  
x<0,x+3,undef)¸  
Use an undef falseResult to define an  
expression that graphs only on an interval.  
Graph when(x<0,x+3,5ì x^2)¸  
Omit only the unknownResult to define a two-  
piece expression.  
Appendix A: Functions and Instructions  
517  
 
Nest when() to define expressions that have  
more than two pieces.  
TI-89: "  
TI-92 Plus: ¥ "  
ClrGraph¸  
Done  
Graph when(x<0,when(x<ë p,  
4ù sin(x),2x+3),5ì x^2)¸  
when(n>0,nù factoral(nì 1),1)  
! factoral(n)¸  
factoral(3)¸  
when() is helpful for defining recursive  
functions.  
Done  
6
3! ¸  
6
While  
CATALOG  
Program segment:  
While condition  
block  
EndWhile  
©
:1! i  
:0! temp  
:While i<=20  
: temp+1/i! temp  
Executes the statements in block as long as  
condition is true.  
block can be either a single statement or a  
sequence of statements separated with the “:” : i+1! i  
character.  
:EndWhile  
:Disp "sum of reciprocals up to  
20",temp  
©
“With”  
xor  
See |, page 538.  
MATH/Test menu  
true xor true¸  
false  
true  
Boolean expression1 xor Boolean expression2  
Boolean expression  
(5>3) xor (3>5)¸  
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.  
518  
Appendix A: Functions and Instructions  
 
integer1 xor integer2  
integer  
In Hex base mode:  
0h7AC36 xor 0h3D5F ¸ 0h79169  
Important: Zero, not the letter O.  
Compares two real integers bit-by-bit using  
an xor operation. Internally, both integers are  
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  
result is 0 if both bits are 0 or both bits are 1.  
The returned value represents the bit results,  
and is displayed according to the Base mode.  
In Bin base mode:  
0b100101 xor 0b100 ¸0b100001  
Note: A binary entry can have up to 32  
digits (not counting the 0b prefix). A  
hexadecimal entry can have up to 8 digits.  
You can enter the integers in any number  
base. For a binary or hexadecimal entry, you  
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.  
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(aù x^2+bù x+c,x)¸  
zeros(expression, var) list  
Returns a list of candidate real values of var  
that make expression=0. zeros() does this by  
computing  
ë( bñ-4øaøc-+b) bñ-4øaøc-b  
{
}
2øa  
2øa  
exp8list(solve(expression=0,var),var).  
aù x^2+bù x+c|x=ans(1)[2]¸ 0  
For some purposes, the result form for  
zeros() is more convenient than that of  
solve(). However, the result form of zeros()  
cannot express implicit solutions, solutions  
that require inequalities, or solutions that do  
not involve var.  
exact(zeros(aù (e^(x)+x)  
(sign (x)ì 1),x))¸  
{}  
exact(solve(aù (e^(x)+x)  
(sign (x)ì 1)=0,x))¸  
ex +x=0 or x>0 or a=0  
Note: See also cSolve(), cZeros(), and solve().  
Appendix A: Functions and Instructions  
519  
 
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.  
zeros({x^2+y^2ì r^2,  
(xì r)^2+y^2ì r^2},{x,y}) ¸  
As illustrated by r in the example to the right,  
simultaneous polynomial expressions can  
have extra variables that have no values, but  
represent given numeric values that could be  
substituted later.  
3ør  
r
2
r
2
2
ë 3ør  
Each row of the resulting matrix represents  
an alternate zero, with the components  
ordered the same as the varOrGuess list. To  
extract a row, index the matrix by [row].  
2
Extract row 2:  
ë 3ør  
r
2
ans(1)[2] ¸  
2
zeros({x^2+y^2ì r^2,  
(xì r)^2+y^2ì r^2},{x,y,z}) ¸  
You can also (or instead) include unknowns  
that do not appear in the expressions. For  
example, you can include z as an unknown to  
extend the previous example to two parallel  
intersecting cylinders of radius r. The  
cylinder zeros illustrate how families of zeros  
might contain arbitrary constants in 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.  
3ør  
r
2
r
2
@1  
2
ë 3ør  
@1  
2
520  
Appendix A: Functions and Instructions  
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  
expression is non-polynomial in any variable  
but all expressions are linear in the  
unknowns, zeros() uses Gaussian elimination  
to attempt to determine all real zeros.  
zeros({x+e^(z)ù yì 1,xì yì sin(z)}  
,{x,y}) ¸  
ezøsin(z)+1 ë (sin(z)ì 1)  
ez+1  
ez+1  
If a system is neither polynomial in all of its  
variables nor linear in its unknowns, zeros()  
determines at most one zero using an  
approximate iterative method. To do so, the  
number of unknowns must equal the number  
of expressions, and all other variables in the  
expressions must simplify to numbers.  
zeros({e^(z)ùyì1,ëyìsin(z)},  
{y,z}) ¸  
[.041… 3.183…]  
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  
one. For convergence, a guess may have to  
be rather close to a zero.  
zeros({e^(z)ù yì 1,ë yì sin(z)},  
{y,z=2p}) ¸  
[.001… 6.281…]  
ZoomBox CATALOG  
In function graphing mode:  
ZoomBox  
1.25xù cos(x)! y1(x)¸  
ZoomStd:ZoomBox¸  
Done  
Displays the Graph screen, lets you draw a  
box that defines a new viewing window, and  
updates the window.  
1st corner  
2nd corner  
The display after defining ZoomBox by  
pressing ¸ the second time.  
Appendix A: Functions and Instructions  
521  
 
ZoomData CATALOG  
In function graphing mode:  
{1,2,3,4}! L1¸  
{2,3,4,5}! L2¸  
newPlot 1,1,L1,L2¸  
ZoomStd¸  
ZoomData  
{1 2 3 4}  
{2 3 4 5}  
Done  
Adjusts the window settings based on the  
currently defined plots (and data) so that all  
statistical data points will be sampled, and  
displays the Graph screen.  
Note: Does not adjust ymin and ymax for  
histograms.  
TI-89: "  
TI-92 Plus: ¥ "  
ZoomData¸  
ZoomDec CATALOG  
In function graphing mode:  
ZoomDec  
1.25xù cos(x)! y1(x)¸  
ZoomStd¸  
Done  
Adjusts the viewing window so that @x and  
@y = 0.1 and displays the Graph screen with  
the origin centered on the screen.  
TI-89: "  
TI-92 Plus: ¥ "  
ZoomDec¸  
522  
Appendix A: Functions and Instructions  
 
ZoomFit  
CATALOG  
In function graphing mode:  
ZoomFit  
1.25xù cos(x)! y1(x)¸  
ZoomStd¸  
Done  
Displays the Graph screen, and calculates the  
necessary window dimensions for the  
dependent variables to view all the picture  
for the current independent variable settings.  
TI-89: "  
TI-92 Plus: ¥ "  
ZoomFit¸  
ZoomIn  
CATALOG  
In function graphing mode:  
ZoomIn  
Displays the Graph screen, lets you set a  
center point for a zoom in, and updates the  
viewing window.  
1.25xù cos(x)! y1(x)¸  
ZoomStd:ZoomIn¸  
Done  
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.  
¸
ZoomInt  
CATALOG  
In function graphing mode:  
ZoomInt  
Displays the Graph screen, lets you set a  
center point for the zoom, and adjusts the  
window settings so that each pixel is an  
integer in all directions.  
1.25xù cos(x)! y1(x)¸  
ZoomStd:ZoomInt¸  
Done  
¸
Appendix A: Functions and Instructions  
523  
 
ZoomOut CATALOG  
In function graphing mode:  
ZoomOut  
Displays the Graph screen, lets you set a  
center point for a zoom out, and updates the  
viewing window.  
1.25xù cos(x)! y1(x)¸  
ZoomStd:ZoomOut¸  
Done  
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.  
ZoomSqr CATALOG  
In function graphing mode:  
ZoomSqr  
Displays the Graph screen, adjusts the x or y  
1.25xù cos(x)! y1(x)¸  
Done  
window settings so that each pixel represents  
an equal width and height in the coordinate  
system, and updates the viewing window.  
ZoomStd¸  
In 3D Graph mode, ZoomSqr lengthens the  
shortest two axes to be the same as the  
longest axis.  
"
ZoomSqr ¸  
524  
Appendix A: Functions and Instructions  
 
ZoomStd CATALOG  
In function graphing mode:  
ZoomStd  
Sets the window variables to the following  
standard values, and then updates the  
viewing window.  
1.25xù cos(x)! y1(x)¸  
ZoomStd¸  
Done  
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.  
ZoomTrig CATALOG  
In function graphing mode:  
ZoomTrig  
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  
settings to [ë 4, 4, .5], and updates the viewing  
window.  
ZoomStd¸  
TI-89: "  
TI-92 Plus: ¥ "  
ZoomTrig¸  
Appendix A: Functions and Instructions  
525  
 
+ (add)  
« key  
56¸  
56  
60  
64  
68  
72  
expression1 + expression2  
expression  
ans(1)+4¸  
ans(1)+4¸  
ans(1)+4¸  
ans(1)+4¸  
Returns the sum of expression1 and  
expression2.  
{22,p,p/2}! L1¸  
{10,5,p/2}! L2¸  
L1+L2¸  
{22 p p/2}  
{10 5 p/2}  
{32 p+5 p}  
list1 + list2  
list  
matrix1 + matrix2  
matrix  
Returns a list (or matrix) containing the sums  
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  
[
]
15+{10,15,20}¸  
{25 30 35}  
{25 30 35}  
expression + list1  
list  
list  
list1 + expression  
{10,15,20}+15¸  
Returns a list containing the sums of  
expression and each element in list1.  
20+[1,2;3,4]¸  
expression + matrix1  
matrix1 + expression  
matrix  
matrix  
21 2  
3 24  
[
]
Returns a matrix with expression added to  
each element on the diagonal of matrix1.  
matrix1 must be square.  
Note: Use .+ (dot plus) to add an expression  
to each element.  
(subtract)  
ì
| key  
6ì 2¸  
4
expression1 - expression2  
expression  
Returns expression1 minus expression2.  
5ø p  
pì 6¸  
6
{22,p,2}ì {10,5,2}¸  
list1 - list2  
matrix1 - matrix2  
list  
matrix  
{12 pì 5 0}  
Subtracts each element in list2 (or matrix2)  
from the corresponding element in list1 (or  
matrix1), and returns the results.  
[3,4]ì [1,2]¸  
[2 2]  
Dimensions of the arguments must be equal.  
15ì {10,15,20}¸  
{5 0 -5}  
{-5 0 5}  
expression - list1  
list1 - expression  
list  
list  
{10,15,20}ì 15¸  
Subtracts each list1 element from expression  
or subtracts expression from each list1  
element, and returns a list of the results.  
526  
Appendix A: Functions and Instructions  
 
20ì [1,2;3,4]¸  
expression - matrix1  
matrix1 - expression  
matrix  
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  
2ù 3.45¸  
6.9  
expression1 ù expression2  
expression  
x2ø y  
Returns the product of expression1 and  
expression2.  
xù yù x¸  
{1.0,2,3}ù {4,5,6}¸{4. 10 18}  
list1ù list2  
list  
Returns a list containing the products of the  
corresponding elements in list1 and list2.  
b
2
{2àa,3à2}ù {añ,bà3}¸{2ø a  
}
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.  
pù {4,5,6}¸  
{4ø p 5ø p 6ø p}  
expression ù list1  
list1 ù expression  
list  
list  
Returns a list containing the products of  
expression and each element in list1.  
.01 .02  
expression ù matrix1  
matrix1 ù expression  
matrix  
matrix  
[1,2;3,4]ù.01¸  
[
]
.03 .04  
l 0 0  
0 l 0  
0 0 l  
Returns a matrix containing the products of  
expression and each element in matrix1.  
lù identity(3)¸  
Note: Use .ù (dot multiply) to multiply an  
expression by each element.  
(divide)  
e key  
à
2/3.45¸  
.57971  
x2  
expression1 à expression2  
expression  
Returns the quotient of expression1 divided by  
x^3/x¸  
expression2.  
{1.0,2,3}/{4,5,6}¸  
list1 à list2  
list  
{.25 2/5 1/2}  
Returns a list containing the quotients of list1  
divided by list2.  
Dimensions of the lists must be equal.  
Appendix A: Functions and Instructions  
527  
 
a/{3,a,(a)}¸  
expression à list1  
list1 à expression  
list  
list  
a
3
1 a  
{
}
Returns a list containing the quotients of  
expression divided by list1 or list1 divided by  
expression.  
{a,b,c}/(aù bù c)¸  
1
1
1
{
}
bø c aø c aø b  
[a,b,c]/(aù bù c)¸  
matrix1 à expression  
matrix  
Returns a matrix containing the quotients of  
matrix1àexpression.  
1
1
1
[
]
bø c aø c aø b  
Note: Use . / (dot divide) to divide an  
expression by each element.  
ë(negate)  
·key and MATH/Base menu  
ë 2.43¸  
ë {ë 1,0.4,1.2í 19}¸  
ë 2.43  
ëexpression1  
ë list1 list  
ë matrix1  
expression  
matrix  
{1 ë.4 ë 1.2í 19}  
Returns the negation of the argument.  
ë aù ë b¸  
aø b  
For a list or matrix, returns all the elements  
negated.  
In Bin base mode:  
If expression1 is a binary or hexadecimal  
integer, the negation gives the two’s  
complement.  
0b1001014dec ¸  
37  
Important: Zero, not the letter O.  
ë 0b100101 ¸  
0b11111111111111111111111111011011  
ans(1)4dec ¸  
ë 37  
Note: To type 4, press 2 Ž.  
% (percent) CHAR/Punctuation menu  
expression1 % expression  
list1 % list  
matrix1 %  
13%¥ ¸  
.13  
{1, 10, 100}%¥ ¸  
matrix  
{.01 .1 1.}  
argument  
Returns  
.
100  
For a list or matrix, returns a list or matrix  
with each element divided by 100.  
528  
Appendix A: Functions and Instructions  
 
= (equal)  
Á key  
Example function listing using math test  
symbols: =, ƒ, <, , >, ‚  
expression1 = expression2  
Boolean expression  
list1 = list2  
matrix1 = matrix2  
Boolean list  
Boolean matrix  
:g(x)  
Returns true if expression1 is determined to  
be equal to expression2.  
:Func  
:If xë 5 Then  
: Return 5  
Returns false if expression1 is determined to  
not be equal to expression2.  
: ElseIf x>ë 5 and x<0 Then  
: Return ë x  
Anything else returns a simplified form of the  
equation.  
: ElseIf x0 and xƒ10 Then  
: Return x  
: ElseIf x=10 Then  
: Return 3  
For lists and matrices, returns comparisons  
element by element.  
:EndIf  
:EndFunc  
Graph g(x)¸  
¥ Á key  
See "=" (equal) example.  
expression1 expression2  
list1 list2 Boolean list  
matrix1 matrix2 Boolean matrix  
Boolean expression  
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.  
<
key  
See "=" (equal) example.  
expression1 < expression2  
list1 < list2 Boolean list  
matrix1 < matrix2 Boolean matrix  
Boolean expression  
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: Functions and Instructions  
529  
 
¹ µ key  
See "=" (equal) example.  
See "=" (equal) example.  
See "=" (equal) example.  
expression1 expression2  
Boolean expression  
list1 list2  
Boolean list  
Boolean matrix  
matrix1 matrix2  
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.  
>
key  
expression1 > expression2  
list1 > list2 Boolean list  
matrix1 > matrix2 Boolean matrix  
Boolean expression  
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.  
¹ ¶ key  
expression1 expression2  
list1 list2 Boolean list  
matrix1 matrix2 Boolean matrix  
Boolean expression  
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  
[a,2;b,3].+[c,4;5,d]¸  
x.+[c,4;5,d]¸  
matrix1 .+ matrix2  
expression .+ matrix1  
matrix  
matrix  
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.  
530  
Appendix A: Functions and Instructions  
 
(dot subt.)  
..  
¶ | keys  
[a,2;b,3].ì [c,4;d,5]¸  
x.ì [c,4;d,5]¸  
matrix1 .ì matrix2  
expression .ì matrix1  
matrix  
matrix  
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  
[a,2;b,3].ù [c,4;5,d]¸  
matrix1 .ù matrix2  
expression .ù matrix1  
matrix  
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  
[a,2;b,3]./[c,4;5,d]¸  
x./[c,4;5,d]¸  
matrix1 . / matrix2  
expression . / matrix1  
matrix  
matrix  
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  
[a,2;b,3].^[c,4;5,d]¸  
matrix1 .^ matrix2  
expression . ^ matrix1  
matrix  
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)  
!
TI-89: ¥ e key  
expression1! expression  
list1! list  
matrix1!  
TI-92 Plus: 2 W key  
5! ¸  
120  
matrix  
{5,4,3}! ¸  
{120 24 6}  
1 2  
Returns the factorial of the argument.  
[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: Functions and Instructions  
531  
 
(append)  
&
TI-89: ¥ p key  
TI-92 Plus: 2 H key  
"Hello " & "Nick"¸  
"Hello Nick"  
string1 & string2 string  
Returns a text string that is string2 appended  
to string1.  
() (integrate) 2< key  
(expression1, var[, lower] [,upper])  
(list1,var [,order])  
list  
(matrix1,var [,order])  
expression  
matrix  
bò aò  
Returns the integral of expression1 with  
respect to the variable var from lower to upper.  
(x^2,x,a,b)¸  
(x^2,x)¸  
-
3
3
xò  
Returns an anti-derivative if lower and upper  
are omitted. A symbolic constant of  
integration such as C is omitted.  
3
aø xò  
However, lower is added as a constant of  
integration if only upper is omitted.  
(aù x^2,x,c)¸  
+c  
3
(1/(2ì cos(x)),x)! tmp(x)¸  
Equally valid anti-derivatives might differ by  
a numeric constant. Such a constant might be  
disguised—particularly when an anti-  
derivative contains logarithms or inverse  
trigonometric functions. Moreover, piecewise  
constant expressions are sometimes added to  
make an anti-derivative valid over a larger  
interval than the usual formula.  
ClrGraph:Graph tmp(x):Graph  
1/(2ì cos(x)):Graph (3)  
(2tanê ((3)(tan(x/2)))/3)  
¸
() returns itself for pieces of expression1 that  
it cannot determine as an explicit finite  
combination of its built-in functions and  
operators.  
(bù e^(ë x^2)+a/(x^2+a^2),x)  
¸
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.  
(e^(ë x^2),x,ë 1,1)¥ ¸ 1.493...  
For the APPROX setting, numerical  
integration is tried first, if applicable. Anti-  
derivatives are sought only where such  
numerical integration is inapplicable or fails.  
532  
Appendix A: Functions and Instructions  
 
((ln(x+y),y,0,x),x,0,a) ¸  
() can be nested to do multiple integrals.  
Integration limits can depend on integration  
variables outside them.  
Note: See also nInt().  
() (square root) 2]key  
(expression1) expression  
(list1) list  
(4)¸  
2
({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  
1
Π(expression1, var, low, high)  
expression  
Π(1/n,n,1,5)¸  
120  
Evaluates expression1 for each value of var  
from low to high, and returns the product of  
the results.  
Π(k^2,k,1,n)¸  
(n!)ñ  
Π({1/n,n,2},n,1,5)¸  
1
120  
{
120 32}  
Π(expression1, var, low, lowì 1)  
1
Π(k,k,4,3)¸  
1
6
Π(expression1, var, low, high)  
1/Π(expression1,  
var, high+1, lowì 1) if high < lowì 1  
Π(1/k,k,4,1)¸  
Π(1/k,k,4,1)ù Π(1/k,k,2,4)¸  
1/4  
G() (sum)  
MATH/Calculus menu  
137  
60  
G(expression1, var, low, high)  
expression  
G(1/n,n,1,5)¸  
Evaluates expression1 for each value of var  
from low to high, and returns the sum of the  
results.  
G(k^2,k,1,n)¸  
nø (n+1)ø (2ø n+1)  
6
pñ  
G(1/n^2,n,1,ˆ)¸  
6
G(k,k,4,3)¸  
0
G(expression1, var, low, lowì 1)  
0
G(k,k,4,1)¸  
ë 5  
G(expression1, var, low, high)  
var, high+1, lowì 1) if high < lowì 1  
ë G(expression1,  
G(k,k,4,1)+G(k,k,2,4)¸  
4
Appendix A: Functions and Instructions  
533  
 
(power)  
Z key  
expression1 ^ expression2  
list1 ^ list2 list  
^
4^2¸  
16  
expression  
{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.  
1
pò  
expression ^ list1  
list  
a
p
pñ  
p^{a,2,ë 3}¸  
{
}
Returns expression raised to the power of the  
elements in list1.  
{1,2,3,4}^ë 2¸  
list1 ^ expression  
list  
{1 1/4 1/9 1/16}  
Returns the elements in list1 raised to the  
power of expression.  
[1,2;3,4]^2¸  
[1,2;3,4]^ë 1¸  
[1,2;3,4]^ë 2¸  
squareMatrix1 ^ integer  
matrix  
Returns squareMatrix1 raised to the integer  
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  
Program segment:  
# varNameString  
Refers to the variable whose name is  
varNameString. This lets you create and  
modify variables from a program using  
strings.  
©
:Request "Enter Your Name",str1  
:NewFold #str1  
©
©
:For i,1,5,1  
: ClrGraph  
: Graph iù x  
: StoPic #("pic" & string(i))  
:EndFor  
©
534  
Appendix A: Functions and Instructions  
 
(radian)  
ô
MATH/Angle menu  
expression1ô expression  
list1ô list  
matrix1ô  
In Degree or Radian angle mode:  
2  
2
matrix  
cos((p/4)ô )¸  
In Degree angle mode, multiplies expression1  
by 180/p. In Radian angle mode, returns  
expression1 unchanged.  
cos({0ô,(p/12)ô,ë pô })¸  
( +1)ø  
3
2
This function gives you a way to use a radian  
angle while in Degree mode. (In Degree angle  
mode, sin(), cos(), tan(), and polar-to-  
rectangular conversions expect the angle  
argument to be in degrees.)  
{1  
ë 1}  
4
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  
In Radian angle mode:  
expression¡  
list1¡  
matrix1¡  
value  
list  
2  
2
cos(45¡)¸  
matrix  
In Radian angle mode, multiplies expression  
by p/180. In Degree angle mode, returns  
expression unchanged.  
cos({0,p/4,90¡,30.12¡})¥ ¸  
{1 .707... 0 .864...}  
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  
[5,60¡,45¡]¸  
[radius,q_angle]  
[radius,q_angle,Z_coordinate]  
vector (polar input)  
vector  
In Radian mode and vector format set to:  
(cylindrical input)  
[radius,q_angle,f_angle]  
vector  
(spherical input)  
rectangular  
cylindrical  
spherical  
Returns coordinates as a vector depending  
on the Vector Format mode setting:  
rectangular, cylindrical, or 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  
current Angle mode setting.  
5+3iì (10p/4) ¸  
5ì 5ø 2+(3ì 5ø 2)øi  
¥¸  
ë 2.071…ì 4.071…øi  
Appendix A: Functions and Instructions  
535  
 
¡, ', "  
2“ key (¡), 2È key ('), 2É key (")  
In Degree angle mode:  
25°13'17.5"¸  
25°30'¸  
dd¡mm'ss.ss"  
expression  
dd  
A positive or negative number  
25.221...  
mm A non-negative number  
ss.ss A non-negative number  
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'  
variable''  
Enters a prime symbol in a differential  
deSolve(y''=y^(ë 1/2) and  
y(0)=0 and y'(0)=0,t,y) ¸  
2øy3/4  
equation. A single prime symbol denotes a  
1st-order differential equation, two prime  
symbols denote a 2nd-order, etc.  
=t  
3
_ (underscore) TI-89: ¥  key TI-92 Plus: 2  key  
3_m4 _ft ¸  
9.842…ø_ft  
expression_unit  
Designates the units for an expression. All  
unit names must begin with an underscore.  
Note: To type 4, press 2 Ž.  
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:  
TI-89: 2 9  
TI-92 Plus: ¥ À  
to select units from a menu, or you can  
type the unit names directly.  
variable_  
Assuming z is undefined:  
real(z) ¸  
real(z_) ¸  
z
When variable has no value, it is treated as  
though it represents a complex number. By  
default, without the _, the variable is  
treated as real.  
real(z_)  
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.  
536  
Appendix A: Functions and Instructions  
 
4 (convert)  
2 Ž key  
3_m4 _ft ¸  
9.842…ø_ft  
expression_unit1 4 _unit2  
expression_unit2  
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:  
TI-89: 2 9  
TI-92 Plus: ¥ À to select units from a  
menu, or you can type the unit names  
directly.  
To get the _ underscore when typing units  
directly, press:  
TI-89: ¥   
TI-92 Plus: 2   
Note: The 4 conversion operator does not  
handle temperature units. Use tmpCnv() and  
@tmpCnv() instead.  
10^()  
CATALOG  
10^(1.5)¸  
10^{0,ë 2,2,a}¸  
{1  
31.622...  
10^ (expression1)  
expression  
10^ (list1) list  
Returns 10 raised to the power of the  
argument.  
1
100  
a
100 10 }  
For a list, returns 10 raised to the power of  
the elements in list1.  
10^([1,5,3;4,2,1;6,L2,1]) ¸  
10^(squareMatrix1)  
squareMatrix  
Returns 10 raised to the power of  
squareMatrix1. This is not the same as  
calculating 10 raised to the power of each  
element. For information about the  
calculation method, refer to cos().  
1.143…E7 8.171…E6 6.675…E6  
9.956…E6 7.115…E6 5.813…E6  
7.652…E6 5.469…E6 4.468…E6  
squareMatrix1 must be diagonalizable. The  
result always contains floating-point  
numbers.  
Appendix A: Functions and Instructions  
537  
 
xê  
CATALOG (^-1)  
expression1 xê expression  
list1 xê list  
3.1^ë 1¸  
.322581  
{a,4,ë.1,xì 2}^ë 1¸  
Returns the reciprocal of the argument.  
1 1  
1
}
{
ë 10.  
a
4
xì 2  
For a list, returns the reciprocals of the  
elements in list1.  
[1,2;3,4]^ë 1 ¸  
[1,2;a,4]^ë 1 ¸  
squareMatrix1 xê  
squareMatrix  
Returns the inverse of squareMatrix1.  
squareMatrix1 must be a non-singular square  
matrix.  
(“with”)  
|
TI-89: Í key  
TI-92 Plus: 2 Í key  
x+1| x=3¸  
4
sin(y)+y  
x+y  
expression | Boolean expression1 [and Boolean  
expression2]...[and Boolean expressionN]  
x+y| x=sin(y)¸  
x+y| sin(y)=x¸  
The “with” (|) symbol serves as a binary  
operator. The operand to the left of | is an  
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.  
x^3ì 2x+7! f(x)¸  
Done  
Substitutions are in the form of an equality,  
such as x=3 or y=sin(x). To be most effective,  
the left side should be a simple variable.  
expression | variable = value will substitute  
value for every occurrence of variable in  
expression.  
f(x)| x=(3)¸  
3+7  
(sin(x))^2+2sin(x)ì 6| sin(x)=d  
¸
dñ +2dì 6  
Interval constraints take the form of one or  
more inequalities joined by logical “and”  
operators. Interval constraints also permit  
simplification that otherwise might be invalid  
or not computable.  
solve(x^2ì 1=0,x)|x>0 and x<2  
¸
x=1  
(x)ù (1/x)|x>0¸  
1
1
x
(x)ù (1/x)¸  
ø x  
solve(x^2ì 1=0,x)| xƒ1¸x=ë 1  
Exclusions use the “not equals” (/= or ƒ)  
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.  
538  
Appendix A: Functions and Instructions  
 
(store)  
!
§key  
p
4
expression ! var  
list ! var  
p/4! myvar¸  
matrix ! var  
2cos(x)! Y1(x)¸  
{1,2,3,4}! Lst5¸  
Done  
{1 2 3 4}  
1 2 3  
expression ! fun_name(parameter1,...)  
list ! fun_name(parameter1,...)  
matrix ! fun_name(parameter1,...)  
If variable var does not exist, creates var and  
initializes it to expression, list, or matrix.  
[1,2,3;4,5,6]! MatG¸ [  
]
4 5 6  
"Hello"  
"Hello"! str1¸  
If var already exists and if it is not locked or  
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.  
(comment)  
¦
Program Editor/Control menu or  
TI-89: ¥ d key  
TI-92 Plus: 2 X key  
Program segment:  
¦ [text]  
¦ processes text as a comment line, which  
can be used to annotate program  
instructions.  
©
:¦ Get 10 points from the Graph  
screen  
¦ can be at the beginning or anywhere in the  
line. Everything to the right of ¦, to the end  
of the line, is the comment.  
:For i,1,10 ¦ This loops 10  
times  
©
0b, 0h  
TI-89: µ j [B] keys TI-92 Plus: µ B keys  
TI-89: µ j [H] keys TI-92 Plus: µ H keys  
0bbinaryNumber  
In Dec base mode:  
0hhexadecimalNumber  
0b10+0hF+10 ¸  
27  
0b11011  
0h1B  
In Bin base mode:  
0b10+0hF+10 ¸  
Denotes a binary or hexadecimal number,  
respectively. To enter a binary or hex  
number, you must enter the 0b or 0h  
prefix regardless of the Base mode.  
Without a prefix, a number is treated as  
decimal (base 10).  
In Hex base mode:  
0b10+0hF+10 ¸  
Results are displayed according to the  
Base mode.  
Appendix A: Functions and Instructions  
539  
 
540  
Appendix A: Functions and Instructions  
 
Reference Information  
TI-89 / TI-92 Plus Error Messages ....................................................... 542  
Modes....................................................................................................... 550  
TI-89 / TI-92 Plus Character Codes ..................................................... 555  
TI-89 Key Codes ..................................................................................... 556  
TI-92 Plus Key Codes............................................................................. 559  
Entering Complex Numbers ................................................................. 563  
Accuracy Information............................................................................ 566  
System Variables and Reserved Names .............................................. 567  
EOS (Equation Operating System) Hierarchy.................................... 568  
Regression Formulas ............................................................................. 570  
Contour Levels and Implicit Plot Algorithm....................................... 572  
Runge-Kutta Method.............................................................................. 573  
B
This appendix contains a comprehensive list of TI-89 / TI-92 Plus  
error messages and character codes. It also includes information  
about how certain TI-89 / TI-92 Plus operations are calculated.  
For additional information, refer to Appendix C. For example, if  
you have difficulty operating the TI-89 / TI-92 Plus, Appendix C  
contains an “In Case of Difficulty” section that gives suggestions  
that may help you correct the problem.  
Appendix B: Reference Information  
541  
 
TI-89 / TI-92 Plus 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  
20  
A function did not return a value  
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  
40  
50  
Argument cannot be a folder name  
Argument error  
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  
70  
Argument must be a Boolean expression or integer  
Argument must be a decimal number  
Argument must be a label name  
Argument must be a list  
80  
90  
100  
110  
120  
130  
140  
Argument must be a matrix  
Argument must be a Pic  
Argument must be a Pic or string  
Argument must be a string  
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  
542  
Appendix B: Reference Information  
 
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.  
161  
163  
165  
ASAP or Exec string too long  
Attribute (8-digit number) of object (8-digit number) not found  
Batteries too low for sending/receiving product code  
Install new batteries before sending or receiving product software (base  
code).  
170  
180  
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.  
Break  
The ´key was pressed during a long calculation or during program  
execution.  
185  
190  
Checksum error  
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  
220  
Data type  
An argument is of the wrong data type.  
Dependent limit  
A limit of integration is dependent on the integration variable. For example,  
(x^2,x,1,x) is not allowed.  
225  
230  
Diff Eq setup  
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  
250  
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.  
Divide by zero  
Appendix B: Reference Information  
543  
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  
280  
290  
295  
300  
307  
308  
310  
Duplicate variable name  
Else and ElseIf invalid outside of If..EndIf block  
EndTry is missing the matching Else statement  
Excessive iteration  
Expected 2 or 3-element list or matrix  
Flash application extension (function or program) not found  
Flash application not found  
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  
330  
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.  
Folder  
An attempt was made in the VAR-LINK menu to store a variable in a folder  
that does not exist.  
335  
345  
350  
360  
380  
390  
400  
Graph functions y1(x)...y99(x) not available in Diff Equations mode  
Inconsistent units  
Index out of range  
Indirection string is not a valid variable name  
Invalid ans()  
Invalid assignment  
Invalid assignment value  
544  
Appendix B: Reference Information  
Error  
Number Description  
405  
410  
420  
430  
440  
Invalid axes  
Invalid command  
Invalid folder name  
Invalid for the current mode settings  
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  
470  
480  
490  
500  
Invalid in Custom..EndCustm block  
Invalid in Dialog..EndDlog block  
Invalid in Toolbar..EndTBar block  
Invalid in Try..EndTry block  
Invalid label  
Label names must follow the same rules used for naming variables.  
510  
520  
Invalid list or matrix  
For example, a list inside a list such as {2,{3,4}} is not valid.  
Invalid outside Custom..EndCustm or ToolBar..EndTbar blocks  
For example, an Item command is attempted outside a Custom or ToolBar  
structure.  
530  
540  
550  
Invalid outside Dialog..EndDlog, Custom..EndCustm, or ToolBar..EndTBar blocks  
For example, a Title command is attempted outside a Dialog, Custom, or  
ToolBar structure.  
Invalid outside Dialog..EndDlog block  
For example, the DropDown command is attempted outside a Dialog  
structure.  
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  
545  
Error  
Number Description  
560  
570  
Invalid outside Loop..EndLoop, For..EndFor, or While..EndWhile blocks  
For example, the Exit command is valid only inside these loop blocks.  
Invalid pathname  
For example, \\var is invalid.  
575  
580  
Invalid polar complex  
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  
605  
610  
620  
630  
640  
650  
Invalid table  
Invalid use of units  
Invalid variable name in a Local statement  
Invalid variable or function name  
Invalid variable reference  
Invalid vector syntax  
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  
673  
Memory  
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 (  
546  
Appendix B: Reference Information  
Error  
Number Description  
690  
700  
710  
720  
730  
740  
750  
765  
780  
Missing )  
Missing "  
Missing ]  
Missing }  
Missing start or end of block syntax  
Missing Then in the If..EndIf block  
Name is not a function or program  
No functions selected  
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  
800  
810  
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.  
Non-real result  
For example, if the unit is in the REAL setting of the Complex Format mode,  
ln(ë 2) is invalid.  
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  
840  
Overflow  
Plot setup  
Appendix B: Reference Information  
547  
Error  
Number Description  
850  
Program not found  
A program reference inside another program could not be found in the  
provided path during execution.  
860  
870  
875  
880  
885  
890  
895  
900  
910  
Recursion is limited to 255 calls deep  
Reserved name or system variable  
ROM-resident routine not available  
Sequence setup  
Signature error  
Singular matrix  
Slope fields need one selected function and are used for 1st-order equations only  
Stat  
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  
940  
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.  
Too many arguments  
The expression or equation contains an excessive number of arguments  
and cannot be evaluated.  
950  
955  
Too many subscripts  
Too many undefined variables  
Undefined variable  
960  
965  
Unlicensed product software or Flash application  
Variable in use so references or changes are not allowed  
Variable is locked, protected, or archived  
Variable name is limited to 8 characters  
Window variables domain  
970  
980  
990  
1000  
1010  
Zoom  
548  
Appendix B: Reference Information  
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  
549  
 
Modes  
This section describes the modes of the TI-89 / TI-92 Plus and  
lists the possible settings of each mode. These mode settings  
are displayed when you press 3.  
Specifies the type of graphs you can plot.  
Graph  
1:FUNCTION  
2:PARAMETRIC  
3:POLAR  
y(x) functions (Chapter 6)  
x(t) and y(t) parametric equations (Chapter 7)  
r(q) polar equations (Chapter 8)  
u(n) sequences (Chapter 9)  
4:SEQUENCE  
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.  
Specifies the current folder. You can set up multiple folders with  
unique configurations of variables, graph databases, programs, etc.  
Current Folder  
Note: For detailed  
information about using  
folders, see Chapter 5.  
1:main  
Default folder included with the TI-89 / TI-92 Plus.  
2: —  
(custom folders)  
Other folders are available only if they have been  
created by a user.  
Selects the number of digits. These decimal settings affect only how  
results are displayed—you can enter a number in any format.  
Display Digits  
Internally, the TI-89 / TI-92 Plus retains decimal numbers with 14  
significant digits. For display purposes, such numbers are rounded to  
a maximum of 12 significant digits.  
1:FIX 0  
2:FIX 1  
Results are always displayed with the selected  
number of decimal places.  
D:FIX 12  
E:FLOAT  
The number of decimal places varies, depending  
on the result.  
F:FLOAT 1  
G:FLOAT 2  
If the integer part has more than the selected  
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  
550  
Appendix B: Reference Information  
 
Specifies the units in which angle values are interpreted and  
displayed in trig functions and polar/rectangular conversions.  
Angle  
1:RADIAN  
2:DEGREE  
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.  
Exponential Format  
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×104  
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×103  
Note: If you select NORMAL, but the answer cannot be displayed in  
the number of digits selected by Display Digits, the TI-89 / TI-92 Plus  
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.  
Specifies whether complex results are displayed and, if so, their  
format.  
Complex 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: rei q  
Appendix B: Reference Information  
551  
 
Determines how 2-element and 3-element vectors are displayed. You  
can enter vectors in any of the coordinate systems.  
Vector Format  
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  
3:SPHERICAL  
Coordinates are in terms of r, q, and z. For  
example, [3,45,2] represents r = 3, q = 45, and  
z = 2.  
Coordinates are in terms of r, q, and f. For  
example, [3, 45, 90] represents r = 3, q = 45, and  
f = 90.  
Determines how results are displayed on the Home screen.  
Pretty Print  
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.  
xì3  
p
For example, p2, , or  
x
2
Note: For a complete description of these settings, refer to “Formats  
of Displayed Results” in Chapter 2.  
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).  
Split Screen  
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, Number of Graphs, and Split Screen Ratio. (Split  
Screen Ratio is available on the TI-92 Plus only.)  
552  
Appendix B: Reference Information  
 
Specifies which application is displayed on the screen.  
Split 1 App  
and  
Split 2 App  
¦
¦
For a full screen, only Split 1 App is active.  
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.  
Specifies whether both parts of a split screen can display graphs at  
the same time.  
Number of Graphs  
1
2
Only one part can display graphs.  
Both parts can display an independent graph  
screen (Graph or Graph 2 setting) with  
independent settings.  
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.  
Graph 2  
Specifies the proportional sizes of the two parts of a split screen.  
Split Screen Ratio  
(TI-92 Plus only)  
1:1  
1:2  
The screen is split evenly.  
The bottom or right part is approximately twice  
the size of the top or left part.  
2:1  
The top or left part is approximately twice the  
size of the bottom or right part.  
Specifies how fractional and symbolic expressions are calculated  
and displayed. By retaining rational and symbolic forms in the  
EXACT setting, the TI-89 / TI-92 Plus increases precision by  
eliminating most numeric rounding errors.  
Exact/Approx  
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  
553  
 
Lets you perform calculations by entering numbers in decimal,  
binary, or hexadecimal form.  
Base  
Decimal numbers use 0 - 9 in the base 10 format  
1:DEC  
Hexadecimal numbers use 0 - 9 and A - F in the  
base 16 format.  
2:HEX  
Binary numbers use 0 and 1 in the base 2 format.  
3:BIN  
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.  
Unit System  
1:SI  
Select SI for the metric system of measurements  
2:ENG/US  
Select ENG/US for the non-metric system of  
measurements  
Allows you to select custom defaults.  
3:CUSTOM  
Lets you select custom defaults. This mode is dimmed until you  
select Unit System, 3:CUSTOM.  
Custom Units  
Language  
Lets you localize the TI-89 / TI-92 Plus into one of several languages,  
depending on which language Flash applications are installed.  
1:English  
Default language included with the  
TI-89 / TI-92 Plus base code.  
2: —  
(language Flash  
applications)  
Alternate languages are available only if the  
respective language Flash applications have  
been installed.  
554  
Appendix B: Reference Information  
 
TI-89 / TI-92 Plus 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.  
o
1. SOH  
38.  
39.  
40.  
41.  
42.  
43.  
44.  
45.  
46.  
47.  
48.  
49.  
50.  
51.  
52.  
53.  
54.  
55.  
56.  
57.  
58.  
59.  
60.  
61.  
62.  
63.  
64.  
65.  
66.  
67.  
68.  
69.  
70.  
71.  
72.  
73.  
74.  
&
'
(
)
*
+
,
ì
.
75.  
76.  
77.  
78.  
79.  
80.  
81.  
82.  
83.  
84.  
85.  
86.  
87.  
88.  
89.  
90.  
91.  
92.  
93.  
94.  
95.  
96.  
97.  
98.  
99.  
100. d  
101. e  
102. f  
103. g  
104. h  
105. i  
106. j  
107. k  
108. l  
109. m  
110. n  
111. o  
K
L
112. p  
113. q  
114. r  
115. s  
116. t  
117. u  
118. v  
119. w  
120. x  
121. y  
122. z  
123. {  
149.  
150. e  
151. i  
152.  
E
186.  
223. ß  
224. à  
225. á  
226. â  
227. ã  
228. ä  
229. å  
230. æ  
231. ç  
232. è  
233. é  
234. ê  
235. ë  
236. ì  
237. í  
238. î  
239. ï  
240. ð  
241. ñ  
242. ò  
243. ó  
244. ô  
245. õ  
246. ö  
247. ÷  
248. ø  
249. ù  
250. ú  
251. û  
252. ü  
253. ý  
254. þ  
255. ÿ  
2.  
3.  
4.  
STX  
ETX  
EOT  
187. »  
188. d  
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
r
189.  
5. ENQ  
153. î  
154. ü  
155. ý  
156.   
157. ƒ  
158. ‚  
159.   
160. …  
161. ¡  
162. ¢  
163. £  
164. ¤  
165. ¥  
166.  
167. §  
168.  
169. ¦  
170.  
171. «  
172. ¬  
173. -  
174. ®  
175.  
176.  
190. ˆ  
191. ¿  
192. À  
193. Á  
194. Â  
195. Ã  
196. Ä  
197. Å  
198. Æ  
199. Ç  
200. È  
201. É  
202. Ê  
203. Ë  
204. Ì  
205. Í  
206. Î  
207. Ï  
208. Ð  
209. Ñ  
210. Ò  
211. Ó  
212. Ô  
213. Õ  
214. Ö  
215. ×  
216. Ø  
217. Ù  
218. Ú  
219. Û  
220. Ü  
221. Ý  
222. Þ  
6.  
ACK  
7. BELL  
8.  
9.  
BS  
TAB  
10. LF  
/
11.  
÷
0
1
2
3
4
5
6
7
8
9
:
12. FF  
13. CR  
14.  
124.  
|
125. }  
126. ~  
127. 2  
128. α  
129. β  
130. Γ  
131. γ  
132. ∆  
133. δ  
134. ε  
135. ζ  
136. θ  
137. λ  
138. ξ  
139. Π  
140. π  
141. ρ  
142. Σ  
143. σ  
144. τ  
145. φ  
146. ψ  
147. Ω  
148. ω  
15.  
16.  
17.  
18.  
19.  
20.  
21.  
22.  
23.  
24.  
Ÿ
é
7
8
9
:
¦
a
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
25. 3  
26. 4  
-
27.  
28.  
29.  
30.  
31.  
'
¡
177. „  
178. ñ  
179. ò  
180. ê  
181. µ  
182. ¶  
183. ø  
32. SPACE  
33.  
34.  
35.  
36.  
37.  
!
"
#
$
%
+
184.  
185. ¹  
J
Appendix B: Reference Information  
555  
 
TI-89 Key Codes  
The getKey() function returns a value 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 Codes for Primary Keys  
Key  
Modifier  
None  
Assoc.  
¤
2
¥
j
Value  
268  
269  
270  
271  
272  
Assoc.  
F1  
Value  
268  
Assoc.  
Value  
273  
Assoc.  
Value  
Assoc.  
Value  
268  
269  
270  
271  
272  
ƒ
F1  
F2  
F3  
F4  
F5  
F6  
Y=  
8460  
F1  
F2  
F3  
F4  
F5  
F2  
269  
F7  
274  
WINDOW 8461  
F3  
270  
F8  
275  
GRAPH  
TblSet  
8462  
8463  
8464  
F4  
271  
F4  
271  
F5  
272  
F5  
272  
TABLE  
¥
COPY  
24576  
CUT  
12288  
j
N
O
"
3
½
0
a-lock  
ESC  
264  
265  
277  
266  
278  
257  
263  
120  
121  
122  
116  
94  
ESC  
264  
265  
277  
266  
278  
257  
263  
88  
QUIT  
4360  
4361  
4373  
18  
PASTE  
8456  
8457  
277  
ESC  
264  
265  
277  
266  
278  
257  
263  
120  
121  
122  
116  
94  
APPS  
APPS  
SWITCH  
APPS  
HOME  
HOME  
CUST  
HOME  
_
HOME  
MODE  
MODE  
4
95  
MODE  
CATLG  
CATLG  
i
151  
190  
CATLG  
BS  
BS  
INS  
4353  
263  
DEL  
8449  
8455  
8280  
8281  
8282  
8276  
136  
BS  
M
Ù
CLEAR  
CLEAR  
CLEAR  
CLEAR  
x
y
z
t
X
Y
Z
T
^
LN  
4184  
4185  
4186  
4180  
140  
ex  
SIN-1  
COS-1  
TAN-1  
θ
x
y
z
t
Ú
89  
SIN  
Û
90  
COS  
Ü
84  
TAN  
Z
^
|
94  
π
°
^
f
Í
124  
40  
F
B
C
D
E
J
70  
176  
Format d/b  
8316  
102  
98  
c
(
66  
{
123  
b
c
d
e
j
d
)
41  
67  
}
125  
¦
169  
8236  
33  
99  
b
,
44  
68  
[
91  
100  
101  
106  
111  
117  
e
/
47  
69  
]
93  
!
p
*
-
42  
74  
4138  
&
38  
|
45  
O
U
79  
VAR-LNK 4141  
CHAR 4139  
Contr. -  
Contr. +  
o
u
«
+
43  
85  
556  
Appendix B: Reference Information  
 
Table 1: Key Codes for Primary Keys (Continued)  
Key  
Modifier  
None  
Assoc.  
¤
2
¥
j
Value  
13  
Assoc.  
Value  
13  
80  
65  
75  
32  
87  
86  
81  
82  
83  
76  
77  
78  
71  
72  
73  
Assoc.  
Value  
4109  
4354  
39  
Assoc.  
Value  
8205  
64  
Assoc.  
Value  
13  
¸
§
Á
CR  
CR  
ENTRY  
APPROX  
CR  
STO4  
258  
61  
P
RCL  
@
ƒ
p
112  
97  
=
EE  
-
A
'
157  
a
^
·
149  
173  
46  
K
159  
4372  
62  
SYMB  
8341  
8365  
158  
k
107  
32  
SPACE  
ANS  
SPACE  
.
W
V
Q
R
S
L
>

w
v
q
r
119  
118  
113  
114  
115  
108  
109  
110  
103  
104  
105  
µ
0
1
2
3
4
5
6
7
8
9
48  
<
60  
156  
¨
49  
"
34  
8241  
8242  
8243  
8244  
8245  
8246  
8247  
8248  
8249  
©
50  
\
92  
ª
51  
UNITS  
4147  
58  
s
l
y
52  
:
z
53  
M
N
G
H
I
MATH  
4149  
4150  
4151  
4152  
59  
m
n
g
h
i
{
54  
MEM  
m
55  
d
;
n
56  
o
57  
Table 2: Arrow Keys (including diagonal movement)  
Key  
C
Normal  
338  
¤
2
¥
j
16722  
16724  
16728  
16721  
16723  
16726  
16729  
16732  
4434  
4436  
4440  
4433  
4435  
4438  
4441  
4444  
8530  
8532  
8536  
8529  
8531  
8534  
8537  
8540  
33106  
33108  
33112  
33105  
33107  
33110  
33113  
33116  
B
340  
D
344  
A
337  
C and A  
C and B  
D and A  
D and B  
339  
342  
345  
348  
Appendix B: Reference Information  
557  
Table 3: Greek Letters (prefixed by ¥ c)  
Keys  
Second modifier  
j
¤
Assoc.  
Value  
128  
129  
133  
134  
145  
131  
137  
181  
140  
141  
143  
144  
148  
138  
146  
135  
Assoc.  
Value  
132  
Á
c
b
e
Í
m
y
z
[A]  
α
β
δ
ε
[B]  
[D]  
[E]  
[F]  
[G]  
[L]  
[M]  
Γ
φ
γ
130  
λ
µ
π
ρ
σ
τ
§ [P]  
Π
Σ
139  
142  
147  
©
ª
Ü
Ù
Ú
Û
[R]  
[S]  
[T]  
[W]  
ω
ξ
ψ
ζ
558  
Appendix B: Reference Information  
TI-92 Plus Key Codes  
The getKey() function returns a value 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 268.  
Table 1: Key Codes for Primary Keys  
Key  
Modifier  
None  
¤
2
¥
Assoc.  
Value Assoc.  
Value Assoc.  
Value Assoc.  
Value  
8460  
8461  
8462  
8463  
8464  
8465  
8466  
8467  
8458  
8455  
8454  
8456  
8457  
8205  
8451  
8452  
8453  
8286  
8232  
8233  
8236  
8239  
8234  
ƒ
F1  
F2  
268  
269  
270  
271  
272  
273  
274  
275  
266  
263  
262  
264  
265  
13  
F1  
F2  
268  
269  
270  
271  
272  
273  
274  
275  
266  
263  
262  
264  
265  
13  
F1  
F2  
268  
269  
F3  
F3  
F3  
270  
F4  
F4  
F4  
271  
F5  
F5  
F5  
272  
ˆ
F6  
F6  
F6  
273  
F7  
F7  
F7  
274  
Š
F8  
F8  
F8  
275  
3
M
x
N
O
¸
W
X
Y
Z
MODE  
CLEAR  
LN  
ESC  
APPS  
CR  
SIN  
COS  
TAN  
^
MODE  
CLEAR  
LN  
ESC  
APPS  
CR  
SIN  
COS  
TAN  
^
MODE  
CLEAR  
266  
263  
x
e
4358  
4360  
4361  
QUIT  
SWITCH  
ENTRY  
4109  
4355  
4356  
4357  
140  
123  
125  
91  
APPROX  
-1  
259  
260  
261  
94  
259  
260  
261  
94  
SIN  
-1  
COS  
-1  
TAN  
p
c
(
40  
(
40  
{
}
d
)
41  
)
41  
b
,
44  
,
44  
[
e
/
47  
/
47  
]
93  
p
*
42  
*
42  
4138  
|
-
45  
-
45  
VAR-LNK  
CHAR  
RCL  
4141 Contrast ì  
«
+
43  
+
43  
4139 Contrast +  
§
SPACE  
STO4  
258  
32  
STO4  
258  
32  
4354  
32  
8450  
8224  
8253  
8449  
8328  
8365  
8238  
Á
0
=
61  
=
61  
\
INS  
:
92  
BS  
257  
136  
173  
46  
BS  
257  
136  
173  
46  
4353  
58  
DEL  
θ
θ
Ï
·
-
.
-
.
ANS  
>
4372  
62  
Appendix B: Reference Information  
559  
 
Table 1: Key Codes for Primary Keys (Continued)  
Key  
Modifier  
None  
¤
2
¥
Assoc.  
Value Assoc.  
Value Assoc.  
Value Assoc.  
60  
Value  
8240  
8241  
8242  
8243  
8244  
8245  
8246  
8247  
8248  
µ
¨
©
ª
y
z
{
m
n
0
1
2
3
4
5
6
7
8
48  
49  
50  
51  
52  
53  
54  
55  
56  
0
1
2
3
4
5
6
7
8
48  
49  
50  
51  
52  
53  
54  
55  
56  
<
E
149  
CATLG  
CUST  
Σ
4146  
4147  
4148  
MATH  
MEM  
4149  
4150  
VAR-LNK  
4151  
4152  
o
δ
9
a
b
c
d
e
f
57  
97  
9
A
B
C
D
E
F
57  
65  
66  
67  
68  
69  
70  
71  
72  
73  
74  
75  
76  
77  
78  
79  
80  
81  
82  
83  
84  
85  
86  
87  
88  
89  
4153  
8249  
8257  
8258  
8259  
8260  
8261  
8262  
8263  
8264  
8265  
8266  
8267  
8268  
8269  
8270  
8271  
8272  
8273  
8274  
8275  
8276  
8277  
8278  
8279  
8280  
8281  
8282  
A
B
C
D
E
F
Table 3  
98  
39  
99  
Table 4  
COPY  
176  
100  
101  
102  
103  
104  
105  
106  
107  
108  
109  
110  
111  
112  
113  
114  
115  
116  
117  
118  
119  
120  
121  
122  
°
Table 5  
WINDOW  
159  
FORMAT  
G
H
I
g
h
i
G
H
I
Table 6  
&
38  
151  
190  
124  
34  
i
J
J
K
L
k
l
K
L
|
KEY  
M
N
O
P
Q
R
S
T
m
n
o
p
q
r
M
N
O
P
Q
R
S
T
;
59  
Table 7  
NEW  
OPEN  
UNITS  
HOME  
GRAPH  
SAVE  
Table 8  
_
95  
63  
?
@
64  
β
s
t
223  
35  
#
Table 9  
TblSet  
U
V
W
X
Y
Z
u
v
w
x
y
z
U
V
W
X
Y
Z
157  
33  
PASTE  
Y=  
!
¦
169  
18  
CUT  
4
TABLE  
90 Caps Lock  
560  
Appendix B: Reference Information  
Table 2: Arrow Keys  
¤
2
4434  
4438  
4436  
4444  
4440  
4441  
4433  
4435  
¥
Arrow Keys  
Normal  
338  
C
16722  
16726  
16724  
16732  
16728  
16729  
16721  
16723  
8530  
8534  
8532  
8540  
8536  
8537  
8529  
8531  
33106  
33110  
33108  
33116  
33112  
33113  
33105  
33107  
E
B
F
D
G
A
H
342  
340  
348  
344  
345  
337  
339  
Note: The Grab ()modifier only affects the arrow keys.  
Table 3: Grave Letters (prefixed by 2 A)  
¤
Key  
A
Assoc.  
Normal  
224  
à
è
ì
192  
200  
204  
210  
217  
E
232  
I
236  
O
U
ò
ù
242  
249  
Table 4: Cedilla Letters (prefixed by 2 C)  
¤
Key  
Assoc.  
Normal  
C
ç
231  
199  
Table 5: Acute Accent Letters (prefixed by 2 E)  
¤
193  
201  
205  
211  
218  
221  
Key  
A
Assoc.  
Normal  
225  
á
é
í
E
233  
I
237  
O
U
ó
ú
ý
243  
250  
Y
253  
Appendix B: Reference Information  
561  
Table 6: Greek Letters (prefixed by 2 G)  
¤
132  
130  
Key  
A
Assoc.  
Normal  
128  
129  
133  
134  
145  
131  
137  
181  
140  
141  
143  
144  
148  
138  
146  
135  
α
β
δ
ε
B
D
E
φ
γ
F
G
L
λ
µ
π
ρ
σ
τ
M
P
139  
142  
147  
R
S
T
ω
ξ
W
X
ψ
ζ
Y
Z
Table 7: Tilde Letters (prefixed by 2 N)  
¤
Key  
N
Assoc.  
Normal  
241  
ñ
õ
209  
O
245  
Table 8: Caret Letters (prefixed by 2 O)  
¤
194  
202  
206  
212  
219  
Key  
A
Assoc.  
Normal  
226  
â
ê
î
E
234  
I
238  
O
U
ô
û
244  
251  
Table 9: Umlaut Letters (prefixed by 2 U)  
¤
196  
203  
207  
214  
220  
Key  
A
Assoc.  
Normal  
228  
ä
ë
ï
E
235  
I
239  
O
U
ö
ü
ÿ
246  
252  
Y
255  
562  
Appendix B: Reference Information  
 
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 reiq. You  
can also enter complex numbers in rectangular form a+bi  
A complex number has real and imaginary components that identify  
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.  
Overview of  
Complex Numbers  
Imaginary  
The point can be expressed in  
rectangular form or in either of  
two polar forms.  
Expressed as  
a+bi, rei q , or  
(rq)  
a
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  
reiq  
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:  
press 2 ), do not  
simply type an alphabetic i.  
To get the i symbol,  
Rectangular form  
a+bi  
Substitute the applicable values or variable  
names for a and b.  
a « b 2 )  
For example:  
Appendix B: Reference Information  
563  
 
To enter the:  
Do this:  
Important: Do not use the  
reiq polar form in Degree  
angle mode. It will cause a  
Domain error.  
Polar form  
reiq  
– or –  
Substitute the applicable values or variable  
names for r and q, where q is interpreted  
according to the Angle mode setting.  
(rq)  
TI.89:  
Note: To get the e symbol,  
press:  
TI.89: ¥ s.  
TI.92 Plus: 2 s  
Do not simply type an  
alphabetic e.  
j [R] ¥ s 2 ) ¥ Ï d  
– or –  
c j [R] 2 ’ ¥ Ï d  
Parentheses are  
required for the  
(rq) form.  
TI.92 Plus:  
R 2 s 2 ) Ï d  
– or –  
c R 2 ’ Ï d  
Tip: To get the  symbol,  
press 2 ’.  
Tip: To enter q in degrees  
for (rq), you can type a ¡  
symbol (such as 45¡). To  
get the ¡ symbol, press  
For example:  
2 “. You should not use  
degrees for reiq  
.
Results are shown in rectangular  
form, but you can select polar form.  
Use 3 to set the  
Complex Format mode  
to one of three settings.  
Complex Format  
Mode for Displaying  
Results  
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 / TI.92 Plus:  
Note: You can enter  
complex numbers in any  
form (or a mixture of all  
forms) depending on the  
Angle mode.  
REAL  
Will not display complex results unless you:  
¦
¦
Enter a complex number.  
– or –  
Use a complex function such as  
cFactor(), cSolve(), or cZeros().  
If complex results are displayed, they will  
be shown in either a+bi or reiq form.  
RECTANGULAR  
POLAR  
Displays complex results as a+bi.  
Displays complex results as:  
¦
reiq if the Angle mode = Radian  
– or –  
¦
(rq) if the Angle mode = Degree  
564  
Appendix B: Reference Information  
 
Regardless of the Complex Format mode setting, undefined variables  
are treated as real numbers. To perform complex symbolic analysis,  
you can use either of the following methods to set up a complex  
variable.  
Using Complex  
Variables in  
Symbolic  
Calculations  
Method 1: Use an underscore _ (TI.89: ¥  TI.92 Plus: 2 ) as  
the last character in the variable name to designate a complex  
variable. For example:  
Note: For best results in  
calculations such as  
cSolve() and cZeros(), use  
Method 1.  
z_ is treated as a  
complex variable  
(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.  
Radian angle mode is recommended for complex number  
calculations. Internally, the TI-89 / TI-92 Plus converts all entered trig  
values to radians, but it does not convert values for exponential,  
logarithmic, or hyperbolic functions.  
Complex Numbers  
and Degree Mode  
Note: If you use Degree  
angle mode, you must make  
polar entries in the form  
(rq). In Degree angle  
mode, an reiq entry causes  
an error.  
In Degree angle mode, complex identities such as e^(iq) = cos(q) +  
i sin(q) are not generally true because the values for cos and sin are  
converted to radians, while those for e^( ) are not. For example,  
e^(i45) = cos(45) + i sin(45) is treated internally as e^(i45) =  
cos(p/4) + i sin(p/4). Complex identities are always true in Radian  
angle mode.  
Appendix B: Reference Information  
565  
 
Accuracy Information  
To maximize accuracy, the TI-89 / TI-92 Plus carries more digits  
internally than it displays.  
Floating-point (decimal) values in memory are stored using up to 14  
digits with a 3-digit exponent.  
Computational  
Accuracy  
¦
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.  
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.  
Graphing Accuracy  
Note: For a table that lists  
the number of pixels in a full  
screen or split screen, refer  
to “Setting and Exiting the  
Split Screen Mode” in  
Chapter 14.  
¦
¦
@x is calculated as (xmax ì xmin) / (# of x pixels ì 1).  
If @x is entered from the Home screen or a program, xmax is  
calculated as xmin + @x ù (# of x pixels ì 1).  
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.  
566  
Appendix B: Reference Information  
 
System Variables and Reserved Names  
This section lists the names of system variables and reserved  
function names that are used by the TI-89 / TI-92 Plus. 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.  
y1(x)–y99(x)*  
xt1(t)–xt99(t)*  
ui1–ui99*  
tc  
y1'(t)–y99'(t)* yi1–yi99*  
yt1(t)– yt99(t)* z1(x,y)–z99(x,y)* u1(n)–u99(n)*  
r1(q)–r99(q)*  
Graph  
xc  
yc  
zc  
nc  
rc  
qc  
xfact  
xmax  
ymax  
@x  
zscl  
ncontour  
tmin  
tplot  
Estep  
yfact  
xscl  
yscl  
zfact  
xgrid  
ygrid  
zmin  
eyef  
qmax  
tstep  
diftol  
fldres  
plotStep  
xmin  
ymin  
xres  
zmax  
eyeψ  
qstep  
t0  
dtime  
nmin  
sysMath  
@y  
eyeq  
qmin  
tmax  
ncurves  
fldpic  
plotStrt  
nmax  
zxmin  
zymin  
zxres  
zxmax  
zymax  
zqmin  
ztmax  
ztstepde  
zzscl  
zxscl  
zyscl  
zxgrid  
zygrid  
zqstep  
zt0de  
zzmin  
zeyef  
zpltstrt  
Graph Zoom  
zqmax  
ztstep  
ztplotde  
zeyeq  
znmax  
ztmin  
ztmaxde  
zzmax  
zeyeψ  
zpltstep  
znmin  
x
y
Gxy  
corr  
medx1  
medy2  
nStat  
regEq(x)*  
Sy  
Gx  
Gy  
maxX  
medx2  
medy3  
q1  
sx  
sy  
maxY  
medx3  
minX  
q3  
Statistics  
Gx2  
Gy2  
medStat  
medy1  
minY  
regCoef*  
Sx  
seed1  
seed2  
R2  
tblStart  
c1–c99  
main  
@tbl  
tblInput  
Table  
sysData*  
ok  
Data/Matrix  
Miscellaneous  
Solver  
errornum  
eqn*  
exp*  
Appendix B: Reference Information  
567  
 
EOS (Equation Operating System) Hierarchy  
This section describes the Equation Operating System  
(EOSé) that is used by the TI-89 / TI-92 Plus. 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
2
3
4
Parentheses ( ), brackets [ ], braces { }  
Indirection (#)  
Function calls  
Post operators: degrees-minutes-seconds (ó,',"), factorial (!),  
percentage (%), radian (ô), subscript ([ ]), transpose ( )  
î
5
6
Exponentiation, power operator (^)  
Negation (ë)  
7
String concatenation (&)  
Multiplication (ù), division (/)  
Addition (+), subtraction (ì)  
8
9
10  
Equality relations: equal (=), not equal (ƒ or /=),  
less than (<), less than or equal ( or <=), greater than (>),  
greater than or equal (or >=)  
11  
12  
13  
14  
15  
Logical not  
Logical and  
Logical or, exclusive logical xor  
Constraint “with” operator (|)  
Store (!)  
All calculations inside a pair of parentheses, brackets, or braces are  
evaluated first. For example, in the expression 4(1+2), EOS first  
evaluates the portion of the expression inside the parentheses, 1+2,  
and then multiplies the result, 3, by 4.  
Parentheses,  
Brackets, and  
Braces  
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 / TI-92 Plus 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).  
568  
Appendix B: Reference Information  
 
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.  
Indirection  
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.  
Post Operators  
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.  
Exponentiation  
Negation  
To enter a negative number, press · followed by the number. Post  
operations and exponentiation are performed before negation. For  
example, the result of ëx2 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!).  
The argument following the “with” (|) operator provides a set of  
constraints that affect the evaluation of the argument preceding the  
“with” operator.  
Constraint (|)  
Appendix B: Reference Information  
569  
 
Regression Formulas  
This section describes how the statistical regressions are  
calculated.  
Most of the regressions use non-linear recursive least-squares  
techniques to optimize the following cost function, which is the sum  
of the squares of the residual errors:  
Least-Squares  
Algorithm  
N
2
J =  
residualExpression  
[
]
i=1  
where: residualExpression is in terms of xi and yi  
xi is the independent variable list  
yi 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(bxi+c)+dì yi  
For SinReg, therefore, the least-squares algorithm finds the  
constants a, b, c, and d that minimize the function:  
N
2
J =  
a sin(bx +c) +d y  
i
[
]
i
i=1  
Regressions  
Regression  
CubicReg  
Description  
Uses the least-squares algorithm to fit the third-order  
polynomial:  
y=ax3+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  
LinReg  
Uses the least-squares algorithm and transformed  
values x and ln(y) to fit the model equation:  
y=abx  
Uses the least-squares algorithm to fit the model  
equation:  
y=ax+b  
where a is the slope and b is the y-intercept.  
570  
Appendix B: Reference Information  
 
Regression  
LnReg  
Description  
Uses the least-squares algorithm and transformed  
values ln(x) and y to fit the model equation:  
y=a+b ln(x)  
Logistic  
MedMed  
Uses the least-squares algorithm to fit the model  
equation:  
y=a/(1+b e^(c x))+d  
*
*
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  
QuadReg  
Uses the least-squares algorithm and transformed  
values ln(x) and ln(y) to fit the model equation:  
y=axb  
Uses the least-squares algorithm to fit the second-  
order polynomial:  
y=ax2+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=ax4+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  
571  
 
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.  
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.  
Algorithm  
z3 =f(x2 ,y1 )  
z1 =f(x1 ,y1 )  
For each rectangle, the equation is  
evaluated at each of the four  
corners (also called vertices or  
grid points) and an average value  
(E) is calculated:  
E
z4 =f(x2 ,y2 )  
z2 =f(x1 ,y2 )  
z
1 + z2 + z3 + z4  
4
E =  
The E value is treated as the value of the equation at the center of the  
rectangle.  
For each specified contour value  
(Ci):  
z
3 ìCi  
z
1 ìCi  
¦
¦
At each of the five points  
shown to the right, the  
difference between the point’s  
z value and the contour value  
is calculated.  
EìCi  
z
4 ìCi  
z
2 ìCi  
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.  
572  
Appendix B: Reference Information  
 
Runge-Kutta Method  
For Runge-Kutta integrations of ordinary differential equations,  
the TI-89 / TI-92 Plus uses the Bogacki-Shampine 3(2) formula  
as found in the journal Applied Math Letters, 2 (1989), pp. 1–9.  
The Bogacki-Shampine 3(2) formula provides a result of 3rd-order  
accuracy and an error estimate based on an embedded 2nd-order  
formula. For a problem of the form:  
Bogacki-Shampine  
3(2) Formula  
y' = ƒ(x, y)  
and a given step size h, the Bogacki-Shampine formula can be  
written:  
F1 = ƒ(xn, yn)  
1
2
1
2
F2 = ƒ(xn + h , yn + h F1)  
3
4
3
4
F3 = ƒ(xn + h , yn + h F2)  
1
3
4
9
yn+1 = yn + h(2 F1 + F2 + F3)  
9
xn+1 = xn + h  
F4 = ƒ(xn+1 , yn+1  
)
errest = h(752 F1 ì F2 ì F3 + F4)  
1
12  
1
9
1
8
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 / TI-92 Plus 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 F1 and through (xn+1 , yn+1) with slope F4.  
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  
573  
 
574  
Appendix B: Reference Information  
Service and Warranty Information  
Battery Information ............................................................................... 576  
In Case of Difficulty ............................................................................... 579  
Support and Service Information......................................................... 580  
Warranty Information............................................................................ 581  
C
This appendix provides supplemental information that may be  
helpful as you use the TI-89 / TI-92 Plus. It includes procedures that  
may help you correct problems with the TI-89 / TI-92 Plus, and it  
describes the service and warranty provided by Texas  
Instruments.  
BATT indicator  
When the BATT indicator appears in the status line, it is time to  
change the batteries.  
Appendix C: Service and Warranty Information  
575  
 
Battery Information  
The TI-89 / TI-92 Plus uses two types of batteries: four alkaline  
batteries, and a lithium battery as a backup for retaining  
memory while you change the alkaline batteries.  
As the alkaline batteries run down, the display will begin to dim  
(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  
When to Replace  
the Batteries  
the alkaline batteries. To assist you, a BATT indicator (  
display in the status line area when the batteries have drained down  
) will  
Note: The TI-89 uses four  
AAA size alkaline batteries.  
to the point when you should replace them soon. When the BATT  
The TI-92 Plus uses four AA  
size alkaline batteries.  
indicator is displayed in reverse text (  
alkaline batteries immediately.  
), you must replace the  
Note: To avoid loss of  
information stored in  
memory, the  
TI-89 / TI-92 Plus must be  
off. Do not remove the  
alkaline batteries and the  
lithium battery at the same  
time.  
BATT indicator  
To avoid loss of data, do not remove the lithium battery unless four  
fresh alkaline batteries are installed. Replace the lithium backup  
battery about every three or four years.  
If you do not remove both types of batteries at the same time or  
allow them to run down completely, you can change either type of  
battery without losing anything in memory.  
Effects of Replacing  
the Batteries  
Take these precautions when replacing batteries:  
Battery Precautions  
¦
¦
Do not leave batteries within the reach of children.  
Do not mix new and used batteries. Do not mix brands (or types  
within brands) of batteries.  
¦
¦
¦
¦
¦
Do not mix rechargeable and non-rechargeable batteries.  
Install batteries according to polarity (+ and - ) diagrams.  
Do not place non-rechargeable batteries in a battery recharger.  
Properly dispose of used batteries immediately.  
Do not incinerate or dismantle batteries.  
576  
Appendix C: Service and Warranty Information  
 
1. If the TI-89 is on, turn it off (press 2 ®) to avoid loss of  
Replacing the  
Alkaline Batteries in  
the TI-89  
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.  
5. Install four new AAA alkaline batteries, arranged according to the  
polarity (+ and -) diagram inside the battery compartment.  
Lithium battery  
AAA alkaline  
batteries  
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.  
To replace the lithium backup battery, remove the battery cover and  
unscrew the tiny screw holding the BACK UP BATTERY cover in  
place.  
Replacing the  
Lithium Battery in  
the TI-89  
Remove the old battery and install a new CR1616 or CR1620 battery,  
positive (+) side up. Replace the cover and the screw.  
Appendix C: Service and Warranty Information  
577  
 
1. If the TI-92 Plus is on, turn it off (press 2 ®) to avoid loss of  
Replacing the  
Alkaline Batteries in  
the TI-92 Plus  
information stored in memory.  
2. Holding the TI-92 Plus unit upright, slide the latch on the top of the  
unit to the left unlocked position; slide the rear cover down about  
one-eighth inch and remove it from the main unit.  
top  
Slide to open.  
I/O  
3. Remove all four discharged AA batteries.  
4. Install four new AA batteries as shown on the polarity diagram  
located in the battery compartment.  
AA alkaline batteries  
Lithium battery  
5. Replace the rear cover, and slide the latch on the top of the  
TI-92 Plus to the locked position to lock the cover back in place.  
6. Turn the TI-92 Plus on, and adjust the display contrast, if  
necessary.  
To replace the lithium backup battery, remove the back cover from  
the unit and unscrew the tiny screw holding the lithium battery cover  
in place.  
Replacing the  
Lithium Battery in  
the TI-92 Plus  
Remove the old battery and install a new CR2032, positive (+) side  
up. Replace the cover and the screw.  
578  
Appendix C: Service and Warranty Information  
 
In Case of Difficulty  
If you have difficulty operating the TI-89 / TI-92 Plus, the  
following suggestions may help you correct the problem.  
Suggestions  
If:  
You cannot see anything  
Suggested action:  
Press ¥ « to darken or ¥ | to lighten  
on the display.  
the display contrast.  
The BATT indicator is  
Replace the batteries. If BATT is  
displayed.  
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  
displayed.  
A graph or program is paused and the  
TI-89 / TI-92 Plus is waiting for input;  
press ¸.  
An error message is  
displayed.  
Refer to Appendix B for a list of error  
messages. Press Nto clear.  
The TI-89 / TI-92 Plus does  
not appear to be working  
properly.  
Press Nseveral times to exit any  
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”  
will reset your  
TI-89 / TI-92 Plus and clear  
its memory.  
The TI-89 appears to be  
“locked up” and will not  
respond to keyboard  
input.  
1. Remove one of the four AAA  
batteries.  
2. Press and hold ·and d as you  
reinstall the battery.  
3. Continue holding ·and d for  
five seconds before releasing.  
The TI-92 Plus appears to  
be “locked up” and will  
not respond to keyboard  
input.  
Press and hold 2 and . Then press  
and release ´.  
— or —  
If 2 ‚ and ´ do not correct the  
problem:  
1. Remove one of the four AA  
batteries.  
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  
579  
 
Support and Service Information  
For additional information about TI support, service, and  
products, please see below.  
E-mail:  
For General  
Information  
Phone:  
1-800-TI-CARES (1-800-842-2737)  
For U.S., Canada, Mexico, Puerto Rico, and  
Virgin Islands only  
Home Page:  
Phone:  
1.972.917.8324  
For Technical  
Questions  
Customers in the U.S., Canada, Mexico, Puerto Rico and  
Virgin Islands: Always contact Texas Instruments Customer  
Support before returning a product for service.  
For Product  
(hardware) Service  
All other customers: Refer to the leaflet enclosed with this product  
580  
Appendix C: Service and Warranty Information  
 
Warranty Information  
See the information below concerning the warranty for your  
TI-89 / TI-92 Plus.  
One-Year Limited Warranty for Commercial Electronic Product  
Customers in the  
U.S. and Canada  
Only  
This Texas Instruments (“TI”) electronic product warranty extends  
only to the original purchaser and user of the product.  
Warranty Duration. This TI electronic product is warranted to the  
original purchaser for a period of one (1) year from the original  
purchase date.  
Warranty Coverage. This TI 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.  
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.  
Software. Software is licensed, not sold. TI and its licensors do not  
warrant that the software will be free from errors or meet your  
specific requirements. All software is provided “AS IS.”  
Copyright. The software and any documentation supplied with this  
product are protected by copyright.  
Appendix C: Service and Warranty Information  
581  
 
One-Year Limited Warranty for Commercial Electronic  
Product  
Australia & New  
Zealand Customers  
only  
This Texas Instruments electronic product warranty extends only to  
the original purchaser and user of the product.  
Warranty Duration. This Texas Instruments electronic product is  
warranted to the original purchaser for a period of one (1) year from  
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.  
Some jurisdictions 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 jurisdiction to  
jurisdiction.  
Warranty Performance. During the above one (1) year warranty  
period, your defective product will be either repaired or replaced  
with a new or reconditioned model of an equivalent quality (at TI’s  
option) when the product is returned to the original point of  
purchase. The repaired or replacement unit will continue for the  
warranty of the original unit or six (6) months, whichever is longer.  
Other than your cost to return the product, no charge will be made  
for such repair and/or replacement. TI strongly recommends that you  
insure the product for value if you mail it.  
Software. Software is licensed, not sold. TI and its licensors do not  
warrant that the software will be free from errors or meet your  
specific requirements. All software is provided “AS IS.”  
Copyright. The software and any documentation supplied with this  
product are protected by copyright.  
For information about the length and terms of the warranty, refer to  
your package and/or to the warranty statement enclosed with this  
product, or contact your local Texas Instruments retailer/distributor.  
All Other Customers  
582  
Appendix C: Service and Warranty Information  
Programmer’s Guide  
setMode( ) and getMode( ) ................................................................... 584  
setGraph( ) .............................................................................................. 587  
setTable( ) ............................................................................................... 589  
D
The parameter/mode strings used in the setMode( ), getMode( ),  
setGraph( ), and setTable( ) functions do not translate into other  
languages when used in a program. For example, when you write  
a program in the French Language mode then switch to the Italian  
Language mode, the program will produce an error. To avoid this  
error, you must substitute digits for the alpha characters. These  
digits operate in all languages. This appendix contains the digit  
substitutions for these strings.  
The following examples show how to substitute digits in the  
setMode( ) function.  
Example 1: A program using alpha parameter/mode strings:  
setMode("Graph","Sequence")  
Example 2: The same program, substituting digits for those  
strings:  
setMode("1","4")  
Appendix D: Programmer’s Guide  
583  
 
setMode( ) and getMode( )  
Parameter/Mode Setting  
ALL  
Strings  
0
1
1
2
3
4
5
6
Graph  
FUNCTION  
PARAMETRIC  
POLAR  
SEQUENCE  
3D  
DIFF EQUATIONS  
DisplayDigits  
FIX 0  
2
1
FIX 1  
2
FIX 2  
3
FIX 3  
4
FIX 4  
5
FIX 5  
6
FIX 6  
7
FIX 7  
8
FIX 8  
9
FIX 9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
FIX 10  
FIX 11  
FIX 12  
FLOAT  
FLOAT 1  
FLOAT 2  
FLOAT 3  
FLOAT 4  
FLOAT 5  
FLOAT 6  
FLOAT 7  
FLOAT 8  
FLOAT 9  
584  
Appendix D: Programmer’s Guide  
 
Parameter/Mode Setting  
FLOAT 10  
Strings  
24  
25  
26  
3
FLOAT 11  
FLOAT 12  
Angle  
RADIAN  
1
DEGREE  
2
Exponential Format  
NORMAL  
4
1
SCIENTIFIC  
ENGINEERING  
Complex Format  
REAL  
2
3
5
1
RECTANGULAR  
POLAR  
2
3
Vector Format  
RECTANGULAR  
CYLINDRICAL  
SPHERICAL  
Pretty Print  
6
1
2
3
7
OFF  
1
ON  
2
SplitScreen  
FULL  
8
1
TOP-BOTTOM  
LEFT-RIGHT  
Split1App  
2
3
9
(applications are not numbered)  
Split2App  
10  
(applications are not numbered)  
Number of Graphs  
1
11  
1
2
2
Appendix D: Programmer’s Guide  
585  
Parameter/Mode Setting  
Strings  
Graph 2  
12  
1
2
FUNCTION  
PARAMETRIC  
POLAR  
3
4
SEQUENCE  
3D  
5
6
DIFF_EQUATIONS  
Split Screen Ratio  
13  
1
1:1  
1:2  
2
3
2:1  
14  
1
Exact/Approx  
AUTO  
EXACT  
APPROXIMATE  
Base  
2
3
15  
1
DEC  
2
HEX  
3
BIN  
586  
Appendix D: Programmer’s Guide  
setGraph( )  
Parameter/Mode Setting  
Strings  
Coordinates  
RECT  
1
1
2
3
2
1
2
3
1
2
4
POLAR  
OFF  
Graph Order  
SEQ  
SIMUL  
Grid  
OFF  
ON  
Axes  
In 3D Mode:  
OFF  
1
2
3
AXES  
BOX  
Not in 3D Mode:  
OFF  
1
2
5
1
2
6
1
1
7
1
2
3
8
1
2
ON  
Leading Cursor  
OFF  
ON  
Labels  
OFF  
ON  
Seq Axes  
TIME  
WEB  
Custom  
Solution Method  
RK  
EULER  
Appendix D: Programmer’s Guide  
587  
 
Parameter/Mode Setting  
Fields  
Strings  
9
1
SLPFLD  
DIRFLD  
2
FLDOFF  
3
DE Axes  
10  
1
TIME  
Y1-VS-Y2  
2
T-VS-Y'  
3
Y-VS-Y'  
4
Y1-VS-Y2'  
5
Y1'-VS-Y2'  
6
XR Style  
11  
1
WIRE FRAME  
HIDDEN SRUFACE  
CONTOUR LEVELS  
WIRE AND CONTOUR  
IMPLICIT PLOT  
2
3
4
5
588  
Appendix D: Programmer’s Guide  
setTable( )  
Parameter/Mode Setting  
Strings  
Graph <->Table  
OFF  
1
1
2
2
1
2
4
ON  
Independent  
AUTO  
ASK  
Axes  
Appendix D: Programmer’s Guide  
589  
 
590  
Appendix D: Programmer’s Guide  
Index  
index.  
Symbols  
í, exponent, 441  
%, percent, 528  
4Bin, display as binary, 345, 417  
4Cylind, display as cylindrical vector, 429  
4DD, display as decimal angle, 432  
4Dec, display as decimal integer, 345, 432  
4DMS, display as degree/minute/second, 438  
f(x)dx (graph math tool), 122, 124  
4Hex, display as hexadecimal, 345, 456  
@list( ), list difference, 463  
qmax window variable, 137  
qmin window variable, 137  
4Polar, display as polar vector, 480  
4Rect, display as rectangular vector, 489  
4Sphere, display as spherical vector, 506  
qstep window variable, 137  
@tbl, table increment, 224  
86, 514  
&, append, 293, 532. inside front cover,  
inside back cover  
', minute notation, 536  
', prime, 536  
+, add, 526  
., dot multiplication, 531  
.+, dot addition, 530  
.^, dot power, 531  
<, less than, 294, 529  
<<...>>, insufficient display memory, 103  
=, equal, 294, 529  
@, arbitrary integer, 80. inside front cover,  
inside back cover  
^, power, 534, 569  
@x window variable, 119, 566  
@y window variable, 119, 566  
!, factorial, 8, 531. inside front cover, inside  
back cover  
", second notation, 536  
( ), integrate, 10, 61, 62, 63, 66, 75, 76, 532  
Π( ), product, 75, 533  
_, underscore, 536  
|, with, 10, 58, 60, 67, 538, 569  
0b, binary indicator, 539  
0h, hexadecimal indicator, 539  
10^( ), power of ten, 537  
xê, reciprocal, 538  
( ), square root, 533  
Σ( ), sum, 75, 533  
3D graphing, 153 173. inside front cover,  
inside back cover  
animation, 154, 164. inside front cover,  
inside back cover  
CONTOUR LEVELS, 155, 166  
HIDDEN SURFACE, 155, 166  
WIRE AND CONTOUR, 155, 166  
WIRE FRAME, 155, 166  
ƒ, à=, not equal, 294, 529, 1  
, <=, less than or equal, 294, 530. inside  
front cover, inside back cover  
, >=, greater than or equal, 294, 530. inside  
front cover, inside back cover  
±, angle, 535  
¦, comment, 282, 539. inside front cover,  
inside back cover  
4, convert, 85, 537  
ó, degree notation, 400, 535, 536  
à, divide, 527  
A
abs( ), absolute value, 402, 414  
accented characters, 21, 324, 325, 326. inside  
back cover  
accuracy, 566  
activities. See examples, previews, activities  
add, +, 526  
#, indirection, 293, 534, 569. inside front  
cover, inside back cover  
ˆ, infinity, 80  
, multiply, 527  
M, negate, 25, 528  
Algebra menu, 70, 72  
ô, radian, 535  
!, store, 289, 539  
algebra operations, 410  
and, Boolean and, 67, 294, 347, 414  
AndPic, and picture, 306, 415  
Angle mode, 41, 108, 551  
N, subtract, 526  
î
, transpose, 509  
Index 591  
web, Build Web, 146  
Build Web, build web, 146, 147  
BUSY indicator, 54, 115, 278  
A (continued)  
angle( ), angle, 415  
angle, ±, 535  
angle, angle( ), 415  
ans( ), last answer, 50, 416  
APD (Automatic Power Down), 14  
append, &, 293, 532. inside front cover, inside  
back cover  
APPLICATIONS menu, 34, 38  
approx( ), approximate, 70, 416  
approximate answer. inside front cover, inside  
back cover  
Calc menu, 75  
Calculator-Based Laboratory. See CBL 2/CBL  
Calculator-Based Ranger. See CBR  
CATALOG menu, 44  
activity, 399  
Approximate mode, 29, 41, 54, 62, 553  
approximate, approx( ), 70, 416  
arbitrary integer, @, 80. inside front cover,  
inside back cover  
Arc (graph math tool), 122, 125, 138  
arc length, arcLen( ), 75, 416  
arccosine, cosê( ), 424  
get/return, Get, 451  
programs, 309, 399  
send list variable, Send, 494  
statistical data, 272, 273  
CBR  
programs, 309, 399  
Archive, archive variables, 289, 361, 416  
arcLen( ), arc length, 75, 416  
arcsine, sinê( ), 501  
send list variable, Send, 494  
statistical data, 272, 273  
ceiling( ), ceiling, 389, 418  
certificate, 369, 373, 374, 375, 376, 377, 378  
cFactor( ), complex factor, 71, 406, 419, 564  
CHAR (character) menu, 34  
char( ), character string, 293, 419, 555  
codes, 555  
Greek, 325, 326, 327. inside front cover,  
inside back cover  
arctangent, tanê( ), 511  
assembly language, 313, 314, 444  
augment( ), augment/concatenate, 388, 417  
augment/concatenate, augment( ), 388, 417  
Auto mode, 29, 41, 54, 63, 553  
automatic simplification, 64  
automatic tables, 226  
auto-paste, 52, 95  
avgRC( ), average rate of change, 417  
axes (sequence), CUSTOM, 146  
Axes graph format, 114, 181, 190, 191  
Axes settings, 162, 165  
menu, 34  
numeric code, ord( ), 293, 476, 555  
special, 21, 324, 325  
string, char( ), 293, 419, 555  
symbols, 21, 325  
uppercase/lowercase, 21, 319. inside front  
cover  
circle  
drawing, 214  
B
base code, 373, 374, 375, 376  
Base mode, 42, 554  
BATT message, 54, 576, 579  
batteries, 2, 3, 14, 15, 54, 576, 577, 578, 579  
binary  
graphing, 106  
Circle, draw circle, 308, 420  
Circular definition error, 289  
Clean Up menu, 43  
display, 4Bin, 345, 417  
indicator, 0b, 539  
rotate, rotate( ), 348  
shift, shift( ), 348  
clear  
drawing, ClrDraw, 213, 307, 420  
error, ClrErr, 310, 420  
graph, ClrGraph, 205, 305, 340, 420  
home, ClrHome, 421  
I/O, ClrIO, 279, 302, 421  
clipboard, 95, 96, 321  
BldData, build data, 193, 289, 418  
Bogacki-Shampine formula, 573  
Boolean  
and, and, 67, 294, 347, 414  
exclusive or, xor, 294, 347, 518  
not, not, 294, 473  
ClrDraw, clear drawing, 213, 307, 420  
ClrErr, clear error, 310, 420  
ClrGraph, clear graph, 205, 305, 340, 420  
ClrHome, clear home, 421  
ClrIO, clear I/O, 279, 302, 421  
cobweb plot. See web plots  
or, or, 294, 347, 475  
Box Plot, 266  
build  
data, BldData, 193, 289, 418  
table, Table, 305, 510  
592 Index  
CUSTOM axes (sequence), 146  
CUSTOM custom plots, 142, 190, 191  
CUSTOM menu, 34, 37  
custom plots, CUSTOM, 142, 190, 191  
custom toolbar. See toolbar  
C (continued)  
colDim( ), matrix column dimension, 421  
colNorm( ), matrix column norm, 421  
combinations, nCr( ), 470  
comDenom( ), common denominator, 70, 71,  
74, 421  
Custom Units mode, 42, 554  
Custom, define toolbar, 302, 429  
cut, 95, 321. inside back cover  
Cycle, cycle, 429  
command mark, 328  
command scripts, 94, 328, 329  
activity, 392  
CyclePic, cycle picture, 219, 306, 429  
cylindrical vector display, 4Cylind, 429  
cZeros( ), complex zeros, 61, 71, 430, 564  
commands, 409 540  
comment, ¦, 282, 539. inside front cover, inside  
back cover  
common denominator, comDenom( ), 70, 71,  
74, 421  
complex  
d ( ), first derivative, 10, 66, 75, 76, 432  
darker/lighter, 4, 15. inside front cover, inside  
back cover  
data (new), NewData, 471  
Data/Matrix Editor, 203, 237 252. See also  
conjugate, conj( ), 422  
factor, cFactor( ), 71, 406, 419, 564  
mode, Complex Format, 41, 551  
modulus surface, 170  
numbers, 8, 563 565  
solve, cSolve( ), 61, 425, 564  
tables, 227  
zeros, cZeros( ), 61, 71, 430, 564  
Complex Format mode, 41, 551  
Complex menu, 71  
conj( ), complex conjugate, 422  
Constant Memory, 14  
column header, 248, 249, 250  
copying, 252  
creating, 241, 242  
constants, 81 92, 83  
predefined, 89, 90, 91  
data variable, 240, 241, 242  
deleting, 246, 247  
contour plots, 167, 168, 169  
DrwCtour, draw contour, 168  
contour-level graphing, 155, 166, 572  
contrast, adjusting, 4, 15. inside front cover,  
inside back cover  
filling, 244  
inserting, 246, 247  
list variable, 239, 241, 242  
locking, 248  
matrix variable, 239, 240, 241, 242  
new, NewData, 240, 249, 289  
scrolling, 244  
shift, shift( ), 250, 499  
sorting columns, 251  
statistical plots, 264  
convert, 4, 85, 537  
Coordinates graph format, 114, 137  
copy, 95, 96, 321. inside back cover  
CopyVar, copy variable, 289, 358, 422  
cosê( ), arccosine, 424  
cos( ), cosine, 423  
values, 243  
coshê( ), hyperbolic arccosine, 424  
cosh( ), hyperbolic cosine, 424  
crossP( ), cross product, 425  
cSolve( ), complex solve, 61, 425, 564  
CubicReg, cubic regression, 261, 428, 570  
cumSum( ), cumulative sum, 250, 428  
Current folder mode, 41, 550  
cursor  
3D graph, 160  
free-moving, 116, 132, 138, 145, 159, 183  
hidden surface, 161  
moving, 16, 17, 32. inside front cover, inside  
back cover  
off the curve, 161  
variables, 240, 241, 242  
decimal  
angle display, 4DD, 432  
integer display, 4Dec, 345, 432  
define toolbar, Toolbar, 302, 515  
Define, define, 77, 97, 110, 130, 142, 157, 179,  
196, 204, 207, 287, 289, 305, 384, 433  
degree notation, ó, 400, 535, 536  
degree/minute/second display, 4DMS, 438  
deleting  
folder, DelFold, 102, 289, 434  
variable, DelVar, 60, 77, 102, 289, 291, 434  
DelFold, delete folder, 102, 289, 434  
DelVar, delete variable, 60, 77, 102, 289, 291,  
434  
trace, 117  
CustmOff, custom toolbar off, 37, 428  
CustmOn, custom toolbar on, 37, 428  
denominator, 421  
Index 593  
DrawFunc, draw function, 212, 308, 439  
drawings and drawing  
circle, Circle, 308, 420  
D (continued)  
derivatives, 10  
first derivative, d ( ), 10, 66, 75, 76, 432  
numeric derivative, nDeriv( ), 75, 470  
Derivatives (graph math tool), 122, 124, 132,  
138  
deSolve( ), solution, 75, 196, 434  
det( ), matrix determinant, 436  
diag( ), matrix diagonal, 436  
dialog boxes, 35  
Dialog, define dialog box, 302, 437  
differential equations  
DIRFLD, direction field, 180, 185, 198  
first order, 186, 196  
clearing, ClrDraw, 307, 420  
contour, DrwCtour, 308, 441  
freehand, 213  
function, DrawFunc, 212, 308, 439  
inverse, DrawInv, 212, 308, 439  
line, Line, 308, 461  
lines, 214, 215  
on a graph, 307  
parametric, DrawParm, 212, 308, 439  
Pencil, 213  
FLDOFF, field off, 180, 185, 199  
graphing, 175 199  
polar, DrawPol, 212, 308, 440  
slope, DrawSlp, 215, 308, 440  
tangent line, LineTan, 308, 462  
vertical line, LineVert, 308, 462  
DrawInv, draw inverse, 212, 308, 439  
DrawParm, draw parametric, 212, 308, 439  
DrawPol, draw polar, 212, 308, 440  
DrawSlp, draw slope, 215, 308, 440  
DrwCtour, draw contour, 168, 308, 441  
dtime window variable, 182  
initial conditions, 184  
second order, 187, 196  
SLPFLD, slope field, 180, 185, 197  
solution methods, 180, 193, 573  
third order, 189  
troubleshooting, 197  
diftol window variable, 182  
dim( ), dimension, 293, 437  
DIRFLD, direction field, 180, 185, 198  
Disp, display I/O screen, 277, 283, 302, 310,  
437, 555  
DispG, display graph, 302, 305, 438  
DispHome, display Home screen, 302, 438  
display  
E
e, natural log base, 80  
graph, DispG, 302, 305, 438  
Home screen, DispHome, 302, 438  
I/O screen, Disp, 277, 283, 302, 310, 437, 555  
table, DispTbl, 302, 305, 438  
display as  
binary, 4Bin, 345, 417  
cylindrical vector, 4Cylind, 429  
decimal angle, 4DD, 432  
decimal integer, 4Dec, 345, 432  
degree/minute/second, 4DMS, 438  
hexadecimal, 4Hex, 345, 456  
polar vector, 4Polar, 480  
rectangular vector, 4Rect, 489  
spherical vector, 4Sphere, 506  
Display Digits mode, 31, 41, 550  
DispTbl, display table, 302, 305, 438  
Distance (graph math tool), 122, 125, 132, 138  
divide, à, 527  
domain constraints, 69  
dot  
addition, .+, 530  
division, .à, 531  
multiplication, ., 531  
power, .^, 531  
product, dotP( ), 439  
subtraction, .N, 531  
e^( ), e to a power, 441  
editing, 32  
eigVc( ), eigenvector, 442  
eigVl( ), eigenvalue, 442  
Else, else, 296, 456  
ElseIf, else if, 207, 296, 442  
end  
custom, EndCustm, 302, 429  
dialog, EndDlog, 302, 437  
for, EndFor, 283, 297, 450  
function, EndFunc, 207, 286, 451  
if, EndIf, 283, 295, 456  
loop, EndLoop, 299, 466  
program, EndPrgm, 276, 287, 481  
toolbar, EndTBar, 302, 515  
try, EndTry, 310, 515  
while, EndWhile, 298, 518  
EndCustm, end custom, 302, 429  
EndDlog, end dialog, 302, 437  
EndFor, end for, 283, 297, 450  
EndFunc, end function, 207, 286, 451  
EndIf, end if, 283, 295, 456  
EndLoop, end loop, 299, 466  
EndPrgm, end program, 276, 287, 481  
EndTBar, end toolbar, 302, 515  
EndTry, end try, 310, 515  
EndWhile, end while, 298, 518  
dotP( ), dot product, 439  
594 Index  
preditor-prey model, 150, 191  
prime factors, 8  
programming, 276, 277, 311, 312  
Pythagorean theorem, 384  
rational factors, 406  
real factors, 406  
reducing expressions, 9  
sampling, 407  
second-order differential equation, 187, 196  
sequence graphing, 140  
solving linear equations, 9, 10, 73  
split screen, 232, 400  
statistics, 254 257  
symbolic manipulation, 58  
tables, 222  
text operations, 316  
third-order differential equation, 189  
time value of money, 405  
trees and forest, 140  
E (continued)  
entry( ), entry, 50, 443  
EOS (Equation Operating System), 568  
equal, =, 294, 529  
Equation Operating System (EOS), 568  
equations, solving, 333 341  
errors and troubleshooting, 579, 580  
Circular definition, 289  
clear error, ClrErr, 310, 420  
Memory error, 364  
messages, 542 549  
Out-of-memory, 79  
pass error, PassErr, 310, 479  
programs, 310  
transmission, 369, 377  
warnings, 549  
Estep window variable, 182  
Euler method, 180, 193  
evaluate polynomial, polyEval( ), 480  
exact( ), exact, 443  
Exact/Approx mode, 29, 41, 54, 61, 62, 63, 553  
examples, previews, activities  
3D graphing, 154, 390  
baseball, 400  
CBL 2/CBL program, 399  
complex factors, 406  
complex modulus surface, 170  
complex numbers, 8  
tutorial script with the text editor, 392  
units of measurement, 82  
variable management, 350, 351, 352  
exclusive or (Boolean), xor, 294, 347, 518  
exclusive or picture, XorPic, 306, 519  
Exec, execute assembly language, 314, 444  
execute program, Prgm, 276, 287, 481  
Exit, exit, 444  
complex zeroes, 402  
exp4list( ), expression to list, 444  
expand( ), expand, 9, 70, 72, 386, 402, 445  
exponent, í, 441  
Exponential Format mode, 31, 41, 551  
expr( ), string to expression, 292, 293, 301, 381,  
446  
ExpReg, exponential regession, 261, 446, 570  
expressions, 26, 27, 32  
expanding, 9  
expression to list, exp4list( ), 444  
reducing, 9  
string to expression, expr( ), 292, 293, 301,  
381, 446  
constants, 82  
converging web plots, 148  
cos(x)=sin(x) activity, 389  
cubic polynomial, 402  
data filtering, 396  
data/matrix editor, 238  
decomposing a rational function, 394  
derivatives, 10  
differential equations, 176  
diverging web plots, 148  
expanding expressions, 9  
factorial, 8  
factoring polynomials, 9, 72  
Fibonacci sequence, 151  
function graphing, 106  
graphing functions, 11  
implicit plots, 173  
Extract menu, 71  
eyeψ rotation window variable, 158, 162, 163  
eyeq x-axis window variable, 158, 162  
eyef z-axis window variable, 158, 162, 163  
integrals, 10  
memory management, 350, 351, 352  
number bases, 344  
numeric solver, 334  
oscillating web plots, 149  
parametric graphing, 128, 400  
path of a ball, 128  
piecewise functions, 202  
polar rose, 134  
F
factor( ), factor, 8, 9, 61, 70, 72, 387, 406, 447  
factorial, !, 8, 531. inside front cover, inside  
back cover  
factoring, 9, 72  
activity, 406  
false message, 80  
family of curves, 208, 209  
Fibonacci sequence, 151  
Field graph format, 180  
pole-corner problem, 384  
population, 254 257  
Index 595  
CBL/CBR value, Get, 272, 309, 451  
configuration, getConfg( ), 300, 452  
denominator, getDenom( ), 71, 452  
folder, getFold( ), 289, 300, 453  
key, getKey( ), 301, 453, 556, 559  
mode, getMode( ), 300, 453  
number, getNum( ), 71, 453  
type, getType( ), 59, 454  
units, getUnits( ), 300, 454  
GetCalc, get/return calculator, 309, 371, 452  
getConfg( ), get/return configuration, 300, 452  
getDenom( ), get/return denominator, 71, 452  
getKey( ), get/return key, 301, 453, 556, 559  
getMode( ), get/return mode, 300, 453  
getNum( ), get/return number, 71, 453  
getType( ), get/return type, 59, 454  
getUnits( ), get/return units, 300, 454  
F (continued)  
field off, FLDOFF, 180, 185, 199  
field picture, fldpic, 183  
Fill, matrix fill, 448  
Flash applications, 4, 38, 45, 79, 353, 356. inside  
front cover, inside back cover  
deleting, 369  
Flash, upgrading product code, 373, 374  
FLDOFF, field off, 180, 185, 199  
fldpic, field picture, 183  
fldres window variable, 182  
floor( ), floor, 389, 448  
fMax( ), function maximum, 61, 75, 448  
fMin( ), function minimum, 61, 75, 449  
FnOff, function off, 111, 305, 449  
FnOn, function on, 111, 305, 449  
folders, 41, 100, 550  
delete, DelFold, 102, 289, 434  
deleting, 357  
get/return, getFold( ), 453  
locking/unlocking, 358  
Goto, go to, 287, 296, 299, 455  
Graph 2 mode, 41, 553  
Graph mode, 41, 54, 108, 130, 136, 142, 157,  
179, 550  
new, NewFold, 101, 289, 471  
pasting name, 359  
Graph Order graph format, 114, 180  
Graph, graph, 110, 202, 205, 208, 305, 455  
Graph<->Table, table-graph, 224  
graphical user interface, GUI, 302  
graphs and graphing  
f(x)dx, 122, 124  
3D, 153 173  
Arc, 122, 125, 138  
renaming, 358  
setting, setFold( ), 101, 300, 495  
transmitting, 367, 368  
VAR-LINK, 102, 356, 357, 358  
For, for, 283, 297, 450  
format( ), format string, 293, 302, 450  
FORMATS dialog box, 114, 155, 165, 166, 167,  
171, 176, 245, 325. inside front cover, inside  
back cover  
clearing, ClrGraph, 205, 305, 340, 420  
contour plots, 167, 168, 169  
coordinates, 11, 116. inside front cover,  
inside back cover  
fpart( ), function part, 451  
fractions, 70, 74, 394, 482  
free-moving cursor, 116, 132, 138, 145, 159, 183  
Frobenius norm, norm( ), 473  
Func, program function, 207, 286, 451  
functions, 26, 409 540  
delayed simplification, 66  
graphing, 105 126  
maximum, fMax( ), 61, 75, 448  
minimum, fMin( ), 61, 75, 449  
multistatement, 207  
custom axes, 146  
custom plots, 142, 190, 191  
Derivatives, 122, 124, 132, 138  
differential equations, 175 199  
Distance, 122, 125, 132, 138  
drawing, 213 216, 307  
family of curves, 208, 209  
formats, 114, 137, 144, 180  
functions, 105 126  
off, FnOff, 111, 305, 449  
on, FnOn, 111, 305, 449  
functions off, FnOff, 305, 449  
functions on, FnOn, 305, 449  
graph databases, 220  
graph, Graph, 205, 305, 455  
Home screen, 204, 205  
part, fpart( ), 451  
program function, Func, 207, 286, 451  
user-defined, 46, 77, 78, 97 99, 157, 205,  
207, 285, 286, 433  
implicit plots, 171, 172, 173  
independent variable, 204  
Inflection, 122, 124  
Intersection, 122, 123  
inverse functions, 212  
G
Garbage collection message, 362, 363  
gcd( ), greatest common divisor, 451  
Get, get/return CBL/CBR value, 272, 309, 451  
get/return  
line styles, 112, 131, 136, 143, 157, 179  
math functions, 122  
calculator, GetCalc, 309, 371, 452  
596 Index  
G (continued)  
matrix data, 203  
hexadecimal  
Maximum, 122, 123  
Minimum, 11, 122, 123  
display, 4Hex, 345, 456  
indicator, 0h, 539  
modes, 41, 54, 108, 130, 136, 142, 157, 179,  
550  
native independent variable, 204  
nested functions, 206  
hidden surface, 155, 161, 166  
inside back cover  
Histogram, 267  
operations, 410  
overview, 107, 129, 135, 141, 156, 178  
panning, 118  
history area, 6, 23, 329  
parametric, 127 132  
pausing, 115  
pictures, 217, 218  
piecewise functions, 206  
pixels, 566  
arccosine, coshê( ), 424  
arctangent, tanhê( ), 511  
polar, 133 138  
tangent, tanh( ), 511  
programs, 305  
QuickCenter, 118  
I
recall graph database, RclGDB, 306, 488  
selecting functions, 111, 131, 143, 179  
sequence, 139 151  
ID number, 55, 373, 378, 379  
identity( ), identity matrix, 456  
If, if, 207, 283, 295, 296, 456  
imag( ), imaginary part, 457  
implicit plots, 171, 172, 173, 572  
independent auto/ask, Independent AUTO/ASK,  
224, 226, 229  
indirection, #, 293, 534, 569. inside front cover,  
inside back cover  
infinity, ˆ, 80  
Inflection (graph math tool), 122, 124  
Input, input, 301, 305, 457  
InputSt, input string, 292, 301, 371, 458  
inString( ), within string, 293, 458  
instructions, 26  
insufficient display memory, <<...>>, 103  
int( ), integer, 458  
intDiv( ), integer divide, 346, 458  
integer part, iPart( ), 140, 459  
integer, int( ), 458  
integrate, ( ), 10, 61, 62, 63, 66, 75, 76, 532  
Intersection (graph math tool), 122, 123  
inverse, xê, 538  
iPart( ), integer part, 140, 459  
isPrime( ), prime test, 459  
Item, menu item, 302, 303, 459  
setting, setGraph( ), 300, 305, 495  
Shade, 122, 126  
shading, Shade, 308, 498  
simultaneous graphs, 208  
split screen, 209, 211, 233  
store graph database, StoGDB, 306, 507  
style, Style, 305, 508  
Tangent, 122, 125, 132, 138  
text, 216  
time plots, 142, 146, 190, 191  
trace, Trace, 117, 305, 390, 398, 399, 402,  
515  
tracing, 11, 117, 118, 132, 138, 145, 159, 183  
two-graph mode, 209, 210, 233  
Value, 122, 123, 132, 138, 145, 159, 183  
viewing window, 113, 131, 137, 143, 144, 158  
web plots, 142, 146, 147  
window variables, 113, 131, 137, 143, 144,  
158  
Y= editor, 106, 109, 130, 136, 142, 157, 179,  
204  
Zero, 122, 123  
zoom, 119, 132, 138, 145, 159, 305  
zoom factors, 119, 121  
zoom Memory, 119, 121  
greater than or equal, , >=, 294, 530. inside  
front cover, inside back cover  
greater than, >, 294, 530  
greatest common divisor, gcd( ), 451  
Greek characters, 325, 326, 327. inside front  
cover, inside back cover  
Grid graph format, 114  
GUI, graphical user interface, 302  
Index 597  
augment/concatenate, augment( ), 417  
column header, 248, 249, 250  
copying, 252  
K
keyboard, 16, 17  
j (alpha) key, 18  
¥ (diamond) key, 18  
(hand) key, 18  
creating, 241, 242  
cross product, crossP( ), 425  
cumulative sum, cumSum( ), 250, 428  
deleting, 246, 247  
difference, @list( ), 463  
dimension, dim( ), 437  
2 (second) key, 18  
¤ (shift) key, 18  
key codes, 301, 556 562  
map, 324, 325, inside front cover, inside back  
cover  
dot product, dotP( ), 439  
expression to list, exp4list( ), 444  
inserting, 246, 247  
shortcuts, 325, inside front cover, inside back  
cover  
list to matrix, list4mat( ), 249, 463  
locking, 248  
matrix to list, mat4list( ), 467  
maximum, max( ), 467  
minimum, min( ), 469  
new data, NewData, 240, 249, 289, 471  
new, newList( ), 471  
operations, 410  
product, product( ), 482  
sort ascending, SortA, 506  
sort descending, SortD, 506  
sorting columns, 251  
summation, sum( ), 492, 508  
L
lab reports, 330, 331  
label, Lbl, 287, 296, 299, 459  
Labels graph format, 114  
language, 4  
Language mode, 42, 554  
last answer, 20, 28, 49, 51  
last entry, 20, 49, 50  
Lbl, label, 287, 296, 299, 459  
lcm, least common multiple, 460  
Leading Cursor graph format, 114  
least common multiple, lcm, 460  
left( ), left, 71, 293, 460  
less than or equal, , <=, 294, 530. inside front  
cover, inside back cover  
less than, <, 294, 529  
lighter/darker, 4, 15. inside front cover, inside  
back cover  
limit( ), limit, 66, 75, 76, 460  
Line, draw line, 308, 461  
linear regression, LinReg, 261, 462, 570  
LineHorz, draw horizontal line, 308, 461  
LineTan, draw tangent line, 308, 462  
LineVert, draw vertical line, 308, 462  
linking and transmitting, 365 381, 494  
calculator to calculator, 309, 366, 367, 371,  
372  
variables, 239, 241, 242  
LnReg, logarithmic regression, 261, 464, 571  
Local, local variable, 286, 288, 289, 290, 464  
localization, 4  
Lock, lock variable, 289, 464  
log( ), logarithm, 465  
logarithms, 463, 465  
Logistic, logistic regression, 261, 465, 571  
Loop, loop, 299, 466  
LU, matrix lower-upper decomposition, 466  
M
cancelling, 368  
compatibility, 380, 381  
errors, 369, 376, 377  
Flash applications, 367, 370  
folders, 367, 368, 369  
mat4list( ), matrix to list, 467  
MATH menu, 34, 122  
math operations, 411  
matrices. See also data/matrix editor  
augment/concatenate, augment( ), 388, 417  
Auto-calculate, 249  
get/return CBL/CBR value, Get, 272, 309, 451  
incompatibility, 380, 381  
column dimension, colDim( ), 421  
column header, 248, 249, 250  
column norm, colNorm( ), 421  
copying, 252  
creating, 241, 242  
cumulative sum, cumSum( ), 250, 428  
data from a graph, 203  
deleting, 246, 247  
determinant, det( ), 436  
diagonal, diag( ), 436  
program, 309, 371  
send chat, SendChat, 309, 371  
send list variable, Send, 309, 494  
send to calculator, SendCalc, 309, 371  
variables, 367, 368  
LinReg, linear regression, 261, 462, 570  
list difference, @list( ), 463  
list4mat( ), list to matrix, 249, 463  
lists. See also data/matrix editor  
598 Index  
menus, 34  
Algebra, 70, 72  
APPLICATIONS, 34, 38  
CATALOG, 44  
CHAR (character), 34  
Clean Up, 43  
Complex, 71  
CUSTOM, 34, 37, 303, 304  
Extract, 71  
MATH, 34, 122  
M (continued)  
dimension, dim( ), 437  
dot addition, .+, 530  
dot division, .à, 531  
dot multiplication, ., 531  
dot power, .^, 531  
dot subtraction, .N, 531  
eigenvalue, eigVl( ), 442  
eigenvector, eigVc( ), 442  
filling, Fill, 448  
identity, identity( ), 456  
inserting, 246, 247  
toolbar, 34, 37  
Trig, 71  
using, 34  
list to matrix, list4mat( ), 463  
locking, 248  
messages. See also errors and troubleshooting  
BATT, 54, 576, 579  
false, 80  
Garbage collection, 362, 363  
insufficient display memory, <<...>>, 103  
true, 80  
lower-upper decomposition, LU, 466  
matrix to list, mat4list( ), 467  
maximum, max( ), 467  
minimum, min( ), 469  
new data, NewData, 289, 471  
new, newMat( ), 471  
undef (undefined), 80  
mid( ), mid-string, 293, 468  
min( ), minimum, 469  
Minimum (graph math tool), 11, 122, 123  
minute notation, ', 536  
mod( ), modulo, 469  
modes, 40, 550 454  
Angle, 41, 108, 551  
Approximate, 29, 41, 54, 62, 553  
Auto, 29, 41, 54, 63, 553  
Base, 42, 554  
Complex Format, 41, 551  
Current folder, 41, 550  
Custom Units, 42, 554  
Display Digits, 31, 41, 550  
Exact/Approx, 29, 41, 54, 61, 62, 63, 553  
Exponential Format, 31, 41, 551  
get/return, getMode( ), 300, 453  
Graph, 41, 54, 108, 130, 136, 142, 157, 179,  
550  
operations, 411  
pretty print, 240  
product, product( ), 482  
QR factorization, QR, 485  
random, randMat( ), 388, 488  
reduced row echelon form, rref( ), 73, 388,  
493  
row addition, rowAdd( ), 492  
row dimension, rowDim( ), 492  
row echelon form, ref( ), 490  
row multiplication and addition,  
mRowAdd( ), 470  
row norm, rowNorm( ), 493  
row operation, mRow( ), 469  
row swap, rowSwap( ), 493  
sorting columns, 251  
submatrix, subMat( ), 508  
summation, sum( ), 492, 508  
î
transpose, , 509  
variables, 239, 240, 241, 242  
matrix to list, mat4list( ), 467  
max( ), maximum, 467  
Graph 2, 41, 553  
Language, 42, 554  
Number of Graphs, 41, 553  
Pretty Print, 29, 41, 552  
setting in programs, 300  
setting, setMode( ), 300, 305, 496  
Split App, 41, 553  
Maximum (graph math tool), 122, 123  
mean( ), mean, 467  
median( ), median, 467  
MedMed, medium-medium line regression, 262,  
468, 571  
Split Screen, 41, 552  
Unit System, 42, 82, 554  
Vector Format, 41, 552  
modulo, mod( ), 469  
MoveVar, move variable, 289, 469  
mRow( ), matrix row operation, 469  
mRowAdd( ), matrix row multiplication and  
addition, 470  
memory, 349 364  
archiving, Archive, 289, 361, 416  
checking, 353, 354  
insufficient display memory, <<...>>, 103  
resetting, 353, 354  
unarchive, Unarchiv, 289, 361, 516  
VAR-LINK screen, 355, 356, 357, 358, 361  
Memory (zoom), 119, 121  
Memory error, 364  
multiply, , 527  
multistatement functions, 207  
menu item, Item, 302, 303, 459  
Index 599  
operations, 409 540  
N
natural log base, e, 80  
or, Boolean or, 294, 347, 475  
ord( ), numeric character code, 293, 476, 555  
Out-of-memory error, 79  
Output, output, 302, 476  
natural logarithm, ln( ), 463  
ncontour window variable, 158  
nCr( ), combinations, 470  
ncurves window variable, 182  
nDeriv( ), numeric derivative, 75, 470  
negate, M, 25, 528  
P
new  
P4Rx( ), rectangular x coordinate, 476  
P4Ry( ), rectangular y coordinate, 476  
panning, 118  
data, NewData, 240, 249, 273, 289, 471  
folder, NewFold, 101, 289, 471  
list, newList( ), 471  
parallelepiped activity, 390  
parametric graphing, 127 132  
parentheses, brackets, and braces, 27, 568  
part( ), part, 477  
PassErr, pass error, 310, 479  
paste, 95, 96, 321. inside back cover  
PAUSE indicator, 54  
Pause, pause, 302, 310, 479  
percent, %, 528  
permutations, nPr( ), 474  
pictures, 217, 218  
and, AndPic, 306, 415  
cycle, CyclePic, 306, 429  
deleting, 218  
exclusive or, XorPic, 306, 519  
new, NewPic, 289, 306, 471  
recall, RclPic, 306, 489  
replace, RplcPic, 306, 493  
storing, StoPic, 306, 507  
piecewise functions, 202, 206  
pixel  
change, PxlChg, 307, 483  
circle, PxlCrcl, 308, 483  
horizontal line, PxlHorz, 308, 484  
line, PxlLine, 216, 308, 484  
off, PxlOff, 307, 484  
on, PxlOn, 216, 307, 484  
test, pxlTest( ), 307, 484  
text, PxlText, 307, 485  
vertical line, PxlVert, 308, 485  
plots  
matrix, newMat( ), 471  
picture, NewPic, 289, 306, 471  
plot, NewPlot, 266, 305, 472  
problem, NewProb, 43, 472  
NewData, new data, 240, 249, 273, 289, 471  
NewFold, new folder, 101, 289, 471  
newList( ), new list, 471  
newMat( ), new matrix, 471  
NewPic, new picture, 289, 306, 471  
NewPlot, new plot, 266, 305, 472  
NewProb, new problem, 43, 472  
nInt( ), numeric integral, 75, 472  
nmax window variable, 143, 144  
nmin window variable, 143, 144  
norm( ), Frobenius norm, 473  
not (Boolean), not, 294, 473  
not equal, ƒ, à=, 294, 529, 1  
not, Boolean not, 294, 473  
nPr( ), permutations, 474  
nSolve( ), numeric solution, 70, 474  
number bases, 343 348  
Boolean operations, 347  
conversions, 345  
math operations, 346  
Number of Graphs mode, 41, 553  
numbers  
complex, 563 565  
irrational, 61, 62  
negative, 25  
rational, 61, 62, 63  
numeric  
clearing, 265  
derivative, nDeriv( ), 75, 470  
integral, nInt( ), 75, 472  
solution, nSolve( ), 70, 474  
numeric solver, 333 341  
equations, 335, 336  
graphing, 340  
split screens, 340  
variables, 336  
data, 254 257  
new, NewPlot, 266, 305, 472  
off, PlotsOff, 111, 305, 480  
on, PlotsOn, 111, 305, 480  
selecting, 265, 268  
tracing, 269  
viewing window, 269  
Y= Editor, 268, 269  
PlotsOff, plots off, 111, 305, 480  
PlotsOn, plots on, 111, 305, 480  
plotStep window variable, 143, 144  
plotStrt window variable, 143, 144  
O
on/off, 4, 7, 14. inside front cover, inside back  
cover  
OneVar, one-variable statistics, 261, 475  
600 Index  
deleting, 281  
P (continued)  
display graph, DispG, 302, 305, 438  
display Home screen, DispHome, 302, 438  
display I/O screen, Disp, 277, 283, 302, 310,  
437, 555  
point  
change, PtChg, 307, 482  
off, PtOff, 307, 483  
on, PtOn, 307, 483  
display table, DispTbl, 302, 305, 438  
else if, ElseIf, 207, 296, 442  
else, Else, 296, 456  
end custom, EndCustm, 302, 429  
end dialog, EndDlog, 302, 437  
end for, EndFor, 283, 297, 450  
end function, EndFunc, 207, 286, 451  
end if, EndIf, 283, 295, 296, 456  
end loop, EndLoop, 299, 466  
end program, EndPrgm, 276, 287, 481  
end toolbar, EndTBar, 302, 515  
end try, EndTry, 310, 515  
test, ptTest( ), 307, 483  
text, PtText, 307, 483  
polar  
coordinate, R4Pq( ), 487  
coordinate, R4Pr( ), 487  
graphing, 133 138  
vector display, 4Polar, 480  
polyEval( ), evaluate polynomial, 480  
polynomials, 9, 72, 76  
activity, 402  
evaluate, polyEval( ), 480  
random, randPoly( ), 488  
PopUp, popup menu, 301, 481  
power of ten, 10^( ), 537  
power, ^, 534, 569  
PowerReg, power regression, 262, 481, 571  
pretty print, 6, 11, 23, 29  
Pretty Print mode, 29, 41, 552  
previews. See examples, previews, activities  
Prgm, execute program, 276, 287, 481  
prime number test, isPrime( ), 459  
prime numbers, 8  
end while, EndWhile, 298, 518  
entering, 280, 281, 282, 283  
execute assembly language, Exec, 314, 444  
execute program, Prgm, 276, 287, 481  
exit, Exit, 444  
for, For, 283, 297, 450  
format string, format( ), 302, 450  
function, Func, 207, 286, 451  
functions, 280, 285, 286  
get/return configuration, getConfg( ), 300,  
get/return folder, getFold( ), 300, 453  
get/return from calculator, GetCalc, 309, 371,  
get/return key, getKey( ), 301, 453, 556, 559  
get/return mode, getMode( ), 300, 453  
get/return units, getUnits( ), 300, 454  
go to, Goto, 287, 296, 299, 455  
graphical user interface, GUI, 302  
graphs, 305  
if, If, 207, 283, 295, 296, 456  
input, 279, 283, 301  
input, Input, 301, 305, 457  
label, Lbl, 287, 296, 299, 459  
local, Local, 286, 288, 289, 290, 464  
loop, Loop, 299, 466  
looping, 283, 297, 298  
menu item, Item, 302, 303, 459  
menus, 303, 304  
prime, ', 536  
problems (new), NewProb, 43, 472  
problems in operation. See errors and  
troubleshooting  
product code, upgrading, 373, 374  
product ID, 55  
product( ), product, 482  
product, Π( ), 75, 533  
programs and programming, 275 314  
arguments, 284  
assembly language, 313, 314  
branching, 283, 295, 296  
calling another program, 287  
CBL 2/CBL, 309, 399  
CBR, 309, 399  
clear error, ClrErr, 310, 420  
clear graph, ClrGraph, 205, 305, 420  
clear home, ClrHome, 421  
clear I/O, ClrIO, 279, 302, 421  
clear table, ClrTable, 421  
comment, ¦, 282, 539  
conditional tests, 294  
copying, 281  
custom toolbar off, CustmOff, 37, 302, 428  
custom toolbar on, CustmOn, 37, 302, 428  
debugging, 310  
multicommand lines, 282  
operations, 412  
output, 279, 283, 301, 302  
output, Output, 302, 476  
pass error, PassErr, 310, 479  
passing values, 284  
pause, Pause, 302, 310, 479  
popup menu, PopUp, 301, 481  
prompt, Prompt( ), 301, 482  
request, Request, 301, 302, 490  
define dialog box Dialog, 302, 437  
define toolbar, Custom, 302, 429  
define toolbar, Toolbar, 302, 515  
define, Define, 287, 305, 384, 433  
Index 601  
real( ), real, 489  
graph database, RclGDB, 220, 306, 488  
picture, RclPic, 306, 489  
reciprocal, xê, 538  
P (continued)  
return, Return, 286, 287, 491  
running, 278. inside front cover, inside back  
cover  
stop, Stop, 282, 507  
rectangular y coordinate, P4Ry( ), 476  
reduced row echelon form, rref( ), 73, 388, 493  
ref( ), row echelon form, 490  
regressions, 462  
stopping, 278  
subroutines, 287  
tables, 305  
text, Text, 302, 513  
Then, Then, 295, 296, 456  
title, Title, 302, 513  
cubic, CubicReg, 261, 428, 570  
exponential, ExpReg, 261, 446, 570  
try, Try, 310, 515  
variables, 288  
while, While, 298, 518  
linear regression, LinReg, 261, 462, 570  
logarithmic, LnReg, 261, 464, 571  
logistic, Logistic, 261, 465, 571  
medium-medium line, MedMed, 262, 468, 571  
power regression, PowerReg, 262, 481, 571  
quadratic formula activity, 386  
quadratic, QuadReg, 262, 486, 571  
quartic, QuartReg, 262, 487, 571  
Prompt( ), prompt, 301, 482  
propFrac, proper fraction, 9, 70, 74, 394, 482  
PtChg, point change, 307, 482  
PtOff, point off, 307, 483  
PtOn, point on, 307, 483  
ptTest( ), point test, 307, 483  
PtText, point text, 307, 483  
PxlChg, pixel change, 307, 483  
PxlCrcl, pixel circle, 308, 483  
PxlHorz, pixel horizontal line, 308, 484  
PxlLine, pixel line, 216, 308, 484  
PxlOff, pixel off, 307, 484  
PxlOn, pixel on, 216, 307, 484  
pxlTest( ), pixel test, 307, 484  
PxlText, pixel text, 307, 485  
PxlVert, pixel vertical line, 308, 485  
sinusoidal, SinReg, 262, 503, 571  
remain( ), remainder, 490  
remainder, remain( ), 490  
Rename, rename, 289, 490  
replace picture, RplcPic, 306, 493  
Request, request, 301, 302, 490  
reserved names, 567, 568  
return. See get/return  
Return, return, 207, 286, 287, 491  
right( ), right, 71, 293, 491  
rotate( ), rotate, 293, 348, 491  
round( ), round, 492  
row echelon form, ref( ), 490  
rowAdd( ), matrix row addition, 492  
rowDim( ), matrix row dimension, 492  
rowNorm( ), matrix row norm, 493  
rowSwap( ), matrix row swap, 493  
RplcPic, replace picture, 306, 493  
rref( ), reduced row echelon form, 73, 388, 493  
Runge-Kutta method, 180, 191, 193, 573  
Q
QR, QR factorization, 485  
QuadReg, quadratic regression, 262, 486, 571  
QuartReg, quartic regression, 262, 487, 571  
QuickCenter, 118  
Quick-Find Locator, 410  
R
R4Pq( ), polar coordinate, 487  
R4Pr( ), polar coordinate, 487  
radian, ô, 535  
rand( ), random number, 488  
randMat( ), random matrix, 388, 488  
randNorm( ), random norm, 488  
random  
S
sampling activity, 407  
Scatter plots, 266  
matrix, randMat( ), 388, 488  
norm, randNorm( ), 488  
number seed, RandSeed, 388, 488  
number, rand( ), 488  
scientific notation, 25  
scripts, 94, 328, 329  
activity, 392  
tutorial, 392  
scrolling, 7, 103, 227. inside front cover, inside  
back cover  
second notation, ", 536  
Send, send list variable, 309, 494  
SendCalc, send to calculator, 309, 371, 494  
SendChat, send chat, 309, 371, 494  
polynomial, randPoly( ), 488  
randPoly( ), random polynomial, 488  
RandSeed, random number seed, 388, 488  
rational functions activity, 394  
RclGDB, recall graph database, 220, 306, 488  
RclPic, recall picture, 306, 489  
602 Index  
standard annuity activity, 404  
standard deviation, stdDev( ), 506  
statistics, 253 273. See also regressions  
Box Plot, 266  
Calculation Type, 259, 261  
categories, 270, 271  
Category, 259, 260  
combinations, nCr( ), 470  
factorial, !, 8, 531  
frequency, 270, 271  
Histogram plots, 267  
mean, mean( ), 467  
S (continued)  
seq( ), sequence, 494  
sequence graphing, 139 151  
serial number, 55  
service information, 580  
set  
folder, setFold( ), 101, 300, 495  
graph, setGraph( ), 300, 305, 495  
mode, setMode( ), 300, 305, 496  
table, setTable( ), 225, 300, 305, 497  
units, setUnits( ), 300, 497  
Set factors (zoom), 119, 121  
setFold( ), set folder, 101, 300, 495  
setGraph( ), set graph, 300, 305, 495  
setMode( ), set mode, 300, 305, 496  
setTable( ), set table, 225, 300, 305, 497  
setUnits( ), set units, 300, 497  
Shade (graph math tool), 122, 126  
Shade, shade, 308, 498  
median, median( ), 467  
new plot, NewPlot, 266, 472  
one-variable statistics, OneVar, 261, 475  
operations, 412  
permutations, nPr( ), 474  
plots, 264, 265, 266, 267, 268, 269  
plots off, PlotsOff, 111, 305, 480  
plots on, PlotsOn, 111, 305, 480  
random norm, randNorm( ), 488  
random number seed, RandSeed, 388, 488  
random number, rand( ), 488  
Scatter plots, 266  
shift( ), shift, 250, 293, 348, 499  
ShowStat, show statistical results, 262, 500  
sign( ), sign, 500  
simplification  
delayed, 66  
rules, 64  
stopping, 65  
show results, ShowStat, 262, 500  
standard deviation, stdDev( ), 506  
two-variable results, TwoVar, 261, 516  
variables, 260, 263  
variance, variance( ), 517  
xyline plots, 266  
simult( ), simultaneous equations, 73, 500  
sinê( ), arcsine, 501  
sin( ), sine, 501  
sinhê( ), hyperbolic arcsine, 502  
sinh( ), hyperbolic sine, 502  
SinReg, sinusoidal regression, 262, 503, 571  
SLPFLD, slope field, 180, 185, 197  
Smart Graph, 115  
status line, 53, 54, 108  
stdDev( ), standard deviation, 506  
StoGDB, store graph database, 220, 306, 507  
Stop, stop, 282, 507  
StoPic, store picture, 306, 507  
stopping a calculation, 28  
storing  
software version, 55  
Solution Method graph format, 180  
solution, deSolve( ), 75, 196, 434  
solve( ), solve, 9, 58, 61, 62, 63, 66, 68, 70, 73,  
196, 503  
graph database, StoGDB, 220, 306, 507  
picture, StoPic, 306, 507  
symbol, !, 289, 539  
string( ), expression to string, 293, 508  
strings  
solving linear equations, 9, 10, 73  
SortA, sort ascending, 506  
SortD, sort descending, 506  
sorting  
ascending, SortA, 506  
descending, SortD, 506  
append, &, 293, 532  
character code, ord( ), 293, 476, 555  
character string, char( ), 293, 419, 555  
dimension, dim( ), 293, 437  
expression to string, string( ), 293, 508  
format, format( ), 293, 302, 450  
indirection, #, 293, 534, 569  
inputting, InputSt, 292, 301, 371  
left, left( ), 293, 460  
special characters, 21, 324, 325  
spherical vector display, 4Sphere, 506  
Split App mode, 41, 553  
split screen, 209, 211, 231 236, 329, 341  
entry line, 235, 236  
exiting, 234  
pixel coordinates, 234  
setting, 233  
mid-string, mid( ), 293, 468  
operations, 292, 293, 413  
right, right( ), 293, 491  
switch, switch( ), 300, 509  
switching, 235  
Split Screen mode, 41, 552  
square root, ( ), 533  
rotate, rotate( ), 293, 491  
Index 603  
tExpand( ), trigonometric expansion, 71, 513  
text editing, 315 331  
computer, 322  
cut, copy, paste, 95, 96, 321  
find, 321  
highlighting, 320. inside front cover, inside  
back cover  
S (continued)  
shift, shift( ), 293, 499  
string to expression, expr( ), 292, 293, 301,  
381, 446  
within, InString, 293, 458  
Style, style, 112, 305, 508  
subMat( ), submatrix, 508  
submenus, 35  
Text, text, 302, 513  
Then, Then, 295, 296, 456  
animation, 154, 164  
CONTOUR LEVELS, 155, 166  
HIDDEN SURFACE, 155, 166  
WIRE AND CONTOUR, 155, 166  
WIRE FRAME, 155, 166  
TI Connect/TI-GRAPH LINK, 322, 323, 374  
time value of money activity, 405  
TIME, time plots, 142, 146, 190, 191  
Title, title, 513  
tmin window variable, 131  
tmpCnv( ), temperature conversion, 86, 514  
toolbar  
substitutions, 67, 68, 69  
subtract, N, 526  
sum( ), summation, 492, 508  
sum, Σ( ), 75, 533  
switch( ), switch, 300, 509  
symbolic manipulation, 57 80  
sysdata, system data, 203  
system variables, 567, 568  
T
t0 window variable, 181  
TABLE SETUP, table setup, 224  
Table, build table, 305, 510  
table-graph, Graph<->Table, 224  
tables, 221 230  
define, Custom, 302, 429  
off, CustmOff, 37, 428  
on, CustmOn, 37, 428  
@tbl, 224  
automatic, 226  
build, Table, 305, 510  
cell width, 227, 230  
Trace, trace, 117, 305, 390, 398, 399, 402, 515  
tracing, 11, 117, 118, 132, 138, 145, 159, 183  
transmitting. See linking and transmitting  
clearing, ClrTable, 421  
complex numbers, 227  
differential equations, 199  
displaying, DispTbl, 302, 305, 438  
functions, 228  
generating with sequence, 151  
graphing, Graph<->Table, 224  
incrementing, @tbl, 224  
Independent AUTO/ASK, 224, 226, 229  
manual, 229  
trigonometric collection, tCollect( ), 71, 512  
trigonometric expansion, tExpand( ), 71, 513  
troubleshooting. See errors and troubleshooting  
true message, 80  
Try, try, 310, 515  
tstep window variable, 131, 181  
TwoVar, two-variable results, 261, 516  
overview, 223  
programs, 305  
setTable( ), 225  
setting, setTable( ), 300, 305, 497  
setup, 225  
setup, TABLE SETUP, 224  
starting, tblStart, 224  
U
Unarchiv, unarchive variables, 289, 361, 516  
undef (undefined) message, 80  
underscore, _, 536  
tblStart, 224  
Unit System mode, 42, 82, 554  
unit vector, unitV( ), 516  
units, 83  
converting, 85  
defaults, 87, 89  
tanê( ), arctangent, 511  
tan( ), tangent, 510  
Tangent (graph math tool), 122, 125, 132, 138  
tanhê( ), hyperbolic arctangent, 511  
tanh( ), hyperbolic tangent, 511  
taylor( ), Taylor polynomial, 75, 76, 512  
tblStart, table start, 224  
tCollect( ), trigonometric collection, 71, 512  
temperature conversion, tmpCnv( ), 86, 514  
temperature-range conversion, @tmpCnv( ), 86,  
514  
displaying, 87  
get/return, getUnits( ), 454  
measurement, 81 92  
modes, 42, 82, 554  
setting, setUnits( ), 300, 497  
user-defined, 88  
unitV( ), unit vector, 516  
604 Index  
U (continued)  
W
Unlock, unlock, 289, 516  
web plots  
upgrading product code, 373, 374  
user-defined functions, 46, 77, 78, 97 99, 157,  
205, 207, 285, 286, 433  
convergence, 148  
divergence, 148  
user-defined units, 88  
oscillation, 149  
WEB, 142, 146, 147  
WEB, web plots, 142, 146, 147  
when( ), when, 202, 206, 517  
While, while, 298, 518  
window variables  
qmax, 137  
qmin, 137  
qstep, 137  
@x, 566  
diftol, 182  
dtime, 182  
Estep, 182  
eyeψ (rotation), 158, 162, 163  
eyeq (x axis), 158, 162  
eyef (z axis), 158, 162, 163  
fldres, 182  
ncontour, 158  
nmax, 143, 144  
nmin, 143, 144  
plotStep, 143, 144  
plotStrt, 143, 144  
t0, 181  
tmax, 131, 181  
tmin, 131  
tplot, 181  
tstep, 131, 181  
V
Value (graph math tool), 122, 123, 132, 138,  
159, 183  
variables, 47, 48  
archiving and unarchiving, 360  
archiving, Archive, 289, 361, 416  
clearing, 341  
copy, CopyVar, 289, 358, 422  
copying, 358  
data, 240, 241, 242  
defined, 59, 337  
delayed simplification, 66  
delete, DelVar, 60, 77, 102, 289, 291, 434  
deleting, 369  
in applications, 359  
list, 239, 241, 242  
local, Local, 286, 288, 289, 290, 464  
locking, Lock, 289  
locking/unlocking, 54, 358  
matrix, 239, 240, 241, 242  
moving, MoveVar, 289  
overriding, 60  
pasting name, 359  
renaming, 358  
reserved names, 567, 568  
statistical, 260, 263  
storing, 100  
xgrid, 158  
system, 567, 568  
xmax, 113, 131, 137, 143, 144, 158, 182, 566  
xmin, 113, 131, 137, 143, 144, 158, 182, 566  
xres, 113, 131, 158  
xscl, 113, 131, 137, 143, 144, 158, 182  
ygrid, 158  
ymax, 113, 131, 137, 143, 144, 158, 182, 566  
ymin, 113, 131, 137, 143, 144, 158, 182, 566  
yscl, 113, 131, 137, 143, 144, 158, 182  
zmax, 158  
text, 94  
transmitting, 366, 368  
unarchive, Unarchiv, 289, 361, 516  
undefined, 59, 337  
unknown, solving for, 337, 339  
unlocking, Unlock, 289  
VAR-LINK, 102, 355, 356, 357, 358, 361  
variance( ), variance, 517  
Vector Format mode, 41, 552  
vectors  
cross product, crossP( ), 425  
cylindrical vector display, 4Cylind, 429  
dot product, dotP( ), 439  
unit, unitV( ), 516  
zmin, 158  
wire-and-contour graphing, 155, 166  
wire-frame graphing, 155, 166  
with, |, 10, 58, 60, 67, 538, 569  
within string, inString( ), 293, 458  
Vector Format mode, 41, 552  
viewing angle, 162  
viewing orbit, 164  
Index 605  
ZoomRcl, zoom recall, 121, 524  
ZoomSqr, zoom square, 119, 524  
ZoomStd, zoom standard, 119, 525  
ZoomSto, zoom store, 121, 525  
ZoomTrig, zoom trig, 119, 525  
X
xgrid window variable, 158  
xmax window variable, 113, 131, 137, 143, 144,  
158, 182, 566  
xmin window variable, 113, 131, 137, 143, 144,  
158, 182, 566  
xor, Boolean exclusive or, 294, 347, 518  
XorPic, exclusive or picture, 306, 519  
xres window variable, 113  
xscl window variable, 113, 131, 137, 143, 144,  
182, 566  
xyline plots, 266  
Y
Y= editor, 106, 109, 130, 136, 142, 157, 179, 204  
ygrid window variable, 158  
ymax window variable, 113, 131, 137, 143, 144,  
158, 182, 566  
ymin window variable, 113, 131, 137, 143, 144,  
158, 182, 566  
yscl window variable, 113, 131, 137, 143, 144,  
182, 566  
Z
Zero (graph math tool), 122, 123  
zeroes  
activity, 402  
zeroes( ), zeroes, 61, 70, 74, 384, 519  
zmax window variable, 158  
zmin window variable, 158  
zoom  
box, ZoomBox, 119, 120, 521  
data, ZoomData, 119, 522  
decimal, ZoomDec, 119, 522  
factors, 119, 121  
fit, ZoomFit, 119, 523  
in, ZoomIn, 119, 120, 523  
integer, ZoomInt, 119, 523  
Memory, 119, 121  
out, ZoomOut, 119, 120, 524  
previous, ZoomPrev, 121, 524  
recall, ZoomRcl, 121, 524  
square, ZoomSqr, 119, 524  
standard, ZoomStd, 119, 525  
store, ZoomSto, 121, 525  
trig, ZoomTrig, 119, 525  
Zoom menu, 119  
ZoomBox, zoom box, 119, 120, 521  
ZoomData, zoom data, 119, 522  
ZoomDec, zoom decimal, 119, 522  
ZoomFit, zoom fit, 119, 523  
ZoomIn, zoom in, 119, 120, 523  
ZoomInt, zoom integer, 119, 523  
ZoomOut, zoom out, 119, 120, 524  
ZoomPrev, zoom previous, 121, 524  
606 Index  

Yorkville Sound Car Amplifier NX55P User Manual
Texas Instruments PLUS TI 92 User Manual
Sony HDR CX250 User Manual
Sony ERA MS008 User Manual
Sony CCD TR3300 User Manual
Sharp VIEWCAMZ VL Z5E User Manual
Sharp Calculator EL 1801P User Manual
Sanyo VPC CG65PX. User Manual
Sanyo LNS T03 User Manual
Samsung SPF 87H User Manual