Texas Instruments TITANIUM TI 89 User Manual

TI-89 Titanium  
Graphing Calculator  
 
Consult the dealer or an experienced radio/television technician for help.  
Caution: Any changes or modifications to this equipment not expressly approved  
by Texas Instruments may void your authority to operate the equipment.  
© 2005 Texas Instruments Incorporated  
Windows and Macintosh are trademarks of their respective owners.  
TI-89 Titanium Graphing Calculator  
3
 
Getting Started  
Initial start-up  
Installing the AAA Batteries  
The TI-89 Titanium uses four AAA alkaline batteries and a backup silver oxide battery  
(SR44SW or 303). The backup battery is already installed, and the AAA batteries are  
provided with the product.  
1. Remove the battery cover from the back of the calculator.  
2. Unwrap the four AAA batteries provided with your product and insert them in the  
battery compartment. Arrange the batteries according to the polarity (+ and -)  
diagram in the battery compartment.  
3. Replace the battery cover on the calculator. The cover should snap into place.  
Getting Started  
4
   
Turning on your TI-89 Titanium for the first time  
After installing the batteries included with the calculator, press ´. The Apps desktop  
appears.  
Note: If your calculator initializes the preinstalled Apps, a progress bar will appear with  
the message “Installation in progress . . . Do not interrupt!” instead of the  
Apps desktop. To avoid losing Apps, do not remove the batteries during initialization.  
(You can re-install Apps from either the Product CD-ROM or education.ti.com.)  
Progress bar  
Adjusting the contrast  
V
A
R
C
-
L
A
I
N
K
To lighten the display, press and hold 8 and tap  
|.  
H
R
To darken the display, press and hold 8 and tap  
«.  
The Apps desktop  
The Apps desktop is the starting point for operating your TI-89 Titanium. Your installed  
Apps appear on the Apps desktop as icons organized in categories for easy access.  
From the Apps desktop, you can:  
Open Apps.  
Getting Started  
5
   
Select and edit categories of Apps.  
View all of the Apps installed on your calculator.  
View the full name of the highlighted App.  
View and edit the time and date.  
Check status line information.  
View split-screen mode information.  
Ê
Ë
Ï
Ì
Í
Î
TI-89 Titanium Apps desktop  
Ê View full name of highlighted App.  
Ë View time and date.  
Ì Press ¸ to open highlighted App.  
Í Scroll down to view additional Apps.  
Î Check status line information.  
Getting Started  
6
   
Ï Edit categories.  
To return to the Apps desktop at any time, press O. The last category selected  
appears with the last open App highlighted.  
Turning off the calculator  
Press 2 ®. The next time you turn on the calculator, the Apps desktop appears with  
the same settings and memory contents retained. (If you turned off the Apps desktop,  
the calculator Home screen appears.)  
You can use either of the following keys to turn off the TI-89 Titanium.  
Press:  
Description  
Settings and memory contents are retained by  
the Constant Memory™ feature.  
2 ® (press 2  
and then press ®)  
You cannot, however, use 2 ® if an error  
message is displayed.  
When you turn the TI-89 Titanium on again, it  
displays either the Home screen or the Apps  
desktop (regardless of the last application you  
used).  
¥ ® (press ¥  
Similar to 2 ® except:  
and then press ®)  
You can use ¥ ® if an error message is  
displayed.  
When you turn the TI-89 Titanium on again, it  
will be exactly as you left it.  
Getting Started  
7
     
Note: ® is the second function of the ´ key.  
The calculator’s Automatic Power Down™ (APD™) feature prolongs battery life by  
turning the calculator off automatically following several minutes of inactivity. When you  
turn on the calculator after APD:  
The display, cursor, and any error conditions are exactly the same as before APD.  
All settings and memory contents are retained.  
Note: APD does not occur if a calculation or program is in progress, unless the program  
is paused. If a program is running but waiting for a key press, APD will occur after  
several minutes of inactivity.  
Getting Started  
8
TI-89 Titanium keys  
Ê
Í
Ë
Ì
Getting Started  
9
     
TI-89 Titanium keys  
Ê Function keys (ƒŠ) open toolbar menus, access Apps, and edit categories of  
Apps.  
Ë Cursor keys (A, B, C, D) move the cursor.  
Ì Numeric keypad performs math and scientific functions.  
Í Modifier keys (2, 8, 7) add features by increasing the number of key commands.  
Entering special characters  
Use the CHAR (Character) menu and key commands to enter special characters. The  
CHAR menu lets you access Greek, math, international, and other special characters.  
An on-screen keyboard map shows the locations of shortcuts used to enter other  
commonly used characters.  
To select characters from the CHAR menu:  
1. Press 2 G. The CHAR menu appears.  
2. Use the cursor keys to select a category. A submenu lists the characters in that  
category.  
3. Use the cursor keys to select a character, and press ¸.  
Getting Started  
10  
   
Example: Enter the right arrow symbol () in the Text Editor.  
Press  
Result  
2 G  
4
Scroll down for  
more characters.  
9
– or –  
Press D repeatedly to  
select 9:→  
Symbol displayed at cursor  
location.  
and press ¸  
To open the keyboard map, press 8 ”. The keyboard map appears.  
Getting Started  
11  
   
To type most characters, press 8 and the corresponding key. Press N to close the  
map.  
Example: Use the keyboard map to find the “not equal to” symbol (ƒ) shortcut and enter  
the symbol in the Program Editor.  
Press  
Result  
8 ”  
¥ Á  
Symbol  
displayed at  
cursor location.  
Getting Started  
12  
         
Modifier keys  
Modifier keys add features by increasing the number of keyboard operations at your  
fingertips. To access a modifier function, press a modifier key and then press the key for  
the corresponding operation.  
Keys  
Description  
Accesses Apps, menu options, and other  
operations. Second functions are printed above  
their corresponding keys in the same color as  
the 2 key.  
2
(Second)  
Accesses Apps, menu options, and other  
operations. Diamond functions are printed  
above their corresponding keys in the same  
color as the 8 key.  
8
(Diamond)  
Types an uppercase character for the next letter  
key you press. Also used with A and B to  
highlight characters when editing.  
¤
(Shift)  
Lets you type alphabetic characters without a  
QWERTY keypad. Alpha characters are printed  
above their corresponding keys in the same  
color as the j key.  
j
(Alpha)  
Getting Started  
13  
     
Example: Access the VAR-LINK [All] screen, where you can manage variables and Apps.  
Press  
Result  
2 °  
Function keys  
Use the function keys to perform the following operations:  
On the Apps desktop, open Apps and select or edit Apps categories.  
On the calculator Home screen, open toolbar menus to select math-related  
operations.  
Within Apps, open toolbar menus to select App options.  
Numeric keypad  
The numeric keypad lets you enter positive and negative numbers.  
To enter a negative number, press ? before typing the number.  
Note: Don’t confuse the negation key (?) with the subtraction key (|).  
Getting Started  
14  
 
To enter a number in scientific notation:  
1. Type the numbers that precede the exponent. (This value can be an expression.)  
2. Press ^. The exponent symbol (í) follows the numbers you entered.  
3. Type the exponent as an integer with up to three digits. (As the following example  
shows, you can use a negative exponent.)  
Example: On the calculator Home screen, enter 0.00685 using scientific notation.  
Press  
Result  
6 8 5  
^
? 3  
¸
Other important keys  
Key Command  
Description  
Displays the Y= Editor.  
8 #  
Getting Started  
15  
         
Key Command  
8 $  
8 %  
Description  
Displays the Window Editor.  
Displays the Graph screen.  
Sets parameters for the Table  
screen.  
8 &  
Displays the Table screen.  
8 '  
These keys let you edit entered  
information by performing a cut,  
copy, or paste operation.  
¥ 5  
¥ 6  
¥ 7  
Displays the Apps desktop.  
O
With the Apps desktop off,  
displays the FLASH  
8 O  
APPLICATIONS menu.  
Switches between the last two  
chosen Apps.  
2 a  
Turns the custom menu on and off.  
Converts measurement units.  
Designates a measurement unit.  
2 ¾  
2 4  
¥   
Deletes the character to the left of  
the cursor (backspace).  
0
Deletes the character to the right  
of the cursor.  
8 .  
2 /  
Switches between insert and  
overwrite modes.  
Getting Started  
16  
               
Key Command  
2 ¯  
Description  
Displays the MEMORY screen.  
Displays a list of commands.  
½
Recalls the contents of a variable.  
Stores a value to a variable.  
2 £  
§
Displays the CHAR menu, which  
lets you select Greek letters,  
international accented characters,  
and other special characters..  
2 G  
In full-screen mode, displays  
the Apps desktop.  
2 K  
In split-screen mode, displays  
the full-screen view of the active  
App.  
With the Apps desktop off,  
displays the calculator Home  
screen.  
Mode settings  
Modes control how the TI-89 Titanium displays and interprets information. All numbers,  
including elements of matrices and lists, are displayed according to the current mode  
settings. When the TI-89 Titanium is turned off, the Constant Memory™ feature retains  
all of the mode settings you have selected.  
To view the TI-89 Titanium mode settings:  
Getting Started  
17  
 
1. Press 3. Page 1 of the MODE dialog box appears.  
2. Press or to display the modes listed on Page 2 or Page 3.  
Note: Modes that are grayed out are available only if other required mode settings are  
selected. For example, the Custom Units mode listed on Page 3 is available only if the  
Unit System mode is set to CUSTOM.  
Viewing mode settings  
Press  
Result  
3
ã„  
Getting Started  
18  
 
Press  
Result  
Changing mode settings  
Example: Change the Language mode setting to Spanish (Español).  
Press  
Result  
3
Getting Started  
19  
Press  
Result  
Scroll down to the Language  
field.  
D
Press B  
and then press D until  
3:Español is highlighted.  
Note: Your menu list might  
vary, depending on the  
languages installed.  
¸
Getting Started  
20  
   
Press  
Result  
¸
Note: The previous open App  
appears (in this example, the  
calculator Home screen).  
To return the Language mode setting to English, repeat the steps, selecting 1:English in  
the Language field.  
Using the Catalog to access commands  
Use the Catalog to access a list of TI-89 Titanium commands, including functions,  
instructions, and user-defined programs. Commands are listed alphabetically.  
Commands not beginning with a letter are found at the end of the list (&, /, +, –, etc.).  
The Catalog Help App includes details about each command.  
Options not currently valid are grayed out. For example, the Flash Apps  
() menu option is grayed out if no Flash applications are installed on your TI-89  
Titanium; the User-Defined () menu option is grayed out if you have not created a  
function or program.  
Getting Started  
21  
 
Note: Typing a letter takes you to the first command in the list starting with the same  
letter.  
Press  
Result  
½
(displays Built-in commands)  
(displays Flash Apps  
commands, if any)  
(displays User-Defined  
commands, if any)  
Select commands from the Catalog and insert them onto the calculator Home screen  
entry line or paste them to other Apps, such as the Y= Editor, Text Editor, or CellSheet  
Apps.  
Getting Started  
22  
 
Example: Insert the comDenom( command on the calculator Home screen entry line.  
Note: Before selecting a command, position the cursor where you want the command to  
appear.  
Pressing 2 D advances the Catalog list one page at a time.  
Press  
Result  
½ C  
2 D  
Then press D until the pointer is  
at the comDenom( function.  
¸
The status line displays any required and optional parameters for the selected  
command. Optional parameters appear in square brackets.  
Note: Pressing ƒ will also display the parameters for the selected command.  
Getting Started  
23  
     
Selected  
command  
Command  
parameters  
Brackets [ ] indicate optional parameters  
To exit the Catalog without selecting a command, press N.  
Calculator Home screen  
The calculator Home screen is the starting point for math operations, including executing  
instructions, evaluating expressions, and viewing results.  
To display the calculator Home screen, press: "  
You can also display the calculator Home screen from the Apps desktop by highlighting  
the Home icon and pressing ¸.  
Getting Started  
24  
Ë
Ê
Ï
Ì
Î
Í
Ê History area lists the entry/answer pairs entered.  
Ë Tabs display menus for selecting lists of operations. Press ƒ, , and so on to  
display menus.  
Ì Result of last entry is displayed here. (Note that results are not displayed on the entry  
line.)  
Í Status line shows the current state of the calculator.  
Î Entry line displays your current entry.  
Ï Your previous entry is displayed here.  
To return to the Apps desktop from the calculator Home screen, press O.  
Getting Started  
25  
       
About the history area  
The history area displays up to eight entry/answer pairs, depending on the complexity  
and height of the expressions. When the display is filled, information scrolls off the top of  
the screen. Use the history area to:  
Review previous entries and answers. Use the cursor keys to view entries and  
answers that have scrolled off the screen.  
Recall or auto-paste a previous entry or answer onto the entry line to reuse or edit.  
(For more information, see the electronic Operating the Calculator chapter.)  
The cursor, which normally rests on the entry line, can be moved into the history area.  
The following table shows you how to move the cursor around in the history area.  
To  
Do this  
View entries/answers  
scrolled off the screen  
From the entry line, press C to highlight the last  
answer.  
Continue using C to move the cursor from  
answer to entry through the history area.  
Go to the oldest or  
newest entry/answer pair  
If the cursor is in the history area, press 8 C or  
8 D.  
View an entry or answer  
too long for one line (8  
is displayed at the end of  
the line)  
Move the cursor to the entry or answer. Use A  
or B to scroll left or right and 2 A or 2 B to  
go to the beginning or end.  
Return cursor to the entry  
line  
Press N, or press D until the cursor is back  
on the entry line.  
Getting Started  
26  
   
Interpreting history information on the status line  
Use the history indicator on the status line for information about the entry/answer pairs.  
For example:  
If the cursor is on the entry line:  
________  
_______  
_______  
Total number of pairs  
currently saved  
Maximum number of  
pairs that can be saved  
8/30  
If the cursor is in the history area:  
_______  
Pair number of the  
highlighted  
Total number of pairs  
currently saved  
8/30  
entry/answer  
Modifying the history area  
To change the number of pairs that can be saved:  
1. From the calculator Home screen, press ƒ and select 9:Format.  
2. Press B and use C or D to highlight the new number.  
3. Press ¸ ¸.  
To clear the history area and delete all saved pairs:  
From the calculator Home screen, press ƒ and select 8:Clear Home.  
– or –  
Getting Started  
27  
       
Enter ClrHome on the calculator Home screen entry line.  
To delete an entry/answer pair, move the cursor to either the entry or answer, and press  
0 or M.  
Working with Apps  
The TI-89 Titanium organizes Apps by category on the Apps desktop. To select a  
category, press a function key (through 2 Š ). The App icons for the selected  
category appear on the Apps desktop.  
Note: If the name under an Apps desktop icon is truncated, use the cursor keys to  
highlight the icon. Now view the full name at the top of the Apps desktop.  
Opening Apps  
Use the cursor keys or press the first letter of the App name to highlight the Apps icon on  
the Apps desktop and press ¸. The App either opens directly or displays a dialog  
box. The most common dialog box lists these options for the App:  
Note: The TI-89 Titanium uses the general term variable to refer to the App data files that  
you create.  
Option  
Description  
Current  
Returns the screen displayed when you last viewed  
the App. If no current App variable exists, the New  
dialog box appears.  
Open  
Lets you open an existing file.  
Getting Started  
28  
Option  
Description  
New  
Creates a new file with the name typed in the field.  
Select an option, enter any required information, and press ¸. The App appears.  
Example: Create a new program using the Program Editor.  
Press  
Result  
Use cursor keys to highlight  
¸
3
Getting Started  
29  
Press  
Result  
¸
D D  
p r o g r a m 1  
¸ ¸  
The newly created program variable, program1, is saved to the Main folder.  
Getting Started  
30  
         
Returning to the Apps desktop from within an App  
Press O. The icons for the last Apps category selected appear on the Apps desktop  
with the icon for the last App opened highlighted.  
You can also return to the Apps desktop by pressing 2 K in full-screen mode. In  
split-screen mode, press 2 K twice.  
To return to the last open App from the Apps desktop, press 2 a.  
Selecting an Apps category  
On the TI-89 Titanium, the Apps category names appear only in the F1 Menu. To select  
an Apps category, press ƒ 2:Select Category and use the cursor keys to highlight an  
Apps category, and then press ¸ to select the highlighted category. You can also  
use the function key shortcuts to select a category from the keypad (use the 2 key if  
necessary). The App icons for the selected category appear on the Apps desktop.  
The App icons for the selected category appear on the Apps desktop.  
Key  
Description  
Icons for all installed Apps displayed. Not  
customizable.  
All  
Customizable category. English is the default.  
English  
Customizable category. SocialSt (social studies)  
is the default.  
SocialSt  
Customizable category. Math is the default.  
Math  
Getting Started  
31  
       
Key  
Description  
Customizable category. Graphing is the default.  
2 ˆ Graphing  
Customizable category. Science is the default.  
2 ‰ Science  
Customizable category. Organizr (organizer) is  
the default.  
2 Š Organizr  
Example: Select the All category.  
Press  
Result  
If you select an Apps category containing no Apps, a message appears to confirm that  
the category is empty and point you to the ƒ 1:Edit Categories menu, where you can  
add App shortcuts to the category. (See “Customizing the Apps categories” on page 33.)  
Press ¸ or N to clear the message and return to the Apps desktop.  
Getting Started  
32  
     
Customizing the Apps categories  
The TI-89 Titanium organizes your Apps into seven categories, six of which you can  
customize to fit your individual needs. (The All category contains every installed App and  
cannot be edited.)  
To customize the through 2 Š Apps categories:  
1. Select ƒ 1:Edit Categories. A submenu displays the six customizable Apps  
category names. (The All category is not listed.)  
2. Highlight an Apps category and press ¸. The Edit Categories dialog box  
appears with a list of installed Apps and a text box with the category name  
highlighted.  
3. To change the Apps category name, type the desired name.  
Note: Enter a name of up to eight characters, including letters with or without  
capitalization, numbers, punctuation, and accented characters.  
4. To add or remove an App shortcut from the category, press D as required to  
highlight the box next to the App, then press B to add or remove the check mark (9).  
5. To save the changes and return to the Apps desktop, press ¸.  
Getting Started  
33  
 
Example: Replace the Social Studies category with the Business category and add the  
CellSheetand Finance App shortcuts.  
Press  
Result  
ƒ
B
2
– or –  
D ¸  
Getting Started  
34  
Press  
Result  
2 ™  
¤ B u s i n e s s  
D
©
B
D
©
B
Getting Started  
35  
 
Press  
Result  
¸
Open Apps and split-screen status  
Your TI-89 Titanium lets you split the screen to view two Apps simultaneously. For  
example, view the Y= Editor and Graph screens simultaneously to see the list of  
functions and how they are graphed.  
Select the Split Screen mode from Page 2 of the MODE screen. The TI-89 Titanium  
displays the selected Apps in the split-screen view as shown. Split the screen  
horizontally (top-bottom) or vertically (left-right).  
Getting Started  
36  
   
Top-bottom split screen  
To return to the Apps desktop, press O. The split-screen status appears at the top of  
the Apps desktop with the names of the open Apps and the portions of the screen in  
which each is displayed. The highlighted numeral indicates the split-screen portion  
where the next App you open will appear.  
Note: The Apps desktop always appears in the full-screen view.  
Split-screen status (highlight  
indicates the portion where the  
next App selected will open.)  
Names of open Apps  
Getting Started  
37  
             
More information is available about using split screens. (For more information, see the  
electronic Split Screens chapter.)  
Checking status information  
Look to the status line, located at the bottom of the screen, for information about the  
current state of your TI-89 Titanium.  
Ì
Í
Ï
Ñ
Ê
Ë
Î
Ò
Ð
Indicator  
Meaning  
Name of the selected folder (MAIN is the  
default folder.)  
Ê Current folder  
Ë Modifier key  
Selected modifier key (2, 8, 7), if any.  
Selected units in which angle values are  
displayed and interpreted (RAD, DEG, GRAD)  
Ì Angle mode  
Mode in which answers are calculated and  
displayed (AUTO, EXACT, APPROX)  
Í Exact/Approx mode  
Î Graph number  
Ï Graph mode  
Active of two independent graphs in split-  
screen mode (GR#1, GR#2)  
Selected type of graph that can be plotted  
(FUNC, PAR, POL, SEQ, 3D, DE)  
Getting Started  
38  
     
Indicator  
Meaning  
22/30–Number of entry/answer pairs (default is  
30, maximum is 99) in the history area of the  
calculator Home screen.  
Ð Entry/Answer pairs  
Displayed when batteries are low (BATT). If  
BATT is highlighted with a black background,  
change the batteries as soon as possible  
Ñ Replace batteries  
(
).  
BUSY–Calculation or graph is in progress  
PAUSE–You paused a graph or program  
Œ–Variable opened in the current editor is  
locked or archived and cannot be modified  
Ò Busy/Pause,  
Locked/Archived  
variable  
Turning off the Apps desktop  
You can turn off the Apps desktop from the MODE dialog box. If you do, open Apps from  
the APPLICATIONS menu. To open the APPLICATIONS menu, press O.  
Example: Turn off the Apps desktop.  
Press  
Result  
3
Getting Started  
39  
 
Press  
Result  
D D B C  
¸ ¸  
Note: The previous open App  
appears (in this example, the  
calculator Home screen).  
To turn on the Apps desktop, repeat the procedure, selecting ON in the Apps Desktop  
mode field. To return to the Apps desktop from the calculator Home screen, press O.  
Using the clock  
Use the CLOCK dialog box to set the time and date, select the clock display format, and  
turn the clock off and on.  
Getting Started  
40  
 
The clock is turned on by default. If you turn off the clock, all Clock dialog box options  
except Clock ON/OFF are grayed out.  
6 indicates you  
can scroll down  
for more options)  
Displaying the CLOCK dialog box  
1. Use the cursor keys to highlight the Clock icon on the Apps desktop.  
2. Press ¸. The CLOCK dialog box appears with the Time Format field highlighted.  
Note: Because the CLOCK dialog box displays the settings current at the time you open  
the dialog box, you might need to update the time before exiting.  
Setting the time  
1. Press B to open the list of time formats.  
2. Press C or D to highlight an option, then press ¸. The selected format appears  
in the Time Format field.  
3. Press D to highlight the Hour field.  
4. Type the hour, then press D to highlight the Minute field.  
5. Type the minute(s).  
Getting Started  
41  
6. If the time format is 24 hours, proceed to step 9.  
— or —  
If the time format is 12 hours, press D to highlight the AM/PM field.  
7. Press B to open the list of AM/PM options.  
8. Press C or D to highlight an AM/PM option, then press ¸. The selected AM/PM  
option appears.  
9. Set the date (for procedures, see Setting the date).  
— or —  
To save your settings and exit, press ¸. The time is updated in the top right  
corner of the Apps desktop.  
Setting the date  
1. Press C or D as required to highlight the Date Format field.  
2. Press B to open the list of date formats.  
3. Press C or D to highlight an option, then press ¸. The selected format appears  
in the Date Format field.  
4. Press D to highlight the Year field.  
5. Type the year, then press D to highlight the Month field.  
6. Press B to open the list of months.  
7. Press C or D to highlight an option, then press ¸. The selected month appears  
in the Month field.  
8. Press D to highlight the Day field.  
Getting Started  
42  
 
9. Type the day, then press ¸ ¸ to save your settings and exit. The date is  
updated in the top right corner of the Apps desktop.  
Example: Set the time and date to 19/10/02 (October 19, 2002) at 1:30 p.m.  
Press  
Result  
Use cursor keys to highlight  
Time and date  
¸
D 1 D  
Getting Started  
43  
Press  
Result  
3 0 D  
B D  
¸ D  
Getting Started  
44  
Press  
Result  
B D  
¸ D  
2 0 0 2  
Getting Started  
45  
Press  
Result  
D B  
Scroll down to October  
and press ¸  
D 1 9  
Getting Started  
46  
   
Press  
Result  
¸ ¸  
Revised time and date  
Turning off the clock  
From the Apps desktop, open the CLOCK dialog box and select OFF in the Clock field.  
Example: Turn off the clock.  
Press  
Result  
Use cursor keys to highlight  
Clock on  
Getting Started  
47  
   
Press  
Result  
¸
Scroll down to the Clock field.  
B C ¸  
¸
Clock off  
To turn on the clock, repeat the procedure, selecting ON in the Clock field. Remember to  
reset the time and date.  
Getting Started  
48  
     
Using menus  
To select most TI-89 Titanium menus, press the function keys corresponding to the  
toolbars at the top of the calculator Home screen and most App screens. Select other  
menus using key commands.  
Toolbar menus  
The starting point for TI-89 Titanium math operations, the calculator Home screen  
displays toolbar menus that let you choose math-related options.  
Toolbar menus also appear at the top of most App screens. These menus list common  
functions of the active App.  
Other menus  
Use key commands to select the following menus. These menus contain the same  
options regardless of the screen displayed or the active App.  
Press  
To display  
CHAR menu. Lists characters not available on the  
keyboard; characters are organized by category  
(Greek, math, punctuation, special, and  
international).  
2 G  
MATH menu. Lists math operations by category.  
2 I  
Getting Started  
49  
   
Press  
To display  
APPLICATIONS menu. Lists the installed Apps.  
(Menu is available only when the Apps desktop is  
turned off; Apps are normally accessed from the  
Apps desktop.)  
O
FLASH APPLICATIONS menu. Lists the installed  
Flash Apps. (Menu is available only when Apps  
desktop is turned off; Flash Apps are normally  
accessed from the Apps desktop.)  
8 O  
Selecting menu options  
Press the number or letter to the left of the option you want to select.  
— or —  
Press C or D to select the option, and press ¸.  
Note: If the first menu option is selected, press C to select the last option on the menu. If  
the last menu option is selected, press D to select the first option on the menu.  
Getting Started  
50  
 
Example: Select factor( from the Algebra menu on the calculator Home screen.  
Press  
Result  
Press:  
"
– or –  
From the Apps desktop, use the  
cursor keys to highlight  
and press ¸  
6 indicates  
Algebra menu will  
open when you  
press .  
2
– or –  
D ¸  
Getting Started  
51  
Selecting submenu options  
A small arrow symbol (ú) to the right of a menu option indicates that selecting the option  
will open a submenu.  
$ points to  
additional options.  
Example: Select ord( from the MATH menu on the calculator Home screen.  
Press  
Result  
2 I  
Getting Started  
52  
 
Press  
Result  
D
– or –  
C C B  
B
– or –  
C ¸  
Using dialog boxes  
An ellipsis (…) at the end of a menu option indicates that choosing the option will open a  
dialog box. Select the option and press ¸.  
Getting Started  
53  
 
Example: Open the SAVE COPY AS dialog box from the Window Editor.  
Press  
Result  
O
Use the cursor keys to highlight  
and press ¸  
ƒ
2
Type the name of  
the variable.  
Press B to display  
a list of folders.  
– or –  
D ¸  
Press ¸ twice to save and  
Getting Started  
54  
   
Note: Pressing the 8 S key shortcut also opens the SAVE COPY AS dialog box in most  
Apps.  
Canceling a menu  
To cancel a menu without making a selection, press N.  
Moving among toolbar menus  
To move among the toolbar menus without selecting a menu option:  
Press the function key (ƒ through Š) of a toolbar menu.  
Press a function key, then press B or A to move from one toolbar menu to the next.  
Press B from the last menu to move to the first menu. Press A to move from the first  
menu to the last menu.  
Note: If you press B when a menu option with a submenu is selected, the submenu will  
appear instead of the next toolbar menu. Press B again to move to the next menu.  
More information is available about menus. (See the electronic Operating the Calculator  
chapter.)  
Custom menu  
The custom menu provides quick access to your most commonly used options. Use the  
default custom menu or create your own using the Program Editor. You can include any  
available TI-89 Titanium command or character.  
Getting Started  
55  
     
The custom menu replaces the standard toolbar menu on the calculator Home screen.  
(For details on creating a custom menu, see the electronic Programming chapter.) More  
information is available about custom menus. (See the electronic Operating the  
Calculator chapter.)  
Example: Turn on and turn off the custom menu from the calculator Home screen.  
Press  
Result  
2 F  
Default custom menu  
2 F  
Normal toolbar menu  
Example: Restore the default custom menu.  
Getting Started  
56  
Note: Restoring the default custom menu erases the previous custom menu. If you  
created the previous custom menu with a program, you can run the program again to  
reuse the menu.  
Press  
Result  
2 F  
(to turn off the custom menu and  
turn on the standard toolbar  
menu)  
2 ˆ  
3
– or –  
D D ¸  
Getting Started  
57  
 
Press  
Result  
¸
Opening Apps with the Apps desktop turned off  
If you turn off the Apps desktop, use the APPLICATIONS menu to open Apps. To open  
the APPLICATIONS menu with the Apps desktop off, press O.  
Note: If you press O with the Apps desktop turned on, the Apps desktop will appear  
instead of the APPLICATIONS menu.  
Example: With the Apps desktop turned off, open the Window Editor from the  
APPLICATIONS menu.  
Press  
Result  
O
Getting Started  
58  
   
Press  
Result  
3
– or –  
D D ¸  
To access Apps not listed on the APPLICATIONS menu, select 1:FlashApps.  
Using split screens  
The TI-89 Titanium lets you split the screen to show two Apps at the same time. For  
example, display both the Y= Editor and Graph screens to compare the list of functions  
and how they are graphed.  
Setting split-screen mode  
You can split the screen either top to bottom or left to right from the MODE dialog box.  
The split-screen setting stays in effect until you change it.  
1. Press 3 to display the MODE dialog box.  
2. Press to display the Split Screen mode setting.  
3. Press B to open the Split Screen mode menu.  
4. Press D as required to highlight either TOP-BOTTOM or LEFT-RIGHT.  
5. Press ¸. The Split Screen mode setting displays the option you selected.  
6. Press ¸ again to save this change and display the split screen.  
Getting Started  
59  
Example: Set split-screen mode to TOP-BOTTOM.  
Press  
Result  
3
B D  
Getting Started  
60  
 
Press  
Result  
¸
¸
Setting the initial Apps for split screen  
After you select either TOP-BOTTOM or LEFT-RIGHT split-screen mode, additional  
mode settings become available.  
Full-screen mode  
Split-screen mode  
Getting Started  
61  
 
Mode  
Description  
Split 2 App  
Lets you specify the App displayed in the bottom or  
right portion of the split screen. Works together with  
Split 1 App, which lets you specify the App displayed  
in the top or left portion of the split screen.  
Number of Graphs  
Lets you set up and display two independent graphs.  
To set the initial App for each split-screen portion:  
1. Select the Split 1 App mode setting and press B to display a menu of available  
Apps. (See “Setting split-screen mode” on page 59.)  
2. Press D or C to highlight the App and press ¸.  
3. Repeat steps 1 and 2 for the Split 2 App mode setting.  
Example: Display the Y= Editor in the top screen and the Graph App in the bottom  
screen.  
Press  
Result  
D B  
Getting Started  
62  
Press  
2
Result  
D B  
4
¸
Getting Started  
63  
     
If you set Split 1 App and Split 2 App to the same nongraphing App or to the same  
graphing App with Number of Graphs set to 1, the TI-89 Titanium exits split-screen mode  
and displays the App in full-screen mode.  
Selecting the active App  
In split-screen mode, only one App can be active at a time.  
To switch between active Apps, press 2 a.  
To open a third App, press O and select the App. This App replaces the active  
split-screen App.  
Exiting split-screen mode  
Exit split-screen mode in any of the following ways:  
Press 2 K to close the active App and display the full-screen view of the other  
open App.  
If the Apps desktop is turned off, pressing 2 K replaces the active split-screen  
App with the calculator Home screen. Pressing 2 K again turns off the split-  
screen mode and displays the calculator Home screen in full-screen mode.  
Select Split Screen on Page 2 of the MODE dialog box, set split-screen mode to  
FULL, and press ¸.  
Press 2 K twice to display the Apps desktop  
More information is available about using split screens. (See the electronic Split Screens  
chapter.)  
Getting Started  
64  
Managing Apps and operating system (OS) versions  
Using the TI-89 Titanium connectivity features, you can download Apps from:  
The TI Educational & Productivity Solutions (E&PS) Web site at:  
The CD-ROM included with your TI-89 Titanium.  
A compatible graphing calculator.  
Adding Apps to your TI-89 Titanium is like loading software on a computer. All you need  
is TI Connectsoftware and the USB computer cable that came with your TI-89  
Titanium.  
For system requirements and instructions to link to compatible calculators and download  
TI Connect software, Apps, and OS versions, see the TI E&PS Web site.  
Before downloading Apps to your TI-89 Titanium, please read the license agreement on  
the CD-ROM or TI Web site.  
Finding the OS version and identification (ID) numbers  
If you purchase software from the TI E&PS Web site or call the customer support  
number, you will be asked to provide information about your TI-89 Titanium. You will find  
this information on the ABOUT screen.  
Getting Started  
65  
   
To display the ABOUT screen, press ƒ 3:About from the Apps desktop. The ABOUT  
screen displays the following information about your TI-89 Titanium:  
Ê
Ë
Î
Í
Ì
Ê OS version  
Ë Hardware version  
Ì Unit ID (required to obtain certificates for installing purchased Apps). Similar to a serial  
number. Write this number down and keep it in a safe place in case the calculator is ever  
lost or stolen.  
Í Apps certificate revision number (Cert. Rev.)  
Î Product identifier (Product ID). Similar to a model number.  
Note that your screen will be different than the one shown above.  
Getting Started  
66  
   
Deleting an Application  
Deleting an application removes it from the TI-89 Titanium and increases space for other  
applications. Before deleting an application, consider storing it on a computer for  
reinstallation later.  
1. Quit the application.  
2. Press 2 ° to display the VAR-LINK (All) screen.  
3. Press 2 ‰ to display the list of installed applications.  
4. Select the application you want to delete by pressing . (Press again to  
deselect.)  
5. Press ƒ 1:Delete. The VAR-LINK delete confirmation dialog box displays.  
6. Press ¸ to delete the application.  
Note: Only Flash Apps can be deleted.  
Connecting your TI-89 Titanium to other devices  
The TI-89 Titanium includes both a mini-USB port and a standard I/O port. Ports are  
used to link two compatible graphing calculators or connect to a computer or peripheral  
device.  
In addition, the teacher model of the TI-89 Titanium includes an accessory port. This port  
is used to output visual data so that a classroom can view the calculator’s display on a  
video device or overhead screen.  
To connect your calculator to a computer – Connect your TI-89 Titanium using the  
USB port and the included USB computer cable.  
Getting Started  
67  
   
To connect your calculator to another calculator – Use the USB unit-to-unit cable or  
an I/O unit-to-unit cable to connect the TI-89 Titanium to a compatible graphing  
calculator or peripheral device, such as a TI-89 or TI-92 Plus graphing calculator or the  
CBL 2™ and CBR™ systems.  
To show your calculator’s display to the classroom – Use the accessory port to  
connect the TI-Presenter™ video adapter to the teacher model of the TI-89 Titanium.  
The TI-Presenter video adapter provides a video interface between the calculator and  
video display or recording devices. Or use the accessory port to connect the  
about the TI-Presenter video adapter and TI ViewScreen panel, see the TI E&PS Web  
USB port  
I/O port  
TI-89 Titanium ports  
Getting Started  
68  
   
USB port  
I/O port  
Accessory port  
TI-89 Titanium ports (teacher model)  
Batteries  
The TI-89 Titanium uses four AAA alkaline batteries and a backup silver oxide battery  
(SR44SW or 303). The backup battery is already installed, and the AAA batteries are  
provided with your product.  
Important OS download information  
New batteries should be installed before beginning an OS download.  
When in OS download mode, the APDfeature does not function. If you leave your  
calculator in download mode for an extended time before you actually start the  
download, your batteries may become depleted. You will then need to replace the  
depleted batteries with new batteries before downloading.  
Getting Started  
69  
   
You can also transfer the OS to another TI-89 Titanium using a USB unit-to-unit cable . If  
you accidentally interrupt the transfer before it is complete, you will need to reinstall the  
OS via a computer. Again, remember to install new batteries before downloading.  
Please contact Texas Instruments as described in Service & Support Information, if you  
experience a problem.  
Battery Precautions  
Take these precautions when replacing batteries:  
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.  
Installing the AAA Batteries  
1. Remove the battery cover from the back of the calculator.  
2. Unwrap the four AAA batteries provided with your product and insert them in the  
battery compartment. Arrange the batteries according to the polarity (+ and -)  
diagram in the battery compartment.  
Getting Started  
70  
 
3. Replace the battery cover on the calculator. The cover should snap into place.  
Replacing the AAA (alkaline) batteries  
As the batteries lose power, the display begins to dim, especially during calculations. If  
you find yourself increasing the contrast frequently, replace the AAA alkaline batteries.  
The status line also gives battery information.  
Indicator  
Meaning  
Batteries are low.  
Replace batteries as soon as possible.  
Before replacing the batteries, turn off the TI-89 Titanium by pressing 2 ® to avoid  
losing information stored in memory. Do not remove both the back-up battery and the  
AAA alkaline batteries at the same time.  
Getting Started  
71  
Replacing the backup (silver oxide) battery  
1. To replace the silver oxide backup battery, remove the battery cover and unscrew  
the tiny screw holding the BACK UP BATTERY cover in place.  
2. Remove the old battery and install a new SR44SW or 303 battery, positive (+) side  
up. Replace the cover and the screw.  
Getting Started  
72  
 
Previews  
Performing Computations  
This section provides several examples for you to perform from the Calculator Home  
screen that demonstrate some of the computational features of the TI-89 Titanium. 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.  
Showing Computations  
Steps and keystrokes  
Display  
Compute sin(p/4) and display the result in  
symbolic and numeric format. To clear the  
history area of previous calculations, press ƒ  
and select 8:Clear Home.  
Press 2 W 2 T e 4 d ¸ 8 ‘  
Previews  
73  
   
Finding the Factorial of Numbers  
Steps and keystrokes  
Display  
Compute the factorial of several numbers to  
see how the TI-89 Titanium handles very  
large integers. To get the factorial operator (!),  
press 2 I, select 7:Probability, and then  
select 1:!.  
Press 5 2 I 7 1 ¸ 20 2 I 7 1  
¸ 30 2 I 7 1 ¸  
Expanding Complex Numbers  
Steps and keystrokes  
Display  
3
Compute (3+5i) to see how the TI-89  
Titanium handles computations involving  
complex numbers.  
Press c 3 « 5 2 ) d Z 3 ¸  
Previews  
74  
   
Finding Prime Factors  
Steps and keystrokes  
Display  
Compute the factors of the rational number  
2634492. You can enter “factor” on the entry  
line by typing FACTOR on the keyboard, or by  
pressing and selecting 2:factor(.  
Press 2 2634492 d ¸  
(Optional) Enter other numbers on your own.  
Finding Roots  
Steps and keystrokes  
Display  
Find the root of the expression (x,y). You can  
enter “root” on the entry line by typing ROOT  
on the keyboard, or by pressing 8 9.  
This example illustrates using the root  
function and how the expression is displayed  
in “pretty print” in the history area.  
Press 8 9 X b Y d ¸  
Previews  
75  
   
Expanding Expressions  
Steps and keystrokes  
Display  
3
Expand the expression (xN5) . You can enter  
“expand” on the entry line by typing EXPAND  
on the keyboard, or by pressing and  
selecting 3:expand(.  
Press 3 c X | 5 d Z 3 d ¸  
(Optional) Enter other expressions on your  
own.  
Reducing Expressions  
Steps and keystrokes  
Display  
2
Reduce the expression (x N2xN5)/(xN1) to its  
simplest form. You can enter “propFrac” on  
the entry line by typing PROPFRAC on the  
keyboard, or by pressing and selecting  
7:propFrac(.  
Press 7 c X Z 2 | 2 X | 5 d e c X |  
1 d d ¸  
Previews  
76  
 
Factoring Polynomials  
Steps and keystrokes  
Display  
2
Factor the polynomial (x N5) with respect to x.  
You can enter “factor” on the entry line by  
typing FACTOR on the keyboard or by  
pressing and selecting 2:factor(.  
Press 2 X Z 2 | 5 b X d ¸  
Solving Equations  
Steps and keystrokes  
Display  
2
Solve the equation x N2xN6=2 with respect to  
x.  
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.  
Press 1 X Z 2 | 2 X | 6 Á 2 b X d  
¸
Previews  
77  
 
Solving Equations with a Domain Constraint  
Steps and keystrokes Display  
2
Solve the equation x N2xN6=2 with respect to  
x where x is greater than zero. The “with” (I)  
operator provides domain constraint.  
Press 1 X Z 2 | 2 X | 6 Á 2 b X d Í  
X 2 Ã 0 ¸  
Solving Inequalities  
Steps and keystrokes  
Display  
2
Solve the inequality (x >1,x) with respect to x.  
Press 1 X Z 2 2 Ã 1 d ¸  
Previews  
78  
   
Finding the Derivative of Functions  
Steps and keystrokes  
Display  
3
2
Find the derivative of (xNy) /(x+y) 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.  
Press 2 = c X | Y d Z 3 e c X « Y  
d Z 2 b X d ¸  
Finding Implicit Derivatives  
Steps and keystrokes  
Display  
Compute implicit derivatives for equations in  
two variables in which one variable is defined  
implicitly in terms of another.  
This example illustrates using the calculus  
implicit derivative function.  
Press D X Z 2 « Y Z 2 Á 100 bX b Y  
d ¸  
Previews  
79  
   
Finding the Integral of Functions  
Steps and keystrokes  
Display  
Find the integral of xsin(x) with respect to x.  
This example illustrates using the calculus  
integration function.  
Press 2 < X p 2 W X d b X d ¸  
Solving Problems Involving Vectors  
Steps and keystrokes  
Display  
1. Input a row or column of vectors.  
Press 2 g ? 6 b 0 b 0 2 h §  
j d ¸ 2 g 4 b 0 b 2 2  
h § j a ¸ 2 g ? 1 b 2  
b 1 2 h § j b ¸ 2 g  
7 b 6 b 5 2 h § j c ¸  
2. Solve (x* a+y*b+z*c=d {x,y,z})  
Press 1 X p j a « y p j b « z  
p j c Á j d b 2 [ X b Y  
b Z 2 \ d ¸  
Previews  
80  
   
Log to Any Base  
Steps and keystrokes  
Display  
Find log (x,b). You can enter “log” on the entry  
line by typing LOG on the keyboard, or by  
pressing 8 7.  
Press 8 7 X , j b d ¸  
Converting Angle Measures  
Steps and keystrokes  
Display  
1. Display the MODE dialog box. For Angle  
mode select DEGREE. Convert 345  
degrees to Gradian angle measure.  
You can enter “ úGrad ” on the entry line  
by selecting “ úGrad ” from the Catalog  
menu, or from the Math menu by pressing  
2 I and selecting 2:angle, A:úGrad.  
Press 3 D D D B 2 ¸ 345 2  
v 2 I 2 j A ¸  
Previews  
81  
 
Steps and keystrokes  
Display  
2. Convert 345 degrees to Radian angle  
measure.  
You can enter “ úRad ” on the entry line by  
selecting “ úRad from the Catalog menu,  
or from the Math menu by pressing 2  
I and selecting 2:angle, B:úRad.  
Press 3 D D D B 2 ¸ 345 2  
v 2 I 2 j B ¸  
G
Note: You can also use ó,ô, or to  
override the angle mode setting  
temporarily.  
Symbolic Manipulation  
Solve the system of equations 2x N 3y = 4 and Lx + 7y = L12. Solve the first equation so  
that x is expressed in terms of y. Substitute the expression for x into the second  
Previews  
82  
 
equation, and solve for the value of y. Then substitute the y value back into the first  
equation to solve for the value of x.  
Steps and keystrokes  
Display  
1. Display the Home screen and clear the  
entry line. Solve the equation 2x N 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.  
Press " M M „ 1 2 X | 3 Y  
Á 4 b X d ¸  
2. Begin to solve the equation Lx + 7y = L12  
for y, but do not press ¸ yet.  
Press 1 ? X « 7 Y Á ? 12 b Y d  
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.  
Press Í C ¸ ¸  
Previews  
83  
 
Steps and keystrokes  
Display  
4. Highlight the equation for x in the history  
area.  
Press C C C  
5. Auto-paste the highlighted expression to  
the entry line. Then substitute the value of  
y that was calculated from the second  
equation.  
Press ¸ Í C ¸ ¸  
The solution is:  
x = L8/11 and y = L20/11  
This example is a demonstration of symbolic manipulation. A one-step function is  
available for solving systems of equations.  
Constants and Measurement Units  
Using the equation f = ma, calculate the force when m = 5 kilograms and a = 20  
2
2
meters/second . What is the force when a = 9.8 meters/second . (This is the  
Previews  
84  
acceleration due to gravity, which is a constant named _g). Convert the result from  
newtons to kilograms of force.  
Steps and keystrokes  
Display  
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.  
Press 3 … B 1 ¸  
2. Create an acceleration unit for  
2
meters/second named _ms2.  
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.  
If you use the UNITS dialog box to select a  
unit, the _ is entered automatically. Now,  
2
instead of re-entering _m/_s each time  
you need it, you can use _ms2. Also, you  
can now use the UNITS dialog box to  
select _ms2 from the Acceleration  
category.  
Press 2 À D B M ¸ e 2  
À D D D D B S ¸ Z 2 9 8  
5 2 MS j 2 ¸  
Previews  
85  
 
Steps and keystrokes  
Display  
3. Calculate the force when  
m = 5 kilograms (_kg) and  
2
a = 20 meters/second (_ms2).  
If you know the abbreviation for a unit,  
you can type it from the keyboard.  
Press 5 8 5 2 KG j p 20  
8 5 2 MS j 2 ¸  
4. Using the same m, calculate the force for  
an acceleration due to gravity  
(the constant _g).  
For _g, you can use the pre-defined  
constant available from the UNITS dialog  
box or you can type _g.  
Press 5 8 5 2 KG j p 2  
À B j G ¸ ¸  
5. Convert to kilograms of force (_kgf).  
2 4 displays the 4 conversion operator.  
Press B 2 4 8 5 2 KGF  
j ¸  
Basic Function Graphing I  
The example in this section demonstrates some of the graphing capabilities of the TI-89  
Titanium keystrokes. It illustrates how to graph a function using the Y= Editor. You will  
Previews  
86  
 
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 Titanium by graphing the function  
2
y=(|x N3|N10)/2.  
Steps and keystrokes  
1. Display the Y= Editor.  
Press 8 #  
Display  
entry line  
2
2. Enter the function (abs(x N3)N10)/2.  
The screen shot shows the “pretty print”  
display at y1=.  
Press c ½ A ¸ X Z 2 | 3 d  
| 1 0 d e 2 ¸  
3. Display the graph of the function.  
Select 6:ZoomStd by pressing 6 or by  
moving the cursor to 6:ZoomStd and  
pressing ¸.  
Press 6  
Previews  
87  
Steps and keystrokes  
Display  
4. Turn on Trace.  
The tracing cursor, and the x and y  
coordinates are displayed.  
Press …  
tracing cursor  
5. Open the MATH menu and select  
3:Minimum.  
Press ‡ D D ¸  
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.  
Press 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.  
Press B ... B  
Previews  
88  
 
Steps and keystrokes  
Display  
8. Find the minimum point on the graph  
between the lower and upper bounds.  
Press ¸  
minimum point  
minimum coordinates  
9. Transfer the result to the Home screen,  
and then display the Home screen.  
Press 8 ? "  
Basic Function Graphing II  
Graph a circle of radius 5, centered on the origin of the coordinate system. View the  
circle using the standard viewing window (ZoomStd). Then use ZoomSqr to adjust the  
viewing window.  
Steps and keystrokes  
Display  
1. Display the MODE dialog box. For Graph  
mode, select FUNCTION.  
Press 3 B 1 ¸  
Previews  
89  
Steps and keystrokes  
Display  
2. Display the Home screen. Then store the  
radius, 5, in variable r.  
5!r  
Press " 5 9 j R ¸  
3. Display and clear the Y= Editor. Then  
2
2
define y1(x) = (r x ) , the top half of  
a circle.  
In function graphing, you must define  
separate functions for the top and bottom  
halves of a circle.  
Press 8 # , 8 ¸ ¸ 2 ]  
j R Z 2 | X Z 2 d ¸  
2
2
4. Define y2(x) = r x , the function for  
the bottom half of the circle.  
The bottom half is the negative of the top  
half, so you can define y2(x) = Ly1(x).  
Use the full function name y1(x), not  
simply y1.  
Press ¸ ? Y 1 c X d ¸  
Previews  
90  
Steps and keystrokes  
Display  
5. Select the ZoomStd viewing window,  
which automatically graphs the  
functions.  
In the standard viewing window, both the  
x and y axes range from L10 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.  
Press 6  
6. Select ZoomSqr.  
ZoomSqr increases the range along the  
x axis so that circles and squares are  
shown in correct proportion.  
Press 5  
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 (L5,0) and (5,0).  
Depending on the viewing window, however, the plotted endpoints for each half may be  
slightly different from their mathematical endpoints.  
Previews  
91  
 
Basic Function Graphing III  
Use the “Detect Discontinuities” graph format to eliminate faux asymptotes and  
connections in a jump discontinuity.  
Steps and keystrokes  
Display  
1. Display the MODE dialog box. For Graph  
mode, select FUNCTION. For Angle mode,  
select RADIAN.  
Press 3 B 1 D D D B 1 ¸  
2. Open the Y= Editor and enter y1(x)=1/(x-  
1).  
Press 8 # 1 e c X | 1 d ¸  
3. Display the Graph Formats dialog box  
and set “Detect Discontinuities” to OFF  
Note: The second item on the Graph  
Format dialog is not greyed out, which  
means it can be set to sequential “Seq” or  
simultaneous “Simul”.  
Press 8 Í D D D D D D B 1 ¸q  
Previews  
92  
Steps and keystrokes  
Display  
4. Execute the Graph command, which  
automatically displays the Graph screen.  
Observe the “faux” asymptotes contained  
in the graph.  
Press 8 %q  
5. Display the Graph Formats dialog box  
and set “Detect Discontinuities” to ON.  
Note: The second item on the Graph  
Format dialog is greyed out, which means  
the graph order is set to sequential “Seq”.  
Press 8 Í D D D D D D B 2 ¸  
6. Execute the Graph command, which  
automatically displays the Graph screen.  
No”faux” asymptotes are present on the  
graph.  
Note: Graphing speed may slow  
considerably when “Detect  
Discontinuities” is set to ON.  
Press 8 %(q  
Previews  
93  
 
Parametric Graphing  
Graph the parametric equations describing the path of a ball kicked at an angle (q) of 60¡  
2
with an initial velocity (v ) of 15 meters/sec. The gravity constant g = 9.8 meters/sec .  
0
Ignoring air resistance and other drag forces, what is the maximum height of the ball and  
when does it hit the ground?  
Steps and keystrokes  
Display  
1. Display the MODE dialog box. For Graph  
mode, select PARAMETRIC.  
Press 3 B 2 ¸  
2. Display and clear the Y= Editor. Then  
define the horizontal component  
xt1(t)=15tcos(60¡)  
xt1(t) = v t cos q.  
0
Enter values for v and q.  
0
Press 8 # , 8 ¸ ¸ 15T p  
2 X 60 2 “ d ¸  
Type T p 2 X, not T 2 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.  
Previews  
94  
Steps and keystrokes  
Display  
3. Define the vertical component  
2
yt1(t) = v t sin q N (g/2)t .  
0
Enter values for v , q, and g.  
0
Press ¸ 15T p 2 W 60 2 “ d  
| c 9.8 e 2 d T Z 2 ¸  
4. Display the Window Editor. Enter  
Window variables appropriate for  
this example.  
You can press either D or ¸ to enter  
a value and move to the next variable.  
Press 8 $ 0 D 3 D .02 D ? 2  
D 25 D 5 D ? 2 D 10 D 5  
5. Graph the parametric equations to model  
the path of the ball.  
Press 8 %  
6. Select Trace. Then move the cursor  
along the path to find the:  
y value at maximum height.  
t value where the ball hits the  
ground.  
Press … B or A as necessary  
Previews  
95  
 
Polar Graphing  
The graph of the polar equation r1(q) = A sin Bq forms the shape of a rose. Graph the  
rose for A=8 and B=2.5. Then explore the appearance of the rose for other values of A  
and B.  
Steps and keystrokes  
Display  
1. Display the MODE dialog box. For Graph  
mode, select POLAR. For Angle mode,  
select RADIAN.  
Press 3 B 3 D D D B 1 ¸  
2. Display and clear the Y= Editor. Then  
define the polar equation r1(q) = A sin Bq.  
Enter 8 and 2.5 for A and B, respectively.  
Press 8 # , 8 ¸ ¸ 8 2 W  
2.5 8 Ï d ¸  
Previews  
96  
Steps and keystrokes  
Display  
3. Select the ZoomStd viewing window,  
which graphs the equation.  
The graph shows only five rose  
petals.  
-
In the standard viewing window,  
the Window variable qmax = 2p.  
The remaining petals have q  
values greater than 2p.  
The rose does not appear  
symmetrical.  
-
Both the x an y axes range from  
L10 to 10. However, this range is  
spread over a longer distance  
along the x axis than the y axis.  
Press 6  
4. Display the Window Editor, and change  
qmax to 4p.  
4p will be evaluated to a number when  
you leave the Window Editor.  
Press 8 $ D 4 2 T  
Previews  
97  
 
Steps and keystrokes  
Display  
5. Select ZoomSqr, which regraphs the  
equation.  
ZoomSqr increases the range along the  
x axis so that the graph is shown in  
correct proportion.  
Press 5  
You can change values for A and B as  
necessary and regraph the equation.  
Sequence Graphing  
A small forest contains 4000 trees. Each year, 20% of the trees will be harvested (with  
80% remaining) and 1000 new trees will be planted. Using a sequence, calculate the  
number of trees in the forest at the end of each year. Does it stabilize at a certain  
number?  
Initially  
After 1 Year  
After 2 Years  
After 3 Years  
. . .  
4000  
.8 x 4000  
+ 1000  
.8 x (.8 x 4000 + .8 x (.8 x (.8 x  
. . .  
1000) + 1000  
4000 + 1000) +  
1000) + 1000  
Previews  
98  
 
Steps and keystrokes  
Display  
1. Display the MODE dialog box. For Graph  
mode, select SEQUENCE.  
Press 3 B 4 ¸  
2. Display and clear the Y= Editor. Then  
define the sequence as  
u1(n) = iPart(.8u1(nN1)+1000).  
Use iPart to take the integer part of the  
result. No fractional trees are harvested.  
To access iPart(, you can use 2 I,  
simply type it, or select it from the  
CATALOG.  
Press 8 # , 8 ¸ ¸ 2 I  
1 4 . 8 j U1 c j N | 1 d « 1000  
d ¸  
3. Define ui1 as the initial value that will be  
used as the first term.  
Press ¸ 4000 ¸  
4. Display the Window Editor. Set the n and  
plot Window variables.  
nmin=0 and nmax=50 evaluate the size of  
the forest over 50 years.  
Press 8 $ 0 D 50 D 1 D 1 D  
Previews  
99  
Steps and keystrokes  
Display  
5. Set the x and y Window variables to  
appropriate values for this example.  
Press 0 D 50 D 10 D 0 D 6000 D 1000  
6. Display the Graph screen.  
Press 8 %  
7. Select Trace. Move the cursor to trace  
year by year. How many years (nc) does it  
take the 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.  
By default, sequences  
use the Square  
display style.  
Press … B and A as necessary  
Previews  
100  
 
3D Graphing  
3
3
Graph the 3D equation z(x,y) = (x y N y x) / 390. Animate the graph by using the cursor  
to interactively change the eye Window variable values that control your viewing angle.  
Then view the graph in different graph format styles.  
Steps and keystrokes  
Display  
1. Display the MODE dialog box. For Graph  
mode, select 3D.  
Press 3 B 5 ¸  
2. Display and clear the Y= Editor. Then  
define the 3D equation  
3
3
z1(x,y) = (x y N y x) / 390.  
Notice that implied multiplication is used  
in the keystrokes.  
Press 8 # , 8 ¸ ¸ c X Z 3  
Y | Y Z 3 X d e 390 ¸  
3. Change the graph format to display and  
label the axes. Also set Style = WIRE  
FRAME.  
You can animate any graph format style,  
but WIRE FRAME is fastest.  
Press 8 Í D B 2 D B 2 D B 1 ¸  
Previews  
101  
Steps and keystrokes  
Display  
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.  
Press 6  
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.)  
Press p (press p to switch between  
expanded and normal view)  
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 ¸.  
Press D eight times  
Previews  
102  
Steps and keystrokes  
Display  
6. Return the graph to its initial orientation.  
Then move the viewing angle along the  
“viewing orbit” around the graph.  
Press 0 (zero, not the letter O) A A A  
7. View the graph along the x axis, the  
y axis, and then the z axis.  
Press X  
This graph has the same shape along the  
y axis and x axis.  
Press Y  
Press Z  
8. Return to the initial orientation.  
Press 0 (zero)  
Previews  
103  
 
Steps and keystrokes  
Display  
9. Display the graph in different graph  
format styles.  
Press Í (press Í to switch from each  
style to the next)  
HIDDEN SURFACE  
CONTOUR LEVELS  
(may require extra  
time to calculate  
contours)  
WIRE AND  
CONTOUR  
WIRE FRAME  
Previews  
104  
 
Note: You can also display the graph as an implicit plot by using the GRAPH FORMATS  
dialog box (8 Í). If you press Í to switch between styles, the implicit plot is not  
displayed.  
Differential Equation Graphing  
Graph the solution to the logistic 1st-order differential equation y' = .001y(100Ny). Start  
by drawing only the slope field. Then enter initial conditions in the Y= Editor and  
interactively from the Graph screen.  
Steps and keystrokes  
Display  
1. Display the MODE dialog box. For Graph  
mode, select DIFF EQUATIONS.  
Press 3 B 6 ¸  
Previews  
105  
Steps and keystrokes  
Display  
2. Display and clear the Y= Editor. Then  
define the 1st-order differential equation:  
y1'(t)=.001y1(100Ny1)  
Press p to enter the shown above. Do  
not use implied multiplication between the  
variable and parentheses. If you do, it is  
treated as a function call.  
Leave the initial condition yi1 blank.  
Note: With y1' selected, the device will  
graph the y1 solution curve, not the  
derivative y1'.  
Press 8 # , 8 ¸ ¸ .001 Y1  
p c 100 | Y1 d ¸  
3. Display the GRAPH FORMATS dialog box.  
Then set Axes = ON, Labels = ON, Solution  
Method = RK, and Fields = SLPFLD.  
Note: To graph one differential equation,  
Fields must be set to SLPFLD or FLDOFF.  
If Fields=DIRFLD, an error occurs when  
you graph.  
Press 8 Í D D B 2 D D B 2 D B 1  
D B 1 ¸  
Previews  
106  
Steps and keystrokes  
Display  
4. Display the Window Editor, and set the  
Window variables as shown to the right.  
Press 8 $ 0 D 10 D .1 D 0 D  
? 10 D 110 D 10 D ? 10 D 120 D 10  
D 0 D .001 D 20  
5. Display the Graph screen.  
Because you did not specify an initial  
condition, only the slope field is drawn (as  
specified by Fields=SLPFLD in the GRAPH  
FORMATS dialog box).  
Press 8 %  
6. Return to the Y= Editor and enter an initial  
condition:  
yi1=10  
Press 8 # ¸ 10 ¸  
7. Return to the Graph screen.  
Initial conditions entered in the Y= Editor  
always occur at t . The graph begins at  
0
the initial condition and plots to the right.  
Then it plots to the left.  
The initial condition is  
marked with a circle.  
Press 8 %  
Previews  
107  
Steps and keystrokes  
Display  
8. Return to the Y= Editor and change yi1 to  
enter two initial conditions as a list:  
yi1={10,20}  
Press 8 # C ¸ 2 [ 10 b 20  
2 \ ¸  
9. Return to the Graph screen.  
Press 8 %  
Previews  
108  
Steps and keystrokes  
Display  
10. To select an initial condition interactively,  
press:  
2 Š  
When prompted, enter t=40 and y1=45.  
When selecting an initial condition  
interactively, you can specify a value for t  
other than the t value entered in the  
0
Y= Editor or Window Editor.  
Instead of entering t and y1 after pressing  
2 Š  
you can move the cursor to a point on the  
screen and then press ¸.  
You can use to trace curves for initial  
conditions specified in the Y= Editor.  
However, you cannot trace the curve for  
an initial condition selected interactively.  
Press 2 Š 40 ¸ 45 ¸  
Previews  
109  
 
Additional Graphing Topics  
From the Home screen, graph the piecewise defined function: y = Lx when x < 0 and  
y = 5 cos(x) when x 0. Draw a horizontal line across the top of the cosine curve. Then  
save a picture of the displayed graph.  
Steps and keystrokes  
Display  
1. Display the MODE dialog box. For Graph  
mode, select FUNCTION. For Angle mode,  
select RADIAN.  
Press 3 B 1 D D D B 1 ¸  
2. Display the Home screen. Use the Graph  
command and the when function to  
Graph when(x<0,Lx,  
5cos(x))  
specify the piecewise defined function.  
2 selects Graph from the Other toolbar  
menu and automatically adds a space.  
Press " 2 2 WHEN j  
c X 2 Â 0 b ? X b 5 p 2 X X  
d 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.  
Press ¸  
Previews  
110  
Steps and keystrokes  
Display  
4. Draw a horizontal line across the top of  
the cosine curve.  
The calculator remains in “horizontal”  
mode until you select a different operation  
or press N.  
Press 2 5 C (until the line is  
positioned) ¸  
5. Save a picture of the graph. Use PIC1 as  
the variable name for the picture.  
Be sure to set Type = Picture. By default, it  
is set to GDB.  
Press , 2 B 2 D D PIC j 1 ¸  
¸
6. Clear the drawn horizontal line.  
You can also press to regraph.  
Press 2 ˆ 1  
Previews  
111  
 
Steps and keystrokes  
Display  
7. Open the saved picture variable to  
redisplay the graph with the line.  
Be sure to set Type = Picture. By default, it  
is set to GDB.  
Press , 1 B 2 (if not already shown,  
also set Variable = pic1) ¸  
Tables  
3
Evaluate the function y=x N2x at each integer between M10 and 10. How many sign  
changes are there, and where do they occur?  
Steps and keystrokes  
Display  
1. Display the MODE dialog box. For the  
Graph mode, select FUNCTION.  
Press 3 B 1 ¸  
Previews  
112  
Steps and keystrokes  
Display  
2. Display and clear the Y= Editor. Then  
3
define y1(x) = x N 2x.  
Press 8 # , 8 ¸ ¸ X Z 3 |  
2 X ¸  
3. Set the table parameters to:  
tblStart = M10  
@tbl = 1  
Graph < - > Table = OFF  
Independent = AUTO  
Press 8 & ? 10 D 1 D B 1 D B 1  
¸
4. Display the Table screen.  
Press 8 '  
5. Scroll through the table. Notice that y1  
changes sign at x = M1, 1, and 2.  
To scroll one page at a time, use 2 D  
and 2 C.  
Press D and C as necessary.  
Previews  
113  
 
Steps and keystrokes  
Display  
6. Zoom in on the sign change between  
x = L2 and x = L1 by changing the table  
parameters to:  
tblStart = L2  
@tbl = .1  
Press „ ? 2 D .1 ¸ ¸  
Split Screens  
Split the screen to show the Y= Editor and the Graph screen. Explore the behavior of a  
polynomial as its coefficients change.  
Steps and keystrokes  
Display  
1. Display the MODE dialog box.  
For Graph, select FUNCTION.  
For Split Screen, select LEFT-RIGHT.  
For Split 1 App, select Y= Editor.  
For Split 2 App, select Graph.  
Press 3 B 1 „ B 3 D B 2 D B 4  
¸
Previews  
114  
Steps and keystrokes  
Display  
2. Clear the Y= Editor and turn off any stat  
3
data plots. Define y1(x) = .1x N2x+6.  
A thick border around the Y= Editor  
indicates it is active. When active, its  
entry line goes all the way across the  
display.  
Press , 8 ¸ ‡ 5 ¸ .1 X Z 3 |  
2 X « 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.  
Press 6  
4. Switch to the Y= Editor and edit y1(x) to  
3
3
change .1x to .5x .  
2 a is the second function of O.  
The thick border is around the Y= Editor.  
Press 2 a C ¸ A B B 0 5  
¸
Previews  
115  
Steps and keystrokes  
Display  
5. Switch to the Graph screen, which  
regraphs the edited function.  
The thick border is around the Graph  
screen.  
Press 2 a  
6. Switch to the Y= Editor and open the  
Window Editor in its place.  
Press 2 a 8 $  
7. Open the Home screen and then exit to a  
full-sized Home screen.  
Press:  
2 K (((("  
Previews  
116  
 
Data/Matrix Editor  
Use the Data/Matrix Editor to create a one-column list variable. Then add a second  
column of information. Notice that the list variable (which can have only one column) is  
automatically converted into a data variable (which can have multiple columns).  
Steps and keystrokes  
Display  
1. Use O to display the Data/Matrix  
Editor. Create a new list variable named  
TEMP.  
Press 3 B 3 D D TEMP ¸ ¸  
2. Enter a column of numbers. Then move  
the cursor up one cell (just to see that a  
highlighted cell’s value is shown on the  
entry line).  
LIST is shown in the upper-left corner to  
indicate a list variable.  
You can use D instead of ¸ to enter  
information in a cell.  
Press 1 ¸ 2 ¸ 3 ¸ 4 ¸ 5  
¸ 6 ¸ C  
Previews  
117  
Steps and keystrokes  
Display  
3. Move to column 2, and define its column  
header so that it is twice the value of  
column 1.  
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.  
Press B † 2 p j C 1 ¸  
4. Move to the column 2 header cell to show  
its definition in the entry line.  
When the cursor is on the header cell,  
you do not need to press to define it.  
Simply begin typing the expression.  
Press 2 C C  
5. Clear the contents of the variable.  
Simply clearing the data does not convert  
the data variable back into a list variable.  
Press , 8 ¸  
Note: 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 wasting memory by creating a new variable each time.  
Previews  
118  
 
Statistics and Data Plots  
Based on a sample of seven cities, enter data that relates population to the number of  
buildings with more than 12 stories. Using Median-Median and linear regression  
calculations, find and plot equations to fit the data. For each regression equation, predict  
how many buildings of more than 12 stories you would expect in a city of 300,000  
people.  
Steps and keystrokes  
Display  
1. Display the MODE dialog box. For Graph  
mode, select FUNCTION.  
Press 3 B 1 ¸  
2. Use•O to display the Data/Matrix  
Editor. Create a new data variable named  
BUILD.  
Press 3 D D BUILD ¸ ¸  
Previews  
119  
Steps and keystrokes  
Display  
3. Using the sample data below, enter the  
population in column 1.  
Pop. (in 1000s)  
Bldgs > 12 stories  
150  
500  
800  
250  
500  
750  
950  
4
31  
42  
9
20  
55  
73  
Press 150 ¸ 500 ¸ 800 ¸  
250 ¸ 500 ¸ 750 ¸ 950  
¸
4. Move the cursor to row 1 in column 2  
(r1c2). Then enter the corresponding  
number of buildings.  
8 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.  
Press B 8 C 4 ¸ 31 ¸ 42 ¸  
9 ¸ 20 ¸ 55 ¸ 73 ¸  
Previews  
120  
Steps and keystrokes  
Display  
5. Move the cursor to row 1 in column 1  
(r1c1). Sort the data in ascending order of  
population.  
This sorts column 1 and then adjusts all  
other columns so that they retain the  
same order as column 1. This is critical  
for maintaining the relationships between  
columns of data.  
To sort column 1, the cursor can be  
anywhere in column 1. This example has  
you press  
8 C  
so that you can see the first four rows.  
Press A 8 C 2 ˆ 4  
6. Display the Calculate dialog box. Set  
Calculation Type = MedMed  
x = C1  
y = C2  
Store RegEQ to = y1(x)  
Press ‡ B 7 D C j 1 D j C2 D  
B D ¸  
7. Perform the calculation to display the  
MedMed regression equation.  
As specified on the Calculate dialog box,  
this equation is stored in y1(x).  
Press ¸  
Previews  
121  
Steps and keystrokes  
Display  
8. Close the STAT VARS screen. The  
Data/Matrix Editor displays.  
Press ¸  
9. Display the Calculate dialog box. Set:  
Calculation Type = LinReg  
x = C1  
y = C2  
Store RegEQ to = y2(x)  
Press ‡ B 5 D D D B D ¸  
10. Perform the calculation to display the  
LinReg regression equation.  
This equation is stored in y2(x).  
Press ¸  
11. Close the STAT VARS screen. The  
Data/Matrix Editor displays.  
Press ¸  
12. Display the Plot Setup screen.  
Plot 1 is highlighted by default.  
lets you clear highlighted Plot settings.  
Press „  
Previews  
122  
Steps and keystrokes  
Display  
13. Define Plot 1 as:  
Plot Type = Scatter  
Mark = Box  
x = C1  
y = C2  
Notice the similarities between this and  
the Calculate dialog box.  
Press , B 1 D B 1 D C j 1 D j  
C2  
14. Save the plot definition and return to the  
Plot Setup screen.  
Notice the shorthand notation for Plot 1’s  
definition.  
Press ¸ twice  
Previews  
123  
Steps and keystrokes  
Display  
15. Display the Y= Editor. For y1(x), the  
MedMed regression equation, set the  
display style to Dot.  
Note: Depending on the previous contents  
of your Y= Editor, you may need to move  
the cursor to y1.  
PLOTS 1 at the top of the screen means  
that Plot 1 is selected.  
Notice that y1(x) and y2(x) were selected  
when the regression equations were  
stored.  
Press 8 # 2 ˆ 2  
16. Scroll up to highlight Plot 1.  
The displayed shorthand definition is the  
same as on the Plot Setup screen.  
Press C  
17. Use ZoomData to graph Plot 1 and the  
regression equations y1(x) and y2(x).  
ZoomData examines the data for all  
selected stat plots and adjusts the viewing  
window to include all points.  
Press 9  
Previews  
124  
Steps and keystrokes  
Display  
18. Return to the current session of the  
Data/Matrix Editor.  
Press O D ¸ ¸  
19. Enter a title for column 3. Define  
column 3’s header as the values  
predicted by the MedMed line.  
To enter a title, the cursor must highlight  
the title cell at the very top of the column.  
lets you define a header from  
anywhere in a column. When the cursor is  
on a header cell, pressing is not  
required.  
Press B B C C 2 MED j  
¸ † Y1 c j C1 d ¸  
20. Enter a title for column 4. Define  
column 4’s header as the residuals  
(difference between observed and  
predicted values) for MedMed.  
Press B C 2 RESID j ¸  
j C2 | j C3 ¸  
21. Enter a title for column 5. Define  
column 5’s header as the values  
predicted by the LinReg line.  
Press B C C 2 LIN j ¸  
Y2 c j C1 d ¸  
Previews  
125  
Steps and keystrokes  
Display  
22. Enter a title for column 6. Define  
column 6’s header as the residuals for  
LinReg.  
Press B C 2 RESID j ¸  
j C2 | j C5 ¸  
23. Display the Plot Setup screen and  
deselect Plot 1.  
Press „ †  
24. Highlight Plot 2 and define it as:  
Plot Type = Scatter  
Mark = Box  
x = C1  
y = C4 (MedMed residuals)  
Press D , D D C j 1 D j C4  
¸ ¸  
25. Highlight Plot 3 and define it as:  
Plot Type = Scatter  
Mark = Plus  
x = C1  
y = C6 (LinReg residuals)  
Press D , D B 3 D C j 1 D j  
C6 ¸ ¸  
Previews  
126  
Steps and keystrokes  
Display  
26. Display the Y= Editor and turn all the y(x)  
functions off.  
From , select 3:Functions Off, not  
1:All Off.  
Plots 2 and 3 are still selected.  
Press 8 # ‡ 3  
27. Use ZoomData to graph the residuals.  
marks the MedMed residuals;  
+ marks the LinReg residuals.  
Press 9  
28. Display the Home screen.  
Press "  
29. Use the MedMed (y1(x)) and  
LinReg (y2(x)) regression equations to  
calculate values for x = 300 (300,000  
population).  
The round function ( 2 I 1 3)  
ensures that results show an integer  
number of buildings.  
After calculating the first result, edit the  
entry line to change y1 to y2.  
Press 2 I 1 3 Y1 c 300 d b 0 d  
¸ B A (eight times) 0 2 ¸  
Previews  
127  
   
Programming  
Write a program that prompts the user to enter an integer, sums all integers from 1 to the  
entered integer, and displays the result.  
Steps and keystrokes  
Display  
1. Use O to display the Program Editor.  
Create a new program.  
Press 3  
2. Type PROG1 (with no spaces) as the  
name of the new program variable.  
Press D D PROG j 1  
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.  
Press ¸ twice.  
Previews  
128  
Steps and keystrokes  
Display  
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.  
Type the program lines as shown.  
Press ¸ at the end of each line.  
Previews  
129  
 
Steps and keystrokes  
Display  
5. Go to the Home screen. Enter the  
program name, followed by a set of  
parentheses.  
prog1()  
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.  
Press " 2 PROG j 1 c  
d ¸  
6. Type 5 in the displayed dialog box.  
Press 5  
7. Continue with the program. The  
Disp command displays the result on the  
Program I/O screen.  
The result is the sum of the integers from  
1 through 5.  
Output from  
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.  
other programs  
may still be on  
the screen.  
Result of integer 5  
Press ¸ twice  
Previews  
130  
 
Steps and keystrokes  
Display  
8. Leave the Program I/O screen and return  
to the Home screen.  
You can also press N, 2 K, or  
"
to return to the Home screen.  
Press ‡  
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 and keystrokes  
Display  
1. Start a new session of the Text Editor.  
Press 3  
2. Create a text variable called TEST, which  
will automatically store any text you enter  
in the new session.  
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.  
Press D TEST ¸ ¸  
Previews  
131  
Steps and keystrokes  
Display  
3. Type some sample text.  
To type a single uppercase letter,  
press 7 and then the letter.  
-
To type a space, press j   
(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.  
Press 2 and type anything you  
want.  
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.  
Press "  
Previews  
132  
 
Steps and keystrokes  
Display  
5. Return to the current session on the Text  
Editor. Notice that the displayed session  
is exactly the same as you left it.  
Press 2 a  
Numeric Solver  
Consider the equation a=(m2Nm1)/(m2+m1)g, where the known values are m2=10 and  
g=9.8. If you assume that a=1/3 g, find the value of m1.  
Steps and keystrokes  
Display  
1. Use O to display the Numeric Solver.  
2. Enter the equation.  
When you press ¸ or D, the screen  
lists the variables used in the equation.  
Press j A Á c j M2 | j M1  
d e c j M2 « j M1 d p j  
G ¸  
Previews  
133  
Steps and keystrokes  
Display  
3. Enter values for each variable, except the  
unknown variable m1.  
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.  
Press D 10 D D 9.8 C C C j G e  
3
4. Move the cursor to the unknown 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.  
Press D D  
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.  
0 marks the calculated  
values.  
Press „  
Previews  
134  
Steps and keystrokes  
Display  
6. Graph the solution using a ZoomStd  
viewing window.  
The graph is displayed in a split screen.  
You can explore the graph by tracing,  
zooming, etc.  
The variable marked by the cursor  
(unknown variable m1) is on the x axis,  
and left-rt is on the y axis.  
Press 3  
7. Return to the Numeric Solver and exit the  
split screen.  
You can press ¸ or D to redisplay the  
list of variables.  
Press 2 a … 2  
Previews  
135  
 
Number Bases  
Calculate 10 binary (base 2) + F hexadecimal (base 16) + 10 decimal (base 10). Then,  
use the 4 operator to convert an integer from one base to another. Finally, see how  
changing the Base mode affects the displayed results.  
Steps and keystrokes  
Display  
1. Display the MODE dialog box, Page 2. For  
Base mode, select DEC as the default  
number base.  
Integer results are displayed according to  
the Base mode. Fractional and floating-  
point results are always displayed in  
decimal form.  
Press 3 „ (use D to move to Base  
mode) B 1 ¸  
2. Calculate 0b10+0hF+10.  
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.  
Note: The 0b or 0h prefix is a zero, not the  
letter O, followed by B or H.  
Press 0 j B 10 « 0 2 HF  
j « 10 ¸  
Previews  
136  
Steps and keystrokes  
Display  
3. Add 1 to the result and convert it to binary.  
2 4 displays the 4 conversion operator.  
Press « 1 2 4 2 BIN j  
¸
4. Add 1 to the result and convert it to  
hexadecimal.  
Press « 1 2 4 2 HEX j  
¸
5. Add 1 to the result and leave it in the  
default decimal base.  
Results use the 0b or 0h prefix to identify  
the base.  
Press « 1 ¸  
6. Change the Base mode to HEX.  
When Base = HEX or BIN, the magnitude of  
a result is restricted to certain size  
limitations.  
Press 3 „ (use D to move to Base  
mode) B 2 ¸  
7. Calculate 0b10+0hF+10.  
Press 0 j B 10 « 0 2 HF  
j « 10 ¸  
Previews  
137  
 
Steps and keystrokes  
Display  
8. Change the Base mode to BIN.  
Press 3 „ (use D to move to Base  
mode) B 3 ¸  
9. Re-enter 0b10+0hF+10.  
Press ¸  
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  
Previews  
138  
variables are locked automatically.) Finally, unarchive the variable and delete the unused  
variables so that they will not take up memory.  
Steps and keystrokes  
Display  
1. From the Home screen, assign variables  
with the following variable types.  
Expression: 5 !x1  
2
Function:  
List:  
Matrix:  
x +4 !f(x)  
{5,10} !L1  
[30,25] !m1  
Press " M 5 9 X1 ¸ X Z  
2 « 4 9 j F c X d ¸ 2 [  
5 b 10 2 \ 9 j L1 ¸ 2  
g 30 b 25 2 h 9 j M1 ¸  
2. Suppose you start to perform an  
operation using a function variable but  
can’t remember its name.  
5…  
Press 5 p  
3. Display the VAR-LINK screen.  
This example assumes that the variables  
assigned above are the only ones  
defined.  
Press 2 °  
Previews  
139  
Steps and keystrokes  
Display  
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.  
Press „ D D B 5 ¸  
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.  
Press D 2 ˆ  
6. Close the Contents window.  
Press N  
7. With the f variable still highlighted, close  
VAR-LINK to paste the contents of the  
variable to the entry line. Notice that “(” is  
pasted.  
5f(  
Press ¸  
8. Complete the operation.  
Press 2 d ¸  
5f(2)  
Previews  
140  
 
Archiving a variable  
Steps and keystrokes  
Display  
1. 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.  
Press 2 ° (use D to highlight  
x1)  
2. Use the , Manage toolbar menu to  
archive the variable.  
û indicates the variable is archived.  
Press , 8  
3. Return to the Home screen and use the  
archived variable in a calculation.  
Press " 6 p X1 ¸  
Previews  
141  
Steps and keystrokes  
Display  
4. Attempt to store a different value to the  
archived variable.  
Press 10 9 X1 ¸  
5. Cancel the error message.  
Press N  
6. Use VAR-LINK to unarchive the variable.  
Press 2 ° (use D to highlight  
x1) , 9  
7. Return to the Home screen and store a  
different value to the unarchived variable.  
Press " ¸  
Previews  
142  
 
Deleting variables  
Steps and keystrokes  
Display  
1. 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 .  
Press 1  
2. Use , to delete.  
Note: You can press 0 (instead of , 1)  
to delete the marked variables.  
Press , 1  
3. Confirm the deletion.  
Press ¸  
Previews  
143  
Steps and keystrokes  
Display  
4. 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.  
Press ¸  
5. 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.  
Press N  
Previews  
144  
Operating the Calculator  
Turning the Calculator On and Off  
You can turn your graphing calculator on and off manually by using the ´ and 2 ®  
(or 8 ®) keys. To prolong battery life, the APD™ (Automatic Power Down™) feature  
lets the calculator turn itself off automatically.  
Turning the Calculator On  
Press ´.  
If you turned the unit off by pressing 2 ®, the unit returns to either the Apps  
desktop or the Home screen.  
If you turned the unit off by pressing 8 ® or if the unit turned itself off through  
APD, the unit returns to whichever application you used last.  
Operating the Calculator  
145  
   
Turning the Calculator Off  
You can use either of the following keys to turn off your graphing calculator.  
Press:  
Description  
Settings and memory contents are retained by the  
Constant Memory™ feature. However:  
2 ®  
(press 2 and  
then press ®)  
You cannot use 2 ® if an error message is  
displayed.  
When you turn the calculator on again, it displays  
either the Home screen or the Apps desktop  
(regardless of the last application you used).  
8 ®  
Similar to 2 ® except:  
(press 8 and then  
press ®)  
You can use 8 ® if an error message is  
displayed.  
When you turn the calculator on again, it will be  
exactly as you left it.  
Note: ® is the second function of the ´ key.  
APD (Automatic Power Down)  
After several minutes without any activity, the calculator turns itself off automatically. This  
feature is called APD.  
When you press ´, the calculator 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.  
Operating the Calculator  
146  
 
APD does not occur if a calculation or program is in progress, unless the program is  
paused. If a program is running, but waiting for a key press, APD will occur after several  
minutes of inactivity.  
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 graphing calculator is turned off.  
Adjusting the Display Contrast  
You can adjust the display contrast to suit your viewing angle and lighting conditions.  
To:  
Press and hold both:  
8 and |  
Decrease (lighten) the contrast  
Increase (darken) the contrast  
8 and «  
V
A
R
-
L
I
N
K
O
C
H
A
R
U
Contrast keys  
If you press and hold 8 | or 8 « too long, the display may go completely black or  
blank. To make finer adjustments, hold 8 and then tap | or «.  
Operating the Calculator  
147  
   
When to Replace Batteries  
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.  
Note: The display may be very dark after you change batteries. Use 8 | 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.  
The TI-89 Titanium Keyboard  
Most keys can perform two or more functions, depending on whether you first press a  
modifier key.  
Operating the Calculator  
148  
Ê
Ë
Í
Î
Ì
Ï
Ê ƒ 2 Š open toolbar menus. Select applications (when used with 8)  
Ë 2, 8, ¤, and j add functionality by increasing the available key commands.  
Ì X, Y, and Z are often used in symbolic calculations.  
Í A, B, C, and D move the cursor.  
Î O lets you select an application.  
Ï ¸ evaluates an expression, executes an instruction, selects a menu item, etc.  
Operating the Calculator  
149  
       
Modifier Keys  
Modifier Keys  
Modifier  
Description  
Accesses the second function of the next key you  
press. On the keyboard, these are printed in the same  
color as the 2 key.  
2
(second)  
Activates keys that select certain applications, menu  
items, and other operations from the keyboard. On the  
keyboard, these are printed in the same color as the 8  
key.  
8
(diamond)  
Types an uppercase character for the next letter key  
you press. ¤ is also used with B and A to highlight  
characters in the entry line for editing purposes.  
¤
(shift)  
Used to type alphabetic letters, including a space  
character. On the keyboard, these are printed in the  
same color as the j key.  
j
Note: Information is available about using ¤ and j.  
Examples of [2nd] and [diamond] Modifiers  
The N key is one of several keys that can perform three operations, depending on  
whether you first press 2 or 8.  
The following TI-89 Titanium example shows using the 2 or 8 modifier key with the  
N key.  
Operating the Calculator  
150  
QUIT PASTE  
2 K accesses  
QUIT, which is the same  
color as the 2 key.  
8 7 accesses  
PASTE, which is the same  
color as the 8 key.  
ESC  
N accesses the key’s  
primary function.  
Some keys perform only one additional operation, which may require either 2 or 8,  
depending on the color in which the operation is printed on the keyboard and where it is  
positioned above the key.  
CUT  
2nd  
On the TI-89 Titanium,  
8 5 accesses CUT, which is  
the same color as the 8 key.  
When you press a modifier such as 2 or 8, 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.  
8 #  
Displays the Window Editor.  
Displays the Graph screen.  
Sets parameters for the Table screen.  
8 $  
8 %  
8 &  
Operating the Calculator  
151  
Key  
Description  
Displays the Table screen.  
8 '  
These keys let you edit entered information by  
performing a cut, copy, or paste operation.  
@:  
8 5  
8 6  
8 7  
Toggles between the last two chosen Apps or between  
split screen portions.  
2 a  
Toggles the custom menu on and off.  
Converts measurement units.  
2 ¾  
2   
Designates a measurement unit.  
@
8   
Deletes the character to the left of the cursor  
(backspaces).  
0
Toggles between insert and overtype mode for entering  
information.  
2 /  
Deletes the character to the right of the cursor.  
8 .  
@
Í
Enters the “with” operator, which is used in symbolic  
calculations.  
Performs integrations and derivatives.  
2 <,  
2 =  
Designates an angle in polar, cylindrical, and spherical  
coordinates.  
2 ’  
Displays the MATH menu.  
2 I  
Operating the Calculator  
152  
 
Key  
Description  
Displays the MEMORY screen.  
2 ¯  
2 °  
Displays the VAR-LINK screen for managing variables  
and Flash applications.  
Recalls the contents of a variable.  
Displays the UNITS dialog box.  
2 £  
@
2 9  
Displays the CHAR menu, which lets you select Greek  
letters, international accented characters, etc.  
2 ¿  
Recalls the previous entry and the last answer,  
respectively.  
2 `,  
2 ±  
Entering Alphabetic Characters  
2
2
Alphabetic characters are used in expressions such as x +y to enter variable names  
and in the Text Editor (Text Editor module).  
Entering a Letter Character on the TI-89 Titanium  
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 Titanium keyboard.  
X
Y
Z
T
Operating the Calculator  
153  
 
Other letters are available as the j function of another key, similar to the 2 and 8  
modifiers described in the previous section. For example:  
A
2 È types , which is  
the same color as the  
2 key.  
j [A] displays an A,  
which is the same color as  
the j key.  
=
Typing Alphabetic Characters on the TI-89 Titanium  
To:  
Press:  
Type a single  
lowercase alpha  
character.  
j and then the letter  
key (status line shows  
)
Type a single  
uppercase alpha  
character.  
¤ and then the letter  
key (status line shows +)  
Type a space.  
j (alpha function  
of the · key)  
Turn on lowercase  
alpha-lock.  
2 ™  
(status line shows  
)
)
Turn on uppercase  
ALPHA-lock.  
¤ ™  
(status line shows  
Turn off alpha-lock.  
j (turns off upper-  
and lowercase lock)  
Notes:  
Operating the Calculator  
154  
On the TI-89 Titanium, 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.  
On the TI-89 Titanium, alpha-lock is always turned off when you change  
applications, such as going from the Text Editor to the Home screen.  
On the TI-89 Titanium, while either type of alpha-lock is on:  
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.  
Automatic Alpha-Lock in TI-89 Titanium Dialog Boxes  
There are certain times when you do not need to press j or 2 to type  
alphabetic characters on the TI-89 Titanium. Automatic alpha-lock is turned on whenever  
a dialog box is first displayed. The automatic alpha-lock feature applies to these 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.  
Units dialog box  
In each unit category, type the first letter of a  
unit or constant. See Constants and  
Measurement Units for more information.  
Dialog boxes with entry  
fields  
These include, but are not limited to: Create  
New Folder, Rename, and Save Copy As.  
Operating the Calculator  
155  
 
Note: To type a number, press j to turn alpha-lock off. Press j or 2 to  
resume typing letters.  
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.  
For Special Characters  
Use the 2 ¿ menu to select from a variety of special characters. For more  
information, refer to “Entering Special Characters” in the Text Editor module.  
Entering Numbers  
The keypad lets you enter positive and negative numbers for your calculations. You can  
also enter numbers in scientific notation.  
Entering a Negative Number  
1. Press the negation key ·. (Do not use the subtraction key |.)  
2. Type the number.  
To see how your graphing calculator evaluates a negation in relation to other functions,  
refer to the Equation Operating System (EOS™) hierarchy in the Technical Reference  
Operating the Calculator  
156  
2
module. For example, it is important to know that functions such as x are evaluated  
before negation.  
Use c and d to include parentheses if you  
have any doubt about how a negation will be  
2
Evaluated as M(2 )  
evaluated.  
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 = M63  
– but –  
9 p | 7 displays an error message.  
6 | 2 = 4  
– but –  
6 · 2 = M12 since it is interpreted as 6(M2), implied multiplication.  
· 2 « 4 = 2  
– but –  
| 2 « 4 subtracts 2 from the previous answer and then adds 4.  
Important: Use | for subtraction and use · for negation.  
Entering a Number in Scientific Notation  
1. Type the part of the number that precedes the exponent. This value can be an  
expression.  
Operating the Calculator  
157  
2. Press:  
^
í 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 and the magnitude of the  
number.  
-2  
Represents 123.45 × 10  
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.  
Operating the Calculator  
158  
     
Definitions  
Expression  
Consists of numbers, variables, operators, functions, and  
their arguments that evaluate to a single answer. For  
2
example: pr +3.  
Enter an expression in the same order that it normally is  
written.  
In most places where you are required to enter a value,  
you can enter an expression.  
Operator  
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.  
Functions require one or more arguments (enclosed in  
parentheses) after the function. For example: (5) and  
min(5,8).  
Instruction  
Initiates an action.  
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.  
Note: For instructions, do not put the arguments in  
parentheses.  
Notes:  
The Technical Reference module describes all of the built-in functions and  
instructions.  
Operating the Calculator  
159  
   
This guidebook uses the word command as a generic reference to both functions  
and instructions.  
Implied Multiplication  
The graphing calculator recognizes implied multiplication, provided it does not conflict  
with a reserved notation.  
If you enter:  
The calculator interprets it as:  
Valid  
2p  
2ùp  
4 sin(46)  
5(1+2) or (1+2)5  
[1,2]a  
4ùsin(46)  
5ù(1+2) or (1+2)ù5  
[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]  
Parentheses  
Expressions are evaluated according to the Equation Operating System (EOS™)  
hierarchy described in the Technical Reference module. To change the order of  
evaluation or just to ensure that an expression is evaluated in the order you require, use  
parentheses.  
Calculations inside a pair of parentheses are completed first. For example, in 4(1+2),  
EOS first evaluates (1+2) and then multiplies the answer by 4.  
Operating the Calculator  
160  
 
Entering an Expression  
Type the expression, and then press ¸ to evaluate it. To enter a function or  
instruction name on the entry line, you can:  
Press its key, if available. For example, press:2 W  
– or –  
Select it from a menu, if available. For example, select 2:abs from the Number  
submenu of the MATH menu.  
– or –  
Type the name letter-by-letter from the keyboard. (On the TI-89 Titanium, use j  
and 2 to type letters.) You can use any mixture of uppercase or lowercase  
letters. For example, type sin( or Sin(.  
Example  
Type the function name in  
this example.  
Calculate 3.76 ÷ (M7.9 + 5) + 2 log 45.  
Operating the Calculator  
161  
TI-89 Titanium  
Press  
Display  
3.76/( M7.9+(  
3.76 e  
c · 7.9 «  
2 ]  
2 ] inserts ( because its  
argument must be in  
parentheses.  
5 d d  
3.76/( M7.9+(5))  
Use d once to close (5) and again  
to close (M7.9 + 5).  
« 2  
2 LOG  
j c 45 d  
3.76/( M7.9+(5))+2log(45)  
log requires ( ) around its argument.  
¸
Note: You can also select log by using ½  
Operating the Calculator  
162  
Entering Multiple Expressions on a Line  
To enter more than one expression or  
instruction at a time, separate them with a  
colon by pressing 2 Ë.  
Ê
Ë
Ê Displays last result only.  
Ë ! is displayed when you press § to store  
a value to a variable.  
If an Entry or Answer Is Too Long for One Line  
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 to fit on one  
line, 8 is displayed at the end of the line.  
To view the entire entry or answer:  
1. Press C to move the cursor from the entry line up into the history area. This  
highlights the last answer.  
Operating the Calculator  
163  
 
2. As necessary, use C and D to highlight the entry or answer you want to view. For  
example, C moves from answer to entry, up through the history area.  
3. Use B and A or 2 B and 2 A to scroll  
right and left.  
Note: When you scroll to the right, 7 is  
displayed at the beginning of the line.  
4. To return to the entry line, press N.  
Continuing a Calculation  
When you press ¸ to evaluate an expression, the graphing calculator leaves the  
expression on the entry line and highlights it. You can continue to use the last answer or  
enter a new expression.  
If you press:  
The calculator:  
Replaces the entry line with the variable ans(1),  
which lets you use the last answer as the beginning  
of another expression.  
«, |, p, e,  
Z, or §  
Any other key  
Erases the entry line and begins a new entry.  
Example  
Calculate 3.76 ÷ (M7.9 + 5). Then add 2 log 45 to the result.  
Operating the Calculator  
164  
TI-89 Titanium  
Press  
Display  
3.76 e c · 7.9 «  
2 ] 5 d d  
¸
« 2 2 LOG  
j c 45 d  
¸
When you press «, the  
entry line is replaced with  
the variable ans(1), which  
contains the last answer.  
Stopping a Calculation  
When a calculation is in progress, BUSY appears on the right end of the status line. To  
stop the calculation, press ´.  
There may be a delay before the Break  
message is displayed.  
Press N to return to the current application.  
Formats of Displayed Results  
A result may be calculated and displayed in any of several formats. This section  
describes the modes and their settings that affect the display formats. You can check or  
change your current mode settings.  
Operating the Calculator  
165  
 
Pretty Print Mode  
By default, Pretty Print = ON. Exponents, roots, fractions, etc., are displayed in the same  
form in which they are traditionally written. You can use 3 to turn pretty print off and  
on.  
Pretty Print  
ON  
OFF  
π
x – 3  
2
2
--  
p ,  
,
-----------  
p^2, p/2, ((x–3)/2)  
2
The entry line does not show an expression in pretty print. If pretty print is turned on, the  
history area will show both the entry and its result in pretty print after you press ¸.  
Exact/Approx Mode  
By default, Exact/Approx = AUTO. You can use 3 to select from three settings.  
Because AUTO is a combination of the other  
two settings, you should be familiar with all  
three settings.  
Operating the Calculator  
166  
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.  
Shows simplified fractional results.  
Shows symbolic p.  
Shows symbolic form of roots that  
cannot be evaluated to a whole number.  
Press 8 ¸ to temporarily override  
the EXACT setting and display a  
floating-point result.  
Note: By retaining fractional and symbolic forms, EXACT reduces rounding errors  
that could be introduced by intermediate results in chained calculations.  
Operating the Calculator  
167  
APPROXIMATE — All numeric results, where possible, are displayed in floating-point  
(decimal) form.  
Note: Results are rounded to the precision of your graphing calculator and displayed  
according to current mode settings.  
Fractional results are evaluated  
numerically.  
Symbolic forms, where possible, are  
evaluated numerically  
Because undefined variables cannot be evaluated, they are treated algebraically.  
2
2
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.  
Operating the Calculator  
168  
 
Note: 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
2.  
1.33333  
25.5  
2
8/6  
4/3  
4/3  
51/2  
25.5 — A decimal in the  
entry forces a  
8.5ù3  
(2)/2  
.707107  
floating-point result  
in AUTO.  
2
2
------  
------  
2
2
6.28319  
6.28319  
pù2  
2p  
2p  
2p  
6.28319  
pù2.  
Note: To evaluate an entry in APPROXIMATE form, regardless of the current setting,  
press 8 ¸.  
Display Digits Mode  
By default, Display Digits = FLOAT 6, which means that results are rounded to a  
maximum of six digits. You can use 3 to select different settings. The settings apply  
to all exponential formats.  
Operating the Calculator  
169  
 
Internally, the calculator calculates and retains all decimal results with up to 14  
significant digits (although a maximum of 12 are displayed).  
Setting  
Example  
Description  
FIX  
(0–12)  
123.  
123.5  
123.46  
123.457  
(FIX 0)  
(FIX 1)  
(FIX 2)  
(FIX 3)  
Results are rounded to the  
selected number of decimal  
places.  
FLOAT  
123.456789012  
Number of decimal places varies,  
depending on the result.  
FLOAT  
(1–12)  
1.E 2  
1.2E 2  
123.  
123.5  
123.46  
123.457  
(FLOAT 1)  
Results are rounded to the total  
number of selected digits.  
(FLOAT 2)  
(FLOAT 3)  
(FLOAT 4)  
(FLOAT 5)  
(FLOAT 6)  
Notes:  
Regardless of the Display Digits setting, the full value is used for internal floating-  
point calculations to ensure maximum accuracy.  
A result is automatically shown in scientific notation if its magnitude cannot be  
displayed in the selected number of digits.  
Exponential Format Mode  
By default, Exponential Format = NORMAL.  
You can use 3 to select from three  
settings.  
Operating the Calculator  
170  
Setting  
Example  
Description  
NORMAL  
12345.6  
If a result cannot be displayed in the  
number of digits specified by the  
Display Digits mode, the calculator  
switches from NORMAL to  
SCIENTIFIC for that result only.  
4
SCIENTIFIC  
1.23456E 4  
1.23456 × 10  
Ê
Ë
3
ENGINEERING  
1.23456E 3  
12.3456 × 10  
Ì
Í
Ê Always 1 digit to the left of the decimal point.  
Ë Exponent (power of 10).  
Ì May have 1, 2, or 3 digits to the left of the decimal point.  
Í Exponent is a multiple of 3.  
Note: In the history area, a number in an entry is displayed in SCIENTIFIC if its absolute  
value is less than .001.  
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.  
Operating the Calculator  
171  
   
Removing the Highlight from the Previous Entry  
After you press ¸ to evaluate an expression, the calculator 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.  
To remove the highlight, move the cursor  
toward the side of the expression you want to  
edit.  
A
B
A moves the cursor to the beginning.  
B moves the cursor to the end of the expression.  
Moving the Cursor  
After removing the highlight, move the cursor to the applicable position within the  
expression.  
To move the cursor:  
Press:  
Left or right within an  
expression.  
Hold the pad to repeat the  
movement.  
A or B  
To the beginning of the  
expression.  
2 A  
2 B  
To the end of the expression.  
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.  
Operating the Calculator  
172  
Deleting a Character  
To delete:  
Press:  
The character to the left of  
the cursor.  
0
Hold 0 to delete multiple  
characters.  
The character to the right of  
the cursor.  
8 0  
All characters to the right of  
the cursor.  
If there are no characters to  
the right of the cursor, M  
erases the entire entry line.  
M
(once only)  
Clearing the Entry Line  
To clear the entry line, press:  
M if the cursor is at the beginning or end of the entry line.  
– or –  
M M if the cursor is not at the beginning or end of the entry line. The first  
press deletes all characters to the right of the cursor, and the second clears the entry  
line.  
Operating the Calculator  
173  
Inserting or Overtyping a Character  
The calculator has both an insert and an overtype mode. By default, the calculator is in  
the insert mode. To toggle between the insert and overtype modes, press 2 /.  
If in:  
The next character you  
type:  
Will be inserted at the  
cursor.  
Thin cursor between characters  
Cursor highlights a character  
Will replace the highlighted  
character.  
Note: Look at the cursor to see if you’re in insert or overtype mode.  
Replacing or Deleting Multiple Characters  
First, highlight the applicable characters. Then, replace or delete all the highlighted  
characters.  
Operating the Calculator  
174  
To 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 A or B to highlight  
characters left or right of the cursor.  
Hold ¤ and press  
B B B B.  
To replace or delete the highlighted characters:  
1. Type the new characters.  
2. Press 0.  
Note: When you highlight characters to  
replace, remember that some function  
keys automatically add an open  
parenthesis.  
Menus  
To leave the keyboard uncluttered, the calculator uses menus to access many operations.  
This section gives an overview of how to select an item from any menu. Specific menus  
Operating the Calculator  
175  
are described in the appropriate modules.  
Displaying a Menu  
Press:  
To display:  
A toolbar menu — Drops down from the toolbar at the  
top of most application screens. Lets you select  
operations useful for that application.  
ƒ, , etc.  
Apps desktop or APPLICATIONS menu — Lets you  
select from a list of applications.  
O
CHAR menu — Lets you select from categories of  
special characters (Greek, math, etc.).  
2 ¿  
2 I  
½
MATH menu — Lets you select from categories of  
math operations.  
CATALOG menu — Lets you select from a complete,  
alphabetic list of built-in functions and instructions.  
Also lets you select user-defined functions or Flash  
application functions (if any have been defined or  
loaded).  
CUSTOM menu — Lets you access a menu that you  
can customize to list any available function,  
instruction, or character. The calculator includes a  
default custom menu, which you can modify or  
redefine. Refer to the Calculator Home Screen and/or  
the Programming module for more information on the  
custom menu.  
2 ¾  
Operating the Calculator  
176  
Selecting an Item from a Menu  
To select an item from the displayed menu, either:  
Press the number or letter shown to the left of that item. For a letter on the TI-89  
Titanium, press j and then a letter key.  
– or –  
Use the cursor pad D and C to highlight the item, and then press ¸. (Note that  
pressing C from the first item 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(  
Items Ending with 8 (Submenus)  
If you select a menu item ending with 8, a submenu is displayed. You then select an item  
from the submenu.  
Operating the Calculator  
177  
Because of limited  
screen size, the TI-89  
Titanium overlaps  
these menus.  
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.  
Operating the Calculator  
178  
 
Items Containing “. . .” (Dialog Boxes)  
If you select a menu item containing “...” (ellipsis marks), a dialog box is displayed for  
you to enter additional information.  
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 Titanium.)  
After typing in an input box such as Variable, you must press ¸ twice to save the  
information and close the dialog box.  
Canceling a Menu  
To cancel the current menu without making a selection, press N. Depending on  
whether any submenus are displayed, you may need to press N several times to  
cancel all displayed menus.  
Operating the Calculator  
179  
Moving from One Toolbar Menu to Another  
To move from one toolbar menu to another without making a selection, either:  
Press the key (ƒ, , etc.) for the other toolbar menu.  
– or –  
Use the cursor pad to move to the next (press B) or previous (press A) toolbar  
menu. Pressing B from the last menu moves to the first menu, and vice versa.  
When using B, be sure that an item with a submenu is not highlighted. If so, B displays  
that item’s submenu instead of moving to the next toolbar menu.  
Example: Selecting a Menu Item  
Round the value of p to three decimal places. Starting from a clear entry line on the  
Home screen:  
1. Press 2 I to display the MATH menu.  
2. Press 1 to display the Number submenu.  
(Or press ¸ since the first item is  
automatically highlighted.)  
3. Press 3 to select round. (Or press D D  
and ¸.)  
4. Press 2 T b 3 d and then ¸ to  
evaluate the expression.  
Ê
Ê Selecting the function in Step 3 automatically  
typed round( on the entry line.  
Operating the Calculator  
180  
   
Selecting an Application  
The graphing calculator has different applications that let you solve and explore a variety  
of problems. You can select an application from a menu, the Apps desktop, or you can  
access commonly used applications directly from the keyboard.  
From the APPLICATIONS Menu  
1. If the Apps desktop is off, press O to display a menu that lists the applications.  
Note: To cancel the menu without making a selection, press N.  
2. Select an application. Either:  
Use the cursor pad D or C to  
highlight the application and then  
press ¸.  
– or –  
Press the number or letter for that  
application.  
Application:  
FlashApps  
Y= Editor  
Lets you:  
Display a list of Flash applications, if any.  
Define, edit, and select functions or equations for  
graphing.  
Window Editor  
Graph  
Set window dimensions for viewing a graph.  
Display graphs.  
Operating the Calculator  
181  
Application:  
Lets you:  
Table  
Display a table of variable values that correspond to  
an entered function.  
Data/Matrix Editor  
Enter and edit lists, data, and matrices. You can  
perform statistical calculations and graph statistical  
plots.  
Program Editor  
Text Editor  
Enter and edit programs and functions.  
Enter and edit a text session.  
Numeric Solver  
Enter an expression or equation, define values for all  
but one variable, and then solve for the unknown  
variable.  
Home  
Enter expressions and instructions, and perform  
calculations.  
From the Apps Desktop  
Press the first letter of the application name, or use the cursor keys to highlight an  
application icon on the Apps desktop and press ¸. (If you press the first letter of the  
application and more than one application begins with that letter, the first one  
alphabetically is highlighted). The application either opens directly or displays a dialog  
box. (Your Apps desktop may vary from the one shown below.)  
Operating the Calculator  
182  
The most common dialog box lists these options for the application:  
Option  
Description  
Current  
Returns the screen displayed when you last viewed the  
App. (If there is no current file/variable for the selected  
App, this option defaults to New if you press ¸.)  
Open  
New  
Lets you select an existing file.  
Creates a new file with the name typed in the field.  
Select an option and press ¸. The application appears.  
Note: The general term variable is used to refer to the application data files that you  
create.  
Use any of these methods to return to the Apps desktop from within an application:  
Press O.  
In full-screen mode, press 2 K.  
In split-screen mode, press 2 K to open the full-screen view of the active  
application, then press 2 K again.  
To return to the last open application from the Apps desktop, press 2 a.  
Operating the Calculator  
183  
From the Keyboard  
Operating the Calculator  
184  
You can access commonly used applications from the keyboard. On the TI-89 Titanium  
for example, 8 # is the same as pressing 8 and then ƒ. This guidebook uses the  
notation 8 #, similar to the notation used in second functions.  
Application:  
Press:  
Home  
"
"
Applications listed  
above ƒ, etc.,  
are printed in the  
same color as 8.  
Y= Editor  
8 #  
Window Editor  
Graph  
8 $  
8 %  
8 &  
8 '  
Table Setup  
Table Screen  
Setting Modes  
Modes control how numbers and graphs are displayed and interpreted. Mode settings  
are retained by the Constant Memory™ feature when the graphing calculator is turned  
off. All numbers, including elements of matrices and lists, are displayed according to the  
current mode settings.  
Checking Mode Settings  
Press 3 to display the MODE dialog box, which lists the modes and their current  
settings.  
Operating the Calculator  
185  
Ê
Ë
Ì
Ê There are three pages of mode listings. Press ƒ, , or to quickly display a particular  
page.  
Ë Indicates you can scroll down to see additional modes.  
Ì ! indicates that you can press B or A to display and select from a menu.  
Note: Modes that are not currently valid are dimmed. For example, on Page 2, Split 2 App  
is not valid when Split Screen = FULL. When you scroll through the list, the cursor skips  
dimmed settings.  
Changing Mode Settings  
From the MODE dialog box:  
1. Highlight the mode setting you want to change. Use D or C (with ƒ, , or ) to  
scroll through the list.  
2. Press B or A to display a menu that lists the valid settings. The current setting is  
highlighted.  
3. Select the applicable setting. Either:  
Use D or C to highlight the setting and press ¸.  
– or –  
Operating the Calculator  
186  
       
Press the number or letter for that setting.  
Note: To cancel a menu and return to the MODE dialog box without making a  
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 N instead of ¸ to exit the MODE dialog box, any mode  
changes you made will be canceled.  
Overview of the Modes  
Note: For detailed information about a particular mode, look in the applicable section of  
this guidebook.  
Mode  
Description  
Graph  
Type of graphs to plot: FUNCTION, PARAMETRIC,  
POLAR, SEQUENCE, 3D, or DE.  
Current Folder  
Display Digits  
Angle  
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 Calculator Home Screen.  
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.  
Units in which angle values are interpreted and displayed:  
RADIAN, DEGREE or GRADIAN.  
Operating the Calculator  
187  
         
Mode  
Description  
Exponential  
Format  
Notation used to display results: NORMAL, SCIENTIFIC,  
or ENGINEERING.  
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  
Split Screen  
Turns the pretty print display feature OFF or ON.  
Splits the screen into two parts and specifies how the  
parts are arranged: FULL (no split screen),  
TOP-BOTTOM, or LEFT-RIGHT. Refer to the Split  
Screens module.  
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  
Exact/Approx  
Base  
If Number of Graphs = 2, selects the type of graph in the  
Split 2 part of the screen. Refer to Calculator Home  
Screen.  
Calculates expressions and displays results in numeric  
form or in rational/symbolic form: AUTO, EXACT, or  
APPROXIMATE.  
Lets you perform calculations by entering numbers in  
decimal (DEC), hexadecimal (HEX), or binary (BIN) form.  
Operating the Calculator  
188  
     
Mode  
Description  
Unit System  
Lets you select from three systems of measurement to  
specify the default units for displayed results: SI (metric or  
MKS); Eng/US (feet, pounds, etc.); or Custom.  
Custom Units  
Language  
Lets you select custom defaults. The mode is dimmed  
until you select Unit System, 3:CUSTOM.  
Lets you localize the calculator into one of several  
languages, depending on which language Flash  
applications are installed.  
Apps Desktop  
Turns the Apps desktop ON or OFF.  
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 memory.  
Clean Up Toolbar Menu  
To display the Clean Up menu from the Home  
screen, press:  
2 ˆ  
Operating the Calculator  
189  
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.  
Single-character variable names are often used in  
symbolic calculations such as:  
2
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.  
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:  
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 the Calculator Home  
Screen module for information on the custom menu.  
Notes:  
Operating the Calculator  
190  
 
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.  
For information about checking and resetting memory or other system defaults, refer  
to Memory and Variable Management.  
Using the Catalog Dialog Box  
The CATALOG provides a way to access any built-in 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).  
Displaying the CATALOG  
To display the CATALOG dialog box, press:  
½
The CATALOG defaults to Built-in, which displays an alphabetic list of all pre-  
installed commands (functions and instructions).  
Ê
Ë
Ì
Operating the Calculator  
191  
Ê Defaults to Built-in.  
Ë ƒ Help displays a command’s parameters in a dialog box.  
Ì and allow access to Flash application functions and User-Defined functions and  
programs.  
Note: Options that are not currently valid are dimmed. For example, 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.  
Selecting a Built-in Command from the CATALOG  
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.  
1. Press:  
½
2. Press Built-in.  
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.  
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.  
Operating the Calculator  
192  
3. Move the 8 indicator to the command, and press ¸.  
Press or type:  
D or C  
To move the 8 indicator:  
One function or program at a time  
One page at a time  
2 D or 2 C  
To the first function that  
begins with a specified letter  
The letter key. (On the TI-89  
Titanium, do not press j first. If  
you do, you need to press j or  
2 again before you can  
type a letter.)  
Note: From the top of the list, press C to move to the bottom. From the bottom, press D  
to move to the top.  
Information about Parameters  
For the command indicated by 8, the status line shows the required and optional  
parameters, if any, and their type.  
Ê
Ë
Ê Indicated command and its parameters  
Ë Brackets [ ] indicate optional parameters  
Operating the Calculator  
193  
From the example above, the syntax for factor is:  
factor(expression)  
– or –  
factor(expression,variable)  
required  
optional  
Note: For details about the parameters, refer to that command’s description in the  
Technical Reference module.  
Viewing CATALOG Help  
You can display a command's parameters in a dialog box by pressing ƒ Help. The  
parameters are the same as those displayed on the status line.  
Indicated  
command and its  
parameters.  
Some commands, such as ClrDraw, do not require parameters. If you select one of these  
commands, parameters will not display on the status line and you will see Unavailable if  
you press ƒ Help.  
Press N to exit the CATALOG Help dialog box.  
Operating the Calculator  
194  
 
Selecting a Flash Application Function  
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.  
1. Press:  
½
2. Press Flash Apps. (This option is dimmed if no Flash applications are installed.)  
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.  
3. Move the 8 indicator to the function, and press ¸.  
Press or type:  
D or C  
To move the 8 indicator:  
One function or program at a time  
One page at a time  
2 D or 2 C  
To the first function that  
begins with a specified letter  
The letter key. (On the TI-89  
Titanium, do not press j first. If  
you do, you need to press j or  
2 again before you can  
type a letter.)  
Operating the Calculator  
195  
 
Selecting a User-Defined Function or Program  
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 Calculator Home Screen, and “Overview of Entering a  
Function” in the Programming module. See Programming for instructions on how to  
create and run a 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:  
½
2. Press User-Defined. (This option is dimmed if you have not defined a function or  
created a program.)  
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.  
Note: Use the VAR-LINK screen to manage variables, folders, and Flash  
applications. See the Memory and Variable Management module.  
Operating the Calculator  
196  
3. Move the 8 indicator to the function or program, and press ¸.  
Press or type:  
D or C  
To move the 8 indicator:  
One function or program at a time  
One page at a time  
2 D or 2 C  
To the first function or program that The letter key. (On the TI-89  
begins with a specified letter  
Titanium, do not press j first. If  
you do, you need to press j or  
2 again before you can  
type a letter.)  
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 calculator encounters the name in an  
expression, it substitutes the variable’s stored value.  
Rules for Variable Names  
A variable name:  
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.  
Operating the Calculator  
197  
Cannot be the same as a name that is preassigned by the calculator. Preassigned  
names include:  
-
Built-in functions (such as abs) and instructions (such as LineVert). Refer to the  
Technical Reference module.  
-
System variables (such as xmin and xmax, which are used to store graph-  
related values). Refer to the Technical Reference module for a list.  
Examples  
Variable  
myvar  
a
Description  
OK  
OK  
Log  
Not OK, name is preassigned to the log function.  
OK  
Log1  
3rdTotal  
circumfer  
Not OK, starts with a digit.  
Not OK, more than 8 characters.  
Data Types  
DataTypes  
Examples  
Expressions  
2
2.54, 1.25E6, 2p, xmin/10, 2+3i, (x–2) , 2 2  
Lists  
{2 4 6 8}, {1 1 2}  
Operating the Calculator  
198  
DataTypes  
Examples  
Matrices  
1 0 0  
3 4 6  
,
1 0 0  
Character strings  
Pictures  
“Hello”, “The answer is:”, “xmin/10”  
Functions  
myfunc(arg), ellipse(x,y,r1,r2)  
Storing a Value in a Variable  
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.  
Note: TI-89 Titanium 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 Symbolic Manipulation.  
Operating the Calculator  
199  
Displaying a Variable  
1. Type the variable name.  
2. Press ¸.  
If the variable is undefined, the variable name is shown in the result.  
In this example, the variable a is undefined.  
Therefore, it is used as a symbolic variable.  
Note: Refer to Symbolic Manipulation for  
information about symbolic manipulation.  
Using a Variable in an Expression  
1. Type the variable name into the  
expression.  
2. Press ¸ to evaluate the expression.  
The variable’s value  
did not change.  
Note: To view a list of existing variable  
names, use 2 ° as described in  
Memory and Variable Management.  
If you want the result to replace the variable’s  
previous value, you must store the result.  
Operating the Calculator  
200  
Recalling a Variable’s Value  
In some cases, you may want to use a variable’s actual value in an expression instead of  
the variable name.  
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.  
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 calculator, including several important mode settings.  
Status Line Indicators  
Ê
Ë
Ì
Í
Î
Ï
Ð
Ñ
Ê Current Folder  
Ë Modifier Key  
Ì Angle Mode  
Operating the Calculator  
201  
Í Exact/Approx Mode  
Î Graph Number  
Ï Graph Mode  
Ð Replace Batteries  
Ñ History Pairs, Busy/Pause, Locked Variable  
Indicator  
Meaning  
Current Folder  
Shows the name of the current folder. Refer to “Using  
Folders to Store Independent Sets of Variables” in  
Calculator Home Screen. MAIN is the default folder.  
Modifier Key  
2nd  
Shows which modifier key is in effect, as described  
below.  
2 — will use the second function of the next key you  
press.  
2
8 — will use the diamond feature of the next key you  
press.  
+
¤ — will type the uppercase letter for the next key you  
press. On the TI-89 Titanium, you can use ¤ to type a  
letter without having to use j.  
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.  
¤ 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.  
Operating the Calculator  
202  
   
Indicator  
Meaning  
Angle Mode  
Shows the units in which angle values are interpreted  
and displayed. To change the Angle mode, use the  
3 key.  
RAD  
DEG  
Radians  
Degrees  
Gradian  
GRAD  
Exact/Approx  
Mode  
Shows how answers are calculated and displayed. To  
change the Exact/Approx mode, use the 3 key.  
AUTO  
EXACT  
Auto  
Exact  
APPROX  
Approximate  
Graph Number  
If the screen is split to show two independent graphs,  
this indicates which graph is active — G1 or G2.  
Graph Mode  
Indicates the type of graphs that can be plotted. To  
change the Graph mode, use the 3 key.  
FUNC  
PAR  
POL  
SEQ  
3D  
y(x) functions  
x(t) and y(t) parametric equations  
r(q) polar equations  
u(n) sequences  
z(x,y) 3D equations  
y'(t) differential equations  
DE  
Operating the Calculator  
203  
   
Indicator  
Meaning  
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,  
Busy/Pause,  
Archived  
The information shown in this part of the status line  
depends on the application you are using.  
23/30  
Displayed on the Home screen to show the number of  
entry/answer pairs in the history area. Refer to History  
Information on the Status Line in the Calculator Home  
Screen module.  
BUSY  
PAUSE  
Œ
A calculation or graph is in progress.  
You paused a graph or program.  
The variable opened in the current editor (Data/Matrix  
Editor, Program Editor, or Text Editor) is locked or  
archived and cannot be modified.  
Notes:  
To cancel 2, 8, j, or ¤, press the same key again or press a different  
modifier key.  
If the next key you press does not have a diamond feature or an associated letter,  
the key performs its normal operation.  
Operating the Calculator  
204  
 
Calculator Home Screen  
Calculator Home Screen  
The calculator Home screen is the starting point for math operations, including executing  
instructions, evaluating expressions, and viewing results.  
A blank calculator Home screen  
This module describes the parts of the calculator Home screen, how to scroll through or  
modify the history area; how to use cut, copy, and paste, and more.  
Note: The term “calculator Home screen” is used in this module. Other modules use the  
term “Home screen.” Both terms are interchangeable and refer to the same screen.  
Displaying the Calculator Home Screen  
When you first turn on your TI-89 Titanium, the Apps desktop is displayed. To display the  
calculator Home screen, highlight the Home icon and press ¸. You can also display  
the calculator Home screen by pressing " (TI-89 Titanium). If you turn off the Apps  
Desktop mode, the calculator Home screen appears automatically.  
Calculator Home Screen  
205  
Parts of the Calculator Home Screen  
The following example contains previously entered data and describes the main parts of  
the calculator 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 calculator Home screen. To  
display a toolbar menu, press ƒ, , etc.  
Ë Pretty Print Display  
Shows exponents, roots, fractions, etc., in traditional form.  
Ì Last Entry  
Your last entry.  
Í Entry Line  
Where you enter expressions or instructions.  
Î Status Line  
Shows the current state of the calculator, including several important mode settings.  
Calculator Home Screen  
206  
 
Ï Last Answer  
Result of your last entry. Note that results are not displayed on the entry line. Note: 8 ¸  
(Approx) was used in this example.  
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.  
Ë History Area  
Lists entry/answer pairs you have entered. Pairs scroll up the screen as you make new entries.  
Ì 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.  
Calculator Home Screen  
207  
 
History Area  
The history area shows up to eight previous entry/answer pairs (depending on the  
complexity and height of the displayed expressions). When the display is filled,  
information scrolls off the top of the screen. You can use the history area to:  
Review previous entries and answers. You can use the cursor to view entries and  
answers that have scrolled off the screen.  
Recall or auto-paste a previous entry or answer onto the entry line so that you can  
re-use or edit it.  
Scrolling through the History Area  
Normally, the cursor is in the entry line. However, you can move the cursor into the  
history area.  
To:  
Do this:  
View entries or answers  
that have scrolled off  
the screen  
From the entry line, press C to highlight  
the last answer.  
Continue using C to move the cursor from  
answer to entry, up through the history  
area.  
Go to the oldest or newest  
history pair  
If the cursor is in the history area, press  
8 C or 8 D, respectively.  
View an entry or answer  
that is too long for one  
line (8 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.  
Calculator Home Screen  
208  
To:  
Do this:  
Return the cursor to the  
entry line  
Press N, or press D until the cursor is  
back on the entry line.  
Note: An example of viewing a long answer is available.  
History Information on the Status Line  
Use the history indicator on the status line for information about the entry/answer pairs.  
For example:  
If the cursor is  
on the entry  
line:  
Total number of  
pairs that are  
currently saved.  
Maximum number of  
pairs that can be  
saved.  
8/30  
If the cursor is  
in the history  
area:  
Pair number of  
the highlighted  
entry or answer.  
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.  
Calculator Home Screen  
209  
 
Modifying the History Area  
To:  
Do this:  
Change the number of  
pairs that can be saved  
Press ƒ and select 9:Format, or press  
@
8 Í  
Then press B, use C or D to highlight the  
new number, and press ¸ twice.  
Clear the history area  
and delete all saved pairs  
Press ƒ and select 8:Clear Home, or enter  
ClrHome on the entry line.  
Delete a particular  
entry/answer pair  
Move the cursor to either the entry or answer.  
Press 0 or M.  
Saving the Calculator Home Screen Entries as a  
Text Editor Script  
To save all the entries in the history area, you can save the calculator Home screen to a  
text variable. When you want to reexecute those entries, use the Text Editor to open the  
variable as a command script.  
Saving the Entries in the History Area  
From the calculator Home screen:  
1. Press ƒ and select 2:Save Copy As.  
Calculator Home Screen  
210  
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  
Folder  
Automatically set as Text and cannot be changed.  
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.  
Note: For information about folders, see the Memory and Variable Management  
module.  
3. Press ¸ (after typing in an input box such as Variable, press ¸ twice).  
Restoring the Saved Entries  
Because the entries are stored in a script format, you cannot restore them from the  
calculator Home screen. (On the calculator Home screen’s ƒ toolbar menu, 1:Open is  
not available.) Instead:  
Calculator Home Screen  
211  
   
1. Use the Text Editor to open the variable containing the saved calculator 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 calculator Home  
screen.  
This split screen shows the Text Editor (with the command line script) and the  
restored calculator Home screen.  
Note: For complete information on using the Text Editor and executing a command  
script, refer to the Text Editor module.  
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 clipboard, which  
is an area in memory that serves as a temporary storage location.  
Auto-paste vs. Cut/Copy/Paste  
Auto-paste is a quick way to copy an entry or answer in the history area and paste it to  
the entry line.  
Calculator Home Screen  
212  
1. Use C and D to highlight the item in the history area.  
2. Press ¸ to auto-paste that item to the entry line.  
To copy or move information in the entry line, you must use a cut, copy, or paste  
operation. (You can perform a copy operation in the history area, but not a cut or paste.)  
Cutting or Copying Information to the Clipboard  
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.  
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.  
2. Press ƒ and select 4:Cut or 5:Copy.  
Calculator Home Screen  
213  
Clipboard = (empty or the previous contents)  
After cut  
After copy  
Clipboard = x^4–3x^3–6x^2+8x  
Clipboard = x^4–3x^3–6x^2+8x  
Note: You can cut, copy or paste without having to use the ƒ toolbar menu. Press:  
8 5, 8 6, or 8 7  
@
Cutting is not the same as deleting. When you delete information, it is not placed in the  
clipboard and cannot be retrieved.  
Note: When you cut or copy information, it replaces the clipboard’s previous contents, if  
any.  
Pasting Information from the Clipboard  
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.  
1. Position the cursor where you want to paste the information.  
Calculator Home Screen  
214  
2. Press ƒ and select 6:Paste, or use the key shortcut:  
8 7  
@
Example: Copying and Pasting  
Suppose you want to reuse an expression without retyping it each time.  
1. Copy the applicable information.  
a) Use ¤ B or ¤ A to highlight the  
expression.  
b) Press:  
@
8 6  
c) For this example, press ¸ to  
evaluate the entry.  
2. Paste the copied information into a new entry.  
a) Begin a new entry and place the cursor where you want to paste the copied  
information.  
Calculator Home Screen  
215  
b) Press 1 to select the d (differentiate) function.  
c) Press:  
@
8 7  
to paste the copied expression.  
d) Complete the new entry, and press  
¸.  
Note: You can also reuse an expression by creating a user-defined function.  
3. Paste the copied information into a different application.  
a) Press 8 # to display the Y= Editor.  
b) Press ¸ to define y1(x).  
c) Press:  
@
8 7  
to paste.  
d) Press ¸ to save the new  
definition.  
Note: By copying and pasting, you can easily transfer information from one  
application to another.  
Calculator Home Screen  
216  
 
Reusing a Previous Entry or the Last Answer  
You can reuse a previous entry by reexecuting the entry “as is” or by editing the entry  
and then reexecuting it. You can also reuse the last calculated answer by inserting it into  
a new expression.  
Reusing the Expression on the Entry Line  
When you press ¸ to evaluate an expression, the TI-89 Titanium leaves that  
expression on the entry line and highlights it. You can type over the entry, or you can  
reuse it as necessary.  
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.  
TI-89 Titanium  
Display  
0 §  
2 NUM  
¸
NUM j « 1 §  
2 NUM  
2 Ë NUM Z 2  
¸
Calculator Home Screen  
217  
 
TI-89 Titanium  
Display  
¸ ¸  
Note: Reexecuting an entry “as is” is useful for iterative calculations that involve  
variables.  
2
Using the equation A=pr , use trial and error to find the radius of a circle that covers 200  
square centimeters.  
Note: 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.95and continue  
until the answer is as accurate as you want.  
TI-89 Titanium  
Display  
8 § j R 2  
Ë
2 T j R Z 2  
¸
8 ¸  
Calculator Home Screen  
218  
 
TI-89 Titanium  
Display  
A 8 8  
7.95 ¸  
Note: When the entry contains a decimal point, the result is automatically displayed in  
floating-point.  
Recalling a Previous Entry  
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.  
To recall:  
Press:  
Effect:  
The last entry  
(if you’ve changed  
the entry line)  
If the last entry is still shown on the  
entry line, this recalls the entry prior  
to that.  
2 `  
once  
Previous entries  
Each press recalls the entry prior to  
the one shown on the entry line.  
2 `  
repeatedly  
Note: You can also use the entry function to recall any previous entry. Refer to entry( ) in  
the Technical Reference module.  
For example:  
Calculator Home Screen  
219  
 
If the entry line contains the last  
entry, 2 ` recalls this entry.  
If the entry line is edited or cleared,  
2 ` recalls this entry.  
Recalling the Last Answer  
Each time you evaluate an expression, the TI-89 Titanium stores the answer to the  
variable ans(1). To insert this variable in the entry line, press 2 ±.  
For example, calculate the area of a garden plot that is 1.7 meters by 4.2 meters. Then  
calculate the yield per square meter if the plot produces a total of 147 tomatoes.  
1. Find the area.  
1.7 p 4.2 ¸  
2. Find the yield.  
Variable ans(1) is  
inserted, and its value  
147 e 2 ± ¸  
is used in the  
calculation.  
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.  
Note: Refer to ans( ) in the Technical Reference module.  
Calculator Home Screen  
220  
 
Auto-Pasting an Entry or Answer from the History  
Area  
You can select any entry or answer from the history area and “auto-paste” a duplicate of  
it on the entry line. This lets you insert a previous entry or answer into a new expression  
without having to retype the previous information.  
Why Use Auto-Paste  
The effect of using auto-paste is similar to 2 ` and 2 ± as described in the  
previous section, but there are differences.  
For entries:  
Pasting lets you:  
2 ` lets you:  
Insert any previous  
Replace the contents of the entry  
entry into the entry line. line with any previous entry.  
For answers: Pasting lets you:  
2 ± lets you:  
Insert the displayed  
value of any  
previous answer  
into the entry line.  
Insert the variable ans(1), which  
contains the last answer only.  
Each time you enter a calculation,  
ans(1) is updated to the latest  
answer.  
Note: You can also paste information by using the ƒ toolbar menu.  
Calculator Home Screen  
221  
Auto-Pasting an Entry or Answer  
1. On the entry line, place the cursor where you want to insert the entry or answer.  
2. Press C to move the cursor up into the history area. This highlights the last answer.  
3. Use C and D to highlight the entry or answer to auto-paste.  
C moves from answer to entry  
up through the history area.  
You can use C to highlight items that  
have scrolled off the screen  
Note: To cancel auto-paste and return to  
the entry line, press N. To view an entry  
or answer too long for one line (indicated  
by 8 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.  
Calculator Home Screen  
222  
 
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 Titanium’s capabilities beyond the built-in functions.  
Format of a Function  
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).  
3
1/x  
cube(x) = x  
Ê Ë  
xroot(x,y) = y  
Ì
Ê
Ë
Ì
Ê Function name  
Ë Argument list  
Ì Definition  
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.  
Note: Function names follow the same rules as variable names. Refer to “Storing and  
Recalling Variable Values” in Operating the Calculator.  
In the argument list, be sure to use the same arguments that are used in the definition.  
3
For example, cube(n) = x gives unexpected results when you evaluate the function.  
Calculator Home Screen  
223  
 
Arguments (x and y in these examples) are placeholders that represent whatever values  
you pass to the function. They do not represent the variables x and y unless you  
specifically pass x and y as the arguments when you evaluate the function.  
Creating a User-Defined Function  
Use one of the following methods.  
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 Programming or information on creating a  
user-defined function.  
Calculator Home Screen  
224  
Creating a Multi-Statement Function  
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.  
Note: For information about similarities and differences between functions and  
programs, refer to Programming.  
For example, suppose you want to create a function that sums a series of reciprocals  
based on an entered integer (n):  
1
n
1
1
1
-- + ----------- + ... + --  
n – 1  
When creating the definition of a multi-statement function, it may be helpful to visualize it  
first in a block form.  
Ê Func  
Ë Local temp,i  
If fPart(nn)ƒ0 or nn{0  
Ì Return “bad argument”  
0!temp  
Í For i,nn,1,M1  
approx(temp+1/i)!temp  
EndFor  
Î Return temp  
Ê EndFunc  
Ê Func and EndFunc must begin and end the function.  
Ë Variables not in the argument list must be declared as local.  
Calculator Home Screen  
225  
Ì Returns a message if nn is not an integer or if nn{0.  
Í Sums the reciprocals.  
Î Returns the sum.  
When entering a multi-statement function on the calculator 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 a colon to separate each  
statement.  
Define sumrecip(nn)=Func:Local temp,i: ... :EndFunc  
Use argument names that will never be used  
when calling the function or program.  
Multi-statement  
functions show as  
On the calculator Home  
screen:  
Enter a multi-statement function on  
one line. Be sure to include colons.  
Note: It’s easier to create a complicated multi-statement function in the Program Editor  
than on the calculator Home screen. Refer to Programming.  
Calculator Home Screen  
226  
Evaluating a Function  
You can use a user-defined function just as  
you would any other function. Evaluate it by  
itself or include it in another expression.  
Displaying and Editing a Function Definition  
To:  
Do this:  
Display a list of all  
user-defined functions  
Press 2 ° to display the VAR-LINK  
screen. You may need to use the View toolbar  
menu to specify the Function variable type. (Refer  
to Memory and Variable Management.)  
– or –  
Press:  
@
½ †  
Display a list of Flash Press:  
application functions  
@
½ …  
Calculator Home Screen  
227  
To:  
Do this:  
Display the definition  
of a user-defined  
function  
From the VAR-LINK screen, highlight the function  
and display the Contents menu.  
@
2 ˆ  
– or –  
From the calculator 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 Programming.)  
Edit the definition  
From the calculator 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 Programming.)  
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.  
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 Titanium may not be able to  
display an answer because there is not enough free memory.  
Calculator Home Screen  
228  
 
If an Entry or Answer Is “Too Long”  
Move the cursor into the history area, and highlight the entry or answer. Then use the  
cursor pad to scroll. For example:  
The following shows an answer that is too long for one line.  
Press A or 2 A  
to scroll left.  
Press B or 2 B  
to scroll right.  
The following shows an answer that is both too long and too tall to be displayed on  
the screen.  
Note: This example uses the randMat function to generate a 25 x 25 matrix.  
Ê
Ê @  
Press C or ¤ C to scroll up  
Ë @  
Press ¤ D to scroll down  
Ì Press A or 2 A to scroll left  
Ì
Ë
Í
Í Press B or 2 B to scroll right  
If There Is not Enough Memory  
A << ...>> symbol is displayed when the TI-89 Titanium does not have enough free  
memory to display the answer.  
Calculator Home Screen  
229  
 
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 Memory and Variable Management.  
If possible, break the problem into smaller parts that can be calculated and displayed  
with less memory.  
Using the Custom Menu  
The TI-89 Titanium 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 the Programming  
module.  
Calculator Home Screen  
230  
Turning the Custom Menu On and Off  
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 calculator Home screen’s normal  
toolbar menu, press 2 ½ to toggle the custom menu on and off.  
2 ¾  
Calculator Home  
screen normal toolbar  
menu  
Custom menu  
Note: You can also turn the custom menu on and off by entering CustmOn or CustmOff in  
the entry line and pressing ¸.  
Unless the menu has been modified, the default custom menu appears.  
Menu  
Function  
Common variable names.  
ƒ Var  
Function names such as f(x), g(x), and f(x,y).  
Items related to solving equations.  
Common units such as _m, _ft, and _l.  
Symbols such as #, ?, and ~.  
f(x)  
Solve  
Unit  
Symbol  
Calculator Home Screen  
231  
Menu  
Function  
International  
Commonly accented characters such as è, é,and ê.  
@
2 ˆ  
Tool  
ClrHome, NewProb, and CustmOff.  
@
2 ‰  
Note: A custom menu can give you quick access to commonly used items. The  
Programming module shows you how to create custom menus for the items you use  
most often.  
Restoring the Default Custom Menu  
If a custom menu other than the default is displayed and you want to restore the default:  
1. From the calculator Home screen, use 2 ½ to turn off the custom menu and  
display the calculator Home screen’s normal toolbar menu.  
2. Display the Clean Up toolbar menu, and  
select 3:Restore custom default.  
@
2 ˆ  
This pastes the commands used to create the default menu into the entry line.  
Note: The previous custom menu is erased. If that menu was created with a  
program, it can be recreated later by running the program again.  
3. Press ¸ to execute the commands and restore the default.  
Calculator Home Screen  
232  
 
Finding the Software Version and ID Number  
In some situations, you may need to find out information about your TI-89 Titanium,  
particularly the software version and the unit’s ID number.  
Displaying the “About” Screen  
1. From either the calculator Home screen  
or the Apps desktop, press ƒ and then  
select A:About.  
Your screen will be different from the one  
shown to the right.  
2. Press ¸ or N to close the screen.  
When Do You Need this Information?  
The information on the About screen is intended for situations such as:  
If you obtain new or upgraded software or Flash applications for your TI-89 Titanium,  
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 Titanium and need to contact technical  
support, knowing the software version may make it easier to diagnose the problem.  
Calculator Home Screen  
233  
   
The About screen displays the following information about your calculator:  
Hardware version  
OS (Advanced Mathematics Software) version  
Product identifier (Product ID)  
Unit ID  
Apps certificate revision number (Cert. Rev.)  
Ê
Ë
Ì
Í
Î
Ê OS version  
Ë Product identifier  
Ì Apps certificate revision number  
Í Hardware version  
Î Unit ID (required to obtain certificates for installing purchased Apps)  
Your screen will be different from the one shown above.  
Calculator Home Screen  
234  
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.  
How Undefined and Defined Variables Are Treated  
When you enter an expression that contains a variable, the TI-89 Titanium treats the  
variable in one of two ways.  
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.  
3
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.  
Symbolic Manipulation  
235  
If x is defined, the result may be in a form  
you did not expect.  
Note: 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.  
Unless you knew that  
5 had been stored to  
x previously, the  
answer 75 could be  
misleading.  
Determining If a Variable Is Exists  
Method:  
Example:  
Enter the variable name.  
If defined, the variable’s  
value is displayed.  
If undefined, the variable  
name is displayed.  
Use the isVar() function.  
If defined, “true” is  
displayed.  
If undefined, “false” is  
displayed.  
Symbolic Manipulation  
236  
 
Method:  
Example:  
Use the getType function.  
If defined, the variable’s  
type is displayed.  
If undefined, “NONE” is  
displayed.  
Note: Use 2 ° to view a list of defined variables, as described in Memory and  
Variable Management.  
Symbolic Manipulation  
237  
 
Deleting a Defined Variable  
You can “undefine” a defined variable by deleting it.  
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 Memory and  
Variable Management.  
All variables of a specific type  
Use the Deltype function.  
Note: The Deltype function deletes all  
variables of the specified type in all  
folders.  
Symbolic Manipulation  
238  
 
To delete:  
Do this:  
All one-letter variables (a – z) in the  
current folder.  
From the Home screen  
Clean Up menu, select  
1:Clear a-z. You will be  
prompted to press ¸ to  
confirm the deletion.  
Note: For information about folders,  
refer to the Calculator Home Screen  
module.  
Temporarily Overriding a Variable  
By using the withoperator ( | ), you can:  
Temporarily override a variable’s defined  
value.  
Temporarily define a value for an  
undefined variable.  
Note: For more information about the | operator, refer to Typing the “With” Operator.  
To type the withoperator ( | ), press:  
@
Í
Symbolic Manipulation  
239  
   
Using Exact, Approximate, and Auto Modes  
The Exact/Approx mode settings, which are described briefly in Operating the Handheld,  
directly affect the precision and accuracy with which the TI-89 Titanium calculates a  
result. This section describes these mode settings as they relate to symbolic  
manipulation.  
EXACT Setting  
When Exact/Approx = EXACT, the handheld uses exact rational arithmetic with up to  
614 digits in the numerator and 614 digits in the denominator. The EXACT setting:  
Transforms irrational numbers to standard forms as much as possible without  
approximating them. For example, 12 transforms to 2 3 and ln(1000) transforms  
to 3 ln(10).  
Converts floating-point numbers to rational numbers. For example, 0.25 transforms  
to 1/4.  
The functions solve, cSolve, zeros, cZeros, factor, , fMin, and fMax use only exact  
symbolic algorithms. These functions do not compute approximate solutions in the  
EXACT setting.  
Lx  
Some equations, such as 2 = x, have solutions that cannot all be finitely  
represented in terms of the functions and operators on the handheld.  
Symbolic Manipulation  
240  
 
With this kind of equation, EXACT will not compute approximate solutions. For  
Lx  
example, 2 = 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.  
APPROXIMATE Setting  
When Exact/Approx = APPROXIMATE, the handheld converts rational numbers and  
irrational constants to floating-point. However, there are exceptions:  
Certain built-in functions that expect one of their arguments to be an integer will  
convert that number to an integer if possible. For example: d(y(x), x, 2.0) transforms  
to d(y(x), x, 2).  
2.0  
Whole-number floating-point exponents are converted to integers. For example: x  
2
transforms to x even in the APPROXIMATE setting.  
Symbolic Manipulation  
241  
   
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 Results with undefined variables or  
might save time and/or use less  
memory than the EXACT setting.  
functions often exhibit incomplete  
cancellation. For example, a  
Approximate results are sometimes coefficient that should be 0 might be  
more compact and comprehensible displayed as a small magnitude such  
than exact results.  
as 1.23457E-11.  
If you do not plan to use symbolic  
Symbolic operations such as limits  
computations, approximate results and integration are less likely to give  
are similar to familiar, traditional  
numeric calculators.  
satisfying results in the  
APPROXIMATE setting.  
Approximate results are sometimes  
less compact and comprehensible  
than exact results. For example, you  
may prefer to see 1/7 instead of  
.142857.  
AUTO Setting  
When Exact/Approx = AUTO, the handheld uses exact rational arithmetic wherever all of  
the operands are rational numbers. Otherwise, floating-point arithmetic is used after  
Symbolic Manipulation  
242  
 
converting any rational operands to floating-point. In other words, floating-point is  
“infectious.” For example:  
1/2 - 1/3 transforms to 1/6  
but  
0.5 - 1/3 transforms to .16666666666667  
This floating-point infection does not leap over barriers such as undefined variables or  
between elements of lists or matrices. For example:  
(1/2 - 1/3) x + (0.5 - 1/3) y transforms to x/6 + .16666666666667 y  
and  
{1/2 - 1/3, 0.5 - 1/3} transforms to {1/6, .16666666666667}  
In the AUTO setting, functions such as solve determine as many solutions as possible  
exactly, and then use approximate numerical methods if necessary to determine  
additional solutions. Similarly, ä (integrate) uses approximate numerical methods if  
appropriate where exact symbolic methods fail.  
Advantages  
Disadvantages  
You see exact results when practical, If you are interested only in exact  
and approximate numeric results  
when exact results are impractical.  
results, some time may be wasted  
seeking approximate results.  
You can often control the format of a If you are interested only in  
result by choosing to enter some  
coefficients as either rational or  
floating-point numbers.  
approximate results, some time may  
be wasted seeking exact results.  
Moreover, you might exhaust the  
memory seeking those exact results.  
Symbolic Manipulation  
243  
 
Automatic Simplification  
When you type an expression on the entry line and press ¸, the TI-89 Titanium  
automatically simplifies the expression according to its default simplification rules.  
Default Simplification Rules  
All of the following rules are applied automatically. You do not see intermediate results.  
If a variable has a defined value, that  
value replaces the variable.  
If the variable is defined in terms of  
another variable, the variable is replaced  
with its “lowest level” value (called infinite  
lookup).  
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: For information about folders, refer to the Calculator Home Screen module.  
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.  
Symbolic Manipulation  
244  
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.  
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).  
Symbolic Manipulation  
245  
Polynomial greatest common divisors are  
canceled.  
Polynomials are expanded unless no key  
cancellation can occur.  
No key cancellation  
No key cancellation  
Common denominators are formed  
unless no key cancellation can occur.  
Functional identities are exploited. For  
example:  
ln(2x) = ln(2) + ln(x)  
and  
2
2
sin(x) + cos(x) = 1  
How Long Is the Simplification Process?  
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.  
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.)  
Symbolic Manipulation  
246  
   
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  
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:  
function(expression, var [, ... ])  
Note: Not all functions that use a var argument use delayed simplification.  
For example: solve(x^2NxN2=0,x)  
d(x^2NxN2,x)  
(x^2NxN2,x)  
2
limit(x NxN2,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.  
3. If var can be further simplified, that value is then substituted into the result.  
Symbolic Manipulation  
247  
Note: You may or may not want to define a numeric value for var, depending on the  
situation.  
For example:  
x cannot be simplified.  
3
x is not simplified. The function uses x ,  
and then substitutes 5 for x.  
Note: The example to the right finds the derivative  
3
3
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.  
3
x is simplified to t. The function uses t .  
3
x is simplified to t. The function uses t ,  
and then substitutes 5 for t.  
Symbolic Manipulation  
248  
   
Substituting Values and Setting Constraints  
The withoperator ( | ) lets you temporarily substitute values into an expression or  
specify domain constraints.  
Typing the “With” Operator  
To type the withoperator ( | ), press:  
@
Í
Substituting for a Variable  
For every occurrence of a specified variable,  
you can substitute a numeric value or an  
expression.  
3
First derivative of x  
at x = 5  
To substitute for multiple variables at the  
same time, use the Boolean and operator.  
Symbolic Manipulation  
249  
Substituting for a Simple Expression  
For every occurrence of a simple expression,  
you can substitute a variable, numeric value,  
or another expression.  
Substituting s for  
sin(x) shows that  
the expression is a  
polynomial in terms  
of sin(x).  
By replacing a commonly used (or long) term,  
you can display results in a more compact  
form.  
Note: acos(x) is different from a*cos(x).  
Substituting Complex Values  
You can substitute complex values just as you  
would for other values.  
All undefined variables are treated as real numbers in symbolic calculations. To perform  
complex symbolic analysis, you must define a complex variable. For example:  
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 the Technical Reference module.  
Symbolic Manipulation  
250  
Note:  
For an overview of complex numbers, refer to the Technical Reference module.  
To get the complex i, press 2 ). Do not simply type the letter i on the keyboard.  
Be Aware of the Limitations of Substitutions  
Substitution occurs only where there is an  
exact match for the substitution.  
2
Only x was  
4
replaced, not x .  
Define the  
substitution in  
simpler terms for  
a more complete  
substitution.  
Symbolic Manipulation  
251  
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.  
-
As a general rule, you should  
substitute for a single variable.  
Symbolic Manipulation  
252  
 
-
Substituting for more general  
No match for  
substitution  
2
expressions (either møc =e  
2
or c øm=e) may not work as you  
anticipate.  
Note: Use the solve function to help determine  
the single-variable substitution.  
Specifying Domain Constraints  
Many identities and transformations are valid for only a particular domain. For example:  
ln(xy) = ln(x) + ln(y)  
only if x and/or y is  
not negative  
-
1
only if q ‚ Lp/2 and q  
 p/2 radians  
Sin (sin(q)) = q  
Use the withoperator to specify the domain constraint.  
Because ln(xy) = ln(x) + ln(y) is not always valid,  
the logarithms are not combined.  
With a constraint, the identity is valid and the  
expression is simplified.  
Symbolic Manipulation  
253  
Note: Enter ln(xy) instead of ln(xy); otherwise, xy is interpreted as a single variable  
named xy.  
L1  
Because sin (sin(q)) = q is not always valid, the  
expression is not simplified.  
With a constraint, the expression can be simplified.  
Note: For or , press 8 Ã or 8 Â. You can also use 2 I 8 or 2 G 2 to  
select them from a menu.  
Using Substitutions vs. Defining a Variable  
In many cases, you can achieve the same  
effect as a substitution by defining the  
variable.  
However, substitution is preferable for most cases because the variable is defined only  
for the current calculation and does not accidentally affect later calculations.  
Substituting x=1 does not affect the next  
calculation.  
Symbolic Manipulation  
254  
 
Storing 1!x affects the subsequent  
calculations.calculation.  
Caution: After x is defined, it can affect all calculations that involve x (until you delete x).  
Overview of the Algebra Menu  
You can use the Algebra toolbar menu to select the most commonly used algebraic  
functions.  
The Algebra Menu  
From the Home screen, press to display:  
This menu is also available from the MATH  
menu. Press 2 I and then select  
9:Algebra.  
Symbolic Manipulation  
255  
         
Note: For a complete description of each function and its syntax, refer to the Technical  
Reference module.  
Menu Item  
solve  
Description  
Solves an equation 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  
expand  
zeros  
Factors an expression with respect to all its variables or  
with respect to only a specified variable.  
Expands an expression with respect to all its variables or  
with respect to only a specified variable.  
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 8 ¸ 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).  
Symbolic Manipulation  
256  
   
Menu Item  
Trig  
Description  
Displays the submenu:  
tExpand — Expands trig expressions with angle sums  
and multiple angles.  
TCollect — Collects the products of integer powers of  
trig functions into angle sums and multiple angles.  
tCollect is the opposite of tExpand.  
Complex  
Displays the submenu:  
These are the same as solve, factor, and zeros; but  
they also compute complex results.  
Extract  
Displays the submenu:  
getNum — Applies comDenom and then returns the  
resulting numerator.  
getDenom — Applies comDenom and then returns the  
resulting denominator.  
left — Returns the left-hand side of an equation or  
inequality.  
Symbolic Manipulation  
257  
 
Menu Item  
Description  
right — Returns the right-hand side of an equation or  
inequality.  
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.  
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 the Technical  
Reference module. Some algebraic operations do not require a special function.  
Adding or Dividing Polynomials  
You can add or divide polynomials directly,  
without using a special function.  
Symbolic Manipulation  
258  
 
Factoring and Expanding Polynomials  
Use the factor (2) and expand (3) functions.  
factor(expression [,var])  
for factoring with respect to a variable  
expand(expression [,var])  
for partial expansion with respect to a  
variable  
5
Factor x N 1. Then expand the result.  
Notice that factor and expand perform  
opposite operations.  
Finding Prime Factors of a Number  
The factor (2) function lets you do more than simply factor an algebraic polynomial.  
You can find prime factors of a rational  
number (either an integer or a ratio of  
integers).  
Symbolic Manipulation  
259  
 
Finding Partial Expansions  
With the expand (3) function’s optional var value, you can do a partial expansion that  
collects similar powers of a variable.  
2
2
Do a full expansion of (x Nx) (y Ny) with  
respect to all variables.  
Then do a partial expansion with respect to x.  
Solving an Equation  
Use the solve (1) function to solve an equation for a specified variable.  
solve(equation, var)  
Solve x + y N 5 = 2x N 5y for x.  
Notice that solve displays only the final result.  
Symbolic Manipulation  
260  
To see intermediate results, you can manually solve the equation step-by-step.  
x « y | 5 Á 2x | 5y  
| 2 x  
| y  
« 5  
p ? 1  
Note: An operation such as | 2 p subtracts 2x from both sides.  
Solving a System of Linear Equations  
Consider a set of two equations with two  
unknowns:  
2x N 3y = 4  
Lx + 7y = L12  
To solve this system of equations, use any of the following methods.  
Method  
Example  
Use the solve function for a one-step  
solve(2xN3y=4 and Lx+7y=L12,{x,y})  
solution.  
Use the solve function with  
substitution ( | ) for step-by-step  
manipulation.  
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.  
See ”Symbolic Manipulation” in the  
Previews chapter, which solved for  
x = L8/11 and y = L20/11.  
Symbolic Manipulation  
261  
Method  
Example  
Use the simult function with a  
matrix.  
Enter the coefficients as a matrix and  
the results as a constant column  
matrix.  
Use the rref function with a matrix.  
Enter the coefficients as an  
augmented matrix.  
Note: The simult and rref matrix functions are not on the Algebra menu. Use  
2 I 4 or the Catalog.  
Symbolic Manipulation  
262  
Finding the Zeros of an Expression  
Use the zeros (4) function.  
zeros(expression, var)  
Use the expression x  
sin(x) + cos(x).  
Use the “with”  
operator to specify  
the interval.  
Find the zeros with respect to x in the interval  
0 x and x 3.  
Note: For or , type 8 Ã or 8 Â.You can  
also use 2 I 8 or 2 G 2 to select  
them from a menu.  
Symbolic Manipulation  
263  
 
Finding Proper Fractions and Common Denominators  
Use the propFrac (7) and comDenom (6) functions.  
propFrac(rational expression [,var])  
for proper fractions with respect  
to a variable  
comDenom(expression [,var])  
for common denominators that collect  
similar powers of this variable  
Find a proper fraction for the expression  
4
2
2
(x N 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 handheld, the  
propFrac function  
scrolls off the top of the  
screen.  
Note: You can use comDenom with an  
expression, list, or matrix.  
In this example:  
Symbolic Manipulation  
264  
   
31x + 60  
4
2
2
--------------------  
is the remainder of x N2x +x divided by 2x +x+4.  
8
2
x
x
4
---- – -- – 15/8 is the quotient.  
2
Overview of the Calc Menu  
You can use the Calc toolbar menu to select commonly used calculus functions.  
The Calc Menu  
From the Home screen, press to display:  
This menu is also available from the MATH  
menu. Press 2 I and then select  
A:Calculus.  
Note: For a complete description of each function and its syntax, refer to the Technical  
Reference module.  
Menu Item  
Description  
d differentiate  
Differentiates an expression with respect to a specified  
variable.  
Symbolic Manipulation  
265  
                 
Integrates an expression with respect to a specified  
variable.  
integrate  
limit  
Calculates the limit of an expression with respect to a  
specified variable.  
Evaluates an expression at discrete variable values  
within a range and then calculates the sum.  
G sum  
Π product  
fMin  
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  
nDeriv  
nInt  
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.  
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.  
impDif  
Computes implicit derivatives for equations in two  
variables in which one variable is defined implicitly in  
terms of another.  
Symbolic Manipulation  
266  
 
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 =.  
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 the Technical  
Reference module.  
Integrating and Differentiating  
Use the integrate (2) and d differentiate (1) functions.  
(expression, var [,low] [,up])  
lets you specify limits or a constant of  
integration  
d (expression, var [,order])  
2
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.  
Symbolic Manipulation  
267  
 
Note: You can integrate an expression only; you can differentiate an expression, list, or  
matrix.  
Finding a Limit  
Use the limit (3) function.  
limit(expression, var, point [,direction])  
negative number = from left  
positive number= from right  
omitted number or 0 = both  
Find the limit of sin(3x) / x as x approaches 0.  
Note: You can find a limit for an expression, list, or matrix.  
Symbolic Manipulation  
268  
Finding a Taylor Polynomial  
Use the taylor (9) function.  
taylor(expression, var, order [,point])  
if omitted, expansion point is 0  
Find a 6th order Taylor polynomial for sin(x)  
with respect to x.  
Store the answer as a user-defined function  
named y1(x).  
Graph sin(x):Graph  
y1(x)  
Then graph sin(x) and the Taylor polynomial.  
Important: Degree-mode scaling by p/180 may cause calculus application results to  
appear in a different form.  
User-Defined Functions and Symbolic Manipulation  
You can use a user-defined function as an argument for the TI-89 Titanium ’s built-in  
algebra and calculus functions.  
Symbolic Manipulation  
269  
 
For Information about Creating a User-Defined Function  
Refer to:  
“Creating and Evaluating User-Defined Functions” in the Calculator Home Screen  
module.  
“Graphing a Function Defined on the Home Screen” and “Graphing a Piecewise  
Defined Function” in the Calculator Home Screen module.  
“Overview of Entering a Function” in the Programming module.  
Undefined Functions  
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:  
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.  
Note: To select d from the Calc toolbar menu,  
press 1 (or press 2 = on the keyboard).  
Single-Statement Functions  
You can use user-defined functions consisting of a single expression. For example:  
Symbolic Manipulation  
270  
 
Use 9 to create a user-defined secant function, where:  
1
secx = -----------  
cosx  
Then find the limit of sec(x) as x  
approaches p/4.  
Note: To select limit from the Calc toolbar  
menu, press 3.  
Use Define to create a user-defined function h(x), where:  
Define h(x)=  
(sin(t)/t,t,0,x).  
x
sint  
t
h(x) = ---------  
0
Then find a 5th order Taylor polynomial  
for h(x) with respect to x.  
Note: To select from the Calc toolbar  
menu, press 2 (or press 2 < on the  
keyboard). To select taylor, press 9.  
Multi-Statement vs. Single-Statement Functions  
Multi-statement user-defined functions should be used as an argument for numeric  
functions (such as nDeriv and nInt) only.  
Symbolic Manipulation  
271  
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  
Lx  
x | 0  
5 cos(x)  
If you were to create a multi-statement user-defined function with the form:  
Func  
If x<0 Then  
Return ëx  
Else  
Return 5cos(x)  
EndIf  
Define  
y1(x)=Func:If x<0  
Then: ... :EndFunc  
EndFunc  
Then numerically integrate y1(x) with  
respect to x.  
Note: To select nInt from the Calc toolbar menu, press B:nInt.  
Symbolic Manipulation  
272  
 
Create an equivalent single-statement user-defined function.  
Use the TI-89 Titanium’s built-in when  
Define  
function.  
y1(x)=when(x<0,  
Lx, 5cos(x))  
Then integrate y1(x) with respect to x.  
Note: To select from the Calc toolbar  
menu, press 2 (or press 2 < on the  
keyboard).  
Press 8 ¸  
for a floating-point  
result.  
If You Get an Out-of-Memory Error  
The TI-89 Titanium stores intermediate results in memory and then deletes them when  
the calculation is complete. Depending on the complexity of the calculation, the  
handheld may run out of memory before a result can be calculated.  
Freeing Up Memory  
Delete unneeded variables and/or Flash applications, particularly large-sized ones.  
-
Use 2 ° as described in Memory and Variable Management to view  
and delete variables and/or Flash applications.  
On the Home screen:  
Symbolic Manipulation  
273  
-
-
Clear the history area (, 8) or delete unneeded history pairs.  
You can also use , 9 to reduce the number of history pairs that will be saved.  
Use 3 to set Exact/Approx = APPROXIMATE. (For results that have a large  
number of digits, this uses less memory than AUTO or EXACT. For results that have  
only a few digits, this uses more memory.)  
Simplifying Problems  
Split the problem into parts.  
-
Split solve(ab=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.  
2
2
-
-
If m and c occur only as mc , substitute e for mc .  
2
2
2
2
(a + b) + (a + b)  
c +  
c
2
-------------------------------------------------  
--------------------  
1 – c  
In the expression  
, substitute c for (a+b) and use  
. In  
2
1 – (a + b)  
the solution, replace c with (a+b).  
For expressions combined over a common denominator, replace sums in  
denominators with unique new undefined variables.  
2
2
x
y
-
In the expression ------------------------------ + ------------------------------ , substitute d for a + b + c and  
2
2
2
2
a + b + c  
a + b + c  
2
2
x
d
y
d
are -- + -- . In the solution, replace d with a + b + c .  
Substitute known numeric values for undefined variables at an earlier stage,  
particularly if they are simple integers or fractions.  
Symbolic Manipulation  
274  
 
Reformulate a problem to avoid fractional powers.  
Omit relatively small terms to find an approximation.  
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.  
true, false  
These indicate the result of an identity or a  
Boolean expression.  
x=x is true for  
any value of x.  
5<3 is false.  
Symbolic Manipulation  
275  
 
@n1 ... @n255  
This notation indicates an “arbitrary integer”  
that represents any integer.  
A solution is at every  
integer multiple of p.  
When an arbitrary integer occurs multiple  
times in the same session, each occurrence is  
numbered consecutively. After it reaches 255,  
arbitrary integer consecutive numbering  
restarts at @n0. Use Clean Up 2:NewProb to  
reset to @n1.  
Both @n and @n2  
represent any  
arbitrary integer, but  
this notation identifies  
separate arbitrary  
integers.  
Note: For @, press: 8 9  
Symbolic Manipulation  
276  
   
@1 ... @255  
This notation indicates an “arbitrary constant”  
that represents any integer.  
When an arbitrary constant occurs multiple  
times in the same session, each occurrence is  
numbered consecutively. After it reaches 255,  
arbitrary integer consecutive numbering  
restarts at @0. Use Clean Up 2:NewProb to  
reset to @1.  
Note: For @, press: 8 9  
ˆ, e  
ˆ represents infinity, and e represents the  
constant 2.71828... (base of the natural  
logarithms).  
These constants are often used in entries as  
well as results.  
Notes:  
For ˆ, press:  
@
8 *  
For e, press:  
8 s  
@
Symbolic Manipulation  
277  
undef  
This indicates that the result is undefined.  
Mathematically undefined  
„ˆ (undetermined sign)  
Non-unique limit  
Symbolic Manipulation  
278  
 
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.  
From a Menu  
The following shows how to select a unit, but you can use the same general procedure  
to select a constant.  
From the Home screen:  
1. Type the value or expression.  
6.3  
2. Display the UNITS dialog box. Press:  
2 9  
3. Use D and C to move the cursor to the  
applicable category.  
Note: Use 2 D and 2 C to scroll one  
page at a time through the categories.  
Constants and Measurement Units  
279  
4. To select the highlighted (default) unit,  
press ¸.  
– 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.  
Note: If you created a user-defined unit for  
an existing category, it is listed in the  
menu.  
The selected unit is placed in the entry line.  
Constant and unit names always begin with  
an underscore ( _ ).  
6.3_pF  
From the Keyboard  
If you know the abbreviation that the TI-89 Titanium uses for a particular constant or unit,  
you can type it directly from the keyboard. For example:  
256_m  
The first character must be an underscore ( _ ). For _, press:  
8 5  
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.  
Note: You can type units in either uppercase or lowercase characters.  
Constants and Measurement Units  
280  
Combining Multiple Units  
You may need to combine two or more units from different categories.  
For example, suppose you want to enter a  
velocity in meters per second. In the UNITS  
dialog box, however, the Velocity category  
does not contain this unit.  
You can enter meters per second by  
combining _m and _s from the Length and  
Time categories, respectively.  
39.8_m/_s  
Combine the units _m  
and _s. There is no  
pre-defined m/_s unit.  
Note: Create a user-defined unit for frequently used combinations.  
Constants and Measurement Units  
281  
Using Parentheses with Units in a Calculation  
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:  
To calculate:  
Enter:  
100_m  
----------------  
_m  
-------  
100_m/(2_s) 50 •  
2_s  
_s  
You must use parentheses  
for (2_s). This is important  
for division.  
If you omit the parentheses,  
you will get unexpected units.  
For example:  
100_m/2_s 50. _m _s  
Note: If you have any doubt about how a value and its units will be evaluated, group  
them within parentheses ( ).  
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
Constants and Measurement Units  
282  
 
Converting from One Unit to Another  
You can convert from one unit to another in the same category, including any user-  
defined units.  
For All Units Except Temperature  
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.  
Notes:  
Refer to the list of pre-defined units.  
From the UNITS dialog box, you can select available units from a menu.  
To multiply 20 times 6 kilometers.  
206_km  
Shown in the default  
unit for Length, (_m  
in SI system).  
Constants and Measurement Units  
283  
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 4.  
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  
Constants and Measurement Units  
284  
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  
Because a Time  
kilometers:  
conversion is not  
specified, it is shown  
in its default unit (_s  
186000_mi/_s 4 _km  
in this example).  
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).  
To enter meters per second squared:  
27_m/_s^2  
To convert meters per second squared from  
seconds to hours:  
27_m/_s^2 4 1/_hr^2  
Constants and Measurement Units  
285  
 
For Temperature Values  
To convert a temperature value, you must use tmpCnv( ) instead of the 4 operator.  
tmpCnv(expression_¡tempUnit1, _¡tempUnit2)  
For ¡, press 2 v“  
.
For example, to convert 100_¡C to _¡F:  
tmpCnv(100_¡c, _¡f)  
0
100  
212  
o
_C  
o
_F  
32  
Constants and Measurement Units  
286  
For Temperature Ranges  
To convert a temperature range (the difference between two temperature values), use  
@tmpCnv( ).  
@tmpCnv(expression_¡tempUnit1, _¡tempUnit2)  
For example, to convert a 100_¡C range to its  
equivalent range in _¡F:  
@tmpCnv(100_¡c, _¡f)  
o
100_ C  
0
100  
212  
o
_ C  
Note: For @, press:  
8 c 7 [D]  
o
_ F  
32  
o
180_ F  
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).  
Constants and Measurement Units  
287  
If You’re Using the SI or ENG/US System  
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 Unit System=SI or  
The default units for these systems are  
available.  
ENG/US, the Custom  
Units item is dimmed.  
You cannot set a  
default for individual  
categories.  
Setting Custom Defaults  
To set custom defaults:  
1. Press 3 … B 3 to set Unit System =  
CUSTOM.  
2. Press D to highlight SET DEFAULTS.  
3. Press B to display the CUSTOM UNIT  
DEFAULTS dialog box.  
Constants and Measurement Units  
288  
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.  
Notes:  
You can also use setUnits( ) or getUnits( ) to set or return information about default  
units. Refer to the Technical Reference module.  
When the CUSTOM UNIT DEFAULTS dialog box first appears, it shows the current  
default units.  
What is the NONE Default?  
Many categories let you select NONE as the default unit.  
This means that results in that category are  
displayed in the default units of its  
components.  
2
For example, Area = Length , so Length is the  
component of Area.  
Constants and Measurement Units  
289  
If the defaults are Area = _acre and Length = _m (meters), area results are shown  
with _acre units.  
2
If you set Area = NONE, area results are shown with _m units.  
Note: NONE is not available for base categories such as Length and Mass that have no  
components.  
Creating Your Own User-Defined Units  
In any category, you can expand the list of available units by defining a new unit in terms  
of one or more pre-defined units. You can also use “standalone” units.  
Why Use Your Own Units?  
Some example reasons to create a unit are:  
You want to enter length values in dekameters. Define 10_m as a new unit named  
_dm.  
2
Instead of entering _m/_s as an acceleration unit, you define that combination of  
units as a single unit named _ms2.  
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.  
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.  
Constants and Measurement Units  
290  
Rules for User-Defined Unit Names  
The naming rules for units are similar to variables.  
Can have up to 8 characters.  
First character must be an underscore. For _, press:  
8 5  
Second character can be any valid variable name character except _ or a digit. For  
example, _9f is not valid.  
Remaining characters (up to 6) can be any valid variable name character except an  
underscore.  
Defining a Unit  
Define a unit the same way you store to a variable.  
Constants and Measurement Units  
291  
definition !_newUnit  
For !, press 9  
For example, to define a dekameter unit:  
10_m !_dm  
To define an acceleration unit:  
_m/_s^2 !_ms2  
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.  
Notes:  
User-defined units are displayed in lowercase characters, regardless of the case you  
use to define them.  
User-defined units such as _dm are stored as variables. You can delete them the  
same as you would any variable.  
Constants and Measurement Units  
292  
 
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.  
Defaults for SI and ENG/US  
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.  
Some categories do not have default units.  
Constants  
Description  
Value  
_c  
speed of light  
2.99792458E8_m/_s  
2–  
2
_Cc  
coulomb constant  
8.9875517873682E9_Nø_m /_coul  
2
_g  
acceleration of gravity  
gravitational constant  
9.80665_m/_s  
3
2
_Gc  
6.6742E‘M11_m /_kg/_s  
_h  
Planck’s constant  
Boltzmann’s constant  
electron rest mass  
6.6260693E‘M34_Jø_s  
1.3806505E‘M23_J/_¡K  
9.1093826E‘M31_kg  
_k  
_Me  
Constants and Measurement Units  
293  
Description  
Value  
_Mn  
_Mp  
_Na  
_q  
neutron rest mass  
proton rest mass  
Avogadro’s number  
electron charge  
Bohr radius  
1.67492728E‘M27_kg  
1.67262171E‘M27_kg  
6.0221415E23 /_mol  
1.60217653E‘M19_coul  
5.291772108E‘M11_m  
8.314472_J/_mol/_¡K  
10973731.568525 /_m  
_Rb  
_Rc  
molar gas constant  
_Rdb Rydberg constant  
3
_Vm  
molar volume  
2.2413996E‘M2_m /_mol  
permittivity of a vacuum  
_H0  
8.8541878176204E‘M12_F/_m  
2
4
Stefan-Boltzmann constant  
_s  
5.670400E‘M8_W/_m /_¡K  
magnetic flux quantum  
_f0  
2.06783372E‘M15_Wb  
2
permeability of a vacuum  
_m0  
1.2566370614359E‘M6_N/_A  
2
Bohr magneton  
_mb  
9.27400949E‘M24_J ø_m /_Wb  
Notes:  
The calculator 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.  
For Greek characters, refer to Quick Reference Key Table.  
Constants and Measurement Units  
294  
These values represent the most up-to-date constants available at time of printing  
from the CODATA Internationally recommended values of the Fundamental Physical  
Constants available on the National Institute of Standards and Technology (NIST)  
web site. (http://physics.nist.gov/cuu/Constants/index.html).  
Length  
_Ang  
_au  
_cm  
_fath  
_fm  
_ft  
angstrom  
astronomical unit  
centimeter  
fathom  
_mi  
_mil  
_mm  
_Nmi  
_pc  
_rod  
_yd  
_m  
mile  
1/1000 inch  
millimeter  
nautical mile  
parsec  
fermi  
foot (ENG/US)  
inch  
rod  
_in  
yard  
_km  
_ltyr  
_m  
kilometer  
light year  
meter (SI)  
micron  
_Å  
angstrom  
Area  
_acre  
_ha  
acre  
NONE (SI) (ENG/US)  
hectare  
Constants and Measurement Units  
295  
Volume  
_cup  
_floz  
_flozUK  
_gal  
cup  
_ml  
_pt  
_qt  
milliliter  
pint  
fluid ounce  
British fluid ounce  
gallon  
quart  
_tbsp tablespoon  
_tsp teaspoon  
NONE (SI) (ENG/US)  
_galUK  
_l  
British gallon  
liter  
Time  
_day  
_hr  
day  
_s  
second (SI) (ENG/US)  
hour  
_week week  
_min  
_ms  
_ns  
minute  
_yr  
year  
millisecond  
nanosecond  
microsecond  
_ms  
Velocity  
_knot knot  
_mph miles per hour  
NONE (SI) (ENG/US)  
_kph  
kilometers per hour  
Constants and Measurement Units  
296  
Acceleration  
no pre-defined units  
Temperature  
_¡C  
¡Celsius (For ¡, press  
_¡K  
¡Kelvin  
2 “.)  
_¡F  
¡Fahrenheit  
_¡R  
¡Rankine (no default)  
Luminous Intensity  
_cd candela (no default)  
Amount of Substance  
_mol  
mole (no default)  
Mass  
_amu atomic mass unit  
_oz  
ounce  
slug  
ton  
_gm  
_kg  
_lb  
gram  
_slug  
_ton  
kilogram (SI)  
pound (ENG/US)  
_tonne metric ton  
Constants and Measurement Units  
297  
_mg  
milligram  
_tonUK long ton  
_mton metric ton  
Force  
_dyne dyne  
_N  
newton (SI)  
ton force  
_kgf  
_lbf  
kilogram force  
_tonf  
pound force (ENG/US)  
Energy  
_Btu  
British thermal unit  
(ENG/US)  
_J  
joule (SI)  
_cal  
_erg  
_eV  
_ftlb  
calorie  
_kcal  
_kWh  
_latm  
kilocalorie  
erg  
kilowatt-hour  
liter-atmosphere  
electron volt  
foot-pound  
Power  
_hp  
horsepower (ENG/US)  
kilowatt  
_W  
watt (SI)  
_kW  
Constants and Measurement Units  
298  
Pressure  
_atm  
atmosphere  
bar  
_mmHg  
_Pa  
millimeters of mercury  
pascal (SI)  
_bar  
_inH2O  
inches of water  
_psi  
pounds per square  
inch (ENG/US)  
_inHg  
inches of mercury  
_torr  
millimeters of mercury  
_mmH2O millimeters of water  
Viscosity, Kinematic  
_St  
stokes  
Viscosity, Dynamic  
_P poise  
Frequency  
_GHz  
_Hz  
gigahertz  
hertz (SI) (ENG/US  
_kHz  
kilohertz  
_MHz  
megahertz  
Constants and Measurement Units  
299  
Electric Current  
_A  
ampere (SI) (ENG/US)  
_mA  
milliampere  
_kA  
kiloampere  
microampere  
_mA  
Charge  
_coul  
coulomb (SI) (ENG/US)  
Potential  
_kV  
kilovolt  
millivolt  
_V  
volt (SI) (ENG/US)  
volt  
_mV  
_volt  
Resistance  
kilo ohm  
megaohm  
_ohm  
ohm  
_kJ  
ohm (SI) (ENG/US)  
_MJ  
_J  
Conductance  
_mho  
mho (ENG/US)  
millimho  
_siemens siemens (SI)  
micromho  
_mmho  
_mmho  
Constants and Measurement Units  
300  
Capacitance  
_F  
farad (SI) (ENG/US)  
nanofarad  
_pF  
picofarad  
_nF  
microfarad  
_mF  
Mag Field Strength  
_Oe oersted  
NONE (SI) (ENG/US)  
Mag Flux Density  
_Gs gauss  
_T  
tesla (SI) (ENG/US)  
Magnetic Flux  
_Wb  
weber (SI) (ENG/US)  
Inductance  
_henry  
_mH  
henry (SI) (ENG/US)  
millihenry  
_nH  
nanohenry  
microhenry  
_mH  
Constants and Measurement Units  
301  
 
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  
1. Set Graph mode (3) to FUNCTION.  
Also set Angle mode, if necessary.  
2. Define x and y components on Y= Editor  
(8 #).  
3. Select () which defined functions to  
graph.  
Note: To turn off any stat data plots, press  
5 or use to deselect them.  
Basic Function Graphing  
302  
4. Set the display style for a function.  
2 ˆ  
This is optional. For multiple equations,  
this helps visually distinguish one from  
another.  
5. Define the viewing window (8 $).  
Zoom also changes the viewing  
window.  
6. Change the graph format if necessary.  
ƒ 9  
– or –  
8 Í  
7. Graph the selected functions (8 %).  
Exploring the Graph  
From the Graph screen, you can:  
Display the coordinates of any pixel by using the free-moving cursor, or of a plotted  
point by tracing a function.  
Use the Zoom toolbar menu to zoom in or out on a portion of the graph.  
Basic Function Graphing  
303  
 
Use the Math toolbar menu to find a zero, minimum, maximum, etc.  
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 Titanium graphs trigonometric  
functions.  
Graph Mode  
1. Press 3 to display the MODE dialog  
box, which shows the current mode  
settings.  
2. Set the Graph mode to FUNCTION. Refer to “Setting Modes” in Operating the  
Calculator.  
For graphs that do not use complex numbers, set Complex Format = REAL.  
1/3  
Otherwise, it may affect graphs that use powers, such as x  
.
While this module specifically describes y(x) function graphs, the calculator lets you  
select from six Graph mode settings.  
Graph Mode Setting  
FUNCTION  
Description  
y(x) functions  
PARAMETRIC  
x(t) and y(t) parametric equations  
Basic Function Graphing  
304  
   
Graph Mode Setting  
POLAR  
Description  
r(q) polar equations  
u(n) sequences  
z(x,y) 3D equations  
SEQUENCE  
3D  
DIFFERENTIAL EQUATION y'(t) differential equations  
Angle Mode  
When using trigonometric functions, set the Angle mode for the units (RADIAN,  
DEGREE or GRADIAN) in which you want to enter and display angle values.  
Checking the Status Line  
To see the current Graph mode and Angle mode, check the status line at the bottom of  
the screen.  
Angle  
Mode  
Graph  
Mode  
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  
Basic Function Graphing  
305  
the current graphing mode. For example, in POLAR graphing mode, function names are  
r1(q), r2(q), etc.)  
Defining a New Function  
1. Press 8 # to display the Y= Editor.  
Plots — You can scroll above y1= to see  
a list of stat plots.  
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.  
Note: The function list shows abbreviated function names such as y1, but the entry  
line shows the full name y1(x).  
2. Press D and C to move the cursor to any undefined function. (Use 2 D and  
2 C to scroll one page at a time.)  
3. Press ¸ or to move the cursor 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.  
Note: For an undefined function, you do not need to press ¸ or . When you  
begin typing, the cursor moves to the entry line.  
5. When you complete the expression, press ¸.  
Basic Function Graphing  
306  
The function list now shows the new function, which is automatically selected for  
graphing.  
Note: If you accidentally move the cursor to the entry line, press N to move it back to  
the function list.  
Editing a Function  
From the Y= Editor:  
1. Press D and C to highlight the function.  
2. Press ¸ or to move the cursor to the entry line.  
3. Do any of the following:  
Use B and A to move the cursor within the expression and edit it. Refer to  
“Editing an Expression in the Entry Line” in Operating the Calculator.  
– or –  
Press M once or twice to clear the old expression, and then type the new  
one.  
4. Press ¸.  
The function list now shows the edited function, which is automatically selected for  
graphing.  
Note: To cancel any editing changes, press N instead of ¸.  
Basic Function Graphing  
307  
Clearing a Function  
From the Y= Editor:  
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.  
You don’t have to clear a function to prevent it from being graphed. You can select the  
functions you want to graph.  
Shortcuts to Move the Cursor  
From the Y= Editor:  
Press:  
To:  
Go to function 1 or to the last defined function,  
respectively. If the cursor is on or past the last  
defined function, 8 D goes to function 99.  
8 C or  
8 D  
Basic Function Graphing  
308  
   
From the Home Screen or a Program  
You can also define and evaluate a function 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 Additional Graphing Topics.  
-
“Overview of Entering a Function” in Programming.  
Store an expression directly to a function variable. Refer to:  
-
-
“Storing and Recalling Variable Values” in Operating the Calculator.  
“Creating and Evaluating User-Defined Functions” in Calculator Home Screen.  
Note: 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.  
Selecting Functions to Graph  
Regardless of how many functions are defined in the Y= Editor, you can select the ones  
you want to graph.  
Selecting or Deselecting Functions  
Press 8 # to display the Y= Editor.  
A “Ÿ” indicates which functions will be graphed the next time you display the Graph  
screen.  
Basic Function Graphing  
309  
If PLOT numbers are  
displayed, those stat plots are  
selected.  
Selected  
In this example, Plots 1 and 2  
are selected. To view them,  
scroll above y1=.  
Deselected  
To select or deselect:  
Do this:  
Move the cursor to highlight the function.  
A specified function  
Press .  
This procedure selects a deselected  
function or deselects a selected function.  
All functions  
Press to display the All toolbar menu.  
Select the applicable item.  
You don’t have to select a function when you enter or edit it; it is selected automatically.  
To turn off any stat plots, press 5 or use to deselect them.  
From the Home Screen or a Program  
You can also select or deselect functions from the Home screen or a program.  
Basic Function Graphing  
310  
   
Use the FnOn and FnOff commands (available from the Home screen’s Other  
toolbar menu) for functions. Refer to the Technical Reference module.  
Use the PlotsOn and PlotsOff commands for stat plots. Refer to the Technical  
Reference module.  
Setting the Display Style for a Function  
For each defined function, you can set a style that specifies how that function will be  
graphed. This is useful when graphing multiple functions. For example, set one as a  
solid line, another as a dotted line, etc.  
Displaying or Changing a Function’s Style  
From the Y= Editor:  
1. Move the cursor to highlight the applicable function.  
2. Select the Style menu and press: 2 ˆ  
Although the Line item is initially  
highlighted, the function’s current style is  
indicated by a Ÿ mark.  
To exit the menu without making a  
change, press N.  
Basic Function Graphing  
311  
3. To make a change, select the applicable style.  
Style  
Description  
Line  
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.  
To set Line as the style for all functions, press and select 4:Reset Styles.  
If You Use Above or Below Shading  
The TI-89 Titanium 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.  
When shaded areas intersect, their patterns  
overlap.  
Basic Function Graphing  
312  
 
From the Home Screen or a Program  
You can also set a function’s style from the Home screen or a program. Refer to the Style  
command in the Technical Reference module.  
Defining the Viewing Window  
The viewing window represents the portion of the coordinate plane displayed on the  
Graph screen. By setting Window variables, you can define the viewing window’s  
boundaries and other attributes. Function graphs, parametric graphs, etc., have their  
own independent set of Window variables.  
Displaying Window Variables in the Window Editor  
Press 8 $ to display the Window Editor.  
ymax  
xmin  
xscl  
yscl  
xmax  
ymin  
Window Variables  
(shown in Window Editor)  
Corresponding Viewing Window  
(shown on Graph screen)  
Variable  
Description  
Boundaries of the viewing window.  
xmin, xmax,  
ymin, ymax  
Basic Function Graphing  
313  
Variable  
xscl, yscl  
xres  
Description  
Distance between tick marks on the x and y axes.  
Sets pixel resolution (1 through 10) for function graphs.  
The default is 2.  
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.  
To turn off tick marks, set xscl=0 and/or yscl=0. Small values of xres improve the graph’s  
resolution but may reduce the graphing speed.  
Changing the Values  
From the Window Editor:  
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.  
Values are stored as you type them; you do not need to press ¸. ¸ simply  
moves the cursor to the next Window variable. If you type an expression, it is evaluated  
when you move the cursor to a different Window variable or leave the Window Editor.  
Basic Function Graphing  
314  
     
From the Home Screen or a Program  
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 Operating the Calculator.  
Changing the Graph Format  
You can set the graph format to show or hide reference elements such as the axes, a  
grid, and the cursor’s coordinates. Function graphs, parametric graphs, etc., have their  
own independent set of graph formats.  
Displaying Graph Format Settings  
From the Y= Editor, Window Editor, or Graph screen, press ƒ and select 9:Format.  
The GRAPH FORMATS dialog box shows  
the current settings.  
To exit without making a change, press  
N.  
You also can display the GRAPH FORMATS dialog box from the Y= Editor, Window  
Editor, or Graph screen. Press: 8 Í  
Format  
Description  
Coordinates  
Shows cursor coordinates in rectangular (RECT) or polar  
(POLAR) form, or hides (OFF) the coordinates.  
Basic Function Graphing  
315  
         
Format  
Description  
Graph Order  
Graphs functions one at a time (SEQ) or all at the same  
time (SIMUL). Not available when Discontinuity Detection  
is set to ON.  
Grid  
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.  
Discontinuity  
Detection  
Eliminates (ON) or allows (OFF) faux asymptotes and  
connections in a jump discontinuity.  
To turn off tick marks, define the viewing window so that xscl and/or yscl = 0.  
Changing Settings  
From the GRAPH FORMATS dialog box:  
1. Move the cursor to highlight the format setting.  
2. Press B to display a menu of valid settings for that format.  
3. Select a setting. Either:  
Move the cursor to highlight the setting, and then press ¸.  
– or –  
Press the number for that setting.  
Basic Function Graphing  
316  
4. After changing all applicable format settings, press ¸ to save your changes and  
close the GRAPH FORMATS dialog box.  
Note: To cancel a menu or exit the dialog box without saving any changes, use N  
instead of ¸.  
Graphing the Selected Functions  
When you are ready to graph the selected functions, display the Graph screen. This  
screen uses the display style and viewing window that you previously defined.  
Displaying the Graph Screen  
Press 8 %. The TI-89 Titanium automatically graphs the selected functions.  
BUSYindicator shows while  
graphing is in progress.  
If you select an Zoom operation from the Y= Editor or Window Editor, the TI-89  
Titanium automatically displays the Graph screen.  
Interrupting Graphing  
While graphing is in progress:  
Basic Function Graphing  
317  
 
To pause graphing temporarily, press ¸. (The PAUSEindicator replaces BUSY.) To  
resume, press ¸ again.  
To cancel graphing, press ´. To start graphing again from the beginning, press  
(ReGraph).  
If You Need to Change the Viewing Window  
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:  
Redefine the viewing window with different boundaries.  
Use a Zoom operation.  
Smart Graph  
When you display the Graph screen, the Smart Graph feature displays the previous  
window contents immediately, provided nothing has changed that requires regraphing.  
Smart Graph updates the window and regraphs only if you have:  
Changed a mode setting that affects graphing, a function’s graphing attribute, a  
Window variable, or a graph format.  
Selected or deselected a function or stat plot. (If you only select a new function,  
Smart Graph adds that function to the Graph screen.)  
Changed the definition of a selected function or the value of a variable in a selected  
function.  
Cleared a drawn object.  
Basic Function Graphing  
318  
 
Changed a stat plot definition.  
Displaying Coordinates with the Free-Moving Cursor  
To display the coordinates of any location on the Graph screen, use the free-moving  
cursor. You can move the cursor to any pixel on the screen; the cursor is not confined to  
a graphed function.  
Free-Moving Cursor  
When you first display the Graph screen, no cursor is visible. To display the cursor, press  
a cursor pad arrow. The cursor moves from the center of the screen, and its coordinates  
are displayed.  
2
y1(x)=x  
The “c” indicates these are cursor coordinates.  
The values are stored in the xc and yc system  
variables. Rectangular coordinates use xc and  
yc. Polar coordinates use rc and qc.  
If your screen does not show coordinates, set the graph format so that Coordinates =  
RECT or POLAR. Press:  
8 Í  
To move the free-moving cursor:  
Press:  
To an adjoining pixel  
A cursor pad arrow for any direction.  
Basic Function Graphing  
319  
To move the free-moving cursor:  
Press:  
In increments of 10 pixels  
2 and then a cursor pad arrow.  
Note: 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.  
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.  
Basic Function Graphing  
320  
 
Tracing a Function  
To display the exact coordinates of any plotted point on a graphed function, use the …  
Trace tool. Unlike the free-moving cursor, the trace cursor moves only along a function’s  
plotted points.  
Beginning a Trace  
From the Graph screen, press .  
The trace cursor appears on the function, at the middle x value on the screen. The  
cursor’s coordinates are displayed at the bottom of the screen.  
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.  
If any stat plots are graphed, the trace cursor appears on the lowest-numbered stat plot.  
Moving along a Function  
To move the trace cursor:  
Do this:  
To the previous or next plotted point  
Press A or B.  
Press 2 A or 2 B.  
Approximately 5 plotted points  
(it may be more or less than 5,  
depending on the xres Window variable)  
Basic Function Graphing  
321  
To move the trace cursor:  
Do this:  
To a specified x value on the function  
Type the x value and  
press ¸.  
Note: If you enter an x value, it must be between xmin and xmax.  
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).  
Trace coordinates are  
those of the function, not  
the pixel.  
If your screen does not show coordinates, set the graph format so that Coordinates =  
RECT or POLAR. Press:  
8 Í  
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.  
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.  
Note: Use QuickCenter to trace a function that goes above or below the window.  
Basic Function Graphing  
322  
 
Moving from Function to Function  
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.  
The “previous or next” function is based on the order of the selected functions in the Y=  
Editor, not the appearance of the functions as graphed on the screen.  
Automatic Panning  
If you trace a function off the left or right edge of the screen, the viewing window  
automatically pans to the left or right. There is a slight pause while the new portion of the  
graph is drawn.  
After automatic pan  
Before automatic pan  
After an automatic pan, the cursor continues tracing.  
Note: Automatic panning does not work if stat plots are displayed or if a function uses a  
shaded display style.  
Basic Function Graphing  
323  
   
Using QuickCenter  
If you trace a function off the top or bottom of the viewing window, you can press ¸  
to center the viewing window on the cursor location.  
Before using QuickCenter  
After using QuickCenter  
After QuickCenter, the cursor stops tracing. If you want to continue tracing, press .  
You can use QuickCenter at any time during a trace, even when the cursor is still on the  
screen.  
Canceling Trace  
To cancel a trace at any time, press N.  
A trace is also canceled when you display another application screen such as the Y=  
Editor. When you return to the Graph screen and press to begin tracing:  
If Smart Graph regraphed the screen, the cursor appears at the middle x value.  
If Smart Graph does not regraph the screen, the cursor appears at its previous  
location (before you displayed the other application).  
Basic Function Graphing  
324  
   
Using Zooms to Explore a Graph  
The Zoom toolbar menu has several tools that let you adjust the viewing window. You  
can also save a viewing window for later use.  
Overview of the Zoom Menu  
Press from the Y= Editor, Window Editor, or Graph screen.  
Procedures for using ZoomBox, ZoomIn,  
ZoomOut, ZoomStd, Memory, and SetFactors  
are given later in this section.  
For more information about the other items,  
refer to the Technical Reference module.  
Note: If you select a Zoom tool from the Y=Editor or Window Editor, the TI-89 Titanium  
automatically displays the Graph screen.  
Zoom Tool  
ZoomBox  
Description  
Lets you draw a box and zoom in on that box.  
ZoomIn,  
Lets you select a point and zoom in or out by an amount  
ZoomOut  
defined by SetFactors.  
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).  
Basic Function Graphing  
325  
   
Zoom Tool  
ZoomStd  
Description  
Sets Window variables to their default values.  
xmin = L10  
xmax = 10  
xscl = 1  
ymin = L10  
ymax = 10  
yscl = 1  
xres = 2  
ZoomTrig  
Sets Window variables to preset values that are often  
appropriate for graphing trig functions. Centers the origin  
and sets:  
@x = p/24  
(.130899... radians  
or 7.5 degrees)  
ymin = -4  
ymax = 4  
xscl = p/2  
(1.570796... radians yscl = 0.5  
or 90 degrees)  
ZoomInt  
Lets you select a new center point, and then sets @x and  
@y to 1 and sets xscl and yscl to 10.  
ZoomData  
ZoomFit  
Adjusts Window variables so that all selected stat plots are  
in view.  
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.  
@x and @y are the distances from the center of one pixel to the center of an adjoining  
pixel.  
Basic Function Graphing  
326  
Zooming In with a Zoom Box  
1. From the Zoom menu, select 1:ZoomBox.  
The screen prompts for 1st Corner?  
2. Move the cursor to any corner of the box  
y1(x)=2øsin(x)  
you want to define, and then press ¸.  
The cursor changes to a small square,  
and the screen prompts for 2nd Corner?  
Note: To move the cursor in larger  
increments, use 2 B, 2 D, etc.  
3. Move the cursor to the opposite corner of  
the zoom box.  
As you move the cursor, the box  
stretches.  
4. When you have outlined the area you  
want to zoom in on, press ¸.  
The Graph screen shows the zoomed  
area. You can cancel ZoomBox by  
pressing N before you press ¸.  
Basic Function Graphing  
327  
 
Zooming In and Out on a Point  
1. From the Zoom menu, 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 Titanium 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.  
new xmin = xmin/xFact , etc.  
For a ZoomOut, the x variables are multiplied by xFact, and the y variables are  
multiplied by yFact.  
new xmin = xmin ù xFact , etc.  
Changing Zoom Factors  
The Zoom factors define the magnification and reduction used by ZoomIn and ZoomOut.  
Basic Function Graphing  
328  
 
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.  
Note: 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.  
Saving or Recalling a Viewing Window  
After using various Zoom tools, you may want to return to a previous viewing window or  
save the current one.  
1. From the Zoom menu, select  
B:Memory to display its submenu.  
2. Select the applicable item.  
Basic Function Graphing  
329  
Select:  
To:  
1:ZoomPrev  
Return to the viewing window displayed before the  
previous zoom.  
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.  
Note: You can store only one set of Window variable values at a time. Storing a new set  
overwrites the old set.  
Restoring the Standard Viewing Window  
You can restore the Window variables to their default values at any time. From the  
Zoom menu, select 6:ZoomStd.  
Using Math Tools to Analyze Functions  
On the Graph screen, the Math toolbar menu has several tools that help you analyze  
graphed functions.  
Basic Function Graphing  
330  
                   
Overview of the Math Menu  
Press from the Graph screen.  
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  
Value  
Description  
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.  
Finds the approximate numerical integral over an interval.  
Inflection  
Finds the inflection point of a curve, where its second  
derivative changes sign (where the curve changes  
concavity).  
Distance  
Draws and measures a line between two points on the  
same function or on two different functions.  
Tangent  
Arc  
Draws a tangent line at a point and displays its equation.  
Finds the arc length between two points along a curve.  
Basic Function Graphing  
331  
   
Math Tool  
Shade  
Description  
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.  
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 sysMath.  
Finding y(x) at a Specified Point  
1. From the Graph screen, press and select 1:Value.  
2. Type the x value, which must be a real value between xmin and xmax. The value can  
be an expression.  
3. Press ¸.  
y1(x)=1.25x ù cos(x)  
The cursor moves to that 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.  
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.  
Basic Function Graphing  
332  
   
You can also display function coordinates by tracing the function (), typing an x value,  
and pressing ¸.  
Finding a Zero, Minimum, or Maximum within an Interval  
1. From the Graph screen, press and select 2:Zero, 3:Minimum, or 4:Maximum.  
2. As necessary, use D and C to select the applicable function.  
Note: Typing x values is a quick way to set bounds.  
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 solution, and its  
coordinates are displayed.  
Finding the Intersection of Two Functions within an Interval  
1. From the Graph screen, press and select 5:Intersection.  
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.  
Basic Function Graphing  
333  
   
5. Press ¸. A 4 at the top of the screen marks the lower bound.  
6. Set the upper bound, and press ¸.  
y2(x)=2xN7  
The cursor moves to the intersection, and  
its coordinates are displayed.  
Finding the Derivative (Slope) at a Point  
1. From the Graph screen, press and select 6:Derivatives. Then 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.  
Finding the Numerical Integral over an Interval  
1. From the Graph screen, press and select 7:f(x)dx.  
2. As necessary, use D and C to select the applicable function.  
Note: Typing x values is a quick way to set the limits.  
Basic Function Graphing  
334  
   
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.  
4. Press ¸. A 4 at the top of the screen marks the lower limit.  
Note: To erase the shaded area, press (ReGraph).  
5. Set the upper limit, and press ¸.  
The interval is shaded, and its  
approximate numerical integral is  
displayed.  
Finding an Inflection Point within an Interval  
1. From the Graph screen, press and select 8:Inflection.  
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.  
Finding the Distance between Two Points  
1. From the Graph screen, press and select 9:Distance.  
Basic Function Graphing  
335  
 
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.  
Drawing a Tangent Line  
1. From the Graph screen, press and select A:Tangent.  
2. As necessary, use D and C to select the applicable function.  
Note: 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.  
Basic Function Graphing  
336  
   
Finding an Arc Length  
1. From the Graph screen, press and select B:Arc.  
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.  
Shading the Area between a Function and the x Axis  
You must have only one function graphed. If you graph two or more functions, the Shade  
tool shades the area between two functions.  
1. From the Graph screen, press and select C:Shade. The screen prompts for Above  
X axis?  
2. Select one of the following. To shade the function’s area:  
Above the x axis, press ¸.  
Below the x axis, press:  
j N  
Basic Function Graphing  
337  
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.  
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.  
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. To erase  
the shaded area, press (ReGraph).  
Shading the Area between Two Functions within an Interval  
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.  
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 ¸.  
Basic Function Graphing  
338  
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.  
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.  
7. Press ¸. A 4 at the top of the screen marks the lower bound.  
8. Set the upper bound, and press ¸.  
Below  
function  
The bounded area is shaded. To erase  
the shaded area, press (ReGraph).  
Above  
function  
Basic Function Graphing  
339  
 
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 Basic Function Graphing. Any differences that apply to polar equations are  
described on the following pages.  
Graphing Polar Equations  
1. Set Graph mode (3) to POLAR. Also  
set Angle mode, if necessary.  
2. Define x and y components on Y= Editor  
(8 #).  
3. Select () which defined equations to  
graph. Select the x or y component, or  
both.  
Note: To turn off any stat data plots press  
5 or use to deselect them.  
Polar Graphing  
340  
4. Set the display style for an equation. You  
can set either the x or y component.  
2 ˆ  
This is optional. For multiple equations,  
this helps visually distinguish one from  
another.  
5. Define the viewing window (8 $).  
Zoom also changes the viewing  
window.  
6. Change the graph format if necessary.  
ƒ 9  
– or –  
8 Í  
7. Graph the selected equations  
(8 %).  
Exploring the Graph  
From the Graph screen, you can:  
Display the coordinates of any pixel by using the free-moving cursor, or of a plotted  
point by tracing a polar equation.  
Polar Graphing  
341  
 
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.  
Differences in Polar and Function Graphing  
This module assumes that you already know how to graph y(x) functions as described in  
Basic Function Graphing. This section describes the differences that apply to polar  
equations.  
Setting the Graph Mode  
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.  
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).  
Polar Graphing  
342  
       
You can use the Define command from the Home screen (see the Technical Reference  
module) 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.  
Selecting the Display Style  
The Above and Below styles are not available for polar equations and are dimmed on the  
Y= Editor’s Style toolbar menu.  
Window Variables  
The Window Editor maintains an independent set of Window variables for each Graph  
mode setting (just as the Y= Editor maintains independent function lists). Polar graphs  
use the following Window variables.  
Variable  
Description  
qmin, qmax  
Smallest and largest q values to evaluate.  
Polar Graphing  
343  
   
Variable  
Description  
qstep  
Increment for the q value. Polar equations are evaluated  
at:  
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.  
Note: You can use a negative qstep. If so, qmin must be greater than qmax.  
Standard values (set when you select 6:ZoomStd from the Zoom toolbar menu) are:  
qmin = 0.  
xmin = L10.  
ymin = L10.  
(6.2831853... radians or  
360 degrees)  
xmax = 10.  
ymax = 10.  
qmax = 2p  
(.1308996... radians or 7.5 xscl = 1.  
degrees)  
yscl = 1.  
qstep = p/24  
You may need to change the standard values for the q variables (qmin, qmax, qstep) to  
ensure that enough points are plotted.  
Setting the Graph Format  
To display coordinates as r and q values, use:  
Polar Graphing  
344  
   
ƒ 9  
– or –  
8 Í  
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.  
Exploring a Graph  
As in function graphing, you can explore a graph by using the following tools. Any  
displayed coordinates are shown in polar or rectangular form as set in the graph format.  
Tool  
For Polar Graphs:  
Free-Moving  
Cursor  
Works just as it does for function graphs.  
Works just as it does for function graphs.  
Zoom  
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).  
Polar Graphing  
345  
   
Tool  
For Polar Graphs:  
Trace  
Lets you move the cursor along a graph one qstep at a  
time.  
When you begin a trace, the cursor is on the first selected  
equation at qmin.  
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.  
Automatic panning is not available. If you move the cursor  
off the left or right side of the screen, the TI-89 Titanium /  
Voyage™ 200 Graphing Calculator will not automatically  
pan the viewing window. However, you can use  
QuickCenter.  
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:  
Math  
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.  
During a trace, you can also evaluate r(q) by typing the q value and pressing ¸.  
Note: You can use QuickCenter at any time during a trace, even if the cursor is still on  
the screen.  
Polar Graphing  
346  
 
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 Basic Function Graphing. Any differences that apply to parametric  
equations are described on the following pages.  
Graping Parametic Equations  
1. Set Graph mode (3) to PARAMETRIC.  
Also set Angle mode, if necessary.  
2. Define x and y components on Y= Editor  
(8 #).  
3. Select (), which defined equations to  
graph. Select the x or y component, or  
both.  
Note: To turn off any stat data plots, press  
5 or use to deselect them.  
Parametric Graphing  
347  
4. Set the display style for an equation. You  
can set either the x or y component.  
2 ˆ  
This is optional. For multiple equations,  
this helps visually distinguish one from  
another.  
5. Define the viewing window (8 $).  
Zoom also changes the viewing  
window.  
6. Change the graph format if necessary.  
ƒ 9  
– or –  
8 Í  
7. Graph the selected equations  
(8 %).  
Exploring the Graph  
From the Graph screen, you can:  
Display the coordinates of any pixel by using the free-moving cursor, or of a plotted  
point by tracing a parametric equation.  
Parametric Graphing  
348  
   
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.  
Differences in Parametric and Function Graphing  
This module assumes that you already know how to graph y(x) functions as described in  
Basic Function Graphing. This section describes the differences that apply to parametric  
equations.  
Setting the Graph Mode  
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.  
Defining Parametric Equations on the Y= Editor  
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 Tables.)  
Enter x and y components on  
separate lines.  
You can define xt1(t) through  
xt99(t) and yt1(t) through yt99(t).  
Parametric Graphing  
349  
     
Be careful when using implied multiplication with t. For example:  
Enter:  
Instead of:  
Because:  
tcos(60)  
tcos is interpreted as a user-defined function  
called tcos, not as implied multiplication.  
In most cases, this refers to a nonexistent  
function. So the TI-89 Titanium simply returns  
the function name, not a number.  
tùcos(60)  
Note: When using t, be sure implied multiplication is valid for your situation. You can use  
the Define command from the Home screen (see the Technical Reference module) 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.  
Selecting Parametric Equations  
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 x and y components separately can be useful for tables as described in Tables.  
With multiple parametric equations, you can select and compare all the x components or  
all the y components.  
Parametric Graphing  
350  
   
Selecting the Display Style  
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 Titanium automatically sets the y component to Dot.  
Note: 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.  
Window Variables  
The Window Editor maintains an independent set of Window variables for each Graph  
mode setting (just as the Y= Editor maintains independent function lists). Parametric  
graphs use the following Window variables.  
Note: You can use a negative tstep. If so, tmin must be greater than tmax.  
Variable  
tmin, tmax  
tstep  
Description  
Smallest and largest t values to evaluate.  
Increment for the t value. Parametric equations are  
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  
Parametric Graphing  
351  
 
Variable  
Description  
xscl, yscl  
Distance between tick marks on the x and y axes.  
Standard values (set when you select 6:ZoomStd from the Zoom toolbar menu) are:  
tmin = 0  
xmin = L10.  
ymin = L10.  
(6.2831853... radians  
or 360 degrees)  
xmax = 10.  
ymax = 10.  
tmax = 2p  
(.1308996... radians  
or 7.5 degrees)  
xscl = 1.  
yscl = 1.  
tstep =p/24  
You may need to change the standard values for the t variables (tmin, tmax, tstep) to  
ensure that enough points are plotted.  
Exploring a Graph  
As in function graphing, you can explore a graph by using the following tools.  
Note: During a trace, you can also evaluate x(t) and y(t) by typing the t value and  
pressing ¸. You can use QuickCenter at any time during a trace, even if the cursor is  
still on the screen.  
Tool  
For Parametric Graphs:  
Free-Moving  
Cursor  
Works just as it does for function graphs.  
Parametric Graphing  
352  
     
Tool  
For Parametric Graphs:  
Works just as it does for function graphs, with the  
following exceptions:  
Zoom  
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).  
Lets you move the cursor along a graph one tstep at a  
time.  
Trace  
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.  
Automatic panning is not available. If you move the  
cursor off the left or right side of the screen, the TI-89  
Titanium will not automatically pan the viewing window.  
However, you can use QuickCenter.  
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:  
Math  
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.  
Parametric Graphing  
353  
 
Sequence Graphing  
Overview of Steps in Graphing Sequences  
To graph sequences, use the same general steps used for y(x) functions as described in  
Basic Function Graphing. Any differences are described on the following pages.  
Graphing Sequences  
1. Set Graph mode (3) to SEQUENCE.  
Also set Angle mode, if necessary.  
2. Define sequences and, if needed, initial  
values on Y= Editor (8 #).  
3. Select () which defined sequences to  
graph. Do not select initial values.  
Note: To turn off any stat data plots, press  
5 or use to deselect them.  
4. Set the display style for a sequence.  
2 ˆ  
For sequences, the default style is  
Square.  
Sequence Graphing  
354  
5. Define the viewing window (8 $).  
Zoom also changes the viewing  
window.  
6. Change the graph format if necessary.  
, 9  
— or —  
8 Í  
7. Graph the selected equations  
(8 %).  
Exploring the Graph  
From the Graph screen, you can:  
Display the coordinates of any pixel by using the free-moving cursor, or of a plotted  
point by tracing a sequence.  
Use the Zoom toolbar menu to zoom in or out on a portion of the graph.  
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.  
Note: You can also evaluate a sequence while tracing. Simply enter the n value directly  
from the keyboard.  
Sequence Graphing  
355  
   
Differences in Sequence and Function Graphing  
This module assumes that you already know how to graph y(x) functions as described in  
Basic Function Graphing. This section describes the differences that apply to  
sequences.  
Setting the Graph Mode  
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.  
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.  
If a sequence requires more than one initial value, enter them as a list enclosed in  
braces { } and separated by commas. You must use a list to enter two or more initial  
values.  
Enter {1,0} even though {1 0} is  
shown in the sequence list.  
Sequence Graphing  
356  
       
If a sequence requires an initial value but you do not enter one, you will get an error  
when graphing.  
On the Y= Editor, Axes lets you select the axes that are used to graph the sequences.  
Optionally, for 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.  
Plots u(n-1) on the x axis and u(n) on the y axis.  
Lets you select the x and y axes.  
WEB  
CUSTOM  
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.  
Note: You can use the Define command from the Home screen (see Technical  
Reference) to define functions and equations for any graphing mode, regardless of the  
current mode.  
Sequence Graphing  
357  
   
Selecting Sequences  
With TIME and WEB axes, the TI-89 Titanium graphs only the selected sequences. If  
you entered any sequences that require an initial value, you must enter the  
corresponding ui value.  
Note: With TIME and CUSTOM axes, all defined sequences are evaluated even if they  
are not plotted.  
You can select a  
sequence  
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.  
Selecting the Display Style  
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.  
Sequence Graphing  
358  
 
Window Variables  
The Window Editor maintains an independent set of Window variables for each Graph  
mode setting (just as the Y= Editor maintains independent function lists). Sequence  
graphs use the following Window variables.  
Variable  
Description  
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.  
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,  
ymin, ymax  
Boundaries of the viewing window.  
xscl, yscl  
Distance between tick marks on the x and y axes.  
Note: Both nmin and nmax must be positive integers, although nmin can be zero; nmin,  
nmax, plotstrt and plotstep must be integers 1. If you do not enter integers, they will be  
rounded to integers.  
Sequence Graphing  
359  
Standard values (set when you select 6:ZoomStd from the Zoom toolbar menu) are:  
nmin = 1.  
xmin = L10.  
xmax = 10.  
xscl = 1.  
ymin = L10.  
ymax = 10.  
yscl = 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 graph, look at the following examples of a recursive  
sequence.  
This graph is plotted beginning with the 1st term.  
plotStrt=1  
This graph is plotted beginning with the 9th term.  
plotStrt=9  
Note: Both of these graphs use the same Window variables, except for plotstrt.  
Sequence Graphing  
360  
 
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)  
plotStrt=  
nma  
ymin and ymax = expected values for the  
sequence  
Changing the Graph Format  
The Graph Order format is not available.  
With TIME or CUSTOM axes, multiple sequences are always plotted simultaneously.  
With WEB axes, multiple sequences are always plotted sequentially.  
Exploring a Graph  
As in function graphing, you can explore a graph by using the following tools. Any  
displayed coordinates are shown in rectangular or polar form as set in the graph format.  
Tool  
For Sequence Graphs:  
Free-Moving  
Cursor  
Works just as it does for function graphs.  
Sequence Graphing  
361  
     
Tool  
For Sequence Graphs:  
Works just as it does for function graphs.  
Zoom  
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).  
Depending on whether you use TIME, CUSTOM, or WEB  
axes, Trace operates very differently.  
Trace  
With TIME or CUSTOM axes, you move the cursor along  
the sequence one plotstep at a time. To move  
approximately ten plotted points at a time, press 2 B  
or 2 A.  
-
When you begin a trace, the cursor is on the first  
selected sequence at the term number specified by  
plotstrt, even if it is outside the viewing window.  
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.  
-
With WEB axes, the trace cursor follows the web, not the  
sequence.  
Only 1:Value is available for sequence graphs.  
Math  
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.  
Sequence Graphing  
362  
       
During a trace, you can evaluate a sequence by typing a value for n and pressing ¸.  
You can use QuickCenter at any time during a trace, even if the cursor is still on the  
screen.  
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 module.  
Displaying the AXES Dialog Box  
From the Y= Editor, Axes:  
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(nN1) 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).  
Sequence Graphing  
363  
 
Item  
Description  
X Axis  
and  
Active only when Axes = CUSTOM, these let you select the  
value or sequence to plot on the x and y axes.  
Y Axis  
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.  
Using Web Plots  
A web plot graphs u(n) vs. u(nN1), which lets you study the long-term behavior of a  
recursive sequence. The examples in this section also show how the initial value can  
affect a sequence’s behavior.  
Valid Functions for Web Plots  
A sequence must meet the following criteria; otherwise, it will not be graphed properly on  
WEB axes. The sequence:  
Must be recursive with only one recursion level; u(nN1) but not u(nN2).  
Cannot reference n directly.  
Cannot reference any other defined sequence except itself.  
When You Display the Graph Screen  
After you select WEB axes and display the Graph screen, the TI-89 Titanium:  
Sequence Graphing  
364  
 
Draws a y=x reference line.  
Plots the selected sequence definitions as functions, with u(nN1) 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 Titanium draws the y=x reference line and then plots y = y = 5 x .  
Drawing the Web  
After the sequence is plotted, the web may be displayed manually or automatically,  
depending on how you set Build Web on the AXES dialog box.  
If Build Web = The web is:  
TRACE  
Not drawn until you press . The web is then drawn  
step-by-step as you move the trace cursor (you must  
have an initial value before using Trace).  
Note: With WEB axes, you cannot trace along the  
sequence itself as you do in other graphing modes.  
AUTO  
Drawn automatically. You can then press to trace the  
web and display its coordinates.  
The web:  
1. Starts on the x axis at the initial value ui (when plotstrt = 1).  
2. Moves vertically (either up or down) to the sequence.  
Sequence Graphing  
365  
 
3. Moves horizontally to the y=x reference line.  
4. Repeats this vertical and horizontal movement until n=nmax.  
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).  
Example: Convergence  
1. On the Y= Editor (8 #), define u1(n) = L.8u1(nN1) + 3.6. Set initial value ui1 = L4.  
2. Set Axes = TIME.  
3. On the Window Editor (8 $), set the Window variables.  
nmin=1  
xmin=0  
xmax=25  
xscl=1  
ymin=L10  
ymax=10  
yscl=1  
nmax=25  
plotstrt=1  
plotstep=1  
4. Graph the sequence (8 %).  
u(n)  
By default, a sequence uses the  
Square display style.  
n
5. On the Y= Editor, set Axes = WEB and Build Web = AUTO.  
Sequence Graphing  
366  
6. On the Window Editor, change the Window variables.  
nmin=1  
xmin= L10  
xmax=10  
xscl=1  
ymin=L10  
ymax=10  
yscl=1  
nmax=25  
plotstrt=1  
plotstep=1  
7. Regraph the sequence.  
u(n)  
Web plots are always shown as  
lines, regardless of the selected  
display style.  
y=L.8x + 3.6  
y=x  
u(nN1)  
Note: During a trace, you can  
move the cursor to a specified n  
value by typing the value and  
pressing ¸.  
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(nN1) and u(n),  
respectively).  
As you trace to larger values of nc, you can see xc and yc approach the convergence  
point.  
Note: When the nc value 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.  
Sequence Graphing  
367  
 
Example: Divergence  
2
1. On the Y= Editor (8 #), define u1(n) = 3.2u1(nN1) N .8(u1(nN1)) . Set initial value  
ui1 = 4.45.  
2. Set Axes = TIME.  
3. On the Window Editor (8 $), set the Window variables.  
nmin=0  
xmin=0  
xmax=10  
xscl=1  
ymin=L75  
ymax=10  
yscl=1  
nmax=10  
plotstrt=1  
plotstep=1  
4. Graph the sequence (8 %).  
u(n)  
n
Because the sequence quickly  
diverges to large negative values,  
only a few points are plotted.  
5. On the Y= Editor, set Axes = WEB and Build Web = AUTO.  
6. On the Window Editor (8 $), set the Window variables.  
nmin=0  
xmin=L10  
xmax=10  
xscl=1  
ymin=L10  
ymax=10  
yscl=1  
nmax=10  
plotstrt=1  
plotstep=1  
Sequence Graphing  
368  
 
7. Regraph the sequence.  
u(n  
u(nN1)  
The web plot shows how quickly the  
sequence diverges to large negative  
values.  
y=x  
2
y=3.2xN.8x  
Example: Oscillation  
This example shows how the initial value can affect a sequence.  
1. On the Y= Editor (8 #), use the same sequence defined in the divergence  
2
example: u1(n) = 3.2u1(nN1) N .8(u1(nN1)) . Set initial value ui1 = 0.5.  
2. Set Axes = TIME.  
3. On the Window Editor (8 $), set the Window variables.  
nmin=1  
xmin=0  
xmax=100  
xscl=10  
ymin=0  
ymax=5  
yscl=1  
nmax=100  
plotstrt=1  
plotstep=1  
4. Graph the sequence (8 %).  
u(n)  
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.  
Sequence Graphing  
369  
6. On the Window Editor (8 $), set the Window variables.  
nmin=1  
xmin=2.68  
xmax=6.47  
xscl=1  
ymin=4.7  
ymax=47  
yscl=1  
nmax=100  
plotstrt=1  
plotstep=1  
7. Regraph the sequence.  
u(n)  
u(nN1)  
Note: The web moves to an orbit  
oscillating between two stable points.  
y=x  
2
y=3.2xN.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.  
9. On the Window Editor, set plotstrt=50.  
Then regraph the sequence.  
Note: By starting the web plot at a later  
term, the stable oscillation orbit is  
shown more clearly.  
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.  
Sequence Graphing  
370  
 
Example: Predator-Prey Model  
Using the predator-prey model in biology, determine the numbers of rabbits and foxes  
that maintain population equilibrium in a certain region.  
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  
=
=
R
(1 + M NK W  
)
n-1  
n-1  
Wn  
W
(1 + G R  
ND)  
n-1  
n-1  
1. On the Y= Editor (8 #), define the sequences and initial values for R and W .  
n
n
u1(n) = u1(nN1) (1 + .05 N .001 u2(nN1))  
ui1 = 200  
u2(n) = u2(nN1) (1 + .0002 u1(nN1) N .03)  
ui2 = 50  
Note: Assume there are initially 200 rabbits and 50 foxes.  
2. Set Axes = TIME.  
Sequence Graphing  
371  
3. On the Window Editor (8 $), set the Window variables.  
nmin=0  
xmin=0  
ymin=0  
nmax=400  
plotstrt=1  
plotstep=1  
xmax=400  
xscl=100  
ymax=300  
yscl=100  
4. Graph the sequence  
u(n)  
(8 %).  
u1(n)  
Note: Use to individually  
trace the number of rabbits  
u1(n) and foxes u2(n) over time  
(n).  
u2(n)  
5. On the Y= Editor, set Axes = CUSTOM, X Axis = u1, and Y Axis = u2.  
6. On the Window Editor (8 $), set the Window variables.  
nmin=0  
xmin=84  
xmax=237  
xscl=50  
ymin=25  
ymax=75  
yscl=10  
nmax=400  
plotstrt=1  
plotstep=1  
7. Regraph the sequence.  
u2(n)  
Note: Use to trace both the number of  
rabbits (xc) and foxes (yc) over the cycle  
of 400 generations.  
u1(n)  
Sequence Graphing  
372  
 
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 Tables for detailed information.  
Example: Fibonacci Sequence  
In a Fibonacci sequence, the first two terms are 1 and 1. Each succeeding term is the  
sum of the two immediately preceding terms.  
1. On the Y= Editor (8 #), 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 (8 &) to:  
tblStart = 1  
@tbl = 1  
Independent = AUTO  
This item is dimmed  
if you are not using  
TIME axes.  
Sequence Graphing  
373  
 
3. Set Window variables (8 $) so  
that nmin has the same value as tblStart.  
4. Display the table (8 ').  
Fibonacci sequence is  
in column 2.  
5. Scroll down the table (D or 2 D) to see  
more of the sequence.  
Sequence Graphing  
374  
 
3D Graphing  
Overview of Steps in Graphing 3D Equations  
To graph 3D equations, use the same general steps used for y(x) functions as described  
in Basic Function Graphing. Any differences that apply to 3D equations are described on  
the following pages.  
Graphing 3D Equations  
1. Set Graph mode (3) to 3D. Also set  
Angle mode, if necessary.  
2. Define 3D equations on Y= Editor  
(8 #).  
3. Select () which equation to graph. You  
can select only one 3D equation.  
To turn off any stat data plots, press 5  
or use to deselect them.  
4. Define the viewing cube (8 $).  
For 3D graphs, the viewing window is  
called the viewing cube. Zoom also  
changes the viewing cube.  
3D Graphing  
375  
5. Change the graph format if necessary.  
ƒ 9  
– or -  
8 Í  
Note: To help you see the orientation of  
3D graphs, turn on Axes and Labels.  
6. Graph the selected equations  
(8 %).  
Note: Before displaying the graph, the  
screen shows the “percent evaluated.”  
Exploring the Graph  
From the Graph screen, you can:  
Trace the equation.  
Use the Zoom toolbar menu to zoom in or out on a portion of the graph. Some of  
the menu items are dimmed because they are not available for 3D graphs.  
Use the Math toolbar menu to evaluate the equation at a specified point. Only  
1:Value is available for 3D graphs.  
You can also evaluate z(x,y) while tracing. Type the x value and press ¸; then type  
the y value and press ¸.  
3D Graphing  
376  
   
Differences in 3D and Function Graphing  
This module assumes that you already know how to graph y(x) functions as described in  
Basic Function Graphing. This section describes the differences that apply to 3D  
equations.  
Setting the Graph Mode  
Use 3 to 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.  
Defining 3D Equations on the Y= Editor  
You can define 3D equations  
for z1(x,y) through z99(x,y).  
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.  
3D Graphing  
377  
     
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.  
Note: You can use the Define command from the Home screen (see the Technical  
Reference module) to define functions and equations for any graphing mode, regardless  
of the current mode.  
Selecting the Display Style  
Because you can graph only one 3D equation at a time, display styles are not available.  
On the Y= Editor, the Style toolbar menu is dimmed.  
For 3D equations, however, you can use:  
ƒ 9  
– or -  
8 Í  
to set the Style format to WIRE FRAME or HIDDEN SURFACE.  
Window Variables  
The Window Editor maintains an independent set of Window variables for each Graph  
mode setting (just as the Y= Editor maintains independent function lists). 3D graphs use  
the following Window variables.  
Variable  
Description  
Angles (always in degrees) used to view the graph.  
eyeq, eyef,  
eyeψ  
3D Graphing  
378  
 
Variable  
Description  
xmin, xmax, Boundaries of the viewing cube.  
ymin, ymax,  
zmin, zmax  
xgrid, ygrid  
The distance between xmin and xmax and between ymin  
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.  
The incremental value along x and y is calculated as:  
xmax xmin  
x increment = --------------------------------  
xgrid  
ymax ymin  
y increment = --------------------------------  
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,ymax)  
z(xmin,ymin)  
z(xmax,ymax)  
z(xmax,ymin)  
ncontour  
The number of contours evenly distributed along the  
displayed range of z values.  
3D Graphing  
379  
Note: If you enter a fractional number for xgrid or ygrid, it is rounded to the nearest whole  
number | 1. The 3D mode does not have scl Window variables, so you cannot set tick  
marks on the axes.  
Standard values (set when you select 6:ZoomStd from the Zoom toolbar menu) are:  
eyeq = 20.  
eyef = 70.  
eyeψ = 0.  
xmin = L10.  
xmax = 10.  
xgrid = 14.  
ymin = L10.  
ymax = 10.  
ygrid = 14.  
zmin = L10.  
zmax = 10.  
ncontour = 5.  
You may need to increase the standard values for the grid variables (xgrid, ygrid) to  
ensure that enough points are plotted.  
Note: Increasing the grid variables decreases the graphing speed.  
Setting the Graph Format  
The Axes and Style formats are specific to the 3D graphing mode.  
Exploring a Graph  
As in function graphing, you can explore a graph by using the following tools. Any  
displayed coordinates are shown in rectangular or cylindrical form as set in the graph  
format. In 3D graphing, cylindrical coordinates are shown when you use use:  
ƒ 9  
– or –  
3D Graphing  
380  
     
8 Í  
to set Coordinates = POLAR.  
Tool  
For 3D Graphs:  
Free-Moving The free-moving cursor is not available.  
Cursor  
Works essentially the same as it does for function graphs,  
but remember that you are now using three dimensions  
instead of two.  
Zoom  
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).  
Lets you move the cursor along a grid wire from one grid  
point to the next on the 3D surface.  
Trace  
When you begin a trace, the cursor appears at the  
midpoint of the xy grid.  
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.  
3D Graphing  
381  
   
Tool  
For 3D Graphs:  
Only 1:Value is available for 3D graphs. This tool displays  
the z value for a specified x and y value.  
Math  
After selecting 1:Value, type the x value and press ¸.  
Then type the y value and press ¸.  
Note: During a trace, you can also evaluate z(x,y). Type the x value and press ¸;  
then type the y value and press ¸.  
Moving the Cursor in 3D  
When you move the cursor along a 3D surface, it may not be obvious why the cursor  
moves as it does. 3D graphs have two independent variables (x,y) instead of one, and  
the x and y axes have a different orientation than other graphing modes.  
How to Move the Cursor  
On a 3D surface, the cursor always follows along a grid wire.  
Cursor Key  
Moves the cursor to the next grid point in the:  
Positive x direction  
B
A
C
D
Negative x direction  
Positive y direction  
Negative y direction  
3D Graphing  
382  
Note: You can move the cursor only within the x and y boundaries set by Window  
variables xmin, xmax, ymin, and ymax.  
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.  
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  
Note: To show the axes and their labels from the Y= Editor, Window Editor, or Graph  
screen, use:  
8 Í  
Simple Example of Moving the Cursor  
The following graph shows a sloped plane that has the equation z1(x,y) = ‘M(x + y) / 2.  
Suppose you want to trace around the displayed boundary.  
3D Graphing  
383  
 
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.  
D moves in a negative  
y direction, back to ymin.  
B moves in a positive  
x direction, up to xmax.  
C moves in a positive  
y direction, up to ymax.  
A moves in a negative  
x direction, back to xmin.  
By displaying and labeling the axes, you can more easily see the pattern in the cursor  
movement. 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.  
Example of the Cursor on a Hidden Surface  
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.  
3D Graphing  
384  
 
2
2
For example, consider a saddle shape z1(x,y) = (x Ny ) / 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).  
You can move the cursor so  
that it does not appear to be  
on a grid point.  
If you cut away the front side,  
you can see the cursor is  
actually on a grid point on the  
hidden back side.  
Note: To cut away the front of the saddle in this example, set xmax=0 to show only  
negative x values.  
Example of an “Off the Curve” Cursor  
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.  
3D Graphing  
385  
 
2
2
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  
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.  
Note: QuickCenter lets you center the viewing cube on the cursor’s location. Simply  
press ¸.  
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).  
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.  
3D Graphing  
386  
 
How the Viewing Angle Is Measured  
Z
The viewing angle has three components:  
eyef  
eyeq — angle in degrees from the  
positive x axis.  
eye  
Y
eyef — angle in degrees from the  
positive z axis.  
X
eyeq  
eyeψ — angle in degrees by which the  
graph is rotated counter-clockwise  
around the line of sight set by eyeq  
and eyef.  
Do not enter a ¡symbol. For  
example, type 20, 70, and  
0, not 20¡, 70¡ and 0¡.  
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 (8 $), always enter eyeq, eyef, and eyeψ in degrees,  
regardless of the current angle mode.  
3D Graphing  
387  
 
Effect of Changing eyeq theta  
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.  
3
3
In this example eyef =  
70  
z1(x,y) = (x y – y x) / 390  
eyeq = 20  
eyeq = 50  
eyeq = 80  
Note: This example increments eyeq by 30.  
3D Graphing  
388  
 
Effect of Changing eyef phi  
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.  
3
3
In this example eyeq =  
20  
z1(x,y) = (x y – y x) / 390  
eyef = 90  
eyef = 70  
eyef = 50  
Note: This example starts on the xy plane (eyef = 90) and decrements eyef by 20 to  
elevate the viewing angle.  
Effect of Changing eyeψ psi  
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.  
3D Graphing  
389  
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,  
3
3
eyeq=20 and eyef=70  
z1(x,y)=(x y–y x) / 390  
eyeψ = 0  
eyeψ = 45  
eyeψ = 90  
When eyeψ=0, the z axis runs the height of  
the screen.  
z=10  
z=ë10  
When eyeψ=90, the z axis runs the width of  
the screen.  
z=10  
z=ë10  
3D Graphing  
390  
 
As the z axis rotates 90¡, its range (L10 to 10 in this example) expands to almost twice its  
original length. Likewise, the x and y axes expand or contract.  
From the Home Screen or a Program  
The eye values are stored in the system variables eyeq, eyef, and eyeψ. You can access  
or store to these variables as necessary.  
@
To type f or ψ, press 8 c j [F] or 8 c Ú, respectively.  
You can also press 2 G and use the Greek menu.  
Animating a 3D Graph Interactively  
After plotting any 3D graph, you can change the viewing angle interactively by using the  
cursor.  
The Viewing Orbit  
When using A and B to animate a graph, think of it as moving the viewing angle along  
its “viewing orbit” around the graph.  
Moving along this orbit can  
cause the z axis to wobble  
slightly during the animation.  
3D Graphing  
391  
Note: The viewing orbit affects the eye Window variables in differing amounts.  
Animating the Graph  
To:  
Do this:  
Animate the graph incrementally.  
Move along the viewing orbit.  
Press and release the cursor quickly.  
A or B  
Change the viewing orbit’s elevation.  
(primarily increases or decreases  
eyef)  
C or D  
Animate the graph continuously.  
Press and hold the cursor for about  
1 second, and then release it.  
To stop, press N, ¸, ´, or  
8 (space).  
Change between 4 animation  
speeds (increase or decrease the  
incremental changes in the eye  
Window variables).  
Press « or |.  
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 values. Press 0 (zero).  
Notes: If the graph is shown in expanded view, it returns to normal view automatically  
when you press a cursor key.  
3D Graphing  
392  
 
After animating the graph, you can stop and then re-start the animation in the same  
direction by pressing:  
¸ or j   
During an animation, you can switch to the next graph format style by pressing:  
Í
You can view a graphic that shows the eye angles.  
Animating a Series of Graph Pictures  
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”  
Additonal Graphing Topics. This method gives you more control over the Window  
variable values, particularly eyeψ, which rotates the graph.  
Changing the Axes and Style Formats  
With its default settings, the TI-89 Titanium displays hidden surfaces on a 3D graph but  
does not display the axes. However, you can change the graph format at any time.  
Displaying the GRAPH FORMATS Dialog Box  
From the Y= Editor, Window Editor, or Graph screen, press:  
ƒ 9  
3D Graphing  
393  
 
– or -  
8 Í  
The dialog box shows the current graph  
format settings.  
To exit without making a change, press  
N.  
To change any of these settings, use the same procedure that you use to change other  
types of dialog boxes, such as the MODE dialog box.  
Examples of Axes Settings  
To display the valid Axes settings, highlight  
the current setting and press B.  
2
2
z1(x,y) = x +.5y  
AXES — Shows standard xyz 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 = L10 and xmax = ymax = zmax = 10, the origin is at the center of  
the box.  
3D Graphing  
394  
       
Note: Setting Labels = ON is helpful when you display either type of 3D axes.  
Examples of Style Settings  
Note: WIRE FRAME is faster to graph and may be more convenient when you’re  
experimenting with different shapes.  
To display the valid Style settings, highlight  
the current setting and press B.  
WIRE FRAME — Shows the 3D shape  
as a transparent wire frame.  
HIDDEN SURFACES — Uses shading  
to differentiate the two sides of the 3D  
shape.  
Later sections in this module describe CONTOUR LEVELS, WIRE AND COUNTOUR,  
and implicit plots.  
Be Aware of Possible Optical Illusions  
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. Typically, most optical  
illusions occur when the eye angles are in a negative quadrant of the coordinate system.  
3D Graphing  
395  
 
Optical illusions may be more noticeable with box axes. For example, it may not be  
immediately obvious which is the “front” of the box.  
Looking down  
Looking up  
from above the xy plane  
from below the xy plane  
eyeq = 20, eyef = 55, eyeψ = 0  
eyeq = 20, eyef = 120, eyeψ= 0  
Note: The first two examples show the graphs as displayed on the screen. The second  
two 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.  
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 module discusses the CONTOUR LEVELS and WIRE AND  
CONTOUR graph format styles.  
3D Graphing  
396  
 
Selecting the Graph Format Style  
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:  
Style = CONTOUR LEVELS  
– or –  
Style = WIRE AND CONTOUR  
For CONTOUR LEVELS, only the contours are shown.  
-
-
-
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.  
The graph is shown in expanded view. To switch between expanded and normal  
view, press p.  
The Labels format is set to OFF automatically.  
For WIRE AND CONTOUR, the contours are drawn on a wire frame view. The  
viewing angle, view (expanded or normal), and Labels format retain their previous  
settings.  
Notes:  
From the Graph screen, you can switch from one graph format style to the next  
(skipping IMPLICIT PLOT) by pressing:  
Í
Pressing:  
Í
to select CONTOUR LEVELS does not affect the viewing angle, view, or Labels  
3D Graphing  
397  
format as it does if you use:  
8 Í  
3
3
2
2
Style  
z1(x,y)=(x y–y x) / 390  
z1(x,y)=x +.5y –5  
Looking down z axis  
CONTOUR  
LEVELS  
Using eyeq=20, eyef=70, eyeψ=0  
CONTOUR  
LEVELS  
WIRE AND  
CONTOUR  
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. Do not confuse the  
contours with the grid lines. The contours are darker.  
3D Graphing  
398  
How Are Z Values Determined?  
You can set the ncontour Window variable (8 $) to specify the number of  
contours that will be evenly distributed along the displayed range of z values, where:  
zmax zmin  
increment = --------------------------------  
ncontour + 1  
The z values for the contours are:  
zmin + increment  
zmin + 2(increment)  
zmin + 3(increment)  
©
zmin + ncontour(increment)  
The default is 5. You  
can set this to 0  
through 20.  
If ncontour=5 and you use the standard viewing window (zmin=L10 and zmax=10) , the  
increment is 3.333. Five contours are drawn for z=L6.666, L3.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.  
3D Graphing  
399  
 
Drawing a Contour for the Z Value of a Selected Point Interactively  
If a contour graph is currently displayed, you can specify a point on the graph and draw a  
contour for the corresponding z value.  
1. To display the Draw menu, press:  
2 ˆ  
2. Select 7:Draw Contour.  
3. Either:  
Type the point’s x value and press ¸, and then type the y value and press  
¸.  
– or –  
Move the cursor to the applicable point. (The cursor moves along the grid lines.)  
Then press ¸.  
2
2
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.  
Note: Any existing contours remain on the graph. To remove the default contours, display  
the Window editor (8 $) and set ncontour=0.  
3D Graphing  
400  
 
Drawing Contours for Specified Z Values  
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.  
Some examples are:  
DrwCtour 5  
Draws a contour for z=5.  
DrwCtour {1,2,3}  
Draws contours for z=1, 2, and 3.  
DrwCtour  
seq(n,n,L10,10,2)  
Draws contours for a sequence of z values  
from L10 through 10 in steps of 2 (L10, L8, L6,  
etc.).  
Note: To remove the default contours, use 8 $ and set ncontour=0.  
The specified contours are drawn on the current 3D graph. (A contour is not drawn if the  
specified z value is outside the viewing cube or if the 3D graph is not defined at that z  
value.)  
Notes about Contour Plots  
For a contour plot:  
You can use the cursor keys 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.  
3D Graphing  
401  
 
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.  
8 Í  
Example: Contours of a Complex Modulus Surface  
The complex modulus surface given by z(a,b) = abs(f(a+bi)) shows all the complex zeros  
of any polynomial y=f(x).  
Example  
3
In this example, let f(x)=x +1. By substituting the general complex form x+yi for x, you  
3
can express the complex surface equation as z(x,y)=abs((x+yi) +1).  
1. Use 3 to set Graph=3D.  
2. Press 8 #, and define the equation:  
z1(x,y)=abs((x+yùi)^3+1)  
3. Press 8 $, and set the Window  
variables as shown.  
3D Graphing  
402  
4. Display the Graph Formats dialog box:  
8 Í Turn on the axes, set  
Style = CONTOUR LEVELS, and return to  
the Window editor.  
5. Press 8 % 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
3
2
1
2
3
2
L1 , -- + ------ i, and -- – ------ i  
6. Press , and move the trace cursor to  
the zero in the fourth quadrant.  
The coordinates let you estimate  
.428–.857i as the zero.  
The zero is precise  
when z=0.  
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.  
3D Graphing  
403  
 
Notes:  
For more accurate estimates, increase the xgrid and ygrid Window variables.  
However, this increases the graph evaluation time.  
When you animate the graph, the screen changes to normal view. Use p to toggle  
between normal and expanded views.  
Implicit Plots  
An implicit plot is used primarily as a way to graph 2D implicit forms that cannot be  
graphed in function graphing mode. Technically, an implicit plot is a 3D contour plot with  
a single contour drawn for z=0 only.  
Explicit and Implicit Forms  
In 2D function graphing mode, equations have  
an explicit form y=f(x), where y is unique for  
each value of x.  
Many equations, however, have an implicit  
y is not unique for  
form f(x,y)=g(x,y), where you cannot explicitly  
each x, so you cannot  
solve for y in terms of x or for x in terms of y.  
graph this in function  
graphing mode.  
3D Graphing  
404  
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.  
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.  
2
2
For example, given the ellipse equation  
shown to the right, enter the implicit form  
in the Y= Editor.  
If x +.5y =30,  
2
2
then z1(x,y)=x +.5y –30.  
Notes: You can also graph many implicit forms if you either:  
Express them as parametric equations.  
Break them into separate, explicit functions.  
Selecting the Graph Format Style  
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, or Graph screen:  
8 Í  
3D Graphing  
405  
Note: From the Graph screen, you can switch to the other graph format styles by  
and then set Style = IMPLICIT PLOT.  
pressing:  
Í
However, to return to IMPLICIT PLOT press:  
8 Í  
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.  
2
2
sin(x)+cos(y)= e(xùy)  
z1(x,y)=sin(x)+cos(y)–e(xùy)  
x –y =4  
Style  
2
2
z1(x,y)=x –y –4  
IMPLICIT  
PLOT  
3D Graphing  
406  
   
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.  
Notes About Implicit Plots  
For an implicit plot:  
The ncontour Window variable 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 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.  
8 Í  
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.  
3D Graphing  
407  
Example  
4
3
Graph the equation sin(x +y–x y) = .1.  
1. Use 3 to set Graph=3D.  
2. Press 8 #, and define the equation:  
z1(x,y)=sin(x^4+y– x^3y)–.1  
3. Press 8 $, and set the Window  
variables as shown.  
4. Press:  
8 ÍTurn on the axes, set  
Style = IMPLICIT PLOT, and return to the  
Window editor.  
5. Press 8 % 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  
3D Graphing  
408  
 
6. Use the cursor keys to animate the  
graph and view it from different eye  
angles.  
Note: For more detail, increase the xgrid  
and ygrid Window variables. However,  
this increases the graph evaluation time.  
In expanded view, this  
example shows  
eyeq=L127.85,  
eyef=52.86, and  
eyeψ=L18.26.  
Note: When you animate the graph, the screen changes to normal view. Press p to  
switch between normal and expanded views.  
3D Graphing  
409  
 
Differential Equation Graphing  
Overview of Steps in Graphing Differential  
Equations  
To graph differential equations, use the same general steps used for y(x) functions as  
described in Basic Function Graphing. Any differences are described on the following  
pages.  
Graphing Differential Equations  
1. Set Graph mode (3) to DIFF  
EQUATIONS. Also set Angle mode,  
if necessary.  
2. Define equations and, optionally, initial  
conditions on Y= Editor (8 #).  
3. Select () which defined functions to  
graph.  
Note: To turn off any stat data plots, press  
5 or use to deselect them.  
Differential Equation Graphing  
410  
4. Set the display style for a function.  
2 ˆ  
@
5. Set the graph format. Solution Method  
and Fields are unique to differential  
equations.  
, 9  
— or —  
@
8 Í  
Note: The Fields format is critical,  
depending on the order of the equation.  
6. Set the axes as applicable, depending on  
the Fields format.  
@
2 ‰  
Note: Valid Axes settings depend on the  
Fields format.  
7. Define the viewing window (8 $).  
Note: Depending on the Solution Method  
and Fields formats, different Window  
variables are displayed. Zoom also  
changes the viewing window.  
Differential Equation Graphing  
411  
   
8. Graph the selected functions (8 %).  
Differences in Diff Equations and Function Graphing  
This module assumes that you already know how to graph y(x) functions as described in  
Basic Function Graphing. This section describes the differences.  
Setting the Graph Mode  
Use 3 to 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.  
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).  
Differential Equation Graphing  
412  
   
Note: 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ù(100Ny1)  
Not: y1' = .001y1(t)ù(100Ny1(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.  
Detailed information is available on setting initial conditions.  
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.  
Differential Equation Graphing  
413  
       
Selecting the Display Style  
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 plotted.  
@
2 ˆ  
Setting Graph Formats  
From the Y= Editor, Window Editor, or Graph  
screen, press:  
, 9  
— or —  
@
8 Í  
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 the Technical  
Reference module.  
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.  
Differential Equation Graphing  
414  
       
Graph format  
Description  
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.  
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.  
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.  
Important: The Fields graph format is critical in successfully graphing differential  
equations.  
Note: 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 ¸ gain to continue.  
To cancel graphing, press ´.  
Setting Axes  
In the Y= Editor, Axes may or may not be available, depending on the current graph  
format.  
If it is available, you can select the axes that  
are used to graph the differential equations.  
@
2 ‰  
Differential Equation Graphing  
415  
Axes  
Description  
TIME  
Plots t on the x axis and y (the solutions to the selected  
differential equations) on the y axis.  
CUSTOM  
Lets you select the x and y axes.  
Window Variables  
Differential equation graphs use the following Window variables. Depending on the  
Solution Method and Fields graph formats, not all of these variables are listed in the  
Window Editor (8 $) at the same time.  
Variable  
t0  
Description  
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.)  
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.  
Differential Equation Graphing  
416  
Variable  
tplot  
Description  
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.  
Note: If tmax < t0, tstep must be negative. If Fields=SLPFLD, tplot is ignored and is  
assumed to be the same as t0.  
Variable  
Description  
xmin, xmax,  
Boundaries of the viewing window.  
ymin, ymax  
xscl, yscl  
Distance between tick marks on the x and y axes.  
ncurves  
Number of solution curves (0 through 10) that will be  
drawn automatically if you do not specify an initial  
condition. By default, ncurves = 0.  
Differential Equation Graphing  
417  
       
Variable  
Description  
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  
fldres  
Estep  
(Solution Method = RK only) Tolerance used by the RK  
method to help select a step size for solving the  
equation; must be 1EL14.  
(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.  
Differential Equation Graphing  
418  
   
Standard values (set when you select 6:ZoomStd from the Zoom toolbar menu) are:  
t0 = 0.  
ncurves = 0.  
diftol = .001  
Estep = 1.  
fldres = 14.  
dtime = 0.  
xmin = L1.  
xmax = 10.  
xscl = 1.  
ymin = L10.  
ymax = 10.  
yscl = 1.  
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.  
The fldpic System Variable  
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 Titanium reuses the picture in fldpic  
instead of having to redraw the field. This can speed up the regraphing time significantly.  
fldpic is deleted automatically when you exit the differential equation graphing mode or  
when you display a graph with Fields = FLDOFF.  
Exploring a Graph  
As in function graphing, you can explore a graph by using the following tools. Any  
displayed coordinates are shown in rectangular or polar form as set in the graph format.  
Tool  
For Differential Equation Graphs:  
Free-Moving  
Cursor  
Works just as it does for function graphs.  
Differential Equation Graphing  
419  
   
Tool  
For Differential Equation Graphs:  
Works just as it does for function graphs.  
Zoom  
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).  
Lets you move the cursor along the curve one tstep at a  
time. To move approximately ten plotted points at a time,  
press 2 B or 2 A.  
Trace  
If you enter initial conditions in the Y= Editor or let the  
ncurves Window variable plot curves automatically, you  
can trace the curves. If you use:  
@
2 Š  
IC from the Graph screen to select initial conditions  
interactively, you cannot trace the curves.  
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.  
Only 1:Value is available.  
Math  
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.  
Note: During a trace, you can move the cursor to a particular point by typing a value for t  
and pressing ¸. You can use QuickCenter at any time during a trace, even if the  
cursor is still on the screen.  
Differential Equation Graphing  
420  
 
Setting the Initial Conditions  
You can enter initial conditions in the Y= Editor, let the TI-89 Titanium calculate initial  
conditions automatically, or select them interactively from the Graph screen.  
Entering Initial Conditions in the Y= Editor  
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.  
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 a list of  
initial conditions.  
Enter {10,20} even  
though {10 20} is  
displayed.  
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.  
Differential Equation Graphing  
421  
If You Do Not Enter an Initial Condition in the Y= Editor  
If you do not enter initial conditions, the ncurves Window variable (8 $) 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 Fields =  
SLPFLD  
DIRFLD  
Then:  
Uses ncurves, if not set to 0, to graph curves.  
Ignores ncurves. Does not graph any curves.  
FLDOFF  
Uses ncurves if Axes = TIME (or if Axes = Custom and the  
x axis is t). Otherwise, a Diff Eq setup error occurs.  
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.  
Notes:  
Without entering initial conditions, use SLPFLD (with ncurves=0) or DIRFLD to  
display a slope or direction field only.  
SLPFLD is for a single 1st-order equation only. DIRFLD is for a 2nd-order equation  
(or system of two 1st-order equations) only.  
Differential Equation Graphing  
422  
   
Selecting an Initial Condition Interactively from the Graph Screen  
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.  
If Fields =  
Do this:  
SLPFLD  
– or –  
DIRFLD  
Press:  
@
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.  
Differential Equation Graphing  
423  
 
If Fields =  
Do this:  
Press:  
FLDOFF  
@
2 Š  
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.  
You can accept the defaults or change them. Then press  
¸.  
Specify an initial condition as described for SLPFLD or  
DIRFLD.  
Note: With SLPFLD or DIRFLD, you can select initial conditions interactively regardless  
of whether you enter initial conditions in the Y= Editor. 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.  
Note about Tracing a Solution Curve  
When you enter initial conditions in the Y= Editor or let ncurves graph solution curves  
automatically, you can use to trace the curves. However, you cannot trace a curve  
drawn by selecting an initial condition interactively. These curves are drawn, not plotted.  
Differential Equation Graphing  
424  
 
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.  
Transforming an Equation into a 1st-Order System  
A system of equations can be defined in various ways, but the following is a general  
method.  
1. Rewrite the original differential equation  
as necessary.  
x
y'' + y' + y = e  
a) Solve for the highest-ordered  
derivative.  
x
y'' = e N y' N y  
t
b) Express it in terms of y and t.  
y'' = e N y' N y  
c) On the right side of the equation only,  
substitute to eliminate any references  
to derivative values.  
Note: To produce a 1st-order equation,  
the right side must contain non-derivative  
variables only.  
Differential Equation Graphing  
425  
In place of:  
Substitute:  
t
y
y'  
y''  
y'''  
y(4)  
©
y1  
y2  
y3  
y4  
y5  
©
y'' = e N y2 N y1  
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:  
t
y’  
y'’  
y''’  
y(4)  
©
y1’  
y2’  
y3’  
y4’  
©
y2' = e N y2 N y1  
Differential Equation Graphing  
426  
 
2. On the applicable lines in the Y= Editor,  
define the system of equations as:  
y1' = y2  
y2' = y3  
y3' = y4  
– up to –  
yn ' = your nth-order equation  
Note: Based on the above substitutions, the y' lines in the Y= Editor represent:  
y1' = y'  
y2' = y''  
etc.  
Therefore, 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.  
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.  
Differential Equation Graphing  
427  
Example  
1. Press 3 and set Graph=DIFF EQUATIONS.  
2. Define a system of equations for the 2nd-  
y'' + y = 0  
y'' = Ly  
order equation.  
y'' = Ly1  
y2' = Ly1  
Rewrite the equation and make the  
necessary substitutions.  
3. In the Y= Editor (8 #), enter the  
yi1 is the initial  
system of equations.  
condition for y(0).  
4. Enter the initial conditions:  
yi1=0 and yi2=1  
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.  
yi2 is the initial  
condition for y'(0).  
5. Press:  
, 9  
— or —  
@
8 Í and set Axes = ON, Labels =  
OFF, Solution Method = RK, and  
Fields = DIRFLD.  
Important: For 2nd-order equations, you  
must set Fields=DIRFLD or FLDOFF.  
Differential Equation Graphing  
428  
6. In the Y= Editor, press:  
2 and make sure  
@
Axes = CUSTOM with y1 and y2 as the  
axes.  
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.  
7. In the Window Editor (8 $), set  
the Window variables.  
t0=0  
ncurves=0  
diftol=.001  
fldres=14  
dtime=0  
xmin=L2  
xmax=2  
xscl=1  
ymin=L2  
ymax=2  
yscl=1  
tmax=10  
tstep=.1  
tplot=0  
8. Display the Graph screen (8 %).  
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.  
Differential Equation Graphing  
429  
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).  
9. Press 3 and change the mode  
settings on Page 2 as shown. Then close  
the MODE dialog box, which redraws the  
graph.  
Note: To display different graphs in both  
parts of a split screen, you must use the  
2-graph mode.  
10. Press 2 a to switch to the right side  
of the split screen.  
11. Use to select y1' and y2'.  
The right side uses the same equations  
as the left side. However, no equations  
are selected initially in the right side.  
12. Press:  
, 9  
— or —  
@
8 Í Set Fields = FLDOFF.  
Important: Because Fields=DIRFLD cannot  
plot a time axis, you must change the  
Fields setting. FLDOFF turns off all fields.  
13. In the Y= Editor, press:  
@
2 and make sure Axes = TIME.  
Differential Equation Graphing  
430  
 
14. In the Window Editor, change ymin and  
ymin=L2.  
ymax=2.  
ymax as shown to the right.  
Note: When you enter 2-graph mode,  
Window variables for the right side are set  
to their defaults.  
15. Press 8 % 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'  
Split Screen = FULL  
16. To return to a full screen of the original  
graph, press 2 a to switch to the left  
side. Then press 3 and change the  
Split Screen setting.  
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.  
Differential Equation Graphing  
431  
Example  
1. Press 3 and set Graph=DIFF EQUATIONS.  
y''' + 2y'' + 2y' + y =  
sin(x)  
y''' = sin(x) N 2y'' N 2y'  
N y  
2. Define a system of equations for the 3rd-  
order equation.  
Rewrite the equation and make the  
necessary substitutions.  
y''' = sin(t) N 2y'' N 2y'  
N y  
y''' = sin(t) N 2y3 N 2y2  
N y1  
y3' = sin(t) N 2y3 N 2y2  
N y1  
3. In the Y= Editor (8 #), 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  
Note: t0 is the time at which the initial  
conditions occur. By default, t0=0.  
solution to the 3rd-  
order equation.  
5. Be sure that only y1' is selected. Use †  
to deselect any other equations.  
Differential Equation Graphing  
432  
6. Press:  
, 9  
— or —  
@
8 ÍSet Axes = ON, Labels = ON,  
Solution Method = RK, and  
Fields = FLDOFF.  
Important: For 3rd- or higher-order  
equations, you must set Fields=FLDOFF.  
Otherwise, an Undefined variable error  
occurs when graphing.  
7. In the Y= Editor, press:  
@
2 Set Axes = TIME.  
Note: With Axes=TIME, the solution to the  
selected equation is plotted against time  
(t).  
8. In the Window Editor (8 $), set  
the Window variables.  
t0=0  
ncurves=0  
diftol=.001  
xmin=L1  
xmax=10  
xscl=1.  
ymin=L3  
ymax=3  
yscl=1  
tmax=10  
tstep=.1  
tplot=0  
Differential Equation Graphing  
433  
     
9. Display the Graph screen (8 %).  
Note: To find the solution at a particular  
time, use to trace the graph.  
Setting Axes for Time or Custom Plots  
Setting the axes can give you great flexibility in graphing differential equations. Custom  
axes are particularly effective for showing different kinds of relationships.  
Displaying the AXES Dialog Box  
From the Y= Editor, press:  
@
2 ‰  
If Fields = SLPFLD, Axes is unavailable.  
@
2 ‰  
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.  
Differential Equation Graphing  
434  
 
Item  
Description  
X Axis, Y Axis Active only when Axes = CUSTOM, these let you select  
what you want to plot on the x and y axes.  
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  
Note: t is not valid for either Axis when Fields=DIRFLD. If you select t, an Invalid axes  
error occurs when 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.  
Differential Equation Graphing  
435  
Predator-Prey Model  
Use the two coupled 1st-order differential equations:  
y1' = Ly1 + 0.1y1 ùy2 and y2' = 3y2 Ny1 ùy2  
where:  
y1 = Population of foxes  
yi1 = Initial population of foxes (2)  
y2 = Population of rabbits  
yi2 = Initial population of rabbits (5)  
1. Use 3 to set Graph = DIFF  
EQUATIONS.  
2. In the Y= Editor (8 #), define the  
differential equations and enter the  
initial conditions.  
Note: 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. Press:  
, 9  
— or —  
@
8 Í Set Axes = ON, Labels = ON,  
Solution Method = RK, and  
Fields = FLDOFF.  
Differential Equation Graphing  
436  
4. In the Y= Editor, press:  
@
2 Set Axes = TIME.  
5. In the Window Editor (8 $), set  
the Window variables.  
t0=0  
ncurves=0  
diftol=.001  
xmin=L1  
xmax=10  
xscl=5  
ymin=L10  
ymax=40  
yscl=5  
tmax=10  
tstep=p/24  
tplot=0  
6. Graph the differential equations  
(8 %).  
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)  
Note: Use C and D to move the trace  
cursor between the curves for y1 and y2.  
Differential Equation Graphing  
437  
8. Return to the Y= Editor. Press:  
, 9  
— or —  
@
8 Í  
Set Fields = DIRFLD.  
Note: In this example, DIRFLD is used for  
two related differential equations that do  
not represent a 2nd-order equation.  
9. Press:  
2 ‰  
@
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.  
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}  
Note: Use a list to specify more than one  
initial condition.  
Differential Equation Graphing  
438  
 
13. Return to the Graph screen, which  
displays a curve for each pair of initial  
conditions.  
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.  
Note: Use C and D to move the trace  
cursor from one initial condition curve to  
another.  
Example Comparison of RK and Euler  
Consider a logistic growth model dP/dt = .001ùPù(100NP), with the initial condition P(0) =  
10. Use the BldData instruction to compare the graphing points calculated by the RK and  
Euler solution methods. Then plot those points along with a graph of the equation’s exact  
solution.  
Example  
1. Press 3 and set Graph=DIFF  
EQUATIONS.  
Differential Equation Graphing  
439  
2. Express the 1st-order equation in terms of y1'=.001y1ù(100Ny1)  
y1' and y1.  
Do not use implied  
multiplication  
between the variable  
and parentheses. If  
you do, it is treated  
as a function call.  
3. Enter the equation in the Y= Editor  
(8 #).  
4. Enter the initial condition:  
t0 is the time at  
yi1=10  
which the initial  
condition occurs.  
By default, t0=0.  
5. Press:  
, 9  
— or —  
@
8 Í  
Set Solution Method = RK and  
Fields = FLDOFF.  
Note: 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.  
6. In the Window Editor (8 $), set  
the Window variables.  
Differential Equation Graphing  
440  
t0=0.  
ncurves=0.  
diftol=.001  
xmin=L1.  
xmax=100.  
xscl=1.  
ymin=L10.  
ymax=10  
yscl=1.  
tmax=100.  
tstep=1.  
tplot=0.  
Ê
Ê Important: Change tstep from .1 (its default) to 1. Otherwise, BldData calculates too  
many rows for the data variable and a Dimension error occurs.  
7. In the Home screen  
" "  
BldData rklog  
@
use BldData to create a data variable  
containing the RK graphing points.  
8. Return to the Y= Editor, press:  
, 9  
— or —  
@
8 Í  
Set Solution Method = EULER.  
Note: You do not need to graph the  
equation before using BldData. For more  
information about BldData, refer to the  
Technical Reference module.  
9. Return to the Home screen, and use  
BldData to create a data variable  
BldData eulerlog  
containing the Euler graphing points.  
Differential Equation Graphing  
441  
10. Use the Data/Matrix Editor (O) to  
create a new data variable named  
errorlog.  
Note: errorlog lets you combine the data  
in rklog and eulerlog so that you can view  
the two sets of data side by side.  
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.  
Ê
Ë
Ì
To define a column header, move the  
cursor to that column, press , type the  
reference expression (such as rklog[1] for  
c1), and press ¸.  
Ê c1=rklog[1] or  
c1=eulerlog[1]  
Ë c2=rklog[2]  
Note: rklog[1] and rklog[2] refer to  
column 1 and 2 in rklog, respectively.  
Likewise with eulerlog[2].  
Ì c3= eulerlog[2]  
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.  
Differential Equation Graphing  
442  
15. The exact solution to the differential  
equation is given below. Enter it as y1.  
y1 = (100ùe^(x/10))/(e^(x/10)+9)  
Note: You can use deSolve( ) to find this  
exact, general solution. ,  
You can use C to  
scroll up to see Plot  
1 and Plot 2.  
16. In the Window Editor, set the Window  
variables.  
xres=2.  
xmin=L10  
xmax=100  
xscl=10  
ymin=L10.  
ymax=120.  
yscl=10.  
17. Display the Graph screen (8 %).  
Note: The fuzzy line on the graph  
indicates differences between the RK and  
Euler values.  
18. In the Window Editor, set the Window  
variables to zoom in so that you can  
examine the differences in more detail.  
xmin=39.7  
xmax=40.3  
xscl=.1  
ymin=85.5  
ymax=86  
yscl=.1  
xres=2  
19. Return to the Graph screen.  
Differential Equation Graphing  
443  
 
20. Press to trace, and then press C or D  
until y1 is selected. (1 shows in upper  
right corner.) Then enter 40.  
Euler (Plot 2)  
RK (Plot 1)  
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.  
Example of the deSolve( ) Function  
The deSolve( ) function lets you solve many 1st- and 2nd-order ordinary differential  
equations exactly.  
Differential Equation Graphing  
444  
Example  
For a general solution, use the following syntax. For a particular solution, refer to the  
Technical Reference module.  
deSolve(1stOr2ndOrderODE, independentVar, dependentVar)  
Using the logistic 1st-order differential equation, find the general solution for y with  
respect to t.  
deSolve(y' = 1/1000 yù(100Ny),t,y)  
Do not use implied multiplication between the  
For ', type 2 È.  
variable and parentheses. If you do, it will be  
treated as a function call.  
Notes:  
For maximum accuracy, use 1/1000 instead of .001. A floating-point number can  
introduce round-off errors.  
This example does not involve graphing, so you can use any Graph mode.  
Differential Equation Graphing  
445  
 
Before using deSolve( ), clear any existing t and y variables. Otherwise, an error occurs.  
1. In the Home screen  
@
" "use deSolve( ) to  
find the general solution.  
@1 represents a  
constant. You may  
get a different  
constant (@2, etc.).  
2. Use the solution to define a function.  
a) Press C to highlight the solution in  
the history area. Then press ¸ to  
autopaste it into the entry line.  
b) Insert the Define instruction at the  
beginning of the line. Then press  
¸.  
Note: Press 2 A to move to the  
beginning of the entry line.  
3. For an initial condition y=10 with t=0, use  
solve( ) to find the @1 constant.  
Note: If you got a different constant (@2,  
etc.), solve for that constant.  
For @, type  
@
8 9  
2 R  
H
Differential Equation Graphing  
446  
 
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ù(100Ny) and y(0)=10,t,y)  
Troubleshooting with the Fields Graph Format  
If you have difficulties graphing a differential equation, this section can help you correct  
the problem. Many problems may be related to your Fields graph format setting.  
Setting the Fields Graph Format  
From the Y= Editor, Window Editor, or Graph  
screen, press:  
, 9  
— or —  
@
8 Í  
What Order Equation Are You Graphing?  
If the equation is:  
Valid Fields settings are:  
SLPFLD or FLDOFF  
1st-order  
Differential Equation Graphing  
447  
 
If the equation is:  
Valid Fields settings are:  
2nd-order  
DIRFLD or FLDOFF  
(system of two 1st-order equations)  
3rd- or higher-order  
FLDOFF  
(system of three or more 1st-order equations)  
Because Fields = SLPFLD is the default  
setting, a common error message is shown to  
the right.  
When you see this or any other error message:  
For your order of equation, use the previous table to find the valid Fields settings.  
Change to the applicable setting.  
For a particular Fields setting, check the following for information that applies to that  
setting.  
Differential Equation Graphing  
448  
Fields=SLPFLD  
In the  
Y= Editor  
Use to select one and only one 1st-order equation. You  
can enter mulNotele 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  
screen  
If the slope field is drawn but no solution curve is plotted,  
specify an initial condition.  
Differential Equation Graphing  
449  
 
Fields=DIRFLD  
In the  
Enter a valid system of two 1st-order equations. For  
Y= Editor  
information about defining a valid system for a 2nd-order  
equation, refer to Example of a 2nd-Order Equation.  
Set Axes = CUSTOM:  
@
2 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  
axes  
Set axes that are valid for your system of equations.  
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.  
Differential Equation Graphing  
450  
 
In the Graph  
screen  
If the direction field is drawn but no curve is plotted, enter  
initial conditions in the Y= Editor or select one interactively  
from the Graph screen. If you did enter initial conditions,  
select ZoomFit:  
@
j A  
The ncurves Window variable is ignored with DIRFLD.  
Default curves are not drawn automatically.  
Notes  
With DIRFLD, the equations referenced by the custom axes  
determine which equations are graphed, regardless of which  
equations are selected in the Y= Editor.  
If your system of equations refers to t, the direction field (not  
the plotted curves) is drawn with respect to one particular  
time, which is set by the dtime Window variable.  
Fields=FLDOFF  
In the  
If you enter a 2nd- or higher-order equation, enter it as a valid  
Y= Editor  
system of equations.  
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:  
@
2 ‰  
Differential Equation Graphing  
451  
 
With custom  
axes  
If X Axis is not t, you must enter at least one initial 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  
screen  
If no curve is graphed, set an initial condition. If you did enter  
initial conditions in the Y= Editor, select ZoomFit:  
@
j A  
A 1st-order equation may look different with FLDOFF than  
with SLPFLD. This is because FLDOFF uses the tplot and  
tmax Window variables (page 9), 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 mulNotele 1st-order equations, you can plot one  
equation or its solution vs. another by specifying them as the  
axes.  
If You Use the Table Screen to View Differential Equations  
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  
Differential Equation Graphing  
452  
Differential Equation Graphing  
453  
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  
1. Set Graph mode and, if necessary, Angle  
mode (3).  
Note: Tables are not available in 3D Graph  
mode.  
2. Define functions on Y= Editor (8 #).  
3. Select () which defined functions to  
display in the table.  
Note: For information on defining and  
selecting functions with the Y= Editor,  
refer to Basic Function Graphing.  
4. Set up the initial table parameters  
(8 &).  
Note: You can specify an automatic table  
that is based on initial values or that  
matches a graph, or a manual (ask) table.  
Tables  
454  
5. Display the table (8 ').  
Exploring the Table  
From the Table screen, you can:  
Scroll through the table to see values on other pages.  
Highlight a cell to see its full value.  
Change the table’s setup parameters. By changing the starting or incremental value  
used for the independent variable, you can zoom in or out on the table to see  
different levels of detail.  
Change the cell width.  
Edit selected functions.  
Build or edit a manual table to show only specified values of the independent  
variable.  
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.  
Tables  
455  
   
Displaying the TABLE SETUP Dialog Box  
To display the TABLE SETUP dialog box, press 8 &. From the Table screen, you  
can also press .  
Setup Parameter Description  
tblStart  
If Independent = AUTO and Graph < - > Table = OFF,  
this specifies the starting value for the independent  
variable.  
@tbl  
If Independent = AUTO and Graph < - > Table = OFF,  
this specifies the incremental value for the independent  
variable. @tbl can be positive or negative, but not zero.  
If Independent = AUTO:  
Graph < - > Table  
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 and the split screen  
size.  
Tables  
456  
 
Setup Parameter Description  
Independent AUTO — The TI-89 Titanium 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.  
Note: The table initially starts at tblStart, but you can use C to scroll to prior values.  
Which Setup Parameters to Use  
To generate:  
tblStart  
Graph < - > Table Independent  
@tbl  
An automatic table  
Based on initial  
values  
value  
value  
OFF  
ON  
AUTO  
AUTO  
ASK  
That matches  
Graph screen  
A manual table  
Note: “–” means that any value entered for this parameter is ignored for the indicated  
type of table.  
In SEQUENCE graphing mode, use integers for tblStart and @tbl.  
Changing the Setup Parameters  
From the TABLE SETUP dialog box:  
Tables  
457  
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.  
Graph < - > Table  
or  
Press A or B to display a menu of valid  
settings. Then either:  
Independent  
Move the cursor to highlight the setting and  
press ¸.  
— or —  
Press the number for that setting.  
Note: To cancel a menu or exit the dialog box without saving any changes, press  
N instead of ¸.  
3. After changing all applicable values or settings, press ¸ to save your changes  
and close the dialog box.  
From the Home Screen or a Program  
You can set up a table’s parameters from the Home screen or a program. You can:  
Store values directly to the system variables tblStart and @tbl. Refer to “Storing and  
Recalling Variable Values” in Operating the Calculator.  
Tables  
458  
 
Set Graph < - > Table and Independent by using the setTable function. Refer to the  
Technical Reference module.  
Displaying an Automatic Table  
If Independent = AUTO on the TABLE SETUP dialog box, a table is generated  
automatically when you display the Table screen. If Graph < - > Table = ON, the table  
matches the trace values from the Graph screen. If Graph < - > Table = OFF, the table is  
based on the values you entered for tblStart and @tbl.  
Before You Begin  
Define and select the applicable functions on the Y= Editor (¹ #). This example uses  
3
y1(x) = x Nx/3.  
Then enter the initial table parameters  
(¹ &).  
Displaying the Table Screen  
To display the Table screen, press ¹ ' or O 5.  
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.  
Tables  
459  
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).  
Entry line shows full value of  
highlighted cell.  
Note: You can scroll back from the starting value by pressing C or 2 C.  
To move the cursor:  
One cell at a time  
Press:  
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.  
Tables  
460  
Changing the Cell Width  
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.  
Note: By default, the cell width is 6.  
To change the cell width from the Table  
screen:  
1. Press ƒ 9  
— or —  
@
¹ Í  
2. Press B or A to display a menu of valid  
widths (3–12).  
3. Move the cursor to highlight a number and press ¸. (For single-digit numbers,  
you can type the number and press ¸.)  
4. Press ¸ to close the dialog box and update the table.  
How Numbers Are Displayed in a Cell  
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:  
Tables  
461  
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.  
Notes:  
If a function is undefined at a particular value, undef is displayed in the cell.  
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  
1.2345678901  
L123456.78  
3
6
9
12  
1.2  
...  
...  
...  
...  
1.2346  
L1.2E5  
5.EL6  
1.2E19  
...  
1.23457  
L123457.  
.000005  
1.23457*  
L123457.*  
.000005  
.000005  
1.2345678E19  
L1.23456789012EL200  
1.2346E19 1.23457E19*  
L1.2EL200 ‘L1.2346EL200*  
*Note: Depending on display mode settings, some values are not shown in  
full precision even when the cell is wide  
Note: To see a number in full precision, highlight the cell and look at the entry line.  
Tables  
462  
 
If Results are Complex Numbers  
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.  
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).  
Editing a Selected Function  
From a table, you can change a selected function without having to use the Y= Editor.  
1. Move the cursor to any cell in the column for that function. The table’s header row  
shows the function names (y1, etc.).  
2. Press to move the cursor to the entry line, where the function is displayed and  
highlighted.  
Note: 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 —  
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.  
Note: To cancel any changes and return the cursor to the table, press N instead of  
¸.  
Tables  
463  
 
4. Press ¸ to save the edited function and update the table. The edited function is  
also saved in the Y= Editor.  
If You Want to Change the Setup Parameters  
After generating an automatic table, you can change its setup parameters as necessary.  
Press or ¹ & to display the TABLE SETUP dialog box. Then make your  
changes.  
Building a Manual (Ask) Table  
If Independent = ASK on the TABLE SETUP dialog box, the TI-89 Titanium lets you build  
a table manually by entering specific values for the independent variable.  
Displaying the Table Screen  
To display the Table screen, press ¹ '.  
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.  
Tables  
464  
Header row shows names of  
independent variable (x) and  
selected functions (y1).  
Enter a value here.  
If you first display an automatic table and then change it to Independent = ASK, the table  
continues to show the same values. However, you can no longer see additional values  
by scrolling up or down off the screen.  
Entering or Editing an Independent Variable Value  
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.  
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.  
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.  
Note: To enter a new value in a cell, you do not need to press . Simply begin  
typing.  
The cursor returns to the entered cell. You can use D to move to the next row.  
Tables  
465  
 
Enter values in any  
numerical order.  
Enter a new value here.  
Shows full value of  
highlighted cell.  
Note: In this example, you can move the cursor to column 2, but you can enter values in  
column 1 only.  
Entering a List in the Independent Variable Column  
1. Move the cursor to highlight any cell 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:  
x={1,1.5,1.75,2}  
You can also enter a list variable or an expression that evaluates to a list.  
Note: If the independent variable column contains existing values, they are shown as  
a list (which you can edit).  
4. Press ¸ to move the values into the independent variable column. The table is  
updated to show the corresponding function values.  
Tables  
466  
Adding, Deleting, or Clearing  
To:  
Do this:  
Insert a new row  
above a specified row  
Highlight a cell in the specified row and  
press:  
@
2 ˆ  
The new row is undefined (undef) until you  
enter a value for the independent variable.  
Delete a row  
Highlight a cell in the row and press .  
If you highlight a cell in the independent  
variable column, you can also press 0.  
Clear the entire table  
(but not the selected  
Y= functions)  
Press ƒ 8. When prompted for  
confirmation, press ¸.  
Cell Width and Display Formats  
Several factors affect how numbers are displayed in a table.  
From the Home Screen or a Program  
System variable tbl[nput contains a list of all independent variable values entered in the  
table, even those not currently displayed. tbl[nput is also used for an automatic table, but  
it contains only the independent variable values that are currently displayed.  
Before displaying a table, you can store a list of values directly to the tbl[nput system  
variable.  
Tables  
467  
Tables  
468  
 
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.  
Collecting the Points  
1. Display the graph. (This example shows y1(x)=5ùcos(x).)  
2. Display the coordinates or math results you want to collect.  
3. Save the information to the Home screen or the sysData variable.8 · (Home  
screen) or 8 b (sysData variable)  
4. Repeat the process as necessary.  
Note: 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.  
Additional Graphing Topics  
469  
8 ·  
8 b  
Displayed coordinates are  
added to the Home screen’s  
history area (but not the entry  
line) as a single-row matrix or  
vector.  
Displayed coordinates are  
stored in a data variable named  
sysData, which you can open in  
the Data/Matrix Editor.  
Note: 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:  
8 b  
-
-
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.  
Additional Graphing Topics  
470  
   
If the Graph screen contains a function or stat plot that references the current  
contents of sysData, this command will not operate.  
Graphing a Function Defined on the Home Screen  
In many cases, you may create a function or expression on the Home screen and then  
decide to graph it. You can copy an expression to the Y= Editor, or graph it directly from  
the Home screen without using the Y= Editor.  
What Is the “Native” Independent Variable?  
On the Y= Editor, all functions must be defined in terms of the current graph mode’s  
“native” independent variable.  
Graph Mode  
Native Independent Variable  
Function  
x
Parametric  
Polar  
t
q
Sequence  
3D  
n
x, y  
t
Differential Equation  
Additional Graphing Topics  
471  
 
Copying from the Home Screen to the Y= Editor  
If you have an expression on the Home screen, you can use any of the following  
methods to copy it to the Y= Editor.  
Method  
Description  
Copy and  
paste  
1. Highlight the expression on the Home screen. Press ƒ  
and select 5:Copy.  
2. Display the Y= Editor, highlight the desired function, and  
press ¸.  
3. Press ƒ and select 6:Paste. Then press ¸.  
Note: Instead of using ƒ 5 or ƒ 6 to copy and paste,  
use:8 6 or 8 7  
Store the expression to a Y= function name.  
§
2x^3+3x^2N4x+12!y1(x)  
Use the complete function  
name: y1(x), not just y1.  
Note: To copy an expression from the Home screen’s  
history area to the entry line, use the auto-paste feature or  
copy and paste.  
Define  
Define the expression as a user-defined Y= function.  
command  
Define y1(x)=2x^3+3x^2N4x+12  
Note: Define is available from the Home screen’s †  
toolbar menu.  
Additional Graphing Topics  
472  
 
Method  
Description  
If the expression is already stored to a variable:  
1. Display the Y= Editor, highlight the desired function, and  
press ¸.  
2 £  
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.  
Note: 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).  
Graphing Directly from the Home Screen  
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.  
If the expression is in  
terms of:  
Use the Graph command  
as shown in this example:  
The native  
independent variable  
Graph 1.25xùcos(x)  
For function graphing, x is the native  
variable.  
Additional Graphing Topics  
473  
If the expression is in  
terms of:  
Use the Graph command  
as shown in this example:  
A non-native independent  
variable  
Graph 1.25aùcos(a),a  
Specify the independent variable;  
otherwise, you may get an error.  
Note: Graph uses the current Window variable settings and is available from the Home  
screen’s toolbar menu.  
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  
Note: 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 copy the expression to the Y= Editor. Instead, it temporarily suspends  
any functions selected on the Y= Editor. You can trace, zoom, or show and edit Graph  
expressions on the Table screen, just the same as Y= Editor functions.  
Clearing the Graph Screen  
Each time you execute Graph, the new expression is added to the existing ones. To clear  
the graphs:  
Additional Graphing Topics  
474  
     
Execute the ClrGraph command (available from the Home screen’s Other toolbar  
menu).  
– or –  
Display the Y= Editor. The next time you display the Graph screen, it will use the  
functions selected on the Y= Editor.  
Extra Benefits of User-Defined Functions  
You can define a user-defined function in terms of any independent variable. For  
example:  
Define f1(aa)=1.25aacos(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)  
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  
Additional Graphing Topics  
475  
 
two-piece functions. For three or more pieces, it may be easier to create a multi-  
statement, user-defined function.  
Using the When Function  
To define a two-piece function, use the syntax:  
when(condition, trueExpression, falseExpression)  
For example, suppose you want to graph a function with two pieces.  
When:  
Use expression:  
x < 0  
Mx  
5 cos(x)  
x | 0  
In the Y= Editor:  
The function is “pretty  
printed” in this form.  
Enter the function in this  
form.  
For three or more pieces, you can use nested when functions.  
Additional Graphing Topics  
476  
 
Note: To enter when, type it or use the CATALOG.  
When:  
Use expression:  
4 sin(x)  
x < Mp  
2x + 6  
x | M p and x < 0  
x | 0  
2
6 – x  
In the Y= Editor:  
where:  
y1(x)=when(x<0,when(x< M p,4ùsin(x),2x+6),6Nx^2)  
This nested function is in effect when x<0.  
Nested functions quickly become complex and difficult to visualize.  
Using a Multi-Statement, User-Defined Function  
For three or more pieces, you may want to create a multi-statement, user-defined  
function.  
Additional Graphing Topics  
477  
 
For example, consider the previous three-piece function.  
When:  
Use expression:  
4 sin(x)  
x < Mp  
2x + 6  
x | M p and x < 0  
x | 0  
2
6 – x  
Note: For information about similarities and differences between functions and  
programs, refer to Programming.  
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.  
Ê Func  
If x<M p Then  
Return 4ùsin(x)  
ElseIf x>=-p and x<0 Then  
Return 2x+6  
Else  
Return 6–x^2  
EndIf  
Ê EndFunc  
Ê Func and EndFunc must begin and end the function.  
When entering a multi-statement function on the Y= Editor or Home screen, you must  
enter the entire function on a single line.  
Additional Graphing Topics  
478  
   
Use a colon (:) to separate each statement.  
Func:If x< Mp Then:Return 4ùsin(x): ... :EndIf:EndFunc  
In 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 or a Program  
From the Home screen, you can also use the Define command to create a multi-  
statement, user-defined function.  
Information is available on copying a function from the Home screen to the Y= Editor.  
From the Program Editor, 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).  
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.)  
Additional Graphing Topics  
479  
 
Examples Using the Y= Editor  
Enter the expression {2,4,6} sin(x) and graph the functions.  
Note: Enclose list elements in braces (2 [ and 2 \) and separate them with  
commas.  
Graphs three functions:  
2 sin(x), 4 sin(x), 6 sin(x)  
Enter the expression {2,4,6} sin({1,2,3} x) and graph the functions.  
Graphs three functions:  
2 sin(x), 4 sin(2x), 6 sin(3x)  
Note: The commas are shown in the entry line but not in the function list.  
Example Using the Graph Command  
Similarly, you can use the Graph command from the Home screen or a program.  
Additional Graphing Topics  
480  
 
graph {2,4,6}sin(x)  
graph {2,4,6}sin({1,2,3}x)  
Simultaneous Graphs with Lists  
When the graph format is set for Graph Order = SIMUL, the functions are graphed in  
groups according to the element number in the list.  
For these example functions, the TI-89  
Titanium / Voyage™ 200  
Graphing Calculator graphs three groups.  
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.  
Note: To set graph formats from the Y= Editor, Window Editor, or Graph screen, press:  
8 Í  
When Tracing a Family of Curves  
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.  
Additional Graphing Topics  
481  
 
Using the Two-Graph Mode  
In two-graph mode, the calculator’s graph-related features are duplicated, giving you two  
independent graphing calculators. The two-graph mode is only available in split screen  
mode. For more information about split screens, refer to Split Screens.  
Setting the Mode  
Several mode settings affect the two-graph mode, but only two settings are required.  
Both are on Page 2 of the MODE dialog box.  
1. Press 3. Then press to display Page 2.  
2. Set the following required modes.  
Split Screen = TOP-BOTTOM or  
LEFT-RIGHT  
Number of Graphs = 2  
3. Optionally, you can set the following modes.  
Page 1:  
Graph = Graph mode for top or left side of the  
split  
Additional Graphing Topics  
482  
 
Page 2:  
Split 1 App = application for top or left side  
Split 2 App = application for bottom or right  
side  
Graph 2 = Graph mode for bottom or right side  
4. Press ¸ to close the dialog box.  
The Two-Graph Screen  
A two-graph screen is similar to a regular split screen.  
Graph 1: left or  
top side  
Graph 2: right or  
bottom side  
Thick border  
indicates active  
graph side  
Graph mode of active graph  
Active graph side: GR#1 or GR#2  
Independent Graph-Related Features  
Both Graph 1 and Graph 2 have independent:  
Graph modes (FUNCTION, POLAR, etc.). Other modes such as Angle, Display  
Digits, etc., are shared and affect both graphs.  
Additional Graphing Topics  
483  
 
Window Editor variables.  
Table setup parameters and Table screens.  
Graph formats such as Coordinates, Axes, etc.  
Graph screens.  
Y= Editors. However, both graphs share common function and stat plot definitions.  
Note: The Y= Editor is completely independent only when the two sides use different  
graphing modes (as described below).  
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.  
The Y= Editor in Two-Graph Mode  
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.  
When both sides use different graphing  
modes, each side shows a different  
function list.  
Additional Graphing Topics  
484  
 
When both sides use the same graphing  
mode, each side shows the same function  
list.  
-
You can use to select different  
functions and stat plots (indicated  
by Ÿ) for each side.  
-
If you set a display style for a  
function, that style is used by both  
sides.2 ˆ  
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  
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.  
Using a Split Screen  
For more complete information about split screens, refer to Split Screens.  
To switch from one graph side to the other, press 2 a (second function of  
O).  
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:  
Additional Graphing Topics  
485  
-
-
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.  
Note: You can display non-graph-related applications (such as the Home screen) on only  
one side at a time.  
Remember that the Two Sides Are Independent  
In two-graph mode, the two sides may appear to be related when, in fact, they are not.  
For example:  
For Graph 1, the  
Y= Editor lists y(x)  
functions.  
For Graph 2, the  
polar graph uses  
r(q) equations that  
are not shown.  
After the two-graph mode is set up, graph-related operations refer to the active graph  
side. For example:  
10!xmax  
affects either Graph 1 or Graph 2, depending on which is active when you execute the  
command.  
Additional Graphing Topics  
486  
 
To switch the active sides, press 2 a or use the switch function, switch(1) or  
switch(2).  
Drawing a Function or Inverse on a Graph  
For comparison purposes, you may want to draw a function over your current graph.  
Typically, the drawn function is some variation of the graph. You can also draw the  
inverse of a function. (These operations are not available for 3D graphs.)  
Drawing a Function, Parametric, or Polar Equation  
Execute DrawFunc, DrawParm, or DrawPol from the Home screen or a program. You  
cannot draw a function or equation interactively from the Graph screen.  
DrawFunc expression  
DrawParm expression1, expression2 [,tmin] [,tmax] [,tstep]  
DrawPol expression [,qmin] [,qmax] [,qstep]  
For example:  
3
1. Define y1(x)=.1x –2x+6 on the Y= Editor,  
and graph the function.  
Additional Graphing Topics  
487  
 
2. On the Graph screen, press: 2 ˆ  
and select 2:DrawFunc.  
To display the Home screen and put  
DrawFunc in the entry line, press:2 ˆ 2  
3. On the Home screen, specify the function  
to draw.  
DrawFunc y1(x)N6  
4. Press ¸ to draw the function on the  
Graph screen.  
You cannot trace, zoom, or perform a  
math operation on a drawn function.  
Note: To clear the drawn function, press  
– or –  
2 ˆ and select 1:ClrDraw  
Drawing the Inverse of a Function  
Execute DrawInv from the Home screen or a program. You cannot draw an inverse  
function interactively from the Graph screen.  
DrawInv expression  
3
For example, use the graph of y1(x)=.1x –2x+6 as shown above.  
Additional Graphing Topics  
488  
 
1. On the Graph screen, press: 2 ˆ and select 3:DrawInv  
To display the Home screen and put DrawInv in the entry line, press:  
2 ˆ 3  
2. On the Home screen, specify the inverse  
function.  
DrawInv y1(x)  
3. Press ¸.  
The inverse is plotted as (y,x) instead of  
(x,y).  
Drawing a Line, Circle, or Text Label on a Graph  
You can draw one or more objects on the Graph screen, usually for comparisons. For  
example, draw a horizontal line to show that two parts of a graph have the same y value.  
(Some objects are not available for 3D graphs.)  
Clearing All Drawings  
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.  
Additional Graphing Topics  
489  
From the Graph screen:  
2 ˆ  
and select 1:ClrDraw.  
– or –  
Press to regraph.  
Note: You can also enter ClrDraw on the Home screen’s entry line.  
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).  
Additional Graphing Topics  
490  
   
Drawing a Point or a Freehand Line  
From the Graph screen:  
1. 2 ‰  
and select 1:Pencil.  
2. Move the cursor to the applicable  
location.  
To draw a:  
Do this:  
Point (pixel-sized)  
Freehand line  
Press ¸.  
Press and hold ¤, and move the cursor to draw  
the line.  
Note: When drawing a freehand line, you can move the cursor diagonally.  
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.  
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).  
Additional Graphing Topics  
491  
   
Erasing Individual Parts of a Drawing Object  
From the Graph screen:  
1. 2 ‰  
and select 2:Eraser. The cursor is shown as a small box.  
2. Move the cursor to the applicable location.  
To erase:  
Do this:  
Area under the box  
Along a freehand line  
Press ¸.  
Press and hold ¤, and move the cursor to  
erase the line.  
Note: These techniques also erase parts of graphed functions.  
After erasing, you are still in Eraser mode.  
To continue erasing, move the box cursor  
to another location.  
To quit, press N.  
Drawing a Line Between Two Points  
From the Graph screen:  
1. 2 ‰  
and select 3:Line.  
Additional Graphing Topics  
492  
 
2. Move the cursor to the 1st point, and press ¸.  
3. Move to the 2nd point, and press ¸. (As you move, a line extends from the 1st  
point to the cursor.)  
Note: Use 2 to move the cursor in larger increments; 2 B, etc.  
After drawing the line, you are still in Line  
mode.  
To continue drawing another line, move  
the cursor to a new 1st point.  
To quit, press N.  
Drawing a Circle  
From the Graph screen:  
1. 2 ‰  
and select 4:Circle.  
2. Move the cursor to the center of the circle,  
and press ¸.  
3. Move the cursor to set the radius, and  
press ¸.  
Note: Use 2 to move the cursor in larger increments; 2 B, etc.  
Additional Graphing Topics  
493  
 
Drawing a Horizontal or Vertical Line  
From the Graph screen:  
1. 2 ‰  
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.  
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.  
Note: Use 2 to move the cursor in larger increments; 2 B, etc.  
Drawing a Tangent Line  
To draw a tangent line, use the Math toolbar menu. From the Graph screen:  
1. Press and select A:Tangent.  
Additional Graphing Topics  
494  
 
2. As necessary, use D and C to select the applicable function.  
3. Move the cursor to the tangent point, and  
press ¸.  
The tangent line is drawn, and its  
equation is displayed.  
Note: To set the tangent point, you can also type its x value and press ¸.  
Drawing a Line Based on a Point and a Slope  
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:  
DrawSlp x, y, slope  
You can also access DrawSlp from the Graph screen.  
1. 2 ˆ  
and select 6:DrawSlp. This switches to the Home screen and puts DrawSlp in the  
entry line.  
2. Complete the command, and press  
DrawSlp 4,0,6.37  
¸.  
The calculator automatically switches to  
the Graph screen and draws the line.  
Additional Graphing Topics  
495  
 
Typing Text Labels  
From the Graph screen:  
1. 2 ‰  
and select 7:Text.  
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.  
Note: The text cursor indicates the upper-left corner of the next character you type.  
From the Home Screen or a Program  
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.  
For a list of the available drawing commands, refer to “Drawing on the Graph Screen” in  
Programming.  
Additional Graphing Topics  
496  
 
Saving and Opening a Picture of a Graph  
You can save an image of the current Graph screen in a PICTURE (or PIC) variable.  
Then, at a later time, you can open that variable and display the image. This saves the  
image only, not the graph settings used to produce it.  
Saving a Picture of the Whole Graph Screen  
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.  
Display the Graph screen as you want to  
save it; and then:  
1. Press ƒ and select 2:Save Copy As.  
2. Specify the type (Picture), folder, and a  
unique variable name.  
3. Press ¸. After typing in an input  
box such as Variable, you must press  
¸ twice.  
Important: By default,  
Type = GDB (for graph  
database). You must  
set Type = Picture.  
Additional Graphing Topics  
497  
Saving a Portion of the Graph Screen  
You can define a rectangular box that encloses only the portion of the Graph screen that  
you want to save.  
1.  
@
2 ‰  
and select 8:Save Picture.  
A box is shown around the outer edge  
of the screen.  
Note: You cannot save a portion of a  
3D graph.  
2. Set the 1st corner of the box by  
moving its top and left sides. Then  
press ¸.  
Note: Use D and C to move the top or  
bottom, and use B and A to move the  
sides.  
3. Set the 2nd corner by moving the  
bottom and right sides. Then press  
¸.  
4. Specify the folder and a unique  
variable name.  
5. Press ¸. After typing in an input  
box such as Variable, you must press  
¸ twice.  
Note: When saving a  
portion of a graph, Type  
is automatically fixed as  
Picture.  
Additional Graphing Topics  
498  
 
Opening a Graph Picture  
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.  
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  
Important: By default,  
on the dialog box, there are no graph  
Type = GDB (for graph  
pictures in the folder.  
database). Be sure to  
set Type = Picture.  
3. Press ¸.  
A graph picture is a drawing object. You cannot trace any curve on a picture.  
For Pictures Saved from a Portion of the Graph Screen  
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, it may appear shifted from the underlying graph.  
You can specify which screen pixel to use as the upper-left corner.  
Additional Graphing Topics  
499  
 
Deleting a Graph Picture  
Unwanted Picture variables take up calculator memory. To delete a variable, use the  
VAR-LINK screen (2 °) as described in Memory and Variable Management.  
From a Program or the Home Screen  
To save (store) and open (recall) a graph picture, use the StoPic, RclPic, AndPic, XorPic,  
and RplcPic commands as described in the Technical Reference module.  
To display a series of graph pictures as an animation, use the CyclePic command. For an  
example, refer to CyclePic Command.  
Animating a Series of Graph Pictures  
As described earlier in this module, you can save a picture of a graph. By using the  
CyclePic command, you can flip through a series of graph pictures to create an  
animation.  
CyclePic Command  
Before using CyclePic, you must have a series of graph pictures that have the same  
base name and are sequentially numbered starting with 1 (such as pic1, pic2, pic3, . . . ).  
To cycle the pictures, use the syntax:  
Additional Graphing Topics  
500  
CyclePic picNameString, n [,wait] [,cycles] [,direction]  
Ê
Ë
Ì
Í
Î
Ê base name of pictures in quotes, such as "pic"  
Ë # of pictures to cycle  
Ì seconds between  
Í # of times to repeat cycle  
Example  
This example program (named cyc) generates 10 views of a 3D graph, with each view  
rotated 10¿¡ further around the Z axis. For information about each command, refer to the  
Additional Graphing Topics  
501  
Technical Reference module. For information about using the Program Editor, refer to  
Programming.  
Program Listing  
Every Other Graph from  
Program  
:cyc()  
:Prgm  
:local I  
:¦Set mode and Window variables  
:setMode(“graph”,”3d”)  
:70!eyef  
:M10!xmin  
:10!xmax  
:14!xgrid  
:M10!ymin  
:10!ymax  
:14!ygrid  
:M10!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,M1  
:EndPrgm  
Additional Graphing Topics  
502  
 
Comments start with ¦. Press:  
8 d  
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( ).  
Saving and Opening a Graph Database  
A graph database is the set of all elements that define a particular graph. By saving a  
graph database as a GDB variable, you can recreate that graph at a later time by  
opening its stored database variable.  
Elements in a Graph Database  
A graph database consists of:  
Mode settings (3) for Graph, Angle, Complex Format, and Split Screen (only if you  
are using the two-graph mode).  
All functions in the Y= Editor (8 #), including display styles and which functions  
are selected.  
Table parameters (8 &), Window variables (8 $), and graph formats:  
ƒ 9  
– or –  
8 Í  
Additional Graphing Topics  
503  
A graph database does not include drawn objects or stat plots.  
Note: In two-graph mode, the elements for both graphs are saved in a single database.  
Saving the Current Graph Database  
From the Y= Editor, Window Editor, Table screen, or Graph screen:  
1. Press ƒ and select 2:Save Copy As.  
2. Specify the folder and a unique  
variable name.  
3. Press ¸. After typing in an input  
box such as Variable, you must press  
¸ twice.  
Note: If you start from  
the Graph screen, be  
sure to use Type=GDB.  
Opening a Graph Database  
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.  
Additional Graphing Topics  
504  
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  
3. Press ¸.  
the Graph screen, be  
sure to use Type=GDB.  
Deleting a Graph Database  
Unused GDB variables take up calculator memory. To delete them, use the VAR-LINK  
screen (2 °) described in Memory and Variable Management.  
From a Program or the Home Screen  
You can save (store) and open (recall) a graph database by using the StoGDB and  
RclGDB commands as described in the Technical Reference module.  
Additional Graphing Topics  
505  
 
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.  
Setting the Split Screen Mode  
1. Press 3 to display the MODE dialog box.  
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 Operating the Calculator.  
Split Screen Settings  
TOP-BOTTOM  
LEFT-RIGHT  
Split Screens  
506  
When you set Split Screen =  
TOP-BOTTOM or LEFT-RIGHT,  
previously dimmed modes such  
as Split 2 App become active.  
Setting the Initial Applications  
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.  
Mode  
Specifies the application in the:  
Top or left part of the split screen.  
Bottom or right part of the split screen.  
Split 1 App  
Split 2 App  
If you set Split 1 App and Split 2 App to the same application, the calculator exits the split  
screen mode and displays the application full screen.  
You can open different applications after the split screen is displayed.  
Note: In two-graph mode, described in Additional Graphing Topics, the same application  
can be in both parts of a split screen.  
Split Screens  
507  
Other Modes that Affect a Split Screen  
Mode  
Description  
Number of Graphs  
Lets you set up and display two  
Note: Leave this set to 1 unless you independent sets of graphs.  
have read the applicable section  
in Additional Graphing Topics.  
This is an advanced graphing feature  
as described in “Using the Two-  
Graph Mode” in Additional Graphing  
Topics.  
Split Screens and Pixel Coordinates  
The calculator 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.  
Note:  
For a list of drawing commands, refer to “Drawing on the Graph Screen” in  
Programming.  
Due to the border that indicates the active application, split screens have a smaller  
displayable area than a full screen.  
TI-89 Titanium:  
Split 1 App  
Split 2 App  
Split  
Ratio  
x
y
x
y
FULL  
N/A  
0 – 158  
0 – 76  
N/A  
N/A  
Split Screens  
508  
Split 1 App  
Split 2 App  
Split  
Ratio  
1:1  
x
y
x
y
TOP–BOTTOM  
0 – 154  
0 – 76  
0 – 34  
0 – 72  
0 – 154  
0 – 76  
0 – 34  
0 – 72  
LEFT–RIGHT  
1:1  
Voyage™ 200:  
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  
Exiting the Split Screen Mode  
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.  
Split Screens  
509  
Method 2:  
Press 2 K twice to display a full-sized Home  
screen.  
When You Turn Off the Calculator  
Turning the calculator off does not exit the split screen mode.  
If the calculator is turned off: When you turn the calculator on  
again:  
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 :.  
When you press 2 :  
By the Automatic Power Down™ The split screen is just as you left it.  
(APD™) feature, or when you  
press 8 :.  
Split-Screen Status Indicators on the Apps Desktop  
To return to the Apps desktop, press O. The split-screen status appears at the top of  
the Apps desktop with the names of the open Apps and the portions of the screen in  
which each App is displayed.  
Note: The Apps desktop always appears in the full-screen view.  
Split Screens  
510  
Split-screen indicator  
Names of open Apps  
Split screen indicator  
Description  
Top-bottom split screen  
1 indicates the application that will appear in the  
top portion of the screen.  
2 indicates the application that will appear in the  
bottom portion of the screen.  
The highlighted numeral indicates the active  
portion of the split screen.  
Left-right split screen  
1 indicates the application that will appear in the  
left portion of the screen.  
2 indicates the application that will appear in the  
right portion of the screen.  
The highlighted numeral indicates the active  
portion of the split screen.  
Split Screens  
511  
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  
The active application is indicated by a thick border.  
The toolbar and status line, which are always the full width of the display, are  
associated with the active application.  
For applications that have an entry line (such as the Home screen and Y= Editor),  
the entry line is the full width of the display only when that application is active.  
Toolbar is for Y= Editor.  
Thick border indicates the  
Y= Editor is active.  
Entry line is full width when  
Y= Editor is active.  
Switching between Applications  
Press 2 a (second function of O) to switch from one application to the other.  
Split Screens  
512  
Toolbar is for Graph screen.  
Thick border indicates the Graph  
screen is active.  
Graph screen does not have an  
entry line.  
Opening a Different Application  
Method 1:  
1. Use 2 a to switch to the application you  
want to replace.  
2. Use O or 8 (such as 8 $) to select  
the new application.  
If you select an application that is already displayed, the calculator switches to that  
application.  
Method 2:  
3. Press 3 and then .  
4. Change Split 1 App and/or Split 2 App.  
If you set Split 1 App and Split 2 App to the same  
application, the calculator exits the split screen  
mode and displays the application full screen.  
Note: In two-graph mode, described in Additional Graphing Topics, the same application  
can be in both parts of a split screen.  
Split Screens  
513  
Using 2nd QUIT to Display the Home Screen  
Note: Pressing 2 K twice always exits the split screen mode.  
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.  
Is the active application  
Exits the split screen mode and  
displays a full-sized Home screen.  
When Using a Top-Bottom Split  
When you select a TOP-BOTTOM split, remember that the entry line and the toolbar are  
always associated with the active application. For example:  
Entry line is for the active  
Y= Editor, not the Graph  
screen.  
Toolbar is for the active  
Graph screen, not the  
Y= Editor.  
Split Screens  
514  
Note: Both Top-Bottom and Left-Right splits use the same methods to select an  
application.  
Split Screens  
515  
 
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.  
List Variable  
A list is a series of items (numbers, expressions, or character strings) that may or may  
not be related. Each item is called an element. In the Data/Matrix Editor, a list variable:  
Is shown as a single column of elements,  
each in a separate cell.  
Ê
Must be continuous; blank or empty cells  
are not allowed within the list.  
Can have up to 999 elements.  
Ê Column title and header cells are not saved as part of the list.  
If you enter more than one column of elements in a list variable, it is converted  
automatically into a data variable.  
Data/Matrix Editor  
516  
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 format shown to the right.  
list1[1]  
Ê
Ë
Ê Name of list variable  
Ë Element number (or index number)  
Note: After creating a list in the Data/Matrix Editor, you can use the list in any application  
(such as the Home screen).  
Data Variable  
A data variable is essentially a collection of lists that may or may not be related. In the  
Data/Matrix Editor, a data variable:  
Can have up to 99 columns.  
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.  
Must have continuous columns; blank or empty cells are not  
allowed within a column.  
Data/Matrix Editor  
517  
Note: For stat calculations, columns must have the same length.  
From the Home screen or a program, you  
NewData data1,list1,list2  
can use the NewData command to create  
a data variable that consists of existing  
lists.  
Ê
Ë
Ê Name of data variable to create  
Ë Names of existing list  
Ê
Ë
Although you cannot directly display a  
data variable on the Home screen, you  
can display a specified column or  
element.  
data1[1]  
(data1[1])[1]  
Ì Í  
Ê Name of data variable  
Ë Column number  
Ì Column number  
Í Element number in the column  
For example:  
Ê
Ë
Ê Displays column 1 of the variable data1.  
Ë Displays element 1 in column 1 of the  
variable data1.  
Data/Matrix Editor  
518  
Matrix Variable  
A matrix is a rectangular array of elements. When you create a matrix in the Data/Matrix  
Editor, you must specify the number of rows and columns (although you can add or  
delete rows and columns later). In the Data/Matrix Editor, a matrix variable:  
Looks similar to a data variable, but all  
columns must have the same length.  
Is initially created with 0 in each cell. You  
can then enter the applicable value in  
place of 0.  
Shows the size of the  
matrix.  
Ê
Ë
From the Home screen or a program, you can  
use 9 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  
Ì row 1  
Í row 2  
Ì
Í
Although you enter the matrix as shown  
above, it is pretty printed in the history area in  
traditional matrix form.  
After creating a matrix in the Data/Matrix Editor, you can use the matrix in any  
application (such as the Home screen).  
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.  
Data/Matrix Editor  
519  
 
Starting a Data/Matrix Editor Session  
Each time you start the Data/Matrix Editor, you can create a new variable, resume using  
the current variable (the variable that was displayed the last time you used the  
Data/Matrix Editor), or open an existing variable.  
Creating a New Data, Matrix, or List Variable  
1. Press O and then select the  
Data/Matrix icon. Press ¸.  
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 the Calculator Home  
Screen module.  
Data/Matrix Editor  
520  
Item  
Lets you:  
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 If Type = Matrix, type the  
and  
Col dimension  
number of rows and columns in  
the matrix.  
Note: If you do not type a variable name, your calculator displays the Home screen.  
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.  
Using the Current Variable  
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, launch  
Data/Matrix Editor again and select 1:Current.  
Data/Matrix Editor  
521  
 
Creating a New Variable from the Data/Matrix Editor  
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.  
Opening Another Variable  
You can open another variable at any time.  
1. From the Data/Matrix Editor, press ƒ and select 1:Open.  
– or –  
From any application, launch Data/Matrix Editor again and select 2:Open.  
2. Select the type, folder, and variable to  
open.  
3. Press ¸.  
Note: Variable shows the first existing variable in alphabetic order. If there are no existing  
variables, nothing is displayed.  
Data/Matrix Editor  
522  
 
Deleting a Variable  
Because all Data/Matrix Editor variables are saved automatically, you can accumulate  
quite a few variables, which take up memory.  
To delete a variable, use the VAR-LINK screen (2 °). For information about  
VAR-LINK, refer to Memory and Variable Management.  
Entering and Viewing Cell Values  
If you create a new variable, the Data/Matrix Editor is initially blank (for a list or data  
variable) or filled with zeros (for a matrix). If you open an existing variable, the values in  
that variable are displayed. You can then enter additional values or edit the existing  
ones.  
The Data/Matrix Editor Screen  
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.  
Ê Variable type  
Ê
Ë Column headers  
Ì Row numbers  
Î
Ë
Ì
Í Row and column number  
of highlighted cell  
Î Column title cells, used  
to type a title for each  
column  
Í
Data/Matrix Editor  
523  
 
When values are entered, the entry line shows the full value of the highlighted cell.  
Note: Use the title cell at the very top of each column to identify the information in that  
column.  
Entering or Editing a Value in a Cell  
You can enter any type of expression in a cell (number, variable, function, string, etc.).  
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.  
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.  
Note: To enter a new value, you can start typing without pressing ¸ or first.  
However, you must use ¸ or to edit an existing value.  
Variable Type  
List or data  
Matrix  
After pressing ¸, the cursor moves:  
Down to the cell in the next row.  
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.  
Data/Matrix Editor  
524  
   
Scrolling through the Editor  
To move the cursor:  
One cell at a time  
Press:  
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, respectively. If the cursor is  
in or past that last row, 8 D goes to row  
999.  
8 C or  
8 D  
Go to column 1 or to the last column that  
contains data, respectively. If the cursor is  
in or past that last column, 8 B goes to  
column 99.  
8 A or  
8 B  
Note: To enter a value from the entry line, you can also use D or C.  
When you scroll down/up, the header row remains at the top of the screen so that the  
column numbers are always visible. When you scroll right/left, the row numbers remain  
on the left side of the screen so that they are always visible.  
How Rows and Columns Are Filled Automatically  
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, your  
device handles the gaps automatically.  
Data/Matrix Editor  
525  
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.  
&
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.  
Data/Matrix Editor  
526  
 
Changing the Cell Width  
The cell width affects how many characters are displayed in any cell. To change the cell  
width in the Data/Matrix Editor:  
1. To display the FORMATS dialog box, press:  
ƒ 9  
– or –  
8 Í  
Cell width is the maximum number of  
characters that can be displayed in a cell.  
All cells have the same cell width.  
Note: Remember, to see a number in full precision, you can always highlight the cell  
and look at the entry line.  
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.  
Data/Matrix Editor  
527  
 
Clearing a Column or all Columns  
This procedure erases the contents of a column. It does not delete the column.  
To clear:  
Do this:  
A column  
1. Move the cursor to any cell in the column.  
2. Press:  
2 ˆ 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).  
Note: For a list or data variable, a clear column is empty. For a matrix, a clear column  
contains zeros.  
Defining a Column Header with an Expression  
For a list variable or a column in a data variable, you can enter a function in the column  
header that automatically generates a list of elements. In a data variable, you can also  
define one column in terms of another.  
Entering a Header Definition  
In the Data/Matrix Editor:  
Data/Matrix Editor  
528  
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 ¸.  
Notes:  
¸ 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 ¸.  
To view an existing definition, press or move the cursor to the header cell  
and look at the entry line.  
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:  
Press M to clear the highlighted expression. Then type the new expression.  
– or –  
Data/Matrix Editor  
529  
Press A or B to remove the highlighting. Then edit the old expression.  
Note: To cancel any changes, press N before pressing ¸.  
You can use an expression that: For example:  
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: The seq function is described in the Technical Reference module. If you refer  
to an empty column, you will get an error message unless Auto-calculate = OFF.  
3. Press ¸, D, or C to save the  
Ê
Ë
definition and update the columns.  
Ì
Ê c1=seq(x,x,1,7); Ë c2=2ùc1; Ì You cannot directly change a locked  
cell (Œ) since it is defined by the column header.  
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 resulting cell values).  
Data/Matrix Editor  
530  
 
Clearing 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 ¸.  
2. Press M to clear the highlighted expression.  
3. Press ¸, D, or C.  
Using an Existing List as a Column  
Suppose you have one or more existing lists, and you want to use those existing lists as  
columns in a data variable.  
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:  
c1=list1  
Home screen or a program  
Use the NewData command as  
described in the Technical Reference  
module. For example:  
NewData datavar, list1 [, list2] [, list3] ...  
Ê
Ë
Ê Data variable. If this data variable already exists, it will be redefined  
based on the specified lists.  
Ë Existing list variables to copy to columns in the data variable.  
Data/Matrix Editor  
531  
   
Note: If you have a CBL 2™ or CBR™, use these techniques for your collected lists. Use  
2 ° to see existing list variables.  
To Fill a Matrix with a List  
You cannot use the Data/Matrix Editor to fill a matrix with a list. However, you can use  
the list8mat command from the Home screen or a program. For information, refer to the  
Technical Reference module.  
The Auto-calculate Feature  
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:  
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.  
To turn Auto-calculate off and on from the Data/Matrix Editor:  
1. Press:  
ƒ 9  
– or –  
2. 8 Í Change Auto-Calculate to OFF or  
ON.  
3. Press ¸ to close the dialog box.  
Data/Matrix Editor  
532  
 
If Auto-calculate = OFF and you make changes as described above, the header  
definitions are not recalculated until you set Auto-calculate = ON.  
Note: You may want to set Auto-calculate = OFF to make changes without recalculating  
each time, enter a definition such as c1=c2+c3 before you enter columns 2 and 3, or  
override any errors in a definition until you can debug the error.  
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 the Technical Reference module.  
This section describes how to use the functions in the Data/Matrix Editor. The Technical  
Reference module gives a more general description for the Home screen or a program.  
Using the Shift Function  
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:  
shift (column [,integer])  
Ê
Ë
Ê Column used as the base for the shift.  
Ë Number of elements to shift (positive shifts up; negative shifts down).  
Default is M1.  
For example, for a two-element shift up and down:  
Data/Matrix Editor  
533  
 
Ê
Ë
Ê c2=shift(c1,2)  
Ë c3=shift(c1,M2)  
Ì Shifted columns have the same length as the base  
Í 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.  
Ì
Î
Í
Note: To enter shift, type it from the keyboard or select it from the CATALOG.  
Using the CumSum Function  
The cumSum function returns a cumulative sum of the elements in a base column. Use  
to define a column header with the syntax:  
cumSum (column)  
Column used as the base for the cumulative sum.  
For example:  
c2=cumSum(c1)  
1+2  
1+2+3+4  
Note: To enter cumSum, type it, select it from the CATALOG, or press 2 I and  
select it from the List submenu.  
Data/Matrix Editor  
534  
 
Sorting Columns  
After entering information in a data, list, or matrix variable, you can easily sort a specified  
column in numeric or alphabetical order. You can also sort all columns as a whole, based  
on a “key” column.  
Sorting a Single Column  
In the Data/Matrix Editor:  
1. Move the cursor to any cell in the column.  
2. Press:  
2 ˆ and select 3:Sort Column.  
Numbers are sorted in ascending order.  
C1  
fred  
sally  
chris  
jane  
75  
C1  
75  
Character strings are sorted in alphabetical  
order.  
&
&
&
82  
98  
chris  
fred  
jane  
sally  
98  
82  
Data/Matrix Editor  
535  
Sorting All Columns Based on a “Key” Column  
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.  
In the Data/Matrix Editor:  
1. Move the cursor to any cell in the “key”  
column.  
2. In this example, move the cursor to the  
second column (c2) to sort by last name.  
Note: For a list variable, this is the same  
as sorting a single column.  
3. Press:  
2 ˆand select 4:Sort Col, adjust all.  
Note: This menu item is not available if  
any column is locked.  
When using this procedure for a data variable:  
All columns must have the same length.  
None of the columns can be locked (defined by a function in the column header).  
When the cursor is in a locked column, Œ is shown at the beginning of the entry line.  
Data/Matrix Editor  
536  
 
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:  
List  
To a:  
List or data  
Data  
Data  
Data column  
Matrix  
List  
Matrix  
Note: A list is automatically converted to a data variable if you enter more than one  
column of information.  
Procedure  
From the Data/Matrix Editor:  
1. Display the variable that you want to copy.  
Data/Matrix Editor  
537  
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.  
Ê
When available, select the column to  
copy from.  
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.  
4. Press ¸ (after typing in an input box such as Variable, you must press ¸  
twice).  
To Copy a Data Column to a List  
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.  
Ê List variable to copy to.  
Ê
Ë Data column that will be copied to the  
Ë
list. By default, this shows the column that  
contains the cursor.  
Data/Matrix Editor  
538  
Data/Matrix Editor  
539  
Statistics and Data Plots  
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.  
1. Set Graph mode (3) to FUNCTION.  
2. Enter stat data in the Data/Matrix Editor.  
Note: Refer to the Data/Matrix Editor  
module for details on entering data in the  
Data/Matrix Editor.  
3. Perform stat calculations to find stat  
variables or fit data to a model ().  
4. Define and select stat plots (and then  
,).  
Note: You can also use the Y= Editor to  
define and select stat plots and y(x)  
functions.  
5. Define the viewing window (8 $).  
Statistics and Data Plots  
540  
6. Change the graph format if necessary.  
7. , 9  
— or —  
@
8 Í  
Graph the selected equations  
(8 %).  
Performing a Statistical Calculation  
From the Data/Matrix Editor, use the Calc toolbar menu to perform statistical  
calculations. You can analyze one-variable or two-variable statistics, or perform several  
types of regression analyses.  
The Calculate Dialog Box  
You must have a data variable opened. The Data/Matrix Editor will not perform statistical  
calculations with a list or matrix variable.  
Statistics and Data Plots  
541  
From the Data/Matrix Editor:  
1. Press to display the Calculate dialog  
Pathname of the data  
variable  
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 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  
Statistics and Data Plots  
542  
2. Specify applicable settings for the active items.  
Item  
Description  
Calculation  
Type  
Select the type of calculation.  
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.  
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.  
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.  
Statistics and Data Plots  
543  
Note: To use an existing list variable for x, y, Freq, or Category, type the list name  
instead of a column number. An example using Freq, Category, and Include  
Categories is available.  
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  
When : is shown  
instead of =, you  
can scroll for  
additional results.  
Note: Any undefined data points (shown as undef) are ignored in a stat calculation.  
4. To close the STAT VARS screen, press ¸.  
Redisplaying the STAT VARS Screen  
The Data/Matrix Editor’s Stat toolbar menu redisplays the previous calculation results  
(until they are cleared from memory).  
@
2 ‰  
Statistics and Data Plots  
544  
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).  
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.  
Statistics and Data Plots  
545  
   
Selecting the Calculation Type  
From the Calculate dialog box (), highlight the current setting for the Calculation Type  
and press B.  
You can then select from a menu of available  
types.  
If an item is dimmed,  
it is not valid for the  
current Calculation  
Type.  
Calc Type  
OneVar  
Description  
One-variable statistics — Calculates the statistical variables.  
Two-variable statistics — Calculates the statistical variables.  
Cubic regression — Fits the data to the third-order  
TwoVar  
CubicReg  
3
2
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  
Exponential regression — Fits the data to the model  
x
equation y=ab (where a is the y-intercept) using a least-  
squares fit and transformed values x and ln(y).  
Statistics and Data Plots  
546  
     
Calc Type  
LinReg  
Description  
Linear regression — Fits the data to the model y=ax+b  
(where a is the slope, and b is the y-intercept) using a least-  
squares fit and x and y.  
LnReg  
Logarithmic regression — Fits the data to the model  
equation y=a+b ln(x) using a least-squares fit and  
transformed values ln(x) and y.  
Logistic  
MedMed  
Logistic regression — Fits the data to the model  
y=a/(1+bùe^(cùx))+d and updates all the system statistics  
variables.  
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  
QuadReg  
Power regression — Fits the data to the model equation  
b
y=ax using a least-squares fit and transformed values ln(x)  
and ln(y).  
Quadratic regression — Fits the data to the second-order  
2
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.  
Statistics and Data Plots  
547  
Calc Type  
QuartReg  
Description  
Quartic regression — Fits the data to the fourth-order  
4
3
2
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.  
SinReg  
Sinusoidal regression — Calculates the sinusoidal  
regression and updates all the system statistics variables.  
The output is always in radians, regardless of the angle  
mode setting.  
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.  
From the Home Screen or a Program  
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 the  
Technical Reference module for information about each command.  
Important: These commands perform a statistical calculation but do not automatically  
display the results. Use the ShowStat command to show the calculation results.  
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 Memory and Variable  
Statistics and Data Plots  
548  
Management. All statistical variables are cleared when you edit the data or change the  
calculation type. Other conditions that clear the variables are listed.  
Calculated Variables  
Statistical variables are stored as system variables. However, regCoef and regeq are  
treated as a list and a function variable, respectively.  
One  
Var  
Two  
Var  
Regressions  
mean of x values  
sum of x values  
ü
ü
Gx  
Gx  
2
2
2
sum of x values  
Gx  
Gx  
sample std. deviation of x  
population std. deviation of x  
number of data points  
mean of y values  
Sx  
Sx  
sx  
sx  
nStat  
nStat  
ÿ
sum of y values  
Gy  
2
2
sum of y values  
Gy  
sample standard deviation of y  
population std. deviation of y  
Sy  
sy  
sum of x y values  
Gxy  
minX  
minimum of x values  
minX  
Statistics and Data Plots  
549  
One  
Var  
Two  
Var  
Regressions  
maximum of x values  
minimum of y values  
maximum of y values  
1st quartile  
maxX  
maxX  
minY  
maxY  
q1  
median  
medStat  
q3  
3rd quartile  
regression equation  
regeq  
regression coefficients  
(a, b, c, d, e)  
regCoef  
correlation coefficient ††  
corr  
2
coefficient of determination ††  
R
summary points  
(MedMed only) †  
medx1, medy1,  
medx2, medy2,  
medx3, medy3  
2
†† corr is defined for a linear regression only; R is defined for all polynomial  
regressions.  
Note:  
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].  
Statistics and Data Plots  
550  
 
1st quartile is the median of points between minX and medStat, and 3rd quartile is  
the median of points between medStat and maxX.  
Defining a Statistical Plot  
From the Data/Matrix Editor, you can use the entered data to define several types of  
statistical plots. You can define up to nine plots at a time.  
Procedure  
From the Data/Matrix Editor:  
1. Press to display the Plot Setup screen.  
Initially, none of the plots are defined.  
2. Move the cursor to highlight the plot  
number that you want to define.  
3. Press , to define the plot.  
Pathname of the data  
variable  
This example shows all items as active.  
On your calculator, items are active only if  
they are valid for the current setting of  
Plot 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.  
Statistics and Data Plots  
551  
4. Specify applicable settings for the active items.  
Item  
Description  
Plot Type  
Mark  
Select the type of plot.  
Select the symbol used to plot the data points: Box (),  
Cross (x), Plus (+), Square (0), or Dot (¦).  
x
y
Type the column number in the Data/Matrix Editor (C1,  
C2, etc.) used for x values, the independent variable.  
Type the column number used for y values, the  
dependent variable. This is active only for Plot Type =  
Scatter or xyline.  
Hist. Bucket Width Specifies the width of each bar in a histogram.  
Freq and  
Categories?  
Select NO or YES. Note that Freq, Category, and  
Include Categories are active only when Freq and  
Categories? = YES. (Freq is active only for Plot Type =  
Box Plot or Histogram.)  
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.  
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.  
Note:  
Statistics and Data Plots  
552  
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.  
To use an existing list variable for x, y, Freq, or Category, type the list name instead  
of the column number.  
An example using Freq, Category, and Include Categories is available.  
5. Press ¸ (after typing in an input box, press ¸ twice).  
The Plot Setup screen is redisplayed.  
The plot you just defined is automatically  
selected for graphing.  
Notice the shorthand definition for the  
plot.  
Plot Type = Scatter  
Mark = Box  
x = c1  
y = c2  
Note: Any undefined data points (shown as undef) are ignored in a stat plot.  
Selecting or Deselecting a Plot  
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:  
Change the graph mode. (Stat plots are not graphed in 3D mode.)  
Statistics and Data Plots  
553  
Execute a Graph command.  
Open a different variable in the Data/Matrix Editor.  
Copying a Plot Definition  
From Plot Setup:  
1. Highlight the plot and press .  
2. Press B and select the plot number that  
you want to copy to.  
3. Press ¸.  
Note: If the original plot was selected (Ÿ), the copy is also selected.  
Clearing a Plot Definition  
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.  
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.  
Statistics and Data Plots  
554  
Scatter  
Data points from x and y are plotted as coordinate pairs. Therefore, the columns or lists  
that you specify for x and y must be the same length.  
Plotted points are shown with the symbol  
that you select as the Mark.  
If necessary, you can specify the same  
column or list for both x and y.  
Xyline  
This is a scatter plot in which data points are  
plotted and connected in the order in which  
they appear in x and y.  
You may want to sort all the columns in the  
Data/Matrix Editor before plotting.  
@
2 ˆ 3 or 2 ˆ 4  
Statistics and Data Plots  
555  
 
Box Plot  
This plots one-variable data with respect to the minimum and maximum data points  
(minX and maxX) in the set.  
A box is defined by its first 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 [Q1NX, Q3+X], where X is defined  
as 1.5 (Q3NQ1). These points, called outliers, are plotted individually beyond the box  
plot’s whiskers, using the mark that you select.  
Statistics and Data Plots  
556  
 
Histogram  
This plots one-variable data as a histogram. The x axis is divided into equal widths called  
buckets or bars. The height of each bar (its y value) indicates how many data points fall  
within the bar’s range.  
When defining the plot,  
you can specify the Hist.  
Bucket Width (default is 1)  
to set the width of each  
bar.  
xmax – xmin  
Hist. Bucket Width  
Number of bars = ---------------------------------------------  
A data point at the edge of  
a bar is counted in the bar  
to the right.  
xmin + Hist. Bucket Width  
xmin  
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.  
-
Use 8 $ to set ymin = 0 and ymax = the number of data points expected  
in the tallest bar.  
Statistics and Data Plots  
557  
When you trace () a histogram, the  
screen shows information about the  
traced bar.  
Trace cursor  
Range of the  
traced bar  
# of data points in  
the traced bar  
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.  
Statistics and Data Plots  
558  
Showing the List of Stat Plots  
Press 8 # 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.  
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.  
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.  
Statistics and Data Plots  
559  
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.  
To:  
Do this:  
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 a plot  
Highlight the plot and press .  
Turn all plots and/or  
functions off  
Press and select the applicable item. You  
can also use this menu to turn all functions on.  
Note: You can not use @ 2 ˆ to set a plot’s display style. However, the plot definition  
lets you select the mark used for the plot.  
To Graph Plots and Y= Functions  
As necessary, you can select and graph stat plots and y(x) functions at the same time.  
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 Basic Function Graphing).  
Statistics and Data Plots  
560  
Defining the Viewing Window  
Stat plots are displayed on the current graph, and they use the Window variables that  
are defined in the Window Editor.  
Use 8 $ 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 st plots.)  
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.  
Note: Zoom is available on the Y= Editor, Window Editor, and Graph screen.  
Statistics and Data Plots  
561  
Changing the Graph Format  
Press:  
, 9  
— or —  
@
8 Í  
from the Y= Editor, Window Editor, or Graph  
screen.  
Then change the settings as necessary.  
Tracing a Stat Plot  
From the Graph screen, press to trace a plot. The movement of the trace cursor  
depends on the Plot Type.  
Plot Type  
Description  
Scatter or xyline  
Box plot  
Tracing begins at the first data point.  
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.  
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.  
Statistics and Data Plots  
562  
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).  
Using Frequencies and Categories  
To manipulate the way in which data points are analyzed, you can use frequency values  
and/or category values. Frequency values let you “weight” particular data points.  
Category values let you analyze a subset of the data points.  
Example of a Frequency Column  
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.  
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.  
Statistics and Data Plots  
563  
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
These weighted scores are  
equivalent to the single column of  
scores listed to the right.  
c1  
85  
97  
92  
92  
89  
91  
95  
95  
95  
1
2
Ê
Ê
1
1
3
Ë
Ë
Ë
Ê Frequency of 2  
Ë Frequency of 3  
Note: A frequency value of 0 effectively removes the data point from analysis.  
To use frequency values, specify the frequency column when you perform a statistical  
calculation or define a stat plot. For example:  
Statistics and Data Plots  
564  
Set this to YES.  
Type the column number (or list name)  
that contains the frequency values.  
Note: You can also use frequency values from a list variable instead of a column.  
Example of a Category Column  
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.  
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.  
Category Value  
Used to indicate:  
10th grade girl  
10th grade boy  
11th grade girl  
11th grade boy  
1
2
3
4
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.  
Statistics and Data Plots  
565  
In the Data/Matrix Editor, you can enter the scores and the category values in two  
columns.  
Test scores  
Category values  
c1  
85  
97  
92  
88  
90  
95  
79  
68  
92  
84  
82  
c2  
1
3
2
3
2
1
4
2
4
3
1
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.  
Statistics and Data Plots  
566  
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.)  
Note: You can also use category values from a list variable instead of a column.  
To analyze:  
Include Categories:  
10th grade girls  
{1}  
10th grade boys  
{2}  
10th grade girls and boys  
11th grade girls  
{1,2}  
{3}  
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}  
Note: To analyze the whole class, leave the Category input box blank. Any category  
values are ignored.  
Statistics and Data Plots  
567  
 
If You Have a CBL 2™ or CBR™  
The Calculator-Based Laboratory™ System (CBL 2) 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 Titanium, CBL 2 and CBR programs are  
available from the TI web site at education.ti.com.  
How CBL 2™ Data Is Stored  
When you collect data with the CBL 2, that data is initially stored in the CBL 2 unit itself.  
You must then retrieve the data (transfer it to the TI-89 Titanium) by using the Get  
command, which is described in the Technical Reference module.  
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.  
When you transfer the collected information to the TI-89 Titanium, you can specify the  
list variable names that you want to use.  
For example, you can use the CBL 2 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 information on the TI-89 Titanium, there are two ways to use  
the CBL 2 list variables.  
Statistics and Data Plots  
568  
   
Note: For specifics about using the CBL 2 and retrieving data to the TI-89 Titanium, refer  
to the guidebook that comes with the CBL 2 unit.  
Referring to the CBL 2™ Lists  
When you perform a statistical calculation or define a plot, you can refer explicitly to the  
CBL 2 list variables. For example:  
Type the CBL 2 list variable name  
instead of a column number  
Creating a Data Variable with the CBL 2™ Lists  
You can create a new data variable that consists of the necessary CBL 2 list variables.  
Statistics and Data Plots  
569  
From the Home screen or a program, use the NewData command.  
NewData dataVar, list1 [,list2 ] [,list3 ] ...  
CBL 2 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.  
From the Data/Matrix Editor, create a new, empty data variable with the applicable  
name. For each CBL 2 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.  
Note: To define or clear a column header, use . For more information, refer to the  
Data/Matrix Editor module.  
At this point, the columns are linked to the CBL 2 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 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 list.  
Statistics and Data Plots  
570  
CBR™  
You can also use the Calculator-Based Ranger™ (CBR) to explore the mathematical  
and scientific relationships between distance, velocity, acceleration, and time using data  
collected from activities you perform.  
Statistics and Data Plots  
571  
Programming  
Running an Existing Program  
After a program is created (as described in the remaining sections of this module), you  
can run it from the Home screen. The program’s output, if any, is displayed on the  
Program I/O screen, in a dialog box, or on the Graph screen.  
Running a Program  
On the Home screen:  
1. Type the name of the program.  
2. You must always type a set of  
parentheses after the name.  
prog1()  
If arguments are not  
required  
Some programs require you to  
pass an argument to the  
program.  
prog1(x,y)  
If arguments are required  
Note: Use 2 ° to list  
existing PRGM variables.  
Highlight a variable and press  
¸ to paste its name to the  
entry line.  
3. Press ¸.  
Programming  
572  
 
Note: Arguments specify initial values for a program.  
When you run a program, the TI-89 Titanium automatically checks for errors. For  
example, the following message is displayed if you:  
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.  
Note: The TI-89 Titanium also checks for run-time errors that are found within the  
program itself.  
“Breaking” a Program  
When a program is running, the BUSYindicator is displayed in the status line.  
Programming  
573  
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.  
Where Is the Output Displayed?  
Depending on the commands in the program, the TI-89 Titanium automatically displays  
information on the applicable screen.  
Most output and input commands use the Program I/O screen. (Input commands  
prompt the user to enter information.)  
Graph-related commands typically use the Graph screen.  
After the program stops, the TI-89 Titanium shows the last screen that was displayed.  
The Program I/O Screen  
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.  
Programming  
574  
 
On the Program I/O screen:  
toolbar is available; all  
others are dimmed.  
Last output  
There is no entry line.  
Note: To clear any previous output, enter the Clr[O command in your program. You can  
also execute Clr[O from the Home 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.  
Note: If Home screen calculations don’t work after you run a program, you may be on the  
Program I/O screen.  
Leaving the Program I/O Screen  
From the Program I/O screen:  
Press to toggle between the Home screen and the Program I/O screen.  
– or –  
Press N, 2 K, or  
@
"
"to display the Home screen.  
– or –  
Display any other application screen (with O, 8 #, etc.).  
Programming  
575  
Starting a Program Editor Session  
Each time you start the Program Editor, you can resume the current program or function  
(that was displayed the last time you used the Program Editor), open an existing  
program or function, or start a new program or function.  
Starting a New Program or Function  
1. Press O and then select Program  
Editor.  
2. Select 3:New.  
3. Specify the applicable information for the  
new program or function.  
Item  
Type  
Lets you:  
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 the Calculator  
Home Screen module.  
Programming  
576  
Item  
Lets you:  
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.”  
This is the template for a  
program. Functions have a  
similar template.  
You can now use the Program Editor as described in the remaining sections of this  
module.  
Note: A program (or function) is saved 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.  
Resuming the Current Program  
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, launch  
Program Editor again and select 1:Current.  
Programming  
577  
Starting a New Program from the Program Editor  
To leave the current program or function and start a new one:  
1. Press ƒ and select 3:New.  
2. Specify the type, folder, and variable for  
the new program or function.  
3. Press ¸ twice.  
Opening a Previous Program  
You can open a previously created program or function at any time.  
1. From within the Program Editor, press ƒ and select 1:Open.  
– or –  
From another application, launch Program Editor again and select 2:Open.  
2. Select the applicable type, folder, and  
variable.  
3. Press ¸.  
Note: By default, Variable shows the first existing program or function in alphabetical  
order.  
Programming  
578  
Copying a Program  
In some cases, you may want to copy a program or function so that you can edit the  
copy while retaining the original.  
1. Display the program or function you want to copy.  
2. Press ƒ and select 2:Save Copy As.  
3. Specify the folder and variable for the copy.  
4. Press ¸ twice.  
Note about Deleting a Program  
Because all Program Editor sessions are saved automatically, you can accumulate quite  
a few previous programs and functions, which take up memory storage space.  
To delete programs and functions, use the VAR-LINK screen (2 °). For  
information about VAR-LINK, refer to the Memory and Variable Management module.  
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.  
Programming  
579  
Entering and Editing Program Lines  
On a blank template, you can begin entering commands for your new program.  
Program name, which you specify  
when you create a new program.  
Enter your program commands  
between Prgm and EndPrgm.  
All program lines begin with a colon.  
Note: Use the cursor pad to scroll through the program for entering or editing commands.  
Use 8 C or 8 D to go to the top or bottom of a program, respectively.  
You enter and edit program commands in the Program Editor by using the same  
techniques used to enter and edit text in the Text Editor. Refer to “Entering and Editing  
Text” in the Text Editor module.  
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.  
Note: Entering a command does not execute that command. It is not executed until you  
run the program.  
Entering Multi- Command Lines  
To enter more than one command on the same line, separate them with a colon by  
pressing 2 Ë.  
Programming  
580  
 
Entering Comments  
A comment symbol (¦) lets you enter a remark in a program. When you run the program,  
all characters to the right of ¦ are ignored.  
:prog1()  
:Prgm  
Ê :¦Displays sum of 1 thru n  
:Request "Enter an integer",n  
Ë :expr(n)!n:¦Convert to numeric expression  
:------  
Ê Description of the program .  
Ë Description of expr.  
Note: Use comments to enter information that is useful to someone reading the program  
code.  
To enter the comment symbol, press:  
8 d  
– or –  
Press and select 9:¦  
Controlling the Flow of a Program  
When you run a program, the program lines are executed in sequential order. However,  
some commands alter the program flow. For example:  
Programming  
581  
     
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.  
Using Indentation  
For more complex programs that :If x>5 Then  
use If...EndIf and loop structures : Disp "x is > 5"  
such as For...EndFor, you can make :Else  
the programs easier to read and : Disp "x is < or = 5"  
understand by using indentation. :EndIf  
Displaying Calculated Results  
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.  
These calculations will not  
display a result in a program  
:12ù6  
:cos(p/4)  
(although they will on the Home :solve(x^2–x–2=0,x)  
screen).  
Output commands such as Disp :Disp 12ù6  
will display a result in a program. :Disp cos(p/4)  
:Disp solve(x^2–x–2=0,x)  
Programming  
582  
Displaying a calculation result  
:cos(p/4)!maximum  
does not store that result. If you :Disp maximum  
need to refer to a result later,  
store it to a variable.  
Note: A list of output commands is available.  
Getting Values into a Program  
To input values into a program, you can:  
Require the users to store a value (with §) to the necessary variables before  
running the program. The program can then refer to these variables.  
Enter the values directly into :Disp 12ù6  
the program itself.  
:cos(p/4)!maximum  
Include input commands that :Input "Enter a value",i  
prompt the users to enter the :Request "Enter an  
necessary values when they integer",n  
run the program.  
Require the users to pass  
one or more values to the  
program when they run it.  
prog1(3,5)  
Note: A list of input commands is available.  
Programming  
583  
Example of Passing Values to a Program  
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.  
When you write the program in the Program Editor:  
In the ( ) beside the program name, :circ(x,y,r) Ê  
specify the variables that will be  
used to store the passed values.  
:Prgm  
:FnOff  
:ZoomStd  
:ZoomSqr  
:Circle x,y,r  
:LineHorz y+r  
:EndPrgm  
Notice that the program also  
contains commands that set up the  
Graph screen.  
Ê Only circ( ) is initially  
displayed on the blank  
template; be sure to edit this  
line.  
Note: In this example, you cannot use circle as the program name because it  
conflicts with a command name.  
Before drawing the circle, the program turns off any selected Y= Editor functions,  
displays a standard viewing window, and “squares” the window.  
Programming  
584  
 
To run the program from the Home screen:  
The user must specify the  
applicable values as  
arguments within the ( ).  
circ(0,0,5)  
Passed to r  
Passed to y  
Passed to x  
The arguments, in order, are  
passed to the program.  
Note: This example assumes that the user enters values that can be displayed by the  
viewing window set up by ZoomStd and ZoomSqr.  
Overview of Entering a Function  
A function created in the Program Editor is very similar to the functions and instructions  
that you typically use from the Home screen.  
Why Create a User-Defined Function?  
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.  
Programming  
585  
You can create functions that expand on the TI-89 Titanium’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.  
Note: You can create a function from the Home screen, but the Program Editor is more  
convenient for complex, multi-line functions.  
Differences Between Functions and Programs  
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.  
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)  
Programming  
586  
 
Can use all built-in TI-89 Titanium / Voyage™ 200 functions except:  
setFold  
setTable  
setGraph  
switch  
setMode  
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.  
Note: Information about local variables is available.  
Entering a Function  
When you create a new function in the Program Editor, the TI-89 Titanium displays a  
blank “template.”  
Note: Use the cursor pad to scroll through the function for entering or editing commands.  
Programming  
587  
Function name, which you  
specify when you create a  
new function.  
Enter your commands  
between Func and  
EndFunc.  
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 calling the function.  
All function lines  
begin with a colon.  
If the function requires input, one or more values must be passed to the function. (A  
user-defined function can store to local variables only, and it cannot use instructions that  
prompt the user for input.)  
How to Return a Value from a Function  
There are two ways to return a value from a function:  
As the last line in the function :cube(x)  
(before EndFunc), calculate the :Func  
value to be returned.  
:x^3  
:EndFunc  
Programming  
588  
 
Use Return. This is useful for  
:cube(x)  
exiting a function and returning a :Func  
value at some point other than :If x<0  
the end of the function.  
: Return 0  
:x^3  
:EndFunc  
Note: This example calculates the cube if x|0; otherwise, it returns a 0.  
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.  
There is an implied Return at the end of the function. If the last line is not an expression,  
an error occurs.  
Example of a Function  
x
The following function returns the xth root of a value y ( y ). Two values must be passed  
to the function: x and y.  
Programming  
589  
Note: Because x and y in the function are local, they are not affected by any existing x or  
y variable.  
Function as defined in  
Function as called from the Home Screen  
the Program Editor  
3!x:125!y  
4ùxroot(3,125)  
20  
5
:xroot(x,y)  
:Func  
:y^(1/x)  
:EndFunc  
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.  
Programming  
590  
 
Calling a Separate Program  
To call a separate program, use the same syntax used to run the program from the  
Home screen.  
:subtest1()  
:subtest2(x,y)  
:Prgm  
: Disp x,y  
:EndPrgm  
:Prgm  
:For i,1,4,1  
: subtest2(i,iù1000)  
:EndFor  
:EndPrgm  
Calling an Internal Subroutine  
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.  
Programming  
591  
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  
Ë :EndPrgm  
:¦Beginning of main program  
:For i,1,4,1  
Ì : subtest2(i,I*1000)  
:EndFor  
:EndPrgm  
Ê Declares the subroutine as a local variable.  
Ë Defines the subroutine.  
Ì Calls the subroutine.  
Note: Use the Program Editor’s Var toolbar menu to enter the Define and  
Prgm...EndPrgm commands.  
Notes about Using Subroutines  
At the end of a subroutine, execution returns to the calling program. To exit a subroutine  
at any other time, use the Return command.  
A subroutine cannot access local variables declared in the calling program. Likewise, the  
calling program cannot access local variables declared in a subroutine.  
Programming  
592  
 
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.  
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 with reserved names that are created  
Variables  
automatically to store data about the state of the  
calculator. 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.  
Programming  
593  
 
Scope  
Description  
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  
(class = Variable name; start = Folder Name)  
After the program stops, any folder variables created by  
the program still exist and still take up memory.  
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.  
Programming  
594  
 
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).  
Circular Definition Errors  
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:  
Ê x+1!x  
– or –  
For i,i,10,1  
Disp i  
EndFor  
Ê
Ê Causes a Circular definitionerror 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.  
Programming  
595  
                   
Variable-Related Commands and Functions  
Command  
Description  
Stores a value to a variable. As on the Home screen,  
pressing § enters a ! symbol.  
§ key  
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.  
Defines a program (subroutine) or function variable within a  
program.  
DelFold  
Deletes a folder. All variables in that folder must be deleted  
first.  
DelType  
Deletes unarchived variables of the specified type in all  
folders.  
DelVar  
Deletes a variable.  
getFold  
getType  
Returns the name of the current folder.  
Returns a string that indicates the data type (EXPR, LIST,  
etc.) of a variable.  
isArchiv()  
isLocked()  
isVar()  
Indicates if the variable is archived or not.  
Indicates if the variable is locked or not.  
Indicates if the variable is in the symbol table or not.  
Declares one or more variables as local variables.  
Local  
Programming  
596  
       
Command  
Lock  
Description  
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.  
Note: The Define, DelVar, and Local commands are available from the Program Editor’s  
Var toolbar menu.  
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.  
Programming  
597  
Example of a Local Variable  
The following program segment shows a For...EndFor loop (which is discussed later in  
this module). The variable i is the loop counter. In most cases, the variable i is used only  
while the program is running.  
Ê :Local I  
:For i,0,5,1  
: Disp I  
:EndFor  
:Disp i  
Ê Declares variable i as local.  
Note: 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.  
If you declare variable i as local, it is deleted automatically when the program stops so  
that it does not use up memory.  
What Causes an Undefined Variable Error Message?  
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).  
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.  
Programming  
598  
For example:  
Define fact(n)=Func:  
Ê Local m:  
While n>1:  
nm!m: n–1!n:  
EndWhile:  
Return m:  
EndFunc  
Ê Local variable m is not assigned an initial value.  
In the example above, the local variable m exists independently of any variable m that  
exists outside of the function.  
You Must Initialize Local Variables  
All local variables must be assigned an initial value before they are referenced.  
Define fact(n)=Func:  
Ê Local m: 1!m:  
While n>1:  
nùm!m: n–1!n:  
EndWhile:  
Return m:  
EndFunc  
Ê 1 is stored as the initial value for m.  
The calculator cannot use a local variable to perform symbolic calculations.  
Programming  
599  
   
To Perform Symbolic Calculations  
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.  
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.)  
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.  
Programming  
600  
   
How Strings Are Used  
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:  
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.  
Programming  
601  
                 
String Commands  
Note: See the Technical Reference module for syntax for all commands and functions.  
Command  
#
Description  
Converts a string into a variable name. This is called  
indirection.  
&
Appends (concatenates) two strings into one string.  
char  
Returns the character that corresponds to a specified  
character code. This is the opposite of the ord command.  
dim  
Returns the number of characters in a string.  
expr  
Converts a string into an expression and executes that  
expression. This is the opposite of the string command.  
Important: Some user input commands store the entered  
value as a string. Before you can perform a mathematical  
operation on that value, you must convert it to a numeric  
expression.  
format  
Returns an expression as a character string based on the  
format template (fixed, scientific, engineering, etc.)  
inString  
Searches a string to see if it contains a specified substring. If  
so, inString returns the character position where the first  
occurrence of the substring begins.  
left  
Returns a specified number of characters from the left side  
(beginning) of a string.  
mid  
ord  
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.  
Programming  
602  
Command  
right  
Description  
Returns a specified number of characters from the right side  
(end) of a string.  
rotate  
shift  
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.  
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 module).  
Programming  
603  
           
Entering a Test Operator  
Type the operator directly from the keyboard.  
– or –  
Press 2 I and select 8:Test. Then  
select the operator from the menu.  
– or –  
Display the built-in functions. Press:  
½The test operators are listed near  
the bottom of the Built-in menu.  
Relational Tests  
Relational operators let you define a conditional test that compares two values. The  
values can be numbers, expressions, lists, or matrices (but they must match in type and  
dimension).  
Operator  
True if:  
Example  
a>8  
>
<
|
{
=
ƒ
Greater than  
Less than  
a<0  
Greater than or equal to  
Less than or equal to  
Equal  
a+b|100  
a+6{b+1  
list1=list2  
mat1ƒmat2  
Not equal to  
Programming  
604  
 
Note: From the keyboard, you can type:  
>= for  
<= for  
/= for  
|
{
ƒ
(To get the / character, press e.)  
Boolean Tests  
Boolean operators let you combine the results of two separate tests.  
Operator  
and  
True if:  
Example  
Both tests are true  
At least one test is true  
a>0 and a{10  
a{0 or b+c>10  
a+6<b+1 xor c<d  
or  
xor  
One test is true and the  
other is false  
The Not Function  
The not function changes the result of a test from true to false and vice versa. For  
example:  
not x>2  
is true if  
x{2  
is 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).  
Programming  
605  
 
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.  
F2 Control Toolbar Menu  
To enter If...EndIf structures, use the Program  
Editor’s Control toolbar menu.  
The If command is available directly from the  
menu.  
To see a submenu that lists other If structures,  
select 2:If...Then.  
When you select a structure such as  
If...Then...EndIf, a template is inserted at the :EndIf  
:If | Then Ê  
cursor location.  
Ê The cursor is  
positioned so that you  
can enter a conditional  
test.  
Programming  
606  
 
If Command  
To execute only one command if a conditional test is true, use the general form:  
:If x>5  
Ê : Disp "x is greater than 5"  
Ë :Disp x  
Ê Executed only if x>5; otherwise, skipped.  
Ë Always displays the value of x.  
In this example, you must store a value to x before executing the If command.  
Note: Use indentation to make your programs easier to read and understand.  
If...Then...EndIf Structures  
To execute one group of commands if a conditional test is true, use the structure:  
:If x>5 Then  
Ê : Disp "x is greater than 5"  
Ê : 2x!x  
Ë :EndIf  
:Disp x  
Ê Executed only if x>5.  
Ë Displays value of:  
• 2x if x>5  
• x if x{5  
Programming  
607  
Note: EndIf marks the end of the Then block that is executed if the condition is true.  
If...Then...Else... EndIf Structures  
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 x>5 Then  
Ê : Disp "x is greater than 5"  
Ê : 2x!x  
:Else  
Ë : Disp "x is less than or  
Ë
equal to 5"  
: 5x!x  
:EndIf  
Ì :Disp x  
Ê Executed only if x>5.  
Ë Executed only if x{5.  
Ì Displays value of:  
• 2x if x>5  
• 5x if x{5  
If...Then...ElseIf... EndIf Structures  
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.  
Programming  
608  
 
Refer to the Technical Reference module for more information and an example.  
Lbl and Goto Commands  
You can also control the flow of your program by using Lbl (label) 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  
Programming  
609  
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  
Ê : Goto GT5  
Ë :Disp x  
:--------  
:--------  
:Lbl GT5  
:Disp "The number was > 5”  
Ê If x>5, branches directly to label GT5.  
Ë For this example, the program must include commands (such as Stop) that prevent Lbl GT5  
from being executed if x{5.  
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.  
F2 Control Toolbar Menu  
To enter most of the loop-related commands,  
use the Program Editor’s Control toolbar  
menu.  
Programming  
610  
 
When you select a loop, the loop command :For | Ê  
and its corresponding End command are  
:EndFor  
inserted at the cursor location.  
Ê 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.  
Note: A loop command marks the start of the loop. The corresponding End command  
marks the end of the loop.  
For...EndFor Loops  
A For...EndFor loop uses a counter to control the number of times the loop is repeated.  
The syntax of the For command is:  
Note: The ending value can be less than the beginning value, but the increment must be  
negative.  
For(variable, begin, end [, increment])  
Ê
Ë
Ì
Í
Ê variable used as a counter  
Ë counter value used the first time For is executed  
Ì exits the loop when variable exceeds this value  
Í added to the counter each subsequent time For is executed  
Programming  
611  
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  
: --------  
: --------  
:EndFor  
i > 5  
i { 5  
:--------  
Note: The For command automatically increments the counter variable so that the  
program can exit the loop after a certain number of repetitions.  
At the end of the loop (EndFor), program control jumps back to the For command, where  
variable is incremented and compared to end.  
For example:  
:For i,0,5,1  
Ê : Disp I  
:EndFor  
Ë :Disp i  
Ê Displays 0, 1, 2, 3, 4, and 5.  
Ë Displays 6. When variable increments to 6, the loop is not executed.  
Note: You can declare the counter variable as local if it does not need to be saved after  
the program stops.  
Programming  
612  
 
While...EndWhile Loops  
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 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.  
x | 5  
:While x<5  
: --------  
: --------  
:EndWhile  
x < 5  
:--------  
Note: The While command does not automatically change the condition. You must  
include commands that allow the program to exit the loop.  
At the end of the loop (EndWhile), program control jumps back to the While command,  
where condition is re-evaluated.  
To execute the loop the first time, the condition must initially be true.  
Any variables referenced in the condition must be set before the While command.  
(You can build the values into the program or prompt the user to enter the values.)  
The loop must contain commands that change the values in the condition, eventually  
causing it to be false. Otherwise, the condition is always true and the program  
cannot exit the loop (called an infinite loop).  
Programming  
613  
 
For example:  
Ê :0!x  
:While x<5  
Ë : Disp x  
Ì : x+1!x  
:EndWhile  
Í :Disp x  
Ê Initially sets x.  
Ë Displays 0, 1, 2, 3, and 4.  
Ì Increments x.  
Í Displays 5. When x increments to 5, the loop is not executed.  
Loop...EndLoop Loops  
A Loop...EndLoop creates an infinite loop, which is repeated endlessly. The Loop  
command does not have any arguments.  
:Loop  
: --------  
: --------  
:EndLoop  
:--------  
Programming  
614  
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  
Ê : If x>5  
:
Exit  
:EndLoop  
Ë :Disp x  
Ê An If command checks the condition.  
Ë Exits the loop and jumps to here when x increments to 6.  
Note: The Exit command exits from the current loop.  
In this example, the If command can be anywhere in the loop.  
When the If command is:  
At the beginning of the loop  
At the end of the loop  
The loop is:  
Executed only if the condition is true.  
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.  
Programming  
615  
 
Repeating a Loop Immediately  
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.  
Lbl and Goto Loops  
Although the Lbl (label) and Goto commands are not strictly loop commands, they can  
be used to create an infinite loop. For example:  
:Lbl START  
: --------  
: --------  
:Goto START  
:--------  
As with Loop...EndLoop, the loop should contain commands that let the program exit  
from the loop.  
Configuring the TI-89 Titanium  
Programs can contain commands that change the configuration of the calculator.  
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.  
Programming  
616  
           
Configuration Commands  
Command  
getConfg  
getFold  
Description  
Returns a list of calculator characteristics.  
Returns the name of the current folder.  
Returns the current setting for a specified mode.  
Returns a list of default units.  
getMode  
getUnits  
setFold  
Sets the current folder.  
setGraph  
Sets a specified graph format (Coordinates, Graph Order,  
etc.).  
setMode  
setTable  
setUnits  
switch  
Sets any mode except Current Folder.  
Sets a specified table setup parameter (tblStart, @tbl, etc.)  
Sets default units for displayed results.  
Sets the active window in a split screen, or returns the  
number of the active window.  
Note: The parameter/mode strings used in the setMode( ), getMode( ), setGraph( ), and  
setTable( ) functions do not translate into other languages when used in a program. See  
the Technical Reference module.  
Entering the SetMode Command  
In the Program Editor:  
Programming  
617  
1. Position the cursor where you want to insert the setMode command.  
2. Press:  
2 ˆ to display a list of modes.  
Note: The Mode menu does not let you set  
the Current Folder mode. To set this  
mode, use the setFold command.  
3. Select a mode to display a menu of its valid settings.  
4. Select a setting.  
The correct syntax is  
:setMode("Graph","FUNCTION")  
inserted into your program.  
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.  
F3 I/O Toolbar Menu  
To enter most of the commonly used  
input/output commands, use the Program  
Editor’s I/O toolbar menu.  
Programming  
618  
     
To see a submenu that lists additional  
commands, select 1:Dialog.  
Input Commands  
Command  
getKey  
Description  
Returns the key code of the next key pressed. See the  
Technical Reference module 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.  
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.  
Programming  
619  
             
Command  
Request  
Description  
Displays a dialog box that prompts the user to enter an  
expression. Request always treats the entered expression  
as a string.  
Note: String input cannot be used in a calculation. To convert a string to a numeric  
expression, use the expr command.  
Output Commands  
Command  
Clr[O  
Description  
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.  
DispG  
Displays the current contents of the Graph screen.  
DispHome Displays the current contents of the Home screen.  
DispTbl  
Output  
Displays the current contents of the Table screen.  
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.  
Programming  
620  
     
Command  
Text  
Description  
Displays a dialog box that contains a specified character  
string.  
Notes:  
In a program, simply performing a calculation does not display the result. You must  
use an output command.  
After Disp and Output, the program immediately continues. You may want to add a  
Pause command.  
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... Activates or removes a custom toolbar.  
CustmOff  
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 2 ½ again or changes  
applications.  
Programming  
621  
   
Command Description  
DropDown Displays a drop-down menu within a dialog box.  
Item  
Displays a menu item for a redefined toolbar.  
Creates an input box within a dialog box.  
Displays a character string within a dialog box.  
Request  
Text  
Title  
Displays the title of a dialog box or a menu title within a  
toolbar.  
Notes:  
When you run a program that sets up a custom toolbar, that toolbar is still available  
even after the program has stopped.  
Request and Text are stand-alone commands that can also be used outside of a  
dialog box or toolbar program block.  
Creating a Custom Menu  
The custom menu feature lets you create your own toolbar menu. A custom menu can  
contain any available function, instruction, or set of characters. The calculator has a  
default custom menu that you can modify or redefine.  
Programming  
622  
Turning the Custom Menu On and Off  
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.  
To:  
Do this:  
Turn on the  
From the Home screen or any other application:  
custom menu  
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:  
2 Select 3:CustmOff.  
This pastes CustmOff in the entry line.  
2. Press ¸.  
You can also use CustmOff in a program.  
CustmOff  
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.  
Programming  
623  
 
Defining a Custom Menu  
To create a custom menu, use the following general structure.  
Custom  
: Title title of F1 menu:  
:
:
:
Item item 1  
Item item 2  
: Title title of F2 menu  
:
:
: Title title of F3 menu  
:
Note: When the user selects a menu item, the text defined by that Item command is  
pasted to the current cursor location.  
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})"  
Programming  
624  
Ë :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 "&"  
: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: The following may be slightly different than the default custom menu on your  
calculator.  
Ê
Ë
Note: See how "_\o\C" and "_\o\F" display as ¡C and ¡F in the menu. Similarly, see the  
international accented characters.  
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  
Programming  
625  
Editor to create a new program, and paste them into the blank program. Then modify the  
commands as necessary.  
Note: This inserts all the commands on a single line. You do not need to split them into  
separate lines.  
You can create and use only one custom menu at a time. If you need more, write a  
separate program for each custom menu. Then run the program for the menu you need.  
Restoring the Default Custom Menu  
To restore the default:  
1. From the Home screen’s normal menu (not the custom menu), select Clean Up:  
2 ˆ  
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.  
Programming  
626  
               
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  
DispTbl  
Description  
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 Commands  
Command  
ClrGraph  
Description  
Erases any functions or expressions that were graphed  
with the Graph command.  
Define  
DispG  
FnOff  
FnOn  
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.  
Programming  
627  
             
Command  
Graph  
Description  
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.).  
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.  
Note: More information is available about using setMode.  
Graph Picture and Database Commands  
Command  
AndPic  
Description  
Displays the Graph screen and superimposes a stored  
graph picture by using AND logic.  
Programming  
628  
         
Command  
CyclePic  
NewPic  
RclGDB  
RclPic  
Description  
Animates a series of stored graph pictures.  
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.  
Note: For information about graph pictures and databases, also refer to Additional  
Graphing Topics.  
Drawing on the Graph Screen  
To create a drawing object on the Graph screen, use the commands listed in this section.  
Pixel vs. Point Coordinates  
When drawing an object, you can use either of two coordinate systems to specify a  
location on the screen.  
Programming  
629  
 
Pixel coordinates — Refer to the pixels that physically make up the screen. These  
are independent of the viewing window because the screen is always:  
159 (0 to 158) pixels wide and 77 (0 to 76) pixels tall.  
Point coordinates — Refer to the coordinates in effect for the current viewing window  
(as defined in the Window Editor).  
10,10  
0,0  
-10,10  
@
@
158,0  
@
0,76  
158,76  
10,-10  
-10,-10  
H 0,102  
Pixel coordinates  
(independent of viewing window)  
Point coordinates  
(for standard viewing window)  
Note: For information about pixel coordinates in split screens, refer to the Data/Matrix  
Editor module.  
Many drawing commands have two forms: one for pixel coordinates and one for point  
coordinates.  
Note: Pixel commands start with Pxl, such as PxlChg.  
Erasing Drawn Objects  
Command  
ClrDraw  
Description  
Erases all drawn objects from the Graph screen.  
Programming  
630  
     
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  
Displays a character string at the specified coordinates.  
PxlText  
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.  
Programming  
631  
                 
Command  
Description  
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 Expressions  
Command  
DrawFunc  
DrawInv  
Description  
Draws a specified expression.  
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.  
Programming  
632  
 
Accessing Another TI-89 Titanium, a CBL 2, or a  
CBR  
If you link two graphing calculators (described in the Connectivity module), programs on  
both units can transmit variables between them. If you link a TI-89 Titanium to a  
Calculator-Based Laboratory™ (CBL 2™) or a Calculator-Based Ranger™ (CBR™), a  
program on the TI-89 Titanium can access the CBL 2 or CBR.  
F3 I/O Toolbar Menu  
Use the Program Editor’s I/O toolbar menu  
to enter the commands in this section.  
1. Press and select 8:Link.  
2. Select a command.  
Programming  
633  
     
Accessing Another TI-89 Titanium  
When two calculators are linked, one acts as a receiving unit and the other as a sending  
unit.  
Command  
GetCalc  
Description  
Executed on the receiving unit. Sets up the unit to receive a  
variable via the I/O port.  
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  
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.  
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 Connectivity.  
Accessing a CBL 2 or CBR  
For additional information, refer to the manual that comes with the CBL 2 or CBR unit.  
Command  
Get  
Description  
Gets a variable from an attached CBL 2 or CBR and  
stores it in the graphing calculator.  
Programming  
634  
   
Command  
Send  
Description  
Sends a list variable from the graphing calculator to the  
CBL 2 or CBR.  
Debugging Programs and Handling Errors  
After you write a program, you can use several techniques to find and correct errors. You  
can also build an error-handling command into the program itself.  
Run-Time Errors  
The first step in debugging your program is to run it. The graphing calculator  
automatically checks each executed command for syntax errors. If there is an error, a  
message indicates the nature of the error.  
To display the program in the Program  
Editor, press ¸. The cursor appears  
in the approximate area of the error.  
To cancel program execution and return to the Home screen, press N.  
If your program allows the user to select from several options, be sure to run the  
program and test each option.  
Programming  
635  
       
Debugging Techniques  
Run-time error messages can locate syntax errors but not errors in program logic. The  
following techniques may be useful.  
During testing, do not use local variables so that you can check the variable values  
after the program stops. When the program is debugged, declare the applicable  
variables as local.  
Within a program, temporarily insert Disp and Pause commands to display the  
values of critical variables.  
-
Disp and Pause cannot be used in a user-defined function. To temporarily  
change the function into a program, change Func and EndFunc to Prgm and  
EndPrgm. Use Disp and Pause to debug the program. Then remove Disp and  
Pause and change the program back into a function.  
To confirm that a loop is executed the correct number of times, display the counter  
variable or the values in the conditional test.  
To confirm that a subroutine is executed, display messages such as Entering  
subroutineand Exiting subroutineat 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.  
Programming  
636  
 
Example: Using Alternative Approaches  
The example in the Previews module shows a program that prompts the user to enter an  
integer, sums all integers from 1 to the entered integer, and displays the result. This  
section gives several approaches that you can use to achieve the same goal.  
Example 1  
This example uses InputStr for input, a While...EndWhile loop to calculate the result, and  
Text to display the result.  
:prog1()  
:Prgm  
Ê :InputStr "Enter an integer",n  
Ë :expr(n)!n  
:0!temp:1!I  
Ì :While i{n  
©Ì : temp+i!temp  
©Ì : i+1!I  
Ì :EndWhile  
Í :Text "The answer is "&string(temp)  
:EndPrgm  
Ê Prompts for input on Program I/O screen.  
Ë Converts string entered with InputStr to an expression.  
Ì Loop calculation.  
Í Displays output in a dialog box.  
Programming  
637  
Note: For {, type 8 µ (zero). For &, press:  
8 p (times)  
Example 2  
This example uses Prompt for input, Lbl, and Goto to create a loop, and Disp to display  
the result.  
:prog2()  
:Prgm  
Ê :Prompt n  
:0!temp:1!I  
Ë :Lbl top  
© : temp+i!temp  
© : i+1!I  
© : If i{n  
Ë :  
Goto top  
Ì :Disp temp  
:EndPrgm  
Ê Prompts for input on Program I/O screen.  
Ë Loop calculation.  
Ì Displays output on Program I/O screen.  
Note: Because Prompt returns nas a number, you do not need to use expr to convert n.  
Programming  
638  
Example 3  
This example uses Dialog...EndDlog to create dialog boxes for input and output. It uses  
Loop...EndLoop to calculate the result.  
:prog3()  
:Prgm  
Ê :Dialog  
© : Title "Enter an integer"  
© : Request "Integer",n  
Ê :EndDlog  
Ë :expr(n)!n  
:0!temp:0!I  
Ì :Loop  
© : temp+i!temp  
© : i+1!I  
© : If i>n  
© :  
Exit  
Ì :EndLoop  
Í :Dialog  
© : Title "The answer is"  
© : Text string(temp)  
Í :EndDlog  
ê :EndPrgm  
Ê Defines a dialog box for input.  
Ë Converts string entered with Request to an expression.  
Ì Loop calculation.  
Í Defines a dialog box for output.  
Programming  
639  
Example 4  
This example uses built-in functions to calculate the result without using a loop.  
:prog4()  
:Prgm  
Ê :Input "Enter an integer",n  
Ë :sum(seq(i,i,1,n))!temp  
Ì :Disp temp  
:EndPrgm  
Ê Prompts for input on Program I/O.  
Ë Calculates sum.  
Ì Displays output on Program I/O screen.  
Note: Because Input returns nas a number, you do not need to use expr to convert n.  
Function  
seq  
Used in this example to:  
Generate the sequence of integers from 1 to n.  
seq(expression, var, low, high [,step])  
Ê
Ë
Ì
Ì
Í
Ê expression used to generate the sequence  
Ë variable that will be incremented  
Ì initial and final values of var  
Í increment for var ; if omitted, uses 1  
sum  
Sum the integers in the list generated by seq.  
Programming  
640  
 
Assembly-Language Programs  
You can run programs written for the TI-89 Titanium in assembly language. Typically,  
assembly-language programs run much faster and provide greater control than the  
keystroke programs that you write with the built-in Program Editor.  
Where to Get Assembly-Language Programs  
Assembly-language programs, as well as keystroke programs, are available on the  
Texas Instruments web site at education.ti.com.  
The programs available from this site provide additional functions or features that are not  
built into the TI-89 Titanium. Check the Texas Instruments web site for up-to-date  
information.  
After downloading a program from the web to your computer, use a USB cable or  
TI-GRAPH LINK™ computer-to-calculator cable and TI Connect software to send the  
program to your TI-89 Titanium.  
For Flash App installation instructions, see education.ti.com/guides.  
Note about TI-GRAPH LINK  
If you have a TI-GRAPH LINK™ computer-to-calculator cable and software for the TI-89  
or TI-92 Plus, be aware that the TI-GRAPH LINK software is not compatible with the  
TI-89 Titanium. The cable, however, works with all units. Use TI Connect software on  
your computer.  
Programming  
641  
You can purchase computer-to-calculator and unit-to-unit cables from the TI Online  
Running an Assembly-Language Program  
After a TI-89 Titanium assembly-language program is stored on your unit, you can run  
the program from the Home screen just as you would any other program.  
If the program requires one or more arguments, type them within the ( ). Refer to the  
program’s documentation to find out about required arguments.  
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.  
Shortcuts to Run a Program  
On the Home screen, you can use keyboard shortcuts to run up to six user-defined or  
assembly-language programs. However, the programs must have the following names.  
On Home screen, press:  
To run a program, if any, named:  
kbdprgm1( )  
8 1  
©
©
kbdprgm6( )  
8 6  
Programming  
642  
The programs must be stored in the MAINfolder. Also, you cannot use a shortcut to run a  
program that requires an argument.  
If you have a program with a different name and you would like to run it with a keyboard  
shortcut, copy or rename the existing program to kbdprgm1( ), etc.  
You Cannot Edit an Assembly-Language Program  
You cannot use your TI-89 Titanium to edit an assembly-language program. The built-in  
Program Editor will not open assembly-language programs.  
Displaying a List of Assembly-Language Programs  
To list the assembly-language programs stored in memory:  
1. Display the VAR-LINK screen (2 °).  
2. Press View.  
3. Select the applicable folder (or All folders)  
and set Var Type = Assembly.  
4. Press ¸ to display the list of  
assembly-language programs.  
Note: Assembly-language programs have an ASMdata type.  
Programming  
643  
For Information about Writing an Assembly-Language Program  
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 Titanium features.  
The graphing calculator 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.  
Note: You must use a 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.  
Programming  
644  
 
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.  
Starting a New Session  
1. Press O and then select the Text  
Editor icon. Press ¸.  
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  
Folder  
Automatically set as Text and cannot be changed.  
Shows the folder in which the text variable will be stored.  
For information about folders, refer to the Calculator Home  
Screen module.  
To use a different folder, press B to display a menu of  
existing folders. Then select a folder.  
Text Editor  
645  
Item  
Description  
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.  
A colon marks the beginning  
of a paragraph.  
The blinking cursor shows  
where typed text will appear.  
You can now use the Text Editor as described in the remaining sections of this  
module.  
Note: Your session is saved automatically as you type. You do not need to save a  
session manually before leaving the Text Editor, starting a new session, or opening a  
previous one.  
Resuming the Current Session  
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, launch Text Editor again and  
select 1:Current.  
Text Editor  
646  
Starting a New Session from the Text Editor  
To leave the current Text Editor session and  
start a new one:  
1. Press ƒ and select 3:New.  
2. Specify a folder and text variable for the  
new session.  
3. Press ¸ twice.  
Opening a Previous Session  
You can open a previous Text Editor session at any time.  
1. From within the Text Editor, press ƒ and select 1:Open.  
— or —  
From any application, launch Text Editor again and select 2:Open.  
2. Select the applicable folder and text  
variable.  
3. Press ¸.  
Note: By default, Variable shows the first existing text variable in alphabetic order.  
Text Editor  
647  
Copying a Session  
In some cases, you may want to copy a session so that you can edit the copy while  
retaining the original.  
1. Display the session you want to copy.  
2. Press ƒ and select 2:Save Copy As.  
3. Specify the folder and text variable for the copied session.  
4. Press ¸ twice.  
Note about Deleting a Session  
Because all Text Editor sessions are saved automatically, you can accumulate quite a  
few previous sessions, which take up memory storage space.  
To delete a session, use the VAR-LINK screen (2 °) to delete that session’s  
text variable. For information about VAR-LINK, refer to Memory and Variable  
Management.  
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.  
Text Editor  
648  
Typing Text  
When you create a new Text Editor session, you see an empty screen. When you open a  
previous session or return to the current session, you see the existing text for that  
session.  
All text paragraphs begin  
with a space and a colon.  
The beginning space is  
used in command scripts  
and lab reports.  
Blinking text cursor  
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.  
As you reach the bottom of the screen, previous lines scroll off the top of the screen.  
Using a USB cable and TI Connect™ software with the TI-89 Titanium, you can use the  
computer keyboard to type a text file and then send that file to the TI-89 Titanium. This is  
useful if you need to create a lengthy text file.  
For information about obtaining cables or updated TI Connect™ software, check the TI  
web site at education.ti.com, or contact Texas Instruments at TI-Cares™.  
Notes:  
Use the cursor pad to scroll through a session or position the text cursor.  
Text Editor  
649  
 
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.  
Typing Alphabetic Characters  
To:  
Press:  
Type a single  
lowercase alpha  
character.  
@
j and then the letter key (status line shows  
)
Type a single  
uppercase alpha  
character.  
@
¤ and then the letter key (status line shows +)  
Type a space.  
@
@
j (alpha function of the ?·key)  
Turn on  
lowercase alpha-  
lock.  
2 (status line shows  
)
Turn on  
uppercase  
ALPHA-lock.  
@
@
¤ (status line shows  
)
Turn off alpha-  
lock.  
j (turns off upper- and lowercase lock)  
Note: On the TI-89 Titanium, 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. On the TI-89 Titanium,  
alpha-lock is always turned off when you change applications, such as going from the  
Text Editor to the Home screen.  
Text Editor  
650  
On the TI-89 Titanium, while either type of alpha-lock is on:  
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  
The character to the right of the cursor  
0 or , 7  
¥ 8 (same as ¥ 0)  
M
All characters to the right of the cursor  
through the end of the paragraph  
All characters in the paragraph (regardless  
of the cursor’s position in that paragraph)  
M M  
Note: If there are no characters to the right of the cursor, M erases the entire  
paragraph.  
Text Editor  
651  
 
Highlighting Text  
To:  
Do this:  
Highlight text  
Move the cursor to the beginning or end of the text.  
Hold ¤ and press:  
A or B to highlight characters to the left or right of the  
cursor, respectively.  
D or C to highlight all characters up to the cursor  
position on the next or previous line, respectively.  
Note: To remove highlighting without replacing or deleting, move the cursor.  
Replacing or Deleting Highlighted Text  
To:  
Replace highlighted text Type the new text.  
Delete highlighted text  
Do this:  
Press 0.  
Text Editor  
652  
 
Cutting, Copying, and Pasting Text  
Cutting and copying both place highlighted text into the clipboard of the TI-89 Titanium.  
Cutting deletes the text from its current location (used to move text) and copying leaves  
the text.  
1. Highlight the text you want to move or copy.  
2. Press ƒ.  
3. Select the applicable menu item.  
To move the text, select 4:Cut.  
— or —  
To copy the text, select 5:Copy.  
Note: You can press:  
@
¹ 5, ¹ 6, ¹ 7  
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.  
Text Editor  
653  
Finding Text  
From the Text Editor:  
1. Place the text cursor at any location preceding the text you want to search for. All  
searches start at the current cursor location.  
2. Press .  
3. Type the search text.  
The search is not case sensitive. For  
example: CASE, case, and Case have  
the same effect.  
Note: The FIND dialog box retains the last  
search text you entered. You can type  
over it or edit it.  
4. Press ¸ twice.  
If the search text is:  
Found  
The cursor:  
Moves to beginning of the search text.  
Does not move.  
Not found  
Text Editor  
654  
 
Inserting or Overtyping a Character  
By default, the TI-89 Titanium is in insert mode. To toggle between insert and overtype  
mode, press 2 /.  
If the TI-89 Titanium is in:  
The next character you type:  
Will be inserted at the cursor.  
Thin cursor between  
characters  
Will replace the highlighted  
character.  
Cursor highlights a  
character  
Note: Look at the shape of the cursor to see if you’re in insert or overtype mode.  
Clearing the Text Editor  
To erase all existing paragraphs and display an empty text screen, press ƒ and then  
select 8:Clear Editor.  
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.  
Text Editor  
655  
     
Selecting Characters from the CHAR Menu  
1. Press 2 G.  
2. Select the applicable category.  
A menu lists the characters in that  
category.  
$ indicates that  
you can scroll.  
3. Select a character. You may need to scroll  
through the menu.  
Note: For accented characters, select  
International. Commonly used  
international characters are also available  
from the default custom menu  
(2 ¾).  
Displaying the Keyboard Map  
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.  
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.  
To access the shortcuts, first press the 2 key. Some special characters are marked on  
the keyboard, but most are not.  
On the TI-89 Titanium:  
Press ¹ ^ to display the keyboard map.  
Text Editor  
656  
     
Press N to exit the map.  
TI-89 Titanium Keyboard map  
To access the TI-89 Titanium shortcuts, first press the ¹ key.  
TI-89 Titanium keyboard map feature shortcuts:  
GREEK (¹ c) — Accesses the Greek character set (described later in this  
section).  
SYSDATA (¹ b) — Copies the current graph coordinates to the system variable  
sysdata.  
FMT (¹ Í) — Displays the FORMATS dialog box.  
KBDPRGM1 – 6(¹ 1 through ¹ 6) — If you have user-defined or assembly-  
language programs named kbdprgm1() through kbdprgm6(), 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 Titanium on again, it will be exactly as you left it.  
Text Editor  
657  
   
HOMEDATA (¹ ?) — Copies the current graph coordinates to the Home screen’s  
history area.  
Typing Special Symbols from the Keyboard  
Note: To help you find the applicable keys, these maps show only the special symbols.  
On the TI-89 Titanium:  
f Press ¹ and then the key for the symbol. For example: ¹ p (times) displays &.  
These special symbols are not affected by whether Alpha-Lock is on or off.  
Typing Greek Letters from the Keyboard  
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.  
Text Editor  
658  
On the TI-89 Titanium:  
f Press ¹ c to access the Greek character set.  
ξ
ψ
ζ
τ
X
Y
Z
T
β
B
α
A
ε
E
δ
C
H
D
I
Γ
γ
φ
F
G
J
O
U
µ
M
λ
L
K
N
Σ
Π
ρ
R
σ
π
P
V
Q
S
ω
W
Note: If you press a key combination that does not access a Greek letter, you get the  
normal letter for that key. Your calculator does not display a map of Greek letters; the  
map shown here is for reference only.  
Several keys let you access lowercase and uppercase Greek letters. For example:  
On the TI-89 Titanium:  
Press ¹ c to access the Greek character set.  
Press ¹ c j + letter to access lowercase Greek letters. Example:  
¹ c j [W] displays ω  
Text Editor  
659  
Press ¹ c 7 + letter to access uppercase Greek letters. Example:  
¹ c 7 [W] displays Ω  
The exact keys that you press on the TI-89 Titanium depend on whether alpha-lock is on  
or off. For example:  
On the TI-89 Titanium, 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 7 W displays .  
(7 is used for uppercase letters.)  
Lowercase alpha-lock  
(2 ) is on.  
¹ c X displays ξ.  
¹ c W displays ω.  
¹ c 7 W displays .  
Uppercase ALPHA-LOCK  
(7 ) is on.  
¹ c X displays ξ.  
¹ c W displays .  
¹ c 7 W displays .  
Important: If you press j on the TI-89 Titanium to access a Greek letter while alpha-  
lock is on, it turns alpha-lock off.  
For a List of All Special Characters  
For a list of all special characters, refer to the Technical Reference module.  
Text Editor  
660  
   
Entering and Executing a Command Script  
By using a command script, you can use the Text Editor to type a series of command  
lines that can be executed at any time on the Home screen. This lets you create  
interactive example scripts in which you predefine a series of commands and then  
execute them individually.  
Inserting a Command Mark  
In the Text Editor:  
1. Place the cursor on the line for the  
command.  
2. Press to display the Command toolbar  
menu.  
3. Select 1:Command.  
C is displayed at the beginning of the text  
line (to the left of the colon).  
Note: This does not insert a new line for  
the command, it simply marks an existing  
line as a command line.  
Text Editor  
661  
4. Type a command just as you would on the  
Home screen.  
The line can contain only the command,  
with no additional text.  
Note: You can mark a line as a command  
either before or after typing the command  
on that line.  
You can type multiple commands on the same line if you type a colon to separate the  
commands.  
Deleting a Command Mark  
This deletes only the C mark; it does not delete the command text itself.  
1. Place the cursor anywhere on the marked line.  
2. Press and select 4:Clear command.  
Executing a 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.  
1. Place the cursor anywhere on the command line.  
2. Press .  
Text Editor  
662  
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.  
After execution, the cursor moves to the next line in the script so that you can continue to  
execute a series of commands.  
Note: To examine the result on the Home screen, use a split screen or press @  
"
Splitting the Text Editor/ Home Screen  
With a split screen, you can view your command script and see the result of an executed  
command at the same time.  
To:  
Press:  
Split the screen  
and select  
1:Script view.  
Return to a full screen  
Text Editor  
and select  
2:Clear split.  
You can also use 3 to set up a split screen manually. However, sets up a Text  
Editor/Home screen split much easier than 3.  
The active application is indicated by a thick border. (By default, the Text Editor is  
the active application.)  
To switch between the Text Editor and the Home screen, press 2 a (second  
function of O).  
Text Editor  
663  
 
Creating a Script from Your Home Screen Entries  
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.  
For information, refer to “Saving the Home Screen Entries as a Text Editor Script” in the  
Calculator Home Screen module.  
Text Editor  
664  
Example  
1. Type your script. Press and select  
1:Command to mark the command lines.  
2. Press and select 1:Script view.  
3. Move the cursor to the first 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 command.  
Note: In this example, the Graph  
command displays the Graph screen in  
place of the Home screen.  
6. Press and select 2:Clear split to return  
to a full screen Text Editor.  
Text Editor  
665  
 
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.  
Displaying the Numeric Solver  
To display the Numeric Solver, press O  
and then select the Numeric Solver icon.  
Press ¸.  
The Numeric Solver screen shows the last  
entered equation, if any.  
Entering an Equation  
On the eqn: line, type in your equation.  
You can:  
For example:  
Type an equation directly.  
a=(m2Nm1)/(m2+m1)g  
a+b=c+sin(d)  
Numeric Solver  
666  
You can:  
For example:  
Refer to a function or equation  
defined elsewhere.  
Notes:  
Suppose you defined y1(x) on either  
the:  
Y= Editor:  
Do not use system function  
names (such as y1(x) or r1(q))  
as simple variables (y1 or r1).  
y1(x)=1.25xcos(x)  
– or –  
Home screen:  
Be careful with implied  
multiplication. For example,  
a(m2+m1) is treated as a  
function reference, not as  
a(m2+m1).  
Define y1(x)=1.25xcos(x)  
In the Numeric Solver, you then would  
enter:  
y1(x)=0 or y1(t)=0, etc.  
The argument does  
not have to match  
the one used to  
define the function  
or equation.  
Type an expression without an =  
sign.  
Note: When you define the  
variables, you can either define  
exp or solve for it.  
e+fNln(g)  
After you press ¸, the expression  
is set equal to a system variable called  
exp and entered as:  
exp=e+fNln(g)  
Recall a previously entered  
equation or open a saved  
equation.  
Refer to the applicable heading later in  
this section.  
Note: After you press ¸ the  
current equation is stored  
automatically to the system  
variable eqn.  
Numeric Solver  
667  
Recalling Previously Entered Equations  
Your most recently entered equations (up to 11 with the default setting) are retained in  
memory. To recall one of these equations:  
1. From the Numeric Solver screen, press à  
.  
A dialog box displays the most recently  
entered equation.  
2. Select an equation.  
To select the displayed equation,  
press ¸.  
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.  
Note: You can specify how many  
equations are retained. From the Numeric  
Solver, press , and select 9:Format (or  
use @ 8 Í). Then select a number from  
1 through 11.  
3. Press ¸.  
Numeric Solver  
668  
Saving Equations for Future Use  
Because the number of equations that you can recall with Eqns is limited, a particular  
equation may not be retained indefinitely.  
To store the current equation for future use,  
save it to a variable.  
1. From the Numeric Solver screen, press  
, and select 2:Save Copy As.  
2. Specify a folder and a variable name for  
the equation.  
3. Press ¸ twice.  
Note: An equation variable has an EXPR data type, as shown on the MEMORY and  
VAR-LINK screens.  
Opening a Saved Equation  
To open a previously saved equation variable:  
1. From the Numeric Solver screen, press  
, and select 1:Open.  
Numeric Solver  
669  
 
2. Select the applicable folder and equation  
variable.  
3. Press ¸.  
Variable eqn contains  
the current equation;  
it always appears  
alphabetically in the  
list.  
Defining the Known Variables  
After you type an equation in the Numeric Solver, enter the applicable values for all  
variables except the unknown variable.  
Defining the List of Variables  
After typing your equation on the eqn: line,  
press ¸ or D.  
The screen lists the variables in the order they  
appear in the equation. If a variable is already  
The solution must be  
defined, its value is shown. You can edit these  
within the specified  
variable values.  
bounds, which you can  
edit.  
Note: If an existing variable is locked or  
archived, you cannot edit its value.  
Numeric Solver  
670  
Enter a number or expression for all variables except the one you want to solve for.  
Notes and Common Errors  
If you define a variable:  
-
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  
-
If the equation contains a variable already  
defined in terms of other variables, those  
other variables are listed.  
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 variable a was  
defined previously as  
b+c!a, then b and c  
are listed instead of a.  
Numeric Solver  
671  
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.  
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.  
Note: You cannot solve for a system  
variable other than exp. Also, if the  
equation contains a system variable, you  
cannot use to graph.  
Although you can use a system variable  
in the equation, an error occurs if you use  
to graph the solution.  
Numeric Solver  
672  
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.  
Note: This error occurs if you use a  
reserved name incorrectly or refer to an  
undefined system function as a simple  
variable without parentheses.  
Editing the Equation  
In the Numeric Solver, press C until the cursor is on the equation. The screen  
automatically changes to show only the eqn: line. Make your changes, and then press  
¸ or D to return to the list of variables.  
Specifying an Initial Guess and/or Bounds (Optional)  
To find a solution more quickly or to find a particular solution (if multiple solutions exist),  
you can optionally:  
Enter an initial guess for the unknown  
variable. The guess must be within the  
specified bounds.  
Enter lower and upper bounds close to  
the solution.  
Initial guess must be  
within the bounds.  
Numeric Solver  
673  
 
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.  
Note: You can also select an initial guess graphically.  
Solving for the Unknown Variable  
After you type an equation in the Numeric Solver and enter values for the known  
variables, you are ready to solve for the unknown variable.  
Finding the Solution  
With all known variables defined:  
1. Move the cursor to the unknown variable.  
Put the cursor on the  
variable you want to  
solve for.  
2. Press Solve.  
3. A é marks the solution and leftNrt.  
The édisappears when you edit a value,  
move the cursor to the equation, or leave  
the solver.  
Numeric Solver  
674  
 
Note: To stop (break) a calculation, press ´. The unknown variable shows the value  
being tested when the break occurred.  
Using the solution and your entered values, the left and right sides of the equation are  
evaluated separately. leftNrt 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.  
See the message:  
Press N. The unknown variable shows the  
value being tested when the error occurred.  
The leftNrt value may be small enough for  
you to accept the result.  
If not, enter a different set of bounds.  
Note: An iterative process is used to solve an equation. If the iterative process cannot  
converge on a solution, this error occurs.  
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  
Numeric Solver  
675  
see how many solutions exist and use the cursor to select an accurate initial guess and  
bounds.  
Displaying the Graph  
In the Numeric Solver, leave the cursor on the  
unknown variable. Press and select:  
1:Graph View  
Graph View uses the  
current Window  
variable values.  
– or –  
3:ZoomStd  
– or –  
4:ZoomFit  
For information about  
ZoomStd and  
ZoomFit, refer to  
Basic Function  
Graphing.  
The graph is shown in a split screen, where:  
The unknown variable is plotted on the x  
axis.  
leftNrt is plotted on the y axis.  
The current graph  
format settings are  
used.  
Solutions for the equation exist at leftNrt=0,  
where the graph crosses the x axis.  
Note: For more information, refer to the Split  
Screens module.  
Numeric Solver  
676  
 
You can explore the graph by using the free-moving cursor, tracing, zooming, etc., as  
described in Basic Function Graphing.  
How the Graph Affects Various Settings  
When you use the Numeric Solver to display a graph:  
The following modes are changed automatically to these settings:  
Mode  
Setting  
Graph  
FUNCTION  
Any functions selected in the  
Y= Editor will not be graphed.  
Split Screen  
LEFT-RIGHT  
1
Number of Graphs  
Note: If you were previously using different mode settings, you will need to reselect  
those settings manually.  
All stat plots are deselected.  
After you leave the Numeric Solver, the Graph screen may continue to display the  
equation’s solution, ignoring any selected Y= functions. If so, display the Y= Editor  
and then return to the Graph screen. Also, the graph is reset when you change the  
Graph mode or use ClrGraph from the Home screen (5) or a program.  
Numeric Solver  
677  
Selecting a New Initial Guess from the Graph  
To use the graph cursor to select an initial guess:  
1. Move the cursor (either free-moving or trace) to the point that you want to use as the  
new guess.  
2. Use 2 a to make the Numeric  
Solver screen active.  
3. Make sure the cursor is on the  
unknown variable, and press .  
Note: Cursor coordinate xc is the  
sets the graph  
cursor’s xc value as  
an initial guess and  
the yc value as leftNrt.  
The graph’s xmin and  
xmax values are set  
as the bounds.  
unknown variable value, and yc is the  
leftNrt value.  
4. Press to re-solve the equation.  
Returning to a Full Screen  
From the split screen:  
To display the Numeric Solver full screen, use 2 a to make the solver screen  
active, press , and then select 2:Clear Graph View.  
– or –  
To display the Home screen, press 2 K twice.  
Numeric Solver  
678  
Clearing Variables Before Leaving the Numeric Solver  
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:  
1. Press:  
@
2 ˆ  
to clear all single-character variables in the current folder.  
2. Press ¸ to confirm the action.  
The screen returns to the solver’s eqn: line.  
Note: Any time you want to clear single-character variables listed in the solver, use:  
@ 2 ˆ.  
Numeric Solver  
679  
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.  
Entering a Binary or Hexadecimal Number  
To enter a binary number, use the form:  
0b binaryNumber  
(for example: 0b11100110)  
Binary number with up to 32 digits  
Zero, not the letter O, and the letter b  
To enter a hexadecimal number, use the form:  
0h hexadecimalNumber  
(for example: 0h89F2C)  
Hexadecimal number with up to 8 digits  
Zero, not the letter O, and the letter h  
Note: You can type the b or h in the prefix, as well as hex characters A – F, in uppercase  
or lowercase.  
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.  
Number Bases  
680  
 
Converting between Number Bases  
Use the 4 conversion operator  
integerExpression 4 Bin  
integerExpression 4 Dec  
integerExpression 4 Hex  
For 4, press 2 4. Also, you can  
select base conversions from the  
MATH/Base menu.  
For example, to convert 256 from decimal to  
binary:  
For a binary or hex  
entry, you must use  
the 0b or 0h prefix.  
256 4 Bin  
Note: If your entry is not an integer, a Domain  
error is displayed.  
Results use the 0b or  
0h prefix to identify.  
To convert 101110 from binary to  
hexadecimal:  
0b101110 4 Hex  
Alternate Method for Conversions  
Instead of using 4, you can:  
If Base mode = BIN:  
1. Use 3 to set the Base mode to the  
base that you want to convert to.  
Number Bases  
681  
2. From the Home screen, type the number  
that you want to convert (using the correct  
prefix) and press ¸.  
If Base mode = HEX:  
Performing Math Operations with Hex or Bin  
Numbers  
For any operation that uses an integer number, you can enter a hexadecimal or binary  
number. Results are displayed according to the Base mode. However, results are  
restricted to certain size limits when Base = HEX or BIN.  
Setting the Base Mode for Displayed Results  
1. Press 3 „ to display 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.  
Number Bases  
682  
 
The Base mode controls the displayed format  
of integer results only.  
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.  
0h prefix in result  
identifies the base.  
Fractional and floating-point results are  
always shown in decimal form.  
Dividing When Base = HEX or BIN  
When Base=HEX or BIN, a division result is  
displayed in hexadecimal or binary form  
only if the result is an integer.  
If Base mode = HEX:  
To ensure that division always produces an  
integer, use intDiv( ) instead of e.  
Press 8 ¸ to  
display the result in  
APPROXIMATE form.  
Number Bases  
683  
 
Size Limitations When Base = HEX or BIN  
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):  
0hFFFFFFFF  
0h1  
1
L1  
0h80000000  
‘L2,147,483,648  
0h7FFFFFFF  
2,147,483,647  
0h0  
0
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.  
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.  
Returns the two’s complement, which is the  
one’s complement + 1.  
? integer  
Number Bases  
684  
     
Operator with syntax  
Description  
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.  
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.  
Note: You can select these operators from the MATH/Base menu. For an example using  
each operator, refer to the Technical Reference module.  
Suppose you enter:  
If Base mode = HEX:  
0h7AC36 and 0h3D5F  
Internally, the hexadecimal integers are  
If Base mode = BIN:  
converted to a signed, 32-bit binary number.  
Then corresponding bits are compared.  
Number Bases  
685  
 
0h7AC36 = 0b00000000000001111010110000110110  
and  
and  
0h3D5F  
0b00000000000000000011110101011111  
0b00000000000000000010110000010110 = 0h2C16  
Leading zeros are not shown in the result.  
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.  
The result is displayed according to the Base mode.  
Rotating and Shifting Bits  
Function with syntax  
Description  
rotate(integer)  
– or –  
rotate(integer,#ofRotations)  
If #ofRotations is:  
omitted — bits rotate once to the right  
(default is L1).  
negative — bits rotate the specified  
number of times to the right.  
positive — bits rotate the specified number  
of times to the left.  
In a right rotation, the rightmost bit rotates to  
the leftmost bit; vice versa for a left rotation.  
Number Bases  
686  
 
Function with syntax  
Description  
shift(integer)  
– or –  
shift(integer,#ofShifts)  
If #ofShifts is:  
omitted — bits shift once to the right  
(default is L1).  
negative — bits shift the specified number  
of times to the right.  
positive — bits shift the specified number  
of times to the left.  
In a right shift, the rightmost bit is dropped  
and 0 or 1 is inserted to match the leftmost  
bit. In a left shift, the leftmost bit is dropped  
and 0 is inserted as the rightmost bit.  
Suppose you enter:  
If Base mode = HEX:  
shift(0h7AC36)  
Internally, the hexadecimal integer is  
converted to a signed, 32-bit binary number.  
If Base mode = BIN:  
Then the shift is applied to the binary number.  
Number Bases  
687  
Each bit shifts to the right.  
7AC36 = 0b00000000000001111010110000110110  
Dropped  
Inserts 0 if leftmost bit is 0,  
or 1 if leftmost bit is 1  
b00000000000000111101011000011011 = 0h3D61B  
Leading zeros are not shown in the result.  
The result is displayed according to the Base mode.  
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.  
Number Bases  
688  
 
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.  
Displaying the MEMORY Screen  
Press 2 ;. (The numbers on your MEMORY screen may vary from those shown.)  
Prgm/Asn: Includes programs written for the TI-89 Titanium as well as any assembly-language  
programs you have loaded.  
History: Size of history pairs saved in the Home screen’s history area.  
FlashApp: Size of Flash applications.  
RAM free: Free space in RAM.  
Flash ROM free: Free space in Flash ROM.  
Note: To display the size of individual variables and determine if they are in the user data  
archive, use the VAR-LINK screen.  
To close the screen, press ¸. To reset the memory, use the following procedure.  
Memory and Variable Management  
689  
 
Resetting the Memory  
From the MEMORY screen:  
1. Press ƒ.  
2. Select the applicable item.  
Item  
Description  
RAM  
1:All RAM: Resetting RAM erases all data and  
programs from RAM.  
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  
All Memory  
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.  
Resetting will delete all data, programs, and Flash  
applications from RAM and Flash ROM.  
Important: To delete individual (instead of all) variables, use VAR-LINK.  
3. When prompted for confirmation, press ¸.  
The TI-89 Titanium displays a message when the reset is complete.  
Note: To cancel the reset, press N instead of ¸.  
4. Press ¸ to acknowledge the message.  
Memory and Variable Management  
690  
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.  
Displaying the VAR-LINK Screen  
Press 2 °. By default, the VAR-LINK screen lists all user-defined variables in all  
folders and with all data types.  
Ë
Ê
Ì
Í
Î
Ê Folder names (alphabetically listed)  
Ë Shows installed Flash applications  
Ì Size in bytes  
Í Data type  
Î Variable names (alphabetically listed)  
This...  
Indicates this...  
Collapsed folder view (to right of folder name).  
4
Memory and Variable Management  
691  
This...  
Indicates this...  
Expanded folder view (to right of folder name).  
6
You can scroll for more variables and/or folders (in bottom  
left corner of screen).  
6
If selected with .  
Ÿ
Œ
û
Locked  
Archived  
To scroll through the list:  
Press D or C. (Use 2 D or 2 C to scroll one page at a time.)  
– or –  
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.  
Note: Type a letter repeatedly to cycle through the names that start with that letter.  
Memory and Variable Management  
692  
 
Variable Types as Listed on VAR-LINK  
Type  
ASM  
DATA  
EXPR  
FUNC  
GDB  
LIST  
MAT  
Description  
Assembly-language program  
Data  
Expression (includes numeric values)  
Function  
Graph database  
List  
Matrix  
PIC  
Picture of a graph  
Program  
PRGM  
STR  
String  
TEXT  
Text Editor session  
Types not listed above are miscellaneous data types used by software applications.  
Closing the VAR-LINK Screen  
To close the VAR-LINK screen and return to the current application, use ¸ or N as  
described below.  
Press:  
To:  
Paste the highlighted variable or folder name to the cursor  
location in the current application.  
¸
Memory and Variable Management  
693  
       
Press:  
To:  
Return to the current application without pasting the  
highlighted name.  
N
Displaying Information about Variables on the  
Home Screen  
From the Home screen, you can display information about variables without opening the  
VAR-LINK screen.  
To determine if a variable with a given name exists in the system table, Enter the  
IsVar() function on the Home screen.  
IsVar (var_name)  
IsVar is a function, which requires you to  
enclose the variable name in parentheses.  
To determine if a variable is archived, use the IsArchiv() function.  
IsArchiv (var_name)  
To determine if a variable is locked, use the IsLocked() function.  
IsLocked (var_name)  
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.  
Memory and Variable Management  
694  
 
Showing the Contents of a Variable  
You can show all variable types except ASM, DATA, GDB, and variables created by Flash  
Apps. For example, you must open a DATA variable in the Data/Matrix Editor.  
1. On VAR-LINK, move the cursor to highlight the variable.  
2. Press:  
2 ˆ  
If you highlight a folder, the screen shows  
the number of variables in that folder.  
3. To return to VAR-LINK, press any key.  
Note: You cannot edit the contents from this screen.  
Selecting Items from the List  
For other operations, select one or more variables and/or folders.  
To select:  
Do this:  
A single variable or  
folder  
Move the cursor to highlight the item, then press  
.  
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.  
Memory and Variable Management  
695  
 
To select:  
Do this:  
All folders and all  
variables  
Press B to expand the folder, then press All  
and select 1:Select All.  
Choosing 3:Select Current selects the last set of  
items transmitted to your unit during the current  
VAR-LINK session.  
Choosing 4:Expand All or 5:Collapse All expands  
or collapses your folders or Flash applications.  
Note: Press either A or B to toggle between expanded or collapsed view when you have  
a folder highlighted.  
Folders and Variables  
Folders give you a convenient way to manage variables by organizing them into related  
groups.  
The TI-89 Titanium has one built-in folder named MAIN. Unless you create other folders  
and designate a user-created folder as the current folder, all variables are stored in the  
MAIN folder by default. A system variable or a variable with a reserved name can be  
stored in the MAIN folder only.  
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.)  
Memory and Variable Management  
696  
By creating additional folders, you can store independent sets of user-defined variables  
(including user-defined functions). For example, you can create separate folders for  
different TI-89 Titanium applications (Math, Text Editor, etc.) or classes. You can store a  
user-defined variable in any existing folder.  
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  
System variables  
Variables  
User-defined  
a=1, b=2, c=3  
f(x)=x³+x²+x  
ALG102  
User-defined  
Name of current folder  
b=5, c=100  
f(x)=sin(x)+cos(x)  
DAVE  
User-defined  
a=3, b=1, c=2  
f(x)=x²+6  
MATH  
User-defined  
a=42, c=6  
f(x)=3x²+4x+25  
You cannot create a folder within another folder.  
Memory and Variable Management  
697  
 
The system variables in the MAIN folder are always directly accessible, regardless of the  
current folder.  
Note: User-defined variables are stored in the “current folder” unless you specify  
otherwise.  
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.  
Creating a Folder from the Home Screen  
Enter the NewFold command on the Home screen.  
NewFold folderName  
Folder name to create. This new folder is  
set automatically as the current folder.  
Memory and Variable Management  
698  
 
Setting the Current Folder from the Home Screen  
Enter the setFold function on 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.  
Setting the Current Folder from the MODE Dialog Box  
1. Press 3.  
2. Highlight the Current Folder setting.  
3. Press B to display a menu of existing  
folders.  
Note: To cancel the menu or exit the  
dialog box without saving any changes,  
press N.  
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.  
Memory and Variable Management  
699  
 
Renaming Variables or Folders  
Remember, if you use to select a folder, the variables in that folder are selected  
automatically. As necessary, use to deselect individual variables.  
1. On VAR-LINK, select the variables and/or folders.  
2. Press ƒ Manage and select 3:Rename.  
3. Type a unique name, and press ¸  
twice.  
If you selected multiple items, you are  
prompted to enter a new name for each  
one.  
Using Variables in Different Folders  
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.  
A pathname has the form:  
folderName \ variableName  
– or –  
folderName \ functionName  
Memory and Variable Management  
700  
 
For example:  
If Current Folder = MAIN  
Folders and Variables  
MAIN  
a=1  
f(x)=x³+x²+x  
MATH  
a=42  
f(x)=3x²+4x+25  
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  
open application's entry line. If you paste a variable name that is not in the current folder,  
the pathname (folderName\variableName) is pasted.  
Listing Only a Specified Folder and/or Variable Type, or Flash  
application  
If you have a lot of variables, 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.  
Memory and Variable Management  
701  
From the VAR-LINK screen:  
1. Press View.  
2. Highlight the setting you want to change,  
and press B. This displays a menu of  
valid choices. (To cancel a menu, press  
N.)  
View — Allows you to choose variables,  
Flash applications, or system variables to  
view.  
Note: To list system variables (window  
variables, etc.), select 3:System.  
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, variable type, or Flash  
application.  
Memory and Variable Management  
702  
     
Copying or Moving Variables from One Folder to Another  
You must have at least one folder other than MAIN. You cannot use VAR-LINK to copy  
variables within the same folder.  
1. On VAR-LINK, select the variables.  
2. Press ƒ Manage and select 2:Copy or 4:Move.  
3. Select the destination folder.  
4. Press ¸. The copied or moved variables retain their original names.  
Note: To copy a variable to a different name in the same folder, use 9 (such as  
a1!a2) or the CopyVar command from the Home screen.  
Locking or Unlocking Variables Folders, or Flash Applications  
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.  
1. On VAR-LINK, select the variables, folders, or Flash application.  
Memory and Variable Management  
703  
2. Press ƒ Manage and select 6:Lock or 7:UnLock.  
indicates a locked variable or folder in  
RAM.  
Œ
indicates an archived variable, which is  
locked automatically.  
û
Deleting a Folder from the VAR-LINK Screen  
When you delete a folder from the VAR-LINK screen, all of the variables in that folder are  
also deleted. You cannot delete the MAIN folder.  
1. Press 2 °.  
2. Press to select the folder(s) to delete.  
(The folder's variables become selected  
automatically.)  
3. Press ƒ 1:Delete or 0.  
4. Press ¸ to confirm the deletion of the  
folder and all its variables.  
Memory and Variable Management  
704  
   
Deleting a Variable or a Folder from the Home Screen  
Before deleting a folder from the Home screen, you must first delete all the variables  
stored in that folder.  
To delete a variable, enter the DelVar command on the calculator Home screen.  
DelVar var1 [, var2] [, var3] ...  
To delete all variables of a specific type, enter the DelType command on the  
calculator Home screen.  
DelType var_type where var_type is the variable type.  
Note: The DelType command deletes all variables of the specified type in all folders.  
To delete an empty folder, enter the DelFold command on the calculator Home  
screen.  
DelFold folder1 [, folder2] [, folder3] ...  
Note: You cannot delete the MAIN folder.  
Pasting a Variable Name to an Application  
Suppose you are typing an expression on the Home screen and can’t remember which  
variable to use. You can display the VAR-LINK screen, select a variable from the list, and  
paste that variable name directly onto the Home screen’s entry line.  
Which Applications Can You Use?  
From the following applications, you can paste a variable name to the current cursor  
location.  
Memory and Variable Management  
705  
 
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.  
You can also paste a variable name to the current cursor location in many Flash  
applications.  
Procedure  
Starting from an application listed above:  
1. Position the cursor where you want to  
insert the variable name.  
sin(|  
2. Press 2 °.  
3. Highlight the applicable variable.  
Note: You can also highlight and paste  
folder names.  
4. Press ¸ to paste the variable name.  
sin(a1|  
Note: This pastes the variable’s name, not  
its contents. Use 2 £, instead of  
2 °, to recall a variable’s  
contents.  
5. Finish typing the expression.  
Memory and Variable Management  
sin(a1)|  
706  
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.  
Archiving and Unarchiving a Variable  
To archive or unarchive one or more variables interactively, use the VAR-LINK screen.  
You can also perform these operations from the Home screen or a program.  
Why Would You Want to Archive a Variable?  
The user data archive lets you:  
Store data, programs, or any other variables to a safe location where they cannot be  
edited or deleted inadvertently.  
Create additional free RAM by archiving variables. For example:  
-
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.  
Note: You cannot archive variables with reserved names or system variables.  
-
If you acquire additional programs for your TI-89 Titanium, particularly if they are  
large, you may need to create additional free RAM before you can install those  
programs.  
Memory and Variable Management  
707  
   
Additional free RAM can improve performance times for certain types of calculations.  
From the VAR-LINK Screen  
To archive or unarchive:  
1. Press 2 ° to display the VAR-LINK screen.  
2. Select one or more variables, which can be in different folders. (You can select an  
entire folder by selecting the folder name.)  
Note: To select a single variable, highlight it. To select multiple variables, highlight  
each variable and press Ÿ.  
3. Press ƒ and select either:  
8:Archive Variable  
– or –  
9:Unarchive Variable  
If you select 8:Archive Variable, the variables  
are moved to the user data archive.  
û = archived variables  
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.  
Note: An archived variable is locked automatically. You can access the variable, but you  
cannot edit or delete it.  
Memory and Variable Management  
708  
   
From the Home Screen or a Program  
Use the Archive and Unarchiv commands:  
Archive variable1, variable2, …  
Unarchiv variable1, variable2, …  
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 Titanium will attempt to rearrange the archived  
variables to make additional room.  
Responding to the Garbage Collection Message  
When you see the message to the right:  
To continue archiving, press ¸.  
– or –  
To cancel, press N.  
Note: If batteries are low, replace them before performing garbage collection, or archive  
memory may be lost.  
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.  
Memory and Variable Management  
709  
 
Why not Perform Garbage Collection Automatically, without a  
Message?  
The message:  
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.  
Can alert you when a program is caught in a loop that repetitively fills the user data  
archive. Cancel the archive and investigate the reason.  
Why Is Garbage Collection Necessary?  
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.  
Each variable that you archive is stored in the first empty block large enough to hold it.  
Note: An archived variable is stored in a continuous block within a single sector; it cannot  
cross a sector boundary.  
Memory and Variable Management  
710  
 
Sector 1  
variable A  
variable B  
Empty  
block  
variable C  
variable D  
Sector 2  
Sector 3  
Depending on its  
size, variable D is  
stored in one of  
these locations.  
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.  
Note: Garbage collection occurs when the variable you are archiving is larger than any  
empty block.  
How Unarchiving a Variable Affects the Process  
When you unarchive a variable, it is copied to RAM but it is not actually deleted from  
user data archive memory.  
Memory and Variable Management  
711  
 
Sector 1  
v
a
r
i
a
b
l
e
A
After you unarchive  
variables B and C, they  
continue to take up  
space.  
Sector 2  
Sector 3  
v
a
r
i
a
b
l
e
D
Unarchived variables are “marked for deletion,” meaning they will be deleted during the  
next garbage collection.  
If the MEMORY Screen Shows Enough Free Space  
Even if the MEMORY screen shows enough free space to archive a variable, you may still  
get a Garbage Collection message.  
This TI-89 Titanium memory screen shows  
free space that will be available after all  
“marked for deletion” variables are deleted.  
When you unarchive a variable, the Flash  
ROM free amount increases immediately, but  
the space is not actually available until after  
the next garbage collection.  
Memory and Variable Management  
712  
   
The Garbage Collection Process  
The garbage collection process:  
Deletes unarchived variables from the user data archive.  
Rearranges the remaining variables into consecutive blocks.  
Sector 1  
v a r ia b le  
v a r ia b le  
A
D
Sector 2  
Memory Error When Accessing an Archived  
Variable  
An archived variable is treated the same as a locked variable. You can access the  
variable, but you cannot edit or delete it. In some cases, however, you may get a Memory  
Error when you try to access an archived variable.  
What Causes the Memory Error?  
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.  
Memory and Variable Management  
713  
 
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.  
Note: A temporary copy lets you open or execute an archived variable. However, you  
cannot save any changes to the variable.  
So that you do not have to unarchive variables unnecessarily, the TI-89 Titanium  
performs a “behind-the scenes” copy. For example, if you run a program that is in the  
user data archive, the TI-89 Titanium:  
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.  
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.  
Correcting the Error  
To free up enough RAM to access the variable:  
1. Use the VAR-LINK screen (2 °) to determine the size of the archived  
variable that you want to access.  
2. Use the MEMORY screen (2 ;) to check the RAM free size.  
Memory and Variable Management  
714  
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).  
Note: Typically, the RAM free size must be larger than the archived variable.  
Memory and Variable Management  
715  
   
Connectivity  
Connecting Two Units  
The TI-89 Titanium comes with a cable that lets you connect two units. Once connected,  
you can transmit information between two units. A USB unit-to-unit cable is included with  
the TI-89 Titanium; use the calculator’s USB port with this cable.  
Note: The TI-89 Titanium features both a USB port and an I/O port, so you can connect  
TI graphing calculators with either type of link port. However, using the I/O port requires  
the I/O unit-to-unit cable (sold separately) or the USB Silver Edition cable (also sold  
separately), which is used to connect to a computer.  
Connecting before Sending or Receiving  
Using firm pressure, insert one end of the cable into the link port of each unit. Either unit  
can send or receive, depending on how you set them up from the VAR-LINK screen.  
You can link a TI-89 Titanium or Voyage™ 200 to another TI-89 Titanium, Voyage™ 200,  
TI-89, or TI-92 Plus.  
Connectivity  
716  
USB unit-to-unit cable  
USB Port  
USB Port  
Two TI-89 Titanium calculators linked together  
USB unit-to-unit  
cable  
Position so that the USB symbols face each other; then insert the connector.  
Connectivity  
717  
 
I/O unit-to-unit  
cable  
I/O Port  
I/O Port  
A TI-89 Titanium and a Voyage™ 200 linked together  
Connectivity  
718  
 
I/O unit-to-unit  
cable  
I/O Port  
TI-89  
I/O Port  
A TI-89 Titanium and a TI-89 linked together  
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 (Apps) and  
folders.  
Connectivity  
719  
 
Setting Up the Units  
Flash applications will transfer only between certain units. For example, you can transfer  
an App from a TI-89 Titanium to another TI-89 Titanium, or from a TI-89 Titanium to a TI-  
89.  
1. Connect two graphing calculators using  
the appropriate cable.  
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.  
To select a single variable, Flash  
application, or folder, move the cursor  
to highlight it and press to place a  
checkmark (Ÿ) beside it.  
-
If on the default VAR-LINK screen,  
this selects the folder and its  
contents. Collapsed folders  
become expanded when  
selected.  
Connectivity  
720  
 
-
If selecting a Flash App (from the  
F7 tab), this selects the App  
folder and its contents. A  
checkmark appears beside the  
folder, but not beside the  
contents. Collapsed Flash App  
folders do not automatically  
become expanded.  
To select multiple variables, Flash  
applications, or folders, highlight each  
one and press to place a  
checkmark (Ÿ) beside it. Use †  
again to deselect any that you do not  
want to transmit.  
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.)  
Connectivity  
721  
 
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 1:Send  
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.  
Note: Before transferring a purchased App, the receiving unit must have the appropriate  
certificate, if required. A certificate is a file that is generated by TI. Free and concept  
Apps do not require a certificate.  
Rules for Transmitting Variables, Flash Applications, or Folders  
Unlocked and unarchived variables that have the same name on both the sending and  
receiving units will be overwritten from the sending unit.  
Connectivity  
722  
 
Locked variables that have the same name on both the sending and receiving units must  
be unlocked on the receiving unit before they can be overwritten from the sending unit. If  
archived variables have the same names on both the sending and receiving units, a  
message asks you to confirm that you will allow the variables to be overwritten.  
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  
Archived variable  
The variable is transmitted to the current folder and  
it remains locked on the receiving unit.  
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.  
The folder and its selected contents are  
transmitted. The folder becomes unlocked on the  
receiving unit.  
Connectivity  
723  
   
Canceling a Transmission  
From either the sending or receiving unit:  
1. Press ´.  
An error message is displayed.  
2. Press N or ¸.  
Common Error and Notification Messages  
Shown on:  
Message and Description:  
Sending unit  
This is displayed after several seconds if:  
A cable is not attached to the sending unit’s link 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 N or ¸ to cancel the transmission.  
Note: The sending unit may not always display this  
message. Instead, it may remain BUSY until you  
cancel the transmission.  
Connectivity  
724  
Shown on:  
Message and Description:  
Sending unit  
The receiving unit does not have the correct  
certification for the operating system (OS) 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.  
Connectivity  
725  
 
Shown on:  
Message and Description:  
Receiving unit  
The receiving unit does not have enough memory for  
what is being sent. Press N or ¸ to cancel the  
transmission.  
Deleting Variables, Flash Applications, or Folders  
1. Press 2 ° to display the VAR-LINK screen.  
2. Select the variables, folders, or Flash applications to delete.  
To select a single variable, Flash application, or folder, move the cursor to  
highlight it and press to place a checkmark (Ÿ) beside it.  
-
If on the default VAR-LINK screen, this selects the folder and its contents.  
Collapsed folders become expanded when selected.  
-
If selecting a Flash App (from the F7 tab), this selects the App folder and its  
contents. A checkmark appears beside the folder, but not beside the  
contents. Collapsed Flash App folders do not automatically become  
expanded.  
Note: You cannot delete the Main folder.  
To select multiple variables, Flash applications, or folders highlight each one and  
press to place a checkmark (Ÿ) beside it. Use again to deselect any that  
you do not want to transmit.  
To select all variables, Flash applications, or folders use All 1:Select All.  
Connectivity  
726  
   
3. Press ƒ and choose 1:Delete.  
– or –  
Press 0. A confirmation message appears.  
4. Press ¸ to confirm the deletion.  
Where to Get Flash Applications (Apps)  
For up-to-date information about available Flash applications, check the Texas  
Instruments Web site at education.ti.com.  
Many Apps no longer require a certificate. If you try to transfer an App from one unit to  
another and receive an Unlicensed OS or Flash application message, try downloading the  
App again from the Texas Instruments Web site at education.ti.com.  
You can download a Flash application and/or certificate from the Texas Instruments Web  
site to a computer, and use a TI Connectivity Cable USB to install the application or  
certificate on your TI-89 Titanium.  
For Flash App installation instructions, see education.ti.com/guides.  
Transmitting Variables under Program Control  
You can use a program containing GetCalc and SendCalc to transmit a variable from one  
device to another.  
SendCalc sends a variable to the link port, where a linked device can receive the  
variable. The linked device must be on the Home screen or must execute GetCalc from a  
program.  
Connectivity  
727  
   
You can use optional parameters with the SendCalc or GetCalc command to specify  
either the USB port or I/O port. (See Appendix A for details.) If you do not include these  
parameters, the TI-89 Titanium communicates through the USB port.  
The “Chat” Program  
The following program uses GetCalc and SendCalc. The program sets up two loops that  
let the linked devices take turns sending and receiving/displaying a variable named msg.  
InputStr lets each user enter a message in the msg variable.  
Connectivity  
728  
: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  
:
:
:
:
GetCalc msg  
Disp msg  
InputStr msg  
SendCalc msg  
Ê
Ë
Ì
: EndWhile  
:Else  
: While true  
:
:
:
:
InputStr msg  
Í
Î
SendCalc msg  
GetCalc msg  
Disp msg  
Ï
: EndWhile  
:EndIf  
:EndPrgm  
Notes:  
Ê
Ë
Ì
Í
Î
Ï
Sets up this unit to receive and display the variable msg.  
Then lets this user enter a message in msg and send it.  
Loop executed by the unit that receives the first message.  
Lets this user enter a message in msg and send it.  
Then sets up this unit to receive and display msg.  
Loop executed by the unit that sends the first message.  
Connectivity  
729  
 
To synchronize GetCalc and SendCalc, the loops are arranged so that the receiving unit executes  
GetCalc while the sending unit is waiting for the user to enter a message.  
Running the Program  
This procedure assumes that:  
The two devices are linked with the connecting cable.  
The Chat program is loaded on both devices.  
-
Use each device’s Program Editor to enter the program.  
– or –  
-
Enter the program on one device and then use VAR-LINK to transmit the  
program variable to the other device.  
To run the program on both devices:  
1. On the Home screen of each device, enter chat( ).  
2. When each device displays its initial prompt, respond as shown below.  
On the:  
Type:  
Device that will send the first  
message.  
1 and press ¸.  
Device 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 device.  
Connectivity  
730  
   
Stopping the Program  
Because the Chat program sets up an infinite loop on both devices, press ´ (on both  
devices) 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.  
Upgrading the Operating System (OS)  
You can upgrade the OS on your TI-89 Titanium using your computer. You can also  
transfer the OS from one unit to another identical model (for example, from a TI-89  
Titanium to a TI-89 Titanium or from a Voyage™ 200 to a Voyage™ 200).  
Installing OS software resets all device memory to the original factory settings. This  
means that all user-defined variables (in both RAM and the user data archive), functions,  
programs, lists, and folders (except the Main folder) will be deleted. It is possible that  
Flash applications could also be deleted. You should use TI Connect software to back up  
your data to your computer before installing a new OS on your calculator.  
See the important information concerning batteries before performing an OS upgrade.  
Important Operating System Download Information  
New batteries should be installed before beginning an OS download.  
If you are operating your TI-89 Titanium in a language other than English, you should  
ensure that you have the most current localizer application installed when you upgrade  
the OS software. If you do not have the most current localizer installed, prompts, error  
Connectivity  
731  
 
messages and status information related to new functionality in the OS may not display  
correctly.  
When in OS download mode, the Automatic Power Down™ (APD™) feature does not  
function. If you leave your device 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.  
If you accidentally interrupt the transfer before it is complete, you will need to reinstall the  
OS. Again, remember to install new batteries before downloading.  
Backing Up Your Unit Before an Operating System Installation  
When you install an OS upgrade, the installation process:  
Deletes all user-defined variables (in both RAM and the user data archive),  
functions, programs, and folders.  
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.  
To retain any existing variables or Flash applications, do the following before installing  
the upgrade:  
Important: Install new batteries.  
Transmit the variables or Flash applications to another device.  
– or –  
Connectivity  
732  
 
Use a USB cable or TI Connectivity Cable USB and TI Connect™ software  
(education.ti.com/downloadticonnect) to send the variables and/or Flash  
applications to a computer.  
Where to Get Operating System Upgrades  
For up-to-date information about available OS upgrades, check the Texas Instruments  
You can download an OS upgrade, Localizer or Flash application from the Texas  
Instruments Web site to a computer, and use a USB computer cable to install the OS or  
application on your TI-89 Titanium.  
For complete information, refer to the instructions on the web.  
Transferring the Operating System  
OS software will transfer only from a TI-89 Titanium to a TI-89 Titanium, TI-89 to a TI-89,  
from a Voyage™ 200 to a Voyage™ 200, or from a TI-92 Plus to a TI-92 Plus.  
To transfer the Operating System (OS) from unit to unit:  
1. Link two like units together, for example, a TI-89 Titanium to a TI-89 Titanium; or a  
Voyage™ 200 to a Voyage™ 200.  
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.  
Connectivity  
733  
   
4. On the receiving unit, select 5:Receive OS.  
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 OS.  
A warning message displays. Press N to halt the process, or press ¸ to start  
the transmission.  
Important:  
For each receiving unit, remember to back up information as necessary and install  
new batteries.  
Be sure both the sending and receiving units are in the VAR-LINK screen.  
During the transfer, the receiving unit shows how the transfer is progressing. When the  
transfer is complete:  
The sending unit returns to the VAR-LINK screen.  
The receiving unit returns to either the Apps desktop or the Home screen. You may  
need to use 8 | (lighten) or 8 « (darken) to adjust the contrast.  
Do Not Attempt to Cancel an Operating System Transfer  
After the transfer starts, the receiving unit’s existing OS 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 OS upgrade.  
Connectivity  
734  
   
If You are Upgrading the Operating System on Multiple Units  
To perform an OS upgrade on multiple units, download and install the OS into one unit  
and then transfer the OS upgrade from one unit to another. This method is faster than  
installing it on each unit via a computer. OS upgrades are released free of charge and  
you do not need to obtain a certificate before you download or install them.  
Error Messages  
Most error messages are displayed on the sending unit. Depending on when the error  
occurs during the transfer process, you may see an error message on the receiving unit.  
Error Message  
Description  
The sending and receiving units are not  
connected properly, or the receiving unit is not  
set up to receive.  
The certificate on the receiving unit is not valid for  
the operating system (OS) or App on the sending  
unit. You must obtain and install a valid  
certificate.  
If the App no longer requires a certificate, you  
can download it again from the Texas  
Instruments Web site at education.ti.com and  
then install the App again on your calculator.  
An error occurred during the transfer. The current  
OS in the receiving unit is corrupted. You must  
reinstall the product software from a computer.  
Connectivity  
735  
 
Error Message  
Description  
Replace the batteries on the unit displaying this  
message.  
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 Titanium, TI-89, Voyage™ 200, or TI-92 Plus devices.  
ID Lists and Group Certificates  
The ID list feature provides a convenient way to collect device IDs for group purchase of  
commercial applications. After the IDs are collected, transmit them to Texas Instruments  
so a group certificate can be issued.  
A group certificate allows distribution of purchased software to multiple TI-89 Titanium,  
TI-89, Voyage™ 200, or TI-92 Plus units. The software can be loaded, deleted from, and  
reloaded to the devices 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.  
Collecting ID Lists  
You can use one device to collect all of the IDs, or use several collection units and then  
consolidate their ID lists onto one device.  
Connectivity  
736  
 
To send an ID number from one device to another, first connect two units by using a USB  
unit-to-unit cable or I/O unit-to-unit cable.  
Step: On the:  
Do this:  
1.  
Collecting unit  
Display the Home screen. Press:"  
(Receiving unit)  
2.  
Sending unit  
a. Press 2 ° to display the  
VAR-LINK screen.  
b. Press Link and select 6:Send ID List.  
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 device.  
3.  
Additional units  
Repeat steps 1 and 2 until all the IDs are  
collected onto one device.  
Depending on available memory in the  
collection device, it is possible to collect over  
4,000 IDs.  
Notes:  
You cannot view the ID list on the sending or collecting units.  
Connectivity  
737  
 
Each time an ID list is successfully sent from one device to another, the ID list is  
automatically deleted from the sending unit.  
If an ID is collected from a device twice, the duplicate ID is automatically deleted  
from the list.  
Clearing the ID List  
The ID list remains on the collection device after it is uploaded to the computer. You can  
then use the collection device to upload the list to other computers.  
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.  
Compatibility among the TI-89 Titanium,  
Voyage™ 200, TI-89, and TI-92 Plus  
In general, TI-89 Titanium, TI-89, Voyage™ 200, and TI-92 Plus data and programs are  
compatible with each other, with a few exceptions.  
Connectivity  
738  
Most functions of the TI-89 Titanium are compatible with the TI-89, Voyage™ 200, and  
TI-92 Plus. The TI-89 Titanium and the TI-89 are similar, except that the TI-89 Titanium  
has more memory (more room for Apps and user archive) and the TI-89 Titanium has a  
USB port. The Voyage™ 200 is the same as the TI-92 Plus except it has more memory,  
and thus more room for applications (Apps).  
All data is compatible among the TI-89 Titanium, TI-89, Voyage™ 200, and TI-92 Plus,  
but some programs written for one may not run or may not run the same on the other  
because of differences in the device’s screen sizes and keyboards and the USB port on  
the TI-89 Titanium.  
Other incompatibilites can occur because of different version the operating system. To  
download the latest version of the operating system, visit the Texas Instruments Web  
Connectivity  
739  
 
Link Transmission Table  
TI-89  
Titanium  
Voyage™ 2  
00  
To &  
From (  
TI-89  
TI-92 Plus  
TI-89  
OS  
Apps  
Variables  
Variables  
Titanium  
Apps  
Variables  
Variables  
TI-89  
Apps  
OS  
Variables  
Variables  
Variables  
Apps  
Variables  
Voyage™ 2 Variables  
Variables  
OS  
Apps  
00  
Apps  
Variables  
Variables  
TI-92 Plus Variables  
Variables  
Apps  
OS  
Variables  
Apps  
Variables  
Connectivity  
740  
 
Activities  
Analyzing the Pole-Corner Problem  
A ten-foot-wide hallway meets a five-foot-wide hallway in the corner of a building. Find  
the maximum length pole that can be moved around the corner without tilting the pole.  
Maximum Length of Pole in Hallway  
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.  
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.  
Activities  
741  
 
10  
a = w+5  
b = 10a  
w
w
a
c
5
b
1. Define the expression for side a in terms  
of w and store it in a(w).  
Note: When you want to define a function,  
use multiple character names as you  
build the definition.  
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)  
Activities  
742  
 
4. Use the zeros( ) function to compute the  
zeros of the first derivative of c(w) to find  
the minimum value of c(w).  
Note: The maximum length of the pole is  
the minimum value of c(w).  
5. Compute the exact maximum length of  
the pole.  
Enter: c (2 ±)  
6. Compute the approximate maximum  
length of the pole.  
Result: Approximately 20.8097 feet.  
Note: Use the auto-paste feature to copy  
the result from step 4 to the entry line  
inside the parentheses of c( ) and press  
8 ¸.  
Deriving the Quadratic Formula  
This activity shows you how to derive the quadratic formula:  
2
b ± b – 4ac  
--------------------------------------  
x =  
2a  
Activities  
743  
Detailed information about using the functions in this example can be found in Symbolic  
Manipulation.  
Performing Computations to Derive the Quadratic Formula  
Perform the following steps to derive the quadratic formula by completing the square of  
the generalized quadratic equation.  
1. Clear all one-character variables in the  
current folder.  
2 ˆ  
Choose 1:Clear a-z and press ¸ to  
confirm.  
2. On the Home screen, enter the  
generalized quadratic equation:  
2
ax +bx+c=0.  
3. Subtract c from both sides of the  
equation.  
2 ± | j C  
Note: This example uses the result of the  
last answer to perform computations on  
the TI-89 Titanium. This feature reduces  
keystroking and chances for error.  
Activities  
744  
   
4. Divide both sides of the equation by the  
leading coefficient a.  
Note: 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.  
2
6. Complete the square by adding ((b/a)/2)  
to both sides of the equation.  
7. Factor the result using the factor( )  
function.  
2.  
8. Multiply both sides of the equation by 4a  
Activities  
745  
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.  
Exploring a Matrix  
This activity shows you how to perform several matrix operations.  
Activities  
746  
 
Exploring a 3x3 Matrix  
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.  
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.  
3. Use rref( ) to “row reduce” matrix b:  
The result will have the identity matrix in  
the first three columns and a^L1 in the last  
three columns.  
Note: Use the cursor in the history area to  
scroll the result.  
Activities  
747  
 
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= L70/17  
Note: Use the cursor in the history area to  
scroll the result.  
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.  
Method 1: Graph Plot  
Perform the following steps to observe where the graphs of the functions y1(x)=cos(x)  
and y2(x)=sin(x) intersect.  
1. In the Y= Editor, set y1(x)=cos(x) and  
y2(x)=sin(x).  
2. In the Window Editor, set xmin=0 and  
xmax=3p.  
3. Press and select A:ZoomFit.  
Activities  
748  
 
4. Find the intersection point of the two  
functions.  
Note: Press and select 5:Intersection.  
Respond to the screen prompts to select  
the two curves, and the lower and upper  
bounds for intersection A.  
5. Note the x and y coordinates. (Repeat  
steps 4 and 5 to find the other  
intersections.)  
Method 2: Symbolic Manipulation  
Perform the following steps to solve the equation sin(x)=cos(x) with respect to x.  
1. On the Home screen, enter solve(sin(x)=  
cos(x),x).  
The solution for x is where @n1 is any  
integer.  
2. Using the ceiling( ) and floor( ) functions,  
find the ceiling and floor values for the  
intersection points as shown.  
Note: Move the cursor into the history  
area to highlight the last answer. Press  
¸ to copy the result of the general  
solution.  
Activities  
749  
 
3. Enter the general solution for x and apply  
the constraint for @n1 as shown.  
Compare the result with Method 1.  
Note: To get the with operator, press:  
Í
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 Symbolic Manipulation and 3D Graphing.  
Exploring a 3D Graph of the Surface Area of a Parallelepiped  
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.  
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)=2xy + 2v/x+2v/y  
Activities  
750  
 
2. Select the 3D Graph mode. Then enter  
the function for z1(x,y) as shown in this  
example with volume v=300.  
3. Set the Window variables to:  
eye= [60,90,0]  
x=  
y=  
z=  
[0,15,15]  
[0,15,15]  
[260,300]  
ncontour= [5]  
4. Graph the function and use Trace to go to  
the point close to the minimum value of  
the surface area function.  
Finding the Minimum Surface Area Analytically  
Perform the following steps to solve the problem analytically on the Home screen.  
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})  
Activities  
751  
   
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)  
Note: Press ¸ to obtain the exact  
result in symbolic form. Press 8 ¸ to  
obtain the approximate result in decimal  
form.  
Running a Tutorial Script Using the Text Editor  
This activity shows you how to use the Text Editor to run a tutorial script.  
Running a Tutorial Script  
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.  
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.  
Activities  
752  
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
C
C
C
C
C
: define f(x)=x^3N2x^2+xN7  
: 1!a:3.22!b  
: d(f(x),x)!df(x)  
: zeros(df(x),x)  
: f(ans(1))  
: 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.  
Activities  
753  
4. Press repeatedly to execute each line  
in the script one at a time.  
Note: Press and select 2:Clear split to  
go back to a full-sized Text Editor screen.  
5. To see the results of the script on a full-  
sized screen, go to the Home screen.  
Note: Press 2 K twice to display the  
Home screen.  
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 Basic Function Graphing and Symbolic Manipulation.  
Activities  
754  
   
Decomposing a Rational Function  
3
2
To examine the decomposition of the rational function f(x)=(x N10x Nx+50)/(xN2) on a  
graph:  
1. On the Home screen, enter the rational  
function as shown below and store it in a  
function f(x).  
Enter: (x^3N10x^2Nx+50)/(xN2)!f(x)  
Note: Actual entries are displayed in  
reverse type in the example screens.  
2. Use the proper fraction function  
(propFrac) to split the function into a  
quotient and remainder.  
3. Copy the last answer to the entry line.  
–or–  
Enter: 16/(xN2)+x^2N8xN17  
Note: Move the cursor into the history  
area to highlight the last answer. Press  
¸ to copy it to the entry line.  
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/(xN2)!y1(x): x^2N8ùxN17!y2(x)  
Activities  
755  
5. In the Y= Editor, select the thick graphing  
style for y2(x).  
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= [L10,15,10]  
y= [L100,100,10]  
8. Draw the graph.  
Note: Be sure the Graph mode is set to  
Function.  
Activities  
756  
 
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.  
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.  
Activities  
757  
Filtering Data by Categories  
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.  
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
Activities  
758  
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.  
3. Open the Plot Setup toolbar menu.  
Note: Set up several box plots to compare  
different subsets of the entire data set.  
4. Define the plot and filter parameters for  
Plot 1 as shown in this screen.  
Activities  
759  
5. Copy Plot 1 to Plot 2.  
6. Repeat step 5 and copy Plot 1 to Plot 3,  
Plot 4, and Plot 5.  
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)  
8. In the Y= Editor, deselect any functions  
that may be selected from a previous  
activity.  
Note: Only Plot 1 through Plot 5 should be  
selected.  
Activities  
760  
   
9. Display the plots by pressing and  
selecting 9:Zoomdata.  
10. Use the Trace tool to compare the median  
Ë
Ê
student weights for different subsets.  
Ì
Í
Ê median, all students  
Ë all students  
Ì all freshmen  
Í all seniors  
Î
Ï
Î all boys  
Ï all girls  
CBL 2™ Program for the TI-89 Titanium  
This activity provides a program that can be used when the TI-89 Titanium is connected  
to a Calculator-Based Laboratory™ (CBL 2™) unit. This program works with the  
“Newton’s Law of Cooling” experiment. You can use your computer keyboard to type  
lengthy text and then use TI Connect™ software to send it to the calculator. More  
CBL 2™ programs are available from the TI Web site at educaton.ti.com.  
Program Instruction  
:cooltemp( )  
:Prgm  
Description  
Program name  
:Local i  
Declare local variable; exists only at  
run time.  
Activities  
761  
Program Instruction  
Description  
:setMode("Graph","FUNCTION")  
Set up the TI-89 Titanium for function  
graphing.  
:PlotsOff  
:FnOff  
Turn off any previous plots.  
Turn off any previous functions.  
:ClrDraw  
Clear any items previously drawn on  
graph screens.  
:ClrGraph  
:ClrIO  
Clear any previous graphs.  
Clear the TI-89 Titanium Program IO  
(input/output) screen.  
Set up the Window variables.  
:L10!xmin:99!xmax:10!xscl  
:L20!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{1,0}  
Send a command to clear the CBL 2™  
unit.  
:Send{1,2,1}  
Set up Chan. 2 of the CBL 2™ to  
AutoID to record temp.  
:Disp "Press ENTER to start"  
:Disp "graphingTemperature."  
:Pause  
Prompt the user to press ¸.  
Wait until the user is ready to start.  
Label the y axis of the graph.  
Label the x axis of the graph.  
:PtText "TEMP(C)",2,99  
:PtText "T(S)",80,L5  
Activities  
762  
   
Program Instruction  
Description  
Send the Trigger command to the  
CBL 2™; collect data in real-time.  
:Send{3,1,L1,0}  
:For i,1,99  
:Get data[i]  
Repeat next two instructions for 99  
temperature readings.  
Get a temperature from the CBL 2™  
and store it in a list.  
:PtOn i,data[i]  
:EndFor  
Plot the temperature data on a graph.  
Create a list to represent time or data  
sample number.  
:seq(i,i,1,99,1)!time  
:NewPlot 1,1,time,data,,,,4  
Plot time and data using NewPlot and  
the Trace tool.  
:DispG  
Display the graph.  
Re-label the axes.  
:PtText "TEMP(C)",2,99  
:PtText "T(S)",80,L5  
:EndPrgm  
Stop the program.  
You can also use the Calculator-Based Ranger™ system (CBR™) to explore the  
mathematical and scientific relationships between distance, velocity, acceleration, and  
time using data collected from activities you perform.  
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.  
Activities  
763  
   
Setting Up a Parametric Graph and Table  
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.  
1. Set the modes for Page 1 as shown in this  
screen.  
2. Set the modes for Page 2 as shown in this  
screen.  
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)=95tcos(32¡)  
Note: Press 2 “ to obtain the degree  
symbol.  
4. In the Y= Editor, enter the equation for the  
height of the ball at time t for yt1(t).  
yt1(t)=L16t^2+95tsin(32¡)  
Activities  
764  
5. Set the Window variables to:  
t values= [0,4,.1]  
x values= [0,300,50]  
y values= [0,100,10]  
6. Switch to the right side and display the  
graph.  
Note: Press 2 a.  
7. Display the TABLE SETUP dialog box, and  
change tblStart to 0 and @tbl to 0.1.  
Note: Press 8 &.  
8. Display the table in the left side and press  
D to highlight t=2.  
Note: Press 8 '.  
9. Switch to the right side. Press , and  
trace the graph to show the values of xc  
and yc when tc=2.  
Note: As you move the trace cursor from  
tc=0.0 to tc=3.1, you will see the position  
of the ball at time tc.  
Activities  
765  
     
Optional Exercise  
Assuming the same initial velocity of 95 feet per second, find the angle that the ball  
should be hit to achieve the greatest distance.  
Visualizing Complex Zeros of a Cubic Polynomial  
This activity describes graphing the complex zeros of a cubic polynomial.  
Visualizing Complex Roots  
Perform the following steps to expand the cubic polynomial (xN1)(xNi)(x+i), find the  
absolute value of the function, graph the modulus surface, and use the Trace tool to  
explore the modulus surface.  
1. On the Home screen, use the expand( )  
function to expand the cubic expression  
(xN1)(xNi)(x+i) and see the first  
polynomial.  
2. Copy and paste the last answer to the  
entry line and store it in the function f(x).  
Note: Move the cursor into the history  
area to highlight the last answer and  
press ¸, to copy it to the entry line.  
Activities  
766  
 
3. Use the abs( ) function to find the absolute  
value of f(x+yi).  
(This calculation may take about 2  
minutes.)  
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 visually  
just touch the xy plane.  
4. Copy and paste the last answer to the  
entry line and store it in the function  
z1(x,y).  
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= [20,70,0]  
x=  
y=  
z=  
[L2,2,20]  
[ L2,2,20]  
[ L1,2]  
ncontour= [5]  
Activities  
767  
6. In the Y=Editor, press:  
8 Í  
and set the Graph Format variables to:  
Axes= ON  
Labels= ON  
Style= HIDDEN SURFACE  
Note: Calculating and drawing the graph  
takes about three minutes.  
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.  
Activities  
768  
 
10. Use the Trace tool to explore the function  
values at x=0 and y=L1.  
Summary  
Note that zc is zero for each of the function values in steps 7–9. Thus, the complex zeros  
3
2
1,Li, i of the polynomial x Nx +xN1 can be visualized with the three points where the  
graph of the modulus surface touches the xy plane.  
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.  
Activities  
769  
Finding the Interest Rate 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.  
1. On the Home screen, enter the equation  
to solve for p.  
2. Enter the equation to solve for n.  
3. Enter the equation to solve for i using the  
with operator.  
solve(s=p(1+i)^n,i) | s=2000 and p=1000  
and n=6  
Result: The interest rate is 12.246%.  
Note:  
To enter the “with” ( | ) operator: Í  
Press 8 ¸ to obtain a floating-  
point result.  
Activities  
770  
 
Finding the Future Value of an Annuity  
Find the future value of an annuity using the values from the previous example where  
the interest rate is 14%.  
Enter the equation to solve for s.  
solve(s=p(1+i)^n,s) | i=.14 and p=1000 and  
n=6  
Result: The future value at 14% interest is  
2,194.97.  
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 the electronic  
chapter Programming, which is available from the TI Web site at education.ti.com and on  
the CD in this package.  
Time-Value-of- Money Function  
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  
Activities  
771  
period (1 = beginning of month, 0 = end of month).  
:tvm(temp1,temp2,temp3,temp4,temp5,temp6)  
:Func  
:Local tempi,tempfunc,tempstr1  
:Ltemp3+(1+temp2/1200temp6)temp4((1N(1+temp2/1200)^  
(Ltemp1))/(temp2/1200))Ntemp5(1+temp2/1200)^(Ltemp1)  
!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  
Note: You can use your computer keyboard to type lengthy text and then use  
TI Connect™ software to send it to the TI-89 Titanium.  
Activities  
772  
 
Finding the Monthly Payment  
Find the monthly payment on 10,000 if you make 48 payments at 10% interest per year.  
On the Home screen, enter the tvm values to  
find pmt.  
Result: The monthly payment is 251.53.  
Finding the Number of Payments  
Find the number of payments it will take to pay off the loan if you could make a 300  
payment each month.  
On the Home screen, enter the tvm values to  
find n.  
Result: The number of payments is 38.8308.  
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 Symbolic Manipulation.  
Activities  
773  
Finding Factors  
Enter the expressions shown below on the Home screen.  
1. factor(x^3N5x) ¸ displays a rational  
result.  
2. factor(x^3+5x) ¸ displays a rational  
result.  
3. factor(x^3N5x,x) ¸ displays a real  
result.  
4. cfactor(x^3+5x,x) ¸ displays a  
complex result.  
Activities  
774  
 
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 the electronic  
chapter Programming.  
Sampling-without- Replacement Function  
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.  
:drawball(urnlist,drawnum)  
:Func  
:For j,1,colordim,1  
:cumSum(templist)!urncum  
:If pick urncum[j] Then  
:drawlist[j]+1!drawlist[j]  
:templist[j]N1!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  
(continued in next column)  
Activities  
775  
Sampling without Replacement  
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.  
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.  
Using Vectors to Determine Velocity  
A small fishing boat leaves from the south bank of the Allegheny River and heads at an  
80° angle with an engine speed of 20 knots. However, the eastward force of the current  
carries the boat along so it actually travels at a 60° angle with the shore.  
How fast is the current, and how fast does the boat actually travel?  
Activities  
776  
a mph  
Eastward  
Traveling  
Current  
Boat  
Actual Path  
Intended  
Path  
river bank  
1. Set the modes for Page 1 as shown in this  
screen. (Show angles in degrees and  
display all digits with a floating decimal  
point.)  
Press: 3 D D D. On the Angle option,  
select 2:DEGREE. On the Display Digits  
option, select E:FLOAT.  
2. Set the modes for Page 2 as shown in this  
screen. (Display answers in decimal  
form.)  
Press: 3 „ D D. On the  
Exact/Approx option, select  
3:APPROXIMATE.  
Activities  
777  
3. Enter vectors describing the initial path of  
the boat, water current, and resultant path  
of the boat.  
Store these vectors as i, c, and r. Use the  
value a for the unknown speed of the  
current. Use the value b for the speed of  
the boat.  
Enter:  
[20,80¡]!i  
[a,0¡]!c  
[b,60°]!r  
Vectors are commonly written in either polar  
or rectangular form, so it is useful to convert  
polar vectors into rectangular form.  
4. Define function p2r.  
Enter: Define p2r(x)=[x[1,1]*cos(x[1,2]),  
x[1,1]*sin(x[1,2])]  
Activities  
778  
When converted to rectangular form, the sum  
of vectors i and c equals the resultant vector r.  
5. Using function p2r, convert vectors i, c,  
and r to rectangular form.  
Enter:  
p2r(i)!i  
p2r(c)!c  
p2r(r)!r  
Because the vectors are equal, the x-  
coordinate of i+c must equal the x-coordinate  
of the resultant vector r. Likewise, the y-  
coordinate of i+c must equal the y-coordinate  
of resultant vector r.  
6. Set up two equations involving vectors i+c  
and r.  
Equation 1 sets the x-coordinates  
equal to each other.  
Equation 2 sets the y-coordinates  
equal.  
Store these equations into eq1 and eq2,  
respectively. Enter:  
i[1,1]+c[1,1]=r[1,1]!eq1  
i[1,2]+c[1,2]=r[1,2]!eq2  
Activities  
779  
7. Solve eq2 for b to calculate the actual  
speed of the boat.  
solve(eq2,b)  
8. Substitute the known value of b into eq1,  
and solve eq1 for a to determine a, the  
speed of the eastward traveling current.  
solve(eq1,a) | b  
The boat travels at a speed of 22.7 knots, and  
the water current is approximately 7.9 knots.  
Activities  
780  
A
Appendix A:  
Functions and Instructions  
Categorical Listing of Operations ...................................................................782  
Alphabetical Listing of Operations..................................................................786  
This section describes the syntax and action of each TI-89 Titanium function and  
instruction that is included in the operating system (OS). See modules relating to  
calculator software applications (Apps) for functions and instructions specific to those  
Apps.  
Name of the function or instruction.  
Key or menu for entering the name.  
You can also type the name.  
Example  
Circle  
CATALOG  
Circle x, y, r [, drawMode]  
In a ZoomSqr viewing window:  
Draws a circle with its center at window  
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  
781  
       
Categorical Listing of Operations  
This section lists the TI-89 Titanium functions and  
instructions in functional groups along with the page  
numbers where they are described.  
Algebra  
| ("with")  
cSolve()  
factor()  
nSolve()  
solve()  
912  
799  
819  
849  
878  
895  
cFactor()  
cZeros  
getDenom() 825  
propFrac()  
tCollect()  
791  
803  
comDenom() 794  
expand()  
getNum()  
randPoly()  
tExpand()  
817  
826  
862  
889  
856  
888  
zeros()  
Calculus  
Graphics  
() (integrate) 907  
Π() (product) 908  
G() (sum)  
d()  
fMin()  
nDeriv()  
seq()  
908  
805  
821  
845  
869  
arcLen()  
deSolve()  
ImpDif()  
nInt()  
788  
808  
831  
847  
888  
avgRC()  
fMax()  
limit()  
789  
821  
834  
910  
' (prime)  
taylor()  
AndPic  
ClrDraw  
DrawFunc  
DrawPol  
FnOff  
Line  
LineVert  
PtOff  
PtText  
PxlHorz  
PxlOn  
PxlVert  
RplcPic  
StoPic  
787  
792  
812  
813  
821  
835  
836  
856  
857  
857  
858  
858  
867  
883  
895  
897  
898  
899  
900  
BldData  
ClrGraph  
DrawInv  
DrawSlp  
FnOn  
LineHorz  
NewPic  
PtOn  
790  
793  
812  
813  
822  
835  
846  
856  
857  
857  
858  
862  
874  
884  
896  
898  
899  
899  
900  
Circle  
792  
803  
813  
814  
829  
836  
856  
856  
857  
858  
858  
862  
883  
891  
897  
898  
899  
900  
CyclePic  
DrawParm  
DrwCtour  
Graph  
LineTan  
PtChg  
ptTest()  
PxlCrcl  
PxlOff  
PxlText  
RclPic  
StoGDB  
Trace  
ZoomData  
ZoomIn  
ZoomPrev  
ZoomStd  
PxlChg  
PxlLine  
pxlTest()  
RclGDB  
Shade  
Style  
XorPic  
ZoomBox  
ZoomFit  
ZoomOut  
ZoomSqr  
ZoomTrig  
ZoomDec  
ZoomInt  
ZoomRcl  
ZoomSto  
Lists  
+ (add)  
à (divide)  
augment()  
dim()  
left()  
mat4list()  
min()  
product()  
shift()  
900  
902  
789  
810  
834  
842  
844  
855  
874  
884  
ì (subtract)  
ë (negate)  
crossP()  
dotP()  
@list()  
max()  
newList()  
right()  
SortA  
901  
904  
798  
812  
837  
842  
846  
865  
881  
ù (multiply)  
^ (power)  
cumSum()  
exp4list()  
list4mat()  
mid()  
polyEval()  
rotate()  
SortD  
902  
903  
802  
817  
837  
843  
854  
865  
881  
sum()  
782  
Appendix A: Functions and Instructions  
 
Math  
+ (add)  
à (divide)  
900  
902  
906  
909  
ì (subtract)  
ë (negate)  
901  
904  
ù (multiply)  
% (percent)  
902  
904  
903  
909  
911  
789  
806  
829  
881  
787  
794  
797  
798  
798  
799  
816  
820  
830  
832  
834  
842  
845  
851  
861  
865  
865  
868  
876  
877  
887  
890  
!
(factorial)  
gradian  
() (sqr. root) 908 ^ (power)  
G
(
)
¡
(degree)  
909  
(angle)  
4 (convert)  
4Bin  
4Dec  
4Hex  
4Sphere  
angle()  
conj()  
cosh()  
cotê()  
¡, ', "  
10^()  
4Cylind  
4DMS  
4Polar  
abs()  
approx()  
cos  
coshê()  
coth()  
cscê()  
E
910  
911  
803  
812  
853  
786  
788  
795  
797  
798  
799  
814  
837  
823  
831  
832  
837  
844  
848  
909  
862  
866  
868  
874  
877  
886  
888  
911  
_ (underscore) 910  
0b, 0h  
4DD  
4Grad  
4Rect  
and  
ceiling()  
cosê()  
cot()  
cothê()  
csch()  
e^()  
4logbase  
gcd()  
int()  
913  
806  
786  
863  
786  
790  
796  
797  
798  
799  
814  
839  
823  
832  
833  
839  
844  
851  
861  
864  
867  
868  
875  
877  
887  
890  
csc()  
coshê()  
exact()  
floor()  
imag()  
intDiv()  
lcm()  
max()  
nCr()  
P4Ry()  
R4Pr()  
rotate()  
root()  
sechê()  
sin()  
sinhê()  
tanh()  
@tmpCnv()  
4ln  
fPart()  
impDif()  
iPart()  
ln()  
isPrime()  
log()  
min()  
nPr()  
mod()  
P4Rx()  
R4Pq()  
remain()  
sec()  
sech()  
sign()  
sinh()  
tanê()  
tmpCnv()  
r
(radian)  
real()  
round()  
secê()  
shift()  
sinê()  
tan()  
tanhê()  
xê  
Matrices  
+ (add)  
à (divide)  
.. (dot subt.)  
.^ (dot power) 904  
colDim()  
cumSum()  
diag()  
eigVc()  
identity()  
mat4data  
mean()  
mRow()  
norm()  
randMat()  
rowDim()  
rref()  
900  
902  
903  
ì (subtract)  
ë (negate)  
. (dot mult.)  
^ (power)  
colNorm()  
data4mat  
dim()  
901  
904  
904  
903  
793  
805  
810  
815  
837  
842  
842  
ù (multiply)  
.+ (dot add)  
. / (dot divide) 904  
augment()  
crossP()  
det()  
dotP()  
Fill  
LU  
max()  
min()  
newMat()  
QR  
rowAdd()  
rowSwap()  
stdDev()  
sum()  
902  
903  
789  
798  
809  
812  
820  
841  
842  
844  
846  
859  
866  
867  
882  
884  
893  
793  
802  
810  
815  
830  
841  
842  
844  
848  
862  
866  
867  
882  
885  
911  
eigVl()  
list4mat()  
mat4list()  
median()  
mRowAdd() 844  
product()  
855  
863  
866  
876  
884  
892  
ref()  
rowNorm()  
simult()  
subMat()  
unitV()  
stdDevPop()  
T
xê  
variance()  
Appendix A: Functions and Instructions  
783  
Programming  
=
905  
906  
>
905  
906  
912  
788  
792  
793  
793  
802  
806  
808  
811  
811  
815  
815  
816  
816  
817  
822  
824  
825  
825  
826  
827  
830  
832  
832  
834  
840  
847  
850  
853  
855  
864  
868  
869  
871  
872  
873  
885  
889  
891  
892  
894  
<
905  
906  
# (indirection) 908  
and  
checkTmr()  
ClrErr  
ClrIO  
CustmOff  
Cycle  
DelFold  
Dialog  
DispHome  
Else  
EndDlog  
EndIf  
EndTBar  
entry()  
For  
! (store)  
ans()  
¦ (comment) 912  
786  
791  
792  
793  
802  
803  
807  
810  
811  
815  
815  
815  
816  
816  
822  
824  
824  
825  
826  
827  
828  
831  
833  
833  
838  
846  
850  
853  
855  
864  
868  
869  
870  
872  
881  
884  
889  
889  
892  
894  
Archive  
ClockOn  
ClrHome  
CopyVar  
Custom  
Define  
788  
792  
793  
795  
802  
807  
808  
811  
813  
815  
815  
816  
816  
817  
823  
824  
825  
826  
826  
828  
831  
833  
833  
838  
844  
848  
851  
854  
864  
865  
869  
870  
872  
873  
883  
886  
889  
891  
893  
ClockOff  
ClrGraph  
ClrTable  
CustmOn  
dayOfWk()  
DelType  
Disp  
DispTbl  
ElseIf  
EndFor  
EndLoop  
EndTry  
Exec  
format()  
GetCalc  
getDtFmt()  
getKey()  
getTmFmt()  
getType()  
If  
isClkOn()  
isArchiv()  
left()  
DelVar  
DispG  
DropDown  
EndCustm  
EndFunc  
EndPrgm  
EndWhile  
Exit  
Func  
Get  
getConfg()  
getDtStr()  
getMode()  
getTmStr()  
getUnits()  
Input  
Item  
isLocked ()  
Local  
MoveVar  
not  
part()  
PopUp  
Rename  
right()  
SendChat  
setFold()  
setTable()  
setTmZn()  
Stop  
Table  
timeCnv()  
Try  
getDate()  
getFold()  
getTime()  
getTmZn()  
Goto  
InputStr  
Lbl  
isVar()  
Lock  
NewFold  
or  
PassErr  
Prgm  
Request  
Send  
setDate()  
setGraph()  
setTime()  
startTmr()  
Style  
Text  
Title  
Unarchiv  
While  
Loop  
NewProb  
Output  
Pause  
Prompt  
Return  
SendCalc  
setDtFmt()  
setMode()  
setTmFmt()  
setUnits()  
switch()  
Then  
Toolbar  
Unlock  
xor  
when()  
784  
Appendix A: Functions and Instructions  
Statistics  
! (factorial)  
cumSum()  
LnReg  
median()  
NewData  
OneVar  
PowerReg  
rand()  
ShowStat  
SortD  
906  
802  
838  
842  
845  
849  
855  
861  
875  
881  
892  
BldData  
ExpReg  
Logistic  
MedMed  
NewPlot  
PlotsOff  
QuadReg  
randNorm()  
SinReg  
790  
819  
840  
843  
847  
853  
859  
862  
878  
882  
893  
CubicReg  
LinReg  
mean()  
nCr()  
801  
836  
842  
845  
848  
853  
860  
862  
881  
nPr()  
PlotsOn  
QuartReg  
RandSeed  
SortA  
stdDev()  
variance()  
stdDevPop() 882  
TwoVar  
Strings  
& (append)  
dim()  
inString()  
ord()  
907  
810  
832  
850  
874  
# (indirection)  
expr()  
left()  
right()  
string()  
908  
818  
834  
865  
883  
char()  
format()  
mid()  
791  
822  
843  
865  
rotate()  
shift()  
Appendix A: Functions and Instructions  
785  
   
Alphabetical Listing of Operations  
Operations whose names are not alphabetic (such as +, !, and >) are listed at the end  
of this appendix, starting on page 900. 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}) ¸  
abs(2ì3i) ¸  
abs(z) ¸  
{
}
2 3  
matrix  
13  
Returns the absolute value of the argument.  
|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  
Boolean  
x3 and x4¸  
x4  
expression  
Boolean list1 and list2  
Boolean matrix1 and matrix2  
{x3,x0} and {x4,xë2}¸  
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
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).  
In Dec base mode:  
37 and 0b100 ¸  
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.  
786  
Appendix A: Functions and Instructions  
   
AndPic  
CATALOG  
AndPic picVar[, row, column]  
In function graphing mode and Y= Editor:  
Displays the Graph screen and logically “ANDS”  
y1(x) = cos(x) C  
the picture stored in picVar and the current graph  
screen at pixel coordinates (row, column).  
@
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)  
@
Style = 3:Square  
y1 = no checkmark (F4 to deselect)  
Zoom = 7:ZoomTrig  
@
"
AndPic PIC1¸  
Done  
angle()  
MATH/Complex menu  
angle(expression1)  
expression  
In Degree angle mode:  
angle(0+2i)¸  
In Gradian angle mode:  
angle(0+3i)¸  
In Radian angle mode:  
Returns the angle of expression1, interpreting  
expression1 as a complex number.  
90  
Note: All undefined variables are treated as real  
variables.  
100  
p
angle(1+i)¸  
4
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  
787  
ans()  
2 ± key  
ans()  
ans(integer)  
value  
To use ans() to generate the Fibonacci  
sequence on the Home screen, press:  
value  
Returns a previous answer from the Home screen  
history area.  
1¸  
1¸  
1
1
2
3
5
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(expression)  
value  
approx(p)¸  
3.141...  
Returns the evaluation of expression as a decimal  
value, when possible, regardless of the current  
Exact/Approx mode.  
This is equivalent to entering expression and  
pressing ¥ ¸ on the Home screen.  
approx(list1)  
approx(matrix1)  
list  
approx({sin(p),cos(p)})¸  
matrix  
{0. ë1.}  
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  
Archive var1 [, var2] [, var3] …  
10!arctest ¸  
Archive arctest ¸  
5ùarctest ¸  
10  
Done  
50  
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(expression1,var,start,end)  
expression  
arcLen(cos(x),x,0,p)¸  
3.820...  
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(list1,var,start,end)  
list  
arcLen({sin(x),cos(x)},x,0,p)  
{3.820... 3.820...}  
Returns a list of the arc lengths of each element  
of list1 from start to end with respect to var.  
788  
Appendix A: Functions and Instructions  
       
augment() MATH/Matrix menu  
augment(list1, list2)  
list  
augment({1,ë3,2},{5,4})¸  
{1 ë3 2 5 4}  
Returns a new list that is list2 appended to the  
end of list1.  
augment(matrix1, matrix2)  
augment(matrix1; matrix2)  
matrix  
matrix  
1 2  
[1,2;3,4]!M1¸  
[ ]  
3 4  
5
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.  
[5;6]!M2¸  
[ ]  
6
1 2 5  
3 4 6  
augment(M1,M2)¸  
[
]
5 6  
[5,6]!M2¸  
[ ]  
1 2  
3 4  
augment(M1;M2)¸  
5 6  
avgRC()  
CATALOG  
avgRC(expression1, var [, h])  
expression  
avgRC(f(x),x,h)¸  
f(x+h) - f(x)  
Returns the forward-difference quotient (average  
rate of change).  
h
avgRC(sin(x),x,h)|x=2¸  
sin(h+2) - sin(2)  
expression1 can be a user-defined function name  
(see Func).  
h
h is the step value. If h is omitted, it defaults to  
0.001.  
avgRC(x^2ìx+2,x)¸  
avgRC(x^2ìx+2,x,.1)¸  
avgRC(x^2ìx+2,x,3)¸  
2.ø(x- .4995)  
Note that the similar function nDeriv() uses the  
central-difference quotient.  
2.ø(x- .45)  
2ø(x+1)  
4Bin  
MATH/Base menu  
integer1 4Bin  
integer  
2564Bin ¸  
0b100000000  
0b11111  
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  
789  
     
BldData  
CATALOG  
BldData [dataVar]  
In function graphing mode and Radian angle  
mode:  
Creates data variable dataVar based on the  
information used to plot the current graph.  
8ùsin(x)!y1(x) ¸  
2ùsin(x)!y2(x) ¸  
ZoomStd ¸  
Done  
Done  
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.  
@
"
BldData ¸  
O 6 ¸  
Done  
For information about the increments used to  
evaluate a graph, refer to the module 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 increments through  
its range of values.  
Note: The following sample data is from a 3D  
graph.  
Then, x increments to its next value and y again  
increments through its range. This pattern  
continues until x has incremented through its  
range.  
ceiling() MATH/Number menu  
ceiling(expression1)  
integer  
ceiling(0.456)¸  
1.  
Returns the nearest integer that is the  
argument.  
The argument can be a real or a complex number.  
Note: See also floor().  
ceiling(list1)  
ceiling(matrix1)  
list  
ceiling({ë3.1,1,2.5})¸  
matrix  
{ë3. 1 3.}  
Returns a list or matrix of the ceiling of each  
element.  
ceiling([0,ë3.2i;1.3,4])¸  
0
ë3.øi  
[
]
2. 4  
790  
Appendix A: Functions and Instructions  
   
cFactor() MATH/Algebra/Complex menu  
expression  
cFactor(expression1[, var])  
cFactor(list1[,var]) list  
cFactor(matrix1[,var])  
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.  
For the AUTO setting of the Exact/Approx mode,  
including var also 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.  
cFactor(x^5+4x^4+5x^3ì6xì3)¸  
x5 +4øx4 +5øx3 ì6øxì3  
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(integer)  
character  
char(38)¸  
"&"  
"A"  
Returns a character string containing the  
character numbered integer from the  
char(65)¸  
TI-89 Titanium/Voyage™ 200 character set. See  
Appendix B for a complete listing of character  
codes. The valid range for integer is 0–255.  
checkTmr() CATALOG  
checkTmr(starttime) integer  
startTmr() ¸  
148083315  
34  
Returns an integer representing the number of  
checkTmr(148083315)  
seconds that have elapsed since a timer was  
started. starttime is an integer returned from the  
startTmr() function.  
startTmr()!Timer1  
©
You can also use a list or matrix of starttime  
integers. Valid starttime integers must fall  
between 0 and the current time of the clock. You  
can run multiple timers simultaneously.  
startTmr()!Timer2  
©
checkTmr(Timer1)!Timer1Value  
©
Note: See also startTmr() and timeCnv().  
checkTmr(Timer2)!Timer2Value  
Appendix A: Functions and Instructions  
791  
     
Circle  
CATALOG  
Circle x, y, r [, drawMode]  
In a ZoomSqr viewing window:  
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. See  
also PxlCrcl.  
ClockOff CATALOG  
ClockOff  
Turns the clock OFF.  
ClockOn CATALOG  
ClockOn  
Turns the clock ON.  
ClrDraw CATALOG  
ClrDraw  
Clears the Graph screen and resets the Smart  
Graph feature so that the next time the Graph  
screen is displayed, the graph will be redrawn.  
While viewing the Graph screen, you can clear all  
drawn items (such as lines and points) by  
pressing (ReGraph) or pressing 2 ˆ and  
selecting 1:ClrDraw.  
ClrErr  
CATALOG  
ClrErr  
Program listing:  
Clears the error status. It sets errornum to zero  
and clears the internal error context variables.  
:clearerr()  
:Prgm  
:PlotsOff:FnOff:ZoomStd  
:For i,0,238  
:@xù i+xmin! xcord  
: Try  
: PtOn xcord,ln(xcord)  
: Else  
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.  
: If errornum=800 or  
errornum=260 Then  
:
ClrErr ¦ clear the error  
Note: See also PassErr and Try.  
: Else  
:
PassErr ¦ pass on any other  
error  
: EndIf  
: EndTry  
:EndFor  
:EndPrgm  
792  
Appendix A: Functions and Instructions  
         
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.  
ClrHome CATALOG  
ClrHome  
Clears all items stored in the entry() and ans()  
Home screen history area. Does not clear the  
current entry line.  
While viewing the Home screen, you can clear the  
history area by pressing ƒ and selecting 8:Clear  
Home.  
For functions such as solve() that return arbitrary  
constants or integers (@1, @ 2, etc.), ClrHome  
resets the suffix to 1.  
ClrIO  
CATALOG  
ClrIO  
Clears the Program I/O screen.  
ClrTable CATALOG  
ClrTable  
Clears all table values. Applies only to the ASK  
setting on the Table Setup dialog box.  
While viewing the Table screen in Ask mode, you  
can clear the values by pressing ƒ and selecting  
8:Clear Table.  
colDim() MATH/Matrix/Dimensions menu  
colDim(matrix)  
expression  
colDim([0,1,2;3,4,5])¸  
3
Returns the number of columns contained in  
matrix.  
Note: See also rowDim().  
colNorm() MATH/Matrix/Norms menu  
colNorm(matrix)  
expression  
[1,ë 2,3;4,5,ë 6]! mat¸  
1 ë 2 3  
4 5 ë 6  
Returns the maximum of the sums of the absolute  
values of the elements in the columns in matrix.  
[
]
9
colNorm(mat)¸  
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  
793  
         
comDenom(expression1,var) returns a reduced  
ratio of numerator and denominator expanded 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,x) ¸  
comDenom((y^2+y)/(x+1)  
^2+y^2+y,y) ¸  
If var does not occur in expression1,  
comDenom(exprn,abc)!comden  
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.  
(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(expression1)  
conj(list1) list  
conj(matrix1)  
expression  
conj(1+2i)¸  
1ì 2ø i  
conj([2,1ì 3i;ë i,ë 7])¸  
matrix  
Returns the complex conjugate of the argument.  
2 1+3ø i  
Note: All undefined variables +are treated as real  
variables.  
[i ]  
ë 7  
conj(z)  
z
conj(x+iy)  
x+ë iø y  
CopyVar CATALOG  
CopyVar var1, var2  
x+y! a¸  
10! x¸  
CopyVar a,b¸  
a! c¸  
DelVar x¸  
b¸  
x+y  
10  
Done  
y+10  
Done  
x+y  
Copies the contents of variable var1 to var2. If var2  
does not exist, CopyVar creates it.  
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¸  
y+10  
794  
Appendix A: Functions and Instructions  
   
cos()  
2 X key  
cos(expression1)  
cos(list1) list  
expression  
In Degree angle mode:  
2  
2
cos((p/4)ô )¸  
cos(expression1) returns the cosine of the  
argument as an expression.  
2  
2
cos(list1) returns a list of the cosines of all  
elements in list1.  
cos(45)¸  
cos({0,60,90})¸  
{1 1/2 0}  
Note: The argument is interpreted as a degree,  
gradian or radian angle, according to the current  
angle mode setting. You can use ó , G o r ô to  
override the angle mode temporarily.  
In Gradian angle mode:  
2  
cos({0,50,100})¸  
{1  
0}  
2
In Radian angle mode:  
2  
2
cos(p/4)¸  
2  
2
cos(45¡)¸  
cos(squareMatrix1)  
squareMatrix  
In Radian angle mode:  
Returns the matrix cosine of squareMatrix1. This is  
not the same as calculating the cosine of each  
element.  
cos([1,5,3;4,2,1;6,ë2,1]) ¸  
.212… .205… .121…  
.160… .259… .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:  
0
… 0  
… 0  
… 0  
0l  
B =   
1
l
2
and X = [V ,V , … ,V ]  
1
2
n
0
0
0
0  
l   
n
3. Then A = X B Xê and f(A) = X f(B) Xê. For  
example, cos(A) = X cos(B) Xê where:  
cos(λ )  
0
0
0
0
1
0
0
0
cos(λ2)  
cos (B) =  
0
0
cos(λn)  
All computations are performed using floating-  
point arithmetic.  
Appendix A: Functions and Instructions  
795  
   
cosê()  
¥ R key  
cosê (expression1)  
cosê (list1) list  
expression  
In Degree angle mode:  
cosê (1) ¸  
0
cosê (expression1) returns the angle whose cosine  
is expression1 as an expression.  
In Gradian angle mode:  
cosê (0) ¸  
100  
cosê (list1) returns a list of the inverse cosines of  
each element of list1.  
In Radian angle mode:  
Note: The result is returned as a degree, gradian  
or radian angle, according to the current angle  
mode setting.  
cosê ({0,.2,.5})¸  
p
{
2
1.369... 1.047...}  
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 ë 1.490…+2.105…øi   
squareMatrix1 must be diagonalizable. The result  
always contains floating-point numbers.  
ë.725…+1.515…øi .623…+.778…øi  
ë 2.083…+2.632…øi 1.790…ì 1.271…øi   
cosh()  
MATH/Hyperbolic menu  
cosh(expression1)  
expression  
cosh(1.2)¸  
1.810...  
cosh(list1) list  
cosh({0,1.2})¸  
{1 1.810...}  
cosh (expression1) returns the hyperbolic cosine  
of the argument as an expression.  
cosh (list1) returns a list of the hyperbolic cosines  
of each element of list1.  
cosh(squareMatrix1)  
squareMatrix  
In Radian angle mode:  
Returns the matrix hyperbolic cosine of  
squareMatrix1. This is not the same as calculating  
the hyperbolic cosine of each element. For  
information about the calculation method, refer  
to cos().  
cosh([1,5,3;4,2,1;6,ë2,1])  
¸
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ê (expression1)  
expression  
coshê (1)¸  
0
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.  
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  
.486…ì.725…øi  
ë.322…ì 2.083…øi 1.267…+1.790…øi   
ë.009…ì 1.490…øi   
1.662…+.623…øi  
squareMatrix1 must be diagonalizable. The result  
always contains floating-point numbers.  
796  
Appendix A: Functions and Instructions  
 
cot()  
MATH/Trig menu  
cot(expression1) expression  
cot(list1) list  
In Degree angle mode:  
cot(45) ¸  
1
1
Returns the cotangent of expression1 or returns a  
list of the cotangents of all elements in list1.  
In Gradian angle mode:  
cot(50) ¸  
Note: The result is returned as a degree, gradian  
or radian angle, according to the current angle  
mode setting.  
In Radian angle mode:  
cot({1,2.1,3}) ¸  
1
{
1
L.584…  
}
tan(1)  
tan(3)  
cotL1()  
MATH/Trig menu  
cotL1(expression1) expression  
In Degree angle mode:  
cotL1(1) ¸  
cotL1(list1) list  
45  
50  
Returns the angle whose cotangent is  
expression1 or returns a list containing the  
inverse cotangents of each element of list1.  
In Gradian angle mode:  
cotL1(1) ¸  
Note: The result is returned as a degree, gradian  
or radian angle, according to the current angle  
mode setting.  
In Radian angle mode:  
p
4
cotL1(1) ¸  
coth()  
MATH/Hyperbolic menu  
coth(expression1) expression  
cot(list1) list  
coth(1.2) ¸  
1.199…  
coth({1,3.2}) ¸  
Returns the hyperbolic cotangent of expression1  
or returns a list of the hyperbolic cotangents of all  
elements of list1.  
1
1.003…  
{
}
tanh(1)  
cothL1()  
MATH/Hyperbolic menu  
cothL1(expression1) expression  
cothL1(3.5) ¸  
.293…  
cothL1(list1) list  
cothL1({L2,2.1,6}) ¸  
Returns the inverse hyperbolic cotangent of  
expression1 or returns a list containing the  
inverse hyperbolic cotangents of each element of  
list1.  
Lln(3)  
ln(7/5)  
.518…  
{
2
}
2
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(vector1, vector2)  
vector  
crossP([1,2,3],[4,5,6])¸  
[ë 3 6 ë 3]  
Returns a row or column vector (depending on  
the arguments) that is the cross product 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.  
Appendix A: Functions and Instructions  
797  
     
csc()  
MATH/Trig menu  
csc(expression1) expression  
csc(list1) list  
In Degree angle mode:  
csc(45) ¸  
2  
Returns the cosecant of expression1 or returns a  
list containing the cosecants of all elements in  
list1.  
In Gradian angle mode:  
csc(50) ¸  
2  
In Radian angle mode:  
csc({1,p/2,p/3}) ¸  
1
2¦ 3  
3
1
{
}
sin(1)  
cscL1()  
MATH/Trig menu  
csc-1(expression1) expression  
In Degree angle mode:  
cscL1(1) ¸  
csc-1(list1) list  
90  
Returns the angle whose cosecant is expression1  
or returns a list containing the inverse cosecants  
of each element of list1.  
In Gradian angle mode:  
cscL1(1) ¸  
100  
Note: The result is returned as a degree, gradian  
or radian angle, according to the current angle  
mode setting.  
In Radian angle mode:  
cscL1({1,4,6}) ¸  
p
2
sinL1(1/4) sinL1(1/6)  
{
}
csch()  
MATH/Hyperbolic menu  
csch(expression1) expression  
csch(list1) list  
1
csch(3) ¸  
sinh(3)  
Returns the hyperbolic cosecant of expression1 or  
returns a list of the hyperbolic cosecants of all  
elements of list1.  
csch({1,2.1,4}) ¸  
1
1
.248…  
{
}
sinh(1)  
sinh(4)  
cschL1()  
MATH/Hyperbolic menu  
cschL1(expression1) expression  
cschL1(1) ¸  
sinh-1(1)  
cschL1(list1) list  
cschL1({1,2.1,3}) ¸  
Returns the inverse hyperbolic cosecant of  
expression1 or returns a list containing the  
inverse hyperbolic cosecants of each element of  
list1.  
{sinhL1(1) .459… sinhL1(1/3)}  
cSolve() MATH/Algebra/Complex menu  
cSolve(equation, var)  
Boolean expression  
cSolve(x^3=ë 1,x)¸  
solve(x^3=ë 1,x)¸  
Returns candidate complex solutions of an  
equation for var. The goal is to produce  
candidates for all real and non-real solutions.  
Even if equation is real, cSolve() allows non-real  
results in real mode.  
Although the TI-89 Titanium/Voyage™ 200  
processes all undefined variables that do not end  
with an underscore (_) as if they were real,  
cSolve() can solve polynomial equations for  
complex solutions.  
798  
Appendix A: Functions and Instructions  
         
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().  
cSolve(x^(1/3)=ë 1,x)¸  
false  
solve(x^(1/3)=ë 1,x)¸  
x=ë 1  
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))¸  
Note: See also cZeros(), solve(), and zeros().  
cSolve(ans(1),x)¸  
Note: If equation is non-polynomial with  
functions such as abs(), angle(), conj(), real(),  
or imag(), you should place an underscore  
(¥ ) at the end of var. By default, a variable is  
treated as a real value.  
If you use var_ , the variable is treated as  
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  
Note: The following examples use an  
do NOT specify any initial guesses, cSolve() uses underscore (¥ ) so that the variables will be  
the lexical Gröbner/Buchberger elimination  
method to attempt to determine all complex  
solutions.  
treated as complex.  
Complex solutions can include both real and non-  
real solutions, as in the example to the right.  
cSolve(u_ùv_ìu_=v_ and  
v_^2=ëu_,{u_,v_}) ¸  
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  
Appendix A: Functions and Instructions  
799  
       
Simultaneous polynomial equations can have  
extra variables that have no values, but represent  
given numeric values that could be substituted  
later.  
cSolve(u_ùv_ìu_=c_ùv_ and  
v_^2=ëu_,{u_,v_}) ¸  
1ì4øc_+1)2  
4
1ì4øc_+1  
2
ë(  
u_=  
andv_=  
or  
ë(  
1ì4øc_ì1)  
u_= andv_=  
2
or u_=0 and v_=0  
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.  
cSolve(u_ùv_ìu_=v_ and  
v_^2=ëu_,{u_,v_,w_}) ¸  
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  
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.  
2
2
and w_=@1  
or u_=0 and v_=0 and w_=@1  
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.  
cSolve(u_+v_=e^(w_) and u_ìv_=i,  
{u_,v_}) ¸  
ew_  
2
e
w_ì i  
2
u_=  
+1/2øi and v_=  
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.  
cSolve(e^(z_)=w_ and w_=z_^2,  
{w_,z_}) ¸  
w_=.494… and z_=ë.703…  
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.  
cSolve(e^(z_)=w_ and w_=z_^2,  
{w_,z_=1+i}) ¸  
w_=.149… + 4.891…øi and  
z_=1.588… + 1.540…øi  
800  
Appendix A: Functions and Instructions  
CubicReg MATH/Statistics/Regressions menu  
CubicReg list1, list2[, [list3] [, list4, list5]]  
In function graphing mode.  
Calculates the cubic polynomial regression and  
updates all the statistics variables.  
{0,1,2,3}! L1¸  
{0,2,3,4}! L2¸  
CubicReg L1,L2¸  
ShowStat¸  
{0 1 2 3}  
{0 2 3 4}  
Done  
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  
¥%  
Appendix A: Functions and Instructions  
801  
 
cumSum() MATH/List menu  
cumSum(list1)  
list  
cumSum({1,2,3,4})¸  
{1 3 6 10}  
1 2  
Returns a list of the cumulative sums of the  
elements in list1, starting at element 1.  
cumSum(matrix1)  
matrix  
3 4  
[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.  
5 6  
1 2  
4 6  
cumSum(m1)¸  
9 12  
CustmOff CATALOG  
CustmOff  
See Custom program listing example.  
See Custom program listing example.  
Program listing:  
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  
Activates a custom toolbar that has already been  
set up in a Custom...EndCustm block.  
CustmOn and CustmOff enable a program to  
control a custom toolbar. Manually, you can press  
2 ¾ to toggle a custom toolbar on and  
off.  
Custom  
2 ¾ key  
Custom  
block  
EndCustm  
:Test()  
:Prgm  
:Custom  
:Title  
:Item  
Sets up a toolbar that is activated when you press  
2 ¾. It is very similar to the ToolBar  
instruction except that Title and Item statements  
cannot have labels.  
"Lists"  
"List1"  
"Scores"  
"L3"  
:Item  
block can be either a single statement or a series  
of statements separated with the “:” character.  
:Item  
:Title  
:Item  
"Fractions"  
"f(x)"  
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.  
:Item  
"h(x)"  
"Graph"  
:Title  
:EndCustm  
:EndPrgm  
802  
Appendix A: Functions and Instructions  
       
Cycle  
CATALOG  
Cycle  
Program listing:  
Transfers program control immediately to the  
next iteration of the current loop (For, While, or  
Loop).  
:¦ Sum the integers from 1 to  
100 skipping 50.  
:0! temp  
:For i,1,100,1  
:If i=50  
:Cycle  
Cycle is not allowed outside the three looping  
structures (For, While, or Loop).  
:temp+i! temp  
:EndFor  
:Disp temp  
Contents of temp after execution:5000  
CyclePic  
CATALOG  
CyclePic picNameString, n [, [wait] , [cycles],  
1. Save three pics named pic1, pic2, and pic3.  
[direction]]  
2. Enter: CyclePic "pic",3,.5,4,ë1  
Displays all the PIC variables specified and at 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 forward and  
backwards.  
3. The three pictures (3) will be displayed  
automatically—one-half second (.5) between  
pictures, for four cycles (4), and forward and  
backwards (ë1).  
direction is 1 for circular or ë 1 for forward and  
backwards. Default = 1.  
4Cylind  
MATH/Matrix/Vector ops menu  
vector 4Cylind  
[2,2,3] 4Cylind¸  
p
[2ø 2 3]  
Displays the row or column vector in cylindrical  
form [rq, z].  
4
vector must have exactly three elements. It can be  
either a row or a column.  
cZeros() MATH/Algebra/Complex menu  
cZeros(expression, var)  
list  
Display Digits mode in Fix 3:  
Returns a list of candidate real and non-real  
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  
(¥ ) 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_) ¸  
You should also use var_ for any other variables  
in expression that might have unreal values.  
Otherwise, you may receive unexpected results.  
{1ìi}  
cZeros({expression1, expression2 [, ] },  
{varOrGuess1,varOrGuess2 [, ] })  
matrix  
Returns candidate positions where the  
expressions are zero simultaneously. Each  
varOrGuess specifies an unknown whose value you  
seek.  
Appendix A: Functions and Instructions  
803  
       
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  
Note: The following examples use an  
do NOT specify any initial guesses, cZeros() uses underscore _ ( ¥ ) so that the variables will  
the lexical Gröbner/Buchberger elimination  
method to attempt to determine all complex  
zeros.  
be treated as complex.  
Complex zeros can include both real and non-real  
zeros, as in the example to the right.  
cZeros({u_ùv_ìu_ìv_,v_^2+u_},  
{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  
øi  
2
2
3øi 1/2 ì  
3
1/2 +  
0  
2
2
0
Extract row 2:  
ans(1)[2] ¸  
3
3øi 1/2 ì  
øi  
1/2 +  
2
2
Simultaneous polynomials can have extra  
variables that have no values, but represent given  
numeric values that could be substituted later.  
cZeros({u_ùv_ìu_ì(c_ùv_),  
v_^2+u_},{u_,v_}) ¸  
1ì 4øc_+1)2  
1ì 4øc_+1  
ë (  
4
2
1ì 4øc_ì 1)2  
ë (  
ë (  
0  
1ì 4øc_ì 1)  
4
2
0
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.  
cZeros({u_ùv_ìu_ìv_,v_^2+u_},  
{u_,v_,w_}) ¸  
1/2 ì 3øi 1/2 + 3øi @1  
øi @1  
@1   
2
2
3øi 1/2 ì  
3
1/2 +  
0  
2
2
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.  
0
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.  
cZeros({u_+v_ìe^(w_),u_ìv_ìi},  
{u_,v_}) ¸  
w_  
ew_  
2
e  
ì i  
+1/2øi  
2  
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.  
cZeros({e^(z_)ìw_,w_ìz_^2}, {w_,z_})  
¸
.494… ë.703…  
[
]
804  
Appendix A: Functions and Instructions  
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.  
cZeros({e^(z_)ìw_,w_ìz_^2},  
{w_,z_=1+i}) ¸  
.149…+4.89…øi 1.588…+1.540…øi  
[
]
d()  
2 = key or MATH/Calculus menu  
d(expression1, var [,order])  
d(list1,var [,order]) list  
d(matrix1,var [,order])  
expression  
d(f(x)ù g(x),x)¸  
d
dx  
d
dx  
matrix  
(f(x))ø g(x) +  
(g(x))ø f(x)  
Returns the first derivative of expression1 with  
respect to variable var. expression1 can be a list or  
a matrix.  
d(d(x^2ù y^3,x),y)¸  
d(x^2,x,ë 1)¸  
6ø yñ ø x  
xò  
3
order, if included, must be an integer. If the order  
is less than zero, the result will be an anti-  
derivative.  
d({x^2,x^3,x^4},x)¸  
{2ø x 3ø xñ 4ø xò }  
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:  
1. Simplify the second argument only to the  
extent that it does not lead to a non-  
variable.  
2. Simplify the first argument only to the extent  
that it does recall any stored value for the  
variable determined by step 1.  
3. Determine the symbolic derivative of the  
result of step 2 with respect to the variable  
from step 1.  
4. If the variable from step 1 has a stored value  
or a value specified by a “with” (|) operator,  
substitute that value into the result from  
step 3.  
data4mat CATALOG/MATH/List menu  
data4mat data,mat[,row1] [,col1] [,row2] [,col2]  
data4mat d1,m1,1, , ,1  
¸
Converts data to a matrix.  
Done  
Each argument [,row1][,col1][,row2] [,col2] can  
be individually omitted. If row1 is omitted the  
default is 1. If col1 is omitted the default is 1. If  
row2 is omitted, the default is “max row.” If col2  
is omitted, the default is “max column.”  
The DATA structure allows empty cells. Rows do  
not have to be equal size. When data is saved as  
a matrix, empty cells will be populated with  
“undef.”  
dayOfWk() CATALOG  
dayOfWk(year,month,day) integer  
dayOfWk(1948,9,6)  
Integer values:  
1 = Sunday  
2
Returns an integer from 1 to 7, with each integer  
representing a day of the week. Use dayOfWk()  
to determine on which day of the week a  
particular date would occur.  
2 = Monday  
Note: May not give accurate results for years  
Appendix A: Functions and Instructions  
805  
   
prior to 1583 (pre-Gregorian calendar).  
3 = Tuesday  
4 = Wednesday  
5 = Thursday  
6 = Friday  
Enter the year as a four-digit integer. The month  
and day can be either one- or two-digit integers.  
7 = Saturday  
4DD  
MATH/Angle menu  
number 4DD  
list  
value  
In Degree angle mode:  
1.5ó 4DD¸  
list1 4DD  
1.5ó  
matrix1 4DD  
matrix  
45ó 22'14.3"4DD¸  
45.370...ó  
Returns the decimal equivalent of the argument  
expressed in degrees. The argument is a number,  
list, or matrix that is interpreted by the Mode  
setting in gradians, radians or degrees.  
{45ó 22'14.3",60ó 0'0"}4DD¸  
{45.370... 60}¡  
In Gradian angle mode:  
14DD¸  
(9/10)ó  
In Radian angle mode:  
1.54DD¸  
85.9ó  
4Dec  
MATH/Base menu  
integer1 4Dec  
integer  
0b100114Dec ¸  
19  
31  
Converts integer1 to a decimal (base 10) number.  
A binary or hexadecimal entry must always have  
a 0b or 0h prefix, respectively.  
0h1F4Dec ¸  
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.  
806  
Appendix A: Functions and Instructions  
     
Define  
CATALOG  
Define funcName(arg1Name, arg2Name, ...) =  
Define g(x,y)=2xì 3y¸  
g(1,2)¸  
Done  
ë 4  
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  
funcName cannot be the name of a system  
variable or built-in function.  
h(ë 3)¸  
h(4)¸  
ë 9  
ë 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)¸  
Note: This form of Define is equivalent to  
executing the expression:  
Done  
expression!funcName(arg1Name,arg2Name).  
This command also can be used to define simple  
variables; for example, Define a=3.  
eigenvl([ë 1,2;4,3])¸  
2ø 3 - 1 ë (2ø 3 + 1)  
{
}
11  
11  
Define funcName(arg1Name, arg2Name, ...) = Func  
block  
EndFunc  
Define g(x,y)=Func:If x>y Then  
:Return x:Else:Return y:EndIf  
:EndFunc¸  
Done  
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.  
g(3,ë 7)¸  
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.  
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:  
num! #str1[i]:EndFor:EndPrgm¸  
Creates progName as a program or subprogram,  
but cannot return a result using Return. Can  
execute a block of multiple statements.  
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  
DelFold folderName1[, folderName2] [, folderName3] ...  
NewFold games¸  
(creates the folder games)  
Done  
Done  
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.  
Appendix A: Functions and Instructions  
807  
   
DelType  
DelVar  
DelType var_type  
Deltype “LIST” ¸  
Done  
Deletes all unlocked variables of the type  
specified by var_type.  
Note: Possible values for var_type are:  
ASM, DATA, EXPR, FUNC, GDB, LIST, MAT, PIC,  
PRGM, STR, TEXT, AppVar_type_name, All.  
CATALOG  
DelVar var1[, var2] [, var3] ...  
2! a¸  
2
(a+2)^2¸  
DelVar a¸  
(a+2)^2¸  
16  
Done  
(a+2)ñ  
Deletes the specified variables from memory.  
deSolve() MATH/Calculus menu  
deSolve(1stOr2ndOrderOde, independentVar,  
Note: To type a prime symbol ('), press  
2 È.  
dependentVar)  
a general solution  
Returns an equation that explicitly or implicitly  
specifies a general solution to the 1st- or 2nd-  
order ordinary differential equation (ODE). In the  
ODE:  
deSolve(y''+2y'+y=x^2,x,y)¸  
ë 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.  
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)=  
2
+@3  
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.  
solve(ans(1),y) ¸  
x2 + 2i@3  
( )  
y=tanê  
+@n1øp  
2
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)  
x
sin(y)=(e øy+cos(y))øy'  
a particular solution  
deSolve(ode and y(0)=0,x,y)!soln  
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  
¸
ë(2øsin(y)+yñ)  
x
ëx  
=ë(e ì1)øe øsin(y)  
2
808  
Appendix A: Functions and Instructions  
     
the general solution.  
soln|x=0 and y=0 ¸  
true  
Done  
initialCondition is an equation of the form:  
d(right(eq)ìleft(eq),x)/  
(d(left(eq)ìright(eq),y))  
!impdif(eq,x,y) ¸  
dependentVar (initialIndependentValue) =  
initialDependentValue  
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(2ndOrderOde and initialCondition1 and  
initialCondition2, independentVar,  
deSolve(y''=y^(ë1/2) and y(0)=0 and  
y'(0)=0,t,y) ¸  
2øy3/4  
dependentVar) a particular solution  
=t  
3
Returns a particular solution that satisfies  
2ndOrderOde and has a specified value of the  
dependent variable and its first derivative at one  
point.  
solve(ans(1),y) ¸  
2/3ø(3øt)4/3  
2
y=  
and t0  
4
For initialCondition1, use the form:  
dependentVar (initialIndependentValue) =  
initialDependentValue  
For initialCondition2, use the form:  
dependentVar' (initialIndependentValue) =  
initial1stDerivativeValue  
deSolve(2ndOrderOde and boundaryCondition1 and  
deSolve(w''ì2w'/x+(9+2/x^2)w=  
xùe^(x) and w(p/6)=0 and  
w(p/3)=0,x,w) ¸  
boundaryCondition2, independentVar,  
dependentVar)  
a particular solution  
p
Returns a particular solution that satisfies  
2ndOrderOde and has specified values at two  
different points.  
3
e øxøcos(3øx)  
w=  
10  
p
6
e øxøsin(3øx)  
xex  
10  
ì
+
10  
det()  
MATH/Matrix menu  
det(squareMatrix[, tol])  
expression  
det([a,b;c,d])¸  
aødìbøc  
Returns the determinant of squareMatrix.  
det([1,2;3,4])¸  
ë2  
Optionally, any matrix element is treated as 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  
[
]
0
0
1
det(mat1) ¸  
det(mat1,.1) ¸  
1.E20  
If tol is omitted or not used, the default  
tolerance is calculated as:  
5Eë 14 ù max(dim(squareMatrix))  
ù rowNorm(squareMatrix)  
Appendix A: Functions and Instructions  
809  
 
diag()  
MATH/Matrix menu  
diag(list)  
diag(rowMatrix)  
diag(columnMatrix)  
matrix  
2 0 0  
0 4 0  
0 0 6  
matrix  
matrix  
diag({2,4,6})¸  
Returns a matrix with the values in the argument  
list or matrix in its main diagonal.  
diag(squareMatrix)  
rowMatrix  
4 6 8  
1 2 3  
[4,6,8;1,2,3;5,7,9]¸  
Returns a row matrix containing the elements  
from the main diagonal of squareMatrix.  
5 7 9  
diag(ans(1))¸  
[4 2 9]  
squareMatrix must be square.  
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"  
"Your name",Str1  
"Month you were born",  
seq(string(i),i,1,12),Var1  
:Request  
:Dropdown  
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.  
:EndDlog  
: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(list)  
Returns the dimension of list.  
dim(matrix) list  
integer  
dim({0,1,2})¸  
3
dim([1,ë 1,2;ë 2,3,5])¸  
{2 3}  
Returns the dimensions of matrix as a two-  
element list {rows, columns}.  
dim(string)  
integer  
dim("Hello")¸  
5
Returns the number of characters contained in  
character string string.  
dim("Hello"&" there")¸  
11  
810  
Appendix A: Functions and Instructions  
     
Disp  
CATALOG  
Disp [exprOrString1] [, exprOrString2] ...  
Disp "Hello"¸  
Hello  
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}  
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.  
Disp 180_min4 _hr ¸  
3.ø_hr  
Note: To type an underscore ( _ ), press ¥   
If Pretty Print = ON, expressions are displayed in  
pretty print.  
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.  
DispG  
CATALOG  
DispG  
In function graphing mode:  
Displays the current contents of the Graph screen. Program segment:  
©
:5ù cos(x)! y1(x)  
:ë 10! xmin  
:10! xmax  
:ë 5! ymin  
:5! ymax  
:DispG  
©
DispHome CATALOG  
DispHome  
Program segment:  
Displays the current contents of the Home screen.  
©
:Disp "The result is: ",xx  
:Pause "Press Enter to quit"  
:DispHome  
:EndPrgm  
DispTbl  
CATALOG  
DispTbl  
5ùcos(x)!y1(x) ¸  
DispTbl ¸  
Displays the current contents of the Table screen.  
Note: The cursor pad is active for scrolling. Press  
N or ¸ to resume execution if in a  
program.  
Appendix A: Functions and Instructions  
811  
       
4DMS  
MATH/Angle menu  
expression 4DMS  
In Degree angle mode:  
45.371 4DMS¸  
list 4DMS  
matrix 4DMS  
45ó 22'15.6"  
{45.371,60} 4DMS¸  
Interprets the argument as an angle and displays  
{45ó 22'15.6" 60ó }  
the equivalent DMS (DDDDDD¡MM¢SS.ss£) number.  
See ¡, ', " on page 910 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.  
dotP()  
MATH/Matrix/Vector ops menu  
dotP(list1, list2)  
expression  
dotP({a,b,c},{d,e,f})¸  
aø d+bø e+cø f  
Returns the “dot” product of two lists.  
dotP({1,2},{5,6})¸  
17  
dotP(vector1, vector2)  
expression  
dotP([a,b,c],[d,e,f])¸  
aø d+bø e+cø f  
Returns the “dot” product of two vectors.  
dotP([1,2,3],[4,5,6])¸  
32  
Both must be row vectors, or both must be  
column vectors.  
DrawFunc CATALOG  
DrawFunc expression  
In function graphing mode and ZoomStd  
window:  
Draws expression as a function, using x as the  
independent variable.  
DrawFunc 1.25xù cos(x)¸  
Note: Regraphing erases all drawn items.  
DrawInv CATALOG  
DrawInv expression  
In function graphing mode and ZoomStd  
window:  
Draws the inverse of expression by plotting x  
values on the y axis and y values on the x axis.  
x is the independent variable.  
DrawInv 1.25xù cos(x)¸  
Note: Regraphing erases all drawn items.  
812  
Appendix A: Functions and Instructions  
       
DrawParm CATALOG  
DrawParm expression1, expression2  
In function graphing mode and ZoomStd  
window:  
[, tmin] [, tmax] [, tstep]  
Draws the parametric equations expression1 and  
expression2, using t as the independent variable.  
DrawParm tù cos(t),tù sin(t),0,10,.1  
¸
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.  
DrawPol CATALOG  
DrawPol expression[, qmin] [, qmax] [, qstep]  
In function graphing mode and ZoomStd  
window:  
Draws the polar graph of expression, using q as  
the independent variable.  
DrawPol 5ù cos(3ù q),0,3.5,.1¸  
Defaults for qmin, qmax, and qstep are the current  
settings for the Window variables qmin, qmax,  
and qstep. Specifying values does not alter the  
window settings. If the current graphing mode is  
not polar, these three arguments are required.  
Note: Regraphing erases all drawn items.  
DrawSlp CATALOG  
DrawSlp x1, y1, slope  
In function graphing mode and ZoomStd  
window:  
Displays the graph and draws a line using the  
formula yì y1=slopeø (xì x1).  
DrawSlp 2,3,ë 2¸  
Note: Regraphing erases all drawn items.  
DropDown CATALOG  
DropDown titleString, {item1String, item2String, ...},  
See Dialog program listing example.  
varName  
Displays a drop-down menu with the name  
titleString and containing the items 1:item1String,  
2:item2String, and so forth. DropDown must be  
within a Dialog...EndDlog block.  
If varName already exists and has a value within  
the range of items, the referenced item is  
displayed as the default selection. Otherwise, the  
menu’s first item is the default selection.  
When you select an item from the menu, the  
corresponding number of the item is stored in the  
variable varName. (If necessary, DropDown  
creates varName.)  
Appendix A: Functions and Instructions  
813  
       
DrwCtour CATALOG  
DrwCtour expression  
DrwCtour list  
In 3D graphing mode:  
(1/5)x^2+(1/5)y^2ì10!z1(x,y) ¸  
Draws contours on the current 3D graph at the z  
Done  
values specified by expression or list. The 3D  
graphing mode must already be set. DrwCtour  
automatically sets the graph format style to  
CONTOUR LEVELS.  
L10!xmin:10!xmax ¸  
L10!ymin:10!ymax ¸  
L10!zmin:10!zmax ¸  
0!ncontour ¸  
10  
10  
10  
0
DrwCtour {L9,L4.5,L3,0,4.5,9} ¸  
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.  
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 ¥ Í  
Press X, Y, or Z to look down the  
corresponding axis.  
í
^ key  
mantissaEexponent  
2.3í 4¸  
23000.  
Enters a number in scientific notation. The  
2.3í 9+4.1í 15¸  
4.1í 15  
exponent  
number is interpreted as mantissa × 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^()  
¥ s key  
e^(expression1)  
expression  
e^(1) ¸  
e^(1.) ¸  
e^(3)^2 ¸  
e
2.718...  
e9  
Returns e raised to the expression1 power.  
Note: On the TI-89 Titanium, pressing ¥ s to  
display e^( is different from pressing j [E].  
On the Voyage 200, 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 or  
Gradian angle mode.  
e^(list1)  
list  
e^({1,1.,0,.5}) ¸  
{e 2.718... 1 1.648...}  
Returns e raised to the power of each element in  
list1.  
e^(squareMatrix1)  
squareMatrix  
e^([1,5,3;4,2,1;6,ë2,1]) ¸  
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.  
814  
Appendix A: Functions and Instructions  
     
eigVc()  
MATH/Matrix menu  
eigVc(squareMatrix) matrix  
In Rectangular complex format mode:  
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:  
[L1,2,5;3,L6,9;2,L5,7]!m1¸  
ë31 ë26 9  
5
2 ë 5 7  
eigVc(m1)¸  
ë.800… .767…  
.767…  
.573…+.052…øi .573…ì.052…øi  
.484…  
2
2
2
x
+ x  
+ … + x  
n
= 1  
1
2
.352… .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:  
Returns a list of the eigenvalues of a real or  
complex squareMatrix.  
[L1,2,5;3,L6,9;2,L5,7]!m1¸  
ë31 ë26 9  
5
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.  
2 ë 5 7  
eigVl(m1)¸  
{ë4.409… 2.204…+.763…øi  
2.204…ì.763…øi}  
Else  
See If, page 830.  
ElseIf  
CATALOG See also If, page 830.  
If Boolean expression1 Then  
block1  
ElseIf Boolean expression2 Then  
Program segment:  
©
: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  
©
EndCustm See Custom, page 802.  
EndDlog See Dialog, page 810.  
EndFor  
See For, page 822.  
EndFunc See Func, page 823.  
See If, page 830.  
EndIf  
Appendix A: Functions and Instructions  
815  
     
EndLoop See Loop, page 840.  
EndPrgm See Prgm, page 855.  
EndTBar See ToolBar, page 891.  
EndTry  
See Try, page 891.  
EndWhile See While, page 894.  
entry()  
CATALOG  
entry() expression  
entry(integer) expression  
On the Home screen:  
1
x
1+1/x ¸  
+ 1  
Returns a previous entry-line entry from the  
Home screen history area.  
1
x+1  
integer, if included, specifies which entry  
1+1/entry(1)¸  
¸
2ì  
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)  
Note: If the last entry is still highlighted on the  
Home screen, pressing ¸ is equivalent to  
executing entry(1).  
1
¸
5/3ì  
3ø (3ø x+2)  
1
entry(4)¸  
+ 1  
x
exact()  
MATH/Number menu  
exact(expression1 [, tol])  
exact(list1 [, tol]) list  
exact(matrix1 [, tol])  
expression  
exact(.25)¸  
1/4  
333333  
1000000  
matrix  
exact(.333333)¸  
exact(.33333,.001)  
exact(3.5x+y)¸  
Uses Exact mode arithmetic regardless of the  
Exact/Approx mode setting to return, when  
possible, the rational-number equivalent of the  
argument.  
1/3  
7ø x  
+y  
2
tol specifies the tolerance for the conversion; the  
default is 0 (zero).  
exact({.2,.33,4.125})¸  
33  
{1à5  
33à8}  
100  
816  
Appendix A: Functions and Instructions  
   
Exec  
CATALOG  
Exec string [, expression1] [, expression2] ...  
Executes a string consisting of a series of Motorola  
68000 op-codes. These codes act as a form of an  
assembly-language program. If needed, the  
optional expressions let you pass one or more  
arguments to the program.  
For more information, check the TI Web site:  
http://www.ti.com/calc  
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  
: temp+i! temp  
: If temp>20  
: Exit  
Exit is not allowed outside the three looping  
structures (For, While, or Loop).  
:EndFor  
:Disp temp  
Contents of temp after execution: 21  
exp4list() CATALOG  
exp4list(expression,var)  
list  
solve(x^2ì xì 2=0,x)¸  
x=2 or  
x=ë 1  
Examines expression for equations that are  
separated by the word “or,” and returns a list  
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.  
expand() MATH/Algebra menu  
expand(expression1 [, var])  
expand(list1 [,var]) list  
expand(matrix1 [,var])  
expression  
expand((x+y+1)^2)¸  
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.  
Appendix A: Functions and Instructions  
817  
       
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  
expand((x+y+1)^2,y)¸  
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ñ ì 2  
+ x+1  
Hint: For rational expressions, propFrac() is a  
faster but less extreme alternative to expand().  
expand(ans(1),x)¸  
1
1
Note: See also comDenom() for an expanded  
numerator over an expanded denominator.  
+
+ x+1  
xì 2  
x+2  
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.  
ln(2xù y)+(2xù y)¸  
ln(2ø xø y)+(2ø xø y)  
expand(ans(1))¸  
ln(xø y)+2ø (xø y)+ln(2)  
expand(ans(1))|y>=0¸  
expand(expression1, [var]) also distributes  
absolute values, sign(), and exponentials,  
regardless of var.  
ln(x)+2ø xø y+ln(y)+ln(2)  
sign(xù y)+abs(xù y)+ e^(2x+y)¸  
e
2ø x+y +sign(xø y)+|xø y|  
Note: See also tExpand() for trigonometric  
angle-sum and multiple-angle expansion.  
expand(ans(1))¸  
sign(x)øsign(y)+|x|ø|y|+(ex)2øey  
expr()  
MATH/String menu  
expr(string)  
expression  
expr("1+2+x^2+x")¸  
xñ +x+3  
Returns the character string contained in 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)¸  
818  
Appendix A: Functions and Instructions  
 
ExpReg  
MATH/Statistics/Regressions menu  
ExpReg list1, list2 [, [list3] [, list4, list5]]  
In function graphing mode:  
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  
¥%  
factor()  
MATH/Algebra menu  
factor(expression1[, var])  
factor(list1[,var]) list  
factor(matrix1[,var])  
expression  
factor(a^3ù x^2ì aù x^2ì a^3+a)¸  
aø(aì1)ø(a+1)ø(xì1)ø(x+1)  
matrix  
factor(x^2+1)¸  
factor(x^2ì 4)¸  
factor(x^2ì 3)¸  
factor(x^2ì a)¸  
xñ +1  
(xì 2)ø (x+2)  
xñ ì 3  
factor(expression1) returns expression1 factored  
with respect to all of its variables over a common  
denominator.  
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.  
xñ ì a  
factor(expression1,var) returns expression1  
factor(a^3ù x^2ì aù x^2ì a^3+a,x)¸  
factored with respect to variable var.  
aø (añ ì 1)ø (xì 1)ø (x+1)  
expression1 is factored as much as possible toward  
real factors that are linear in var, even if it  
introduces irrational constants or subexpressions  
that are irrational in other variables.  
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  
(x+a)ø (xì a)  
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.  
Appendix A: Functions and Instructions  
819  
   
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.  
factor(x^5+4x^4+5x^3ì 6xì 3) ¸  
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.  
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.  
factor(152417172689) ¸  
123457ø1234577  
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  
Fill expression, matrixVar  
matrix  
1 2  
3 4  
Done  
[1,2;3,4]!amatrx ¸  
[
]
Replaces each element in variable matrixVar with  
expression.  
Fill 1.01,amatrx ¸  
1.01 1.01  
1.01 1.01  
amatrx ¸  
[
]
matrixVar must already exist.  
Fill expression, listVar  
list  
{1,2,3,4,5}!alist ¸  
{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(expression)  
integer  
floor(ë2.14) ¸  
ë3.  
Returns the greatest integer that is the  
argument. This function is identical to int().  
The argument can be a real or a complex number.  
floor(list1)  
floor(matrix1)  
list  
floor({3/2,0,ë 5.3})¸  
matrix  
{1 0 ë 6.}  
Returns a list or matrix of the floor of each  
element.  
floor([1.2,3.4;2.5,4.8])¸  
1. 3.  
2. 4.  
Note: See also ceiling() and int().  
[
]
820  
Appendix A: Functions and Instructions  
   
fMax()  
MATH/Calculus menu  
fMax(expression, var)  
Boolean expression  
fMax(1ì (xì a)^2ì (xì b)^2,x)¸  
Returns a Boolean expression specifying  
candidate values of var that maximize expression  
or locate its least upper bound.  
a+b  
2
x =  
fMax(.5x^3ì xì 2,x)¸  
x = ˆ  
Use the “|” operator to restrict the solution  
interval and/or specify the sign of other undefined  
variables.  
fMax(.5x^3ì xì 2,x)|x1¸  
x=ë.816...  
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(expression, var)  
Boolean expression  
fMin(1ì (xì a)^2ì (xì b)^2,x)¸  
x=ˆ or x=ë ˆ  
Returns a Boolean expression specifying  
candidate values of var that minimize expression or  
locate its greatest lower bound.  
fMin(.5x^3ì xì 2,x)|x1¸ x=1  
fMin(aù x^2,x)¸  
Use the “|” operator to restrict the solution  
interval and/or specify the sign of other undefined  
variables.  
x=ˆ or x=ë ˆ or x=0 or a=0  
fMin(aù x^2,x)|a>0 and x>1¸  
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.  
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:  
Deselects the specified Y= functions for the  
current graphing mode.  
FnOff 1,3 ¸ deselects y1(x) and  
y3(x).  
In parametric graphing mode:  
FnOff 1,3 ¸ deselects xt1(t), yt1(t),  
xt3(t), and yt3(t).  
Appendix A: Functions and Instructions  
821  
     
FnOn  
CATALOG  
FnOn  
Selects all Y= functions that are defined for the  
current graphing mode.  
In split-screen, two-graph mode, FnOn only  
applies to the active graph.  
FnOn [1] [, 2] ... [,99]  
Selects the specified Y= functions for the current  
graphing mode.  
Note: In 3D graphing mode, only one function at  
a time can be selected. FnOn 2 selects z2(x,y) and  
deselects any previously selected function. In the  
other graph modes, previously selected functions  
are not affected.  
For  
CATALOG  
For var, low, high [, step]  
block  
EndFor  
Program segment:  
©
:0!tempsum : 1!step  
:For i,1,100,step  
: tempsum+i!tempsum  
:EndFor  
Executes the statements in block iteratively for  
each value of var, from low to high, in increments  
of step.  
: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 tempsum when step  
is changed to 2:  
format() MATH/String menu  
format(expression[, formatString])  
string  
format(1.234567,"f3")¸  
format(1.234567,"s2")¸  
format(1.234567,"e3")¸  
"1.235"  
Returns expression as a character string based on  
the format template.  
"1.23í 0"  
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.  
"1.235í 0"  
"1.235"  
format(1.234567,"g3")¸  
F[n]: Fixed format. n is the number of digits to  
display after the decimal point.  
format(1234.567,"g3")¸  
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"  
822  
Appendix A: Functions and Instructions  
     
G[n][c]: Same as fixed format but also separates  
digits to the left of the radix into groups of three.  
c specifies the group separator character and  
defaults to a comma. If c is a period, the radix  
will be shown as a comma.  
[Rc]: Any of the above specifiers may be suffixed  
with the Rc radix flag, where c is a single  
character that specifies what to substitute for the  
radix point.  
fPart()  
MATH/Number menu  
fPart(expression1)  
fPart(list1) list  
fPart(matrix1)  
expression  
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  
Required as the first statement in a multi-  
statement function definition.  
:Return 3ù cos(x):Else:Return  
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(number1, number2)  
expression  
gcd(18,33) ¸  
3
Returns the greatest common divisor of the two  
arguments. The gcd of two fractions is the gcd  
of their numerators divided by the lcm of their  
denominators.  
In Auto or Approximate mode, the gcd of  
fractional floating-point numbers is 1.0.  
gcd(list1, list2)  
list  
gcd({12,14,16},{9,7,5}) ¸  
{3 7 1}  
Returns the greatest common divisors of the  
corresponding elements in list1 and list2.  
gcd(matrix1, matrix2)  
matrix  
gcd([2,4;6,8],[4,8;12,16]) ¸  
2 4  
6 8  
Returns the greatest common divisors of the  
corresponding elements in matrix1 and matrix2.  
[
]
Appendix A: Functions and Instructions  
823  
       
Get  
CATALOG  
Get var  
Program segment:  
Retrieves a CBL 2é (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  
©
GetCalc  
CATALOG  
GetCalc var  
Program segment:  
Retrieves a value from the link port and stores it  
in variable var. This is for unit-to-unit linking.  
©
:Disp "Press Enter when ready"  
:Pause  
:GetCalc L1  
:Disp "List L1 received"  
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.  
©
@ GetCalc var[,port]  
Retrieves a value from the link port and stores it  
in variable var on the receiving TI-89 Titanium.  
If the port is not specified, or port = 0 is specified,  
the TI-89 Titanium waits for data from either  
port.  
If port = 1, the TI-89 Titanium waits for data from  
the USB port.  
If port = 2, the TI-89 Titanium waits for data from  
the I/O port.  
getConfg() CATALOG  
getConfg() ListPairs  
getConfg()¸  
{"Product Name" "Advanced  
Returns a list of calculator attributes. The  
attribute name is listed first, followed by its value.  
Mathematics Software"  
"Version" "2.00, 09/25/1999"  
"Product ID" "03-1-4-68"  
"ID #" "01012 34567 ABCD"  
"Cert. Rev. #" 0  
"Screen Width" 160  
"Screen Height" 100  
"Window Width" 160  
"Window Height" 67  
"RAM Size" 262132  
"Free RAM" 197178  
"Archive Size" 655360  
"Free Archive" 655340}  
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.  
getDate() CATALOG  
getDate() list  
getDate()  
¸
{2002 2 22}  
Returns a list giving the date according to the  
current value of the clock. The list is in  
{year,month,day} format.  
824  
Appendix A: Functions and Instructions  
       
getDenom() MATH/Algebra/Extract menu  
getDenom(expression1)  
expression  
getDenom((x+2)/(yì 3))¸  
getDenom(2/7)¸  
yì 3  
Transforms expression1 into one having a reduced  
common denominator, and then returns its  
denominator.  
7
getDenom(1/x+(y^2+y)/y^2)¸  
xø y  
getDtFmt() CATALOG  
getDtFmt() integer  
Integer values:  
1 = MM/DD/YY  
2 = DD/MM/YY  
3 = MM.DD.YY  
4 = DD.MM.YY  
5 = YY.MM.DD  
6 = MM-DD-YY  
7 = DD-MM-YY  
8 = YY-MM-DD  
Returns an integer representing the date format  
that is currently set on the device.  
getDtStr() CATALOG  
getDtStr([integer]) string  
Optional integer values:  
1 = MM/DD/YY  
2 = DD/MM/YY  
3 = MM.DD.YY  
4 = DD.MM.YY  
5 = YY.MM.DD  
6 = MM-DD-YY  
7 = DD-MM-YY  
8 = YY-MM-DD  
Returns a string of the current date in the current  
date format. For example, a returned string of  
28/09/02 represents the 28th day of September,  
2002 (when the date format is set to  
DD/MM/YY).  
If you enter the optional integer that corresponds  
to a date format, the string returns the current  
date in the specified format.  
getFold() CATALOG  
getFold()  
nameString  
getFold()¸  
"main"  
"main"  
"main"  
Returns the name of the current folder as a string.  
getFold()! oldfoldr¸  
oldfoldr¸  
getKey() CATALOG  
getKey()  
integer  
Program listing:  
Returns the key code of the key pressed. Returns  
0 if no key is pressed.  
:Disp  
:Loop  
: getKey()!key  
: while key=0  
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 Ù.  
:
getKey()!key  
: EndWhile  
: Disp key  
: If key = ord("a")  
: Stop  
For a listing of key codes, see Appendix B.  
:EndLoop  
Appendix A: Functions and Instructions  
825  
         
getMode() CATALOG  
getMode(modeNameString)  
string  
getMode("angle")¸  
getMode("graph")¸  
getMode("all")¸  
"RADIAN"  
getMode("ALL")  
ListStringPairs  
"FUNCTION"  
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"  
"Split 2 App" "Graph"  
"Number of Graphs" "1"  
"Graph 2" "FUNCTION"  
For a listing of mode names and possible settings,  
see setMode().  
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  
expression  
getNum(expression1)  
getNum((x+2)/(yì 3))¸  
getNum(2/7)¸  
x+2  
2
Transforms expression1 into one having a reduced  
common denominator, and then returns its  
numerator.  
getNum(1/x+1/y)¸  
x+y  
getTime() CATALOG  
getTime() list  
Returns a list giving the time according to the  
current value of the clock. The list is in  
{hour,minute,second} format. The time is returned  
in the 24 hour format.  
getTmFmt()  
CATALOG  
getTmFmt() integer  
Integer values:  
Returns an integer representing the clock time  
format that is currently set on the device.  
12 = 12 hour clock  
24 = 24 hour clock  
getTmStr() CATALOG  
getTmStr([integer]) string  
Optional integer values:  
12 = 12 hour clock  
24 = 24 hour clock  
Returns a string of the current clock time in the  
current time format.  
If you enter the optional integer that corresponds  
to a clock time format, the string returns the  
current time in the specified format.  
826  
Appendix A: Functions and Instructions  
         
getTmZn() CATALOG  
getTmZn() integer  
If Greenwich Mean Time is 14:07:07, it is:  
Returns an integer representing the time zone  
8:07:07 a.m. in Denver, Colorado (Mountain  
Daylight Time)  
that is currently set on the device.  
(–360 minutes from GMT)  
The returned integer represents the number of  
minutes the time zone is offset from Greenwich  
Mean Time (GMT), as established in Greenwich,  
England. For example, if the time zone is offset  
from GMT by two hours, the device would return  
120 (minutes).  
16:07:07 p.m. in Brussels, Belgium (Central  
European Standard Time)  
(+120 minutes from GMT)  
Integers for time zones west of GMT are negative.  
Integers for time zones east of GMT are positive.  
getType() CATALOG  
getType(var)  
string  
{1,2,3}! temp¸  
{1 2 3}  
getType(temp)¸  
"LIST"  
Returns a string indicating the data type of  
variable var.  
2+3i! temp¸  
2+3i  
getType(temp)¸  
"EXPR"  
If var has not been defined, returns the string  
"NONE".  
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  
Appendix A: Functions and Instructions  
827  
   
getUnits() CATALOG  
getUnits()  
list  
getUnits() ¸  
{"SI" "Area" "NONE"  
"Capacitance" "_F"  
"Charge" "_coul"  
… }  
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:  
Note: Your screen may display different default  
units.  
{"system" "cat1" "unit1" "cat2" "unit2" …}  
The first string gives the system (SI, ENG/US, or  
CUSTOM). Subsequent pairs of strings give a  
category (such as Length) and its default unit  
(such as _m for meters).  
To set the default units, use setUnits().  
Goto  
CATALOG  
Goto labelName  
Program segment:  
Transfers program control to the label labelName.  
©
:0!temp  
:1!i  
:Lbl TOP  
: temp+i!temp  
: If i<10 Then  
labelName must be defined in the same program  
using a Lbl instruction.  
:
:
i+1!i  
Goto TOP  
: EndIf  
:Disp temp  
©
4Grad  
CATALOG/MATH/Angle menu  
4 Grad expression  
Converts an expression to gradian angle measure.  
In Degree angle mode:  
1.5 4Grad ¸  
In Radian angle mode:  
1.5 4Grad ¸  
1.66667G  
95.493G  
828  
Appendix A: Functions and Instructions  
     
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 currently selected Y= functions  
are ignored.  
In parametric graphing mode and ZoomStd  
window:  
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:  
Function graphing  
Parametric graphing  
Polar graphing  
Graph expr, x  
Graph xExpr, yExpr, t  
Graph expr, q  
Not allowed.  
Graph (v^2ì w^2)/4,v,w¸  
Sequence graphing  
3D graphing  
Graph expr, x, y  
Not allowed.  
Diff Equations graphing  
Note: Use ClrGraph to clear these functions, or  
go to the Y= Editor to re-enable the system Y=  
functions.  
4Hex  
MATH/Base menu  
integer1 4Hex  
integer  
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.  
Appendix A: Functions and Instructions  
829  
   
identity() MATH/Matrix menu  
identity(expression)  
matrix  
identity(4) ¸  
10 01 00 00  
Returns the identity matrix with a dimension of  
expression.  
0 0 1 0  
expression must evaluate to a positive integer.  
0 0 0 1  
If  
CATALOG  
If Boolean expression  
statement  
If Boolean expression Then  
block  
EndIf  
Program segment:  
©
: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.  
©
If Boolean expression Then  
block1  
Else  
block2  
EndIf  
Program segment:  
©
:If x<0 Then  
: Disp "x is negative"  
:
Else  
If Boolean expression evaluates to true, executes  
block1 and then skips block2.  
: Disp "x is positive or zero"  
:EndIf  
©
If Boolean expression evaluates to false, skips block1  
but executes block2.  
block1 and block2 can be a single statement.  
If Boolean expression1 Then  
block1  
ElseIf Boolean expression2 Then  
Program segment:  
©
: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  
expression  
imag(expression1)  
imag(1+2i)¸  
imag(z)¸  
2
0
y
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(list1)  
list  
imag({ë3,4ëi,i}) ¸  
{0 ë1 1}  
Returns a list of the imaginary parts of the  
elements.  
830  
Appendix A: Functions and Instructions  
     
imag(matrix1)  
matrix  
0 0  
c d  
imag([a,b;ic,id]) ¸  
[
]
Returns a matrix of the imaginary parts of the  
elements.  
ImpDif() MATH/Calculus Menu, CATALOG  
ImpDif(equation, independentVar, dependent-  
Var[,order ]) expression  
impDif(x^2+y^2=100,x,y)¸  
-x/y  
where the order defaults to 1.  
Computes the implicit derivative for equations in  
which one variable is defined implicitly in terms  
of another.  
Indirection See #(), page 908.  
Input  
CATALOG  
Input  
Program segment:  
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  
: xc! XLIST[i]  
: yc! YLIST[i]  
:EndFor  
When you press ¸, the program resumes.  
©
Input [promptString,] var  
Input [promptString], var pauses the program,  
Program segment:  
©
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.  
©
InputStr  
CATALOG  
InputStr [promptString,] var  
Program segment:  
Pauses the program, displays promptString on 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.  
Appendix A: Functions and Instructions  
831  
     
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(expression)  
int(list1)  
int(matrix1)  
integer  
int(ë 2.5)¸  
ë 3.  
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(number1, number2)  
intDiv(list1, list2) list  
intDiv(matrix1, matrix2)  
integer  
matrix  
intDiv(ë 7,2)¸  
ë 3  
intDiv(4,5)¸  
0
intDiv({12,ë 14,ë 16},{5,4,ë 3})¸  
Returns the signed integer part of argument 1  
divided by argument 2.  
{2 ë 3 5}  
For lists and matrices returns the signed integer  
part of argument 1 divided by argument 2 for  
each element pair.  
integrate See (), page 907.  
iPart() MATH/Number menu  
iPart(number)  
list  
integer  
iPart(ë 1.234)¸  
ë 1.  
iPart(list1)  
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.  
isArchiv() CATALOG  
isArchiv(var_name) true,false  
isArchiv(PROG1)¸  
True  
Determines if var_name is archived or not.  
Returns true if var_name is archived. Returns  
false if var_name is not archived.  
isClkOn() CATALOG  
isClkOn() true,false  
Determines if the clock is ON or OFF. Returns  
true if the clock is ON. Returns false if the clock is  
OFF.  
832  
Appendix A: Functions and Instructions  
           
isLocked() CATALOG  
isLocked(var_name) true,false  
isLocked(PROG1)¸  
False  
Determines if var_name is locked or not.  
Returns true if var_name is locked or archived.  
Returns false if var_name is not locked or  
archived.  
isPrime() MATH/Test menu  
isPrime(number)  
Boolean constant expression  
IsPrime(5) ¸  
IsPrime(6) ¸  
true  
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  
isVar()  
Item  
CATALOG  
isVar(var_name) true,false  
isArchiv(PROG1)¸  
True  
Determines if var_name is in use. Returns true  
if var_name exists. Returns false if var_name  
does not exist.  
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  
Lbl labelName  
Program segment:  
Defines a label with the name labelName in the  
program.  
©
:Lbl lbl1  
:InputStr "Enter password", str1  
:If str1ƒpassword  
: Goto lbl1  
:Disp "Welcome to ..."  
©
You can use a Goto labelName instruction to  
transfer program control to the instruction  
immediately following the label.  
labelName must meet the same naming  
requirements as a variable name.  
Appendix A: Functions and Instructions  
833  
         
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  
{2/3 14 80}  
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.  
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)¸  
left({1,3,ë 2,4},3)¸  
left(x<3)¸  
"He"  
Returns the leftmost num characters contained in  
character string sourceString.  
If you omit num, returns all of sourceString.  
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  
x
Returns the left-hand side of an equation or  
inequality.  
limit()  
MATH/Calculus menu  
limit(expression1, var, point[, direction])  
limit(2x+3,x,5)¸  
limit(1/x,x,0,1)¸  
limit(sin(x)/x,x,0)¸  
13  
ˆ
1
expression  
limit(list1, var, point[, direction])  
list  
limit(matrix1, var, point[, direction])  
matrix  
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.  
834  
Appendix A: Functions and Instructions  
     
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,ˆ) ¸  
undef  
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).  
"
Note: Regraphing erases all drawn items. See  
also PxlLine.  
Line 0,0,6,9,0¸  
LineHorz CATALOG  
LineHorz y [, drawMode]  
In a ZoomStd window:  
Displays the Graph screen and draws, erases, or  
inverts a horizontal line at window position y.  
LineHorz 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 PxlHorz.  
Appendix A: Functions and Instructions  
835  
   
LineTan  
CATALOG  
LineTan expression1, expression2  
In function graphing mode and a ZoomTrig  
window:  
Displays the Graph screen and draws a line  
tangent to expression1 at the point specified.  
Graph cos(x)  
expression1 is an expression or the name of a  
function, where x is assumed to be the  
independent variable, and expression2 is the x  
value of the point that is tangent.  
@
"
H ¥ "  
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  
LinReg list1, list2[, [list3] [, list4, list5]]  
In function graphing mode:  
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  
¥%  
836  
Appendix A: Functions and Instructions  
     
@list()  
MATH/List menu  
list(list1) list  
@list({20,30,45,70}) ¸  
{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.  
list4mat() MATH/List menu  
list4mat(list [, elementsPerRow])  
matrix  
list4mat({1,2,3})¸  
[1 2 3]  
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.  
4ln  
MATH/String menu  
4 ln expression  
expression  
Log(x)4 ln¸  
Causes the input expression to be  
converted to an expression containing  
only natural logs (ln).  
ln(x)  
ln(10)  
ln()  
2 x key  
ln(expression1)  
expression  
ln(2.0)¸  
.693...  
ln(list1) list  
If complex format mode is REAL:  
Returns the natural logarithm of the argument.  
ln({ë 3,1.2,5})¸  
For a list, returns the natural logarithms of the  
elements.  
Error: Non-real result  
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  
837  
       
LnReg  
MATH/Statistics/Regressions menu  
LnReg list1, list2[, [list3] [, list4, list5]]  
In function graphing mode:  
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¸  
All the lists must have equal dimensions except  
for list5.  
{1 2 2 ...}  
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  
Local var1[, var2] [, var3] ...  
Program listing:  
Declares the specified vars as local variables.  
Those variables exist only during evaluation of a  
program or function and are deleted when the  
program or function finishes execution.  
:prgmname()  
:Prgm  
: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  
Lock var1[, var2] ...  
{1,2,3,4}! L1¸  
Lock L1¸  
{1,2,3,4}  
Done  
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.  
838  
Appendix A: Functions and Instructions  
     
log()  
CATALOG/ ¥ 7 key  
log(expression1[,expression2])  
expression  
log(2.0)¸  
.301...  
log(list1[,expression2])  
list  
If complex format mode is REAL:  
log({ë 3,1.2,5})¸  
Returns the base-expression2 logarithm of the  
argument.  
Error: Non-real result  
For a list, returns the base-expression2 logarithm of  
the elements.  
If complex format mode is RECTANGULAR:  
log({ë 3,1.2,5})¸  
{log(3)+ 1.364…( i .079… log(5)}  
If expression 2 is omitted, 10 is used as base.  
log(squareMatrix1)  
squareMatrix  
In Radian angle mode and Rectangular complex  
format mode:  
Returns the matrix base-expression2 logarithm of  
squareMatrix1. This is not the same as calculating  
the base-expression2 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 …  
.194…ì.315…øi .462…+.270øi  
ë.115…ì.904…øi .488…+.777…øi …  
squareMatrix1 must be diagonalizable. The result  
always contains floating-point numbers.  
log(x,b)  
log(squareMatrix1)  
expression  
Log(10,3) – log(5,3) ¸  
Log(2.0,4)¸  
Log3(2)  
.5  
squareMatrix  
In a list, returns the base expression 2 logarithm of  
the elements.  
4logbase  
MATH/String menu  
expression 4logbase(expression1)  
expression  
Log(10,3) – log(5,5)4logbase(5)  
Causes the input expression to be  
simplified to an expression using base  
expression1.  
¸
log5(30)  
log 5(3)  
Appendix A: Functions and Instructions  
839  
   
Logistic  
MATH/Statistics/Regressions menu  
Logistic list1, list2 [, [iterations], [list3] [, list4, list5]]  
In function graphing mode:  
Calculates the logistic regression and updates all  
the system statistics variables.  
{1,2,3,4,5,6}!L1 ¸  
{1,1.3,2.5,3.5,4.5,4.8}!L2  
¸
{1 2 3 …}  
All the lists must have equal dimensions except  
for list5.  
{1 1.3 2.5 …}  
Done  
Logistic L1,L2 ¸  
list1 represents xlist.  
list2 represents ylist.  
ShowStat ¸  
list3 represents frequency.  
list4 represents category codes.  
list5 represents category include list.  
iterations specifies the maximum number of times  
a solution will be attempted. If omitted, 64 is  
used. Typically, larger values result in better  
accuracy but longer execution times, 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  
Loop  
CATALOG  
Loop  
block  
EndLoop  
Program segment:  
©
:1! i  
:Loop  
Repeatedly executes the statements in block. Note  
that the loop will be executed endlessly, unless a  
: Rand(6)! die1  
: Rand(6)! die2  
: If die1=6 and die2=6  
Goto or Exit instruction is executed within block.  
block is a sequence of statements separated with  
the “:” character.  
:
Goto End  
: i+1! i  
:EndLoop  
:Lbl End  
:Disp "The number of rolls is", i  
©
840  
Appendix A: Functions and Instructions  
     
LU  
MATH/Matrix menu  
LU matrix, lMatName, uMatName, pMatName[, tol]  
[6,12,18;5,14,31;3,8,18]!m1 ¸  
6 12 18  
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.  
5 14 31  
3 8 18  
LU m1,lower,upper,perm ¸  
Done  
15/6 1 00  
0
lMatName ù uMatName = pMatName ù matrix  
lower ¸  
upper ¸  
perm ¸  
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  
16  
0 4  
0 0  
1
1 0 0  
If you use ¥ ¸ or set the mode to  
Exact/Approx=APPROXIMATE, computations  
are done using floating-point arithmetic.  
0 1 0  
0 0 1  
If tol is omitted or not used, the default  
tolerance is calculated as:  
m n  
[m,n;o,p]!m1 ¸  
[o p]  
5Eë 14 ù max(dim(matrix))  
ù rowNorm(matrix)  
LU m1,lower,upper,perm ¸  
Done  
The LU factorization algorithm uses partial  
pivoting with row interchanges.  
1 0  
m  
lower ¸  
1  
o
o p  
møp  
upper ¸  
0 n ì  
o
0 1  
[1 0]  
perm ¸  
mat4data MATH/List menu  
mat4data mat,data[,row1][,col1][,row2][,col2]  
mat4data,m1,d1,1,,,1 ¸  
Done  
Converts a matrix to data.  
Each argument [,row1][,col1][,row2][,col2] can  
be individually omitted. If row1 is omitted the  
default is 1. If col1 is omitted the default is 1. If  
row2 is omitted, the default is “max row.” If col2  
is omitted, the default is “max column.”  
Appendix A: Functions and Instructions  
841  
   
mat4list() MATH/List menu  
mat4list(matrix)  
list  
mat4list([1,2,3])¸  
{1 2 3}  
1 2 3  
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(expression1, expression2)  
max(list1, list2) list  
max(matrix1, matrix2)  
expression  
max(2.3,1.4)¸  
2.3  
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(list)  
Returns the maximum element in list.  
max(matrix1) matrix  
expression  
max({0,1,ë 7,1.3,.5})¸  
1.3  
max([1,ë 3,7;ë 4,0,.3])¸  
[1 0 7]  
Returns a row vector containing the maximum  
element of each column in matrix1.  
Note: See also fMax() and min().  
mean()  
MATH/Statistics menu  
mean(list[, freqlist])  
expression  
mean({.2,0,1,ë.3,.4})¸  
.26  
5/3  
Returns the mean of the elements in list.  
Each freqlist element counts the number of  
consecutive occurrences of the corresponding  
element in list.  
mean({1,2,3},{3,2,1}) ¸  
mean(matrix1[, freqmatrix])  
matrix  
In vector format rectangular mode:  
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(list)  
Returns the median of the elements in list1.  
median(matrix1) matrix  
expression  
median({.2,0,1,ë.3,.4})¸  
.2  
median([.2,0;1,ë.3;.4,ë.5])¸  
[.4 ë.3]  
Returns a row vector containing the medians of  
the columns in matrix1.  
Note: All entries in the list or matrix must  
simplify to numbers.  
842  
Appendix A: Functions and Instructions  
   
MedMed MATH/Statistics/Regressions menu  
MedMed list1, list2[, [list3] [, list4, list5]]  
In function graphing mode:  
Calculates the median-median line and updates  
all the system statistics variables.  
{0,1,2,3,4,5,6}! L1¸  
{0,2,3,4,3,4,6}! L2¸  
MedMed L1,L2¸  
{0 1 2 ...}  
{0 2 3 ...}  
Done  
All the lists must have equal dimensions except  
for list5.  
ShowStat¸  
list1 represents xlist.  
list2 represents ylist.  
list3 represents frequency.  
list4 represents category codes.  
list5 represents category include list.  
Note: list1 through list4 must be a variable name  
or c1–c99 (columns in the last data variable  
shown in the Data/Matrix Editor). list5 does not  
have to be a variable name and cannot be c1–  
c99.  
¸
Regeq(x)! y1(x)¸  
NewPlot 1,1,L1,L2¸  
Done  
Done  
¥%  
mid()  
MATH/String menu  
mid("Hello there",2)¸  
mid(sourceString, start[, count])  
string  
"ello there"  
Returns count characters from character string  
sourceString, beginning with character number  
start.  
mid("Hello there",7,3)¸  
mid("Hello there",1,5)¸  
mid("Hello there",1,0)¸  
"the"  
"Hello"  
""  
If count is omitted or is greater than the  
dimension of sourceString, returns all characters  
from sourceString, beginning with character  
number start.  
count must be 0. If count = 0, returns an empty  
string.  
mid(sourceList, start [, count])  
list  
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}  
{}  
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.  
Appendix A: Functions and Instructions  
843  
 
min()  
MATH/List menu  
min(expression1, expression2)  
expression  
min(2.3,1.4)¸  
1.4  
min(list1, list2)  
list  
min({1,2},{ë 4,3})¸  
{ë 4 2}  
min(matrix1, matrix2)  
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(list)  
Returns the minimum element of list.  
min(matrix1) matrix  
expression  
min({0,1,ë 7,1.3,.5})¸  
ë 7  
min([1,ë 3,7;ë 4,0,.3])¸  
[ë 4 ë 3 .3]  
Returns a row vector containing the minimum  
element of each column in matrix1.  
Note: See also fMin() and max().  
mod()  
MATH/Number menu  
mod(expression1, expression2)  
mod(list1, list2) list  
mod(matrix1, matrix2)  
expression  
mod(7,0)¸  
mod(7,3)¸  
mod(ë 7,3)¸  
mod(7,ë 3)¸  
mod(ë 7,ë 3)¸  
7
1
matrix  
2
Returns the first argument modulo the second  
argument as defined by the identities:  
ë 2  
ë 1  
mod(x,0) x  
mod(x,y) xì y floor(x/y)  
mod({12,ë 14,16},{9,7,ë 5})¸  
{3 0 ë 4}  
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.  
If the arguments are two lists or two matrices,  
returns a list or matrix containing the modulo of  
each pair of corresponding elements.  
Note: See also remain().  
MoveVar CATALOG  
MoveVar var, oldFolder, newFolder  
{1,2,3,4}! L1¸  
MoveVar L1,Main,Games¸  
{1 2 3 4}  
Done  
Moves variable var from oldFolder to newFolder. If  
newFolder does not exist, MoveVar creates it.  
mRow()  
MATH/Matrix/Row ops menu  
mRow(expression, matrix1, index)  
matrix  
mRow(ë 1/3,[1,2;3,4],2)¸  
1 2  
ë 1 ë 4/3  
Returns a copy of matrix1 with each element in  
row index of matrix1 multiplied by expression.  
[
]
mRowAdd() MATH/Matrix/Row ops menu  
mRowAdd(expression, matrix1, index1, index2)  
mRowAdd(ë 3,[1,2;3,4],1,2)¸  
matrix  
1 2  
[
]
0
L2  
Returns a copy of matrix1 with each element in  
row index2 of matrix1 replaced with:  
mRowAdd(n,[a,b;c,d],1,2)¸  
a
b
expression × row index1 + row index2  
[
]
aø n+c bø n+d  
844  
Appendix A: Functions and Instructions  
 
nCr()  
MATH/Probability menu  
nCr(expression1, expression2)  
expression  
zø (zì 2)ø (zì 1)  
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!  
nCr(expression, 0)  
1
ans(1)/nPr(z,c)  
nCr(expression, negInteger)  
0
nCr(expression, posInteger)  
expressionø (expressionì 1)... (expressionì posInteger+1)/  
posInteger!  
nCr(expression, nonInteger)  
expression!/  
((expressionì nonInteger)!ø nonInteger!)  
nCr(list1, list2) list  
nCr({5,4,3},{2,4,2})¸  
{10 1 3}  
Returns a list of combinations based on the  
corresponding element pairs in the two lists. The  
arguments must be the same size list.  
nCr(matrix1, matrix2)  
matrix  
nCr([6,5;4,3],[2,2;2,2])¸  
15 10  
Returns a matrix of combinations based on the  
corresponding element pairs in the two matrices.  
The arguments must be the same size matrix.  
[
]
6
3
nDeriv() MATH/Calculus menu  
nDeriv(expression1, var[, h])  
nDeriv(expression1, var, list)  
expression  
list  
nDeriv(cos(x),x,h)¸  
nDeriv(list, var[, h])  
nDeriv(matrix, var[, h])  
list  
matrix  
limit(nDeriv(cos(x),x,h),h,0)¸  
ë sin(x)  
Returns the numerical derivative as an  
expression. Uses the central difference quotient  
formula.  
nDeriv(x^3,x,0.01)¸  
3.ø (xñ +.000033)  
h is the step value. If h is omitted, it defaults to  
0.001.  
nDeriv(cos(x),x)|x=p/2¸  
ë 1.  
When using list or matrix, the operation gets  
mapped across the values in the list or across the  
matrix elements.  
nDeriv(x^2,x,{.01,.1}) ¸  
{2.ø x 2.ø x}  
Note: See also avgRC() and d().  
NewData CATALOG  
NewData dataVar, list1[, list2] [, list3]...  
NewData mydata,{1,2,3},{4,5,6}¸  
Done  
Creates data variable dataVar, where the columns  
are the lists in order.  
(Go to the Data/Matrix Editor and  
open the var mydata to 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.  
Appendix A: Functions and Instructions  
845  
     
NewData sysData, matrix  
Loads the contents of matrix into the system data  
variable sysData.  
NewFold CATALOG  
NewFold folderName  
NewFold games¸  
Done  
Creates a user-defined folder with the name  
folderName, and then sets the current folder to  
that folder. After you execute this instruction, you  
are in the new folder.  
newList() CATALOG  
newList(numElements)  
list  
newList(4)¸  
{0 0 0 0}  
Returns a list with a dimension of numElements.  
Each element is zero.  
newMat() CATALOG also Math/Matrix menu  
newMat(numRows, numColumns)  
matrix  
0 0 0  
newMat(2,3)¸  
[
]
0 0 0  
Returns a matrix of zeros with the dimension  
numRows by numColumns.  
NewPic  
CATALOG  
NewPic matrix, picVar [, maxRow][, maxCol]  
NewPic [1,1;2,2;3,3;4,4;5,5;  
5,1;4,2;2,4;1,5],xpic¸  
Done  
Creates a pic variable picVar based on matrix.  
matrix must be an n×2 matrix in which each 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.  
846  
Appendix A: Functions and Instructions  
   
NewPlot CATALOG  
NewPlot n, type, xList [,[yList], [frqList], [catList],  
FnOff¸  
PlotsOff¸  
Done  
Done  
[includeCatList], [mark] [, bucketSize]]  
{1,2,3,4}!L1¸  
{2,3,4,5}!L2¸  
NewPlot 1,1,L1,L2,,,,4¸  
{1 2 3 4}  
{2 3 4 5}  
Done  
Creates a new plot definition for plot number n.  
type specifies the type of the graph plot.  
1 = scatter plot  
Press ¥ % to display:  
2 = xyline plot  
3 = box plot  
4 = histogram  
5 = modified box plot  
mark specifies the display type of the mark.  
1 = è (box)  
2 = × (cross)  
3 = + (plus )  
4 = é (square)  
5 = ø (dot)  
bucketSize is the width of each histogram  
“bucket” (type = 4), and will vary based on the  
window variables xmin and xmax. bucketSize must  
be >0. Default = 1.  
Note: n can be 1–9. Lists must be variable names  
or c1–c99 (columns in the last data variable  
shown in the Data/Matrix Editor), except for  
includeCatList, which does not have to be a  
variable name and cannot be c1–c99.  
NewProb CATALOG  
NewProb  
NewProb ¸  
Done  
Performs a variety of operations that let you  
begin a new problem from a cleared state  
without resetting the memory.  
Clears all single-character variable names  
(Clear a–z) in the current folder, unless the  
variables are locked or archived.  
Turns off all functions and stat plots (FnOff  
and PlotsOff) in the current graphing mode.  
Perfoms ClrDraw, ClrErr, ClrGraph,  
ClrHome, ClrIO, and ClrTable.  
nInt()  
MATH/Calculus menu  
nInt(expression1, var, lower, upper)  
expression  
nInt(e^(ë x^2),x,ë 1,1)¸  
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.  
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.  
nInt(cos(x),x,ë p,p+1í ë 12)¸  
ë 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  
Appendix A: Functions and Instructions  
847  
Nest nInt() to do multiple numeric integration.  
Integration limits can depend on integration  
variables outside them.  
nInt(nInt(e^(ë xù y)/(x^2ì y^2),  
y,ë x,x),x,0,1)¸  
3.304...  
Note: See also ().  
norm()  
not  
MATH/Matrix/Norms menu  
norm(matrix)  
expression  
norm([a,b;c,d])¸  
Returns the Frobenius norm.  
añ +bñ +cñ +dñ  
norm([1,2;3,4])¸  
30  
MATH/Test menu  
not Boolean expression1  
Boolean expression  
not 2>=3¸  
true  
x2  
Returns true, false, or a simplified Boolean  
expression1.  
not x<2¸  
not not innocent¸  
In Hex base mode:  
innocent  
not integer1  
integer  
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.  
not 0h7AC36 ¸  
0hFFF853C9  
Important: Zero, not the letter O.  
In Bin base mode:  
0b1001014 dec ¸  
37  
not 0b100101 ¸  
0b11111111111111111111111111011010  
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).  
ans(1)4 dec ¸  
ë38  
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.  
Note: To type the 4 conversion operator, press  
2 . You can also select base conversions  
from the MATH/Base menu.  
nPr()  
MATH/Probability menu  
nPr(expression1, expression2)  
expression  
nPr(z,3)¸  
zø (zì 2)ø (zì 1)  
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!/  
(expressionì nonInteger)!  
nPr(list1, list2)  
list  
nPr({5,4,3},{2,4,2})¸  
{20 24 6}  
Returns a list of permutations based on the  
corresponding element pairs in the two lists. The  
arguments must be the same size list.  
848  
Appendix A: Functions and Instructions  
   
nPr(matrix1, matrix2)  
matrix  
nPr([6,5;4,3],[2,2;2,2])¸  
30 20  
12  
Returns a matrix of permutations based on the  
corresponding element pairs in the two matrices.  
The arguments must be the same size matrix.  
[
]
6
nSolve() MATH/Algebra menu  
nSolve(equation, varOrGuess)  
number or error_string  
nSolve(x^2+5xì 25=9,x)¸  
3.844...  
ë 2.  
Iteratively searches for one approximate real  
numeric solution to equation for its one variable.  
Specify varOrGuess as:  
nSolve(x^2=4,x=ë 1)¸  
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() 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.  
nSolve(x^2+5xì 25=9,x)|x<0¸  
ë 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().  
OneVar  
MATH/Statistics menu  
OneVar list1 [[, list2] [, list3] [, list4]]  
{0,2,3,4,3,4,6}! L1¸  
OneVar L1¸  
ShowStat¸  
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.  
Appendix A: Functions and Instructions  
849  
or  
MATH/Test menu  
Boolean expression1 or Boolean expression2  
expression  
Boolean  
x3 or x4¸  
x3  
Program segment:  
Returns true or false or a simplified form of the  
original entry.  
©
If x<0 or x5  
Goto END  
Returns true if either or both expressions simplify  
to true. Returns false only if both expressions  
evaluate to false.  
©
If choice=1 or choice=2  
Disp "Wrong choice"  
©
Note: See xor.  
integer1 or integer2  
integer  
In Hex base mode:  
Compares two real integers bit-by-bit using an or  
operation. Internally, both integers are converted  
to signed, 32-bit binary numbers. When  
0h7AC36 or 0h3D5F ¸  
0h7BD7F  
Important: Zero, not the letter O.  
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 represents the bit results,  
and is displayed according to the Base mode.  
In Bin base mode:  
0b100101 or 0b100 ¸  
0b100101  
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.  
ord()  
MATH/String menu  
ord(string)  
ord(list1)  
integer  
list  
ord("hello")¸  
char(104)¸  
104  
"h"  
24  
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.  
850  
Appendix A: Functions and Instructions  
P4Rx()  
P4Ry()  
part()  
MATH/Angle menu  
P4Rx(rExpression, qExpression)  
P4Rx(rList, qList) list  
P4Rx(rMatrix, qMatrix)  
expression  
In Radian angle mode:  
P4Rx(r,q)¸  
cos(q)ø r  
matrix  
P4Rx(4,60¡)¸  
2
Returns the equivalent x-coordinate of the  
(r, q) pair.  
P4Rx({ë 3,10,1.3},{p/3,ë p/4,0})¸  
Note: The q argument is interpreted as either a  
degree, gradian or radian angle, according to the  
current angle mode. If the argument is an  
expression, you can use ó , G o r ô to override  
the angle mode setting temporarily.  
{ë 3/2 5ø 2 1.3}  
MATH/Angle menu  
P4Ry(rExpression, qExpression)  
P4Ry(rList, qList) list  
P4Ry(rMatrix, qMatrix)  
expression  
In Radian angle mode:  
P4Ry(r,q)¸  
sin(q)ø r  
matrix  
2ø 3  
P4Ry(4,60¡)¸  
Returns the equivalent y-coordinate of the  
(r, q) pair.  
P4Ry({ë 3,10,1.3},{p/3,ë p/4,0})¸  
Note: The q argument is interpreted as either a  
degree, radian or gradian angle, according to the  
current angle mode. If the argument is an  
expression, you can use ó , G o r ô to override  
the angle mode setting temporarily.  
ë 3ø 3  
2  
{
ë 5ø  
0.}  
2
CATALOG  
part(expression1[,nonNegativeInteger])  
This advanced programming function lets you  
identify and extract all of the sub-expressions in  
the simplified result of expression1.  
For example, if expression1 simplifies to  
cos(pù x+3):  
The cos() function has one argument:  
(pù x+3).  
The sum of (pù x+3) has two operands: pù x  
and 3.  
The number 3 has no arguments or operands.  
The product pù x has two operands: p and x.  
The variable x and the symbolic constant p  
have no arguments or operands.  
If x has a numeric value and you press ¥ ¸,  
the numeric value of pù x is calculated, the result  
is added to 3, and then the cosine is calculated.  
cos() is the top-level operator because it is  
applied last.  
part(expression1)  
number  
part(cos(pùx+3)) ¸  
1
Simplifies expression1 and returns the number 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(expression1, 0)  
string  
part(cos(pùx+3),0) ¸  
"cos"  
Simplifies expression1 and returns a string that  
contains the top-level function name or operator.  
This returns string(expression1) if expression1 is a  
number, variable, or symbolic constant such as p,  
e, i, or ˆ.  
Appendix A: Functions and Instructions  
851  
part(expression1, n)  
expression  
part(cos(pùx+3),1) ¸  
3+pøx  
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.  
part(cos(pùx+3)) ¸  
part(cos(pùx+3),0) ¸  
part(cos(pùx+3),1)!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"  
3+pøx  
pøx+3  
"+"  
2
3
pøx  
"ù"  
2
p
x
temp ¸  
part(temp,0) ¸  
part(temp) ¸  
part(temp,2) ¸  
part(temp,1)!temp ¸  
part(temp,0) ¸  
part(temp) ¸  
part(temp,1) ¸  
part(temp,2) ¸  
Note: When using part(), do not rely on any  
particular order in sums and products.  
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.  
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
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.  
{x y z}  
part(temp,0) ¸  
part(temp) ¸  
part(temp,3) ¸  
delVar temp ¸  
"{"  
3
z
Done  
:d(y,x)  
: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  
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 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  
852  
Appendix A: Functions and Instructions  
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]  
expression can include conversion operations such  
as 4DD and 4Rect. You can also use the 4  
operator to perform unit and number base  
conversions.  
:Disp temp[2]  
:¦ Guess the Pattern  
:For i,3,20  
: temp[iì2]+temp[iì1]"temp[i]  
: Disp temp[i]  
: Disp temp,"Can you guess the  
next","number?"  
: Pause  
If the result of expression is too big to fit on a  
single screen, you can use the cursor pad to scroll  
the display.  
Program execution resumes when you  
press ¸.  
:EndFor  
©
PlotsOff CATALOG  
PlotsOff [1] [, 2] [, 3] ... [, 9]  
PlotsOff 1,2,5¸  
Done  
Done  
Turns off the specified plots for graphing. When  
in 2-graph mode, only affects the active graph.  
PlotsOff¸  
If no parameters, then turns off all plots.  
PlotsOn  
CATALOG  
PlotsOn [1] [, 2] [, 3] ... [, 9]  
PlotsOn 2,4,5¸  
Done  
Done  
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  
vector 4Polar  
[1,3.]4Polar¸  
[x,y]4Polar¸  
Displays vector in polar form [r q]. The vector  
must be of dimension 2 and can be a row or a  
column.  
Note: 4Polar is a display-format instruction, not  
a conversion function. You can use it only at the  
end of an entry line, and it does not update ans.  
Note: See also 4Rect.  
Appendix A: Functions and Instructions  
853  
 
complexValue 4Polar  
Displays complexVector in polar form.  
In Radian angle mode:  
p
2
3+4i4Polar ¸  
eiø( ì tanê(3/4))ø5  
iøp  
Degree angle mode returns (rq).  
3
(4p/3)4Polar ¸  
e
ø4  
Radian angle mode returns reiq.  
complexValue can have any complex form.  
However, an reiq entry causes an error in Degree  
angle mode.  
In Gradian angle mode:  
4i4Polar ¸  
(4100)  
Note: You must use the parentheses for an (rq)  
polar entry.  
In Degree angle mode:  
3+4i4Polar ¸  
(590ìtanê(3/4))  
polyEval() MATH/List menu  
polyEval(list1, expression1)  
expression  
polyEval({a,b,c},x)¸  
polyEval(list1, list2) expression  
aø xñ +bø x+c  
Interprets the first argument as the 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}  
PopUp  
CATALOG  
PopUp itemList, var  
PopUp  
{"1990","1991","1992"},var1 ¸  
Displays a pop-up menu containing the character  
strings from itemList, waits for you to select an  
item, and stores the number of your selection in  
var.  
The elements of itemList must be character strings:  
{item1String, item2String,  
item3String, ...}  
If var already exists and has a valid item number,  
that item is displayed as the default choice.  
itemList must contain at least one choice.  
854  
Appendix A: Functions and Instructions  
   
PowerReg MATH/Statistics/Regressions menu  
PowerReg list1, list2[, [list3] [, list4, list5]]  
In function graphing mode:  
Calculates the power regression and updates all  
the system statistics variables.  
{1,2,3,4,5,6,7}! L1¸  
{1 2 3 ...}  
{1,2,3,4,3,4,6}! L2¸  
All the lists must have equal dimensions except  
for list5.  
{1 2 3 ...}  
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  
Prgm  
Program segment:  
©
:prgmname()  
:Prgm  
:
EndPrgm  
Required instruction that identifies the beginning  
of a program. Last line of program must be  
:EndPrgm  
EndPrgm.  
Product (PI) See Π(), page 908.  
product() MATH/List menu  
product(list[, start[, end]])  
expression  
product({1,2,3,4})¸  
product({2,x,y})¸  
24  
2ø xø y  
40  
Returns the product of the elements contained in  
list. Start and end are optional. They specify a  
range of elements.  
product({4,5,8,9},2,3) ¸  
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  
Prompt var1[, var2] [, var3] ...  
Program segment:  
Displays a prompt on the Program I/O screen for  
each variable in the argument list, using the  
prompt var1?. Stores the entered expression in  
the corresponding variable.  
©
Prompt A,B,C  
©
EndPrgm  
Prompt must have at least one argument.  
Appendix A: Functions and Instructions  
855  
     
propFrac() MATH/Algebra menu  
propFrac(expression1[, var])  
expression  
propFrac(4/3)¸  
1 + 1/3  
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(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((x^2+x+1)/(x+1)+  
(y^2+y+1)/(y+1),x)¸  
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.  
propFrac(ans(1))  
For rational expressions, propFrac() is a faster  
but less extreme alternative to expand().  
PtChg  
PtOff  
CATALOG  
PtChg x, y  
PtChg xList, yList  
Note: PtChg through PtText show continuing  
similar examples.  
Displays the Graph screen and reverses the screen  
pixel nearest to window coordinates  
(x, y).  
PtChg 2,4¸  
CATALOG  
PtOff x, y  
PtOff xList, yList  
PtOff 2,4¸  
Displays the Graph screen and turns off the  
screen pixel nearest to window coordinates  
(x, y).  
PtOn  
CATALOG  
PtOn x, y  
PtOn xList, yList  
PtOn 3,5¸  
Displays the Graph screen and turns on the screen  
pixel nearest to window coordinates  
(x, y).  
ptTest()  
CATALOG  
ptTest (x, y)  
ptTest (xList, yList)  
Boolean constant expression  
Boolean constant expression  
ptTest(3,5)¸  
true  
Returns true or false. Returns true only if the  
screen pixel nearest to window coordinates (x, y)  
is on.  
856  
Appendix A: Functions and Instructions  
 
PtText  
PxlChg  
CATALOG  
PtText string, x, y  
PtText "sample",3,5¸  
Displays the Graph screen and places the  
character string string on the screen at the pixel  
nearest the specified (x, y) window coordinates.  
string is positioned with the upper-left corner of  
its first character at the coordinates.  
CATALOG  
PxlChg row, col  
PxlChg rowList, colList  
PxlChg 2,4¸  
Displays the Graph screen and reverses the pixel  
at pixel coordinates (row, col).  
Note: Regraphing erases all drawn items.  
PxlCrcl  
CATALOG  
PxlCrcl row, col, r [, drawMode]  
PxlCrcl 40,80,30,1¸  
Displays the Graph screen and draws a circle  
centered at pixel coordinates (row, col) with a  
radius of r pixels.  
If drawMode = 1, draws the circle (default).  
If drawMode = 0, turns off the circle.  
If drawMode = -1, inverts pixels along the circle.  
Note: Regraphing erases all drawn items. See  
also Circle.  
PxlHorz  
CATALOG  
PxlHorz row [, drawMode]  
PxlHorz 25,1¸  
Displays the Graph screen and draws a horizontal  
line at pixel position row.  
If drawMode = 1, draws the line (default).  
If drawMode = 0, turns off the line.  
If drawMode = -1, turns a line that is on to off or  
off to on (inverts pixels along the line).  
Note: Regraphing erases all drawn items. See  
also LineHorz.  
PxlLine  
CATALOG  
PxlLine rowStart, colStart, rowEnd, colEnd [, drawMode]  
PxlLine 50,15,20,90,1¸  
Displays the Graph screen and draws a line  
between pixel coordinates (rowStart, colStart) and  
(rowEnd, colEnd), including both endpoints.  
If drawMode = 1, draws the line (default).  
If drawMode = 0, turns off the line.  
If drawMode = -1, turns a line that is on to off or  
off to on (inverts pixels along the line).  
Note: Regraphing erases all drawn items. See  
also Line.  
Appendix A: Functions and Instructions  
857  
PxlOff  
CATALOG  
PxlOff row, col  
PxlOff rowList, colList  
PxlHorz 25,1¸  
PxlOff 25,50¸  
Displays the Graph screen and turns off the pixel  
at pixel coordinates (row, col).  
Note: Regraphing erases all drawn items.  
25,50  
PxlOn  
CATALOG  
PxlOn row, col  
PxlOn rowList, colList  
PxlOn 25,50¸  
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¸  
"
Returns true if the pixel at pixel coordinates (row,  
col) is on. Returns false if the pixel is off.  
PxlTest(25,50)¸  
true  
PxlOff 25,50¸  
Note: Regraphing erases all drawn items.  
"
PxlTest(25,50)¸  
false  
PxlText  
CATALOG  
PxlText string, row, col  
PxlText "sample text",20,10¸  
Displays the Graph screen and places character  
string string on the screen, starting at pixel  
coordinates (row, col).  
string is positioned with the upper-left corner of  
its first character at the coordinates.  
Note: Regraphing erases all drawn items.  
PxlVert  
CATALOG  
PxlVert col [, drawMode]  
PxlVert 50,1¸  
Draws a vertical line down the screen at pixel  
position col.  
If drawMode = 1, draws the line (default).  
If drawMode = 0, turns off the line.  
If drawMode = -1, turns a line that is on to off or  
off to on (inverts pixels along the line).  
Note: Regraphing erases all drawn items. See  
also LineVert.  
858  
Appendix A: Functions and Instructions  
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 ¸  
Done  
.123… .904… .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.  
.904… 1.809…  
0. 0.  
rm ¸  
0.  
If tol is omitted or not used, the default  
tolerance is calculated as:  
m n  
[o p]  
5Eë 14 ù max(dim(matrix))  
ù rowNorm(matrix)  
[m,n;o,p]!m1 ¸  
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.  
QR m1,qm,rm ¸  
Done  
qm ¸  
m
ë sign(møpì nøo)øo  
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øp2  
2
2
m +o  
2
m +o   
rm ¸  
|
|
møpì nøo  
0
2
2
m +o  
QuadReg MATH/Statistics/Regressions menu  
QuadReg list1, list2[, [list3] [, list4, list5]]  
In function graphing mode:  
Calculates the quadratic polynomial regression  
and updates the system statistics variables.  
{0,1,2,3,4,5,6,7}! L1¸  
{1 2 3 ...}  
{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¸  
ShowStat¸  
Done  
list1 represents xlist.  
list2 represents ylist.  
list3 represents frequency.  
list4 represents category codes.  
list5 represents category include list.  
Appendix A: Functions and Instructions  
859  
¸
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  
¥%  
QuartReg MATH/Statistics/Regressions menu  
QuartReg list1, list2[, [list3] [, list4, list5]]  
In function graphing mode:  
Calculates the quartic polynomial regression and  
updates the system statistics variables.  
{ë 2,ë 1,0,1,2,3,4,5,6}! L1¸  
{ë 2 ë 1 0 ...}  
{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  
¥%  
860  
Appendix A: Functions and Instructions  
R4Pq()  
MATH/Angle menu  
R4Pq (xExpression, yExpression)  
expression  
In Degree angle mode:  
R4Pq (xList, yList)  
list  
R8Pq(x,y)¸  
R4Pq (xMatrix, yMatrix)  
matrix  
Returns the equivalent q-coordinate of the  
(x,y) pair arguments.  
Note: The result is returned as a degree, gradian  
or radian angle, according to the current angle  
mode setting.  
In Gradian angle mode:  
R8Pq(x,y)¸  
In Radian angle mode:  
R4Pq(3,2)¸  
R4Pq([3,-4,2],[0,4,1.5])¸  
R4Pr()  
MATH/Angle menu  
R4Pr (xExpression, yExpression)  
R4Pr (xList, yList) list  
R4Pr (xMatrix, yMatrix)  
expression  
In Radian angle mode:  
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.  
4Rad  
CATALOG/MATH/Angle menu  
4 Rad expression  
In Degree angle mode:  
Converts an expression to radian angle measure.  
1.5 4Rad ¸  
In Gradian angle mode:  
1.5 4Rad ¸  
.02618R  
.023562R  
rand()  
MATH/Probability menu  
rand([n])  
expression  
RandSeed 1147¸  
Done  
n is an integer ƒ zero.  
(Sets the random-number)  
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  
Appendix A: Functions and Instructions  
861  
 
randMat() MATH/Probability menu  
randMat(numRows, numColumns)  
matrix  
RandSeed 1147¸  
Done  
8 ë 3 6  
Returns a matrix of integers between -9 and 9 of  
the specified dimension.  
ë 2 3 ë 6  
randMat(3,3)¸  
0 4 ë 6  
Both arguments must simplify to integers.  
Note: The values in this matrix will change  
each time you press ¸.  
randNorm() MATH/Probability menu  
randNorm(mean, sd)  
expression  
RandSeed 1147¸  
Done  
randNorm(0,1)¸  
randNorm(3,4.5)¸  
.492...  
ì3.543...  
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].  
randPoly() MATH/Probability menu  
randPoly(var, order)  
expression  
RandSeed 1147¸  
Done  
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 number  
RandSeed 1147¸  
Done  
rand()¸  
.158...  
If number = 0, sets the seeds to the factory  
defaults for the random-number generator. If  
number ƒ 0, it is used to generate two seeds,  
which are stored in system variables seed1  
and seed2.  
RclGDB  
CATALOG  
RclGDB GDBvar  
RclGDB GDBvar¸  
Done  
Restores all the settings stored in the Graph  
database variable GDBvar.  
For a listing of the settings, see StoGDB.  
Note: It is necessary to have something saved in  
GDBvar before you can restore it.  
RclPic  
CATALOG  
RclPic picVar [, row, column]  
Displays the Graph screen and adds the picture  
stored in picVar at the upper left-hand corner pixel  
coordinates (row, column) using OR logic.  
picVar must be a picture data type.  
Default coordinates are (0, 0).  
real()  
MATH/Complex menu  
real(expression1)  
expression  
real(2+3i)¸  
real(z)¸  
2
z
x
Returns the real part of the argument.  
Note: All undefined variables are treated as real  
variables. See also imag().  
real(x+iy)¸  
862  
Appendix A: Functions and Instructions  
 
real(list1)  
list  
Returns the real parts of all elements.  
matrix  
real({a+iù b,3,i})¸  
{a 3 0}  
real(matrix1)  
a 3  
real([a+iù b,3;c,i])¸  
[
]
c 0  
Returns the real parts of all elements.  
4Rect  
MATH/Matrix/Vector ops menu  
vector 4Rect  
[3,pà4,pà6]4Rect¸  
3ø 2 3ø 2 3ø 3  
Displays vector in rectangular form [x, y, z]. 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)  
aø sin(b)ø sin(c) aø cos(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.  
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 Gradian angle mode:  
(1100)4Rect ¸  
i
In Degree angle mode:  
(460)4Rect ¸  
2+2ø 3øi  
Note: To type 4Rect from the keyboard, press  
2 for the 4 operator. To type , press  
2 .  
ref()  
MATH/Matrix menu  
ref(matrix1[, tol])  
matrix  
ref([ë2,ë2,0,ë6;1,ë1,9,ë9;ë5,  
2,4,ë4])¸  
Returns the row echelon form of matrix1.  
ë 2/5 ë 4/5 4/5  
01  
0  
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.  
1
0
4/7 11/7  
ë 62/71  
1
a b c  
[a,b,c;e,f,g]!m1 ¸  
[e f g]  
If you use ¥ ¸ or set the mode to  
Exact/Approx=APPROXIMATE, computations  
are done using floating-point arithmetic.  
f g  
1  
e e  
ref(m1) ¸  
aøgì cøe  
If tol is omitted or not used, the default  
tolerance is calculated as:  
0 1  
aøfì bøe  
5Eë 14 ù max(dim(matrix1))  
ù rowNorm(matrix1)  
Note: See also rref().  
Appendix A: Functions and Instructions  
863  
 
remain() MATH/Number menu  
remain(expression1, expression2)  
expression  
remain(7,0)¸  
7
1
remain(list1, list2)  
list  
remain(7,3)¸  
remain(matrix1, matrix2)  
matrix  
remain(ë 7,3)¸  
ë 1  
1
Returns the remainder of the first argument with  
respect to the second argument as defined by the  
identities:  
remain(7,ë 3)¸  
remain(ë 7,ë 3)¸  
remain({12,ë 14,16},{9,7,ë 5})¸  
ë 1  
remain(x,0) x  
remain(x,y) xì yùiPart(x/y)  
{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  
[
]
2 1  
Note: See also mod().  
Rename  
CATALOG  
Rename oldVarName, newVarName  
{1,2,3,4}! L1¸  
Rename L1, list1¸  
list1¸  
{1,2,3,4}  
Done  
{1,2,3,4}  
Renames the variable oldVarName as newVarName.  
Request  
CATALOG  
Request promptString, var [,alphaOn/Off]  
Request "Enter text",t,1¸  
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.  
The argument turned on alpha-lock in the  
above example.  
This instruction can be stand-alone or part of a  
dialog construct.  
The optional alphaOn/Off argument can be any  
expression. If it evaluates to zero, alpha-lock is set  
to OFF. If it evaluates to anything other than zero,  
alpha-lock is set to ON. If the optional argument is  
not used, alpha-lock defaults to ON.  
Request “Enter number”,n,0  
If more than one Request command appears within  
a Dialog...EndDlog construct, the first alpha setting  
is used and subsequent ones are ignored.  
The argument turned off alpha-lock in the  
above example.  
Return  
CATALOG  
Return [expression]  
Define factoral(nn)=Func  
:local answer,count:1! answer  
:For count,1,nn  
:answerù count! answer:EndFor  
:Returnanswer:EndFunc¸  
Returns expression as the result of the function.  
Use within a Func...EndFunc block, or  
Prgm...EndPrgm block.  
Done  
6
Note: Use Return without an argument to exit a  
program.  
factoral(3)¸  
Note: Enter the text as one long line on the  
Home screen (without line breaks).  
864  
Appendix A: Functions and Instructions  
right()  
MATH/List menu  
list  
right(list1[, num])  
right({1,3,ë 2,4},3)¸  
right("Hello",2)¸  
right(x<3)¸  
{3 ë 2 4}  
Returns the rightmost num elements contained in  
list1.  
If you omit num, returns all of list1.  
right(sourceString[, num])  
string  
"lo"  
Returns the rightmost num characters contained  
in character string sourceString.  
If you omit num, returns all of sourceString.  
right(comparison)  
expression  
3
Returns the right side of an equation or  
inequality.  
root()  
CATALOG/MATH/Number menu  
root(expression)  
root  
root(8,3)¸  
root(3,3)¸  
root(3,0,3)¸  
2
1/3  
Computes an nth root of x where x can be a real  
or complex floating point constant, an integer or  
complex rational constant, or a general symbolic  
expression.  
3
1.442249570  
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) ¸  
rotate(0h78E,ë2) ¸  
rotate(0h78E,2) ¸  
0h3C7  
0h800001E3  
0h1E38  
For example, in a right rotation:  
Important: To enter a binary or hexadecimal  
number, always use the 0b or 0h prefix (zero,  
not the letter O).  
Each bit rotates right.  
0b00000000000001111010110000110101  
Rightmost bit rotates to leftmost.  
produces:  
0b10000000000000111101011000011010  
The result is displayed according to the Base  
mode.  
rotate(list1[,#ofRotations])  
list  
In Dec base mode:  
Returns a copy of list1 rotated right or left by #of  
Rotations elements. Does not alter list1.  
rotate({1,2,3,4}) ¸  
{4 1 2 3}  
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({1,2,3,4},ë2) ¸  
{3 4 1 2}  
{2 3 4 1}  
rotate({1,2,3,4},1) ¸  
Appendix A: Functions and Instructions  
865  
 
rotate(string1[,#ofRotations])  
string  
rotate("abcd") ¸  
rotate("abcd",ë2) ¸  
rotate("abcd",1) ¸  
"dabc"  
"cdab"  
"bcda"  
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(expression1[, digits])  
expression  
round(1.234567,3)¸  
1.235  
Returns the argument rounded to the specified  
number of digits after the decimal point.  
digits must be an integer in the range 0–12. If  
digits is not included, returns the argument  
rounded to 12 significant digits.  
Note: Display digits mode may affect how this is  
displayed.  
round(list1[, digits])  
list  
round({p,(2),ln(2)},4)¸  
{3.1416 1.4142 .6931}  
Returns a list of the elements rounded to the  
specified number of digits.  
round(matrix1[, digits])  
matrix  
round([ln(5),ln(3);p,e^(1)],1)¸  
Returns a matrix of the elements rounded to the  
specified number of digits.  
1.6 1.1  
3.1 2.7  
[
]
rowAdd() MATH/Matrix/Row ops menu  
matrix  
rowAdd(matrix1, rIndex1, rIndex2)  
rowAdd([3,4;ë 3,ë 2],1,2)¸  
3 4  
[0 2]  
Returns a copy of matrix1 with row rIndex2  
replaced by the sum of rows rIndex1 and rIndex2.  
rowAdd([a,b;c,d],1,2)¸  
a
[
b
]
a+c b+d  
rowDim() MATH/Matrix/Dimensions menu  
rowDim(matrix)  
expression  
1 2  
3 4  
[1,2;3,4;5,6]! M1¸  
Returns the number of rows in matrix.  
5 6  
Note: See also colDim().  
rowdim(M1)¸  
3
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().  
866  
Appendix A: Functions and Instructions  
rowSwap() MATH/Matrix/Row ops menu  
matrix  
rowSwap(matrix1, rIndex1, rIndex2)  
[1,2;3,4;5,6]! Mat¸  
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.  
0 0 66/71  
1  
147  
1 0  
0 1  
0  
0  
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  
aø d-bø c  
1 0  
ë (cø x-aø y)  
0 1  
aø d-bø c  
If you use ¥ ¸ or set the mode to  
Exact/Approx=APPROXIMATE, computations  
are done using floating-point arithmetic.  
If tol is omitted or not used, the default  
tolerance is calculated as:  
5Eë 14 ù max(dim(matrix1))  
ù rowNorm(matrix1)  
Note: See also ref().  
sec()  
MATH/Trig menu  
sec(expression1) expression  
sec(list1) list  
In Degree angle mode:  
sec(45) ¸  
(2)  
1
Returns the secant of expression1 or returns a list  
containing the secants of all elements in list1.  
sec({1,2.3,4}) ¸  
1
1.000…  
Note: The result is returned as a degree, gradian  
or radian angle, according to the current angle  
mode setting.  
{
}
cos(1)  
cos(4)  
Appendix A: Functions and Instructions  
867  
secL1()  
MATH/Trig menu  
secL1(expression1) expression  
In Degree angle mode:  
secL1(1) ¸  
secL1(list1) list  
0
Returns the angle whose secant is expression1 or  
returns a list containing the inverse secants of  
each element of list1.  
In Gradian angle mode:  
secL1( 2 ) ¸  
50  
Note: The result is returned as a degree, gradian  
or radian angle, according to the current angle  
mode setting.  
In Radian angle mode:  
secL1({1,2,5}) ¸  
p
3
{ 0  
cosL1(1/5)}  
sech()  
MATH/Hyperbolic menu  
sech(expression1) expression  
sech(list1) list  
1
sech(3) ¸  
cosh(3)  
Returns the hyperbolic secant of expression1 or  
returns a list containing the hyperbolic secants of  
the list1 elements.  
sech({1,2.3,4}) ¸  
1
1
.198…  
{
}
cosh(1)  
cosh(4)  
sechL1()  
MATH/Hyperbolic menu  
sechL1(expression1) expression  
In Radian angle and Rectangular complex  
mode:  
sechL1 (list1) list  
sechL1(1) ¸  
sechL1({1,L2,2.1}) ¸  
2¦ p  
0
Returns the inverse hyperbolic secant of  
expression1 or returns a list containing the  
inverse hyperbolic secants of each element of  
list1.  
{0  
¦ i 1.074¦ i }  
(
)
3
Send  
CATALOG  
Send list  
Program segment:  
CBL 2é (Calculator-Based Laboratoryé) or  
CBRé (Calculator-Based Rangeré) instruction.  
Sends list to the link port.  
©
:Send {1,0}  
:Send {1,2,1}  
©
SendCalc CATALOG  
SendCalc var  
Program segment:  
Sends variable var to the link port, where another  
©
unit linked to that port can receive 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, TI-92 Plus, or  
Voyage™ 200 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.  
868  
Appendix A: Functions and Instructions  
       
@ SendCalc var[,port]  
Sends contents of var from a TI-89 Titanium to  
another TI-89 Titanium.  
If the port is not specified, or port = 0 is specified,  
the TI-89 Titanium sends data using the USB port  
if connected, if not, it will send using the I/O port.  
If port = 1, the TI-89 Titanium sends data using  
the USB port only.  
If port = 2, the TI-89 Titanium sends data using  
the I/O port only.  
SendChat CATALOG  
SendChat var  
Program segment:  
©
A general alternative to SendCalc, this is useful  
if the receiving unit is a TI-92 (or for a generic  
"chat" program that allows either a TI-92,  
Voyage™ 200, 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.  
The default value for step = 1.  
196...  
127...  
or press ¥ ¸ to get:  
1.549...  
setDate() CATALOG  
setDate(year,month,day) listold  
setDate(2001,10,31)  
¸
{2001 11 1}  
Sets the clock to the date given in the argument  
and returns a list. (Note: The year must fall in the  
range 1997 - 2132.) The returned list is in  
{yearold,monthold,dayold} format. The returned date  
is the previous clock value.  
Enter the year as a four-digit integer. The month  
and day can be either one- or two-digit integers.  
setDtFmt() CATALOG  
setDtFmt(integer) integerold  
Integer values:  
Sets the date format for the desktop according to  
the argument and returns the previous date  
format value.  
1 = MM/DD/YY 5 = YY.MM.DD  
2 = DD/MM/YY 6 = MM-DD-YY  
3 = MM.DD.YY 7 = DD-MM-YY  
4 = DD.MM.YY 8 = YY-MM-DD  
Appendix A: Functions and Instructions  
869  
 
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¸  
The folder newfolderName must exist.  
"main"  
1! a¸  
1
setFold(#oldfoldr)¸  
a¸  
"chris"  
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 of  
the mode. Storing the previous setting lets you  
restore it later.  
setGraph("Coordinates","Off")  
¸
"RECT"  
Note: Capitalization and blank spaces are  
optional when entering mode names.  
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.  
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"  
“Discontinuity  
Detection”  
“Off’, “On” 6  
1Not available in Sequence, 3D, or Diff Equations graph mode. Also not available in Function graph mode  
with “Discontinuity Detection” set to “On.”  
2Not available in 3D graph mode.  
870  
Appendix A: Functions and Instructions  
   
3Applies only to 3D graph mode.  
4Applies only to Sequence graph mode.  
5Applies only to Diff Equations graph mode.  
6Applies only to Function graphing mode, when “Graph Order” is set to “Seq.”  
setMode() CATALOG  
setMode(modeNameString, settingString)  
setMode(list) stringList  
string  
setMode("Angle","Degree")  
¸
"RADIAN"  
Sets mode modeNameString to the new setting  
settingString, and returns the current setting of  
that mode.  
2  
2
sin(45)¸  
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)¸  
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.  
setMode("Angle","Gradian")  
¸
"RADIAN"  
list contains pairs of keyword strings and will set  
them all at once. This is 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.  
2  
2
sin(50)¸  
setMode("Display Digits",  
"Fix 2")¸  
"FLOAT"  
3.14  
Use setMode(var) to restore settings saved with  
getMode("ALL")! var.  
p ¥ ¸  
Note: To set or return information about the  
Unit System mode, use setUnits() or getUnits()  
instead of setMode() or getMode().  
setMode ("Display Digits",  
"Float")¸  
"FIX 2"  
p ¥ ¸  
3.141...  
setMode ({"Split Screen",  
"Left-Right","Split 1 App",  
"Graph","Split 2 App","Table"})  
¸
{"Split 2 App" "Graph"  
"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", “Gradian”  
"Display Digits"  
"Angle"  
"Exponential Format"  
"Complex Format"  
"Vector Format"  
"Pretty Print"  
"Normal", "Scientific", "Engineering"  
"Real", "Rectangular", "Polar"  
"Rectangular", "Cylindrical", "Spherical"  
"Off", "On"  
Appendix A: Functions and Instructions  
871  
"Split Screen"  
"Split 1 App"  
"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" (Voyage™ 200 only)  
"Auto", "Exact", "Approximate"  
"Dec", "Hex", "Bin"  
"Split Screen Ratio"  
"Exact/Approx"  
"Base"  
"Language"  
"English", "Alternate Language"  
“Off”, “On”  
“Apps Desktop”  
setTable() CATALOG  
setTable(modeNameString, settingString)  
string  
setTable("Graph <ì > Table","ON")  
¸
"OFF"  
"ASK"  
Sets the table parameter modeNameString to  
settingString, and returns the previous setting of  
the parameter. Storing the previous setting lets  
you restore it later.  
setTable("Independent","AUTO")  
¸
¥&  
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  
"Graph <-> Table"  
"Independent"  
Settings  
"Off", "On"  
"Auto", "Ask"  
setTime() CATALOG  
setTime(hour,minute,second) listold  
setTime(11,32,50)  
{10 44 49}  
Sets the clock to the time given in the argument  
and returns a list. The list is in  
{hourold,minuteold,secondold} format. The returned  
time is the previous clock value.  
Enter the hour in the 24 hour format, in which 13 =  
1 p.m.  
setTmFmt() CATALOG  
setTmFmt(integer) integerold  
Integer values:  
Sets the time format for the desktop according to  
the argument and returns the previous time  
format value.  
12 = 12 hour clock  
24 = 24 hour clock  
872  
Appendix A: Functions and Instructions  
setTmZn() CATALOG  
setTmZn(integer) integerold  
If Greenwich Mean Time is 14:07:07, it is:  
Sets the time zone according to the argument and 7:07:07 a.m. in Denver, Colorado (Mountain  
returns the previous time zone value.  
Standard Time)  
(–420 minutes from GMT)  
The time zone is defined by an integer that gives  
the minutes offset from Greenwich Mean Time  
(GMT), as established in Greenwich, England. For European Standard Time)  
example, if the time zone is offset from GMT by  
two hours, the device would return 120  
(minutes).  
15:07:07 p.m. in Brussels, Belgium (Central  
(+60 minutes from GMT)  
Integers for time zones west of GMT are negative.  
Integers for time zones east of GMT are positive.  
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.  
¥   
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"}  
2 9  
setUnits({"SI"}) ¸  
{"SI" "Area" "NONE"  
"Capacitance" "_F" ...}  
To specify a custom set of default units, list1  
uses the form:  
{"CUSTOM", "cat1", "unit1"[, "cat2", "unit2", ]}  
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  
873  
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.  
"
ClrDraw¸  
Shade cos(x),sin(x),0,5¸  
Done  
Done  
Done  
pattern specifies one of four shading patterns:  
1 = vertical (default)  
2 = horizontal  
3 = negative-slope 45¡  
4 = positive-slope 45¡  
patRes specifies the resolution of the shading  
patterns:  
1= solid shading  
2= 1 pixel spacing (default)  
3= 2 pixels spacing  
©
"
ClrDraw¸  
Shade cos(x),sin(x),0,5,2¸  
10= 9 pixels spacing  
Note: Interactive shading is available on the  
Graph screen through the Shade instruction.  
Automatic shading of a specific function is  
available through the Style instruction. Shade is  
not valid in 3D graphing mode.  
"
ClrDraw¸  
Shade cos(x),sin(x),0,5,2,1¸  
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) ¸  
shift(0h78E,ë2) ¸  
shift(0h78E,2) ¸  
0h3C7  
0h1E3  
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  
Important: To enter a binary or hexadecimal  
number, always use the 0b or 0h prefix (zero,  
not the letter O).  
For example, in a right shift:  
874  
Appendix A: Functions and Instructions  
   
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:  
Returns a copy of list1 shifted right or left by  
#ofShifts elements. Does not alter list1.  
shift({1,2,3,4}) ¸  
{undef 1 2 3}  
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 element).  
shift({1,2,3,4},ë2) ¸  
{undef undef 1 2}  
shift({1,2,3,4},1) ¸  
Elements introduced at the beginning or end of  
list by the shift are set to the symbol “undef”.  
{2 3 4 undef}  
shift(string1 [,#ofShifts])  
string  
shift("abcd") ¸  
shift("abcd",ë2) ¸  
shift("abcd",1) ¸  
" abc"  
" ab"  
"bcd "  
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.  
ShowStat CATALOG  
ShowStat  
{1,2,3,4,5}! L1¸  
{1 2 3 4 5}  
{0,2,6,10,25}! L2¸  
Displays a dialog box containing the last  
{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(expression1)  
sign(list1) list  
sign(matrix1)  
expression  
sign(ë 3.2)¸  
ë 1.  
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.  
Appendix A: Functions and Instructions  
875  
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¸  
[ ]  
c d  
simult(matx1,[1;2])¸  
ë (2ø bì d)  
aø dì bø c  
If you use ¥ ¸ or set the mode to  
Exact/Approx=APPROXIMATE, computations  
are done using floating-point arithmetic.  
2ø aì c  
aø dì bø c  
If tol is omitted or not used, the default  
tolerance is calculated as:  
5Eë 14 ù max(dim(coeffMatrix))  
ù rowNorm(coeffMatrix)  
simult(coeffMatrix, constMatrix[, tol]) matrix  
Solve:  
x + 2y = 1  
3x + 4y = ë 1  
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])  
¸
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.  
ë 3 ë 7  
2
[
]
9/2  
For the first system, x=ë 3 and y=2. For the  
second system, x=ë 7 and y=9/2.  
sin()  
2 W key  
sin(expression1)  
expression  
In Degree angle mode:  
sin(list1) list  
2  
2
sin((p/4)ô )¸  
sin(expression1) returns the sine of the argument  
as an expression.  
2  
2
sin(list1) returns a list of the sines of all elements  
in list1.  
sin(45)¸  
3  
2
Note: The argument is interpreted as a degree,  
gradian or radian angle, according to the current  
angle mode. You can use ó ,G o r ô to override  
the angle mode setting temporarily.  
sin({0,60,90})¸  
{0  
1}  
In Gradian angle mode:  
2  
2
sin(50)¸  
In Radian angle mode:  
2  
2
sin(p/4)¸  
2  
2
sin(45¡)¸  
876  
Appendix A: Functions and Instructions  
sin(squareMatrix1)  
squareMatrix  
In Radian angle mode:  
Returns the matrix sine of squareMatrix1. This is  
not the same as calculating the sine of each  
element. For information about the calculation  
method, refer to cos().  
sin([1,5,3;4,2,1;6,ë2,1]) ¸  
ë.045… ë.031…  
ë.045… .949… ë.020…  
.942…  
ë.048…  
ë.005… .961…  
squareMatrix1 must be diagonalizable. The result  
always contains floating-point numbers.  
sinê()  
¥ Q key  
sinê (expression1)  
expression  
In Degree angle mode:  
sinê (list1) list  
sinê (1)¸  
90  
sinê (expression1) returns the angle whose sine is  
expression1 as an expression.  
In Gradian angle mode:  
sinê (1)¸  
100  
sinê (list1) returns a list of the inverse sines of  
each element of list1.  
In Radian angle mode:  
Note: The result is returned as a degree, gradian  
or radian angle, according to the current angle  
mode setting.  
sinê ({0,.2,.5}) ¸  
{0 .201... .523...}  
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(expression1)  
expression  
sinh(1.2)¸  
1.509...  
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:  
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().  
sinh([1,5,3;4,2,1;6,ë2,1]) ¸  
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ê (expression1)  
expression  
sinhê (0)¸  
0
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.  
Appendix A: Functions and Instructions  
877  
     
sinhê(squareMatrix1)  
squareMatrix  
In Radian angle mode:  
Returns the matrix inverse hyperbolic sine of  
squareMatrix1. This is not the same as calculating  
the inverse hyperbolic sine of each element. For  
information about the calculation method, refer  
to cos().  
sinhê([1,5,3;4,2,1;6,ë2,1]) ¸  
.041… 2.155… 1.158…  
1.463… .926…  
.112…  
2.750…  
ë 1.528… .572…  
squareMatrix1 must be diagonalizable. The result  
always contains floating-point numbers.  
SinReg  
MATH/Statistics/Regressions menu  
SinReg list1, list2 [, [iterations], [ period] [, list3, list4]]  
In function graphing mode:  
Calculates the sinusoidal regression and updates  
all the system statistics variables.  
seq(x,x,1,361,30)!L1 ¸  
{1 31 61 …}  
{5.5,8,11,13.5,16.5,19,19.5,17,  
14.5,12.5,8.5,6.5,5.5}!L2 ¸  
All the lists must have equal dimensions except  
for list4.  
{5.5 8 11 …}  
list1 represents xlist.  
list2 represents ylist.  
list3 represents category codes.  
list4 represents category include list.  
SinReg L1,L2 ¸  
Done  
ShowStat ¸  
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...  
878  
Appendix A: Functions and Instructions  
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.  
(x+1)(xì 1)/(xì 1)+xì 3¸  
2ø xì 2  
x=1  
undef  
0
solve(entry(1)=0,x)¸  
entry(2)|ans(1)¸  
limit(entry(3),x,1)¸  
For inequalities of types , , <, or >, explicit  
solutions are unlikely unless the inequality is linear  
and contains only var.  
solve(5xì 22x,x)¸  
x2/3  
For the EXACT setting of the Exact/Approx mode,  
portions that cannot be solved are returned as an  
implicit equation or inequality.  
exact(solve((xì a)e^(x)=ë xù  
(xì a),x))¸  
ex +x=0 or x=a  
Use the “|” operator to restrict the solution interval In Radian angle mode:  
and/or other variables that occur in the equation or  
solve(tan(x)=1/x,x)|x>0 and x<1¸  
inequality. When you find a solution in one interval,  
you can use the inequality operators to exclude that  
interval from subsequent searches.  
x=.860...  
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+1,x)¸  
false  
true  
solve(x=x,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.  
2xì 11 and solve(x^2ƒ9,x)¸  
x1 and xƒ ë 3  
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.  
In Radian angle mode:  
solve(sin(x)=0,x)¸  
x=@n 1ø p  
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^(1/3)=ë 1,x)¸  
solve((x)=ë 2,x)¸  
solve(ë (x)=ë 2,x)¸  
x=ë 1  
false  
x=4  
Note: See also cSolve(), cZeros(), nSolve(), and  
zeros().  
solve(equation1 and equation2 [and ], {varOrGuess1,  
solve(y=x^2ì2 and  
x+2y=ë1,{x,y}) ¸  
varOrGuess2 [, ]})  
Boolean expression  
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.  
Appendix A: Functions and Instructions  
879  
If all of the equations are polynomials and if you  
do NOT specify any initial guesses, solve() uses  
the lexical Gröbner/Buchberger elimination  
method to attempt to determine all real  
solutions.  
For example, suppose you have a circle of radius r  
at the origin and another circle of radius r  
centered where the first circle crosses the positive  
x-axis. Use solve() to find the intersections.  
As illustrated by r in the example to the right,  
simultaneous polynomial equations can have  
extra variables that have no values, but represent  
given numeric values that could be substituted  
later.  
solve(x^2+y^2=r^2 and  
(xìr)^2+y^2=r^2,{x,y}) ¸  
r
2
3ør  
2
ë 3ør  
2
x= and y=  
r
2
or x= and y=  
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.  
solve(x^2+y^2=r^2 and  
(xìr)^2+y^2=r^2,{x,y,z}) ¸  
r
2
3ør  
2
x=  
and y=  
and z=@1  
r
2
ë 3ør  
2
or x=  
and y=  
and z=@1  
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.  
For polynomial systems, computation time or  
memory exhaustion may depend strongly on the  
order in which you list solution variables. If your  
initial choice exhausts memory or your patience,  
try rearranging the variables in the equations  
and/or varOrGuess list.  
If you do not include any guesses and if any  
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.  
solve(x+e^(z)ùy=1 and  
xìy=sin(z),{x,y}) ¸  
ezøsin(z)+1  
ë (sin(z)ì 1)  
x=  
and y=  
ez+1  
ez+1  
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.  
solve(e^(z)ùy=1 and ëy=sin(z),{y,z})  
¸
y=.041… and z=3.183…  
880  
Appendix A: Functions and Instructions  
Each solution variable starts at its guessed value  
if there is one; otherwise, it starts at 0.0.  
solve(e^(z)ùy=1 and  
ëy=sin(z),{y,z=2p}) ¸  
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  
SortA listName1[, listName2] [, listName3] ...  
SortA vectorName1[, vectorName2] [, vectorName3] ...  
{2,1,4,3}! list1¸  
SortA list1¸  
{2,1,4,3}  
Done  
Sorts the elements of the first argument in  
ascending order.  
list1¸  
{4,3,2,1}! list2¸  
SortA list2,list1¸  
{1 2 3 4}  
{4 3 2 1}  
Done  
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.  
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  
SortD listName1[, listName2] [, listName3] ...  
SortD vectorName1[,vectorName 2] [,vectorName 3] ...  
{2,1,4,3}! list1¸  
{1,2,3,4}! list2¸  
SortD list1,list2¸  
list1¸  
{2 1 4 3}  
{1 2 3 4}  
Done  
{4 3 2 1}  
{3 4 1 2}  
Identical to SortA, except SortD sorts the  
elements in descending order.  
list2¸  
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.  
p
3ø 13  
13  
[13  
cosê (  
)]  
4
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
startTmr() CATALOG  
startTmr() integer  
startTmr()  
¸
148083315  
34  
Returns the current value of the clock in its  
checkTmr(148083315)  
integer representation, giving the starttime for a  
timer. You can enter the starttime as an argument  
in checkTmr() to determine how many seconds  
have elapsed.  
startTmr()!Timer1  
©
You can run multiple timers simultaneously.  
startTmr()!Timer2  
©
Note: See also checkTmr() and timeCnv().  
checkTmr(Timer1)!Timer1Value  
©
checkTmr(Timer2)!Timer2Value  
Appendix A: Functions and Instructions  
881  
     
stdDev() MATH/Statistics menu  
stdDev(list[, freqlist])  
expression  
stdDev({a,b,c})¸  
stdDev({1,2,5,ë 6,3,ë 2})¸  
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  
stdDev([1,2,5;-3,0,1;.5,.7,3])¸  
stdDev(matrix1[, freqmatrix])  
matrix  
[2.179... 1.014... 2]  
Returns a row vector of the standard deviations  
of the columns in matrix1.  
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.  
stdDevPop() MATH/Statistics menu  
stdDevPop(list[, freqlist])  
expression  
In Radian angle and auto modes:  
Returns the population standard deviation of the  
elements in list.  
stdDevPop({a,b,c})¸  
Each freqlist element counts the number of  
consecutive occurrences of the corresponding  
element in list.  
Note: list must have at least two elements.  
stdDevPop({1,2,5,ë 6,3,ë 2})¸  
stdDevPop({1.3,2.5,L6.4},{3,2,5})  
¸
stdDevPop([[1,2,5][-3,0,1][.5,.7,3]])  
¸
stdDevPop(matrix1[, freqmatrix])  
matrix  
Returns a row vector of the population standard  
deviations of the columns in matrix1.  
Each freqmatrix element counts the number of  
consecutive occurrences of the corresponding  
element in matrix1.  
Note: matrix1 must have at least two rows.  
stdDevPop([L1.2,5.3;2.5,7.3;6,L4],[4,  
2;3,3;1,7]) ¸  
882  
Appendix A: Functions and Instructions  
StoGDB  
CATALOG  
StoGDB GDBvar  
Creates a Graph database (GDB) variable that  
contains the current:  
* Graphing mode  
* Y= functions  
* Window variables  
* Graph format settings  
1- or 2-Graph setting (split screen and ratio  
settings if 2-Graph mode)  
Angle mode  
Real/complex mode  
* Initial conditions if Sequence or  
Diff Equations mode  
* Table flags  
* tblStart, @tbl, tblInput  
You can use RclGDB GDBvar to restore the graph  
environment.  
*Note: These items are saved for both graphs in  
2-Graph mode.  
Stop  
CATALOG  
Stop  
Program segment:  
Used as a program instruction to stop program  
execution.  
©
For i,1,10,1  
If i=5  
Stop  
EndFor  
©
StoPic  
CATALOG  
StoPic picVar [, pxlRow, pxlCol] [, width, height]  
Displays the graph screen and copies a  
rectangular area of the display to the variable  
picVar.  
pxlRow and pxlCol, if included, specify the upper-  
left corner of the area to copy (defaults are 0, 0).  
width and height, if included, specify the  
dimensions, in pixels, of the area. Defaults are the  
width and height, in pixels, of the current graph  
screen.  
Store  
string()  
See ! (store), page 912.  
MATH/String menu  
string(expression) string  
string(1.2345)¸  
string(1+2)¸  
"1.2345"  
"3"  
Simplifies expression and returns the result as a  
character string.  
string(cos(x)+(3))¸  
"cos(x)+(3)"  
Appendix A: Functions and Instructions  
883  
 
Style  
CATALOG  
Style equanum, stylePropertyString  
Style 1,"thick"¸  
Done  
Done  
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  
equanum must be an integer from 1–99 and the  
function must already exist.  
y10(x) to "Path".  
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  
subMat(matrix1[, startRow] [, startCol] [, endRow]  
[, endCol]) matrix  
[1,2,3;4,5,6;7,8,9]! m1¸  
1 2 3  
4 5 6  
7 8 9  
Returns the specified submatrix of matrix1.  
Defaults: startRow=1, startCol=1, endRow=last  
row, endCol=last column.  
subMat(m1,2,1,3,2)¸  
4 5  
[ ]  
7 8  
subMat(m1,2,2)¸  
5 6  
[ ]  
8 9  
Sum (Sigma) See G(), page 908.  
sum()  
MATH/List menu  
sum(list[, start[, end]])  
expression  
sum({1,2,3,4,5}) ¸  
sum({a,2a,3a}) ¸  
15  
6ø a  
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) ¸  
sum([1,2,3;4,5,6]) ¸  
55  
21  
sum(matrix1[, start[, end]])  
matrix  
[5 7 9]  
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]  
884  
Appendix A: Functions and Instructions  
   
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 Titanium/Voyage™ 200 is not displaying a  
split screen.  
T
(transpose)  
matrix1  
MATH/Matrix menu  
î
matrix  
[1,2,3;4,5,6;7,8,9]! mat1¸  
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  
885  
 
Table  
CATALOG  
Table expression1[, expression2] [, var1]  
In function graphing mode.  
Builds a table of the specified expressions or  
functions.  
Table 1.25xù cos(x)¸  
The expressions in the table can also be graphed.  
Expressions entered using the Table or Graph  
commands are assigned increasing function  
numbers starting with 1. The expressions can be  
modified or individually deleted using the edit  
functions available when the table is displayed by  
pressing Header. The currently selected  
functions in the Y= Editor are temporarily  
ignored.  
Table cos(time),time¸  
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:  
Parametric graphing: Table xExpr, yExpr, t  
Polar graphing: Table expr, q  
Table expr, x  
Note: The Table command is not valid for 3D,  
sequence, or diff equations graphing. As an  
alternative, you may want to use BldData.  
tan()  
2 Y key  
tan(expression1)  
expression  
In Degree angle mode:  
tan((p/4)ô )¸  
tan(45)¸  
tan(list1) list  
1
1
tan(expression1) returns the tangent of the  
argument as an expression.  
tan({0,60,90})¸  
tan(list1) returns a list of the tangents of all  
elements in list1.  
{0 3 undef}  
Note: The argument is interpreted as a degree,  
gradian or radian angle, according to the current  
angle mode. You can use ó , G o r ô to override  
the angle mode setting temporarily.  
In Gradian angle mode:  
π
4
200 • tan(  
)
tan((p/4)ô )¸  
π
tan(50)¸  
1
tan({0,50,100})¸  
{0 1 undef}  
In Radian angle mode:  
tan(p/4)¸  
1
1
tan(45¡)¸  
tan({p,p/3,-p,p/4})¸  
{0 3 0 1}  
886  
Appendix A: Functions and Instructions  
 
tan(squareMatrix1)  
squareMatrix  
In Radian angle mode:  
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().  
tan([1,5,3;4,2,1;6,ë2,1]) ¸  
ë 28.291… 26.088… 11.114…  
12.117… ë 7.835… ë 5.481…  
36.818…  
ë 32.806… ë 10.459…  
squareMatrix1 must be diagonalizable. The result  
always contains floating-point numbers.  
tanê()  
¥ S key  
tanê (expression1)  
expression  
In Degree angle mode:  
tanê (1)¸  
tanê (list1) list  
45  
50  
tanê (expression1) returns the angle whose  
tangent is expression1 as an expression.  
In Gradian angle mode:  
tanê (1)¸  
tanê (list1) returns a list of the inverse tangents  
of each element of list1.  
In Radian angle mode:  
Note: The result is returned as a degree, gradian  
or radian angle, according to the current angle  
mode setting.  
tanê ({0,.2,.5})¸  
{0 .197... .463...}  
tanê(squareMatrix1)  
squareMatrix  
In Radian angle mode:  
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().  
tanê([1,5,3;4,2,1;6,ë2,1]) ¸  
ë.083… 1.266… .622…  
.748… .630…  
ë.070…  
1.686…  
ë 1.182… .455…  
squareMatrix1 must be diagonalizable. The result  
always contains floating-point numbers.  
tanh()  
MATH/Hyperbolic menu  
tanh(expression1)  
expression  
tanh(1.2)¸  
.833...  
tanh(list1) list  
tanh({0,1})¸  
{0 tanh(1)}  
tanh(expression1) returns the hyperbolic tangent  
of the argument as an expression.  
tanh(list) returns a list of the hyperbolic tangents  
of each element of list1.  
tanh(squareMatrix1)  
squareMatrix  
In Radian angle mode:  
Returns the matrix hyperbolic tangent of  
squareMatrix1. This is not the same as calculating  
the hyperbolic tangent of each element. For  
information about the calculation method, refer  
to cos().  
tanh([1,5,3;4,2,1;6,ë2,1]) ¸  
ë.097… .933…  
.425…  
ë.129…  
.488… .538…  
1.282…  
ë 1.034… .428…  
squareMatrix1 must be diagonalizable. The result  
always contains floating-point numbers.  
Appendix A: Functions and Instructions  
887  
   
tanhê()  
MATH/Hyperbolic menu  
expression  
tanhê (expression1)  
In rectangular complex format mode:  
tanhê (0)¸  
tanhê (list1) list  
0
tanhê (expression1) returns the inverse hyperbolic  
tangent of the argument as an expression.  
tanhê ({1,2.1,3})¸  
ln(2)  
p
2
{ˆ .518... ì 1.570...ø i  
ì
ø i}  
tanhê (list1) returns a list of the inverse  
hyperbolic tangents of each element of list1.  
2
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 as calculating  
the inverse hyperbolic tangent of each element.  
For information about the calculation method,  
refer to cos().  
tanhê([1,5,3;4,2,1;6,ë2,1]) ¸  
ë.099…+.164…øi .267…ì 1.490…øi  
ë.087…ì.725…øi .479…ì.947…øi  
.511…ì 2.083…øi  
ë.878…+1.790…øi …  
squareMatrix1 must be diagonalizable. The result  
always contains floating-point numbers.  
taylor()  
MATH/Calculus menu  
taylor(expression1, var, order[, point])  
expression  
taylor(e^((x)),x,2)¸  
taylor(e^(t),t,4)|t=(x)¸  
Returns the requested Taylor polynomial. The  
polynomial includes non-zero terms of integer  
degrees from zero through order in (var minus  
point). taylor() returns itself if there is no  
truncated power series of this order, or if it would  
require negative or fractional exponents. Use  
substitution and/or temporary multiplication by a  
power of  
taylor(1/(xù (xì 1)),x,3)¸  
(var minus point) to determine more general  
power series.  
point defaults to zero and is the expansion point.  
expand(taylor(x/(xù(xì1)),  
x,4)/x,x)¸  
tCollect() MATH\Algebra\Trig menu  
tCollect(expression1)  
expression  
tCollect((cos(a))^2)¸  
cos(2ø a)+1  
Returns an expression in which products and  
integer powers of sines and cosines are 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.  
888  
Appendix A: Functions and Instructions  
 
tExpand() MATH\Algebra\Trig menu  
tExpand(expression1)  
expression  
tExpand(sin(3f))¸  
4ø sin(f)ø (cos(f))ñ ì sin(f)  
Returns an expression in which sines and cosines  
of integer-multiple angles, angle 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 promptString  
Text "Have a nice day."¸  
Done  
Displays the character string promptString dialog  
box.  
If used as part of a Dialog...EndDlog block,  
promptString is displayed inside that dialog box. If  
used as a standalone instruction, Text creates a  
dialog box to display the string.  
Then  
See If, page 830.  
timeCnv() CATALOG  
timeCnv(seconds) list  
timeCnv(152442117)  
{1764 9 1 57}  
Converts seconds to units of time that can be  
more easily understood for evaluation. The list is  
in {days,hours,minutes,seconds} format.  
Note: See also checkTmr() and startTmr().  
Title  
CATALOG  
Title titleString, [Lbl]  
Program segment:  
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  
:Request  
:Dropdown  
"This is a dialog box"  
"Your name",Str1  
"Month you were born",  
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.  
seq(string(i),i,1,12),Var1  
:EndDlog  
©
Appendix A: Functions and Instructions  
889  
 
tmpCnv() CATALOG  
tmpCnv(expression1_¡tempUnit1, _¡tempUnit2)  
tmpCnv(100_¡c,_¡f) ¸  
tmpCnv(32_¡f,_¡c) ¸  
tmpCnv(0_¡c,_¡k) ¸  
tmpCnv(0_¡f,_¡r) ¸  
212.ø_¡F  
0.ø_¡C  
expression _¡tempUnit2  
Converts a temperature value specified by  
expression1 from one unit to another. Valid  
temperature units are:  
273.15ø_¡K  
459.67ø_¡R  
_¡C  
_¡F  
_¡K  
_¡R  
Celsius  
Fahrenheit  
Kelvin  
Note: To select temperature units from a menu,  
press 2 9  
Rankine  
For ¡, press 2 “.  
For _, press ¥ .  
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]  
(or 2 ¿ 1 5).  
expression _¡tempUnit2  
Converts a temperature range (the difference  
between two temperature values) specified by  
expression1 from one unit to another. Valid  
temperature units are:  
@tmpCnv(100_¡c,_¡f) ¸  
180.ø_¡F  
@tmpCnv(180_¡f,_¡c) ¸  
100.ø_¡C  
_¡C  
_¡F  
_¡K  
_¡R  
Celsius  
Fahrenheit  
Kelvin  
@tmpCnv(100_¡c,_¡k) ¸  
100.ø_¡K  
Rankine  
@tmpCnv(100_¡f,_¡r) ¸  
For ¡, press 2 “.  
For _, press ¥ .  
100.ø_¡R  
@tmpCnv(1_¡c,_¡f) ¸  
1.8ø_¡F  
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.  
Note: To select temperature units from a menu,  
press 2 9  
For example, a 100_¡C range (from 0_¡C to  
100_¡C) is equivalent to a 180_¡F range:  
100_¡C  
0
100  
212  
_¡C  
_¡F  
32  
180_¡F  
To convert a particular temperature value instead  
of a range, use tmpCnv().  
890  
Appendix A: Functions and Instructions  
 
Toolbar  
CATALOG  
Toolbar  
block  
EndTBar  
Program segment:  
©
:Toolbar  
Creates a toolbar menu.  
: Title "Examples"  
: Item "Trig", t  
: Item "Calc", c  
: Item "Stop", Pexit  
:EndTbar  
block can be either a single statement or a  
sequence of statements separated with the “:”  
character. The statements can be either Title or  
Item.  
©
Items must have labels. A Title must also have a  
label if it does not have an item.  
Note: When run in a program, this segment  
creates a menu with three choices that branch  
to three places in the program.  
Trace  
CATALOG  
Trace  
Draws a Smart Graph and places the trace cursor  
on the first defined Y= function at the previously  
defined cursor position, or at the reset position if  
regraphing was necessary.  
Allows operation of the cursor and most keys  
when editing coordinate values. Several keys,  
such as the function keys, O, and 3, are  
not activated during trace.  
Note: Press ¸ to resume operation.  
Try  
CATALOG  
Try  
Program segment:  
block1  
©
Else  
block2  
EndTry  
:Try  
: NewFold(temp)  
: Else  
Executes block1 unless an error occurs. Program  
:
¦Already exists  
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  
891  
       
TwoVar  
MATH/Statistics menu  
TwoVar list1, list2[, [list3] [, list4, list5]]  
{0,1,2,3,4,5,6}! L1¸  
{0 1 2 ...}  
Calculates the TwoVar statistics and updates all  
{0,2,3,4,3,4,6}! L2¸  
the system statistics variables.  
{0 2 3 ...}  
All the lists must have equal dimensions except  
for list5.  
TwoVar 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  
.
Unarchiv CATALOG  
Unarchiv var1 [, var2] [, var3] …  
10!arctest ¸  
Archive arctest ¸  
5ùarctest ¸  
10  
Done  
50  
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(vector1) vector  
unitV([a,b,c])¸  
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 a  
single-column matrix.  
6 6 6  
[
]
6
3
6
14  
14  
14  
unitV([1;2;3])¸  
7  
3ø 14  
14  
Unlock  
CATALOG  
Unlock var1[, var2][, var3]...  
Unlocks the specified variables.  
Note: The variables can be locked using the  
Lock command.  
892  
Appendix A: Functions and Instructions  
variance() MATH/Statistics menu  
variance(list[, freqlist])  
expression  
variance({a,b,c})¸  
añ -aø (b+c)+bñ -bø c+cñ  
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([1,2,5;ë 3,0,1;  
variance(matrix1[, freqmatrix])  
matrix  
.5,.7,3])¸  
[4.75 1.03 4]  
Returns a row vector containing the variance of  
each column in matrix1.  
variance([L1.1,2.2;3.4,5.1;  
L2.3,4.3],[6,3;2,4;5,1]) ¸  
Each freqmatrix element counts the number of  
consecutive occurrences of the corresponding  
element in matrix1.  
[3.91731,2.08411]  
Note: matrix1 must contain at least two rows.  
when()  
CATALOG  
when(condition, trueResult [, falseResult]  
[, unknownResult]) expression  
Returns trueResult, falseResult, or unknownResult,  
depending on whether condition is true, false, or  
unknown. Returns the input if there are too few  
arguments to specify the appropriate result.  
Omit both falseResult and unknownResult to make  
an expression defined only in the region where  
condition is true.  
when(x<0,x+3)|x=5¸  
when(x<0,3+x)  
Use an undef falseResult to define an expression  
that graphs only on an interval.  
ClrGraph ¸  
Graph when(xëp and x<0,x+3,undef)  
¸
Omit only the unknownResult to define a two-piece  
expression.  
Graph when(x<0,x+3,5ì x^2)¸  
"
ClrGraph¸  
Nest when() to define expressions that have  
more than two pieces.  
Done  
Graph when(x<0,when(x<ëp,  
4ù sin(x),2x+3),5ì x^2)¸  
Appendix A: Functions and Instructions  
893  
when() is helpful for defining recursive functions.  
when(n>0,nù factoral(nì 1),1)  
! factoral(n)¸  
factoral(3)¸  
3! ¸  
Done  
6
6
While  
CATALOG  
While condition  
block  
EndWhile  
Program segment:  
©
:1! i  
:0! temp  
:While i<=20  
: temp+1/i! temp  
: i+1! i  
:EndWhile  
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 “:”  
character.  
:Disp "sum of reciprocals up to 20",te  
©
“With”  
xor  
See |, page 912.  
MATH/Test menu  
Boolean expression1 xor Boolean expression2  
expression  
Boolean  
true xor true¸  
false  
true  
(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.  
integer1 xor integer2  
integer  
In Hex base mode:  
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.  
0h7AC36 xor 0h3D5F ¸  
0h79169  
Important: Zero, not the letter O.  
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.  
894  
Appendix A: Functions and Instructions  
   
XorPic  
CATALOG  
XorPic picVar[, row] [, column]  
Displays the picture stored in picVar on the current  
Graph screen.  
Uses xor logic for each pixel. Only those pixel  
positions that are exclusive to either the screen or  
the picture are turned on. This instruction turns  
off pixels that are turned on in both images.  
picVar must contain a pic data type.  
row and column, if included, specify the pixel  
coordinates for the upper left corner of the  
picture. Defaults are (0, 0).  
zeros()  
MATH/Algebra menu  
zeros(expression, var)  
list  
zeros(aù x^2+bù x+c,x)¸  
Returns a list of candidate real values of var that  
make expression=0. zeros() does this by  
computing exp8list(solve(expression=0,var),var).  
ë( bñ-4øaøc-+b) bñ-4øaøc-b  
{
}
2øa  
2øa  
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().  
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.  
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.  
zeros({x^2+y^2ì r^2,  
(xì r)^2+y^2ì r^2},{x,y}) ¸  
3ør  
2
ë 3ør  
2
r  
2
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:  
Appendix A: Functions and Instructions  
895  
 
r ë 3ør  
2  
ans(1)[2] ¸  
2
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 ck, where k is an integer  
suffix from 1 through 255. The suffix resets to 1  
when you use ClrHome or ƒ 8:Clear Home.  
zeros({x^2+y^2ì r^2,  
(xì r)^2+y^2ì r^2},{x,y,z}) ¸  
3ør  
2
ë 3ør  
2
r  
@1  
2
r
2  
@1  
For polynomial systems, computation time or  
memory exhaustion may depend strongly on the  
order in which you list unknowns. If your initial  
choice exhausts memory or your patience, try  
rearranging the variables in the expressions  
and/or varOrGuess list.  
If you do not include any guesses and if any  
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  
}) ¸  
z
e ø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  
zeros({e^(z)ùyì1,ëyìsin(z)},  
{y,z}) ¸  
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.  
.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  
ZoomBox  
In function graphing mode:  
Displays the Graph screen, lets you draw a box  
that defines a new viewing window, and updates  
the window.  
1.25xù cos(x)! y1(x)¸  
ZoomStd:ZoomBox¸  
Done  
1st corner  
2nd corner  
The display after defining ZoomBox by pressing  
¸ the second time.  
896  
Appendix A: Functions and Instructions  
ZoomData CATALOG  
ZoomData  
In function graphing mode:  
Adjusts the window settings based on the  
{1,2,3,4}! L1¸  
{2,3,4,5}! L2¸  
newPlot 1,1,L1,L2¸  
ZoomStd¸  
{1 2 3 4}  
{2 3 4 5}  
Done  
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.  
"
ZoomData¸  
ZoomDec CATALOG  
ZoomDec  
In function graphing mode:  
Adjusts the viewing window so that @x and  
1.25xù cos(x)! y1(x)¸  
ZoomStd¸  
Done  
@y = 0.1 and displays the Graph screen with the  
origin centered on the screen.  
"
ZoomDec¸  
Appendix A: Functions and Instructions  
897  
ZoomFit CATALOG  
ZoomFit  
In function graphing mode:  
Displays the Graph screen, and calculates the  
1.25xù cos(x)! y1(x)¸  
ZoomStd¸  
Done  
necessary window dimensions for the dependent  
variables to view all the picture for the current  
independent variable settings.  
"
ZoomFit¸  
ZoomIn  
CATALOG  
ZoomIn  
In function graphing mode:  
Displays the Graph screen, lets you set a 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  
ZoomInt  
In function graphing mode:  
Displays the Graph screen, lets you set a center  
1.25xù cos(x)! y1(x)¸  
ZoomStd:ZoomInt¸  
Done  
point for the zoom, and adjusts the window  
settings so that each pixel is an integer in all  
directions.  
¸
898  
Appendix A: Functions and Instructions  
ZoomOut CATALOG  
ZoomOut  
In function graphing mode:  
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  
ZoomSqr  
In function graphing mode:  
Displays the Graph screen, adjusts the x or y  
1.25xù cos(x)! y1(x)¸  
ZoomStd¸  
Done  
window settings so that each pixel represents an  
equal width and height in the coordinate system,  
and updates the viewing window.  
In 3D Graph mode, ZoomSqr lengthens the  
shortest two axes to be the same as the longest  
axis.  
"
ZoomSqr ¸  
Appendix A: Functions and Instructions  
899  
ZoomStd CATALOG  
ZoomStd  
In function graphing mode:  
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  
ZoomTrig  
In function graphing mode:  
Displays the Graph screen, sets @x to p/24, and  
1.25xù cos(x)! y1(x)¸  
ZoomStd¸  
Done  
xscl to p/2, centers the origin, sets the y settings  
to [ë 4, 4, .5], and updates the viewing window.  
"
ZoomTrig¸  
+ (add)  
« key  
expression1 + expression2  
expression  
56¸  
56  
60  
64  
68  
72  
ans(1)+4¸  
ans(1)+4¸  
ans(1)+4¸  
ans(1)+4¸  
Returns the sum of expression1 and expression2.  
900  
Appendix A: Functions and Instructions  
 
list1 + list2  
matrix1 + matrix2  
list  
{22,p,p/2}! L1¸  
{10,5,p/2}! L2¸  
L1+L2¸  
{22 p p/2}  
{10 5 p/2}  
{32 p+5 p}  
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]  
expression + list1  
list1 + expression  
list  
list  
15+{10,15,20}¸  
{25 30 35}  
{10,15,20}+15¸  
{25 30 35}  
Returns a list containing the sums of expression  
and each element in list1.  
expression + matrix1  
matrix1 + expression  
matrix  
matrix  
20+[1,2;3,4]¸  
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  
expression1 - expression2  
expression  
6ì 2¸  
4
Returns expression1 minus expression2.  
5ø p  
6
pì 6¸  
list1 - list2  
matrix1 - matrix2  
list  
{22,p,2}ì {10,5,2}¸  
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.  
expression - list1  
list1 - expression  
list  
list  
15ì {10,15,20}¸  
{5 0 -5}  
{-5 0 5}  
{10,15,20}ì 15¸  
Subtracts each list1 element from expression or  
subtracts expression from each list1 element, and  
returns a list of the results.  
expression - matrix1  
matrix1 - expression  
matrix  
matrix  
20ì [1,2;3,4]¸  
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.  
Appendix A: Functions and Instructions  
901  
 
(multiply)  
ù
p key  
expression1 ù expression2  
Returns the product of expression1 and expression2.  
expression  
2ù 3.45¸  
6.9  
x2ø y  
xù yù x¸  
list1ù list2  
list  
{1.0,2,3}ù {4,5,6}¸  
{4. 10 18}  
b
Returns a list containing the products of the  
corresponding elements in list1 and list2.  
{2àa,3à2}ù {añ,bà3}¸  
{2ø a  
}
2
Dimensions of the lists must be equal.  
matrix1 ù matrix2  
matrix  
[1,2,3;4,5,6]ù [a,d;b,e;c,f]¸  
Returns the matrix product of matrix1 and matrix2.  
The number of rows in matrix1 must equal the  
number of columns in matrix2.  
expression ù list1  
list1 ù expression  
list  
list  
pù {4,5,6}¸  
{4ø p 5ø p 6ø p}  
Returns a list containing the products of  
expression and each element in list1.  
expression ù matrix1  
matrix1 ù expression  
matrix  
matrix  
.01 .02  
[1,2;3,4]ù.01¸  
[
]
.03 .04  
Returns a matrix containing the products of  
expression and each element in matrix1.  
l 0 0  
0 l 0  
lù identity(3)¸  
0 0 l  
Note: Use .ù (dot multiply) to multiply an  
expression by each element.  
(divide)  
e key  
à
expression1 à expression2  
expression  
2/3.45¸  
.57971  
x2  
Returns the quotient of expression1 divided by  
expression2.  
x^3/x¸  
list1 à list2  
list  
{1.0,2,3}/{4,5,6}¸  
{.25 2/5 1/2}  
Returns a list containing the quotients of list1  
divided by list2.  
Dimensions of the lists must be equal.  
expression à list1  
list1 à expression  
list  
list  
a/{3,a,(a)}¸  
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  
matrix1 à expression  
matrix  
[a,b,c]/(aù bù c)¸  
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.  
902  
Appendix A: Functions and Instructions  
   
(power)  
Z key  
expression1 ^ expression2  
list1 ^ list2 list  
^
expression  
4^2¸  
16  
{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.  
(dot add)  
.+  
¶ « keys  
matrix1 .+ matrix2  
expression .+ matrix1  
matrix  
matrix  
[a,2;b,3].+[c,4;5,d]¸  
x.+[c,4;5,d]¸  
matrix1 .+ matrix2 returns a matrix that is the sum  
of each pair of corresponding elements in matrix1  
and matrix2.  
expression .+ matrix1 returns a matrix that is the  
sum of expression and each element in matrix1.  
(dot subt.)  
..  
¶ | keys  
matrix1 .ì matrix2  
expression .ì matrix1  
matrix  
matrix  
[a,2;b,3].ì [c,4;d,5]¸  
x.ì [c,4;d,5]¸  
matrix1 .ì matrix2 returns a matrix that is the  
difference between each pair of corresponding  
elements in matrix1 and matrix2.  
expression .ì matrix1 returns a matrix that is the  
difference of expression and each element in  
matrix1.  
Appendix A: Functions and Instructions  
903  
     
(dot mult.)  
.ù  
¶ p keys  
matrix1 .ù matrix2  
expression .ù matrix1  
matrix  
matrix  
[a,2;b,3].ù [c,4;5,d]¸  
x.ù [a,b;c,d]¸  
matrix1 .ù matrix2 returns a matrix that is the  
product of each pair of corresponding elements in  
matrix1 and matrix2.  
expression .ù matrix1 returns a matrix containing  
the products of expression and each element in  
matrix1.  
(dot divide)  
./  
¶ e keys  
matrix1 . / matrix2  
expression . / matrix1  
matrix  
matrix  
[a,2;b,3]./[c,4;5,d]¸  
x./[c,4;5,d]¸  
matrix1 ./ matrix2 returns a matrix that is the  
quotient of each pair of corresponding elements  
in matrix1 and matrix2.  
expression ./ matrix1 returns a matrix that is the  
quotient of expression and each element in matrix1.  
(dot power)  
.^  
¶ Z keys  
matrix1 .^ matrix2  
expression . ^ matrix1  
matrix  
matrix  
[a,2;b,3].^[c,4;5,d]¸  
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.  
ë
· key and MATH/Base menu  
(negate)  
ëexpression1  
ë list1  
ë matrix1  
expression  
ë2.43¸  
ë 2.43  
list  
ë {ë 1,0.4,1.2í 19}¸  
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 %  
list1 % list  
matrix1 %  
expression  
13%¥ ¸  
.13  
{1, 10, 100}%¥ ¸  
matrix  
{.01 .1 1.}  
argument  
100  
Returns  
.
For a list or matrix, returns a list or matrix with  
each element divided by 100.  
904  
Appendix A: Functions and Instructions  
         
= (equal)  
Á key  
expression1 = expression2  
Boolean expression  
Example function listing using math test  
list1 = list2  
matrix1 = matrix2  
Boolean list  
Boolean matrix  
symbols: =, ƒ, <, , >, ‚  
:g(x)  
:Func  
Returns true if expression1 is determined to be  
equal to expression2.  
:If xë 5 Then  
: Return 5  
: ElseIf x>ë 5 and x<0 Then  
: Return ë x  
: ElseIf x0 and xƒ10 Then  
: Return x  
Returns false if expression1 is determined to not be  
equal to expression2.  
Anything else returns a simplified form of the  
equation.  
: ElseIf x=10 Then  
: Return 3  
:EndIf  
For lists and matrices, returns comparisons  
element by element.  
:EndFunc  
Graph g(x)¸  
¥ Á key  
expression1 expression2  
list1 list2 Boolean list  
matrix1 matrix2 Boolean matrix  
Boolean expression  
See "=" (equal) example.  
Returns true if expression1 is determined to be not  
equal to expression2.  
Returns false if expression1 is determined to be  
equal to expression2.  
Anything else returns a simplified form of the  
equation.  
For lists and matrices, returns comparisons  
element by element.  
<
2 Â key  
expression1 < expression2  
list1 < list2 Boolean list  
matrix1 < matrix2 Boolean matrix  
Boolean expression  
See "=" (equal) example.  
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  
905  
     
>
!
¹ µ key  
expression1 expression2  
Boolean expression  
See "=" (equal) example.  
See "=" (equal) example.  
See "=" (equal) example.  
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.  
2 Ã 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.  
(factorial)  
¥ e key  
expression1!  
list1! list  
matrix1!  
expression  
5! ¸  
120  
{120 24 6}  
1 2  
{5,4,3}! ¸  
matrix  
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.  
906  
Appendix A: Functions and Instructions  
       
(append)  
&
¥ p key  
string1 & string2  
string  
"Hello " & "Nick"¸  
"Hello Nick"  
Returns a text string that is string2 appended to  
string1.  
()  
2 < key  
(integrate)  
(expression1, var[, lower] [,upper])  
(list1,var [,order]) list  
(matrix1,var [,order])  
expression  
matrix  
Returns the integral of expression1 with respect to  
the variable var from lower to upper.  
bò aò  
(x^2,x,a,b)¸  
(x^2,x)¸  
-
3
3
Returns an anti-derivative if lower and upper are  
omitted. A symbolic constant of integration such  
as C is omitted.  
xò  
3
aø xò  
3
However, lower is added as a constant of  
integration if only upper is omitted.  
(aù x^2,x,c)¸  
+c  
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.  
(1/(2ì cos(x)),x)! tmp(x)¸  
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.  
For the APPROX setting, numerical integration is  
tried first, if applicable. Anti-derivatives are  
sought only where such numerical integration is  
inapplicable or fails.  
(e^(ë x^2),x,ë 1,1)¥ ¸  
1.493...  
() can be nested to do multiple integrals.  
Integration limits can depend on integration  
variables outside them.  
((ln(x+y),y,0,x),x,0,a) ¸  
Note: See also nInt().  
Appendix A: Functions and Instructions  
907  
   
() (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  
Π(expression1, var, low, high)  
expression  
1
120  
Π(1/n,n,1,5)¸  
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,  
Π(1/k,k,4,1)¸  
var, high+1, lowì 1) if high < lowì 1  
Π(1/k,k,4,1)ù Π(1/k,k,2,4)¸  
1/4  
G() (sum)  
MATH/Calculus menu  
G (expression1, var, low, high)  
expression  
137  
60  
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 (expression1, var, low, lowì 1)  
G (expression1, var, low, high)  
0
G(k,k,4,3)¸  
0
ë G (expression1,  
G(k,k,4,1)¸  
ë 5  
var, high+1, lowì 1) if high < lowì 1  
G(k,k,4,1)+G(k,k,2,4)¸  
4
(indirection)  
#
CATALOG  
# varNameString  
Program segment:  
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  
©
908  
Appendix A: Functions and Instructions  
       
G
(gradian)  
expression1G  
MATH/Angle menu  
¡
expression  
In Degree, Gradian or Radian mode:  
list1G  
matrix1G  
¡
list  
2  
2
¡
matrix  
cos(50G) ¸  
This function gives you a way to use a gradian  
angle while in the Degree or Radian modes.  
cos({0,100G,200G}) ¸ {1,0.-1}  
In Radian angle mode, multiplies expression by  
p/200. In Degree angle mode, multiplies  
expression 1 by g/100.  
In Gradian mode, returns expression1 unchanged.  
(radian)  
ô
MATH/Angle menu  
expression1ô  
list1ô  
matrix1ô  
expression  
In Degree, Gradian or Radian angle mode:  
cos((p/4)ô )¸  
list  
2  
2
matrix  
In Degree angle mode, multiplies expression1 by  
180/p. In Radian angle mode, returns expression1  
unchanged. In Gradian mode, multiplies  
expression1 by 200/p.  
cos({0ô,(p/12)ô,ë pô })¸  
rectangular  
+1)ø  
4
(
3
2
{1  
ë 1}  
This function gives you a way to use a radian  
angle while in Degree and Gradian mode.  
cylindrical  
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.  
spherical  
(degree)  
¡
2 “ key  
expression1  
list1¡  
matrix1¡  
expression  
In Degree, Gradian or Radian angle mode:  
list  
2  
2
matrix  
cos(45¡)¸  
In Radian angle mode, multiplies expression by  
p/180. In Degree angle mode, returns expression  
unchanged.In Gradian angle mode, multiplies  
expression1 by 10/9.  
cos({0,p/4,90¡,30.12¡})¥ ¸  
{1 .707... 0 .864...}  
This function gives you a way to use a degree  
angle while in Gradian and Radian mode.  
(angle)  
2 ’ key  
[radius,q_angle]  
[radius,q_angle,Z_coordinate]  
(cylindrical input)  
vector (polar input)  
[5,60¡,45¡]¸  
In Radian mode and vector format set to:  
vector  
[radius,q_angle,f_angle]  
(spherical input)  
vector  
Returns coordinates as a vector depending on the  
Vector Format mode setting: rectangular,  
cylindrical, or spherical.  
Appendix A: Functions and Instructions  
909  
       
(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  
¡, ', "  
2 “ key (¡), 2 È key ('), 2 É key (")  
dd¡mm'ss.ss"  
expression  
In Degree angle mode:  
25°13'17.5"¸  
25°30'¸  
dd  
mm  
A positive or negative number  
A non-negative number  
25.221...  
51/2  
ss.ss A non-negative number  
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 equation. A  
deSolve(y''=y^(ë 1/2) and y(0)=0 and  
y'(0)=0,t,y) ¸  
2øy3/4  
3
=t  
single prime symbol denotes a 1st-order  
differential equation, two prime symbols denote a  
2nd-order, etc.  
_ (underscore)  
¥ key  
expression_unit  
3_m4 _ft ¸  
9.842…ø_ft  
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  
module about constants and measurement units.  
You can press 2 9 to select units from a  
menu, or you can type the unit names directly.  
variable_  
Assuming z is undefined:  
When variable has no value, it is treated as though  
it represents a complex number. By default,  
without the _, the variable is treated as real.  
real(z) ¸  
real(z_) ¸  
z
real(z_)  
imag(z) ¸  
imag(z_) ¸  
0
If variable has a value, the _ is ignored and variable  
retains its original data type.  
imag(z_)  
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.  
910  
Appendix A: Functions and Instructions  
     
4 (convert)  
2  key  
expression_unit1 4 _unit2  
expression_unit2  
3_m4 _ft ¸  
9.842…ø_ft  
Converts an expression from one unit to another.  
The units must be in the same category.  
The _ underscore character designates the units.  
For a list of valid pre-defined units, refer to the  
module about constants and measurement units.  
You can press 2 9 to select units from a  
menu, or you can type the unit names directly.  
To get the _ underscore when typing units  
directly, press ¥   
Note: The 4 conversion operator does not handle  
temperature units. Use tmpCnv() and  
@tmpCnv() instead.  
10^()  
CATALOG  
10^ (expression1)  
expression  
10^(1.5)¸  
31.622...  
10^ (list1) list  
10^{0,ë 2,2,a}¸  
Returns 10 raised to the power of the argument.  
1
100  
a
{1  
100 10 }  
For a list, returns 10 raised to the power of the  
elements in list1.  
10^(squareMatrix1)  
squareMatrix  
10^([1,5,3;4,2,1;6,L2,1]) ¸  
Returns 10 raised to the power of 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().  
19..915463EE67 78..111715EE66 65..681735EE66  
7.652…E6 5.469…E6 4.468…E6  
squareMatrix1 must be diagonalizable. The result  
always contains floating-point numbers.  
xê  
CATALOG (^-1)  
expression1 xê  
list1 xê  
list  
expression  
3.1^ë 1¸  
.322581  
1
{a,4,ë.1,xì 2}^ë 1¸  
Returns the reciprocal of the argument.  
1 1  
{
ë 10.  
}
a
4
xì 2  
For a list, returns the reciprocals of the elements  
in list1.  
[1,2;3,4]^ë 1 ¸  
squareMatrix1 xê  
squareMatrix  
[1,2;a,4]^ë 1 ¸  
Returns the inverse of squareMatrix1.  
squareMatrix1 must be a non-singular square  
matrix.  
Appendix A: Functions and Instructions  
911  
       
(“with”)  
|
Í key  
expression | Boolean expression1 [and Boolean  
x+1| x=3¸  
4
sin(y)+y  
x+y  
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.  
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.  
x^3ì 2x+7! f(x)¸  
Done  
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  
Exclusions use the “not equals” (/= or ƒ)  
solve(x^2ì 1=0,x)| xƒ1¸  
x=ë 1  
relational operator to exclude a specific value  
from consideration. They are used primarily to  
exclude an exact solution when using cSolve(),  
cZeros(), fMax(), fMin(), solve(), zeros(), etc.  
(store)  
!
§ key  
p
4
expression ! var  
list ! var  
matrix ! var  
expression ! fun_name(parameter1,...)  
list ! fun_name(parameter1,...)  
matrix ! fun_name(parameter1,...)  
p/4! myvar¸  
2cos(x)! Y1(x)¸  
Done  
{1 2 3 4}  
1 2 3  
{1,2,3,4}! Lst5¸  
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  
If var already exists and if it is not locked or  
protected, replaces its contents with expression,  
list, or matrix.  
"Hello"! str1¸  
"Hello"  
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 ¥ d key  
¦ [text]  
Program segment:  
¦ 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  
©
912  
Appendix A: Functions and Instructions  
     
0b, 0h  
µ j [B] keys  
µ j [H] keys  
0bbinaryNumber  
0hhexadecimalNumber  
In Dec base mode:  
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  
913  
 
Appendix B: Technical Reference  
This section contains a comprehensive list of TI-89 Titanium / Voyage™ 200 error  
messages and character codes. It also includes information about how certain TI-89  
Titanium / Voyage™ 200 operations are calculated.  
TI-89 Titanium / Voyage™ 200 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  
160  
Argument must be an empty folder name  
Argument must be an expression  
For example, zeros(2x+3=0,x) is invalid because the first argument is  
an equation.  
161  
ASAP or Exec string too long  
Appendix B: Technical Reference  
915  
Error  
Number  
Description  
163  
165  
Attribute (8-digit number) of object (8-digit number) not found  
Batteries too low for sending or receiving  
Install new batteries before sending or receiving.  
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  
205  
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.”  
Data is too big to save to a variable. Please use F6 Util to reduce the  
size.  
The size of the data in the editor exceeds the maximum size that can  
be saved in a variable. The F6 Util menu provides operations that  
can be used to reduce the size of the data.  
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  
Dimension mismatch  
Two or more arguments must be of the same dimension. For  
example, [1,2]+[1,2,3] is a dimension mismatch because the  
matrices contain a different number of elements.  
250  
260  
Divide by zero  
Domain error  
An argument must be in a specified domain. For example, ans(100)  
is not valid because the argument for ans() must be in the range 1–  
99.  
270  
Duplicate variable name  
Appendix B: Technical Reference  
916  
Error  
Number  
Description  
280  
290  
295  
300  
307  
308  
310  
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  
405  
410  
420  
430  
440  
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  
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 the Calculator Home Screen  
module.  
Appendix B: Technical Reference  
917  
Error  
Number  
Description  
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  
Invalid outside Dialog..EndDlog, Custom..EndCustm, or  
ToolBar..EndTBar blocks  
For example, a Title command is attempted outside a Dialog,  
Custom, or ToolBar structure.  
540  
550  
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.  
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.  
585  
590  
Invalid relocation data in ASM program  
The necessary relocation data in the ASM (Assembly) program is  
missing or corrupted.  
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  
Invalid table  
Invalid use of units  
Appendix B: Technical Reference  
918  
Error  
Number  
Description  
610  
620  
630  
640  
650  
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  
690  
700  
710  
720  
730  
740  
750  
765  
780  
Missing (  
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  
2
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: Technical Reference  
919  
Error  
Number  
Description  
850  
Program not found  
A program reference inside another program could not be found in  
the provided path during execution.  
Rand type functions not allowed in 3D graphing  
Recursion is limited to 255 calls deep  
Reserved name or system variable  
ROM-resident routine not available  
Sequence setup  
855  
860  
870  
875  
880  
885  
890  
895  
Signature error  
Singular matrix  
Slope fields need one selected function and are used for 1st-order  
equations only  
900  
910  
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 OS 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  
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  
Appendix B: Technical Reference  
920  
   
Error  
Number  
Description  
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  
Warning: Non-real intermediate result  
Note: Domain of result may be larger  
Note: Domain of result may be smaller  
TI-89 Titanium / Voyage™ 200 Modes  
This section describes the modes of the TI-89 Titanium /Voyage™ 200 and lists the  
possible settings of each mode. These mode settings are displayed when you press  
3.  
Graph  
Specifies the type of graphs you can plot.  
1:FUNCTION  
2:PARAMETRIC  
3:POLAR  
y(x) functions  
x(t) and y(t) parametric equations  
r(q) polar equations  
u(n) sequences  
4:SEQUENCE  
5:3D  
z(x,y) 3D equations  
y'(t) differential equations  
6:DIFF EQUATIONS  
Note: If you use a split screen with Number of Graphs = 2, Graph is for the top or left part of  
the screen and Graph 2 is for the bottom or right part.  
Current Folder  
Specifies the current folder. You can set up multiple folders with unique configurations of  
variables, graph databases, programs, etc.  
Appendix B: Technical Reference  
921  
 
Note: For detailed information about using folders, see Calculator Home Screen.  
1:main  
Default folder included with the TI-89  
Titanium / Voyage™ 200.  
2: —  
Other folders are available only if they have  
(custom folders) been created by a user.  
Display Digits  
Selects the number of digits. These decimal settings affect only how results are  
displayed—you can enter a number in any format.  
Internally, the TI-89 Titanium / Voyage™ 200 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  
Angle  
Specifies the units in which angle values are interpreted and displayed in trig functions  
and polar/rectangular conversions.  
1:RADIAN  
2:DEGREE  
3:GRADIAN  
Exponential Format  
Specifies which notation format should be used. These formats affect only how an  
answer is displayed; you can enter a number in any format. Numeric answers can be  
displayed with up to 12 digits and a 3-digit exponent.  
1:NORMAL  
Expresses numbers in standard format. For  
example, 12345.67  
2:SCIENTIFIC  
Expresses numbers in two parts:  
The significant digits display with one digit to the  
left of the decimal.  
The power of 10 displays to the right of E.  
For example, 1.234567E4 means 1.234567×104  
Appendix B: Technical Reference  
922  
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 Titanium / Voyage™ 200 displays the answer in  
SCIENTIFIC notation. If Display Digits = FLOAT, scientific notation will be used for  
exponents of 12 or more and exponents of -4 or less.  
Complex Format  
Specifies whether complex results are displayed and, if so, their format.  
1:REAL  
Does not display complex results. (If a result is  
a complex number and the input does not  
contain the complex unit i, an error message is  
displayed.)  
2:RECTANGULAR Displays complex numbers in the form: a+bi  
i q  
3:POLAR  
Displays complex numbers in the form: re  
Vector Format  
Determines how 2-element and 3-element vectors are displayed. You can enter vectors  
in any of the coordinate systems.  
1:RECTANGULAR Coordinates are in terms of x, y, and z. For  
example, [3,5,2] represents x = 3, y = 5, and  
z = 2.  
2:CYLINDRICAL  
Coordinates are in terms of r, q, and z. For  
example, [3,45,2] represents r = 3, q = 45,  
and z = 2.  
3:SPHERICAL  
Coordinates are in terms of r, q, and f. For  
example, [3, 45, 90] represents r = 3,  
q = 45, and f = 90.  
Pretty Print  
Determines how results are displayed on the Home screen.  
1:OFF  
Results are displayed in a linear, one-  
dimensional form.  
For example, p^2, p/2, or ((x-3)/x)  
2:ON  
Results are displayed in conventional  
mathematical format.  
π
x – 3  
x
2
--  
For example, p , , or -----------  
2
Note: For a complete description of these settings, refer to “Formats of Displayed  
Results” in the Operating the Calculator module.  
Appendix B: Technical Reference  
923  
 
Split Screen  
Lets you split the screen into two parts. For example, you can display a graph and see  
the Y= Editor at the same time.  
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 Voyage™ 200 only.)  
Split 1 App and Split 2 App  
Specifies which application is displayed on the screen.  
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.  
Number of Graphs  
Specifies whether both parts of a split screen can display graphs at the same time.  
1
2
Only one part can display graphs.  
Both parts can display an independent graph  
screen (Graph or Graph 2 setting) with  
independent settings.  
Graph 2  
Specifies the type of graphs that you can plot for the second graph on a two-graph split  
screen. This is active only when Number of Graphs = 2. In this two-graph setting, Graph  
sets the type of graph for the top or left part of the split screen, and Graph 2 sets the  
bottom or right part. The available choices are the same as for Graph.  
Split Screen Ratio (Voyage 200 only)  
Specifies the proportional sizes of the two parts of a split screen.  
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.  
Appendix B: Technical Reference  
924  
 
Exact/Approx  
Specifies how fractional and symbolic expressions are calculated and displayed. By  
retaining rational and symbolic forms in the EXACT setting, the TI-89  
Titanium / Voyage™ 200 increases precision by eliminating most numeric rounding  
errors.  
1:AUTO  
Uses EXACT setting in most cases. However,  
uses APPROXIMATE if the entry contains a  
decimal point.  
2:EXACT  
Displays non-whole-number results in their  
rational or symbolic form.  
3:APPROXIMATE Displays numeric results in floating-point form.  
Note: For a complete description of these settings, refer to “Formats of Displayed  
Results” in the Operating the Calculator module.  
Base  
Lets you perform calculations by entering numbers in decimal, binary, or hexadecimal  
form.  
1:DEC  
2:HEX  
3:BIN  
Decimal numbers use 0 - 9 in the base 10  
format  
Hexadecimal numbers use 0 - 9 and A - F in the  
base 16 format.  
Binary numbers use 0 and 1 in the base 2  
format.  
Appendix B: Technical Reference  
925  
Unit System  
Lets you enter a unit for values in an expression, such as 6_m * 4_m or 23_m/_s * 10_s,  
convert values from one unit to another within the same category, and create your own  
user-defined units.  
1:SI  
Select SI for the metric system of  
measurements  
2:ENG/US  
3:CUSTOM  
Select ENG/US for the non-metric system of  
measurements  
Allows you to select custom defaults.  
Custom Units  
Lets you select custom defaults. This mode is dimmed until you select Unit System,  
3:CUSTOM.  
Language  
Lets you localize the TI-89 Titanium / Voyage200 into one of several languages,  
depending on which language Flash applications are installed.  
1:English  
Default language included with the TI-89  
Titanium / Voyage™ 200 operating system  
(OS).  
2: —  
Alternate languages are available only if the  
(language Flash respective language Flash applications have  
applications)  
been installed.  
Apps Desktop  
Lets you turn the display of the Apps desktop on or off.  
ON  
Displays the navigable Apps desktop. The Apps desktop  
appears when you:  
Press O.  
Turn the unit on after it has been turned off by  
pressing 2 ®.  
Press 2 K from an App that is displayed in full  
screen mode.  
OFF  
Does not display the navigable Apps desktop.  
The unit defaults to the calculator Home screen.  
The calculator Home screen displays when you press  
2 K.  
The APPLICATIONS menu displays when you press  
O.  
Appendix B: Technical Reference  
926  
TI-89 Titanium / Voyage™ 200 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.  
2.  
3.  
4.  
5.  
6.  
SOH  
STX  
ETX  
EOT  
ENQ  
ACK  
223. ß  
224. à  
225. á  
226. â  
227. ã  
228. ä  
229. å  
230. æ  
231. ç  
232. è  
233. é  
234. ê  
186.  
38.  
39.  
40.  
41.  
42.  
43.  
44.  
45.  
46.  
47.  
48.  
49.  
50.  
&
'
(
76.  
77.  
78.  
79.  
80.  
81.  
82.  
83.  
84.  
85.  
86.  
L
M
N
O
P
Q
R
S
T
113. q  
114. r  
115. s  
116. t  
117. u  
118. v  
119. w  
120. x  
121. y  
148. ω  
149.  
150. e  
E
187. »  
188. d  
)
151.  
152.  
i
r
189.  
*
+
,
190. ö  
191. ¿  
192. À  
193. Á  
194. Â  
195. Ã  
196. Ä  
197. Å  
198. Æ  
199. Ç  
200. È  
201. É  
202. Ê  
153. ®  
154. ü  
7. BELL  
-
.
8.  
9.  
BS  
155.  
ý
TAB  
156. ≤  
157. #Ä  
158.  
159. ù  
160. …  
161. ¡  
162. ¢  
163. £  
/
10. LF  
0
1
2
U
V
122. z  
123. {  
124. |  
125. }  
126. ~  
127. 2  
11.  
÷
12. FF  
13. CR  
14.  
87. W  
51.  
52.  
53.  
54.  
55.  
56.  
3
4
5
6
7
8
235. ë  
236. ì  
237. í  
238. î  
239. ï  
240. ð  
88.  
89.  
X
Y
15.  
16.  
17.  
18.  
19.  
20.  
3
é
7
8
9
:
90.  
91.  
92.  
93.  
94.  
95.  
96.  
97.  
Z
[
128. α  
129. β  
130. Γ  
131. γ  
132. ∆  
133. δ  
134. ε  
135. ζ  
136. θ  
137. λ  
138. ξ  
139. Π  
140. π  
141. ρ  
142. Σ  
143. σ  
144. τ  
145. φ  
146. ψ  
147. Ω  
164. ¤  
165. ¥  
166. ¦  
167. §  
\
]
203. Ë  
204. Ì  
205. Í  
206. Î  
207. Ï  
208. Ð  
209. Ñ  
241. ñ  
242. ò  
243. ó  
244. ô  
245. õ  
246. ö  
247. ÷  
248. ø  
249. ù  
250. ú  
251. û  
252. ü  
253. ý  
254. þ  
255. ÿ  
^
_
`
57.  
58.  
59.  
60.  
61.  
62.  
63.  
9
:
21. ←  
22. →  
168.  
Á
169. ¦  
;
a
23.  
a
<
=
>
?
170.  
98.  
99.  
b
c
24.  
171. «  
172. ¬  
173. -  
174. ®  
25.  
3
4
'
210. Ò  
211. Ó  
212. Ô  
213. Õ  
214. Ö  
215. ×  
216. Ø  
217. Ù  
218. Ú  
219. Û  
220. Ü  
221. Ý  
222. Þ  
100. d  
101. e  
102. f  
103. g  
26.  
27.  
28.  
29.  
30.  
31.  
64. @  
65.  
66.  
67.  
68.  
69.  
70.  
71.  
72.  
73.  
74.  
75.  
A
B
C
D
E
F
G
H
I
-
175.  
176.  
ó
104. h  
105. i  
106. j  
107. k  
108. l  
109. m  
177. ±  
178.  
179.  
180.  
ñ
ò
ê
32. SPACE  
181. µ  
182. ¶  
33.  
34.  
35.  
!
"
183.  
184.  
ø
+
#
110. n  
111. o  
112. p  
36.  
37.  
$
%
J
185. ¹  
K
Appendix B: Technical Reference  
927  
 
TI-89 Titanium 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  
Û¤  
2
¥
None  
j
Assoc.  
Value Assoc.  
Value Assoc.  
Value Assoc.  
Value  
Assoc  
Value  
F1  
F2  
F3  
F4  
F5  
ă  
ã„  
F1  
F2  
F3  
F4  
F5  
268  
269  
270  
271  
272  
F1  
F2  
268  
269  
F1  
268  
269  
8460  
8461  
8462  
8463  
8464  
268  
269  
270  
271  
272  
Y=  
F2  
F3  
Window  
Graph  
Tblset  
Table  
F3  
270  
270  
F4  
271  
F4  
271  
à‡  
F5  
272  
F5  
272  
¹
Copy  
24576  
Cut  
12288  
a-lock  
QUIT  
äj  
³N  
ESC  
APPS  
Home  
MODE  
CATLG  
ESC  
264  
ESC  
264  
4360  
4361  
4373  
18  
8456  
8457  
277  
95  
264  
265  
277  
266  
278  
PASTE  
APPS  
HOME  
MODE  
CATLG  
265 APPS  
277 HOME  
266 MODE  
278 CATLG  
265 Switch  
277 CUST  
O
"
HOME  
_
3
ú
i
266  
278  
½
151  
190  
%
BS  
0
BS  
CLEAR  
x
257  
BS  
257  
INS  
4353  
263  
8447  
8455  
8280  
257  
DEL  
M
Ù
263 CLEAR  
263 CLEAR  
x
120  
X
88  
LN  
4184  
x
120  
e
y
z
t
Ú
Û
Ü
Z
Í
c
y
z
t
121  
122  
116  
94  
Y
Z
T
^
89  
90  
84  
94  
70  
66  
SIN  
COS  
TAN  
p
4185  
4186  
4180  
140  
-1  
8281  
8282  
8276  
136  
121  
122  
116  
94  
SIN  
-1  
COS  
-1  
TAN  
^
f
^
|
θ
Format d/b  
124  
40  
F
B
176  
8316  
102  
98  
ó
b
(
{
123  
c
d
e
j
)
,
41  
44  
47  
42  
45  
43  
C
D
E
J
67  
68  
69  
74  
}
[
125  
91  
169  
8236  
33  
99  
100  
101  
106  
111  
117  
d
b
e
p
|
«
¦
/
]
93  
!
*
-
4138  
4141  
4139  
38  
&
o
u
O
U
79 VAR-LNK  
85 CHAR  
Contr. -  
Contr. +  
+
Appendix B: Technical Reference  
928  
Table 1: Key Codes for Primary Keys  
Key  
Modifier  
Û¤  
2
¥
None  
j
Assoc.  
Value Assoc.  
Value Assoc.  
13 ENTRY  
Value Assoc.  
Value  
Assoc  
Value  
8205  
CR  
p
13  
CR  
STO4  
=
13  
258  
61  
CR  
P
4109  
¸
§
Á
Approx  
80  
65  
RCL  
4354  
39  
64  
112  
97  
@
a
A
157  
"#  
k
,
EE  
-
149  
K
75  
32  
159 SYMB  
4372  
8341  
8365  
107  
32  
^
·
SPACE  
173 SPACE  
ANS  
w
v
µ
¨
|
{
.
46  
48  
49  
W
V
87  
86  
81  
>
<
62  
60  
34  
158  
156  
119  
118  
113  
0
1
q
Q
8241  
r
s
l
2
3
4
5
6
7
8
9
50  
51  
52  
53  
54  
55  
56  
57  
R
S3  
L
50  
\
92  
4147  
58  
8242  
8243  
8244  
8245  
8246  
8247  
8248  
8249  
114  
115  
108  
109  
110  
103  
104  
105  
©
ª
y
z
{
m
n
o
83 CUST  
76  
77 MATH  
:
m
n
g
h
i
M
N
G
H
I
4149  
4150  
4151  
4152  
59  
78  
71  
72  
73  
MEM  
d
;
Appendix B: Technical Reference  
929  
 
Table 2: Arrow Keys (including diagonal movement)  
2
j
¥
Key  
C
Normal  
¤
338  
340  
344  
337  
339  
342  
345  
348  
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
D
A
C and A  
C and B  
D and A  
D and B  
Table 3: Greek Letters (prefixed by ¥ c)  
Keys  
Second modifier  
j
¤
Assoc.  
Value  
128  
Assoc.  
Value  
Á
c
[A]  
α
β
129  
[B]  
133  
134  
132  
130  
b
e
[D]  
[E]  
δ
ε
Γ
145  
Í
[F]  
φ
131  
137  
m
y
[G]  
[L]  
γ
λ
181  
z
[M]  
µ
140  
141  
139  
142  
147  
§ [P]  
[R]  
π
ρ
Π
Σ
©
143  
144  
ª» [S]  
σ
τ
Ü
[T]  
[W]  
148  
138  
Ù
Ú
ω
ξ
146  
135  
ψ
ζ
Û
Voyage™ 200 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.  
Appendix B: Technical Reference  
930  
Table 1: Key Codes for Primary Keys  
Key  
Modifier  
¤
2
None  
8
Assoc.  
F1  
Value Assoc.  
Value Assoc.  
Value Assoc.  
Value  
8460  
8461  
8462  
8463  
8464  
8465  
8466  
8467  
8458  
8455  
8454  
ƒ
268  
269  
270  
271  
272  
273  
274  
275  
266  
263  
262  
F1  
F2  
268  
269  
270  
271  
272  
273  
274  
275  
266  
263  
262  
F1  
F2  
268  
269  
270  
271  
272  
273  
274  
275  
266  
263  
4358  
F2  
F3  
F3  
F3  
F4  
F4  
F4  
F5  
F5  
F5  
F6  
F6  
F6  
ˆ
F7  
F7  
F7  
F8  
F8  
F8  
г  
3
MODE  
CLEAR  
LN  
MODE  
CLEAR  
LN  
MODE  
CLEAR  
M
x
x
e
N
ESC  
264  
265  
ESC  
264  
265  
QUIT  
4360  
4361  
8456  
8457  
O
APPS  
APPS  
SWITCH  
ENTRY  
¸
CR  
13  
CR  
13  
4109  
4355  
APPROX  
8205  
8451  
W
SIN  
259  
SIN  
259  
-1  
SIN  
X
Y
Z
COS  
260  
261  
94  
COS  
260  
261  
94  
-1  
4356  
4357  
140  
123  
125  
91  
8452  
8453  
8286  
8232  
8233  
8236  
8239  
8234  
COS  
TAN  
TAN  
-1  
TAN  
p
{
^
(
)
,
^
(
)
,
c
40  
40  
d
41  
41  
}
b
44  
44  
[
e
/
47  
/
47  
]
93  
p
*
-
42  
*
-
42  
4138  
4141  
|
45  
45  
VAR-LNK  
Contrast  
«
+
43  
+
43  
CHAR  
RCL  
4139 Contrast +  
4354  
§
STO4  
258  
STO4  
258  
8450  
8224  
8253  
8449  
SPACE  
Á
32  
61  
32  
61  
32  
92  
=
=
\
0
BS  
257  
BS  
257  
INS  
4353  
DEL  
Appendix B: Technical Reference  
931  
Key  
Modifier  
¤
2
None  
8
Assoc.  
Value Assoc.  
Value Assoc.  
Value Assoc.  
58  
Value  
8328  
8365  
8238  
8240  
8241  
8242  
8243  
8244  
8245  
8246  
8247  
8248  
8249  
8257  
8258  
8259  
8260  
8261  
Ï
·
µ
¨
©
ª
y
z
{
m
n
o
136  
173  
46  
136  
173  
46  
:
ANS  
>
θ
-
θ
-
4372  
62  
.
.
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
48  
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
48  
<
60  
49  
49  
E
149  
50  
50 CATALOG  
4146  
4147  
4148  
4149  
4150  
4151  
4152  
4153  
51  
51  
52  
53  
54  
55  
56  
57  
65  
66  
67  
68  
69  
CUST  
52  
Σ
MATH  
MEM  
*
53  
54  
55  
56  
d
-1  
57  
x
A
B
C
D
E
97  
Table 3  
98  
39  
99  
Table 4  
°
COPY  
100  
101  
176  
Table 5  
WINDOW  
F
f
102  
103  
F
70  
71  
159  
FORMAT  
8262  
8263  
G
g
G
Table 6  
H
I
h
i
104  
105  
106  
H
I
72  
73  
74  
&
i
38  
151  
190  
8264  
8265  
8266  
J
j
J
K
L
k
l
107  
108  
K
L
75  
76  
|
124  
34  
KEY  
8267  
8268  
M
N
O
m
n
109  
110  
111  
M
N
O
77  
78  
79  
;
59  
8269  
8270  
8271  
Table 7  
Table 8  
NEW  
OPEN  
UNITS  
o
P
Q
R
p
q
r
112  
113  
114  
P
Q
R
80  
81  
82  
_
?
95  
8272  
8273  
8274  
63 CALCHOME  
64 GRAPH  
@
Appendix B: Technical Reference  
932  
Key  
Modifier  
¤
2
None  
8
Assoc.  
Value Assoc.  
Value Assoc.  
Value Assoc.  
Value  
S
T
U
s
t
115  
116  
117  
S
T
83  
84  
85  
223  
35  
SAVE  
8275  
8276  
8277  
β
#
TBLSET  
u
U
Table 9  
V
W
X
Y
Z
v
w
x
118  
119  
120  
121  
122  
V
W
X
86  
87  
88  
89  
90  
157  
33  
PASTE  
Y=  
8278  
8279  
8280  
8281  
8282  
!
¦
4
169  
18  
CUT  
y
Y
TABLE  
z
Z
CAPS  
Appendix B: Technical Reference  
933  
Table 2: Arrow Keys (including diagonal movement)  
2
¤
¥
Key  
C
Normal  
338  
340  
344  
337  
339  
342  
345  
348  
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
D
A
C and A  
C and B  
D and A  
D and B  
Note: The Grab () modifier only affects the arrow keys.  
Table 3: Grave Accent 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  
Appendix B: Technical Reference  
934  
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  
Table 6: Greek Letters (prefixed by 2 G)  
Û¤  
132  
130  
Key  
Assoc.  
Normal  
A
128  
α
B
129  
β
D
E
133  
134  
δ
ε
F
145  
φ
G
L
131  
137  
γ
λ
M
181  
µ
P
R
140  
141  
139  
142  
147  
π
ρ
S
T
143  
144  
σ
τ
W
X
148  
138  
ω
ξ
Y
Z
146  
135  
ψ
ζ
Appendix B: Technical Reference  
935  
Table 7: Tilde Letters (prefixed by 2 N)  
Û¤  
Key  
N
Assoc.  
Normal  
241  
ñ
õ
209  
O
245  
Table 8: Caret Letters (prefixed by 2 O)  
¤
Key  
A
Assoc.  
Normal  
226  
â
ê
î
194  
202  
206  
212  
219  
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  
Appendix B: Technical Reference  
936  
 
Entering Complex Numbers  
You can enter complex numbers in the polar form (rù, q), where r is the magnitude and q  
i
q
is the angle, or polar form re . You can also enter complex numbers in rectangular form  
a+bi .  
Overview of Complex Numbers  
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.  
The point can be expressed  
Imaginary  
in rectangular form or in  
either of two polar  
Espressed as  
a
i
q,  
a+bi , re  
(rù, q).  
or  
r
b
The i symbol represents the  
imaginary numberÁ-1 .  
θ
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:  
Radian, Degree or Gradian  
a+bi  
rei  
q
Radian only  
(In Degree or Gradian angle mode, this form  
causes a Domain error.)  
(r,ùq)  
Radian, Degree or Gradian  
Use the following methods to enter a complex number.  
To enter the:  
Do this:  
Rectangular form  
Substitute the applicable values or variable  
names for a and b.  
a+bi  
a «Ç b 2 )  
Note: To get the i symbol, press 2 ), do  
not simply type an alphabetic i.  
For example:  
To enter the:  
Do this:  
Appendix B: Technical Reference  
937  
Polar form  
Substitute the applicable values or variable  
names for r and q, where q is interpreted  
according to the Angle mode setting.  
rei  
q
or  
(r,ùq)  
TI-89 Titanium:  
j [R] ¥ s 2 ) ¥ Ï d  
Ð or –  
c j [R] 2 ’ ¥ Ï d  
Parentheses are  
required for the  
(rùq) form.  
i
q
Important: Do not use the re polar form in  
Degree angle mode. It will cause a Domain  
error.  
Note: To get the e symbol, press:  
TI89 Titanium: ¥ s.  
Voyage™ 200: 2 s  
Do not simply type an alphabetic e.  
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 2 Ò. You should not use  
iq  
degrees or Gradian for re .  
Voyage™ 200:  
R 2 s 2 ) Ï d  
Ð or –  
c R 2 )ÕÏ d  
For example:  
Results are shown in rectangular  
form, but you can select polar  
form.  
Complex Format Mode for Displaying Results  
Use 3 to set the  
Complex Format mode to  
one of three settings.  
You can enter a complex number at any time, regardless of the Complex Format mode  
setting. However, the mode setting determines how results are displayed.  
If Complex Format is:  
The TI-89 Titanium / Voyage™ 200:  
Appendix B: Technical Reference  
938  
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 re iq form.  
Note: You can enter complex numbers in any  
form (or a mixture of all forms) depending on  
the Angle mode.  
RECTANGULAR  
POLAR  
Displays complex results as a+bi.  
Displays complex results as:  
re iq if the Angle mode = Radian  
– or –  
(r ,ùq) if the Angle mode = Degree or  
Gradian  
Using Complex Variables in Symbolic Calculations  
Regardless of the Complex Format mode setting, variables that have no stored value and those  
that do not end with an underscore (_) are treated as real numbers. To perform complex symbolic  
analysis, you can use either of the following methods to set up a complex variable.  
Method 1: Use an underscore _ (TI-89 Titanium: ¥ , Voyage™ 200 2 ) as the last  
character in the variable name to designate a complex variable. For example:  
z_ is treated as a  
complex variable if it  
does not have a stored  
value.  
Method 2: Store an unreal value into any variable. For example:  
x+yi!z  
Then z is treated as a  
complex variable.  
Note: For best results in calculations such as cSolve() and cZeros(), use Method 1.  
Complex Numbers and Degree Mode  
Radian angle mode is recommended for complex number calculations. Internally, the  
TI-89 Titanium / Voyage™ 200 converts all entered trig values to radians, but it does not  
convert values for exponential, logarithmic, or hyperbolic functions.  
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(π/4) + i sin(π/4). Complex identities are always true in Radian angle mode.  
Note: If you use Degree angle mode, you must make polar entries in the form (r q). In  
i
q
Degree or Gradian angle mode, an re entry causes an error.  
Appendix B: Technical Reference  
939  
 
Accuracy Information  
To maximize accuracy, the TI-89 Titanium / Voyage™ 200 carries more digits internally  
than it displays.  
Computational Accuracy  
Floating-point (decimal) values in memory are stored using up to 14 digits with a 3-digit  
exponent.  
For min and max Window variables (xmin, xmax, ymin, ymax, etc.), you can store  
values using up to 12 digits. Other Window variables use 14 digits.  
When a floating-point value is displayed, the displayed value is rounded as specified  
by the applicable mode settings (Display Digits, Exponential Format, etc.), with a  
maximum of 12 digits and a 3-digit exponent.  
RegEQ displays up to 14-digit coefficients.  
Integer values in memory are stored using up to 614 digits.  
Graphing Accuracy  
The Window variable xmin is the center of the leftmost pixel used, and xmax is the  
center of the rightmost pixel used. @x is the distance between the centers of two  
horizontally adjacent pixels.  
@x is calculated as (xmax N xmin) / (# of x pixels N1).  
If @x is entered from the Home screen or a program, xmax is calculated as xmin +  
@x ù(# of x pixels N 1).  
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 Split Screens.  
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 N ymin) / (# of y pixels N 1).  
If @y is entered from the Home screen or a program, ymax is calculated as ymin +  
@y ù (# of y pixels N 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.  
System Variables and Reserved Names  
This section lists the names of system variables and reserved function names that are  
used by the TI-89 Titanium / Voyage™ 200. 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.  
Appendix B: Technical Reference  
940  
Graph  
y1(x)–y99(x)*  
xt1(t)–xt99(t)*  
ui1–ui99*  
tc  
y1'(t)–y99'(t)*  
yt1(t)– yt99(t)*  
xc  
yi1–yi99*  
r1(q)–r99(q)*  
z1(x,y)–z99(x,y)* u1(n)–u99(n)*  
yc  
zc  
rc  
qc  
nc  
xfact  
yfact  
zfact  
xgrid  
ygrid  
zmin  
eyef  
qmax  
tstep  
diftol  
fldres  
plotStep  
xmin  
ymin  
xres  
zmax  
eyeψ  
qstep  
t0  
xmax  
xscl  
ymax  
yscl  
@x  
@y  
zscl  
eyeq  
ncontour  
tmin  
qmin  
tmax  
tplot  
ncurves  
fldpic  
dtime  
nmin  
sysMath  
Estep  
nmax  
plotStrt  
Graph Zoom  
zxmin  
zxmax  
zymax  
zqmin  
ztmax  
ztstepde  
zzscl  
zxscl  
zxgrid  
zygrid  
zqstep  
zt0de  
zymin  
zyscl  
zxres  
zqmax  
ztstep  
ztplotde  
zeyeq  
znmax  
ztmin  
ztmaxde  
zzmax  
zeyeψ  
zpltstep  
zzmin  
zeyef  
zpltstrt  
znmin  
Statistics  
x
y
Gx  
sx  
Gx2  
Gxy  
Gy  
sy  
Gy2  
corr  
maxX  
medx2  
medy3  
q1  
maxY  
medx3  
minX  
q3  
medStat  
medy1  
minY  
regCoef*  
Sx  
medx1  
medy2  
nStat  
regEq(x)*  
Sy  
seed1  
R2  
seed2  
Appendix B: Technical Reference  
941  
 
Table  
tblStart  
@tbl  
tblInput  
Data/Matrix  
c1–c99  
sysData*  
Miscellaneous  
main  
ok  
errornum  
Solver  
eqn*  
exp*  
EOS (Equation Operating System) Hierarchy  
This section describes the Equation Operating System (EOSé) that is used by the TI-89  
Titanium / Voyage™ 200. 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  
Leve Operator  
l
1
2
3
4
Parentheses ( ), brackets [ ], braces { }  
Indirection (#)  
Function calls  
Post operators: degrees-minutes-seconds (°,',"), factorial (!),  
ô
î
percentage (%), radian ( ), subscript ([ ]), transpose ( )  
Exponentiation, power operator (^)  
Negation (ë)  
5
6
7
String concatenation (&)  
8
Multiplication (ù), division (/)  
Addition (+), subtraction (ì)  
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  
Logical not  
Logical and  
Logical or, exclusive logical xor  
Appendix B: Technical Reference  
942  
 
14  
15  
Constraint “with” operator (|)  
Store (!)  
Parentheses, Brackets, and Braces  
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.  
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 Titanium / Voyage™ 200 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).  
Indirection  
The indirection operator (#) converts a string to a variable or function name. For  
example, #(“x”&”y”&”z”) creates the variable name xyz. Indirection also allows the  
creation and modification of variables from inside a program. For example, if 10&r and  
“r”&s1, then #s1=10.  
Post Operators  
Post operators are operators that come directly after an argument, such as 5!, 25%, or  
60ó15' 45". Arguments followed by a post operator are evaluated at the fourth priority  
level. For example, in the expression 4^3!, 3! is evaluated first. The result, 6, then  
becomes the exponent of 4 to yield 4096.  
Exponentiation  
Exponentiation (^) and element-by-element exponentiation (.^) are evaluated from right  
to left. For example, the expression 2^3^2 is evaluated the same as 2^(3^2) to produce  
512. This is different from (2^3)^2, which is 64.  
Negation  
To enter a negative number, press · followed by the number. Post operations and  
2
exponentiation are performed before negation. For example, the result of ëx is a  
2
negative number, and ë9 =ë81. Use parentheses to square a negative number such as  
2
(ë9) to produce 81. Note also that negative 5 (ë5) is different from minus 5 (ì5), and ë3!  
evaluates as ë(3!).  
Constraint (|)  
The argument following the “with” (|) operator provides a set of constraints that affect the  
evaluation of the argument preceding the “with” operator.  
Appendix B: Technical Reference  
943  
     
Regression Formulas  
This section describes how the statistical regressions are calculated.  
Least-Squares Algorithm  
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:  
N
2
J =  
residualExpression  
[
]
i=1  
where:residualExpression is in terms of xi and yi  
x is the independent variable list  
i
y is the dependent variable list  
i
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)+dyi  
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 Description  
CubicReg  
Uses the least-squares algorithm to fit the third-  
order polynomial:  
3
2
y=ax +bx +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:  
x
y=ab  
Uses the least-squares algorithm to fit the model  
equation:  
y=ax+b  
where a is the slope and b is the y-intercept.  
Appendix B: Technical Reference  
936  
   
Uses the least-squares algorithm and transformed  
LnReg  
values ln(x) and y to fit the model equation:  
y=a+b ln(x)  
Uses the least-squares algorithm to fit the model  
equation:  
Logistic  
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:  
MedMed  
y=ax+b  
where a is the slope and b is the y-intercept.  
Uses the least-squares algorithm and transformed  
values ln(x) and ln(y) to fit the model equation:  
PowerReg  
QuadReg  
b
y=ax  
Uses the least-squares algorithm to fit the second-  
order polynomial:  
2
y=ax +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.  
Uses the least-squares algorithm to fit the fourth-  
order polynomial:  
QuartReg  
4
3
2
y=ax +bx +cx +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.  
Uses the least-squares algorithm to fit the model  
equation:  
SinReg  
y=a sin(bx+c)+d  
Appendix B: Technical Reference  
945  
 
Contour Levels and Implicit Plot Algorithm  
Contours are calculated and plotted by the following method. An implicit plot is the same  
as a contour, except that an implicit plot is for the z=0 contour only.  
Algorithm  
Based on your x and y Window variables, the distance between xmin and xmax and  
between ymin and ymax is divided into a number of grid lines specified by xgrid and  
ygrid. These grid lines intersect to form a series of rectangles.  
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:  
z1 + z2 + z3 + z4  
-----------------------------------------  
E =  
4
The E value is treated as the value of the equation at the center of the rectangle.  
For each specified contour value (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.  
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.  
Runge-Kutta Method  
For Runge-Kutta integrations of ordinary differential equations, the TI-89 Titanium /  
Voyage™ 200 uses the Bogacki-Shampine 3(2) formula as found in the journal Applied  
Math Letters, 2 (1989), pp. 1–9.  
Appendix B: Technical Reference  
946  
 
Bogacki-Shampine 3(2) Formula  
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:  
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
--  
3
--  
F3 = ƒ(xn + h , yn + h F2)  
4
4
2
1
3
4
9
--  
--  
--  
yn+1 = yn + h( 9 F1 + F2 + F3)  
xn+1 = xn + h  
F4 = ƒ(xn+1 , yn+1  
)
5
1
12  
1
9
1
8
-----  
-----  
--  
--  
errest = h( 72 F1  
ì
F2  
ì
F3 + F4)  
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 Titanium / Voyage™ 200 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 x { x { x  
using the cubic interpolating  
n
n+1  
polynomial passing through the point (xn , yn) with slope F1 and through (x  
, y  
)
n+1  
n+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: Technical Reference  
947  
   
Battery Information  
The TI-89 Titanium / Voyage™ 200 uses two types of batteries: four alkaline batteries,  
and a lithium battery as a backup for retaining memory while you change the alkaline  
batteries.  
When to Replace the 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 the alkaline batteries. To assist you, a BATT indicator (  
) will display in the  
status line area when the batteries have drained down to the point when you should  
replace them soon. When the BATT indicator is displayed in reverse text (  
must replace the alkaline batteries immediately.  
), you  
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.  
Note: To avoid loss of information stored in memory, the TI-89 Titanium / Voyage 200  
must be off. Do not remove the alkaline batteries and the lithium battery at the same  
time.  
Effects of Replacing the Batteries  
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.  
Battery Precautions  
Take these precautions when replacing batteries:  
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.  
Appendix B: Technical Reference  
948  
 
Replacing the Alkaline Batteries in the TI-89 Titanium  
1. If the TI-89 Titanium is on, turn it off (press 2 ®) to avoid loss of information  
stored in memory.  
2. Slide the protective cover over the keyboard and place the device face down.  
3. Push down on the battery cover latch, and then pull up to 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.  
6. Replace the battery cover by inserting the two prongs into the two slots at the bottom  
of the battery compartment, and then push the cover until the latch snaps closed.  
Replacing the Lithium Battery in the TI-89 Titanium  
To replace the lithium backup battery, remove the battery cover and unscrew the tiny  
screw holding the BACK UP BATTERY cover in place.  
Remove the old battery and install a new WR44SW or 303 battery, positive (+) side up.  
Replace the cover and the screw.  
Lithium battery cover  
AAA alkaline batteries  
Replacing the Alkaline Batteries in the Voyage 200  
1. If the Voyage™ 200 is on, turn it off (press 2 ®) to avoid loss of information stored in  
memory.  
2. Slide the protective cover over the keyboard and place the device face down.  
3. Press the notched battery cover and slide it off, away from the device.  
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.  
6. Slide the battery cover onto the device, prong side first. Gently push the cover until  
the prongs snap into place.  
Appendix B: Technical Reference  
949  
Replacing the Lithium Battery in the Voyage 200  
To replace the lithium backup battery, remove the battery cover. Insert a blunt object into  
the circular indentation next to the battery. Gently place a finger on the lithium battery  
and pry the battery out.  
Slide in a new CR1616 or CR1620 battery, positive (+) side up. Press firmly to snap the  
new lithium battery into place.  
AAA alkaline battery compartment  
Lithium battery  
Appendix B: Technical Reference  
950  
 
In Case of Difficulty  
If you have difficulty operating the TI-89 Titanium / Voyage™ 200, the following  
suggestions may help you correct the problem.  
If:  
Suggested action:  
¥ «  
¥ |  
Press  
to darken or  
to  
You cannot see  
anything on the display.  
lighten the display contrast.  
The BATT indicator is  
displayed.  
Replace the batteries. If BATT is  
displayed in reverse text ( ),  
replace the batteries as soon as  
possible.  
The BUSY indicator is  
displayed.  
A calculation is in progress. If you  
want to stop the calculation, press  
´
.
The PAUSE indicator is  
displayed.  
A graph or program is paused and  
the TI-89 Titanium / Voyage 200 is  
¸
waiting for input; press  
.
An error message is  
displayed.  
Refer to the list of error messages  
N
in this module. Press  
to clear.  
The TI-89 Titanium /  
Voyage 200 does not  
appear to be working  
properly.  
N
Press  
several 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.  
Appendix B: Technical Reference  
951  
If:  
Suggested action:  
The following action clears RAM.  
This erases all data, programs, and  
user-defined variables, functions, or  
folders.  
The TI-89 Titanium  
appears to be “locked  
up” and will not respond  
to keyboard input.  
A
,
B
, and  
2
Press and hold  
. Then  
´
press and release  
.
The following action clears RAM  
and Flash ROM. This erases all  
data, programs, user-defined  
variables, functions, folders, Flash  
applications, and the user data  
archive.  
1. Remove one of the four AAA  
batteries.  
·
d
2. Press and hold and as you  
reinstall the battery.  
·
d
3. Continue holding and for  
five seconds before releasing.  
The following action clears RAM.  
This erases all data, programs, and  
user-defined variables, functions, or  
folders.  
The Voyage™ 200  
appears to be “locked  
up” and will not respond  
to keyboard input.  
2
Press and hold  
and . Then  
´
press and release  
.
The following action clears RAM  
and Flash ROM. This erases all  
data, programs, user-defined  
variables, functions, folders, Flash  
applications, and the user data  
archive.  
1. Remove one of the four AAA  
batteries.  
·
d
2. Press and hold and as you  
reinstall the battery.  
·
d
3. Continue holding and for  
five seconds before releasing.  
Appendix B: Technical Reference  
952  
Appendix C: Programmer’s Guide  
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 C: Programmer’s Guide  
955  
setMode( ) and getMode( )  
Parameter/Mode Setting  
Strings  
ALL  
0
1
1
Graph  
FUNCTION  
PARAMETRIC  
POLAR  
2
3
4
5
6
2
1
2
3
4
5
6
7
8
9
SEQUENCE  
3D  
DIFF EQUATIONS  
DisplayDigits  
FIX 0  
FIX 1  
FIX 2  
FIX 3  
FIX 4  
FIX 5  
FIX 6  
FIX 7  
FIX 8  
Appendix C: Programmer’s Guide  
956  
Parameter/Mode Setting  
FIX 9  
Strings  
10  
11  
FIX 10  
12  
FIX 11  
13  
FIX 12  
14  
FLOAT  
15  
FLOAT 1  
FLOAT 2  
FLOAT 3  
FLOAT 4  
FLOAT 5  
FLOAT 6  
FLOAT 7  
FLOAT 8  
FLOAT 9  
FLOAT 10  
FLOAT 11  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
3
FLOAT 12  
Angle  
1
RADIAN  
Appendix C: Programmer’s Guide  
957  
Parameter/Mode Setting  
DEGREE  
Strings  
2
3
4
1
2
3
5
1
2
3
6
1
2
3
7
1
2
8
1
GRADIAN  
Exponential Format  
NORMAL  
SCIENTIFIC  
ENGINEERING  
Complex Format  
REAL  
RECTANGULAR  
POLAR  
Vector Format  
RECTANGULAR  
CYLINDRICAL  
SPHERICAL  
Pretty Print  
OFF  
ON  
SplitScreen  
FULL  
Appendix C: Programmer’s Guide  
958  
Parameter/Mode Setting  
TOP-BOTTOM  
Strings  
2
3
9
LEFT-RIGHT  
Split1App  
(applications are not numbered)  
Split2App  
10  
(applications are not numbered)  
Number of Graphs  
1
11  
1
2
2
Parameter/Mode Setting  
Strings  
Graph 2  
12  
1
FUNCTION  
PARAMETRIC  
POLAR  
2
3
4
5
6
SEQUENCE  
3D  
DIFF_EQUATIONS  
Split Screen Ratio  
13  
1
1:1  
1:2  
2
Appendix C: Programmer’s Guide  
959  
Parameter/Mode Setting  
Strings  
3
2:1  
14  
1
Exact/Approx  
AUTO  
2
EXACT  
APPROXIMATE  
Base  
3
15  
1
DEC  
2
HEX  
3
BIN  
Appendix C: Programmer’s Guide  
960  
setGraph( )  
Parameter/Mode Setting  
Strings  
Coordinates  
1
1
RECT  
2
POLAR  
3
2
1
2
OFF  
Graph Order  
SEQ  
SIMUL  
Grid  
3
1
2
4
OFF  
ON  
Axes  
In 3D Mode:  
1
2
3
OFF  
AXES  
BOX  
Not in 3D Mode:  
1
OFF  
Appendix C: Programmer’s Guide  
961  
2
5
1
2
6
1
1
7
1
2
3
8
1
2
9
1
2
3
10  
1
ON  
Leading Cursor  
OFF  
ON  
Labels  
OFF  
ON  
Seq Axes  
TIME  
WEB  
Custom  
Solution Method  
RK  
EULER  
Fields  
SLPFLD  
DIRFLD  
FLDOFF  
DE Axes  
TIME  
Appendix C: Programmer’s Guide  
962  
2
3
4
5
6
11  
1
2
3
4
5
Y1-VS-Y2  
T-VS-Y'  
Y-VS-Y'  
Y1-VS-Y2'  
Y1'-VS-Y2'  
XR Style  
WIRE FRAME  
HIDDEN SRUFACE  
CONTOUR LEVELS  
WIRE AND CONTOUR  
IMPLICIT PLOT  
Appendix C: Programmer’s Guide  
963  
setTable( )  
Parameter/Mode Setting  
Strings  
Graph <->Table  
1
1
OFF  
2
ON  
Independent  
2
1
AUTO  
2
4
ASK  
Axes  
964  
 
Appendix D:  
Service and Warranty Information  
Texas Instruments Support and Service  
For general information  
Home Page:  
KnowledgeBase  
and e-mail inquires: education.ti.com/support  
Phone:  
(800) TI-CARES; (800) 842-2737  
For U.S., Canada, Mexico, Puerto Rico,  
and Virgin Islands only  
International  
information:  
education.ti.com/international  
For technical support  
KnowledgeBase  
and support by  
e-mail:  
education.ti.com/support  
Phone  
(not toll-free):  
(972) 917-8324  
Appendix D: Service and Warranty Information  
965  
For product (hardware) service  
Customers in the U.S., Canada, Mexico, Puerto Rico and Virgin Islands: Always contact  
Texas Instruments Customer Support before returning a product for service.  
All other customers: Refer to the leaflet enclosed with this product (hardware) or  
contact your local Texas Instruments retailer/distributor.  
Texas Instruments (TI) Warranty Information  
Customers in the U.S. and Canada Only  
One-Year Limited Warranty for Commercial Electronic Product  
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 con-  
struction. 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 PAR-  
TICULAR 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 INCI-  
DENTAL OR CONSEQUENTIAL COSTS, EXPENSES, OR DAMAGES INCURRED BY THE CON-  
SUMER 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.  
Appendix D: Service and Warranty Information  
966  
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 copy-  
right.  
Appendix D: Service and Warranty Information  
967  
Australia & New Zealand Customers only  
One-Year Limited Warranty for Commercial Electronic Product  
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 origi-  
nal 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 dam-  
aged 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 consequen-  
tial costs, expenses, or damages incurred by the consumer or any other user.  
Except as expressly provided in the One-Year Limited Warranty for this product,  
Texas Instruments does not promise that facilities for the repair of this product or  
parts for the repair of this product will be available.  
Some jurisdictions do not allow the exclusion or limitation of implied warranties or conse-  
quential 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 equiv-  
alent 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 soft-  
ware will be free from errors or meet your specific requirements. All software is pro-  
vided “AS IS.”  
Copyright. The software and any documentation supplied with this product are protected  
by copyright.  
Appendix D: Service and Warranty Information  
968  
 
All Other Customers  
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 Instru-  
ments retailer/distributor.  
Battery Precautions  
Take these precautions when replacing batteries:  
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.  
969  
Alpha Rules  
TI-89 Titanium Shortcut Keys  
Type one lowercase letter  
Type one uppercase letter  
Lowercase alpha lock  
Uppercase alpha lock  
Exit alpha lock  
j
General  
¤
List of Flash applications  
¥O  
2 a  
2 ™  
¤ j  
j
Toggle between last two chosen  
applications or split screens  
Lighten or darken contrast  
¥ |, ¥ «  
¥ ¸  
Calculate approximate answer  
Move cursor to top or bottom (in  
editors)  
3D Graphing  
¥C, ¥D  
C, D, A, B  
Animate graph  
Scroll tall objects in history  
¤ C, ¤ D  
¤ A, ¤ B  
«, |  
X, Y, Z  
µ
Change animation speed  
View along axis  
Highlight left or right from cursor  
Page up or page down  
(in editors)  
2 C,2 D  
Return to original view  
Change graph format style  
Expanded/normal view  
Í
Move cursor far left or far right  
2 A, 2 B  
p
On-screen Keyboard Map ( ¥ ^)  
Greek Letters  
Press N to exit the map.  
To access the Greek  
character set  
¥ c  
¥ 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)  
¥ d  
¦(comment)  
¥ b  
Copy graph coordinates to  
sysdata  
¥ e  
! (factorial)  
¥ Í  
Display FORMATS dialog box  
Run programs kbdprgm1( )  
through kbdprgm6( )  
& (append)  
¥ 1 – ¥ 6  
¥ p  
¥ ^  
¥ §  
¥ ´  
On-screen keyboard map  
@
Turn off unit so that it returns to  
current application the next  
time you turn it on  
¥ µ (zero)  
{
|
¥ ¶  
¥ ·  
Copy graph coordinates to  
Home screen history  
970  
Editing  
Voyage™ 200 Shortcut Keys  
¥ C  
Move cursor to top  
¥ D  
2 A  
2 B  
C, D  
Move cursor to bottom  
Move cursor to far left  
Move cursor to far right  
Scroll tall objects in history  
General  
¥ O  
List of Flash applications (if  
desktop is off)  
Toggle between last two chosen  
applications or split screens  
Copy graph coordinates to  
sysdata  
2 C, 2 D Page up and page down  
2 a  
¥ X  
¥ C  
¥ V  
Cut  
Copy  
Paste  
¥ D  
¥ F  
Display FORMATS dialog box  
Copy graph coordinates to  
¥ H  
3D Graphing  
Home screen history  
Create new variable  
Open existing variable  
Save copy as  
¥ N  
¥ O  
¥ S  
C, D, A, B  
«, |  
X, Y, Z  
µ (zero)  
F
Animate graph  
Change animation speed  
View along axis  
Return to original view  
Change graph format style  
Expanded/normal view  
¥ |, ¥ «Ç Lighten or darken contrast  
¥ ¸  
Calculate approximate answer  
Turn off unit so that it returns to  
Ù
¥ ´  
current application the next  
time you turn it on  
Run programs kbdprgm1()  
Accent Marks  
¥ 1 ¥ 6  
through kbdprgm6()  
à, è, ì, ò, ù, À, È, Ì, Ò, Ù  
ç, Ç  
á, é, í, ó, ú, ý, Á, É, Í, Ó, Ú, Ý  
ã, ñ, õ, Ã, Ñ, Õ  
â, ê, î, ô, û, Â, Ê, Î, Ô, Û  
ä, ë, ï, ö, ü, ÿ, Ä, Ë, Ï, Ö, Ü  
2 A + letter  
2 C + letter  
2 E + letter  
2 N + letter  
2 O + letter  
2 U + letter  
On-screen Keyboard Map ( ¥ [KEY])  
Press N to exit the map.  
Greek Letters  
2 G  
To access the Greek  
character set  
To access lowercase Greek  
2 G + letter  
See the table below for shortcuts that are not marked on  
the Voyage™ 200 keyboard. See the next column for  
accent marks and Greek letters.  
letters. Example: 2 G W  
displays ω  
To access uppercase Greek  
2 G ¤ + letter  
letters. Example: 2 G ¤ W  
displays Ω  
2 X  
¦ (comment)  
ă  
¥ Á  
¥ µ (zero)  
¥ ¶  
_{  
|
If you press a key combination that does not access a  
Greek letter, you get the normal letter for that key.  
971  
Keystroke Differences  
There are certain differences in keystrokes using the TI-89 Titanium / Voyage™ 200 for various operations. The following  
table shows the keystrokes for major commands for the two calculators.  
H
Voyage 200  
@
FUNCTION  
TI-89 Titanium  
LETTERS  
One lowercase letter (a-s, u, v, w)  
One lowercase letter (t, x, y, z)  
Several lowercase letters  
End several lowercase letters  
Several uppercase letters  
End several uppercase letters  
FUNCTION KEYS  
j A-S, U-W  
T, X, Y, Z  
2 ™  
j
A-S, U-W  
T, X, Y, Z  
¤ ™  
2 [CAPS]  
j
2 [CAPS].  
ˆ
Š
F6  
2 ˆ  
2 ‰  
2 Š  
F7  
F8  
NAVIGATION  
Scroll tall objects up or down in history  
Move cursor far left or far right on entry line  
Diagonal movement  
¤ C, ¤ D  
C, D  
2 A, 2 B  
2 A, 2 B  
C and A  
C and B  
D and A  
D and B  
C and A  
C and B  
D and A  
D and B  
FUNCTIONS  
Display Home screen  
"
¥ "  
¥ X  
Cut  
¥ 5  
¥ 6  
¥ 7  
½
Copy  
¥ C  
Paste  
¥ V  
Catalog  
2 ½  
¥ 9  
W
Display Units dialog box  
2 9  
2 W  
2 X  
2 Y  
2 x  
¥ s  
Sin  
Cos  
Tan  
LN  
X
Y
x
x
2 s  
2 ^  
e
EE  
^
ÝH  
Voyage 200  
@
FUNCTION  
SYMBOLS  
TI-89 Titanium  
2 ú  
¥   
2 ú  
ú (Conversion triangle)  
_ (Underscore)  
2 _  
972  
Ï
θ (Theta)  
¥ Ï  
Í
| (“With”)  
2 Í  
2 È  
2 v  
2 ’  
2 [Σ]  
' (Prime)  
2 È  
° (Degree)  
2 v  
(Angle)  
2 ’  
Σ (Sigma)  
½ Σ (  
½ ^-1  
j  
-1  
x(Reciprocal)  
Space  
2 [x ]  
Space bar  
HIDDEN SHORTCUTS  
Place data in sysdata variable  
Greek characters  
Keyboard map  
Place data in Home screen history  
Grave (à, è, ì, ò, ù)  
Cedilla (ç)  
¥ b  
¥ D  
¥ c j or ¥ c ¤  
¥ ^  
¥ G or ¥ G ¤  
¥ [KEY]  
¥ ·  
¥ 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  
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  
Acute (á, é, í, ó, ú, ý)  
Tilde (ã, ñ, õ)  
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 ¦  
2 X ¦−  
¥ N  
ƒ 3  
Open  
ƒ 1  
¥ O  
Save copy as  
Format dialog box  
ƒ 2  
¥ S  
¥ Í  
¥ F  
973  
Index  
(=, equal . . . . . . . . . . . . . . . . . . .604, 906  
(@tbl, table increment . . . . . . . . . . . . . 456  
(@tmpCnv( ), temperature-range  
conversion . . . . . . . . . . . . . .286, 891  
(| (subtraction key) . . . . . . . . . . . . . . . 14  
(|, comment . . . . . . . . . . . . . . . .581, 913  
(1 (hand modifier key)  
Symbols  
(!, factorial . . . . . . . . . . . . . . . . . . 74, 907  
(+, add . . . . . . . . . . . . . . . . . . . . . . . . 901  
moving among toolbar menus . . . 55  
selecting categories . . . . . . . . 28, 31  
selecting menus . . . . . . . . . . . . . . 49  
status . . . . . . . . . . . . . . . . . . . . . . 38  
1
description . . . . . . . . . . . . . . . . . . 13  
(2 6 (recall) . . . . . . . . . . . . . . . . . . 17  
(2 E (Catalog)  
commands . . . . . . . . . . . . . . . . . . 22  
(2 F (Custom)  
description . . . . . . . . . . . . . . . . . . 55  
(2 G (Character)  
description . . . . . . . . . . . . . . . . . . 49  
key command . . . . . . . . . . . . . . . . 17  
(2 K  
calculator Home screen . . . . . . . . 24  
entering commands . . . . . . . . . . . 22  
exiting the split-screen mode . . . . 64  
key command . . . . . . . . . . . . . . . . 17  
(4, convert . . . . . . . . . . . . . . . . . 283, 912  
(4Cylind, display as cylindrical vector . 804  
(4DD, display as decimal angle . . . . . 807  
(4Dec, display as decimal integer 681, 807  
(4DMS, display as degree/minute/second .  
862  
status . . . . . . . . . . . . . . . . . . . . . . 38  
(8 S (SAVE COPY AS)  
opening Apps . . . . . . . . . . . . . . . . 28  
(T, transpose . . . . . . . . . . . . . . . . . . . . 886  
2
(x window variable . . . . . . . . . . . . . . 941  
(x/, reciprocal . . . . . . . . . . . . . . . . . . 912  
(y window variable . . . . . . . . . . . . . . 941  
Angle mode . . . . . . . . . . . .187, 305, 923  
angle( ), angle . . . . . . . . . . . . . . . . . . 787  
answer (last), ans( ) . . . . . . . . . . . . . . 220  
during calculation or program . . . . . 8  
opening . . . . . . . . . . . . . . . . . . 28, 58  
Numerics  
009AppB, page = 574 . . . . . . . . . . . . 949  
0b, binary indicator . . . . . . . . . . . . . . 914  
0h, hexadecimal indicator . . . . . . . . . 914  
10^( ), power of ten . . . . . . . . . . . . . . 912  
1Symbols  
^, power . . . . . . . . . . . . . . . . . . . 944  
3D graphing . . . . . . . . . . . . . . . 375409  
HIDDEN SURFACE . . . . . . 104, 395  
4ln( ) . . . . . . . . . . . . . . . . . . . . . . . . . 838  
4logbase( ) . . . . . . . . . . . . . . . . . . . . 840  
A
ABOUT screen . . . . . . . . . . . . . . . . . . 65  
abs( ), absolute value . . . . . . . . 767, 786  
accent marks  
accuracy . . . . . . . . . . . . . . . . . . . . . . 941  
3
switching . . . . . . . . . . . . . . . . . . . 64  
Apps desktop  
in OS download mode . . . . . . . . . . 69  
turning on after . . . . . . . . . . . . . . . . 8  
automatic simplification . . . . . . . . . . . 244  
Axes graph format . . .316, 415, 434, 435  
calculator Home screen and . . . . 24  
categories . . . . . . . . . . . . . . . . 28, 32  
date and time . . . . . . . . . . . . . . . . 43  
mode . . . . . . . . . . . . . . . . . . . 18, 39  
turning off the calculator . . . . . . . . . 7  
arc length, arcLen( ) . . . . . . . . . . . . . 266  
arccosine, cos/( ) . . . . . . . . . . . . . . . 797  
archive variables, Archive . 596, 708, 709  
Archive, archive variables . 596, 708, 789  
arcsine, sin/( ) . . . . . . . . . . . . . . . . . 878  
arctangent, tan/( ), arctangent . . . . . 888  
assembly language . . . . . . 641, 644, 818  
790  
indicator, 0b . . . . . . . . . . . . . . . . 914  
rotate, rotate( ) . . . . . . . . . . . . . . 686  
shift, shift( ) . . . . . . . . . . . . . . . . . 687  
augment/concatenate, augment( ) . . 747  
Auto mode . . . . 166, 188, 203, 242, 925  
and, and . . . . . . .249, 605, 685, 786  
or, or . . . . . . . . . . . . . . . . . .605, 685  
4
build  
Science . . . . . . . . . . . . . . . . . . . . . 32  
connecting . . . . . . . . . . . . . . . . . . . 68  
CBR  
C
calculator Home screen  
2 K . . . . . . . . . . . . . . . . . . . . 17  
changing entry/answer pairs . . . . 27  
custom menu . . . . . . . . . . . . . . . . 56  
key command . . . . . . . . . . . . . . . . 17  
toolbar menus . . . . . . . . . . . . . . . 49  
calculator software applications (Apps) 7  
icons . . . . . . . . . . . . . . . . . . . . . . . . 5  
Calculator-Based Laboratory system  
Calculator-Based Laboratory. See CBL  
5
send list variable, Send . . . . . . . 869  
statistical data . . . . . . . . . . 568, 569  
circle  
CBR system  
736  
cFactor( ), complex factor . 257, 773, 792  
cFactor(†), complex factor . . . . . . . . 938  
CHAR menu (2 G)  
key command . . . . . . . . . . . . . . . . 17  
char( ), character string . . . . . . . . . . 792  
characters  
Greek . . . . . . . . 10, 17, 49, 657, 658  
math . . . . . . . . . . . . . . . . . 10, 17, 49  
numeric code, ord( ) . . . . . . . . . . 602  
punctuation . . . . . . . . . . . . . . . . . . 49  
symbols . . . . . . . . . . . . . . . . . . . 658  
uppercase . . . . . . . . . . . . . . . . . . 13  
cobweb plot. See web plots  
colDim( ), matrix column dimension . 794  
6
colNorm( ), matrix column norm . . . . 794  
comDenom( ), common denominator 795  
activity . . . . . . . . . . . . . . . . . . . . 752  
commands  
comment, | . . . . . . . . . . . . . . . 581, 913  
common denominator, comDenom( ) 256,  
. . . . . . . . . . . . . . . . . . . . . . 257, 264  
complex  
solve, cSolve(†) . . . . . . . . . . . . . 938  
Complex menu . . . . . . . . . . . . . . . . . 257  
conj( ), complex conjugate . . . . . . . . 795  
connecting  
initial startup . . . . . . . . . . . . . . . . . . 5  
contrast, adjusting . . . . . . . . . . . . . . . 147  
convert measurements . . . . . . . . . . . . 16  
cos/( ), arccosine . . . . . . . . . . . . . . . 797  
799  
csch( ), hyperbolic cosecant . . . . . . . 800  
7
cSolve( ), complex solve . . . . . . 240, 800  
945  
cursor  
key command . . . . . . . . . . . . . . . . 16  
cut . . . . . . . . . . . . . . . . . . . . . . .212, 653  
cycle picture, CyclePic . . .500, 629, 804  
Cycle, cycle . . . . . . . . . . . . . . . . . . . . 804  
cZeros( ), complex zeros . .240, 257, 804  
3D graph . . . . . . . . . . . . . . . . . . 382  
deleting characters . . . . . . . . . . . . 16  
hidden surface . . . . . . . . . . . . . . 384  
location following APD . . . . . . . . . . 8  
off the curve . . . . . . . . . . . . . . . . 385  
cursor keys (ABCD)  
entering commands . . . . . . . . . . . 23  
selecting entry/answer pairs . . . . . 26  
CUSTOM (2 F) menu . . . . . . 56  
column header . .528, 531, 532, 533  
scrolling . . . . . . . . . . . . . . . . . . . . 525  
8
statistical plots . . . . . . . . . . . . . . 551  
date  
setting . . . . . . . . . . . . . . . . . . . . . . 40  
decimal  
integer display, 4Dec . . . . . 681, 807  
define, Define . 224, 271, 309, 350, 357,  
degree notation, - . . . . . . . 764, 910, 911  
degree/minute/second display, 4DMS 813  
deleting  
denominator . . . . . . . . . . . . . . . . . . . 795  
346, . . . . . . . . . . . . . . . . . . . . . . . 353  
Diamond modifier key (8)  
differential equations  
folder, DelFold . . . . . . . . . . 596, 808  
809  
graphing . . . . . . . . . . . . . . .410452  
second order . . . . . . . . . . . .427, 444  
deleting variables . . . . . . . . . . . . . . . 143  
DelType . . . . . . . . . . . . . . . . . . . . . . 809  
9
SLPFLD, slope field . . 415, 423, 448  
troubleshooting . . . . . . . . . . . . . . 447  
dim( ), dimension . . . . . . . . . . . . . . . 811  
discontinuities  
Disp, display I/O screen . .130, 582, 620,  
636, . . . . . . . . . . . . . . . . . . . . . . 812  
DispG, display graph . . . . 620, 627, 812  
DispHome, display Home screen . . .620,  
812  
spherical vector, 4Sphere . . . . . . 882  
. . . . . . . . . . . . . . . . . . . . . . . . . . . 353  
dotP( ), dot product . . . . . . . . . . . . . . 813  
display  
I/O screen, Disp 130, 582, 620, 636,  
812  
contour, DrwCtour . . . . . . . .632, 815  
Pencil . . . . . . . . . . . . . . . . . . . . . 491  
display as  
binary, 4Bin . . . . . . . . . . . . . 681, 790  
decimal angle, 4DD . . . . . . . . . . 807  
10  
polar, DrawPol . . . . . . 487, 632, 814  
slope, DrawSlp . . . . . . 495, 631, 814  
tangent line, LineTan . . . . . 632, 837  
814  
DrawPol, draw polar . . . . . 487, 632, 814  
drop-down menu, DropDown . . . . . . 622  
toolbar, EndTBar . . . . . . . . .621, 892  
EndIf, end if . . . . . . . . . . . .582, 606, 831  
English category . . . . . . . . . . . . . . . . . 31  
equal, = . . . . . . . . . . . . . . . . . . .604, 906  
errors and troubleshooting . . . . . . . . 952  
E
E, exponent . . . . . . . . . . . . . . . . . 15, 815  
eigVl( ), eigenvalue . . . . . . . . . . . . . . 816  
else if, ElseIf . . . . . . . . . . . . . . . 478, 607  
Else, else . . . . . . . . . . . . . . . . . . . . . 831  
ElseIf, else if . . . . . . . . . . . . . . . 607, 816  
end  
custom, EndCustm . . . . . . . 621, 803  
if, EndIf . . . . . . . . . . . . 582, 606, 831  
11  
Circular definition . . . . . . . . . . . . 595  
Memory error . . . . . . . . . . . 713, 714  
transmission . . . . . . . . . . . . 724, 735  
evaluate polynomial, polyEval( ) . . . . 855  
EXACT mode status . . . . . . . . . . . . . . 38  
exact( ), exact . . . . . . . . . . . . . . . . . . 817  
Exact/Approx mode 166, 188, 203, 240,  
241, . . . . . . . . . . . . . . . . . . 242, 925  
example  
turning on/off the custom menu . . 56  
using the keyboard map . . . . . 12, 13  
examples, previews, activities  
converging web plots . . . . . . . . . 366  
decomposing a rational function . 755  
log to any base . . . . . . . . . . . . . . . 81  
oscillating web plots . . . . . . . . . . 369  
3D graphing . . . . . . . . . . . . 101, 750  
additional graphing topics . . . . . 110  
baseball . . . . . . . . . . . . . . . . . . . 763  
12  
population . . . . . . . . . . . . . . . . . . 119  
predator-prey model . . . . . . 371, 435  
prime factors . . . . . . . . . . . . . . . . 73  
rational factors . . . . . . . . . . . . . . 773  
real factors . . . . . . . . . . . . . . . . . 773  
sampling . . . . . . . . . . . . . . . . . . . 775  
427, . . . . . . . . . . . . . . . . . . . 444  
split screen . . . . . . . . . . . . . 114, 764  
standard annuity . . . . . . . . . . . . . 769  
symbolic manipulation . . . . . . . . . 82  
tables . . . . . . . . . . . . . . . . . . . . . 112  
text operations . . . . . . . . . . . . . . 131  
third-order differential equation . 431  
trees and forest . . . . . . . . . . . . . . 98  
tutorial script with the text editor . 752  
variable management . . . . . . . . . 138  
vectors . . . . . . . . . . . . . . . . . . . . . 80  
execute assembly language, Exec . 644,  
13  
eyeφ z-axis window variable . . .378,387,  
FnOn, function on . . . . . . . . . . .627, 823  
For, for . . . . . . . . . . . . . . . . . . . . . . . . 823  
full-screen mode  
388  
eyeθ x-axis window variable . . .378,387,  
388  
389  
F
factor, factor( ) . 75, 240, 256, 259, 745,  
773  
factorial, ! . . . . . . . . . . . . . . . . . . 74, 907  
factoring . . . . . . . . . . . . . . . . . . . . . . 259  
activity . . . . . . . . . . . . . . . . . . . . 773  
FCC statement . . . . . . . . . . . . . . . . . . . 2  
field picture, fldpic . . . . . . . . . . . . . . . 419  
Fill, matrix fill . . . . . . . . . . . . . . . . . . . 821  
Flash applications . . 181, 195, 273, 689,  
690, . . . . . . . . . . . . . . . . . . . . . . 693  
deleting . . . . . . . . . . . . . . . . . . . . 724  
FLASH APPLICATIONS (8 O)  
accessing Apps not listed . . . . . . . 59  
description . . . . . . . . . . . . . . . . . . 50  
732, . . . . . . . . . . . . . . . . . . . . . . 733  
FLDOFF, field off . . . . . . . 415, 424, 451  
14  
Apps desktop . . . . . . . . . . . . . . . . 37  
changing from split-screen . . . . . . 64  
FUNC (function) mode . . . . . . . . . . . . 38  
Func, program function . . . . . . . 587, 824  
selecting menus . . . . . . . . . . . . . . 49  
functions . . . . . . . . . . . . . . . . . . . 21, 159  
delayed simplification . . . . . . . . . 247  
graphing . . . . . . . . . . . . . . . . . . . 302  
maximum, fMax( ) . . . 240, 266, 822  
minimum, fMin( ) . . . . 240, 266, 822  
multistatement . . . . . . . . . . . . . . 477  
off, FnOff . . . . . . . . . . 311, 627, 822  
part, fPart( ) . . . . . . . . . . . . . . . . 824  
. . . . . . . . . . . 477, 585, 587, 808  
CBL/CBR value, Get . . . . . .568, 634  
GetCalc, get/return calculator . 634,727,  
728, . . . . . . . . . . . . . . . . . . . . . . . 825  
getConfg( ), get/return configuration 617,  
getFold( ), get/return folder . . . .596, 617  
getType( ), get/return type . . . . .596, 828  
G
gcd( ), greatest common divisor . . . . 824  
Get, get/return CBL2/CBR value . . . 825  
get/return  
15  
Goto, go to . . . . . . . . . . . . . . . . . . . . 829  
Gradian angle mode . . . . . . . . . . . . . . 81  
differential equations . . . . . .410452  
G
gradian, . . . . . . . . . . . . . . . . . . . . . 910  
formats . . . . . . . . . . . .315, 344, 414  
Intersection . . . . . . . . . . . . .331, 333  
graph  
mode . . . . . . . . . . . . . . . . . . . 18, 38  
number mode . . . . . . . . . . . . . . . . 38  
Graph 2 mode . . . . . . . . . . . . . . 188, 925  
Graph Order graph format . . . . 316, 414  
Graph, graph . . . . . . . . . . . . . . . . . . 830  
graph, Graph . . . . . . 309, 473, 480, 628  
graphs  
graphs and graphing  
animation . . . . . . . . . . . . . . . . . . 500  
contour plots . . . . . . . . 396, 400, 401  
coordinates . . . . . . . . . . . . . . 87, 319  
16  
overview . . 302, 340, 347, 354, 375,  
410  
parametric . . . . . . . . . . . . . . . . . 347  
pausing . . . . . . . . . . . . . . . . . . . . 318  
pictures . . . . . . . . . . . . . . . . 497, 499  
recall graph database, RclGDB .629,  
863  
web plots . . . . . . . . . . .357, 363, 364  
greater than or equal, |, >= . . . .604, 907  
Greek characters . . . . . . . . .10, 657, 658  
selecting functions . . .309, 350, 358,  
413  
Shade . . . . . . . . . . . . . . . . . 332, 337  
shading, Shade . . . . . . . . . 632, 875  
split screen . . . . . . . . . 482, 485, 506  
884  
Tangent . . . . . . . 331, 336, 346, 353  
text . . . . . . . . . . . . . . . . . . . . . . . 496  
. . . . . . . . . . . . . . . . . . . 766, 892  
to view full name of App . . . . . . . . . 6  
17  
highlighting text . . . . . . . . . . . . . . . . . 652  
Histogram . . . . . . . . . . . . . . . . . . . . . 557  
History area  
history area . . . . . . . . . . . . 207, 208, 664  
History indicator . . . . . . . . . . . . . . . . . 27  
Home icon . . . . . . . . . . . . . . . . . . . . . 24  
Home screen . . . . . . . . . . . . . . . . . . 205  
hyperbolic  
auto/ask . . . . . . . . . . . . . . .459, 464  
infinity, . . . . . . . . . . . . . . . . . . . . . . 277  
Input, input . . . . . . . . . . . . . . . . . . . . . 832  
international/accented characters . . . . 10  
inverse cosecant, csc/( ) . . . . . . . . . . 800  
arctangent, tanh/( ) . . . . . . . . . . 889  
cosine, cosh( ) . . . . . . . . . . . . . . 798  
cotangent, coth( ) . . . . . . . . . . . . 799  
secant, sech( ) . . . . . . . . . . . . . . 869  
sine, sinh( ) . . . . . . . . . . . . . . . . . 878  
tangent, tanh( ) . . . . . . . . . . . . . . 888  
I
ID list . . . . . . . . . . . . . . . . . . . . . 736, 738  
ID number . 233, 731, 732, 733, 736, 738  
If, if . . . . . . . . . . . . . . . . . . . . . . . . . . 831  
ImpDif . . . . . . . . . . . . . . . . . . . . . . . . 832  
18  
inverse hyperbolic  
secant, sech/( ) . . . . . . . . . . . . . 869  
inverse, x/ . . . . . . . . . . . . . . . . . . . . 912  
isArchiv(), is archived . . . . . . . . . . . . 694  
isClkOn( ), is clock on . . . . . . . . . . . . 833  
isPrime( ), prime test . . . . . . . . . . . . 834  
isVar( ) . . . . . . . . . . . . . . . . . . . . . . . 834  
isVAR(), is variable . . . . . . . . . . . . . . 694  
Language mode . . . . . . . . . . . .189, 926  
LineTan, draw tangent line . . . .632, 837  
K
key commands  
2 (second) key . . . . . . . . . . . . 150  
7 (shift) key . . . . . . . . . . . . . . . 150  
j (alpha) key . . . . . . . . . . . . . 150  
map . . . . . . . . . . . . 10, 11, 656, 657  
shortcuts . . . . . . . . . . . . . . . 656, 657  
keys  
function . . . . . . . . . . . . . . . . . . . . . 14  
19  
LineVert, draw vertical line . . . . 632, 837  
Link transmission table . . . . . . . . . . . 740  
linking and transmitting . . . . . . . 869, 870  
calculator to calculator 633, 716, 718,  
folders . . . . 719, 720, 722, 723, 724  
send chat, SendChat . . . . . 727, 728  
send list variable, Send . . . 635, 869  
send to calculator, SendCalc . . .634,  
variables . . . 719, 720, 721, 722, 723  
list difference, @list( ) . . . . . . . . . . . . 838  
list to matrix, list4mat( ) . . . . . . . . . . . 838  
lists  
matrix to list, mat4list( ) . . . . . . . . 843  
maximum, max( ) . . . . . . . . . . . . 843  
mid-string, mid( ) . . . . . . . . . . . . . 844  
ln( ), natural logarithm . . . . . . . . . . . . 838  
790  
difference, @list( ) . . . . . . . . . . . . 838  
Loop, loop . . . . . . . . . . . . . . . . . . . . . 841  
20  
loop, Loop . . . . . . . . . . . . . . . . . . . . . 614  
842  
minimum, min( ) . . . . . . . . . . . . . 845  
M
mat4data( ) . . . . . . . . . . . . . . . . . . . . 842  
mat4list( ), matrix to list . . . . . . . . . . . 843  
MATH menu . . . . . . . . . . . . . . . . . . . 331  
matrices  
column dimension, colDim( ) . . . 794  
copying . . . . . . . . . . . . . . . . . . . . 537  
data from a graph . . . . . . . . . . . . 469  
determinant, det( ) . . . . . . . . . . . 810  
dot multiplication, .( . . . . . . . . . . 905  
eigenvector, eigVc( ) . . . . . . . . . 816  
identity, identity( ) . . . . . . . . . . . . 831  
measurement  
21  
medium-medium line regression, MedMed  
. . . . . . . . . . . . . . . . . . 547, 844, 946  
MedMed, medium-medium line regression  
. . . . . . . . . . . . . . . . . . 547, 844, 946  
memory  
FLASH APPLICATIONS (8 O) .  
archiving, Archive 596, 708, 709, 789  
checking . . . . . . . . . . . . . . . 689, 690  
insufficient display memory, <<...>> .  
229  
resetting . . . . . . . . . . . . . . . 689, 690  
unarchive, Unarchiv . .597, 708, 709,  
893  
VARLINK screen 691, 693, 694, 695,  
MEMORY (2 ;) . . . . . . . . . . . . . . 17  
Menus  
APPLICATIONS (O) . . . . . 50, 58  
menus . . . . . . . . . . . . . . . . . . . . . . . . 175  
APPLICATIONS . . . . . . . . . . . . . 181  
Calc . . . . . . . . . . . . . . . . . . . . . . 265  
canceling . . . . . . . . . . . . . . . . . . . 55  
Complex . . . . . . . . . . . . . . . . . . . 257  
BATT . . . . . . . . . . . . . .204, 949, 952  
modes . . . . . . . . . . . . . . . . . . . . . . . . 185  
22  
Angle . . . . . . . 18, 38, 187, 305, 923  
APPROX . . . . . . . . . . . . . . . . . . . 38  
Approximate . . . . 166, 188, 203, 925  
Apps desktop . . . . . . . . . . . . . . . . 18  
Auto . . . . . . 166, 188, 203, 242, 925  
Base . . . . . . . . . . . . . . . 18, 188, 926  
current . . . . . . . . . . . . . . . . . . . . . 18  
Current folder . . . . . . . . . . . 187, 922  
DEG (degree) . . . . . . . . . . . . . . . . 38  
EXACT . . . . . . . . . . . . . . . . . . . . . 38  
Exact/Approx . . 166, 188, 203, 240,  
Exponential Format . . 170, 188, 923  
fullscreen . . . . . . . 17, 31, 37, 61, 64  
GRAD (gradian) . . . . . . . . . . . . . . 38  
Graph 187, 203, 304, 342, 349, 356,  
23  
mRowAdd( ), matrix row multiplication and  
multiply, * . . . . . . . . . . . . . . . . . . . . . 903  
numeric  
N
natural logarithm, ln( ) . . . . . . . . . . . . 838  
nCr( ), combinations . . . . . . . . . . . . . 846  
nDeriv( ), numeric derivative . . . 266, 846  
negate, M . . . . . . . . . . . . . . . . . . 156, 905  
negation key (5) . . . . . . . . . . . . . . . . 14  
new  
data, NewData . . . . . . 569, 597, 846  
list, newList( ) . . . . . . . . . . . . . . . 847  
picture, NewPic . . . . . 597, 629, 847  
plot, NewPlot . . . . . . . 556, 628, 848  
problem, NewProb . . . . . . . 190, 848  
NewData, new data 518, 531, 569, 597,  
846  
newList( ), new list . . . . . . . . . . . . . . 847  
NewPic, new picture . . . . . 597, 629, 847  
NewPlot, new plot . . . . . . . 556, 628, 847  
on/off . . . . . . . . . . . . . . . . . . . . . . . . . 145  
24  
OneVar, one-variable statistic . . . . . 850  
operating system . . . . . . . 733, 734, 735  
operating system (OS)  
downloading . . . . . . . . . . . . . . . . . 69  
Operating System (OS) version . . . . 234  
733  
operators . . . . . . . . . . . . . . . . . . . . . 159  
or, Boolean or . . . . . . . . . . 605, 685, 851  
Organizr (organizer) category . . . . . . . 32  
OS . . . . . . . . . . . . . . . . . . 731, 732, 733  
OS (Operating System) version . . . . 234  
Out-of-memory error . . . . . . . . . . . . . 273  
Output, output . . . . . . . . . . . . . . . . . . 851  
output, Output . . . . . . . . . . . . . . 620, 627  
replace, RplcPic . . . . . . . . .629, 868  
storing, StoPic . . . . . . . . . . .629, 884  
piecewise functions . . . . . . . . . . . . . . 475  
P
943  
new, NewPlot . . . . . . .556, 628, 848  
25  
off, PlotsOff . . . . . . . . 311, 628, 855  
on, PlotsOn . . . . . . . . 311, 628, 855  
viewing window . . . . . . . . . . . . . 561  
PlotsOn, plots on . . . . . . . . . . . 311, 855  
point  
change, PtChg . . . . . . . . . . 631, 857  
POL (polar) mode . . . . . . . . . . . . . . . . 38  
polar  
PopUp, popup menu . . . . . . . . . 619, 856  
power regression, PowerReg . 547,856,  
clear table, ClrTable . . . . . . . . . . 794  
26  
conditional tests . . . . . . . . . . . . . 603  
copying . . . . . . . . . . . . . . . . . . . . 579  
custom toolbar on, CustmOn . . .230,  
debugging . . . . . . . . . . . . . . . . . 636  
define dialog box Dialog . . . 621, 811  
define toolbar, Custom . . . . 621, 803  
define toolbar, Toolbar . . . . 621, 892  
define, Define . . . 591, 627, 742, 808  
display Home screen, DispHome . . .  
620, . . . . . . . . . . . . . . . 636, 812  
814  
else, Else . . . . . . . . . . . . . . 607, 831  
end dialog, EndDlog . . . . . . 621, 811  
end for, EndFor . . . . . 582, 611, 823  
end function, EndFunc . . . . 587, 824  
end if, EndIf . . . . 582, 606, 607, 831  
end loop, EndLoop . . . . . . . 614, 841  
end program, EndPrgm 128, 591, 856  
end toolbar, EndTBar . . . . . 621, 892  
entering . . . . . . . . . . . . . . . .576, 579  
format string, format( ) 620, 627, 823  
input . . . . . . . . . . . . . .574, 582, 619  
input, Input . . . . . . . . .619, 628, 832  
label, Lbl . . . . . . .593, 609, 616, 834  
menu item, Item . . . . .622, 624, 834  
27  
menus . . . . . . . . . . . . . . . . 622, 626  
multicommand lines . . . . . . . . . . 580  
operations . . . . . . . . . . . . . . . . . 784  
output . . . . . . . . . . . . . 574, 582, 620  
output, Output . . . . . . 620, 627, 851  
pass error, PassErr . . . . . . 636, 854  
passing values . . . . . . . . . . . . . . 584  
pause, Pause . . . . . . . 620, 636, 854  
request, Request . . . . 620, 622, 865  
return, Return . . . . . . . 589, 592, 865  
stopping . . . . . . . . . . . . . . . . . . . 573  
subroutines . . . . . . . . . . . . . . . . . 591  
text, Text . . . . . . . . . . 621, 622, 890  
Then, Then . . . . . . . . . 606, 607, 831  
title, Title . . . . . . . . . . . . . . . 622, 890  
try, Try . . . . . . . . . . . . . . . . 636, 892  
variables . . . . . . . . . . . . . . . . . . . 593  
while, While . . . . . . . . . . . . 613, 895  
Prompt( ), prompt . . . . . . . . . . . 619, 857  
prompt, Prompt( ) . . . . . . . . . . . . . . . 619  
proper fraction, propFrac . 256, 264, 755  
propFrac, proper fraction .256, 264, 755,  
857  
PtText, point text . . . . . . . . . . . .631, 858  
R4Pr( ), polar coordinate . . . . . . . . . . 862  
RAD (radian) mode . . . . . . . . . . . . . . . 38  
PtChg, point change . . . . . . . . . 631, 857  
PtOff, point off . . . . . . . . . . . . . . 631, 857  
PtOn, point on . . . . . . . . . . . . . . 631, 858  
28  
random  
number seed, RandSeed . . 747, 863  
863  
rational functions activity . . . . . . . . . 755  
RclGDB, recall graph database 505,629,  
863  
real( ), real . . . . . . . . . . . . . . . . . . . . 863  
recall  
medium-medium line, MedMed . 547,  
replace picture, RplcPic . . . . . . .629, 868  
request, Request . . . . . . . . . . . .620, 622  
roots . . . . . . . . . . . . . . . . . . . . . . . . . . 75  
graph database, RclGDB . .505,629,  
863  
picture, RclPic . . . . . . . . . . 629, 863  
rectangular-vector display, 4Rect . . . 864  
747  
29  
rotate( ), rotate . . . . . . . . . . . . . 686, 866  
rotate, rotate( ) . . . . . . . . . . . . . 603, 686  
rowSwap( ), matrix row swap . . . . . . 868  
RplcPic, replace picture . . . . . . 629, 868  
rref( ), reduced row echelon form . . .262,  
S
setUnits( ), set units . . . . . . . . . .617, 874  
SAVE COPY AS (8 S)  
sec( ), secant . . . . . . . . . . . . . . . . . . 868  
30  
Shade (graph math tool) . . . . . . 332, 337  
Shift modifier key (7)  
status . . . . . . . . . . . . . . . . . . . . . . 38  
shift( ), shift . . . . . . . . 533, 603, 687, 875  
show statistical results, ShowStat . .548,  
876  
876  
simplification  
simult( ), simultaneous equations . . . 877  
sinh/( ), hyperbolic arcsine . . . . . . . . 878  
946  
sinusoidal regression, SinReg .548,879,  
946  
SocialSt (social studies) category . . . . 31  
status . . . . . . . . . . . . . . . . . . . . . . 36  
31  
viewing . . . . . . . . . . . . . . . . . . . . . 18  
standard deviation, stdDev( ) . . . . . . 883  
start timer, startTmr( ) . . . . . . . . . . . . 882  
startTmr( ), start timer . . . . . . . . . . . . 882  
statistics . . . . . . . . . . . . . . . . . . 540571  
categories . . . . . . . . . . . . . . . . . . 565  
Freq . . . . . . . . . . . . . . . . . . 541, 543  
frequency . . . . . . . . . . . . . . . . . . 563  
Histogram plots . . . . . . . . . . . . . 557  
new plot, NewPlot . . . . . . . 556, 848  
plots on, PlotsOn . . . . 311, 628, 855  
random norm, randNorm( ) . . . . 863  
variables . . . . . . . . . . . . . . . . . . . 548  
variance, variance( ) . . . . . . . . . . 894  
xyline plots . . . . . . . . . . . . . . . . . 555  
statistics. See also regressions  
on Apps desktop . . . . . . . . . . . . . . . 6  
history information . . . . . . . . . . . . . 27  
Stop, stop . . . . . . . . . . . . . . . . . . . . . 884  
graph database, StoGDB . .629, 884  
picture, StoPic . . . . . . . . . . .629, 884  
append, & . . . . . . . . . . . . . .602, 908  
32  
884  
format, format( ) . 602, 620, 627, 823  
indirection, # . . . . . . . . 602, 909, 944  
inputting, InputSt . . . . 601, 619, 728  
operations . . . . . . . . . 600, 602, 785  
right, right( ) . . . . . . . . . . . . 603, 866  
TABLE SETUP, table setup . . . . . . . 455  
Table, build table . . . . . . . . . . . . . . . . 887  
table-graph, Graph<->Table . . . . . . . 456  
tblStart . . . . . . . . . . . . . . . . . . . . . 456  
style, Style . . . . . . . . . . . . . . . . 313, 628  
subMat( ), submatrix . . . . . . . . . . . . . 885  
submenus . . . . . . . . . . . . . . . . . . . . . 177  
sum( ), summation . . . . . . . . . . 866, 885  
system data, sysData . . . . . . . . 469, 470  
33  
tan( ), tangent . . . . . . . . . . . . . . . . . . 887  
tan/( ), arctangent . . . . . . . . . . . . . . 888  
353  
tanh( ), hyperbolic tangent . . . . . . . . 888  
Taylor polynomial, taylor( ) 266, 269, 889  
taylor( ), Taylor polynomial . . . . . . . . 889  
tblStart, table start . . . . . . . . . . . . . . 456  
891  
tmpCnv( ), temperature conversion . 286,  
temperature-range conversion,  
(@tmpCnv( ) . . . . . . . . . . . . . . . . . 286  
temperature-range conversion,  
@tmpCnv( ) . . . . . . . . . . . . . . . . . 891  
tExpand( ), trigonometric expansion . 890  
text editing . . . . . . . . . . . . 645, 655, 661  
text, Text . . . . . . . . . . . . . . . . . . 621, 622  
Then, Then . . . . . . . . . . . . 606, 607, 831  
setting initial Apps . . . . . . . . . . . . . 61  
34  
status . . . . . . . . . . . . . . . . . . . . . . 36  
tplot window variable . . . . . . . . . . . . 417  
Trace, trace . . . 751, 761, 763, 766, 892  
trace, Trace 321, 628, 751, 761, 763, 766  
tracing 87, 321, 324, 346, 353, 362, 381,  
420  
Trig menu . . . . . . . . . . . . . . . . . . . . . 257  
trigonometric  
trigonometric expansion, tExpand( ) . 890  
try, Try . . . . . . . . . . . . . . . . . . . . . . . 636  
tstep window variable . . . . . . . . 351, 416  
turning clock off, ClockOff . . . . . . . . . 793  
following inactivity . . . . . . . . . . . . . 8  
turning on  
U
Unarchiv, unarchive variables . 597,708,  
709, . . . . . . . . . . . . . . . . . . . . . . . 893  
defaults . . . . . . . . . . . . . . . .287, 293  
measurement . . . . . . . . . . . . . . . 279  
modes . . . . . . . . . . . . . . . . .189, 926  
setting, setUnits( ) . . . . . . . .617, 874  
unitV( ), unit vector . . . . . . . . . . . . . . 893  
typing  
file name . . . . . . . . . . . . . . . . . . . . 29  
to scroll through Catalog . . . . . . . 22  
35  
unarchive, Unarchiv . 597, 708, 709,  
V
382, . . . . . . . . . . . . . . . . . . . . . . 420  
archiving and unarchiving . 707, 708  
clearing . . . . . . . . . . . . . . . . . . . . 679  
copy, CopyVar . . . . . . 596, 703, 796  
809  
deleting . . . . . . . . . . . . . . . . . . . . 724  
DelType 705  
in applications . . . . . . . . . . 705, 706  
local, Local . 589, 594, 596, 597, 839  
locking, Lock . . . . . . . . . . . . . . . 597  
locking/unlocking . . . . . . . . 204, 703  
overriding . . . . . . . . . . . . . . . . . . 239  
recall . . . . . . . . . . . . . . . . . . . . . . . 17  
referring to App files . . . . . . . . . . . 28  
reserved names . . . . . . . . . 942, 943  
statistical . . . . . . . . . . . . . . 544, 548  
store . . . . . . . . . . . . . . . . . . . . . . . 17  
While, while . . . . . . . . . . . . . . . . . . . . 895  
36  
while, While . . . . . . . . . . . . . . . . . . . 613  
Window Editor . . . . . . . . . . . . . . . . . . 58  
window variables  
(x . . . . . . . . . . . . . . . . . . . . . . . . 941  
(y . . . . . . . . . . . . . . . . . . . . . . . . 941  
diftol . . . . . . . . . . . . . . . . . . . . . . 418  
dtime . . . . . . . . . . . . . . . . . . . . . 418  
Estep . . . . . . . . . . . . . . . . . . . . . 418  
eyeφ (z axis) . . . . . . . . 378, 387, 389  
eyeθ (x axis) . . . . . . . . 378, 387, 389  
eyeψ (rotation) . . . . . . 378, 387, 389  
fldres . . . . . . . . . . . . . . . . . . . . . 418  
ncontour . . . . . . . . . . . . . . . . . . . 379  
ncurves . . . . . . . . . . . . . . . . . . . . 417  
nmax . . . . . . . . . . . . . . . . . . . . . 359  
plotStep . . . . . . . . . . . . . . . . . . . 359  
qmin . . . . . . . . . . . . . . . . . . . . . . 343  
qstep . . . . . . . . . . . . . . . . . . . . . 344  
t0 . . . . . . . . . . . . . . . . . . . . . . . . 416  
tmax . . . . . . . . . . . . . . . . . . 351, 416  
xgrid . . . . . . . . . . . . . . . . . . . . . . 379  
xmax . 313, 344, 351, 359, 379, 417,  
941  
ymin . 313, 344, 351, 359, 379, 417,  
941  
. . . . . . . . . . . . . . . . . . . . . . .412, 471  
ygrid window variable . . . . . . . . . . . . 379  
37  
ymax window variable . . .313, 344, 359,  
yscl window variable 314, 344, 352, 359,  
417  
ZoomSqr, zoom square . . . . . . . . . . . 900  
ZoomStd, zoom standard . . . . . . . . . 901  
ZoomSto, zoom store . . . . . . . . . . . . 901  
Z
zeroes  
activity . . . . . . . . . . . . . . . . . . . . 766  
zeroes, zeroes( ) . . . . . . . . 240, 256, 263  
zeroes, zeros( ) . . . . . . . . . . . . . 743, 896  
zeros( ), zeroes . . . . . . . . . . . . . 743, 896  
zmin window variable . . . . . . . . . . . . 379  
zoom  
data, ZoomData . . . . . . . . . 326, 898  
factors . . . . . . . . . . . . . . . . 326, 328  
fit, ZoomFit . . . . . . . . . . . . . 326, 899  
in, ZoomIn . . . . . . . . . 325, 328, 899  
integer, ZoomInt . . . . . . . . . 326, 899  
out, ZoomOut . . . . . . . 325, 328, 900  
38  

Wrigley Eclipse Car Video System avn726ea User Manual
ViewSonic VP3D1 User Manual
Transcend Information TS8GCF600 User Manual
Sony XR L240 User Manual
Sony TRV308 User Manual
Sony LCM SC100 User Manual
Sony Handycam HDR CX155E User Manual
Sony Handycam DCRSR300 User Manual
Samsung GH68 17668A User Manual
Rockford Fosgate T20001 BD User Manual