TI89TitaniumGuidebook Part1 EN PDF

You might also like

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

KongGuidebook.

book Page i Thursday, July 14, 2005 12:54 PM

TI-89 Titanium
Graphing Calculator

2005 Texas Instruments Incorporated


Windows and Macintosh are trademarks of their respective owners.

KongGuidebook.book Page ii Thursday, July 14, 2005 12:54 PM

Important Information
Texas Instruments makes no warranty, either express or implied,
including but not limited to any implied warranties of merchantability
and fitness for a particular purpose, regarding any programs or book
materials and makes such materials available solely on an "as-is" basis. In
no event shall Texas Instruments be liable to anyone for special,
collateral, incidental, or consequential damages in connection with or
arising out of the purchase or use of these materials, and the sole and
exclusive liability of Texas Instruments, regardless of the form of action,
shall not exceed the purchase price of this product. Moreover, Texas
Instruments shall not be liable for any claim of any kind whatsoever
against the use of these materials by any other party.

USA FCC Information Concerning Radio Frequency


Interference
This equipment has been tested and found to comply with the limits for a
Class B digital device, pursuant to Part 15 of the FCC rules. These limits are
designed to provide reasonable protection against harmful interference in
a residential installation. This equipment generates, uses, and can radiate
radio frequency energy and, if not installed and used in accordance with
the instructions, may cause harmful interference to radio communications.
However, there is no guarantee that interference will not occur in a
particular installation.
If this equipment does cause harmful interference to radio or television
reception, which can be determined by turning the equipment off and
on, you can try to correct the interference by one or more of the
following measures:

Reorient or relocate the receiving antenna.

Increase the separation between the equipment and receiver.

Connect the equipment into an outlet on a circuit different from


that to which the receiver is connected.

Consult the dealer or an experienced radio/television technician for


help.

Caution: Any changes or modifications to this equipment not


expressly approved by Texas Instruments may void your
authority to operate the equipment.

ii

KongGuidebook.book Page iii Thursday, July 14, 2005 12:54 PM

Table of Contents
Introduction ........................................................................v
The TI-89 Titanium graphing calculator........................................ v
How to use this guidebook............................................................ v

Getting Started ..................................................................1


Initial start-up ................................................................................. 1
TI-89 Titanium keys......................................................................... 5
Mode settings .............................................................................. 10
Using the Catalog to access commands ..................................... 13
Calculator Home screen ............................................................... 15
Working with Apps ...................................................................... 18
Checking status information ....................................................... 24
Turning off the Apps desktop...................................................... 25
Using the clock ............................................................................ 26
Using menus ................................................................................. 32
Using split screens ........................................................................ 38
Managing Apps and operating system (OS) versions................. 42
Connecting your TI-89 Titanium to other devices ...................... 44
Batteries ........................................................................................ 45

Previews ...........................................................................49
Performing Computations ........................................................... 49
Symbolic Manipulation ................................................................ 54
Constants and Measurement Units ............................................. 56
Basic Function Graphing I ........................................................... 57
Basic Function Graphing II .......................................................... 59
Basic Function Graphing III .......................................................... 60
Parametric Graphing .................................................................... 62
Polar Graphing ............................................................................ 63
Sequence Graphing ..................................................................... 65
3D Graphing ................................................................................ 66
Differential Equation Graphing .................................................. 69
Additional Graphing Topics ......................................................... 71
Tables ............................................................................................ 73
Split Screens .................................................................................. 74
Data/Matrix Editor........................................................................ 75
Statistics and Data Plots .............................................................. 77
Programming ............................................................................... 82
Text Operations ........................................................................... 85
Numeric Solver ............................................................................. 86
Number Bases ............................................................................... 88
Memory and Variable Management .......................................... 90

iii

KongGuidebook.book Page iv Thursday, July 14, 2005 12:54 PM

Activities.......................................................................... 95
Analyzing the Pole-Corner Problem ............................................ 95
Deriving the Quadratic Formula .................................................. 96
Exploring a Matrix ........................................................................ 98
Exploring cos(x) = sin(x)................................................................ 99
Finding Minimum Surface Area of a Parallelepiped ................ 101
Running a Tutorial Script Using the Text Editor........................ 102
Decomposing a Rational Function............................................. 104
Studying Statistics: Filtering Data by Categories ...................... 105
CBL 2 Program for the TI-89 Titanium ................................... 108
Studying the Flight of a Hit Baseball......................................... 110
Visualizing Complex Zeros of a Cubic Polynomial .................... 111
Solving a Standard Annuity Problem ........................................ 114
Computing the Time-Value-of-Money ...................................... 115
Finding Rational, Real, and Complex Factors............................ 117
Simulation of Sampling without Replacement......................... 118
Using Vectors to Determine Velocity......................................... 119

Connectivity .................................................................. 123


Connecting Two Units ................................................................ 123
Transmitting Variables, Flash Applications, and Folders .......... 125
Transmitting Variables under Program Control........................ 130
Upgrading the Operating System (OS)...................................... 132
Collecting and Transmitting ID Lists .......................................... 136
Compatibility among the TI-89 Titanium, Voyage 200,
TI-89, and TI-92 Plus .............................................................. 137

Memory and Variable Management ............................ 139


Checking and Resetting Memory............................................... 139
Displaying the VAR-LINK Screen ................................................ 140
Displaying Information about Variables on the Home Screen 142
Pasting a Variable Name to an Application .............................. 150
Archiving and Unarchiving a Variable....................................... 151
If a Garbage Collection Message Is Displayed........................... 152
Memory Error When Accessing an Archived Variable .............. 155

Appendix A: Functions and Instructions ..................... 157


Quick-Find Locator...................................................................... 158
Alphabetical Listing of Operations............................................ 162

Appendix B: Service and Warranty Information ......... 291


Texas Instruments Support and Service ..................................... 291
Texas Instruments (TI) Warranty Information ........................... 291

Index

iv

................................................................................ 295

KongGuidebook.book Page v Thursday, July 14, 2005 12:54 PM

Introduction
The TI-89 Titanium graphing calculator
This guidebook provides information about a powerful, advanced
graphing calculator available from Texas Instruments: the TI-89 Titanium.
Your TI-89 Titanium comes equipped with a variety of preinstalled
software applications (Apps) that have features relevant to many
different subjects and curriculums.
Using Flash read-only memory (ROM) for the TI-89 Titanium (4 megabytes
[MB] available), you can install additional Apps and increase the
capabilities of your calculator. Installing Apps and operating system (OS)
upgrades is like installing software on a computer. All you need is
TI Connect software and a TI Connectivity Cable.
The TI-89 Titanium graphical user interface (GUI) and configurable Apps
desktop make it easy to organize Apps into categories that you create.
Extend the reach of your TI-89 Titanium with accessories, such as the
Calculator-Based Laboratory (CBL 2) systems, Calculator-Based
Ranger (CBR) system, TI-Presenter video adapter, and
TI ViewScreen overhead panel.
The CBL 2 and CBR systems offer static and real-world data collection.
Use the TI-Presenter video adapter to connect the TI-89 Titanium to video
display/recording devices, such as TVs, VCRs, video cameras, and
computer projectors. The TI ViewScreen overhead panel lets you project
an enlarged image of the TI-89 Titanium display so an entire class can
view it.

How to use this guidebook


Weve added conventions to make it easier for you to get the most out of
this guidebook.

Key symbols appear throughout the guidebook.

Many keys can perform more than one function. To use secondary
functions, which are printed above the keys, you must first press 2,
j, or . These extra functions are printed within brackets in this
guidebook.
For example, a procedure might include this key sequence used to
display a menu of special characters:

KongGuidebook.book Page vi Thursday, July 14, 2005 12:54 PM

Press 2 . (Press and release the 2 key, then press the


key, which is the second function of the key.)

Key commands that require you to press and hold two keys at the
same time are indicated by the phrase press and hold. For example,
the instruction to darken the display contrast is:
Press and hold 8 and tap .

Your graphing calculator uses menus to access many operations.


Menu options often can be selected using one of two methods. For
example,
Press 9:Trig
means that you can choose the Trig option first by pressing and
then either pressing the 9 key or pressing D as many times as
required to select Trig, and then pressing .

The chapters in this guidebook include:


Getting Started Offers students and educators in all curriculums a
quick overview of the basic operations of the TI-89 Titanium.
Previews A set of short examples that include step-by-step procedures,
actual keystrokes, and sample displays.
Activities A set of longer examples that shows how to solve, analyze,
and visualize actual mathematical problems.
Connectivity How to link your graphing calculator to another
calculator or to a computer using either the USB or the I/O port, with
details about how to transmit variables and applications, and how to
upgrade the operating system.
Memory and Variable Management How to manage variables
stored in your graphing calculators memory and in the data archive, a
protected area of memory separate from RAM (random access memory).
Functions and Instructions Includes the syntax and action of each
function and instruction included in the operating system, an
alphabetical listing of operations, error messages, and other reference
information.
Service and Warranty Information Includes service and warranty
information, and contact information for technical support.

vi

Introduction

KongGuidebook.book Page vii Thursday, July 14, 2005 12:54 PM

The remainder of the product information is available in electronic form.


This comprehensive set of electronic chapters is included on the CD-ROM
that came with your TI-89 Titanium. This same information is also
available online as a free download at education.ti.com/guides.

Introduction

vii

KongGuidebook.book Page viii Thursday, July 14, 2005 12:54 PM

viii

Introduction

KongGuidebook.book Page 1 Thursday, July 14, 2005 12:54 PM

1
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

KongGuidebook.book Page 2 Thursday, July 14, 2005 12:54 PM

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

To lighten the display, press and hold 8 and tap |.

To darken the display, press and hold 8 and tap .

V A R -L IN K

CHAR

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.

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.

Getting Started

KongGuidebook.book Page 3 Thursday, July 14, 2005 12:54 PM

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.
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

2 (press 2
Settings and memory contents are retained
and then press ) by the Constant Memory feature.

Getting Started

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).

KongGuidebook.book Page 4 Thursday, July 14, 2005 12:54 PM

Press:

Description

(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.

Note: is the second function of the key.


The calculators 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

KongGuidebook.book Page 5 Thursday, July 14, 2005 12:54 PM

TI-89 Titanium keys

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.

Getting Started

KongGuidebook.book Page 6 Thursday, July 14, 2005 12:54 PM

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 .

Example: Enter the right arrow symbol () in the Text Editor.


Press

Result

2G

Scroll down for more


characters.

9
or
Press D repeatedly to
select 9:
and press

Symbol displayed at cursor


location.

To open the keyboard map, press 8 . The keyboard map appears.


6

Getting Started

KongGuidebook.book Page 7 Thursday, July 14, 2005 12:54 PM

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

Symbol displayed
at cursor location.

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

2
(Second)

Accesses Apps, menu options, and other


operations. Second functions are printed
above their corresponding keys in the same
color as the 2 key.

8
(Diamond)

Accesses Apps, menu options, and other


operations. Diamond functions are printed
above their corresponding keys in the same
color as the 8 key.

(Shift)

Types an uppercase character for the next


letter key you press. Also used with A and B
to highlight characters when editing.

Getting Started

KongGuidebook.book Page 8 Thursday, July 14, 2005 12:54 PM

Keys

Description

j
(Alpha)

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.

Example: Access the VAR-LINK [All] screen, where you can manage
variables and Apps.
Press

Result

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 mathrelated 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: Dont confuse the negation key (?) with the subtraction key (|).
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.)

Getting Started

KongGuidebook.book Page 9 Thursday, July 14, 2005 12:54 PM

Example: On the calculator Home screen, enter 0.00685 using scientific


notation.
Press

Result

685
^

?3

Other important keys


Key Command

Description

8#

Displays the Y= Editor.

8$

Displays the Window Editor.

8%

Displays the Graph screen.

8&

Sets parameters for the Table


screen.

8'

Displays the Table screen.

These keys let you edit entered


information by performing a cut,
copy, or paste operation.

6
7
O

Displays the Apps desktop.

8O

With the Apps desktop off,


displays the FLASH
APPLICATIONS menu.

2a

Switches between the last two


chosen Apps.

Turns the custom menu on and


off.

Getting Started

KongGuidebook.book Page 10 Thursday, July 14, 2005 12:54 PM

Key Command

Description

24

Converts measurement units.

Designates a measurement unit.

Deletes the character to the left


of the cursor (backspace).

8.

Deletes the character to the


right of the cursor.

2/

Switches between insert and


overwrite modes.

Displays the MEMORY screen.

Displays a list of commands.

Recalls the contents of a


variable.

Stores a value to a variable.

2G

Displays the CHAR menu, which


lets you select Greek letters,
international accented
characters, and other special
characters..

2K

In full-screen mode, displays


the Apps desktop.

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:
10

Getting Started

KongGuidebook.book Page 11 Thursday, July 14, 2005 12:54 PM

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

Getting Started

11

KongGuidebook.book Page 12 Thursday, July 14, 2005 12:54 PM

Changing mode settings


Example: Change the Language mode setting to Spanish (Espaol).
Press

Result

Scroll down to the Language


field.
D

Press B
and then press D until
3:Espaol is highlighted.
Note: Your menu list might
vary, depending on the
languages installed.

12

Getting Started

KongGuidebook.book Page 13 Thursday, July 14, 2005 12:54 PM

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.
Note: Typing a letter takes you to the first command in the list starting
with the same letter.
Press

Result

(displays Built-in commands)

Getting Started

13

KongGuidebook.book Page 14 Thursday, July 14, 2005 12:54 PM

Press

Result

(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.
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
2D
Then press D until the pointer
is at the comDenom( function.

14

Getting Started

KongGuidebook.book Page 15 Thursday, July 14, 2005 12:54 PM

Press

Result

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.

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

15

KongGuidebook.book Page 16 Thursday, July 14, 2005 12:54 PM

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.

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.)

16

Getting Started

KongGuidebook.book Page 17 Thursday, July 14, 2005 12:54 PM

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 Move the cursor to the entry or answer. Use A
too long for one line
or B to scroll left or right and 2 A or 2 B
(8 is displayed at the to go to the beginning or end.
end of the line)
Return cursor to the
entry line

Press N, or press D until the cursor is back


on the entry line.

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

________

8/30 _______

Maximum number of
pairs that can be saved

8/30 _______

Total number of pairs


currently saved

If the cursor is in the history area:


Pair number of the
highlighted
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.

Getting Started

17

KongGuidebook.book Page 18 Thursday, July 14, 2005 12:54 PM

or

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.

New

Creates a new file with the name typed in the


field.

Select an option, enter any required information, and press . The


App appears.

18

Getting Started

KongGuidebook.book Page 19 Thursday, July 14, 2005 12:54 PM

Example: Create a new program using the Program Editor.


Press

Result

Use cursor keys to highlight

DD
program1

Getting Started

19

KongGuidebook.book Page 20 Thursday, July 14, 2005 12:54 PM

The newly created program variable, program1, is saved to the Main


folder.

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 fullscreen 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

All

Icons for all installed Apps displayed. Not


customizable.

English

Customizable category. English is the default.

SocialSt

Customizable category. SocialSt (social


studies) is the default.

Math

Customizable category. Math is the default.

2 Graphing

Customizable category. Graphing is the


default.

2 Science

Customizable category. Science is the default.

2 Organizr

Customizable category. Organizr (organizer)


is the default.

20

Getting Started

KongGuidebook.book Page 21 Thursday, July 14, 2005 12:54 PM

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 21.)
Press or N to clear the message and return to the Apps desktop.

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

21

KongGuidebook.book Page 22 Thursday, July 14, 2005 12:54 PM

Example: Replace the Social Studies category with the Business category
and add the CellSheet and Finance App shortcuts.
Press

Result

2
or
D

2
Business

22

Getting Started

KongGuidebook.book Page 23 Thursday, July 14, 2005 12:54 PM

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).
Top-bottom split screen

Getting Started

23

KongGuidebook.book Page 24 Thursday, July 14, 2005 12:54 PM

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

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

Current folder

Name of the selected folder (MAIN is the


default folder.)

Modifier key

Selected modifier key (2, 8, 7), if any.

Angle mode

Selected units in which angle values are


displayed and interpreted (RAD, DEG, GRAD)

Exact/Approx
mode

Mode in which answers are calculated and


displayed (AUTO, EXACT, APPROX)

24

Getting Started

KongGuidebook.book Page 25 Thursday, July 14, 2005 12:54 PM

Indicator

Meaning

Graph number

Active of two independent graphs in splitscreen mode (GR#1, GR#2)

Graph mode

Selected type of graph that can be plotted


(FUNC, PAR, POL, SEQ, 3D, DE)

Entry/Answer pairs 22/30Number of entry/answer pairs (default


is 30, maximum is 99) in the history area of
the calculator Home screen.
Replace batteries

Displayed when batteries are low (BATT). If


BATT is highlighted with a black
background, change the batteries as soon as
possible (
).

Busy/Pause,
Locked/Archived
variable

BUSYCalculation or graph is in progress


PAUSEYou paused a graph or program
Variable opened in the current editor is
locked or archived and cannot be modified

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

Getting Started

25

KongGuidebook.book Page 26 Thursday, July 14, 2005 12:54 PM

Press

Result

DDBC

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.
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.

26

Getting Started

KongGuidebook.book Page 27 Thursday, July 14, 2005 12:54 PM

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).

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.

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.

Getting Started

27

KongGuidebook.book Page 28 Thursday, July 14, 2005 12:54 PM

Example:
1:30 p.m.

Set the time and date to 19/10/02 (October 19, 2002) at


Press

Use cursor keys to highlight

Result
Time and date

D1D

30D

28

Getting Started

KongGuidebook.book Page 29 Thursday, July 14, 2005 12:54 PM

Press

Result

BD

BD

2002

Getting Started

29

KongGuidebook.book Page 30 Thursday, July 14, 2005 12:54 PM

Press

Result

DB

Scroll down to October


and press

D19

Revised time and date

Turning off the clock


From the Apps desktop, open the CLOCK dialog box and select OFF in the
Clock field.

30

Getting Started

KongGuidebook.book Page 31 Thursday, July 14, 2005 12:54 PM

Example: Turn off the clock.


Press
Use cursor keys to highlight

Result
Clock on

Scroll down to the Clock field.

BC

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

31

KongGuidebook.book Page 32 Thursday, July 14, 2005 12:54 PM

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

2G

CHAR menu. Lists characters not available on the


keyboard; characters are organized by category
(Greek, math, punctuation, special, and
international).

2I

MATH menu. Lists math operations by category.

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.)

8O

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.)

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.

32

Getting Started

KongGuidebook.book Page 33 Thursday, July 14, 2005 12:54 PM

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

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.

Getting Started

33

KongGuidebook.book Page 34 Thursday, July 14, 2005 12:54 PM

Example:
screen.

Select ord( from the MATH menu on the calculator Home


Press

Result

2I

D
or
CCB

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 .

34

Getting Started

KongGuidebook.book Page 35 Thursday, July 14, 2005 12:54 PM

Example:
Editor.

Open the SAVE COPY AS dialog box from the Window


Press

Result

O
Use the cursor keys to
highlight

and press

2
or

Press B to display a
list of folders.

Type the name of


the variable.

Press twice to save and close


the dialog box.

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.

Getting Started

35

KongGuidebook.book Page 36 Thursday, July 14, 2005 12:54 PM

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.
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

36

Result

2F

Default custom menu

2F

Normal toolbar menu

Getting Started

KongGuidebook.book Page 37 Thursday, July 14, 2005 12:54 PM

Example:

Restore the default custom menu.

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

2F
(to turn off the custom menu
and turn on the standard
toolbar menu)

3
or
DD

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.

Getting Started

37

KongGuidebook.book Page 38 Thursday, July 14, 2005 12:54 PM

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

3
or
DD

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.

38

Getting Started

KongGuidebook.book Page 39 Thursday, July 14, 2005 12:54 PM

Example:

Set split-screen mode to TOP-BOTTOM.


Press

Result

BD

Getting Started

39

KongGuidebook.book Page 40 Thursday, July 14, 2005 12:54 PM

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

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 38.)

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

DB

40

Getting Started

KongGuidebook.book Page 41 Thursday, July 14, 2005 12:54 PM

Press

Result

DB

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.

Getting Started

41

KongGuidebook.book Page 42 Thursday, July 14, 2005 12:54 PM

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.)

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:


education.ti.com/latest

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 Connect software 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.

42

Getting Started

KongGuidebook.book Page 43 Thursday, July 14, 2005 12:54 PM

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.

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.

Getting Started

43

KongGuidebook.book Page 44 Thursday, July 14, 2005 12:54 PM

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 calculators 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.
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 calculators 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 TI ViewScreen
overhead panel to your calculator. The TI ViewScreen overhead panel
enlarges and projects the display so an entire class can view it. For more
information about the TI-Presenter video adapter and TI ViewScreen
panel, see the TI E&PS Web site at education.ti.com.

USB port

I/O port

TI-89 Titanium ports

44

Getting Started

KongGuidebook.book Page 45 Thursday, July 14, 2005 12:54 PM

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 APD feature 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.
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.

Getting Started

45

KongGuidebook.book Page 46 Thursday, July 14, 2005 12:54 PM

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.

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.

46

Getting Started

KongGuidebook.book Page 47 Thursday, July 14, 2005 12:54 PM

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

47

KongGuidebook.book Page 48 Thursday, July 14, 2005 12:54 PM

48

Getting Started

KongGuidebook.book Page 49 Thursday, July 14, 2005 12:54 PM

2
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 examples 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

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

Previews

49

KongGuidebook.book Page 50 Thursday, July 14, 2005 12:54 PM

Expanding Complex Numbers


Steps and keystrokes

Display

Compute (3+5i) to see how the TI-89 Titanium


handles computations involving complex
numbers.
Press c 3 5 2 ) d Z 3

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

Expanding Expressions
Steps and keystrokes

Display

Expand the expression (xN5) 3. 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.

50

Previews

KongGuidebook.book Page 51 Thursday, July 14, 2005 12:54 PM

Reducing Expressions
Steps and keystrokes

Display

(x 2

Reduce the expression


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

Factoring Polynomials
Steps and keystrokes

Display
2N5)

with respect to x.
Factor the polynomial (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

Solve the equation x 2N2xN6=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

51

KongGuidebook.book Page 52 Thursday, July 14, 2005 12:54 PM

Solving Equations with a Domain Constraint


Steps and keystrokes

Display

x2

Solve the equation 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
Solve the inequality

Display

(x2>1,x)

with respect to x.

Press 1 X Z 2 2 1 d

Finding the Derivative of Functions


Steps and keystrokes
Find the derivative of (xNy)
to x.

Display
3/(x+y)2

with respect

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
2bXd

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

52

Previews

KongGuidebook.book Page 53 Thursday, July 14, 2005 12:54 PM

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
1.

Display

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 ja
2 g ? 1 b 2 b 1 2 h jb
2 g 7 b 6 b 5 2 h jc

2.

Solve (x* a+y*b+z*c=d {x,y,z})


Press 1 X p j a y p j b z p
jc jd b2[ X b Y bZ 2\
d

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

Previews

53

KongGuidebook.book Page 54 Thursday, July 14, 2005 12:54 PM

Converting Angle Measures


Steps and keystrokes
1.

Display

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
I2 jA

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
I2 jB
Note: You can also use ,, or G 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 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
1.

Display

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
bXd

54

Previews

KongGuidebook.book Page 55 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


2.

Display

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

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.

Previews

55

KongGuidebook.book Page 56 Thursday, July 14, 2005 12:54 PM

Constants and Measurement Units


Using the equation f = ma, calculate the force when m = 5 kilograms
and a = 20 meters/second2. What is the force when a = 9.8
meters/second2. (This is the acceleration due to gravity, which is a
constant named _g). Convert the result from newtons to kilograms of
force.
Steps and keystrokes
1.

Display

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


meters/second 2 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,
instead of re-entering _m/_s2 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
DDDBSZ29852
MS j 2

3.

Calculate the force when


m = 5 kilograms (_kg) and
a = 20 meters/second 2 (_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

56

Previews

KongGuidebook.book Page 57 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


4.

Display

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
BjG

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 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 y=(|x2N3|N10)/2.
Steps and keystrokes
1.

Display

Display the Y= Editor.


Press 8 #
entry line

2.

Enter the function (abs(x2N3)N10)/2.


The screen shot shows the pretty print
display at y1=.
Press c A X Z 2 | 3 d | 1 0
de2

Previews

57

KongGuidebook.book Page 58 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


3.

Display

Display the graph of the function.


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

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

8.

Find the minimum point on the graph


between the lower and upper bounds.
Press

minimum point
minimum coordinates

58

Previews

KongGuidebook.book Page 59 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


9.

Display

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
1.

Display

Display the MODE dialog box. For Graph


mode, select FUNCTION.
Press 3 B 1

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


define y1(x) =
circle.

( r 2 x 2 ) , the top half of a

In function graphing, you must define


separate functions for the top and bottom
halves of a circle.
Press 8 # , 8 2 ] j R
Z2|XZ2d
4.

Define y2(x) = r 2 x 2 , 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

59

KongGuidebook.book Page 60 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


5.

Display

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.

Basic Function Graphing III


Use the Detect Discontinuities graph format to eliminate faux
asymptotes and connections in a jump discontinuity.
Steps and keystrokes
1.

Display

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

60

Previews

KongGuidebook.book Page 61 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


3.

Display

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

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.
Nofaux asymptotes are present on the
graph.
Note: Graphing speed may slow
considerably when Detect Discontinuities
is set to ON.
Press 8 %(q

Previews

61

KongGuidebook.book Page 62 Thursday, July 14, 2005 12:54 PM

Parametric Graphing
Graph the parametric equations describing the path of a ball kicked at an
angle (q) of 60 with an initial velocity (v 0) of 15 meters/sec. The gravity
constant g = 9.8 meters/sec 2. Ignoring air resistance and other drag
forces, what is the maximum height of the ball and when does it hit the
ground?
Steps and keystrokes
1.

Display

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) = v 0t cos q.

xt1(t)=15tcos(60)

Enter values for v 0 and q.


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.
3.

Define the vertical component


yt1(t) = v 0t sin q N (g/2)t 2.
Enter values for v 0, q, and g.
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

62

Previews

KongGuidebook.book Page 63 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


5.

Display

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

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
1.

Display

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
8d

Previews

63

KongGuidebook.book Page 64 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


3.

Display

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

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.

64

Previews

KongGuidebook.book Page 65 Thursday, July 14, 2005 12:54 PM

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 +
1000) + 1000

.8 x (.8 x (.8 x
4000 + 1000) +
1000) + 1000

...

Steps and keystrokes


1.

Display

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

65

KongGuidebook.book Page 66 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


5.

Display

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

3D Graphing
Graph the 3D equation z(x,y) = (x3y N y3x) / 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
1.

Display

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 z1(x,y) = (x3y N y3x) / 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

66

Previews

KongGuidebook.book Page 67 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


3.

Display

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

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

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

Previews

67

KongGuidebook.book Page 68 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


7.

Display

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)

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

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.

68

Previews

KongGuidebook.book Page 69 Thursday, July 14, 2005 12:54 PM

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
1.

Display

Display the MODE dialog box. For Graph


mode, select DIFF EQUATIONS.
Press 3 B 6

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

69

KongGuidebook.book Page 70 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


4.

Display

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 0. The graph begins at the
initial condition and plots to the right. Then
it plots to the left.
Press 8 %

8.

The initial condition is


marked with a circle.

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 %

70

Previews

KongGuidebook.book Page 71 Thursday, July 14, 2005 12:54 PM

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 t0 value entered in the
Y= Editor or Window Editor.
Instead of entering t and y1 after pressing
2
you can move the cursor to a point on the
screen and then press .
You can use to trace curves for initial
conditions specified in the Y= Editor.
However, you cannot trace the curve for an
initial condition selected interactively.
Press 2 40 45

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
1.

Display

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 specify
the piecewise defined function.

Graph when(x<0,Lx,
5cos(x))

2 selects Graph from the Other toolbar


menu and automatically adds a space.
Press " 2 2 WHEN j c X
20b?Xb5p2XXdd

Previews

71

KongGuidebook.book Page 72 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


3.

Display

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

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

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)

72

Previews

KongGuidebook.book Page 73 Thursday, July 14, 2005 12:54 PM

Tables
Evaluate the function y=x 3N2x at each integer between M10 and 10. How
many sign changes are there, and where do they occur?
Steps and keystrokes
1.

Display

Display the MODE dialog box. For the


Graph mode, select FUNCTION.
Press 3 B 1

2.

Display and clear the Y= Editor. Then define


y1(x) = x 3 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

73

KongGuidebook.book Page 74 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


6.

Display

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
1.

Display

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

2.

Clear the Y= Editor and turn off any stat


data plots. Define y1(x) = .1x 3N2x+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


change .1x 3 to .5x3.
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

74

Previews

KongGuidebook.book Page 75 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


5.

Display

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 ("

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
1.

Display

Use O to display the Data/Matrix Editor.


Create a new list variable named TEMP.
Press 3 B 3 D D TEMP

Previews

75

KongGuidebook.book Page 76 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


2.

Display

Enter a column of numbers. Then move the


cursor up one cell (just to see that a
highlighted cells 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
6C

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.
Press B 2 p j C 1

4.

means the cell is in a


defined column.

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 dont 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.

76

Previews

KongGuidebook.book Page 77 Thursday, July 14, 2005 12:54 PM

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 MedianMedian 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
1.

Display

Display the MODE dialog box. For Graph


mode, select FUNCTION.
Press 3 B 1

2.

UseO to display the Data/Matrix Editor.


Create a new data variable named BUILD.
Press 3 D D BUILD

3.

Using the sample data below, enter the


population in column 1.
Pop. (in 1000s)
150
500
800
250
500
750
950

Bldgs > 12 stories


4
31
42
9
20
55
73

Press 150 500 800 250


500 750 950

Previews

77

KongGuidebook.book Page 78 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


4.

Display

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

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
8C
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

78

Previews

KongGuidebook.book Page 79 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


8.

Display

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
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 1s
definition.
Press twice

Previews

79

KongGuidebook.book Page 80 Thursday, July 14, 2005 12:54 PM

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
18. Return to the current session of the
Data/Matrix Editor.
Press O D
19. Enter a title for column 3. Define column 3s
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

80

Previews

KongGuidebook.book Page 81 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes

Display

20. Enter a title for column 4. Define column 4s


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 5s
header as the values predicted by the
LinReg line.
Press B C C 2 LIN j Y2
c j C1 d
22. Enter a title for column 6. Define column 6s
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

81

KongGuidebook.book Page 82 Thursday, July 14, 2005 12:54 PM

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

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
1.

Display

Use O to display the Program Editor.


Create a new program.
Press 3

82

Previews

KongGuidebook.book Page 83 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


2.

Display

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.

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

83

KongGuidebook.book Page 84 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


5.

Go to the Home screen. Enter the program


name, followed by a set of parentheses.

Display
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.
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.
Press twice

8.

Output from
other programs
may still be on
the screen.
Result of integer 5

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

84

Previews

KongGuidebook.book Page 85 Thursday, July 14, 2005 12:54 PM

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
1.

Display

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

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.

Previews

85

KongGuidebook.book Page 86 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


4.

Display

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 "

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
1.

Use O to display the Numeric Solver.

2.

Enter the equation.

Display

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
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

86

Previews

KongGuidebook.book Page 87 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


4.

Display

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
Press D D
line.

5.

Solve for the unknown variable.


To check the solutions 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.
Press

0 marks the calculated


values.

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

87

KongGuidebook.book Page 88 Thursday, July 14, 2005 12:54 PM

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
1.

Display

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 floatingpoint 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

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

88

Previews

KongGuidebook.book Page 89 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


6.

Display

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

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

Previews

89

KongGuidebook.book Page 90 Thursday, July 14, 2005 12:54 PM

Memory and Variable Management


Assign values to a variety of variable data types. Use the VAR-LINK screen
to view a list of the defined variables. Then move a variable to the user
data archive memory and explore the ways in which you can and cannot
access an archived variable. (Archived variables are locked automatically.)
Finally, unarchive the variable and delete the unused variables so that
they will not take up memory.
Steps and keystrokes
1.

Display

From the Home screen, assign variables with


the following variable types.
Expression: 5 !x1
Function:
x2+4 !f(x)
List:
{5,10} !L1
Matrix:
[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 cant
remember its name.

Press 5 p
3.

Display the VAR-LINK screen.


This example assumes that the variables
assigned above are the only ones defined.
Press 2

4.

Change the screens 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

90

Previews

KongGuidebook.book Page 91 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


5.

Display

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.

5f(2)

Press 2 d

Previews

91

KongGuidebook.book Page 92 Thursday, July 14, 2005 12:54 PM

Archiving a variable
Steps and keystrokes
1.

Display

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

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

92

Previews

KongGuidebook.book Page 93 Thursday, July 14, 2005 12:54 PM

Steps and keystrokes


7.

Display

Return to the Home screen and store a


different value to the unarchived variable.
Press "

Previews

93

KongGuidebook.book Page 94 Thursday, July 14, 2005 12:54 PM

Deleting variables
Steps and keystrokes
1.

Display

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 dont
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

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

94

Previews

KongGuidebook.book Page 95 Thursday, July 14, 2005 12:54 PM

3
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.

10

a = w+5
b = 10a
w

w
a
c

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).

Activities

95

KongGuidebook.book Page 96 Thursday, July 14, 2005 12:54 PM

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)

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
2a

x = --------------------------------------

Detailed information about using the functions in this example can be


found in Symbolic Manipulation.

96

Activities

KongGuidebook.book Page 97 Thursday, July 14, 2005 12:54 PM

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: ax2+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.

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.

6.

Complete the square by adding ((b/a)/2)2 to


both sides of the equation.

Activities

97

KongGuidebook.book Page 98 Thursday, July 14, 2005 12:54 PM

7.

Factor the result using the factor( )


function.

8.

Multiply both sides of the equation by 4a2.

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.

98

Activities

KongGuidebook.book Page 99 Thursday, July 14, 2005 12:54 PM

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.

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.

Activities

99

KongGuidebook.book Page 100 Thursday, July 14, 2005 12:54 PM

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.

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.

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:

100

Activities

KongGuidebook.book Page 101 Thursday, July 14, 2005 12:54 PM

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

2.

Select the 3D Graph mode. Then enter the


function for z1(x,y) as shown in this
example with volume v=300.

3.

Set the Window variables to:


eye= [60,90,0]
x=
[0,15,15]
y=
[0,15,15]
z=
[260,300]
ncontour= [5]

4.

Graph the function and use Trace to go to


the point close to the minimum value of the
surface area function.

Activities

101

KongGuidebook.book Page 102 Thursday, July 14, 2005 12:54 PM

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})

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.

102

Activities

KongGuidebook.book Page 103 Thursday, July 14, 2005 12:54 PM

2.

Type the following lines into the Text Editor.

C
C
C
C
C
C

: Compute the maximum value of f on the closed interval [a,b]


: assume that f is differentiable on [a,b]
: 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.

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.

Activities

103

KongGuidebook.book Page 104 Thursday, July 14, 2005 12:54 PM

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.

Decomposing a Rational Function


To examine the decomposition of the rational function
f(x)=(x3N10x2Nx+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^2N8xN17!y2(x)

5.

104

In the Y= Editor, select the thick graphing


style for y2(x).

Activities

KongGuidebook.book Page 105 Thursday, July 14, 2005 12:54 PM

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=
y=

8.

[L10,15,10]
[L100,100,10]

Draw the graph.


Note: Be sure the Graph mode is set to
Function.

Observe that the global behavior of the f(x) function is basically


represented by the quadratic quotient y2(x). The rational expression is
basically a quadratic function as x gets very large in both the positive and
negative directions.
The lower graph is y3(x)=f(x) graphed
separately using the line style.

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

105

KongGuidebook.book Page 106 Thursday, July 14, 2005 12:54 PM

Filtering Data by Categories


Each student is placed into one of eight categories depending on the
students 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)
1
2
3
4
5
6
7
8

Academic Year and Sex


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

Perform the following steps to compare the weight of high school


students to their year in school.
1.

106

Start the Data/Matrix Editor, and create a


new Data variable named students.

Activities

KongGuidebook.book Page 107 Thursday, July 14, 2005 12:54 PM

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.

5.

6.

Copy Plot 1 to Plot 2.

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)

Activities

107

KongGuidebook.book Page 108 Thursday, July 14, 2005 12:54 PM

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.

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 Newtons 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

Description

:cooltemp( )

Program name

:Prgm
:Local i

Declare local variable; exists only at


run time.

:setMode("Graph","FUNCTION") Set up the TI-89 Titanium for


function graphing.
:PlotsOff

Turn off any previous plots.

:FnOff

Turn off any previous functions.

108

Activities

KongGuidebook.book Page 109 Thursday, July 14, 2005 12:54 PM

Program Instruction

Description

:ClrDraw

Clear any items previously drawn on


graph screens.

:ClrGraph

Clear any previous graphs.

:ClrIO

Clear the TI-89 Titanium Program IO


(input/output) screen.

:L10!xmin:99!xmax:10!xscl

Set up the Window variables.

:L20!ymin:100!ymax:10!yscl
:{0}!data

Create and/or clear a list named data.

:{0}!time

Create and/or clear a list named time.

:Send{1,0}

Send a command to clear the CBL 2


unit.

:Send{1,2,1}

Set up Chan. 2 of the CBL 2 to


AutoID to record temp.

:Disp "Press ENTER to start"

Prompt the user to press .

:Disp "graphingTemperature."
:Pause

Wait until the user is ready to start.

:PtText "TEMP(C)",2,99

Label the y axis of the graph.

:PtText "T(S)",80,L5

Label the x axis of the graph.

:Send{3,1,L1,0}

Send the Trigger command to the


CBL 2; collect data in real-time.

:For i,1,99

Repeat next two instructions for 99


temperature readings.

:Get data[i]

Get a temperature from the CBL 2


and store it in a list.

:PtOn i,data[i]

Plot the temperature data on a


graph.

:EndFor
:seq(i,i,1,99,1)!time

Create a list to represent time or


data sample number.

:NewPlot 1,1,time,data,,,,4

Plot time and data using NewPlot


and the Trace tool.

:DispG

Display the graph.

Activities

109

KongGuidebook.book Page 110 Thursday, July 14, 2005 12:54 PM

Program Instruction

Description

:PtText "TEMP(C)",2,99

Re-label the axes.

: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.

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)

110

Activities

KongGuidebook.book Page 111 Thursday, July 14, 2005 12:54 PM

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.

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.

Activities

111

KongGuidebook.book Page 112 Thursday, July 14, 2005 12:54 PM

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.

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=
[L2,2,20]
y=
[ L2,2,20]
z=
[ L1,2]
ncontour= [5]

112

Activities

KongGuidebook.book Page 113 Thursday, July 14, 2005 12:54 PM

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.

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 79. Thus, the
complex zeros 1,Li, i of the polynomial x3Nx2+xN1 can be visualized with
the three points where the graph of the modulus surface touches the xy
plane.

Activities

113

KongGuidebook.book Page 114 Thursday, July 14, 2005 12:54 PM

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.

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:

114

To enter the with ( | ) operator:

Press 8 to obtain a floatingpoint result.

Activities

KongGuidebook.book Page 115 Thursday, July 14, 2005 12:54 PM

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.

Activities

115

KongGuidebook.book Page 116 Thursday, July 14, 2005 12:54 PM

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 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.

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.

116

Activities

KongGuidebook.book Page 117 Thursday, July 14, 2005 12:54 PM

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.

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.

Activities

117

KongGuidebook.book Page 118 Thursday, July 14, 2005 12:54 PM

4.

cfactor(x^3+5x,x) displays a complex

result.

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
: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)

: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

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.

118

Enter a random seed using the RandSeed


command.

Activities

KongGuidebook.book Page 119 Thursday, July 14, 2005 12:54 PM

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?
a mph
Eastward
Traveling
Current

Boat
Intended
Path

Actual 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

119

KongGuidebook.book Page 120 Thursday, July 14, 2005 12:54 PM

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])]

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.

120

Activities

KongGuidebook.book Page 121 Thursday, July 14, 2005 12:54 PM

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

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

121

KongGuidebook.book Page 122 Thursday, July 14, 2005 12:54 PM

122

Activities

KongGuidebook.book Page 123 Thursday, July 14, 2005 12:54 PM

4
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 calculators
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.
USB Port

USB unit-to-unit cable


USB Port

Two TI-89 Titanium calculators linked together

Connectivity

123

KongGuidebook.book Page 124 Thursday, July 14, 2005 12:54 PM

USB unit-to-unit
cable

Position so that the USB symbols face each other; then insert the
connector.

I/O Port

I/O unit-to-unit
cable

I/O Port

A TI-89 Titanium and a Voyage 200 linked together

124

Connectivity

KongGuidebook.book Page 125 Thursday, July 14, 2005 12:54 PM

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.

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.

Connectivity

125

KongGuidebook.book Page 126 Thursday, July 14, 2005 12:54 PM

4.

126

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.

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.

On the receiving unit, press 2 to


display the VAR-LINK screen. (The sending
unit remains on the VAR-LINK screen.)

Connectivity

KongGuidebook.book Page 127 Thursday, July 14, 2005 12:54 PM

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.
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

The variable is transmitted to the current folder


and it remains locked on the receiving unit.

Archived variable

The variable is transmitted to the current folder


and it remains archived on the receiving unit.

Connectivity

127

KongGuidebook.book Page 128 Thursday, July 14, 2005 12:54 PM

If you select:

What happens:

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

The folder and its selected contents are


transmitted. The folder remains unlocked on the
receiving unit.

Locked Folder

The folder and its selected contents are


transmitted. The folder becomes unlocked on
the receiving unit.

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 units


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.
128

Connectivity

KongGuidebook.book Page 129 Thursday, July 14, 2005 12:54 PM

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.

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.

Connectivity

129

KongGuidebook.book Page 130 Thursday, July 14, 2005 12:54 PM

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.

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.

130

Connectivity

KongGuidebook.book Page 131 Thursday, July 14, 2005 12:54 PM

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.

: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

131

KongGuidebook.book Page 132 Thursday, July 14, 2005 12:54 PM

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 devices 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.

3.

On the:

Type:

Device that will send the first


message.

1 and press .

Device that will receive the first


message.

0 and press .

Take turns typing a message and pressing to send the variable


msg to the other device.

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).

132

Connectivity

KongGuidebook.book Page 133 Thursday, July 14, 2005 12:54 PM

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 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

133

KongGuidebook.book Page 134 Thursday, July 14, 2005 12:54 PM

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 Web site at education.ti.com/downloadticonnect.
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.

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:

134

The sending unit returns to the VAR-LINK screen.


Connectivity

KongGuidebook.book Page 135 Thursday, July 14, 2005 12:54 PM

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 units 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.

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

135

KongGuidebook.book Page 136 Thursday, July 14, 2005 12:54 PM

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.
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
(Receiving unit)

Display the Home screen. Press:"

2.

Sending unit

a. Press 2 to display the VAR-LINK


screen.
b. Press Link and select 6:Send ID List.

136

Connectivity

KongGuidebook.book Page 137 Thursday, July 14, 2005 12:54 PM

Step: On the:

Do this:
The sending unit adds a copy of its unique ID
number to the collection units 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.

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

137

KongGuidebook.book Page 138 Thursday, July 14, 2005 12:54 PM

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 devices
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 site at
education.ti.com/downloadticonnect.

Link Transmission Table


To &
From (

TI-89
Titanium

TI-89
Titanium

OS
Apps
Variables

TI-89

Voyage
200

TI-92 Plus

Apps
Variables

Variables

Variables

Apps
Variables

OS
Apps
Variables

Variables

Variables

Voyage
200

Variables

Variables

OS
Apps
Variables

Apps
Variables

TI-92 Plus

Variables

Variables

Apps
Variables

OS
Apps
Variables

138

TI-89

Connectivity

KongGuidebook.book Page 139 Thursday, July 14, 2005 12:54 PM

5
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 screens 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

139

KongGuidebook.book Page 140 Thursday, July 14, 2005 12:54 PM

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

1:Archive: Resetting Archive erases all data and


programs from Flash ROM.
2:Flash Apps: Resetting Flash Apps erases all Flash
applications from Flash ROM.
3:Both: Resetting both erases all data, programs,
and Flash applications from Flash ROM.

All Memory

Resetting will delete all data, programs, and Flash


applications from RAM and Flash ROM.

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.

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.

140

Memory and Variable Management

KongGuidebook.book Page 141 Thursday, July 14, 2005 12:54 PM

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).

Expanded folder view (to right of folder name).

You can scroll for more variables and/or folders (in


bottom left corner of screen).

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

141

KongGuidebook.book Page 142 Thursday, July 14, 2005 12:54 PM

Variable Types as Listed on VAR-LINK


Type

Description

ASM

Assembly-language program

DATA

Data

EXPR

Expression (includes numeric values)

FUNC

Function

GDB

Graph database

LIST

List

MAT

Matrix

PIC

Picture of a graph

PRGM

Program

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.

Return to the current application without pasting the


highlighted name.

Displaying Information about Variables on the


Home Screen
From the Home screen, you can display information about variables
without opening the VAR-LINK screen.

142

Memory and Variable Management

KongGuidebook.book Page 143 Thursday, July 14, 2005 12:54 PM

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.

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


.

Memory and Variable Management

143

KongGuidebook.book Page 144 Thursday, July 14, 2005 12:54 PM

To select:

Do this:

A group of variables Highlight each item and press . A is


or folders
displayed to the left of each selected item. (If you
select a folder, all variables in that folder are
selected.) Use to select or deselect an item.
All folders and all
variables

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.)
By creating additional folders, you can store independent sets of userdefined 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.
144

Memory and Variable Management

KongGuidebook.book Page 145 Thursday, July 14, 2005 12:54 PM

MAIN

Variables

System variables
User-defined
a=1, b=2, c=3
f(x)=x+x+x

ALG102

Name of current folder

User-defined
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.


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.

Memory and Variable Management

145

KongGuidebook.book Page 146 Thursday, July 14, 2005 12:54 PM

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.

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

5.

Press the corresponding number or letter for that folder.

Press to save your changes and close the dialog box.

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.

146

On VAR-LINK, select the variables and/or folders.

Memory and Variable Management

KongGuidebook.book Page 147 Thursday, July 14, 2005 12:54 PM

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

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-LINKs view,
you can specify the information you want to see.

Memory and Variable Management

147

KongGuidebook.book Page 148 Thursday, July 14, 2005 12:54 PM

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.

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.

148

Memory and Variable Management

KongGuidebook.book Page 149 Thursday, July 14, 2005 12:54 PM

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.

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

149

KongGuidebook.book Page 150 Thursday, July 14, 2005 12:54 PM

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 cant
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 screens entry line.

Which Applications Can You Use?


From the following applications, you can paste a variable name to the
current cursor location.

Home screen, Y= Editor, Table Editor, or Data/Matrix Editor The


cursor must be on the entry line.

Text Editor, Window Editor, Numeric Solver, or Program Editor The


cursor can be anywhere on the screen.

You can also paste a variable name to the current cursor location in many
Flash applications.

Procedure
Starting from an application listed above:
1.

150

Position the cursor where you want to insert


the variable name.

sin(|

Memory and Variable Management

KongGuidebook.book Page 151 Thursday, July 14, 2005 12:54 PM

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 variables name, not


its contents. Use 2 , instead of
2 , to recall a variables contents.
5.

Finish typing the expression.

sin(a1)|

If you paste a variable name that is not in the current folder, the
variables 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.

Additional free RAM can improve performance times for certain types of
calculations.

Memory and Variable Management

151

KongGuidebook.book Page 152 Thursday, July 14, 2005 12:54 PM

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.

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.

152

Memory and Variable Management

KongGuidebook.book Page 153 Thursday, July 14, 2005 12:54 PM

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.

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

153

KongGuidebook.book Page 154 Thursday, July 14, 2005 12:54 PM

variable D

variable A

Sector 1

variable B

Empty
block

variable C

Sector 2

Depending on its size,


variable D is stored in
one of these locations.

Sector 3

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.
v a r ia b le A

After you unarchive


variables B and C, they
continue to take up space.

Sector 1

Sector 2

v a r ia b le D
Sector 3

Unarchived variables are marked for deletion, meaning they will be


deleted during the next garbage collection.

154

Memory and Variable Management

KongGuidebook.book Page 155 Thursday, July 14, 2005 12:54 PM

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.

The Garbage Collection Process


The garbage collection process:

Deletes unarchived variables from the user data archive.

Rearranges the remaining variables into consecutive blocks.


v a r ia b le A

Sector 1

v a r ia b le 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.

Opening a text variable in the Text Editor.

Opening a data variable, list, or matrix in the Data/Matrix Editor.

Memory and Variable Management

155

KongGuidebook.book Page 156 Thursday, July 14, 2005 12:54 PM

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 6ab.

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.

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.

156

Memory and Variable Management

A
Appendix A:
Functions and Instructions
Categorical Listing of Operations ................................................................... 158
Alphabetical Listing of Operations.................................................................. 162

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]

Draws a circle with its center at window


coordinates (x, y) and with a radius of r.

In a ZoomSqr viewing window:


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

157

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()
zeros()

288
174
195
225
254
271

cFactor()
cZeros
getDenom()
propFrac()
tCollect()

167
179
201
232
264

comDenom()
expand()
getNum()
randPoly()
tExpand()

169
193
202
238
265

Calculus

() (integrate)
arcLen()
deSolve()
ImpDif()
nInt()
taylor()

283
164
184
207
223
264

() (product)
avgRC()
fMax()
limit()
' (prime)

284
165
197
210
286

G() (sum)
d()
fMin()
nDeriv()
seq()

284
181
197
221
245

Graphics

AndPic
ClrDraw
DrawFunc
DrawPol
FnOff
Line
LineVert
PtOff
PtText
PxlHorz
PxlOn
PxlVert
RplcPic
StoPic
XorPic
ZoomDec
ZoomInt
ZoomRcl
ZoomSto

163
168
188
189
197
211
212
232
233
233
234
234
243
259
271
273
274
275
276

BldData
ClrGraph
DrawInv
DrawSlp
FnOn
LineHorz
NewPic
PtOn
PxlChg
PxlLine
pxlTest()
RclGDB
Shade
Style
ZoomBox
ZoomFit
ZoomOut
ZoomSqr
ZoomTrig

166
169
188
189
198
211
222
232
233
233
234
238
250
260
272
274
275
275
276

Circle
CyclePic
DrawParm
DrwCtour
Graph
LineTan
PtChg
ptTest()
PxlCrcl
PxlOff
PxlText
RclPic
StoGDB
Trace
ZoomData
ZoomIn
ZoomPrev
ZoomStd

168
179
189
190
205
212
232
232
233
234
234
238
259
267
273
274
275
276

Lists

+ (add)
(divide)
augment()
dim()
left()
mat44list()
min()
product()
shift()
sum()

276
278
165
186
210
218
220
231
250
260

(subtract)
(negate)
crossP()
dotP()
@list()
max()
newList()
right()
SortA

277
280
173
188
213
218
222
241
257

(multiply)
^ (power)
cumSum()
exp44list()
list44mat()
mid()
polyEval()
rotate()
SortD

278
279
178
193
213
219
230
241
257

158

Appendix A: Functions and Instructions

Math

+ (add)
(divide)
! (factorial)
G
(gradian)
, ', "
10^()
4Cylind
4DMS
4Polar
abs()
approx()
cos
cosh()
coth()
csc()
E
4ln
fPart()
impDif()
iPart()
ln()
min()
nPr()
r (radian)
real()
round()
sec()
shift()
sin()
tan()
tanh()
x

276
278
282
285
286
287
179
188
229
162
164
171
172
173
174
190
213
199
207
208
213
220
224
285
238
242
244
250
253
262
264
287

(subtract)
(negate)
() (sqr. root)
(degree)
_ (underscore)
0b, 0h
4DD
4Grad
4Rect
and
ceiling()
cos()
cot()
coth()
csch()
e^()
4logbase
gcd()
int()
isPrime()
log()
mod()
P44Rx()
R44Pq
q()
remain()
sec()
sech()
sign()
sinh()
tan()
tmpCnv()

277
280
284
285
286
289
182
162
239
162
166
172
173
173
174
190
215
199
208
209
215
220
227
237
240
243
244
251
253
263
266

(multiply)
% (percent)
^ (power)
(angle)
4 (convert)
4Bin
4Dec
4Hex
4Sphere
angle()
conj()
cosh()
cot()
csc()
cosh()
exact()
floor()
imag()
intDiv()
lcm()
max()
nCr()
P44Ry()
R44Pr()
rotate()
root()
sech()
sin()
sinh()
tanh()
@tmpCnv()

278
280
279
285
287
165
182
205
257
163
170
172
173
174
174
192
196
206
208
210
218
221
227
237
241
241
244
252
253
263
266

Matrices

+ (add)
(divide)
... (dot subt.)
.^ (dot power)
colDim()
cumSum()
diag()
eigVc()
identity()
mat44data
mean()
mRow()
norm()
randMat()
rowDim()
rref()
stdDevPop()
T
x

276
278
279
280
169
178
186
191
206
217
218
220
224
238
242
243
258
261
287

(subtract)
(negate)
. (dot mult.)
^ (power)
colNorm()
data44mat
dim()
eigVl()
list44mat()
mat44list()
median()
mRowAdd()
product()
ref()
rowNorm()
simult()
subMat()
unitV()

277
280
280
279
169
181
186
191
213
218
218
220
231
239
242
252
260
268

(multiply)
.+ (dot add)
. / (dot divide)
augment()
crossP()
det()
dotP()
Fill
LU
max()
min()
newMat()
QR
rowAdd()
rowSwap()
stdDev()
sum()
variance()

278
279
280
165
173
185
188
196
217
218
220
222
235
242
243
258
260
269

Appendix A: Functions and Instructions

159

Programming

# (indirection)
and
checkTmr()
ClrErr
ClrIO
CustmOff
Cycle
DelFold
Dialog
DispHome
Else
EndDlog
EndIf
EndTBar
entry()
For
Get
getDate()
getFold()
getTime()
getTmZn()
Goto
InputStr
Lbl
isVar()
Lock
NewFold
or
PassErr
Prgm
Request
Send
setDate()
setGraph()
setTime()
startTmr()
Style
Text
Title
Unarchiv
While

160

281
282
284
162
167
168
169
178
179
183
186
187
191
191
191
192
192
198
200
200
201
202
203
204
207
209
209
214
222
226
229
231
240
244
245
246
248
257
260
265
265
268
270

>
! (store)

ans()
ClockOff
ClrGraph
ClrTable
CustmOn
dayOfWk()
DelType
Disp
DispTbl
ElseIf
EndFor
EndLoop
EndTry
Exec
format()
GetCalc
getDtFmt()
getKey()
getTmFmt()
getType()
If
isClkOn()
isArchiv()
left()
Loop
NewProb
Output
Pause
Prompt
Return
SendCalc
setDtFmt()
setMode()
setTmFmt()
setUnits()
switch()
Then
Toolbar
Unlock
xor

281
282
288
164
168
169
169
178
181
184
187
187
191
191
192
192
193
198
200
201
201
202
203
206
208
208
210
216
223
226
229
231
240
244
245
247
248
249
261
265
267
268
270

<

(comment)

Archive
ClockOn
ClrHome
CopyVar
Custom
Define
DelVar
DispG
DropDown
EndCustm
EndFunc
EndPrgm
EndWhile
Exit
Func
getConfg()
getDtStr()
getMode()
getTmStr()
getUnits()
Input
Item
isLocked ()
Local
MoveVar
not
part()
PopUp
Rename
right()
SendChat
setFold()
setTable()
setTmZn()
Stop
Table
timeCnv()
Try
when()

281
282
288
164
168
169
170
178
183
184
187
189
191
191
192
192
193
199
200
201
202
202
204
207
209
209
214
220
224
227
230
240
241
245
246
248
249
259
262
265
267
269

Appendix A: Functions and Instructions

Statistics

! (factorial)
cumSum()
LnReg
median()
NewData
OneVar
PowerReg
rand()
ShowStat
SortD
TwoVar

282
178
214
218
221
225
231
237
251
257
268

BldData
ExpReg
Logistic
MedMed
NewPlot
PlotsOff
QuadReg
randNorm()
SinReg
stdDev()
variance()

166
195
216
219
223
229
235
238
254
258
269

CubicReg
LinReg
mean()
nCr()
nPr()
PlotsOn
QuartReg
RandSeed
SortA
stdDevPop()

177
212
218
221
224
229
236
238
257
258

Strings

& (append)
dim()
inString()
ord()
shift()

283
186
208
226
250

# (indirection)
expr()
left()
right()
string()

284
194
210
241
259

char()
format()
mid()
rotate()

167
198
219
241

Appendix A: Functions and Instructions

161

Alphabetical Listing of Operations


Operations whose names are not alphabetic (such as +, !, and >) are listed at the end
of this appendix, starting on page 276. 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) matrix

abs({p/2,p/3})

p
2

p
}
3

abs(23i)

Returns the absolute value of the argument.

abs(z)

If the argument is a complex number, returns the


numbers modulus.

abs(x+yi)

13
|z|
+y 2

x2

Note: All undefined variables are treated as real


variables.

and

MATH/Test and MATH/Base menus


Boolean expression1 and expression2 Boolean
expression
Boolean list1 and list2 Boolean list
Boolean matrix1 and matrix2 Boolean
matrix

x3 and x4

x4

{x3,x0} and {x4,x2}


{x 4 x 2}

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


0h7AC36 and 0h3D5F
0h2C16
and operation. Internally, both integers are
Important: Zero, not the letter O.
converted to signed, 32-bit binary numbers.
When corresponding bits are compared, the result
In Bin base mode:
is 1 if both bits are 1; otherwise, the result is 0.
The returned value represents the bit results, and 0b100101 and 0b100
0b100
is displayed according to the Base mode.
You can enter the integers in any number base.
For a binary or hexadecimal entry, you must use
the 0b or 0h prefix, respectively. Without a prefix,
integers are treated as decimal (base 10).
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.

162

In Dec base mode:


37 and 0b100

Note: A binary entry can have up to 32 digits


(not counting the 0b prefix). A hexadecimal
entry can have up to 8 digits.

Appendix A: Functions and Instructions

AndPic

CATALOG

AndPic picVar[, row, column]

Displays the Graph screen and logically ANDS


the picture stored in picVar and the current graph
screen at pixel coordinates (row, column).
picVar must be a picture type.

Default coordinates are (0,0), which is the upper


left corner of the screen.

In function graphing mode and Y= Editor:


y1(x) = cos(x) C
@
2 Style = 3:Square
Zoom = 7:ZoomTrig
= 2:Save Copy As...
Type = Picture, Variable = PIC1

y2(x) = sin(x)
2 Style = 3:Square

y1 = no checkmark (F4 to deselect)


Zoom = 7:ZoomTrig

@ "
AndPic PIC1

angle()

Done

MATH/Complex menu

angle(expression1)

expression

Returns the angle of expression1, interpreting


expression1 as a complex number.
Note: All undefined variables are treated as real
variables.

In Degree angle mode:


angle(0+2i)

90

In Gradian angle mode:


angle(0+3i)

100

In Radian angle mode:


angle(1+i)

p
4

angle(z)
angle(x+ iy)

angle(list1) list
angle(matrix1) matrix

Returns a list or matrix of angles of the elements


in list1 or matrix1, interpreting each element as a
complex number that represents a twodimensional rectangular coordinate point.

Appendix A: Functions and Instructions

In Radian angle mode:


angle({1+2i,3+0i,04i})

163

ans()

2 key
ans() value
ans(integer) value

To use ans() to generate the Fibonacci


sequence on the Home screen, press:

Returns a previous answer from the Home screen


history area.
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()

1
1
22A02

1
1
2
3
5

MATH/Algebra menu

approx(expression)

value

approx(p)

3.141...

Returns the evaluation of expression as a decimal


value, when possible, regardless of the current
Exact/Approx mode.
This is equivalent to entering expression and
pressing on the Home screen.
approx(list1) list
approx(matrix1) matrix

approx({sin(p),cos(p)})
{0.

Returns a list or matrix where each element has


been evaluated to a decimal value, when
possible.

Archive

1.}

approx([(2),(3)])
[1.414... 1.732...]

CATALOG

Archive var1 [, var2] [, var3]

Moves the specified variables from RAM to the


user data archive memory.

10!arctest
Archive arctest
5arctest
15!arctest

10
Done
50

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.

arcLen()

N
Unarchiv arctest
15!arctest

MATH/Calculus menu

arcLen(expression1,var,start,end)

expression

arcLen(cos(x),x,0,p)

Returns the arc length of expression1 from start to


end with respect to variable var.
Regardless of the graphing mode, arc length is
calculated as an integral assuming a function
mode definition.
arcLen(list1,var,start,end)

list

Returns a list of the arc lengths of each element


of list1 from start to end with respect to var.

164

Done
15

3.820...

arcLen(f(x),x,a,b)
b

(dx(f(x)))+1 dx

arcLen({sin(x),cos(x)},x,0,p)
{3.820... 3.820...}

Appendix A: Functions and Instructions

augment() MATH/Matrix menu


augment(list1, list2)

list

Returns a new list that is list2 appended to the


end of list1.
augment(matrix1, matrix2)
augment(matrix1; matrix2)

matrix
matrix

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.

avgRC()

augment({1,3,2},{5,4})
{1 3 2 5 4}

[6]

[5;6]!M2

1 2 5

[3 4 6]
[5 6]

augment(M1,M2)
[5,6]!M2

1 2
3 4
5 6

augment(M1;M2)

CATALOG

avgRC(expression1, var [, h])

expression

avgRC(f(x),x,h)

Returns the forward-difference quotient (average


rate of change).
expression1 can be a user-defined function name

(see Func).
h is the step value. If h is omitted, it defaults to
0.001.

Note that the similar function nDeriv() uses the


central-difference quotient.

f(x+h) - f(x)
h

avgRC(sin(x),x,h)|x=2
sin(h+2) - sin(2)
h
avgRC(x^2x+2,x)

2.(x - .4995)

avgRC(x^2x+2,x,.1)
avgRC(x^2x+2,x,3)

4Bin

1 2

[3 4]

[1,2;3,4]!M1

2.(x - .45)
2(x+1)

MATH/Base menu
integer1 4Bin integer

Converts integer1 to a binary number. Binary or


hexadecimal numbers always have a 0b or 0h
prefix, respectively.

256 4Bin
0h1F 4Bin

0b100000000
0b11111

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

165

BldData

CATALOG

In function graphing mode and Radian angle


mode:

BldData [dataVar]

Creates data variable dataVar based on the


information used to plot the current graph.
BldData is valid in all graphing modes.

8sin(x)!y1(x)
2sin(x)!y2(x)
ZoomStd

If dataVar is omitted, the data is stored in the


system variable sysData.

Done
Done

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) list
ceiling(matrix1) matrix

Returns a list or matrix of the ceiling of each


element.

166

ceiling({3.1,1,2.5})

{3. 1 3.}

ceiling([0,3.2i;1.3,4])
0 3.i
[2. 4 ]

Appendix A: Functions and Instructions

cFactor()

MATH/Algebra/Complex menu

cFactor(expression1[, var]) expression


cFactor(list1[,var]) list
cFactor(matrix1[,var]) matrix
cFactor(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 even if this introduces new


non-real numbers. This alternative is appropriate
if you want factorization with respect to more
than one variable.
cFactor(expression1,var) returns expression1

factored with respect to variable var.


expression1 is factored as much as possible toward
factors that are linear in var, with perhaps nonreal constants, even if it introduces irrational
constants or subexpressions that are irrational in
other variables.
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.
Note: See also factor().

char()

cFactor(a^3x^2+ax^2+a^3+a)
a(a + i)(a + i)(x + i)(x + i)
cFactor(x^2+4/9)
(3x + 2i)(3x + 2 i)
9
cFactor(x^2+3)

x + 3

cFactor(x^2+a)

x + a

cFactor(a^3x^2+ax^2+a^3+a,x)
a(a + 1)(x + i)(x + i)
cFactor(x^2+3,x)
(x + 3 i)(x + 3 i)
cFactor(x^2+a,x)
(x + ai)(x + a i)

cFactor(x^5+4x^4+5x^36x3)
x 5 + 4x 4 + 5x 3 6x3
cFactor(ans(1),x)
(x .965)(x +.612)(x + 2.13)
(x + 1.11 1.07i)
(x + 1.11 + 1.07i)

MATH/String menu
char(integer)

character

Returns a character string containing the


character numbered integer from the
TI-89 Titanium/Voyage 200 character set. See
Appendix B for a complete listing of character
codes. The valid range for integer is 0255.

checkTmr()

char(38)

"&"

char(65)

"A"

CATALOG

checkTmr(starttime) integer

Returns an integer representing the number of


seconds that have elapsed since a timer was
started. starttime is an integer returned from the
startTmr() function.
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.
Note: See also startTmr() and timeCnv().

Appendix A: Functions and Instructions

startTmr()
checkTmr(148083315)

148083315
34

startTmr()!Timer1

startTmr()!Timer2

checkTmr(Timer1)!Timer1Value

checkTmr(Timer2)!Timer2Value

167

Circle

CATALOG

In a ZoomSqr viewing window:

Circle x, y, r [, drawMode]

ZoomSqr:Circle 1,2,3

Draws a circle with its center at window


coordinates (x, y) and with a radius of r.
x, y, and r must be real values.

If drawMode = 1, draws the circle (default).


If drawMode = 0, turns off the circle.
If drawMode = -1, inverts pixels along the circle.
Note: Regraphing erases all drawn items. See
also PxlCrcl.

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
Program listing:

ClrErr

Clears the error status. It sets errornum to zero


and clears the internal error context variables.
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.
Note: See also PassErr and Try.

168

:clearerr()
:Prgm
:PlotsOff:FnOff:ZoomStd
:For i,0,238
:@x i+xmin! xcord
: Try
: PtOn xcord,ln(xcord)
: Else
: If errornum=800 or
errornum=260 Then
:
ClrErr clear the error
: Else
:
PassErr pass on any other
error
: EndIf
: EndTry
:EndFor
:EndPrgm

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])

Returns the number of columns contained in


matrix.
Note: See also rowDim().

colNorm() MATH/Matrix/Norms menu


colNorm(matrix)

expression

Returns the maximum of the sums of the absolute


values of the elements in the columns in matrix.

[1, 2,3;4,5, 6]! mat


colNorm(mat)

1 2

[4 5 6]

Note: Undefined matrix elements are not


allowed. See also rowNorm().

comDenom() MATH/Algebra menu


comDenom(expression1[,var]) expression
comDenom(list1[,var]) list
comDenom(matrix1[,var]) matrix

comDenom((y^2+y)/(x+1)^2+y^2+y)

comDenom(expression1) returns a reduced ratio of

a fully expanded numerator over a fully expanded


denominator.

Appendix A: Functions and Instructions

169

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(expression1,var) returns a reduced
ratio of an unexpanded numerator over an
unexpanded denominator. Such results usually save
even more time, memory, and screen space. Such
partially factored results also make subsequent
operations on the result much faster and much less
likely to exhaust memory.

comDenom(exprn,abc)!comden
(exprn)

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)

Done

comden((y^2+y)/(x+1)^2+y^2+y)

Hint: Enter this comden() function definition and


routinely try it as an alternative to comDenom()
and factor().

conj()

MATH/Complex menu
conj(expression1) expression
conj(list1) list
conj(matrix1) matrix

conj(1+2i)

1 2 i

conj([2,1 3i; i, 7])

Returns the complex conjugate of the argument.


Note: All undefined variables +are treated as real
variables.

[i2

1+3 i
7

conj(z)
conj(x+iy)

CopyVar

CATALOG

CopyVar var1, var2

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.

170

z
x + i y

x+y! a
10! x
CopyVar a,b
a! c
DelVar x
b
c

x+y
10
Done
y + 10
Done
x+y
y + 10

Appendix A: Functions and Instructions

cos()

2 X key
cos(expression1) expression
cos(list1) list

In Degree angle mode:

cos(expression1) returns the cosine of the

cos((p/4) )

2
2

cos(45)

2
2

argument as an expression.
cos(list1) returns a list of the cosines of all

elements in list1.
Note: The argument is interpreted as a degree,
gradian or radian angle, according to the current
G
angle mode setting. You can use , o r to
override the angle mode temporarily.

cos({0,60,90})

{1

1/2

0}

2
2

0}

In Gradian angle mode:


cos({0,50,100})

{1

In Radian angle mode:

cos(squareMatrix1)

squareMatrix

cos(p/4)

2
2

cos(45)

2
2

In Radian angle mode:

Returns the matrix cosine of squareMatrix1. This is


not the same as calculating the cosine of each
element.
When a scalar function f(A) operates on
squareMatrix1 (A), the result is calculated by the
algorithm:

cos([1,5,3;4,2,1;6,2,1])

.212
.160
.248

.205
.121
.259
.037
.090 .218

1. Compute the eigenvalues (l i) and eigenvectors


(Vi) of A.
squareMatrix1 must be diagonalizable. Also, it

cannot have symbolic variables that have not


been assigned a value.
2. Form the matrices:

l1 0
0 l2
B= 0 0

0 0

0
0
0 and X = [V1,V2, ,Vn]
ln

3. Then A = X B X and f(A) = X f(B) X. For


example, cos(A) = X cos(B) X where:
0
cos(1)

0
cos(2)

cos (B) =
0
0

0
0

cos(n)

All computations are performed using floatingpoint arithmetic.

Appendix A: Functions and Instructions

171

cos ()

R key

cos (expression1) expression


cos (list1) list

In Degree angle mode:

cos (expression1) returns the angle whose cosine

is expression1 as an expression.

In Gradian angle mode:

cos (list1) returns a list of the inverse cosines of

cos (0)

each element of list1.


Note: The result is returned as a degree, gradian
or radian angle, according to the current angle
mode setting.

cos(squareMatrix1)

squareMatrix

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().
squareMatrix1 must be diagonalizable. The result

always contains floating-point numbers.

cosh()

cos (1)

100

In Radian angle mode:


cos ({0,.2,.5})
p

{2 1.369... 1.047...}

In Radian angle mode and Rectangular complex


format mode:
cos([1,5,3;4,2,1;6,2,1])
])

1.734+.064i 1.490+2.105i

.725+1.515i .623+.778i
2.083+2.632i 1.790 1.271i

MATH/Hyperbolic menu

cosh(expression1) expression
cosh(list1) list

cosh(1.2)

cosh (expression1) returns the hyperbolic cosine

cosh({0,1.2})

1.810...
{1

1.810...}

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().
squareMatrix1 must be diagonalizable. The result

cosh([1,5,3;4,2,1;6,2,1])

421.255
327.635
226.297

253.909
255.301
216.623

216.905
202.958
167.628

always contains floating-point numbers.

cosh ()

MATH/Hyperbolic menu

cosh (expression1) expression


cosh (list1) list

cosh (1)

cosh (expression1) returns the inverse hyperbolic


cosine of the argument as an expression.

cosh ({1,2.1,3})
{0 1.372... cosh (3)}

cosh (list1) returns a list of the inverse


hyperbolic cosines of each element of list1.
cosh(squareMatrix1)

squareMatrix

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().
squareMatrix1 must be diagonalizable. The result

In Radian angle mode and Rectangular complex


format mode:
cosh([1,5,3;4,2,1;6,2,1])

2.525+1.734i .009 1.490i


.486.725i 1.662+.623i
.322 2.083i 1.267+1.790i

always contains floating-point numbers.

172

Appendix A: Functions and Instructions

cot()

MATH/Trig menu
cot(expression1) expression
cot(list1) list

Returns the cotangent of expression1 or returns a


list of the cotangents of all elements in list1.
Note: The result is returned as a degree, gradian
or radian angle, according to the current angle
mode setting.

In Degree angle mode:


cot(45)

In Gradian angle mode:


cot(50)

In Radian angle mode:


cot({1,2.1,3})
1
1
L.584
{
tan(3)}
tan(1)

cot L1()

MATH/Trig menu
cotL1(expression1) expression
cot L1(list1) list

Returns the angle whose cotangent is


expression1 or returns a list containing the
inverse cotangents of each element of list1.
Note: The result is returned as a degree, gradian
or radian angle, according to the current angle
mode setting.

coth()

In Degree angle mode:


cotL1(1)

45

In Gradian angle mode:


cotL1(1)

50

In Radian angle mode:


p
4

cot L1(1)

MATH/Hyperbolic menu
coth(expression1) expression
cot(list1) list

Returns the hyperbolic cotangent of expression1


or returns a list of the hyperbolic cotangents of all
elements of list1.

cothL1()

1.199

coth({1,3.2})

1
{tanh(1) 1.003 }

MATH/Hyperbolic menu

cothL1(expression1) expression
cothL1(list1) list

Returns the inverse hyperbolic cotangent of


expression1 or returns a list containing the
inverse hyperbolic cotangents of each element of
list1.

crossP()

coth(1.2)

cothL1(3.5)

.293

cothL1({L2,2.1,6})
{

Lln(3) .518 ln(7/5)


}
2
2

MATH/Matrix/Vector ops menu

crossP(list1, list2)

list

Returns the cross product of list1 and list2 as a list.


list1 and list2 must have equal dimension, and the

dimension must be either 2 or 3.


crossP(vector1, vector2)

vector

Returns a row or column vector (depending on


the arguments) that is the cross product of vector1
and vector2.

crossP({a1,b1},{a2,b2})
{0 0 a1 b2 a2 b1}
crossP({0.1,2.2, 5},{1,.5,0})
{ 2.5 5. 2.25}
crossP([1,2,3],[4,5,6])
[ 3 6 3]
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

173

csc()

MATH/Trig menu
csc(expression1) expression
csc(list1) list

In Degree angle mode:

Returns the cosecant of expression1 or returns a


list containing the cosecants of all elements in
list1.

csc(45)

In Gradian angle mode:


csc(50)

In Radian angle mode:


csc({1,p/2,p/3})
2 3
1
{ sin(1) 1 3 }

cscL1()

MATH/Trig menu
csc -1(expression1) expression
csc -1(list1) list

In Degree angle mode:

Returns the angle whose cosecant is expression1


or returns a list containing the inverse cosecants
of each element of list1.
Note: The result is returned as a degree, gradian
or radian angle, according to the current angle
mode setting.

cscL1(1)

90

In Gradian angle mode:


cscL1(1)

100

In Radian angle mode:


cscL1({1,4,6})
p
L1
L1
{ 2 sin (1/4) sin (1/6) }

csch()

MATH/Hyperbolic menu
csch(expression1) expression
csch(list1) list

Returns the hyperbolic cosecant of expression1 or


returns a list of the hyperbolic cosecants of all
elements of list1.

cschL1()

csch({1,2.1,4})
1
1
{ sinh(1) .248 sinh(4)}

MATH/Hyperbolic menu

cschL1(expression1) expression
cschL1(list1) list

csch L1(1)

Returns the inverse hyperbolic cosecant of


expression1 or returns a list containing the
inverse hyperbolic cosecants of each element of
list1.

cSolve()

1
sinh(3)

csch(3)

sinh-1(1)

cschL1({1,2.1,3})
{sinhL1(1) .459 sinhL1(1/3)}

MATH/Algebra/Complex menu

cSolve(equation, var)

Boolean expression

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.

cSolve(x^3= 1,x)
solve(x^3= 1,x)

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.

174

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

Display Digits mode in Fix 2:

cSolve() starts with exact symbolic methods.


Except in EXACT mode, cSolve() also uses
iterative approximate complex polynomial
factoring, if necessary.

exact(cSolve(x^5+4x^4+5x
^36x3=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.
You should also use var_ for any other variables
in equation that might have unreal values.
Otherwise, you may receive unexpected results.

z is treated as real:
cSolve(conj(z)=1+ i,z)
z=1+ i
z_ is treated as complex:
cSolve(conj(z_)=1+ i,z_)
z_=1 i

cSolve(equation1 and equation2 [and ],


{varOrGuess1, varOrGuess2 [, ]})
Boolean expression

Returns candidate complex solutions to the


simultaneous algebraic equations, where each
varOrGuess specifies a variable that you want to
solve for.
Optionally, you can specify an initial guess for a
variable. Each varOrGuess must have the form:
variable

or
variable = real or non-real number

For example, x is valid and so is x=3+i.


If all of the equations are polynomials and if you
do NOT specify any initial guesses, cSolve() uses
the lexical Grbner/Buchberger elimination
method to attempt to determine all complex
solutions.

Note: The following examples use an


underscore ( ) so that the variables will be
treated as complex.

Complex solutions can include both real and nonreal solutions, as in the example to the right.

cSolve(u_v_u_=v_ and
v_^2=u_,{u_,v_})
u_=1/2 +
or u_=1/2

Appendix A: Functions and Instructions

2
3

i and v_=1/2

i and v_=1/2 +

i
2
or u_=0 and v_=0

175

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_})
u_=
or

( 14c_+1)2
and v_= 14c_+1
2
4
( 14c_1)
2
or u_=0 and v_=0

u_=

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.
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.

176

and v_=

cSolve(u_v_u_=v_ and
v_^2=u_,{u_,v_,w_})
3

u_=1/2 +

i and v_=1/2

i
2
and w_=@1

or
u_=1/2

i and v_=1/2 +

i
2
and w_=@1
or u_=0 and v_=0 and w_=@1
2

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_})

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.891i and
z_=1.588 + 1.540i

u_=

e w_
2

+1/2i and v_=

e w_ i
2

Appendix A: Functions and Instructions

CubicReg

MATH/Statistics/Regressions menu

CubicReg list1, list2[, [list3] [, list4, list5]]

Calculates the cubic polynomial regression and


updates all the statistics variables.
All the lists must have equal dimensions except
for list5.

In function graphing mode.


{0,1,2,3}! L1
{0,2,3,4}! L2
CubicReg L1,L2
ShowStat

{0 1 2 3}
{0 2 3 4}
Done

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 c1c99 (columns in the last data variable
shown in the Data/Matrix Editor). list5 does not
have to be a variable name and cannot be c1c99
.

Appendix A: Functions and Instructions

regeq(x)"y1(x)
NewPlot 1,1,L1,L2

Done
Done

177

cumSum()

MATH/List menu

cumSum(list1)

list

cumSum({1,2,3,4})

Returns a list of the cumulative sums of the


elements in list1, starting at element 1.
cumSum(matrix1)

matrix

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.

CustmOff

{1 3 6 10}

1
3
5
1
4
9

[1,2;3,4;5,6]! m1
cumSum(m1)

2
4
6
2
6
12

CATALOG

See Custom program listing example.

CustmOff

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

See Custom program listing example.

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
Program listing:

Custom

block
EndCustm

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.
block can be either a single statement or a series

of statements separated with the : character.


Note: 2 acts as a toggle. The first
instance invokes the menu, and the second
instance removes the menu. The menu is removed
also when you change applications.

178

:Test()
:Prgm
:Custom
:Title
:Item
:Item
:Item
:Title
:Item
:Item
:Title
:EndCustm
:EndPrgm

"Lists"
"List1"
"Scores"
"L3"
"Fractions"
"f(x)"
"h(x)"
"Graph"

Appendix A: Functions and Instructions

Cycle

CATALOG
Program listing:

Cycle

Transfers program control immediately to the


next iteration of the current loop (For, While, or
Loop).
Cycle is not allowed outside the three looping
structures (For, While, or Loop).

: Sum the integers from 1 to


100 skipping 50.
:0! temp
:For i,1,100,1
:If i=50
:Cycle
:temp+i! temp
:EndFor
:Disp temp
Contents of temp after execution:5000

CyclePic

CATALOG

CyclePic picNameString, n [, [wait] , [cycles],

[direction]]

1. Save three pics named pic1, pic2, and pic3.

2. Enter: CyclePic "pic",3,.5,4,1


Displays all the PIC variables specified and at the
specified interval. The user has optional control 3. The three pictures (3) will be displayed
over the time between pictures, the number of
automaticallyone-half second (.5) between
times to cycle through the pictures, and the
pictures, for four cycles (4), and forward and
direction to go, circular or forward and
backwards (1).
backwards.
direction is 1 for circular or 1 for forward and

backwards. Default = 1.

4Cylind

MATH/Matrix/Vector ops menu


[2,2,3] 4Cylind

vector 4Cylind

[2 2 4 3]

Displays the row or column vector in cylindrical


form [rq, z].
vector must have exactly three elements. It can be
either a row or a column.

cZeros()

MATH/Algebra/Complex menu

cZeros(expression, var)

list

Returns a list of candidate real and non-real


values of var that make expression=0. cZeros()
does this by computing
exp8
8list(cSolve(expression=0,var),var).
Otherwise, cZeros() is similar to zeros().

Display Digits mode in Fix 3:


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.
You should also use var_ for any other variables
in expression that might have unreal values.
Otherwise, you may receive unexpected results.

z is treated as real:
cZeros(conj(z)1i,z)
{1+i}

z_ is treated as complex:
cZeros(conj(z_)1i,z_)
{1i}

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

179

Optionally, you can specify an initial guess for a


variable. Each varOrGuess must have the form:
variable

or
variable = real or non-real number

For example, x is valid and so is x=3+i.


If all of the expressions are polynomials and you
do NOT specify any initial guesses, cZeros() uses
the lexical Grbner/Buchberger elimination
method to attempt to determine all complex
zeros.

Note: The following examples use an


underscore _ ( ) so that the variables will
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 2 i
1/2 + 2 i
0
3

1/2 i
2

0
3

1/2 +

Extract row 2:
ans(1)[2]

1/2

Simultaneous polynomials can have extra


variables that have no values, but represent given
numeric values that could be substituted later.

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.
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.

180

1/2

cZeros({u_v_u_(c_v_),
v_^2+u_},{u_,v_})

(
(

1 4c_+1)
4

1 4c_ 1)
4
0

1 4c_+1
2
( 1 4c_ 1)
2

cZeros({u_v_u_v_,v_^2+u_},
{u_,v_,w_})

1/2 2 i
1/2 + 2 i
0
3

1/2 +
1/2
0

2
3

@1
@1
@1

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_})

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_})

e
2

w_

+1/2i

[.494

e w_ i
2

.703]

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.

d()

cZeros({e^(z_)w_,w_z_^2},
{w_,z_=1+ i})

[.149+4.89i 1.588+1.540i]

2 = key or MATH/Calculus menu


d (expression1, var [,order]) expression
d (list1,var [,order]) list
d (matrix1,var [,order]) matrix

Returns the first derivative of expression1 with


respect to variable var. expression1 can be a list or
a matrix.
order, if included, must be an integer. If the order
is less than zero, the result will be an antiderivative.

d(f(x) g(x),x)
d
d
dx(f(x)) g(x) + dx(g(x)) f(x)

d(d(x^2 y^3,x),y)

6 y x
x
3

d(x^2,x, 1)
d({x^2,x^3,x^4},x)
{2 x

d() does not follow the normal evaluation

3 x 4 x }

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 nonvariable.

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.

data44mat

CATALOG/MATH/List menu

data44mat 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

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.
Note: May not give accurate results for years

Appendix A: Functions and Instructions

dayOfWk(1948,9,6)

Integer values:
1 = Sunday
2 = Monday

181

prior to 1583 (pre-Gregorian calendar).

3 = Tuesday

Enter the year as a four-digit integer. The month


and day can be either one- or two-digit integers.

4 = Wednesday
5 = Thursday
6 = Friday
7 = Saturday

4DD

MATH/Angle menu
number 4DD value
list1 4DD list
matrix1 4DD matrix

In Degree angle mode:


1.5 4DD

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" 4DD

1.5
45.370...

{45 22'14.3",60 0'0"} 4DD


{45.370... 60}

In Gradian angle mode:


14DD

(9/10)

In Radian angle mode:


1.5 4DD

4Dec

85.9

MATH/Base menu
integer1 4Dec integer

Converts integer1 to a decimal (base 10) number.


A binary or hexadecimal entry must always have
a 0b or 0h prefix, respectively.

0b10011 4Dec

19

0h1F 4Dec

31

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.

182

Appendix A: Functions and Instructions

Define

CATALOG

Define funcName(arg1Name, arg2Name, ...) =

expression

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.
funcName cannot be the name of a system

variable or built-in function.


The argument names are placeholders; you
should not use those same names as arguments
when you use the function.
Note: This form of Define is equivalent to
executing the expression:
expression!funcName(arg1Name,arg2Name).
This command also can be used to define simple
variables; for example, Define a=3.
Define funcName(arg1Name, arg2Name, ...) = Func

block
EndFunc

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.

Define g(x,y)=2x 3y
g(1,2)
1! a:2! b:g(a,b)

Done
4
4

Define h(x)=when(x<2,2x-3, 2x+3)

Done
9
5

h( 3)
h(4)
Define eigenvl(a)=
cZeros(det(identity(dim(a)
[1])-x a),x)

Done

eigenvl([ 1,2;4,3])
{2 113 - 1 (2 113 + 1)}
Define g(x,y)=Func:If x>y Then
:Return x:Else:Return y:EndIf
:EndFunc

Done
3

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

Creates progName as a program or subprogram,


but cannot return a result using Return. Can
execute a block of multiple statements.
block can be either a single statement or a series

of statements separated with the : character.

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
Done
listinpt()

Enter name of list

block also can include expressions and

instructions (such as If, Then, Else, and For)


without restrictions.
Note: It is usually easier to author and edit a
program block in the Program Editor rather than
on the entry line.

DelFold

CATALOG

DelFold folderName1[, folderName2] [, folderName3] ...

Deletes user-defined folders with the names


folderName1, folderName2, etc. An error message is
displayed if the folders contain any variables.

NewFold games
(creates the folder games)

Done

DelFold games

Done

(deletes the folder games)

Note: You cannot delete the main folder.

Appendix A: Functions and Instructions

183

DelType
Deltype LIST

DelType var_type

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.

DelVar

CATALOG
2! a
(a+2)^2
DelVar a
(a+2)^2

DelVar var1[, var2] [, var3] ...

Deletes the specified variables from memory.

deSolve()

2
16
Done
(a + 2)

MATH/Calculus menu

Note: To type a prime symbol ( ' ), press


2 .

deSolve(1stOr2ndOrderOde, independentVar,
dependentVar) a general solution

Returns an equation that explicitly or implicitly


specifies a general solution to the 1st- or 2ndorder ordinary differential equation (ODE). In the
ODE:
Use a prime symbol ( ' , press 2 ) to
denote the 1st derivative of the dependent
variable with respect to the independent
variable.

deSolve(y''+2y'+y=x^2,x,y)
y=(@1x+@2)e x+x4x+6
right(ans(1))!temp
(@1x+@2)e x+x4x+6

d(temp,x,2)+2d(temp,x)+tempx^2

DelVar temp

Use two prime symbols to denote the


corresponding second derivative.

0
Done

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))^2x,x,y)
tan(y)=

When comparing your results with textbook or


solve(ans(1),y)
manual solutions, be aware that different
x 2 + 2i@ 3
methods introduce arbitrary constants at different
y=tan
points in the calculation, which may produce
2
different general solutions.

x
+@3
2

)+@n1p

ans(1)|@3=c1 and @n1=0

(x

y=tan

sin(y)=(ye ^(x)+cos(y))y'!ode
sin(y)=(e xy+cos(y))y'

deSolve(1stOrderOde and initialCondition,


independentVar, dependentVar)
a particular solution

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

184

x +2(
+2 (c 1)
2

deSolve(ode and y(0)=0,x,y)!soln

(2sin(y)+y)
=(
(ex1)
1)
sin(y)
1) exxsin(y)
2

Appendix A: Functions and Instructions

the general solution.

soln|x=0 and y=0

initialCondition is an equation of the form:

d(right(eq)left(eq),x)/
(d(left(eq)right(eq),y))

dependentVar (initialIndependentValue) =
initialDependentValue

true

!impdif(eq,x,y)
Done

The initialIndependentValue and initialDependentValue


can be variables such as x0 and y0 that have no
ode|y'=impdif(soln,x,y)
stored values. Implicit differentiation can help
verify implicit solutions.

true

DelVar ode,soln
deSolve(2ndOrderOde and initialCondition1 and
initialCondition2, independentVar,
dependentVar) a particular solution

Returns a particular solution that satisfies


2ndOrderOde and has a specified value of the
dependent variable and its first derivative at one
point.

Done

deSolve(y''=y^(1/2) and y(0)=0 and


y'(0)=0,t,y)
2y 3/4
=t
3
solve(ans(1),y)
y=

22/3(3t)4/3
and t0
4

For initialCondition1, use the form:


dependentVar (initialIndependentValue) =
initialDependentValue

For initialCondition2, use the form:


dependentVar' (initialIndependentValue) =
initial1stDerivativeValue
deSolve(2ndOrderOde and boundaryCondition1 and
boundaryCondition2, independentVar,
dependentVar) a particular solution

deSolve(w''2w'/x+(9+2/x^2)w=
xe ^(x) and w(p/6)=0 and
w(p/3)=0,x,w)
p

Returns a particular solution that satisfies


2ndOrderOde and has specified values at two
different points.

w=

e 3xcos(3x)
10

p
6

e xsin(3x)

det()

10

xe x
10

MATH/Matrix menu
expression

det([a,b;c,d])

ad bc

Returns the determinant of squareMatrix.

det([1,2;3,4])

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])
(98x55x+ 12x 1)

If you use or set the mode to


Exact/Approx=APPROXIMATE, computations
are done using floating-point arithmetic.

[1E20,1;0,1]!mat1

det(squareMatrix[, tol])

If tol is omitted or not used, the default


tolerance is calculated as:

det(mat1)
det(mat1,.1)

1.E20
[0

1
1]
0
1.E20

5E 14 max(dim(squareMatrix))
rowNorm(squareMatrix)

Appendix A: Functions and Instructions

185

diag()

MATH/Matrix menu

diag(list) matrix
diag(rowMatrix) matrix
diag(columnMatrix) matrix

diag({2,4,6})

2
0
0

0 0
4 0
0 6

[4,6,8;1,2,3;5,7,9]

4
1
5

6 8
2 3
7 9

diag(ans(1))

[4 2 9]

Returns a matrix with the values in the argument


list or matrix in its main diagonal.
diag(squareMatrix)

rowMatrix

Returns a row matrix containing the elements


from the main diagonal of squareMatrix.
squareMatrix must be square.

Dialog

CATALOG
Program listing:

Dialog

block
EndDlog

Generates a dialog box when the program is


executed.
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.

:Dlogtest()
:Prgm
:Dialog
:Title
:Request
:Dropdown
:EndDlog
:EndPrgm

"This is a dialog box"


"Your name",Str1
"Month you were born",
seq(string(i),i,1,12),Var1

The variables in a dialog box can be given values


that will be displayed as the default (or initial)
value. If is pressed, the variables are
updated from the dialog box and variable ok is
set to 1. If N is pressed, its variables are not
updated, and system variable ok is set to zero.

dim()

MATH/Matrix/Dimensions menu
dim(list)

integer

dim({0,1,2})

Returns the dimension of list.


dim(matrix)

list

dim([1, 1,2; 2,3,5])

{2 3}

Returns the dimensions of matrix as a twoelement list {rows, columns}.


dim(string)

integer

dim("Hello")

Returns the number of characters contained in


character string string.

186

dim("Hello"&" there")

5
11

Appendix A: Functions and Instructions

Disp

CATALOG
Disp [exprOrString1] [, exprOrString2] ...

Displays the current contents of the Program I/O


screen. If one or more exprOrString is specified,
each expression or character string is displayed
on a separate line of the Program I/O screen.

Disp "Hello"

Hello

Disp cos(2.3)
{1,2,3,4}!L1
Disp L1

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_min 4 _hr

If Pretty Print = ON, expressions are displayed in


pretty print.

To type 4, press 2 .

.666
{1

4}

3._hr

Note: To type an underscore ( _ ), press

From the Program I/O screen, you can press to


display the Home screen, or a program can use
DispHome.

DispG

CATALOG

In function graphing mode:

DispG

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

Displays the current contents of the Home screen.

DispTbl

Program segment:

:Disp "The result is: ",xx


:Pause "Press Enter to quit"
:DispHome
:EndPrgm

CATALOG

DispTbl

Displays the current contents of the Table screen.

5cos(x)!y1(x)
DispTbl

Note: The cursor pad is active for scrolling. Press


N or to resume execution if in a
program.

Appendix A: Functions and Instructions

187

4DMS

MATH/Angle menu

In Degree angle mode:

expression 4DMS
list 4DMS
matrix 4DMS

45.371 4DMS

Interprets the argument as an angle and displays


the equivalent DMS (DDDDDDMMSS.ss) number.
See , ', " on page 286 for DMS (degree, minutes,
seconds) format.

45 22'15.6"

{45.371,60} 4DMS
{45 22'15.6"

60 }

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})
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])

Both must be row vectors, or both must be


column vectors.

DrawFunc

17

32

CATALOG

In function graphing mode and ZoomStd


window:

DrawFunc expression

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

Draws the inverse of expression by plotting x


values on the y axis and y values on the x axis.

In function graphing mode and ZoomStd


window:
DrawInv 1.25x cos(x)

x is the independent variable.

Note: Regraphing erases all drawn items.

188

Appendix A: Functions and Instructions

DrawParm

CATALOG

DrawParm expression1, expression2


[, tmin] [, tmax] [, tstep]

Draws the parametric equations expression1 and


expression2, using t as the independent variable.

In function graphing mode and ZoomStd


window:
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]

Draws the polar graph of expression, using q as


the independent variable.

In function graphing mode and ZoomStd


window:
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

Displays the graph and draws a line using the


formula y y1=slope (x x1).

In function graphing mode and ZoomStd


window:
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
menus 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

189

DrwCtour

CATALOG

In 3D graphing mode:

DrwCtour expression
DrwCtour list

Draws contours on the current 3D graph at the z


values specified by expression or list. The 3D
graphing mode must already be set. DrwCtour
automatically sets the graph format style to
CONTOUR LEVELS.
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.

(1/5)x^2+(1/5)y^210!z1(x,y)
Done
L10!xmin:10!xmax
10
L10!ymin:10!ymax
10
L10!zmin:10!zmax
10
0!ncontour
0
DrwCtour {L9,L4.5,L3,0,4.5,9}

To turn off the default contours, set ncontour to


zero, either by using the Window screen or by
storing 0 to the ncontour system variable.
Use the cursor to change the viewing angle.
Press 0 (zero) to return to the original view.
To toggle between different graph format styles,
press
Press X, Y, or Z to look down the
corresponding axis.

^ key
mantissaEexponent

Enters a number in scientific notation. The


number is interpreted as mantissa 10 exponent.
Hint: If you want to enter a power of 10 without
causing a decimal value result, use 10^integer.

e^()

2.3 4

23000.

2.3 9+4.1 15

4.1 15

30000

3 10^4

s key
e^(expression1) expression

e^(1)

Returns e raised to the expression1 power.

e^(1.)

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.

e^(3)^2

e
2.718...
e9

You can enter a complex number in re i q polar


form. However, use this form in Radian angle
mode only; it causes a Domain error in Degree or
Gradian angle mode.
e^(list1) list

Returns e raised to the power of each element in


list1.
e^(squareMatrix1) squareMatrix

e^({1,1.,0,.5})
{e 2.718...

1.648...}

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
680.546
524.929

559.617
488.795
371.222

456.509
396.521
307.879

squareMatrix1 must be diagonalizable. The result

always contains floating-point numbers.

190

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 [L1,2,5;3,L6,9;2,L5,7]!m1


real or complex squareMatrix, where each column
1 2 5
in the result corresponds to an eigenvalue. Note
3 6 9
that an eigenvector is not unique; it may be
2 5 7
scaled by any constant factor. The eigenvectors
are normalized, meaning that if V = [x 1, x 2, ,
eigVc(m1)
x n], then:
.800 .767
.767
x1 2 + x2 2 + + xn 2 = 1

.484

.352

.573+.052i
.262+.096i

.573.052i
.262.096i

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

Returns a list of the eigenvalues of a real or


complex squareMatrix.
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.

Else

In Rectangular complex format mode:


[L1,2,5;3,L6,9;2,L5,7]!m1
1 2
3 6
2 5

5
9
7

eigVl(m1)
{4.409 2.204+.763i
2.204.763i}

See If, page 206.

ElseIf

CATALOG See also If, page 206.


If Boolean expression1 Then

block1
ElseIf Boolean expression2 Then
block2

ElseIf Boolean expressionN Then

blockN
EndIf

ElseIf can be used as a program instruction for


program branching.

EndCustm

See Custom, page 178.

EndDlog

See Dialog, page 186.

EndFor

See For, page 198.

EndFunc

See Func, page 199.

EndIf

See If, page 206.

Appendix A: Functions and Instructions

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
:EndIf

191

EndLoop

See Loop, page 216.

EndPrgm

See Prgm, page 231.

EndTBar

See ToolBar, page 267.

EndTry

See Try, page 267.

EndWhile

See While, page 270.

entry()

CATALOG

entry() expression
entry(integer) expression

On the Home screen:


1
+ 1
x

Returns a previous entry-line entry from the


Home screen history area.

1+1/x

integer, if included, specifies which entry

1+1/entry(1)

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.

2 (2 x+1)

1
5 / 3 3 (3 x+2)

Note: If the last entry is still highlighted on the


Home screen, pressing is equivalent to
executing entry(1).

2
1

+ 3/2

1
x + 1

entry(4)

exact()

1
x+1

MATH/Number menu

exact( expression1 [, tol]) expression


exact( list1 [, tol]) list
exact( matrix1 [, tol]) matrix

exact(.25)

1/4
333333
1000000

exact(.333333)

Uses Exact mode arithmetic regardless of the


Exact/Approx mode setting to return, when
possible, the rational-number equivalent of the
argument.

exact(.33333,.001)

1/3
7 x
+y
2

exact(3.5x+y)

tol specifies the tolerance for the conversion; the

default is 0 (zero).
exact({.2,.33,4.125})
{15

192

33
338}
100

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
Program listing:

Exit

Exits the current For, While, or Loop block.


Exit is not allowed outside the three looping
structures (For, While, or Loop).

:0! temp
:For i,1,100,1
: temp+i! temp
: If temp>20
: Exit
:EndFor
:Disp temp
Contents of temp after execution: 21

exp44list()

CATALOG

exp44list(expression,var)

list

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.

solve(x^2 x 2=0,x)

x=2 or
x= 1

exp4list(solve(x^2 x 2=0,x),x)
{ 1 2}

Note: exp44list() is not necessary with the zeros


and cZeros() functions because they return a list
of solution values directly.

expand()

MATH/Algebra menu

expand(expression1 [, var]) expression


expand(list1 [,var]) list
expand(matrix1 [,var]) matrix
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.

expand((x+y+1)^2)
x + 2 x y + 2 x + y + 2 y + 1
expand((x^2 x+y^2 y)/(x^2 y^2 x^2
y x y^2+x y))

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

193

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
comprehensible.

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)

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.
Hint: For rational expressions, propFrac() is a
faster but less extreme alternative to expand().
Note: See also comDenom() for an expanded
numerator over an expanded denominator.
expand(expression1,[var]) also distributes

logarithms and fractional powers regardless of


var. For increased distribution of logarithms and
fractional powers, inequality constraints might be
necessary to guarantee that some factors are
nonnegative.
expand(expression1, [var]) also distributes
absolute values, sign(), and exponentials,

2 x
+ x+1
x 2
expand(ans(1),x)
1
1
+ x+2 +
x 2

x+1

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
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|

regardless of var.
Note: See also tExpand() for trigonometric
angle-sum and multiple-angle expansion.

expr()

expand((x^3+x^2 2)/(x^2 2))

expand(ans(1))
sign(x)sign(y) + |x||y|+ (ex)2ey

MATH/String menu

expr(string)

expression

expr("1+2+x^2+x")

Returns the character string contained in string as


an expression and immediately executes it.

x + x + 3

expr("expand((1+x)^2)")
x + 2 x + 1
"Define cube(x)=x^3"! funcstr
"Define cube(x)=x^3"
expr(funcstr)
cube(2)

194

Done
8

Appendix A: Functions and Instructions

ExpReg

MATH/Statistics/Regressions menu

ExpReg list1, list2 [, [list3] [, list4, list5]]

Calculates the exponential regression and


updates all the system statistics variables.
All the lists must have equal dimensions except
for list5.
list1 represents xlist.
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Note: list1 through list4 must be a variable name


or c1c99 (columns in the last data variable
shown in the Data/Matrix Editor). list5 does not
have to be a variable name and cannot be c1c99
.

In function graphing mode:


{1,2,3,4,5,6,7,8}! L1
{1 2 ...}
{1,2,2,2,3,4,5,7}! L2
ExpReg L1,L2
ShowStat

Regeq(x)"y1(x)
NewPlot 1,1,L1,L2

{1 2 ...}
Done

Done
Done

factor()

MATH/Algebra menu

factor(expression1[, var]) expression


factor(list1[,var]) list
factor(matrix1[,var]) matrix
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.
factor(expression1,var) returns expression1

factored with respect to variable var.


expression1 is factored as much as possible toward
real factors that are linear in var, even if it

introduces irrational constants or subexpressions


that are irrational in other variables.
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.

Appendix A: Functions and Instructions

factor(a^3 x^2 a x^2 a^3+a)


a(a 1)(a + 1)(x 1)(x + 1)
factor(x^2+1)

x + 1

factor(x^2 4)

(x 2) (x + 2)

factor(x^2 3)

x 3

factor(x^2 a)

x a

factor(a^3 x^2 a x^2 a^3+a,x)


a (a 1) (x 1) (x + 1)
factor(x^2 3,x)
(x + 3) (x 3)
factor(x^2 a,x)
(x + a) (x a)

195

For the AUTO setting of the Exact/Approx mode, factor(x^5+4x^4+5x^3 6x 3)


including var permits approximation with floatingx 5 + 4 x4 + 5 x3 6 x 3
point coefficients where irrational coefficients
cannot be explicitly expressed concisely in terms
factor(ans(1),x)
of the built-in functions. Even when there is only
(x.964) (x +.611)
one variable, including var might yield more
(x + 2.125) (x + 2.227
complete factorization.
x + 2.392)

Note: See also comDenom() for a fast way to


achieve partial factoring when factor() is not
fast enough or if it exhausts memory.
Note: See also cFactor() for factoring all the
way to complex coefficients in pursuit of linear
factors.
factor(rationalNumber) returns the rational
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)
1234571234577
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]!amatrx

Replaces each element in variable matrixVar with


expression.

Fill 1.01,amatrx

matrixVar must already exist.

amatrx

Fill expression, listVar

{1,2,3,4,5}!alist

list

Replaces each element in variable listVar with


expression.
listVar must already exist.

floor()

1 2
[3 4]
Done
1.01 1.01
[1.01 1.01]

{1 2 3 4 5}
Fill 1.01,alist
Done
alist
{1.01 1.01 1.01 1.01 1.01}

MATH/Number menu

floor(expression)

integer

floor(2.14)

3.

Returns the greatest integer that is the


argument. This function is identical to int().
The argument can be a real or a complex number.
floor(list1) list
floor(matrix1) matrix

Returns a list or matrix of the floor of each


element.
Note: See also ceiling() and int().

196

floor({3/2,0, 5.3})
{1 0 6.}
floor([1.2,3.4;2.5,4.8])

1. 3.
[2. 4.]

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.

x =

a+b
2

x=

fMax(.5x^3 x 2,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

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

x = .816...

fMax(a x^2,x)|a<0

x=0

Note: See also fMin() and max().

fMin()

MATH/Calculus menu

fMin(expression, var)

Boolean expression

Returns a Boolean expression specifying


candidate values of var that minimize expression or
locate its greatest lower bound.
Use the | operator to restrict the solution
interval and/or specify the sign of other undefined
variables.
For the APPROX setting of the Exact/Approx
mode, 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(1 (x a)^2 (x b)^2,x)


x = or x =
fMin(.5x^3 x 2,x)|x1

x=1

fMin(a x^2,x)
x = or x = or x = 0 or a = 0
fMin(a x^2,x)|a>0 and x>1
fMin(a x^2,x)|a>0

x = 1.
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]

Deselects the specified Y= functions for the


current graphing mode.

In function 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

197

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

Program segment:

For var, low, high [, step]

block
EndFor

Executes the statements in block iteratively for


each value of var, from low to high, in increments
of step.
var must not be a system variable.
step can be positive or negative. The default value

is 1.
block can be either a single statement or a series

of statements separated with the : character.

format()

:0!tempsum : 1!step
:For i,1,100,step
: tempsum+i!tempsum
:EndFor
:Disp tempsum

Contents of tempsum after


execution:

5050

Contents of tempsum when step


is changed to 2:

2500

MATH/String menu

format(expression[, formatString])

string

format(1.234567,"f3")

Returns expression as a character string based on


the format template.

format(1.234567,"s2")

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.

format(1.234567,"e3")

F[n]: Fixed format. n is the number of digits to

display after the decimal point.


S[n]: Scientific format. n is the number of digits to
display after the decimal point.

format(1.234567,"g3")

"1.235"
"1.23 0"
"1.235 0"
"1.235"

format(1234.567,"g3")
"1,234.567"

E[n]: Engineering format. n is the number of digits format(1.234567,"g3,r:")


after the first significant digit. The exponent is
"1:235"
adjusted to a multiple of three, and the decimal
point is moved to the right by zero, one, or two
digits.

198

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) expression
fPart(list1) list
fPart(matrix1) matrix

Returns the fractional part of the argument.

fPart( 1.234)

.234

fPart({1, 2.3, 7.003})


{0 .3

.003}

For a list or matrix, returns the fractional parts of


the elements.
The argument can be a real or a complex number.

Func

CATALOG

In function graphing mode, define a piecewise


function:

Func

block
EndFunc

Required as the first statement in a multistatement function definition.

Define g(x)=Func:If x<0 Then


:Return 3 cos(x):Else:Return
3 x:EndIf:EndFunc

block can be either a single statement or a series

Graph g(x)

of statements separated with the : character.

Done

Note: when() also can be used to define and


graph piecewise-defined functions.

gcd()

MATH/Number menu
gcd(number1, number2)

expression

gcd(18,33)

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

Returns the greatest common divisors of the


corresponding elements in list1 and list2.
gcd(matrix1, matrix2)

matrix

Returns the greatest common divisors of the


corresponding elements in matrix1 and matrix2.

Appendix A: Functions and Instructions

gcd({12,14,16},{9,7,5})

{3 7 1}

gcd([2,4;6,8],[4,8;12,16])

2
[6

4
8]

199

Get

CATALOG

Program segment:

Get var

Retrieves a CBL 2 (Calculator-Based


Laboratory) or CBR (Calculator-Based
Ranger) value from the link port and stores it in
variable var.

GetCalc

:Send {3,1, 1,0}


:For i,1,99
: Get data[i]
: PtOn i,data[i]
:EndFor

CATALOG

Program segment:

GetCalc var

Retrieves a value from the link port and stores it


in variable var. This is for unit-to-unit linking.
Note: To get a variable to the link port from
another unit, use 2 on the other unit
to select and send a variable, or do a SendCalc
on the other unit.

:Disp "Press Enter when ready"


:Pause
:GetCalc L1
:Disp "List L1 received"

@ 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

Returns a list of calculator attributes. The


attribute name is listed first, followed by its value.

getConfg()
{"Product Name" "Advanced
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

22}

Returns a list giving the date according to the


current value of the clock. The list is in
{year,month,day} format.

200

Appendix A: Functions and Instructions

getDenom()

MATH/Algebra/Extract menu

getDenom(expression1)

expression

Transforms expression1 into one having a reduced


common denominator, and then returns its
denominator.

getDtFmt()

getDenom((x+2)/(y 3))
getDenom(2/7)
getDenom(1/x+(y^2+y)/y^2)

y 3
7
x y

CATALOG

getDtFmt() integer

Returns an integer representing the date format


that is currently set on the device.

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

getDtStr() CATALOG
getDtStr([integer]) string

Optional integer values:

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).

1 = MM/DD/YY

If you enter the optional integer that corresponds


to a date format, the string returns the current
date in the specified format.

4 = DD.MM.YY

2 = DD/MM/YY
3 = MM.DD.YY

5 = YY.MM.DD
6 = MM-DD-YY
7 = DD-MM-YY
8 = YY-MM-DD

getFold()

CATALOG

getFold()

nameString

getFold()

Returns the name of the current folder as a string. getFold()! oldfoldr


oldfoldr

getKey()

"main"
"main"
"main"

CATALOG

getKey()

integer

Returns the key code of the key pressed. Returns


0 if no key is pressed.
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 .
For a listing of key codes, see Appendix B.

Appendix A: Functions and Instructions

Program listing:
:Disp
:Loop
: getKey()!key
: while key=0
:
getKey()!key
: EndWhile
: Disp key
: If key = ord("a")
: Stop
:EndLoop

201

getMode()

CATALOG

getMode(modeNameString) string
getMode("ALL") ListStringPairs

If the argument is a specific mode name, returns


a string containing the current setting for that
mode.
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.
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().

getMode("angle")

"RADIAN"

getMode("graph")

"FUNCTION"

getMode("all")
{"Graph" "FUNCTION"
"Display Digits" "FLOAT 6"
"Angle" "RADIAN"
"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"
"Split Screen Ratio" "1,1"
"Exact/Approx" "AUTO"
"Base" "DEC"}

Note: Your screen may display different mode


settings.

getNum()

MATH/Algebra/Extract menu

getNum(expression1)

expression

getNum((x+2)/(y 3))

Transforms expression1 into one having a reduced


common denominator, and then returns its
numerator.

getTime()

getNum(2/7)
getNum(1/x+1/y)

x+2
2
x+y

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.

getTmStr()

24 = 24 hour clock

CATALOG

getTmStr([integer]) string

Optional integer values:

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.

202

12 = 12 hour clock

12 = 12 hour clock
24 = 24 hour clock

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


that is currently set on the device.
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).

8:07:07 a.m. in Denver, Colorado (Mountain


Daylight Time)
(360 minutes from GMT)
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

Returns a string indicating the data type of


variable var.
If var has not been defined, returns the string
"NONE".

{1,2,3}! temp
getType(temp)

{1 2 3}
"LIST"

2+3i! temp
getType(temp)

2 + 3i
"EXPR"

DelVar temp
getType(temp)

Done
"NONE"

Data Type

Variable Contents

"ASM"

Assembly-language program

"DATA"

Data type

"EXPR"

Expression (includes complex/arbitrary/undefined, , , TRUE, FALSE, pi,


e)

"FUNC"

Function

"GDB"

Graph data base

"LIST"

List

"MAT"

Matrix

"NONE"

Variable does not exist

"NUM"

Real number

"OTHER"

Miscellaneous data type for future use by software applications

"PIC"

Picture

"PRGM"

Program

"STR"

String

"TEXT"

Text type

"VAR"

Name of another variable

Appendix A: Functions and Instructions

203

getUnits()

CATALOG

getUnits()

list

getUnits()

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:
{"system" "cat1" "unit1" "cat2" "unit2" }
The first string gives the system (SI, ENG/US, or
CUSTOM). Subsequent pairs of strings give a

{"SI" "Area" "NONE"


"Capacitance" "_F"
"Charge" "_coul"
}

Note: Your screen may display different default


units.

category (such as Length) and its default unit


(such as _m for meters).
To set the default units, use setUnits().

Goto

CATALOG

Program segment:

Goto labelName

Transfers program control to the label labelName.


labelName must be defined in the same program

using a Lbl instruction.

4Grad

:0!temp
:1!i
:Lbl TOP
: temp+i!temp
: If i<10 Then
:
i+1!i
:
Goto TOP
: EndIf
:Disp temp

CATALOG/MATH/Angle menu
4 Grad expression

In Degree angle mode:

Converts an expression to gradian angle measure. 1.5 4Grad

1.66667G

In Radian angle mode:


1.5 4Grad

204

95.493G

Appendix A: Functions and Instructions

Graph

CATALOG

Graph expression1[, expression2] [, var1] [, var2]

The Smart Graph feature graphs the requested


expressions/ functions using the current graphing
mode.
Expressions entered using the Graph or Table
commands are assigned increasing function
numbers starting with 1. They can be modified or
individually deleted using the edit functions
available when the table is displayed by pressing
Header. The currently selected Y= functions
are ignored.
If you omit an optional var argument, Graph uses
the independent variable of the current graphing
mode.

In function graphing mode and ZoomStd


window:
Graph 1.25a cos(a),a

In parametric graphing mode and ZoomStd


window:
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:
Function graphing

Graph expr, x

Parametric graphing

Graph xExpr, yExpr, t

Polar graphing

Graph expr, q

Sequence graphing

Not allowed.

3D graphing

Graph expr, x, y

Diff Equations graphing

Not allowed.

In 3D graphing mode:
Graph (v^2 w^2)/4,v,w

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

Converts integer1 to a hexadecimal number.


Binary or hexadecimal numbers always have a 0b
or 0h prefix, respectively.

256 4Hex

0h100

0b111100001111 4Hex

0hF0F

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

205

identity()

MATH/Matrix menu
matrix

identity(expression)

identity(4)

1
0
0
0

Returns the identity matrix with a dimension of


expression.
expression must evaluate to a positive integer.

If

0
1
0
0

0
0
1
0

0
0
0
1

CATALOG
If Boolean expression

If Boolean expression Then

statement

block
EndIf

If Boolean expression evaluates to true, executes


the single statement statement or the block of
statements block before continuing execution.
If Boolean expression evaluates to false, continues
execution without executing the statement or
block of statements.
block can be either a single statement or a

sequence of statements separated with the :


character.

Program segment:

:If x<0
:Disp "x is negative"

or

:If x<0 Then


: Disp "x is negative"
: abs(x)! x
:EndIf

Program segment:

If Boolean expression Then

block1

:If x<0 Then


: Disp "x is negative"
EndIf
:
Else
If Boolean expression evaluates to true, executes
: Disp "x is positive or zero"
block1 and then skips block2.
:EndIf

If Boolean expression evaluates to false, skips block1


but executes block2.
Else

block2

block1 and block2 can be a single statement.

Program segment:

If Boolean expression1 Then

block1
ElseIf Boolean expression2 Then
block2

ElseIf Boolean expressionN Then

blockN
EndIf

Allows for program branching. If Boolean


expression1 evaluates to true, executes block1. If
Boolean expression1 evaluates to false, evaluates
Boolean expression2, etc.

imag()

:If choice=1 Then


: Goto option1
: ElseIf choice=2
:
Goto option2
: ElseIf choice=3
:
Goto option3
: ElseIf choice=4
:
Disp "Exiting
:
Return
:EndIf

Then
Then
Then
Program"

MATH/Complex menu

imag(expression1)

expression

imag(expression1) returns the imaginary part of

the argument.
Note: All undefined variables are treated as real
variables. See also real().
imag(list1)

list

imag(1+2i)

imag(z)

imag(x+iy)

imag({3,4i,i})

{0 1 1}

Returns a list of the imaginary parts of the


elements.

206

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, dependentVar[,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
Input

See #(), page 284.

CATALOG

Program segment:

Input

Pauses the program, displays the current Graph


screen, and lets you update variables xc and yc
(also rc and qc for polar coordinate mode) by
positioning the graph cursor.
When you press , the program resumes.

Input [promptString,] var


Input [promptString], var pauses the program,

displays promptString on the Program I/O screen,


waits for you to enter an expression, and stores
the expression in variable var.
If you omit promptString, ? is displayed as a
prompt.

InputStr

: Get 10 points from the Graph


:For i,1,10
: Input
: xc! XLIST[i]
: yc! YLIST[i]
:EndFor

Screen

Program segment:

:For i,1,9,1
: "Enter x" & string(i)! str1
: Input str1,#(right(str1,2))
:EndFor

CATALOG

InputStr [promptString,] var

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.

Program segment:

: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

207

inString()

MATH/String menu

inString(srcString, subString[, start])

integer

Returns the character position in string srcString at


which the first occurrence of string subString
begins.
start, if included, specifies the character position
within srcString where the search begins. Default
= 1 (the first character of srcString).

inString("Hello there","the")

"ABCEFG"! s1:If inString(s1,


"D")=0:Disp "D not found."
D not found.

If srcString does not contain subString or start is >


the length of srcString, returns zero.

int()

CATALOG
int(expression) integer
int(list1) list
int(matrix1) matrix

int( 2.5)
int([-1.234,0,0.37])

Returns the greatest integer that is less than or


equal to the argument. This function is identical
to floor().

3.
[-2. 0 0.]

The argument can be a real or a complex number.


For a list or matrix, returns the greatest integer of
each of the elements.

intDiv()

CATALOG

intDiv(number1, number2) integer


intDiv(list1, list2) list
intDiv(matrix1, matrix2) matrix

intDiv( 7,2)

3
0

intDiv(4,5)

Returns the signed integer part of argument 1


divided by argument 2.

intDiv({12, 14, 16},{5,4, 3})


{2 3 5}

For lists and matrices returns the signed integer


part of argument 1 divided by argument 2 for
each element pair.

integrate

See (), page 283.

iPart()

MATH/Number menu

iPart(number) integer
iPart(list1) list
iPart(matrix1) matrix

iPart( 1.234)

1.

iPart({3/2, 2.3,7.003})
{1 2. 7.}

Returns the integer part of the argument.


For lists and matrices, returns the integer part of
each element.
The argument can be a real or a complex number.

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.

208

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

Returns true or false to indicate if number is a


whole number 2 that is evenly divisible only by
itself and 1.
If number exceeds about 306 digits and has no
factors 1021, isPrime(number) displays an
error message.
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.

isVar()

IsPrime(5)
IsPrime(6)

true
false

Function to find the next prime after a specified


number:
Define nextPrim(n)=Func:Loop:
n+1!n:if isPrime(n):return n:
EndLoop:EndFunc

Done

nextPrim(7)

11

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.

Item

CATALOG
Item itemNameString
Item itemNameString, label

See Custom example.

Valid only within a Custom...EndCustm or


ToolBar...EndTBar block. Sets up a drop-down
menu element to let you paste text to the cursor
position (Custom) or branch to a label
(ToolBar).
Note: Branching to a label is not allowed within
a Custom block.

Lbl

CATALOG
Lbl labelName

Defines a label with the name labelName in the


program.
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

Program segment:

:Lbl lbl1
:InputStr "Enter password", str1
:If str1password
: Goto lbl1
:Disp "Welcome to ..."

209

lcm()

MATH/Number menu
lcm(number1, number2) expression
lcm(list1, list2) list
lcm(matrix1, matrix2) matrix

lcm(6,9)

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 floatingpoint numbers is their product.

18

lcm({1/3, 14,16},{2/15,7,5})
{2/3 14 80}

For two lists or matrices, returns the least


common multiples of the corresponding elements.

left()

MATH/String menu
left(sourceString[, num])

left("Hello",2)

string

"He"

Returns the leftmost num characters contained in


character string sourceString.
If you omit num, returns all of sourceString.
left(list1[, num])

list

left({1,3, 2,4},3)

Returns the leftmost num elements contained in


list1.

{1 3 2}

If you omit num, returns all of list1.


left(comparison)

left(x<3)

expression

Returns the left-hand side of an equation or


inequality.

limit()

MATH/Calculus menu

limit(expression1, var, point[, direction])

expression
limit(list1, var, point[, direction]) list
limit(matrix1, var, point[, direction]) matrix

Returns the limit requested.

direction: negative=from left, positive=from right,


otherwise=both. (If omitted, direction defaults to
both.)

limit(2x+3,x,5)

13

limit(1/x,x,0,1)

limit(sin(x)/x,x,0)

limit((sin(x+h)-sin(x))/h,h,0)
cos(x)
limit((1+1/n)^n,n,)

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.

210

Appendix A: Functions and Instructions

limit() uses methods such as LHopitals 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

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]

Displays the Graph screen and draws, erases, or


inverts a line segment between the window
coordinates (xStart, yStart) and (xEnd, yEnd),
including both endpoints.

In the ZoomStd window, draw a line and then


erase it.
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]

Displays the Graph screen and draws, erases, or


inverts a horizontal line at window position y.

In a ZoomStd window:
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

211

LineTan

CATALOG

In function graphing mode and a ZoomTrig


window:

LineTan expression1, expression2

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

@ "
H "

function, where x is assumed to be the


independent variable, and expression2 is the x
value of the point that is tangent.

LineTan cos(x),p/4

Note: In the example shown, expression1 is


graphed separately. LineTan does not graph
expression1.

LineVert

CATALOG

In a ZoomStd window:

LineVert x [, drawMode]

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.
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 c1c99 (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.

212

{0,1,2,3,4,5,6}! L1
{0 1 2 ...}
{0,2,3,4,3,4,6}! L2
LinReg L1,L2
ShowStat

Regeq(x)"y1(x)
NewPlot 1,1,L1,L2

{0 2 3 ...}
Done

Done
Done

Appendix A: Functions and Instructions

@list()

MATH/List menu
list ( list1 ) list

@list({20,30,45,70})

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.

list44mat()

{10,15,25}

MATH/List menu

list44mat( list [, elementsPerRow])

matrix

Returns a matrix filled row-by-row with the


elements from list.

list4mat({1,2,3})

[1 2 3]

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()

ln(x )
ln(10)

2 x key
ln(expression1) expression
ln(list1) list

Returns the natural logarithm of the argument.


For a list, returns the natural logarithms of the
elements.

ln(2.0)

.693...

If complex format mode is REAL:


ln({ 3,1.2,5})
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

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.
squareMatrix1 must be diagonalizable. The result

In Radian angle mode and Rectangular complex


format mode:
ln([1,5,3;4,2,1;6,2,1])

1.831+1.734i .009 1.490i


.448.725i 1.064+.623i
.266 2.083i 1.124+1.790i

always contains floating-point numbers.

Appendix A: Functions and Instructions

213

LnReg

MATH/Statistics/Regressions menu
LnReg list1, list2[, [list3] [, list4, list5]]

In function graphing mode:

Calculates the logarithmic regression and updates {1,2,3,4,5,6,7,8}! L1


all the system statistics variables.
{1 2 3 ...}
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 c1c99 (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.

{1,2,2,3,3,3,4,4}! L2
LnReg L1,L2
ShowStat

Regeq(x)"y1(x)
NewPlot 1,1,L1,L2

{1 2 2 ...}
Done

Done
Done

Local

CATALOG

Program listing:

Local var1[, var2] [, var3] ...

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.
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.

Lock

:prgmname()
:Prgm
:Local x,y
:Input "Enter x",x
:Input "Enter y",y
:Disp x y
:EndPrgm

Note: x and y do not exist after the program


executes.

CATALOG

{1,2,3,4}! L1

Lock var1[, var2] ...

Locks the specified variables. This prevents you


from accidentally deleting or changing the
variable without first using the unlock instruction
on that variable.

Lock L1

{1,2,3,4}
Done

DelVar L1
Error: Variable is locked or protected

In the example to the right, the variable L1 is


locked and cannot be deleted or modified.
Note: The variables can be unlocked using the
Unlock command.

214

Appendix A: Functions and Instructions

log()

CATALOG/ 7 key
log(expression1[,expression2])
log(list1[,expression2]) list

expression

log(2.0)

.301...

If complex format mode is REAL:

Returns the base-expression2 logarithm of the


argument.

log({ 3,1.2,5})
Error: Non-real result

For a list, returns the base-expression2 logarithm of


the elements.

If complex format mode is RECTANGULAR:

If expression 2 is omitted, 10 is used as base.


log(squareMatrix1)

squareMatrix

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().
squareMatrix1 must be diagonalizable. The result

log({ 3,1.2,5})
{log(3)+ 1.364( i .079 log(5)}

In Radian angle mode and Rectangular complex


format mode:
log([1,5,3;4,2,1;6,2,1])

.795+.753i
.194.315i
.115.904i

.003.647i
.462+.270i
.488+.777i

always contains floating-point numbers.


log(x,b) expression
log(squareMatrix1) squareMatrix

Log(10,3) log(5,3)
Log(2.0,4)

Log3(2)
.5

In a list, returns the base expression 2 logarithm of


the elements.

4logbase

MATH/String menu

expression 4logbase(expression1)

expression

Causes the input expression to be


simplified to an expression using base
expression1.

Appendix A: Functions and Instructions

Log(10,3) log(5,5)4logbase(5)

log 5(30)
log 5(3)

215

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.
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.
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.

Note: list1 through list4 must be a variable name


or c1c99 (columns in the last data variable
shown in the Data/Matrix Editor). list5 does not
have to be a variable name and cannot be c1c99
.

Loop

regeq(x)!y1(x)
NewPlot 1,1,L1,L2
%
9

Done
Done

CATALOG

Program segment:

Loop

block
EndLoop

Repeatedly executes the statements in block. Note


that the loop will be executed endlessly, unless a
Goto or Exit instruction is executed within block.
block is a sequence of statements separated with

the : character.

216

{1,2,3,4,5,6}!L1
{1 2 3 }
{1,1.3,2.5,3.5,4.5,4.8}!L2

{1 1.3 2.5 }
Logistic L1,L2
Done
ShowStat

:1! i
:Loop
: Rand(6)! die1
: Rand(6)! die2
: If die1=6 and die2=6
:
Goto End
: i+1! i
:EndLoop
:Lbl End
:Disp "The number of rolls is", i

Appendix A: Functions and Instructions

LU

MATH/Matrix menu
LU matrix, lMatName, uMatName, pMatName[, tol]

Calculates the Doolittle LU (lower-upper)


decomposition of a real or complex matrix. The
lower triangular matrix is stored in lMatName, the
upper triangular matrix in uMatName, and the
permutation matrix (which describes the row
swaps done during the calculation) in pMatName.

[6,12,18;5,14,31;3,8,18]!m1

6
5
3

12 18
14 31
8 18

LU m1,lower,upper,perm

Done

lMatName uMatName = pMatName matrix

lower

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
5/6
1/2

0
0
1
0
1/2 1

upper

6
0
0

12 18
4 16
0 1

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(matrix))
rowNorm(matrix)

The LU factorization algorithm uses partial


pivoting with row interchanges.

perm

1
0
0

[m,n;o,p]!m1

[mo np]

LU m1,lower,upper,perm

Done

1
m
o

lower

upper

o
0

perm

mat44data

0 0
1 0
0 1

0
1

mp
n o

[01 10]

MATH/List menu

mat44data mat,data[,row1][,col1][,row2][,col2]

Converts a matrix to data.

mat4data,m1,d1,1,,,1
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.

Appendix A: Functions and Instructions

217

mat44list()

MATH/List menu
list

mat44list(matrix)

mat4list([1,2,3])

Returns a list filled with the elements in matrix. The


elements are copied from matrix row by row.

max()

{1 2 3}

[1,2,3;4,5,6]! M1

1 2 3

[4 5 6]

mat4list(M1)

{1 2 3 4 5 6}

max(2.3,1.4)

2.3

MATH/List menu
max(expression1, expression2) expression
max(list1, list2) list
max(matrix1, matrix2) matrix

max({1,2},{ 4,3})

{1 3}

Returns the maximum of the two arguments. If


the arguments are two lists or matrices, returns a
list or matrix containing the maximum value of
each pair of corresponding elements.
max(list)

expression

max({0,1, 7,1.3,.5})

1.3

Returns the maximum element in list.


max(matrix1)

max([1, 3,7; 4,0,.3])

matrix

Returns a row vector containing the maximum


element of each column in matrix1.

[1 0 7]

Note: See also fMax() and min().

mean()

MATH/Statistics menu

mean(list[, freqlist])

expression

mean({.2,0,1,.3,.4})

.26

mean({1,2,3},{3,2,1})

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(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)

expression

median({.2,0,1,.3,.4})

.2

Returns the median of the elements in list1.


median(matrix1)

matrix

Returns a row vector containing the medians of


the columns in matrix1.

median([.2,0;1,.3;.4,.5])
[.4 .3]

Note: All entries in the list or matrix must


simplify to numbers.

218

Appendix A: Functions and Instructions

MedMed

MATH/Statistics/Regressions menu

In function graphing mode:

MedMed list1, list2[, [list3] [, list4, list5]]

Calculates the median-median line and updates


all the system statistics variables.
All the lists must have equal dimensions except
for list5.

{0,1,2,3,4,5,6}! L1
{0,2,3,4,3,4,6}! L2
MedMed L1,L2
ShowStat

{0 1 2 ...}
{0 2 3 ...}
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 c1c99 (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.

mid()

Regeq(x)! y1(x)
NewPlot 1,1,L1,L2

Done
Done

MATH/String menu
mid(sourceString, start[, count])

string

Returns count characters from character string


sourceString, beginning with character number
start.
If count is omitted or is greater than the
dimension of sourceString, returns all characters
from sourceString, beginning with character
number start.

mid("Hello there",2)
"ello there"
mid("Hello there",7,3)
mid("Hello there",1,5)
mid("Hello there",1,0)

count must be 0. If count = 0, returns an empty


string.
list

"the"
"Hello"
""

mid({9,8,7,6},3)

{7 6}

Returns count elements from sourceList, beginning


with element number start.

mid({9,8,7,6},2,2)

{8 7}

If count is omitted or is greater than the


dimension of sourceList, returns all elements from
sourceList, beginning with element number start.

mid({9,8,7,6},1,2)

{9 8}

mid({9,8,7,6},1,0)

{}

mid(sourceList, start [, count])

count must be 0. If count = 0, returns an empty

list.
mid(sourceStringList, start[, count])

list

Returns count strings from the list of strings


sourceStringList, beginning with element number
start.

Appendix A: Functions and Instructions

mid({"A","B","C","D"},2,2)
{"B" "C"}

219

min()

MATH/List menu
min(expression1, expression2) expression
min(list1, list2) list
min(matrix1, matrix2) matrix

min(2.3,1.4)

1.4

min({1,2},{ 4,3})

{ 4 2}

Returns the minimum of the two arguments. If


the arguments are two lists or matrices, returns a
list or matrix containing the minimum value of
each pair of corresponding elements.
min(list)

expression

min({0,1, 7,1.3,.5})

Returns the minimum element of list.


min(matrix1)

matrix

Returns a row vector containing the minimum


element of each column in matrix1.

min([1, 3,7; 4,0,.3])


[ 4 3 .3]

Note: See also fMin() and max().

mod()

MATH/Number menu

mod(expression1, expression2) expression


mod(list1, list2) list
mod(matrix1, matrix2) matrix

Returns the first argument modulo the second


argument as defined by the identities:
mod(x,0) x
mod(x,y) x y floor(x/y)

When the second argument is non-zero, the result


is periodic in that argument. The result is either
zero or has the same sign as the second
argument.

mod(7,0)

mod(7,3)

mod( 7,3)

mod(7, 3)

mod( 7, 3)

mod({12, 14,16},{9,7, 5})


{3 0 4}

If the arguments are two lists or two matrices,


returns a list or matrix containing the modulo of
each pair of corresponding elements.
Note: See also remain().

MoveVar

CATALOG

MoveVar var, oldFolder, newFolder

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)

Returns a copy of matrix1 with each element in


row index of matrix1 multiplied by expression.

mRowAdd()

1 2
4/3]

[ 1

MATH/Matrix/Row ops menu

mRowAdd( 3,[1,2;3,4],1,2)

mRowAdd(expression, matrix1, index1, index2)


matrix

Returns a copy of matrix1 with each element in


row index2 of matrix1 replaced with:
expression row index1 + row index2

220

{1,2,3,4}! L1
{1 2 3 4}
MoveVar L1,Main,Games
Done

1 2
L2]

[0

mRowAdd(n,[a,b;c,d],1,2)
a
b
[a n+c b n+d]

Appendix A: Functions and Instructions

nCr()

MATH/Probability menu
nCr(expression1, expression2)

expression

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.
nCr(expression, 0)

nCr(z,3)

z (z 2) (z 1)
6

ans(1)|z=5
nCr(z,c)

10
z!
c!(z c)!
1
c!

ans(1)/nPr(z,c)

nCr(expression, negInteger)

nCr(expression, posInteger)

expression (expression 1)... (expression posInteger+1)/


posInteger!
expression!/
((expression nonInteger)! nonInteger!)

nCr(expression, nonInteger)
nCr(list1, list2)

list

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({5,4,3},{2,4,2})
{10 1 3}

nCr([6,5;4,3],[2,2;2,2])

nDeriv()

15 10
3 ]

[6

Returns a matrix of combinations based on the


corresponding element pairs in the two matrices.
The arguments must be the same size matrix.
MATH/Calculus menu

nDeriv(expression1, var[, h]) expression


nDeriv(expression1, var, list) list
nDeriv(list, var[, h]) list
nDeriv(matrix, var[, h]) matrix

Returns the numerical derivative as an


expression. Uses the central difference quotient
formula.

nDeriv(cos(x),x,h)

limit(nDeriv(cos(x),x,h),h,0)
sin(x)

h is the step value. If h is omitted, it defaults to

nDeriv(x^3,x,0.01)
3. (x +.000033)

0.001.

nDeriv(cos(x),x)|x=p/2

When using list or matrix, the operation gets


mapped across the values in the list or across the
matrix elements.

1.

nDeriv(x^2,x,{.01,.1})
{2.x 2.x}

Note: See also avgRC() and d().

NewData

CATALOG

NewData dataVar, list1[, list2] [, list3]...

Creates data variable dataVar, where the columns


are the lists in order.
Must have at least one list.
list1, list2, ..., listn can be lists as shown,

NewData mydata,{1,2,3},{4,5,6}
Done
(Go to the Data/Matrix Editor and
open the var mydata to display the
data variable below.)

expressions that resolve to lists, or list variable


names.
NewData makes the new variable current in

the Data/Matrix Editor.


NewData dataVar, matrix

Creates data variable dataVar based on matrix.

Appendix A: Functions and Instructions

221

NewData sysData, matrix

Loads the contents of matrix into the system data


variable sysData.

NewFold

CATALOG

NewFold games

NewFold folderName

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

newMat(2,3)

Returns a matrix of zeros with the dimension


numRows by numColumns.

NewPic

0 0 0

[0 0 0]

CATALOG

NewPic matrix, picVar [, maxRow][, maxCol]

Creates a pic variable picVar based on matrix.


matrix must be an n2 matrix in which each row
represents a pixel. Pixel coordinates start at 0,0.
If picVar already exists, NewPic replaces it.

NewPic [1,1;2,2;3,3;4,4;5,5;
5,1;4,2;2,4;1,5],xpic

Done

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.

222

Appendix A: Functions and Instructions

NewPlot

CATALOG

NewPlot n, type, xList [,[yList], [frqList], [catList],


[includeCatList], [mark] [, bucketSize]]

Creates a new plot definition for plot number n.


type specifies the type of the graph plot.
1 = scatter plot
2 = xyline plot
3 = box plot
4 = histogram
5 = modified box plot

FnOff
Done
PlotsOff
Done
{1,2,3,4}!L1
{1 2 3 4}
{2,3,4,5}!L2
{2 3 4 5}
NewPlot 1,1,L1,L2,,,,4
Done
Press % to display:

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 19. Lists must be variable names


or c1c99 (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 c1c99.

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 az) 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.
A warning is displayed (Questionable
accuracy) when it seems that the goal has not
been achieved.

Appendix A: Functions and Instructions

nInt(cos(x),x, p,p+1 12)


1.041... 12
(cos(x),x, p,p+10^( 12))
1
sin(
)
1000000000000

ans(1)

1. 12

223

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()

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])

not

30

MATH/Test menu
not Boolean expression1

Boolean expression

Returns true, false, or a simplified Boolean


expression1.

not 2>=3

true

not x<2

x2
innocent

not not innocent

not integer1 integer

In Hex base mode:

Returns the ones 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 ones
complement. Results are displayed according to
the Base mode.

not 0h7AC36

0hFFF853C9

Important: Zero, not the letter O.

In Bin base mode:


0b100101 4 dec

37

You can enter the integer in any number base. For not 0b100101
0b11111111111111111111111111011010
a binary or hexadecimal entry, you must use the
0b or 0h prefix, respectively. Without a prefix, the
ans(1) 4 dec
38
integer is treated as decimal (base 10).
Note:
A
binary
entry
can
have
up
to
32
digits
If you enter a decimal integer that is too large for
a signed, 32-bit binary form, a symmetric modulo (not counting the 0b prefix). A hexadecimal
entry can have up to 8 digits.
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)

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.
nPr(expression, 0)

nPr(z, 3)

1
(z+1) (z+2) (z+3)

ans(1) nPr(z c, c)

1/((expression+1) (expression+2)...
(expression negInteger))
nPr(expression, posInteger)

60

nPr(z,c)

nPr(expression, negInteger)

z (z 2) (z 1)

ans(1)|z=5

z!
(z c)!
1

expression (expression 1)... (expression posInteger+1)


nPr(expression, nonInteger)

expression!/

(expression nonInteger)!
nPr(list1, list2)

list

nPr({5,4,3},{2,4,2})

Returns a list of permutations based on the


corresponding element pairs in the two lists. The
arguments must be the same size list.

224

{20 24 6}

Appendix A: Functions and Instructions

nPr(matrix1, matrix2)

matrix

nPr([6,5;4,3],[2,2;2,2])

nSolve()

30 20
6]

[12

Returns a matrix of permutations based on the


corresponding element pairs in the two matrices.
The arguments must be the same size matrix.
MATH/Algebra menu

nSolve(equation, varOrGuess)

number or error_string

Iteratively searches for one approximate real


numeric solution to equation for its one variable.
Specify varOrGuess as:
variable

or
variable = real number

nSolve(x^2+5x 25=9,x)
3.844...
nSolve(x^2=4,x= 1)

2.

2.

nSolve(x^2=4,x=1)

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

nSolve(x^2+5x 25=9,x)|x<0
8.844...

constrain the search to a small interval containing


exactly one simple solution.
nSolve(((1+r)^24 1)/r=26,r)|r>0 and
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.

r<.25

.0068...

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]]

Calculates 1-variable statistics and updates all


the system statistics variables.

{0,2,3,4,3,4,6}! L1
OneVar L1
ShowStat

Done

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 c1c99 (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

225

or

MATH/Test menu
Boolean expression1 or Boolean expression2
expression

Boolean

Returns true or false or a simplified form of the


original entry.
Returns true if either or both expressions simplify
to true. Returns false only if both expressions
evaluate to false.
Note: See xor.
integer1 or integer2 integer

x3 or x4

x3

Program segment:

If x<0 or x5
Goto END

If choice=1 or choice=2
Disp "Wrong choice"

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
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.
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).

0h7AC36 or 0h3D5F

0h7BD7F

Important: Zero, not the letter O.

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.

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) integer
ord(list1) list

Returns the numeric code of the first character in


character string string, or a list of the first
characters of each list element.
See Appendix B for a complete listing of character
codes.

Output

ord("hello")

104

char(104)

"h"
24

ord(char(24))
ord({"alpha","beta"})

{97 98}

CATALOG

Program segment:

Output row, column, exprOrString

Displays exprOrString (an expression or character


string) on the Program I/O screen at the text
coordinates (row, column).
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.

:RandSeed 1147
:ClrIO
:For i,1,90,10
: Output i, rand(100),"Hello"
: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.

226

Appendix A: Functions and Instructions

P44Rx()

MATH/Angle menu
P44Rx(rExpression, qExpression) expression
P44Rx(rList, qList) list
P44Rx(rMatrix, qMatrix) matrix

Returns the equivalent x-coordinate of the


(r, q) pair.

In Radian angle mode:


P4Rx(r,q)

cos(q) r

P4Rx(4,60)

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
G
expression, you can use , o r to override
the angle mode setting temporarily.

P44Ry()

{ 3/2

5 2 1.3

MATH/Angle menu
P44Ry(rExpression, qExpression) expression
P44Ry(rList, qList) list
P44Ry(rMatrix, qMatrix) matrix

Returns the equivalent y-coordinate of the


(r, q) pair.
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
G
expression, you can use , o r to override
the angle mode setting temporarily.

part()

P4Rx({ 3,10,1.3},{p/3, p/4,0})

In Radian angle mode:


P4Ry(r,q)

sin(q) r
2 3

P4Ry(4,60)

P4Ry({ 3,10,1.3},{p/3, p/4,0})

{ 32 3

5 2 0.

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

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 .
part(expression1, 0)

string

part(cos(px+3))

Note: cos(p x+3) has one argument.

part(cos(px+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

227

part(expression1, n)

expression

part(cos(px+3),1)

Note: Simplification changed the order of the


argument.

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 subexpressions.

part(cos(px+3))
part(cos(px+3),0)
part(cos(px+3),1)!temp

Note: When using part(), do not rely on any


particular order in sums and products.

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.

temp
part(temp,0)
part(temp)
part(temp,2)
part(temp,1)!temp
part(temp,0)
part(temp)
part(temp,1)
part(temp,2)
part(x+y+z)
part(x+y+z,2)
part(x+y+z,1)

1
"cos"
3+px
px+3
"+"
2
3
px
""
2
p
x
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 yx instead of
xy.

part(xyz)
part(xyz,2)
part(xyz,1)

When you extract sub-expressions from a matrix,


remember that matrices are stored as lists of lists,
as illustrated in the example to the right.

part([a,b,c;x,y,z],0)
"{"
part([a,b,c;x,y,z])
2
part([a,b,c;x,y,z],2)!temp
{x y z}
part(temp,0)
"{"
part(temp)
3
part(temp,3)
z
delVar temp
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
: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

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.

228

3+px

Simplifies expression1 and returns the n th 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.

2
z
yx

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]

Suspends program execution. If you include


expression, displays expression on the Program I/O
screen.
expression can include conversion operations such

as 4DD and 4Rect. You can also use the 4


operator to perform unit and number base
conversions.
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 .

PlotsOff

Program segment:

:ClrIO
:DelVar temp
:1"temp[1]
:1"temp[2]
:Disp temp[2]
: Guess the Pattern
:For i,3,20
: temp[i2]+temp[i1]"temp[i]
: Disp temp[i]
: Disp temp,"Can you guess the
next","number?"
: Pause
:EndFor

CATALOG

PlotsOff [1] [, 2] [, 3] ... [, 9]

Turns off the specified plots for graphing. When


in 2-graph mode, only affects the active graph.

PlotsOff 1,2,5

Done

PlotsOff

Done

If no parameters, then turns off all plots.

PlotsOn

CATALOG

PlotsOn [1] [, 2] [, 3] ... [, 9]

PlotsOn 2,4,5

Turns on the specified plots for graphing. When in PlotsOn


2-graph mode, only affects the active graph.

Done
Done

If you do not include any arguments, turns on all


plots.

4Polar

MATH/Matrix/Vector ops menu


vector 4Polar

Displays vector in polar form [r q]. The vector


must be of dimension 2 and can be a row or a
column.

[1,3.] 4Polar
[x,y] 4Polar

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

229

In Radian angle mode:

complexValue 4Polar

3+4i 4Polar

Displays complexVector in polar form.


Degree angle mode returns (rq).
Radian angle mode returns

e i(p2 tan(3/4))5
i p

(4p/3)4Polar

re iq.

complexValue can have any complex form.

In Gradian angle mode:

However, an re iq entry causes an error in Degree


angle mode.

4i 4Polar

Note: You must use the parentheses for an (rq)


polar entry.

In Degree angle mode:


3+4i 4Polar

(4100)

(590tan(3/4))

polyEval() MATH/List menu


polyEval(list1, expression1) expression
polyEval(list1, list2) expression

polyEval({a,b,c},x)

Interprets the first argument as the coefficient of


a descending-degree polynomial, and returns the
polynomial evaluated for the value of the second
argument.

PopUp

a x +b x+c

polyEval({1,2,3,4},2)

26

polyEval({1,2,3,4},{2, 7})

{26 262}

CATALOG

PopUp itemList, var

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.

PopUp
{"1990","1991","1992"},var1

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.

230

Appendix A: Functions and Instructions

PowerReg

MATH/Statistics/Regressions menu

PowerReg list1, list2[, [list3] [, list4, list5]]

Calculates the power regression and updates all


the system statistics variables.
All the lists must have equal dimensions except
for list5.
list1 represents xlist.
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Note: list1 through list4 must be a variable name


or c1c99 (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.

In function graphing mode:


{1,2,3,4,5,6,7}! L1
{1 2 3 ...}
{1,2,3,4,3,4,6}! L2
PowerReg L1,L2
ShowStat

{1 2 3 ...}
Done

Regeq(x)"y1(x)
NewPlot 1,1,L1,L2

Done
Done

Prgm

CATALOG

Program segment:

Prgm

EndPrgm

Required instruction that identifies the beginning


of a program. Last line of program must be
EndPrgm.

Product (PI)
product()

See ( ), page 284.

MATH/List menu

product(list[, start[, end]])

expression

Returns the product of the elements contained in


list. Start and end are optional. They specify a
range of elements.
product(matrix1[, start[, end]])

matrix

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.

Prompt

:prgmname()
:Prgm
:
:EndPrgm

product({1,2,3,4})
product({2,x,y})
product({4,5,8,9},2,3)

24
2 x y
40

product([1,2,3;4,5,6;7,8,9])
[28 80 162]
product([1,2,3;4,5,6;7,8,9],
1,2)
[4,10,18]

CATALOG

Prompt var1[, var2] [, var3] ...

Displays a prompt on the Program I/O screen for


each variable in the argument list, using the
prompt var1?. Stores the entered expression in
the corresponding variable.

Program segment:

Prompt A,B,C

EndPrgm

Prompt must have at least one argument.

Appendix A: Functions and Instructions

231

propFrac()

MATH/Algebra menu

propFrac(expression1[, var])

expression

propFrac(rational_number) returns rational_number

as the sum of an integer and a fraction having the


same sign and a greater denominator magnitude
than numerator magnitude.

propFrac(4/3)

1 + 1/3

propFrac( 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

CATALOG

Note: PtChg through PtText show continuing


similar examples.

PtChg x, y
PtChg xList, yList

Displays the Graph screen and reverses the screen PtChg 2,4
pixel nearest to window coordinates
(x, y).

PtOff

CATALOG

PtOff 2,4

PtOff x, y
PtOff xList, yList

Displays the Graph screen and turns off the


screen pixel nearest to window coordinates
(x, y).

PtOn

CATALOG

PtOn 3,5

PtOn x, y
PtOn xList, yList

Displays the Graph screen and turns on the screen


pixel nearest to window coordinates
(x, y).

ptTest()

CATALOG

ptTest (x, y) Boolean constant expression


ptTest (xList, yList) 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.

232

Appendix A: Functions and Instructions

PtText

CATALOG

PtText string, x, y

PtText "sample",3,5

Displays the Graph screen and places the


character string string on the screen at the pixel
nearest the specified (x, y) window coordinates.
string is positioned with the upper-left corner of
its first character at the coordinates.

PxlChg

CATALOG

PxlChg row, col


PxlChg 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

233

PxlOff

CATALOG

PxlHorz 25,1
PxlOff 25,50

PxlOff row, col


PxlOff rowList, colList

Displays the Graph screen and turns off the pixel


at pixel coordinates (row, col).
Note: Regraphing erases all drawn items.

25,50

PxlOn

CATALOG

PxlOn 25,50

PxlOn row, col


PxlOn rowList, colList

Displays the Graph screen and turns on the pixel


at pixel coordinates (row, col).
Note: Regraphing erases all drawn items.

pxlTest()

CATALOG

pxlTest (row, col) Boolean expression


pxlTest (rowList, colList) 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)

Note: Regraphing erases all drawn items.

PxlOff 25,50
"
PxlTest(25,50)

PxlText

true

false

CATALOG

PxlText "sample text",20,10

PxlText string, row, col

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 50,1

PxlVert col [, drawMode]

Draws a vertical line down the screen at pixel


position col.
If drawMode = 1, draws the line (default).
If drawMode = 0, turns off the line.
If drawMode = -1, turns a line that is on to off or
off to on (inverts pixels along the line).
Note: Regraphing erases all drawn items. See
also LineVert.

234

Appendix A: Functions and Instructions

QR

MATH/Matrix menu
QR matrix, qMatName, rMatName[ , tol]

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.
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.
If you use or set the mode to
Exact/Approx=APPROXIMATE, computations
are done using floating-point arithmetic.

The floating-point number (9.) in m1 causes


results to be calculated in floating-point form.
[1,2,3;4,5,6;7,8,9.]!m1
1 2 3
4 5 6
7 8 9.
QR m1,qm,rm

Done

.123
.492
.861

qm

8.124
0.
0.

rm

.904 .408
.301 .816
.301 .408
9.601 11.078
.904 1.809

0.
0.

If tol is omitted or not used, the default


tolerance is calculated as:
5E 14 max(dim(matrix))
rowNorm(matrix)

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.

[mo np]

[m,n;o,p]!m1

QR m1,qm,rm

Done

qm

m
sign(mp no)o
m2 + o2
m2 + o 2
o
msign(mp no)
m2 + o 2
m2 + o 2

m +o
0

rm

QuadReg

mn+op
m2 + o 2
|mp no|
m2 + o 2

MATH/Statistics/Regressions menu

QuadReg list1, list2[, [list3] [, list4, list5]]

Calculates the quadratic polynomial regression


and updates the system statistics variables.
All the lists must have equal dimensions except
for list5.
list1 represents xlist.
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Appendix A: Functions and Instructions

In function graphing mode:


{0,1,2,3,4,5,6,7}! L1
{1 2 3 ...}
{4,3,1,1,2,2,3,3}! L2
QuadReg L1,L2
ShowStat

{4 3 1 ...}
Done

235

Note: list1 through list4 must be a variable name


or c1c99. (columns in the last data variable
shown in the Data/Matrix Editor). list5 does not
have to be a variable name and cannot be c1c99
.

QuartReg

Regeq(x)"y1(x)
NewPlot 1,1,L1,L2

Done
Done

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.
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 c1c99 (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.

{ 2, 1,0,1,2,3,4,5,6}! L1
{ 2 1 0 ...}
{4,3,1,2,4,2,1,4,6}! L2
{4 3 1 ...}
Done
QuartReg L1,L2
ShowStat

Regeq(x)"y1(x)
NewPlot 1,1,L1,L2

Done
Done

236

Appendix A: Functions and Instructions

R44Pq
q()

MATH/Angle menu
R44Pq
q (xExpression, yExpression) expression
R44Pq
q (xList, yList) list
R44Pq
q (xMatrix, yMatrix) matrix

In Degree angle mode:


R8Pq(x,y)

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,p4,1.5])

R44Pr()

MATH/Angle menu
R44Pr (xExpression, yExpression) expression
R44Pr (xList, yList) list
R44Pr (xMatrix, yMatrix) matrix

Returns the equivalent r-coordinate of the


(x,y) pair arguments.

4Rad

In Radian angle mode:


R4Pr(3,2)
R4Pr(x,y)
R4Pr([3,-4,2],[0,p4,1.5])

CATALOG/MATH/Angle menu
4 Rad expression

Converts an expression to radian angle measure.

In Degree angle mode:


1.5 4Rad

.02618R

In Gradian angle mode:


1.5 4Rad

rand()

.023562R

MATH/Probability menu

rand([n])

expression

n is an integer zero.

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].

Appendix A: Functions and Instructions

RandSeed 1147

Done

(Sets the random-number)


rand()
rand(6)
rand( 100)

.158...
5
49

237

randMat() MATH/Probability menu


randMat(numRows, numColumns)

matrix

RandSeed 1147

Returns a matrix of integers between -9 and 9 of


the specified dimension.
Both arguments must simplify to integers.

randNorm()

Note: The values in this matrix will change


each time you press .

MATH/Probability menu

randNorm(mean, sd)

expression

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()

randMat(3,3)

Done

8 3 6
2 3 6
0 4 6

RandSeed 1147
randNorm(0,1)
randNorm(3,4.5)

Done
.492...
3.543...

MATH/Probability menu

randPoly(var, order)

expression

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.

RandSeed 1147
Done
randPoly(x,5)
2 x5+3 x4 6 x3+4 x 6

order must be 099.

RandSeed

MATH/Probability menu

RandSeed number

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

RandSeed 1147
rand()

Done
.158...

RclGDB GDBvar

Done

CATALOG

RclGDB GDBvar

Restores all the settings stored in the Graph


database variable GDBvar.
For a listing of the settings, see StoGDB.
Note: It is necessary to have something saved in
GDBvar before you can restore it.

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

238

expression

real(2+3i)

Returns the real part of the argument.

real(z)

Note: All undefined variables are treated as real


variables. See also imag().

real(x+iy)

real( expression1)

Appendix A: Functions and Instructions

list

real( list1)

real({a+i b,3,i})

{a 3 0}

Returns the real parts of all elements.


real( matrix1)

matrix

a 3

[c 0]

real([a+i b,3;c,i])

Returns the real parts of all elements.

4Rect

MATH/Matrix/Vector ops menu


vector 4Rect

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.
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.

[3,p4,p6]4Rect
3 2 3 2 3 3
[ 4
]
4
2
[a,b,c]
[a cos(b) sin(c)
a sin(b) sin(c) a cos(c)]

Note: See also 4Polar.


In Radian angle mode:

complexValue 4Rect

Displays complexValue in rectangular form a+bi.


The complexValue can have any complex form.
However, an re iq entry causes an error in Degree
angle mode.
Note: You must use parentheses for an (rq)
polar entry.

4e^(p/3)4Rect

4e 3

(4p/3)4Rect

2+2

3i

In Gradian angle mode:


(1100)4Rect

In Degree angle mode:


(460)4Rect

2+2

3i

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

Returns the row echelon form of matrix1.


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.
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:

ref([2,2,0,6;1,1,9,9;5,
2,4,4])
1 2/5 4/5 4/5
0 1 4/7 11/7
0 0 1 62/71

[a,b,c;e,f,g]!m1

ref(m1)

[ae

b c
f g

f g

e e

ag ce
1 af be

5E 14 max(dim(matrix1))
rowNorm(matrix1)

Note: See also rref().

Appendix A: Functions and Instructions

239

remain()

MATH/Number menu

remain( expression1, expression2) expression


remain( list1, list2) list
remain( matrix1, matrix2) matrix

Returns the remainder of the first argument with


respect to the second argument as defined by the
identities:

remain(7,0)

remain(7,3)

remain( 7,3)

remain(7, 3)

remain( 7, 3)

remain(x,0) x
remain(x,y) x yiPart(x/y)

remain({12, 14,16},{9,7, 5})


{3 0 1}

As a consequence, note that remain( x,y)


remain(x,y). The result is either zero or it has
the same sign as the first argument.

remain([9, 7;6,4],[4,3;4, 3])


1 1

[2 1 ]

Note: See also mod().

Rename

CATALOG

Rename oldVarName, newVarName

Renames the variable oldVarName as newVarName.

Request

{1,2,3,4}
Done
{1,2,3,4}

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.
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.
If more than one Request command appears within
a Dialog...EndDlog construct, the first alpha setting
is used and subsequent ones are ignored.

Return

{1,2,3,4}! L1
Rename L1, list1
list1

The argument turned on alpha-lock in the


above example.
Request Enter number,n,0

The argument turned off alpha-lock in the


above example.

CATALOG

Return [expression]

Returns expression as the result of the function.


Use within a Func...EndFunc block, or
Prgm...EndPrgm block.
Note: Use Return without an argument to exit a
program.

Define factoral(nn)=Func
:local answer,count:1! answer
:For count,1,nn
:answer count! answer:EndFor
:Return answer:EndFunc
factoral(3)

Done
6

Note: Enter the text as one long line on the


Home screen (without line breaks).

240

Appendix A: Functions and Instructions

right()

MATH/List menu

right(list1[, num])

list

right({1,3, 2,4},3)

{3 2 4}

Returns the rightmost num elements contained in


list1.
If you omit num, returns all of list1.

right(sourceString[, num])

string

right("Hello",2)

"lo"

Returns the rightmost num characters contained


in character string sourceString.
If you omit num, returns all of sourceString.
right(comparison)

expression

right(x<3)

Returns the right side of an equation or


inequality.

root()

CATALOG/MATH/Number menu
root(expression)

root

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.

rotate()

root(8,3)

root(3,3)

1/3

1.442249570

root(3,0,3)

MATH/Base menu

rotate(integer1[,#ofRotations])

integer

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.
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).
For example, in a right rotation:

In Bin base mode:


rotate(0b1111010110000110101)
0b10000000000000111101011000011010
rotate(256,1)

0b1000000000

In Hex base mode:


rotate(0h78E)
rotate(0h78E,2)
rotate(0h78E,2)

Each bit rotates right.

0b00000000000001111010110000110101

0h3C7
0h800001E3
0h1E38

Important: To enter a binary or hexadecimal


number, always use the 0b or 0h prefix (zero,
not the letter O).

Rightmost bit rotates to leftmost.

produces:
0b10000000000000111101011000011010
The result is displayed according to the Base
mode.
rotate(list1[,#ofRotations])

list

In Dec base mode:

Returns a copy of list1 rotated right or left by #of


Rotations elements. Does not alter list1.

rotate({1,2,3,4})

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)

Appendix A: Functions and Instructions

rotate({1,2,3,4},1)

{4 1 2 3}
{3 4 1 2}
{2 3 4 1}

241

string

rotate(string1[,#ofRotations])

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()

rotate("abcd")

"dabc"

rotate("abcd",2)

"cdab"

rotate("abcd",1)

"bcda"

round(1.234567,3)

1.235

MATH/Number menu

round( expression1[, digits])

expression

Returns the argument rounded to the specified


number of digits after the decimal point.
digits must be an integer in the range 012. 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.

rowAdd()

1.6 1.1

[3.1 2.7]

MATH/Matrix/Row ops menu

rowAdd( matrix1, rIndex1, rIndex2)

matrix

rowAdd([3,4; 3, 2],1,2)

[30 42]

Returns a copy of matrix1 with row rIndex2


replaced by the sum of rows rIndex1 and rIndex2.
rowAdd([a,b;c,d],1,2)

rowDim()

a
b
[a+c b+d]

MATH/Matrix/Dimensions menu

rowDim( matrix)

expression

Returns the number of rows in matrix.

[1,2;3,4;5,6]! M1

Note: See also colDim().

rowdim(M1)

rowNorm()

1 2
3 4
5 6
3

MATH/Matrix/Norms menu

rowNorm( matrix)

expression

Returns the maximum of the sums of the absolute


values of the elements in the rows in matrix.

rowNorm([-5,6,-7;3,4,9;9,-9,-7])

25

Note: All matrix elements must simplify to


numbers. See also colNorm().

242

Appendix A: Functions and Instructions

rowSwap()

MATH/Matrix/Row ops menu

rowSwap( matrix1, rIndex1, rIndex2)

matrix

[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

Returns the reduced row echelon form of matrix1.

rref([2,2,0,6;1,1,9,9;
5,2,4,4])

1
0

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.

0 0
1 0
0 1

66/71
147
71
62/71

rref([a,b,x;c,d,y])

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:

d x-b y

0 a d-b c

(c x-a y)
1
a d-b c

5E 14 max(dim(matrix1))
rowNorm(matrix1)

Note: See also ref().

sec()

MATH/Trig menu
sec(expression1) expression
sec(list1) list

Returns the secant of expression1 or returns a list


containing the secants of all elements in list1.
Note: The result is returned as a degree, gradian
or radian angle, according to the current angle
mode setting.

Appendix A: Functions and Instructions

In Degree angle mode:


sec(45)

(2)

sec({1,2.3,4})
1
1
{ cos(1) 1.000 cos(4)}

243

sec L1()

MATH/Trig menu
sec L1(expression1) expression
sec L1(list1) list

In Degree angle mode:

Returns the angle whose secant is expression1 or


returns a list containing the inverse secants of
each element of list1.
Note: The result is returned as a degree, gradian
or radian angle, according to the current angle
mode setting.

secL1(1)

In Gradian angle mode:


secL1( 2 )

50

In Radian angle mode:


secL1({1,2,5})
p
{ 0 3 cos L1(1/5)}

sech()

MATH/Hyperbolic menu
sech(expression1) expression
sech(list1) list

Returns the hyperbolic secant of expression1 or


returns a list containing the hyperbolic secants of
the list1 elements.

sechL1()

sech({1,2.3,4})
1
1
.198
{
cosh(4)}
cosh(1)

MATH/Hyperbolic menu

sech L1(expression1) expression


sech L1 (list1) list

In Radian angle and Rectangular complex


mode:

Returns the inverse hyperbolic secant of


expression1 or returns a list containing the
inverse hyperbolic secants of each element of
list1.

Send

1
cosh(3)

sech(3)

sechL1(1)

L1({1,L2,2.1})

sech

{0 (2 p) i 1.074 i }
3

CATALOG

Program segment:

Send list

CBL 2 (Calculator-Based Laboratory) or


CBR (Calculator-Based Ranger) instruction.
Sends list to the link port.

SendCalc

:Send {1,0}
:Send {1,2,1}

CATALOG

Program segment:

SendCalc var

Sends variable var to the link port, where another


unit linked to that port can receive the variable
value. The receiving unit must be on the Home
screen or must execute GetCalc from a program.

:a+b! x
:SendCalc x

If you send from a TI-89, 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.

244

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

Program segment:

SendChat var

A general alternative to SendCalc, this is useful


if the receiving unit is a TI-92 (or for a generic
"chat" program that allows either a TI-92,
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

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.
var cannot be a system variable.

seq(n^2,n,1,6)

{1 4 9 16 25 36}

seq(1/n,n,1,10,2)
{1 1/3 1/5 1/7 1/9}
sum(seq(1n^2,n,1,10,1))
196...
127...

The default value for step = 1.


or press to get:

setDate()

1.549...

CATALOG

setDate(year,month,day) listold

setDate(2001,10,31)

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.

{2001 11 1}

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

Sets the date format for the desktop according to


the argument and returns the previous date
format value.

Integer values:
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

245

setFold()

CATALOG

setFold( newfolderName)

oldfolderString

Returns the name of the current folder as a string


and sets newfolderName as the current folder.
The folder newfolderName must exist.

newFold chris

Done

setFold(main)

"chris"

setFold(chris)! oldfoldr

"main"

1! a
setFold(#oldfoldr)

setGraph()

1
"chris"

chris\a

CATALOG
string

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("Graph Order","Seq")

"SEQ"

setGraph("Coordinates","Off")

"RECT"

modeNameString is a character string that specifies

Note: Capitalization and blank spaces are


optional when entering mode names.

setGraph(modeNameString, settingString)

which mode you want to set. It must be one of


the mode names from the table below.
settingString is a character string that specifies the
new setting for the mode. It must be one of the
settings listed below for the specific mode you
are setting.
Mode Name

Settings

"Coordinates"

"Rect", "Polar", "Off"

"Graph Order"

"Seq", "Simul" 1

"Grid"

"Off", "On" 2

"Axes"

"Off", "On"
"Off", "Axes", "Box"

"Leading Cursor"

"Off", "On" 2

"Labels"

"Off", "On"

"Style"

"Wire Frame", "Hidden Surface", "Contour Levels", "Wire and Contour",


"Implicit Plot" 3

"Seq Axes"

"Time", "Web", "U1-vs-U2" 4

"DE Axes"

"Time", "t-vs-y' ", "y-vs-y' ", "y1-vs-y2", "y1-vs-y2' ", "y1'-vs-y2' " 5

(not 3D graph mode)


(3D graph mode)

Tip: To type a prime symbol ( ' ), press 2 .


"Solution Method"

"RK", "Euler" 5

"Fields"

"SlpFld", "DirFld", "FldOff" 5

Discontinuity
Detection

Off, On 6

1
Not available in Sequence, 3D, or Diff Equations graph mode. Also not available in Function graph mode
with Discontinuity Detection set to On.
2
Not available in 3D graph mode.

246

Appendix A: Functions and Instructions

Applies only to 3D graph mode.


Applies only to Sequence graph mode.
5
Applies only to Diff Equations graph mode.
6
Applies only to Function graphing mode, when Graph Order is set to Seq.
4

setMode()

CATALOG

setMode(modeNameString, settingString)
setMode(list) stringList

string

Sets mode modeNameString to the new setting


settingString, and returns the current setting of

setMode("Angle","Degree")

"RADIAN"
2
2

sin(45)

that mode.
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.

setMode("Angle","Radian")

"DEGREE"
2
2

sin(p4)
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.
Use setMode(var) to restore settings saved with
getMode("ALL")! var.

2
2

sin(50)
setMode("Display Digits",
"Fix 2")
p

Note: To set or return information about the


setMode ("Display Digits",
Unit System mode, use setUnits() or getUnits() "Float")
instead of setMode() or getMode().
p

"FLOAT"
3.14
"FIX 2"
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"

"Display Digits"

"Fix 0", "Fix 1", ..., "Fix 12", "Float", "Float 1", ..., "Float 12"

"Angle"

"Radian", "Degree", Gradian

"Exponential Format"

"Normal", "Scientific", "Engineering"

"Complex Format"

"Real", "Rectangular", "Polar"

"Vector Format"

"Rectangular", "Cylindrical", "Spherical"

"Pretty Print"

"Off", "On"

Appendix A: Functions and Instructions

247

"Split Screen"

"Full", "Top-Bottom", "Left-Right"

"Split 1 App"

"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"

"1", "2"

"Graph2"

"Function", "Parametric", "Polar", "Sequence", "3D", "Diff Equations"

"Split Screen Ratio"

"1:1", "1:2", "2:1" (Voyage 200 only)

"Exact/Approx"

"Auto", "Exact", "Approximate"

"Base"

"Dec", "Hex", "Bin"

"Language"

"English", "Alternate Language"

Apps Desktop

Off, On

setTable()

CATALOG

setTable(modeNameString, settingString)

string

Sets the table parameter modeNameString to


settingString, and returns the previous setting of
the parameter. Storing the previous setting lets
you restore it later.
modeNameString is a character string that specifies

setTable("Graph < > Table","ON")

"OFF"
setTable("Independent","AUTO")

"ASK"

&

which parameter you want to set. It must be one


of the parameters from the table below.
settingString is a character string that specifies the
new setting for the parameter. It must be one of
the settings listed below for the specific
parameter you are setting.

Note: Capitalization and blank spaces are


optional when entering parameters.
Parameter Name

Settings

"Graph <-> Table"

"Off", "On"

"Independent"

"Auto", "Ask"

setTime()

CATALOG

setTime(hour,minute,second) listold

setTime(11,32,50)

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.

{10 44 49}

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.

248

12 = 12 hour clock
24 = 24 hour clock

Appendix A: Functions and Instructions

setTmZn()

CATALOG

setTmZn(integer) integerold

Sets the time zone according to the argument and


returns the previous time zone value.
The time zone is defined by an integer that gives
the minutes 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).

If Greenwich Mean Time is 14:07:07, it is:


7:07:07 a.m. in Denver, Colorado (Mountain
Standard Time)
(420 minutes from GMT)
15:07:07 p.m. in Brussels, Belgium (Central
European Standard Time)
(+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"}
To specify a custom set of default units, list1
uses the form:

29
setUnits({"SI"})
{"SI" "Area" "NONE"
"Capacitance" "_F" ...}

{"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

249

Shade

CATALOG

In the ZoomTrig viewing window:

Shade expr1, expr2, [xlow], [xhigh], [pattern], [patRes]

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.
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

10= 9 pixels spacing

"
ClrDraw
Shade cos(x),sin(x),0,5

Done

"
ClrDraw
Shade cos(x),sin(x),0,5,2

Done

Note: Interactive shading is available on the


Graph screen through the Shade instruction.
Automatic shading of a specific function is
available through the Style instruction. Shade is
not valid in 3D graphing mode.
"
Done
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.
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).
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.
For example, in a right shift:

250

shift(0b1111010110000110101)
0b111101011000011010
shift(256,1)

0b1000000000

In Hex base mode:


shift(0h78E)

0h3C7

shift(0h78E,2)

0h1E3

shift(0h78E,2)

0h1E38

Important: To enter a binary or hexadecimal


number, always use the 0b or 0h prefix (zero,
not the letter O).

Appendix A: Functions and Instructions

Each bit shifts right.

0b00000000000001111010110000110101
Inserts 0 if leftmost bit is 0,
or 1 if leftmost bit is 1.

Dropped

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})

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}

Elements introduced at the beginning or end of


list by the shift are set to the symbol undef.
shift(string1 [,#ofShifts])

string

Returns a copy of string1 shifted right or left by


#ofShifts characters. Does not alter string1.
If #ofShifts is positive, the shift is to the left. If
#ofShifts is negative, the shift is to the right. The
default is 1 (shift right one character).

shift({1,2,3,4},1)

{undef 1 2 3}

{2 3 4 undef}

shift("abcd")

" abc"

shift("abcd",2)

" ab"

shift("abcd",1)

"bcd "

Characters introduced at the beginning or end of


string by the shift are set to a space.

ShowStat

CATALOG

ShowStat

Displays a dialog box containing the last


computed statistics results if they are still valid.
Statistics results are cleared automatically if the
data to compute them has changed.

{1,2,3,4,5}! L1
{0,2,6,10,25}! L2
TwoVar L1,L2
ShowStat

{1 2 3 4 5}
{0 2 6 10 25}

Use this instruction after a statistics calculation,


such as LinReg.

sign()

MATH/Number menu
sign(expression1) expression
sign(list1) list
sign(matrix1) matrix

For real and complex expression1, returns


expression1/abs(expression1) when expression1 0.
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.

sign( 3.2)
sign({2,3,4, 5})

1.

{1 1 1 1}

sign(1+abs(x))

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

251

simult()

MATH/Matrix menu

simult(coeffMatrix, constVector[, tol])

matrix

Solve for x and y:

Returns a column vector that contains the


solutions to a system of linear equations.

x + 2y = 1
3x + 4y = 1

simult([1,2;3,4],[1;1])

coeffMatrix must be a square matrix that contains


constVector must have the same number of rows
(same dimension) as coeffMatrix and contain the
constants.

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.

[2]

the coefficients of the equations.


The solution is x= 3 and y=2.
Solve:

ax + by = 1
cx + dy = 2
a b

[c d]

[a,b;c,d]!matx1
simult(matx1,[1;2])

(2 b d)
a d b c
2 a c
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(coeffMatrix))
rowNorm(coeffMatrix)
simult(coeffMatrix, constMatrix[, tol])

matrix

Solve:

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.

sin()

x + 2y = 1
3x + 4y = 1

3 7
9/2]

[2

For the first system, x= 3 and y=2. For the


second system, x= 7 and y=9/2.

2 W key
sin(expression1) expression
sin(list1) list

In Degree angle mode:

sin(expression1) returns the sine of the argument

sin((p/4) )

2
2

sin(45)

2
2

as an expression.
sin(list1) returns a list of the sines of all elements

in list1.
Note: The argument is interpreted as a degree,
gradian or radian angle, according to the current
G
angle mode. You can use , o r to override
the angle mode setting temporarily.

sin({0,60,90})

{0

3
2 1}

In Gradian angle mode:


sin(50)

2
2

In Radian angle mode:

252

sin(p/4)

2
2

sin(45)

2
2

Appendix A: Functions and Instructions

sin(squareMatrix1)

squareMatrix

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().
squareMatrix1 must be diagonalizable. The result

In Radian angle mode:


sin([1,5,3;4,2,1;6,2,1])

.942
.045
.048

.045 .031
.949 .020
.005 .961

always contains floating-point numbers.

sin ()

Q key
sin (expression1) expression
sin (list1) list
sin (expression1) returns the angle whose sine is

90

expression1 as an expression.

In Gradian angle mode:

sin (list1) returns a list of the inverse sines of

sin (1)

each element of list1.


Note: The result is returned as a degree, gradian
or radian angle, according to the current angle
mode setting.

sin(squareMatrix1)

squareMatrix

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().
squareMatrix1 must be diagonalizable. The result

always contains floating-point numbers.

sinh()

In Degree angle mode:


sin (1)

100

In Radian angle mode:


sin ({0,.2,.5})
{0 .201... .523...}

In Radian angle mode and Rectangular complex


format mode:
sin([1,5,3;4,2,1;6,2,1])

.164.064i
.725 1.515i
2.083 2.632i

1.490 2.105i
.947.778i

1.790+1.271i

MATH/Hyperbolic menu
sinh(expression1) expression
sinh(list1) list
sinh (expression1) returns the hyperbolic sine of

the argument as an expression.

sinh(1.2)

1.509...

sinh({0,1.2,3.})
{0 1.509... 10.017...}

sinh (list) returns a list of the hyperbolic sines of

each element of list1.


sinh(squareMatrix1)

squareMatrix

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().

In Radian angle mode:


sinh([1,5,3;4,2,1;6,2,1])

360.954
352.912
298.632

305.708 239.604
233.495 193.564
154.599 140.251

squareMatrix1 must be diagonalizable. The result

always contains floating-point numbers.

sinh ()

MATH/Hyperbolic menu

sinh (expression1) expression


sinh (list1) list
sinh (expression1) returns the inverse hyperbolic
sine of the argument as an expression.

sinh (0)

sinh ({0,2.1,3})
{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

253

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
1.463
2.750

2.155 1.158
.926
.112
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.
All the lists must have equal dimensions except
for list4.
list1 represents xlist.
list2 represents ylist.
list3 represents category codes.
list4 represents category include list.
iterations specifies the maximum number of times
(1 through 16) a solution will be attempted. If
omitted, 8 is used. Typically, larger values result
in better accuracy but longer execution times, and
vice versa.
period specifies an estimated period. If omitted,
the difference between values in list1 should be
equal and in sequential order. If you specify
period, the differences between x values can be
unequal.

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
{5.5 8 11 }
SinReg L1,L2
Done
ShowStat

regeq(x)!y1(x)
NewPlot 1,1,L1,L2
%
9

Done
Done

Note: list1 through list3 must be a variable name


or c1c99 (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)

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.

254

x=
or x =

b -4 a c-b
2 a

( b -4 a c+b)
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...

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


solve(entry(1)=0,x)
entry(2)|ans(1)
limit(entry(3),x,1)

2 x 2
x=1
undef
0

For inequalities of types , , <, or >, explicit


solutions are unlikely unless the inequality is linear
and contains only var.

solve(5x 2 2x,x)

x 2/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))
e x + x = 0 or x = a

Use the | operator to restrict the solution interval


and/or other variables that occur in the equation or
inequality. When you find a solution in one interval,
you can use the inequality operators to exclude that
interval from subsequent searches.

In Radian angle mode:

false is returned when no real solutions are found.


true is returned if solve() can determine that any

solve(tan(x)=1/x,x)|x>0 and x<1


x =.860...
solve(x=x+1,x)

false
true

finite real value of var satisfies the equation or


inequality.

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^29,x)
x 1 and x 3

Solutions might contain a unique new undefined


variable of the form @nj with j being an integer in
the interval 1255. Such variables designate an
arbitrary integer.
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.

In Radian angle mode:


solve(sin(x)=0,x)

x = @n 1 p

solve(x^(1/3)= 1,x)

x = 1

solve((x)= 2,x)

false

solve( (x)= 2,x)

x=4

Note: See also cSolve(), cZeros(), nSolve(), and


zeros().
solve(equation1 and equation2 [and ], {varOrGuess1,
varOrGuess2 [, ]}) Boolean expression

Returns candidate real solutions to the


simultaneous algebraic equations, where each
varOrGuess specifies a variable that you want to
solve for.

solve(y=x^22 and
x+2y=1,{x,y})

x=1 and y=1


or x=3/2 and y=1/4

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

255

If all of the equations are polynomials and if you


do NOT specify any initial guesses, solve() uses
the lexical Grbner/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
(xr)^2+y^2=r^2,{x,y})
r
3r
x= and y=
2
2
3r
r
or x= and y=
2
2

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
(xr)^2+y^2=r^2,{x,y,z})
r
3 r
x=
and y=
and z=@1
2
2
3 r
r
and y=
and z=@1
or x=
2
2

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.

256

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
xy=sin(z),{x,y})

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

x=

ezsin(z)+1
(sin(z) 1)
and y=
e z +1
e z +1

Appendix A: Functions and Instructions

Each solution variable starts at its guessed value


if there is one; otherwise, it starts at 0.0.
Use guesses to seek additional solutions one by
one. For convergence, a guess may have to be
rather close to a solution.

SortA

solve(e^(z)y=1 and
y=sin(z),{y,z=2p})
y=.001 and z=6.281

MATH/List menu
SortA listName1[, listName2] [, listName3] ...
SortA vectorName1[, vectorName2] [, vectorName3] ...

Sorts the elements of the first argument in


ascending order.
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.

{2,1,4,3}! list1
SortA list1

{2,1,4,3}
Done

list1
{4,3,2,1}! list2
SortA list2,list1

{1 2 3 4}
{4 3 2 1}
Done

list2
list1

{1 2 3 4}
{4 3 2 1}

{2,1,4,3}! list1
{1,2,3,4}! list2
SortD list1,list2
list1
list2

{2 1 4 3}
{1 2 3 4}
Done
{4 3 2 1}
{3 4 1 2}

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] ...

Identical to SortA, except SortD sorts the


elements in descending order.

4Sphere

MATH/Matrix/Vector ops menu

vector 4Sphere

Displays the row or column vector in spherical


form [r q f].
vector must be of dimension 3 and can be either a

row or a column vector.


Note: 4Sphere is a display-format instruction,
not a conversion function. You can use it only at
the end of an entry line.

[1,2,3]4Sphere

[3.741... 1.107... .640...]


[2,p4,3]4Sphere
[3.605... .785... .588...]
p
3 13

[13
cos (
)]
13
4

Z
(,,)

startTmr()

CATALOG

startTmr() integer

Returns the current value of the clock in its


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.
You can run multiple timers simultaneously.
Note: See also checkTmr() and timeCnv().

Appendix A: Functions and Instructions

startTmr()
checkTmr(148083315)

148083315
34

startTmr()!Timer1

startTmr()!Timer2

checkTmr(Timer1)!Timer1Value

checkTmr(Timer2)!Timer2Value

257

stdDev()

MATH/Statistics menu

stdDev(list[, freqlist])

expression

Returns the standard deviation of the elements in


list.

stdDev({a,b,c})
stdDev({1,2,5, 6,3, 2})

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})

stdDev(matrix1[, freqmatrix])

matrix

Returns a row vector of the standard deviations


of the columns in matrix1.
Each freqmatrix element counts the number of
consecutive occurrences of the corresponding
element in matrix1.

4.33345

stdDev([1,2,5;-3,0,1;.5,.7,3])
[2.179... 1.014... 2]
stdDev([L1.2,5.3;2.5,7.3;6,L4],[4,2;3
,3;1,7])
[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.
stdDevPop({1,2,5, 6,3, 2})

Note: list must have at least two elements.

stdDevPop({1.3,2.5,L6.4},{3,2,5})

stdDevPop(matrix1[, freqmatrix])

matrix

Returns a row vector of the population standard


deviations of the columns in matrix1.

stdDevPop([[1,2,5][-3,0,1][.5,.7,3]])

Each freqmatrix element counts the number of


consecutive occurrences of the corresponding
element in matrix1.
Note: matrix1 must have at least two rows.

258

stdDevPop([L1.2,5.3;2.5,7.3;6,L4],[4,
2;3,3;1,7])

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

Program segment:

Stop

Used as a program instruction to stop program


execution.

StoPic

For i,1,10,1
If i=5
Stop
EndFor

CATALOG

StoPic picVar [, pxlRow, pxlCol] [, width, height]

Displays the graph screen and copies a


rectangular area of the display to the variable
picVar.
pxlRow and pxlCol, if included, specify the upper-

left corner of the area to copy (defaults are 0, 0).


width and height, if included, specify the

dimensions, in pixels, of the area. Defaults are the


width and height, in pixels, of the current graph
screen.

Store

See ! (store), page 288.

string()

MATH/String menu

string(expression)

string

Simplifies expression and returns the result as a


character string.

Appendix A: Functions and Instructions

string(1.2345)
string(1+2)

"1.2345"
"3"

string(cos(x)+(3))
"cos(x) + (3)"

259

Style

CATALOG
Style equanum, stylePropertyString

Sets the system graphing function equanum in the


current graph mode to use the graphing property
stylePropertyString.
equanum must be an integer from 199 and the

function must already exist.

Style 1,"thick"

Done

Style 10,"path"

Done

Note: In function graphing mode, these


examples set the style of y1(x) to "Thick" and
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:
Parametric/Polar:

all styles
line, dot, square, thick,
animate, path
line, dot, square, thick
none
line, dot, square, thick,
animate, path

Sequence:
3D:
Diff Equations:

Note: Capitalization and blank spaces are


optional when entering stylePropertyString names.

subMat()

CATALOG

[1,2,3;4,5,6;7,8,9]! m1

subMat(matrix1[, startRow] [, startCol] [, endRow]


matrix
[, endCol])

1
4
7

Returns the specified submatrix of matrix1.


subMat(m1,2,1,3,2)

Defaults: startRow=1, startCol=1, endRow=last


row, endCol=last column.

2 3
5 6
8 9
4 5

[7 8]

subMat(m1,2,2)

5 6

[8 9]

Sum (Sigma)
sum()

See G(), page 284.

MATH/List menu
sum(list[, start[, end]])

expression

sum({1,2,3,4,5})
sum({a,2a,3a})

Start and end are optional. They specify a range of

sum(seq(n,n,1,10))

55

sum({1,3,5,7,9},3)

21

sum([1,2,3;4,5,6])

[5 7 9]

elements.
sum(matrix1[, start[, end]])

matrix

Returns a row vector containing the sums of the


elements in the columns in matrix1.
Start and end are optional. They specify a range of

rows.

6 a

sum([1,2,3;4,5,6;7,8,9])
[12 15 18]
sum([1,2,3;4,5,6;7,8,9],2,3)

260

15

Returns the sum of the elements in list.

[11,13,15]

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.
If integer1 = 1, activates window 1 and returns the
previously active window number.

switch()

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)

MATH/Matrix menu

matrix1

matrix

[1,2,3;4,5,6;7,8,9]! mat1

Returns the complex conjugate transpose of


matrix1.
mat1

2 3
5 6
8 9

1
2
3

4 7
5 8
6 9
a b

[a,b;c,d]! mat2

[c d]

mat2

[b d]

[1+i,2+i;3+i,4+i]! mat3

mat3

Appendix A: Functions and Instructions

1
4
7

a c

1+i 2+i
[3+i 4+i]
1 i 3 i
[2 i 4 i]

261

Table

CATALOG

In function graphing mode.

Table expression1[, expression2] [, var1]

Table 1.25x cos(x)

Builds a table of the specified expressions or


functions.
The expressions in the table can also be graphed.
Expressions entered using the Table or Graph
commands are assigned increasing function
numbers starting with 1. The expressions can be
modified or individually deleted using the edit
functions available 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 graphmode independent variable is assumed. Some
valid variations of this instruction are:
Function graphing:
Table expr, x
Parametric graphing: Table xExpr, yExpr, t
Polar graphing:
Table expr, q
Note: The Table command is not valid for 3D,
sequence, or diff equations graphing. As an
alternative, you may want to use BldData.

tan()

2 Y key
tan(expression1) expression
tan(list1) list

In Degree angle mode:


tan((p/4) )

argument as an expression.

tan(45)

tan(list1) returns a list of the tangents of all


elements in list1.

tan({0,60,90})

Note: The argument is interpreted as a degree,


gradian or radian angle, according to the current
G
angle mode. You can use , o r to override
the angle mode setting temporarily.

In Gradian angle mode:

tan(expression1) returns the tangent of the

{0 3 undef}

200 tan (

tan((p/4) )

tan(50)
tan({0,50,100})

{0 1 undef}

In Radian angle mode:


tan(p/4)

tan(45)

tan({p,p/3,-p,p/4})

262

{0 3 0 1}

Appendix A: Functions and Instructions

tan(squareMatrix1)

squareMatrix

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().
squareMatrix1 must be diagonalizable. The result

In Radian angle mode:


tan([1,5,3;4,2,1;6,2,1])

28.291
12.117
36.818

26.088 11.114
7.835 5.481
32.806 10.459

always contains floating-point numbers.

tan ()

S key

tan (expression1) expression


tan (list1) list
tan (expression1) returns the angle whose

In Degree angle mode:


tan (1)

tangent is expression1 as an expression.

In Gradian angle mode:

tan (list1) returns a list of the inverse tangents

tan (1)

of each element of list1.


Note: The result is returned as a degree, gradian
or radian angle, according to the current angle
mode setting.

tan(squareMatrix1)

squareMatrix

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().

45

50

In Radian angle mode:


tan ({0,.2,.5})
{0 .197... .463...}

In Radian angle mode:


tan([1,5,3;4,2,1;6,2,1])

.083
.748
1.686

1.266 .622
.070
.630
1.182 .455

squareMatrix1 must be diagonalizable. The result

always contains floating-point numbers.

tanh()

MATH/Hyperbolic menu

tanh(expression1) expression
tanh(list1) list
tanh(expression1) returns the hyperbolic tangent

tanh(1.2)
tanh({0,1})

.833...
{0 tanh(1)}

of the argument as an expression.


tanh(list) returns a list of the hyperbolic tangents

of each element of list1.


tanh(squareMatrix1)

squareMatrix

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().

In Radian angle mode:


tanh([1,5,3;4,2,1;6,2,1])

.097
.488
1.282

.933
.425
.129
.538
1.034 .428

squareMatrix1 must be diagonalizable. The result

always contains floating-point numbers.

Appendix A: Functions and Instructions

263

tanh ()

MATH/Hyperbolic menu

tanh (expression1) expression


tanh (list1) list

In rectangular complex format mode:

tanh (expression1) returns the inverse hyperbolic

tangent of the argument as an expression.

tanh (0)
tanh ({1,2.1,3})
{

tanh (list1) returns a list of the inverse

.518... 1.570... i

hyperbolic tangents of each element of list1.


tanh(squareMatrix1)

squareMatrix

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().

ln(2) p
2 2 i}

In Radian angle mode and Rectangular complex


format mode:
tanh([1,5,3;4,2,1;6,2,1])
.099+.164i
.087.725
i

.511 2.083i

.267 1.490i

.479.947i

.878+1.790i

squareMatrix1 must be diagonalizable. The result

always contains floating-point numbers.

taylor()

MATH/Calculus menu

taylor(expression1, var, order[, point])

expression

Returns the requested Taylor polynomial. The


polynomial includes non-zero terms of integer
degrees from zero through order in (var minus
point). taylor() returns itself if there is no
truncated power series of this order, or if it would
require negative or fractional exponents. Use
substitution and/or temporary multiplication by a
power of
(var minus point) to determine more general
power series.

taylor(e^((x)),x,2)
taylor(e^(t),t,4)|t=(x)

taylor(1/(x (x 1)),x,3)

point defaults to zero and is the expansion point.

expand(taylor(x/(x(x1)),
x,4)/x,x)

tCollect()

MATH\Algebra\Trig menu

tCollect(expression1)

expression

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.

tCollect((cos(a))^2)
cos(2 a) + 1
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.

264

Appendix A: Functions and Instructions

tExpand()

MATH\Algebra\Trig menu

tExpand(expression1)

expression

Returns an expression in which sines and cosines


of integer-multiple angles, angle sums, and angle
differences are expanded. Because of the identity
(sin(x)) 2+(cos(x))2=1, there are many possible
equivalent results. Consequently, a result might
differ from a result shown in other publications.

tExpand(sin(3f))
4 sin(f) (cos(f)) sin(f)
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."

Displays the character string promptString dialog


box.

Done

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 206.

timeCnv()

CATALOG

timeCnv(seconds) list

timeCnv(152442117)

Converts seconds to units of time that can be


more easily understood for evaluation. The list is
in {days,hours,minutes,seconds} format.

{1764 9 1 57}

Note: See also checkTmr() and startTmr().

Title

CATALOG
Title titleString, [Lbl]

Creates the title of a pull-down menu or dialog


box when used inside a Toolbar or Custom
construct, or a Dialog...EndDlog block.
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.

Appendix A: Functions and Instructions

Program segment:

:Dialog
:Title
:Request
:Dropdown

:EndDlog

"This is a dialog box"


"Your name",Str1
"Month you were born",
seq(string(i),i,1,12),Var1

265

tmpCnv()

CATALOG

tmpCnv(100_c,_f)

tmpCnv(expression1_tempUnit1, _tempUnit2)
expression _tempUnit2

Converts a temperature value specified by


expression1 from one unit to another. Valid
temperature units are:
_C
_F
_K
_R

212._F

tmpCnv(32_f,_c)

Celsius
Fahrenheit
Kelvin
Rankine

0._C

tmpCnv(0_c,_k)

273.15_K

tmpCnv(0_f,_r)

459.67_R

Note: To select temperature units from a menu,


press 2 9

For , press 2 .
For _ , press .

For example, 100_C converts to 212_F:


0

100

32

212

_C
_F

To convert a temperature range, use @tmpCnv()


instead.

@tmpCnv()

CATALOG

To get @, you can press c [D]


(or 2 1 5).

@tmpCnv(expression1_tempUnit1, _tempUnit2)
expression _tempUnit2

Converts a temperature range (the difference


between two temperature values) specified by
expression1 from one unit to another. Valid
temperature units are:
_C
_F
_K
_R

Celsius
Fahrenheit
Kelvin
Rankine

@tmpCnv(100_c,_f)
@tmpCnv(180_f,_c)
@tmpCnv(100_c,_k)
@tmpCnv(100_f,_r)

For , press 2 .
For _ , press .

@tmpCnv(1_c,_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.

180._F
100._C
100._K
100._R
1.8_F

Note: To select temperature units from a menu,


press 2 9

For example, a 100_C range (from 0_C to


100_C) is equivalent to a 180_F range:
100_C
0

100

_C
_F

32

212
180_F

To convert a particular temperature value instead


of a range, use tmpCnv().

266

Appendix A: Functions and Instructions

Toolbar

CATALOG

Toolbar

block
EndTBar

Creates a toolbar menu.


block can be either a single statement or a

sequence of statements separated with the :


character. The statements can be either Title or
Item.
Items must have labels. A Title must also have a
label if it does not have an item.

Trace

Program segment:

:Toolbar
: Title "Examples"
: Item "Trig", t
: Item "Calc", c
: Item "Stop", Pexit
:EndTbar

Note: When run in a program, this segment


creates a menu with three choices that branch
to three places in the program.

CATALOG
Trace

Draws a Smart Graph and places the trace cursor


on the first defined Y= function at the previously
defined cursor position, or at the reset position if
regraphing was necessary.
Allows operation of the cursor and most keys
when editing coordinate values. Several keys,
such as the function keys, O, and 3, are
not activated during trace.
Note: Press to resume operation.

Try

CATALOG

Program segment:

Try

block1
Else

block2
EndTry

Executes block1 unless an error occurs. Program


execution transfers to block2 if an error occurs in
block1. Variable errornum contains the error
number to allow the program to perform error
recovery.
block1 and block2 can be either a single statement
or a series of statements separated with the :
character.

Appendix A: Functions and Instructions

:Try
: NewFold(temp)
: Else
: Already exists
: ClrErr
:EndTry

Note: See ClrErr and PassErr.

267

TwoVar

MATH/Statistics menu

{0,1,2,3,4,5,6}! L1

TwoVar list1, list2[, [list3] [, list4, list5]]

{0 1 2 ...}

Calculates the TwoVar statistics and updates all


the system statistics variables.

{0,2,3,4,3,4,6}! L2

All the lists must have equal dimensions except


for list5.

TwoVar L1,L2
ShowStat

{0 2 3 ...}
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 c1c99 (columns in the last data variable
shown in the Data/Matrix Editor). list5 does not
have to be a variable name and cannot be c1c99
.

Unarchiv

CATALOG

Unarchiv var1 [, var2] [, var3]

Moves the specified variables from the user data


archive memory to RAM.

10!arctest
Archive arctest
5arctest
15!arctest

10
Done
50

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.

unitV()

N
Unarchiv arctest
15!arctest

Done
15

MATH/Matrix/Vector ops menu

unitV(vector1)

vector

unitV([a,b,c])
[

Returns either a row- or column-unit vector,


depending on the form of vector1.
vector1 must be either a single-row matrix or a
single-column matrix.

a
a +b +c

a +b +c

unitV([1,2,1])

a +b +c

6 6 6
[6
3
6]
14

unitV([1;2;3])

Unlock

14
14
37 14
14

CATALOG

Unlock var1[, var2][, var3]...

Unlocks the specified variables.


Note: The variables can be locked using the
Lock command.

268

Appendix A: Functions and Instructions

variance() MATH/Statistics menu


variance(list[, freqlist])

expression

Returns the variance of list.

variance({a,b,c})
a -a (b+c)+b -b c+c
3

Each freqlist element counts the number of


consecutive occurrences of the corresponding
element in list.

variance({1,2,5, 6,3, 2})

Note: list must contain at least two elements.

variance({1,3,5},{4,6,2})

variance(matrix1[, freqmatrix])

matrix

Returns a row vector containing the variance of


each column in matrix1.
Each freqmatrix element counts the number of
consecutive occurrences of the corresponding
element in matrix1.

31/2
68/33

variance([1,2,5; 3,0,1;
[4.75 1.03 4]
.5,.7,3])
variance([L1.1,2.2;3.4,5.1;
L2.3,4.3],[6,3;2,4;5,1])
[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

Use an undef falseResult to define an expression


that graphs only on an interval.

ClrGraph
Graph when(xp 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)

Nest when() to define expressions that have


more than two pieces.

"
ClrGraph
Graph when(x<0,when(x<p,
4 sin(x),2x+3),5 x^2)

Appendix A: Functions and Instructions

when(x<0,3+x)

Done

269

when() is helpful for defining recursive functions.

While

when(n>0,n factoral(n 1),1)


! factoral(n)
factoral(3)
3!

Done
6
6

CATALOG

Program segment:

While condition

block
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.

With

See |, page 288.

xor

MATH/Test menu
Boolean expression1 xor Boolean expression2
expression

Boolean

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.

:1! i
:0! temp
:While i<=20
: temp+1/i! temp
: i+1! i
:EndWhile
:Disp "sum of reciprocals up to 20",te

true xor true


(5>3) xor (3>5)

false
true

Note: See or.


integer1 xor integer2 integer

In Hex base mode:

Compares two real integers bit-by-bit using an


0h7AC36 xor 0h3D5F
0h79169
xor operation. Internally, both integers are
Important: Zero, not the letter O.
converted to signed, 32-bit binary numbers.
When corresponding bits are compared, the result
In Bin base mode:
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
0b100101 xor 0b100
0b100001
value represents the bit results, and is displayed
according to the Base mode.
Note: A binary entry can have up to 32 digits
(not counting the 0b prefix). A hexadecimal
You can enter the integers in any number base.
entry can have up to 8 digits.
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.

270

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

Returns a list of candidate real values of var that


make expression=0. zeros() does this by
computing exp8
8list(solve(expression=0,var),var).

zeros(a x^2+b x+c,x)

{(

b-4ac-+b)
2a

b-4ac-b
}
2a

a x^2+b x+c|x=ans(1)[2]

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.
Note: See also cSolve(), cZeros(), and solve().

exact(zeros(a (e^(x)+x)
(sign (x) 1),x))

{}

exact(solve(a (e^(x)+x)
(sign (x) 1)=0,x))
e x + x = 0 or x>0 or a = 0

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 Grbner/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.
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].

Appendix A: Functions and Instructions

zeros({x^2+y^2 r^2,
(x r)^2+y^2 r^2},{x,y})

r
2
r
2

3r

3 r
2

Extract row 2:

271

r
2

ans(1)[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.

3 r

zeros({x^2+y^2 r^2,
(x r)^2+y^2 r^2},{x,y,z})

r
2
r
2

3r

3r

@1

@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


})

If a system is neither polynomial in all of its


variables nor linear in its unknowns, zeros()
determines at most one zero using an
approximate iterative method. To do so, the
number of unknowns must equal the number of
expressions, and all other variables in the
expressions must simplify to numbers.

zeros({e^(z)y1,ysin(z)},
{y,z})

e sin(z)+1
e z +1
z

(sin(z) 1)

e z +1

[.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.

ZoomBox

zeros({e^(z) y 1, y sin(z)},
{y,z=2p})

[.001

6.281]

CATALOG

In function graphing mode:

ZoomBox

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.

272

Appendix A: Functions and Instructions

ZoomData

CATALOG

ZoomData

Adjusts the window settings based on the


currently defined plots (and data) so that all
statistical data points will be sampled, and
displays the Graph screen.

In function graphing mode:


{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

Note: Does not adjust ymin and ymax for


histograms.

"
ZoomData

ZoomDec

CATALOG

ZoomDec

Adjusts the viewing window so that @x and


@y = 0.1 and displays the Graph screen with the
origin centered on the screen.

In function graphing mode:


1.25x cos(x)! y1(x)
ZoomStd

Done

"
ZoomDec

Appendix A: Functions and Instructions

273

ZoomFit

CATALOG

In function graphing mode:

ZoomFit

Displays the Graph screen, and calculates the


necessary window dimensions for the dependent
variables to view all the picture for the current
independent variable settings.

1.25x cos(x)! y1(x)


ZoomStd

Done

"
ZoomFit

ZoomIn

CATALOG

In function graphing mode:

ZoomIn

Displays the Graph screen, lets you set a center


point for a zoom in, and updates the viewing
window.

1.25x cos(x)! y1(x)


ZoomStd:ZoomIn

Done

The magnitude of the zoom is dependent on the


Zoom factors xFact and yFact. In 3D Graph mode,
the magnitude is dependent on xFact, yFact, and
zFact.

ZoomInt

CATALOG

In function graphing mode:

ZoomInt

Displays the Graph screen, lets you set a center


point for the zoom, and adjusts the window
settings so that each pixel is an integer in all
directions.

1.25x cos(x)! y1(x)


ZoomStd:ZoomInt

Done

274

Appendix A: Functions and Instructions

ZoomOut

CATALOG

ZoomOut

Displays the Graph screen, lets you set a center


point for a zoom out, and updates the viewing
window.

In function graphing mode:


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

Displays the Graph screen, adjusts the x or y


window settings so that each pixel represents an
equal width and height in the coordinate system,
and updates the viewing window.

In function graphing mode:


1.25x cos(x)! y1(x)
ZoomStd

Done

In 3D Graph mode, ZoomSqr lengthens the


shortest two axes to be the same as the longest
axis.
"
ZoomSqr

Appendix A: Functions and Instructions

275

ZoomStd

CATALOG

In function graphing mode:

ZoomStd

Sets the window variables to the following


standard values, and then updates the viewing
window.

1.25x cos(x)! y1(x)


ZoomStd

Done

Function graphing:
x: [ 10, 10, 1], y: [ 10, 10, 1] and xres=2

Parametric graphing:
t: [0, 2p, p/24], x: [ 10, 10, 1], y:[ 10, 10, 1]

Polar graphing:
q: [0, 2p, p/24], x: [ 10, 10, 1], y: [ 10, 10, 1]

Sequence graphing:
nmin=1, nmax=10, plotStrt=1, plotStep=1,
x: [ 10, 10, 1], y: [ 10, 10, 1]

3D graphing:
eyeq=20, eyef=70, eye=0
x: [ 10, 10, 14], y: [ 10, 10, 14],
z: [ 10, 10], ncontour=5

Differential equations graphing:


t: [0, 10, .1, 0], x: [ 1, 10, 1], y: [ 10, 10, 1],
ncurves=0, Estep=1, diftol=.001, fldres=14,
dtime=0

ZoomSto

CATALOG

ZoomSto

Stores the current Window settings in the Zoom


memory. You can use ZoomRcl to restore the
settings.

ZoomTrig

CATALOG

In function graphing mode:

ZoomTrig

Displays the Graph screen, sets @x to p/24, and


xscl to p/2, centers the origin, sets the y settings
to [ 4, 4, .5], and updates the viewing window.

1.25x cos(x)! y1(x)


ZoomStd

Done

"
ZoomTrig

+ (add)

key
expression1 + expression2 expression

Returns the sum of expression1 and expression2.

276

56
ans(1)+4
ans(1)+4
ans(1)+4
ans(1)+4

56
60
64
68
72

Appendix A: Functions and Instructions

list1 + list2 list


matrix1 + matrix2

matrix

Returns a list (or matrix) containing the sums of


corresponding elements in list1 and list2 (or
matrix1 and matrix2).
Dimensions of the arguments must be equal.

expression + list1
list1 + expression

list
list

{22,p,p/2}! L1
{10,5,p/2}! L2
L1+L2
ans(1)+{p, 5, p}
[a,b;c,d]+[1,0;0,1]

{22 p p/2}
{10 5 p/2}
{32 p+5 p}
{p+32 p

0}

b
[a+1
c d+1]

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

Returns expression1 minus expression2.


list1 - list2 list
matrix1 - matrix2

matrix

Subtracts each element in list2 (or matrix2) from


the corresponding element in list1 (or matrix1),
and returns the results.

6 2
p p6

4
5 p
6

{22,p,p2} {10,5,p2}
{12 p 5 0}
[3,4] [1,2]

[2 2]

Dimensions of the arguments must be equal.


expression - list1 list
list1 - expression list

15 {10,15,20}

{5 0 -5}

{10,15,20} 15

{-5 0 5}

Subtracts each list1 element from expression or


subtracts expression from each list1 element, and
returns a list of the results.
expression - matrix1
matrix1 - expression

matrix
matrix

expression matrix1 returns a matrix of expression


times the identity matrix minus matrix1. matrix1

20 [1,2;3,4]

19 2

[ 3 16]

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

277

(multiply)

p key

expression1 expression2 expression

Returns the product of expression1 and expression2.


list1 list2

list

Returns a list containing the products of the


corresponding elements in list1 and list2.

2 3.45

6.9

x y x

x2 y

{1.0,2,3} {4,5,6}

{4. 10 18}

{2a,32} {a,b3}

b
{2 a 2}

Dimensions of the lists must be equal.


matrix1 matrix2

[1,2,3;4,5,6] [a,d;b,e;c,f]

matrix

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

p {4,5,6}

list
list

{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

[.03 .04]

[1,2;3,4].01

Returns a matrix containing the products of


expression and each element in matrix1.

l
0
0

l identity(3)

Note: Use . (dot multiply) to multiply an


expression by each element.

(divide)

0 0
l 0
0 l

e key

expression1 expression2 expression

2/3.45

Returns the quotient of expression1 divided by


expression2.
list1 list2

.57971

x^3/x

x2

{1.0,2,3}/{4,5,6}

list

{.25 2/5 1/2}

Returns a list containing the quotients of list1


divided by list2.
Dimensions of the lists must be equal.
a/{3,a,(a)}

expression list1 list


list1 expression list

1 a
3

Returns a list containing the quotients of


expression divided by list1 or list1 divided by

{a,b,c}/(a b c)

expression.

{b c a c a b}
matrix1 expression

[a,b,c]/(a b c)

matrix

Returns a matrix containing the quotients of


matrix1expression.

[bc ac ab]

Note: Use . / (dot divide) to divide an expression


by each element.

278

Appendix A: Functions and Instructions

^ (power)

Z key

expression1 ^ expression2 expression


list1 ^ list2 list

Returns the first argument raised to the power of


the second argument.

4^2

16

{a,2,c}^{1,b,3}

{a 2 b c }

For a list, returns the elements in list1 raised to


the power of the corresponding elements in list2.
In the real domain, fractional powers that have
reduced exponents with odd denominators use
the real branch versus the principal branch for
complex mode.
expression ^ list1

list

p^{a,2, 3}

Returns expression raised to the power of the


elements in list1.
list1 ^ expression

list

{1,2,3,4}^ 2

Returns the elements in list1 raised to the power


of expression.
squareMatrix1 ^ integer

matrix

Returns squareMatrix1 raised to the integer power.

{p a p p }

{1 1/4 1/9 1/16}

[1,2;3,4]^2
[1,2;3,4]^ 1
[1,2;3,4]^ 2

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 matrix


expression .+ matrix1 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 matrix


expression . matrix1 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

279

. (dot mult.)

p keys

matrix1 . matrix2 matrix


expression . matrix1 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 matrix
expression . / matrix1 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 matrix
expression . ^ matrix1 matrix

[a,2;b,3].^[c,4;5,d]

matrix1 .^ matrix2 returns a matrix where each


element in matrix2 is the exponent for the
corresponding element in matrix1.

x.^[c,4;5,d]

expression . ^ matrix1 returns a matrix where each


element in matrix1 is the exponent for expression.

(negate)

key and MATH/Base menu

expression1 expression
list1 list
matrix1 matrix

2.43

2.43

{ 1,0.4,1.2 19}
{1 .4 1.2 19}

Returns the negation of the argument.

a b

For a list or matrix, returns all the elements


negated.
If expression1 is a binary or hexadecimal integer,
the negation gives the twos complement.

a b

In Bin base mode:


0b100101 4dec

37

Important: Zero, not the letter O.

0b100101
0b11111111111111111111111111011011

ans(1) 4dec

37

Note: To type 4, press 2 .

% (percent)

CHAR/Punctuation menu

expression1 % expression
list1 % list
matrix1 % matrix

Returns

argument
100

13%
{1, 10, 100}%

.13
{.01 .1 1.}

For a list or matrix, returns a list or matrix with


each element divided by 100.

280

Appendix A: Functions and Instructions

= (equal)

key
expression1 = expression2 Boolean expression
list1 = list2 Boolean list
matrix1 = matrix2 Boolean matrix

Returns true if expression1 is determined to be


equal to expression2.
Returns false if expression1 is determined to not be
equal to expression2.
Anything else returns a simplified form of the
equation.
For lists and matrices, returns comparisons
element by element.

Example function listing using math test


symbols: =, , <, , >,
:g(x)
:Func
:If x 5
: Return
: ElseIf
: Return
: ElseIf
: Return
: ElseIf
: Return
:EndIf
:EndFunc

Then
5
x> 5 and x<0 Then
x
x0 and x10 Then
x
x=10 Then
3

Graph g(x)

key
expression1 expression2 Boolean expression
list1 list2 Boolean list
matrix1 matrix2 Boolean matrix

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 Boolean expression
list1 < list2 Boolean list
matrix1 < matrix2 Boolean matrix

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

281

key
expression1 expression2 Boolean expression
list1 list2 Boolean list
matrix1 matrix2 Boolean matrix

See "=" (equal) example.

Returns true if expression1 is determined to be less


than or equal to expression2.
Returns false if expression1 is determined to be
greater than expression2.
Anything else returns a simplified form of the
equation.
For lists and matrices, returns comparisons
element by element.

>

2 key
expression1 > expression2 Boolean expression
list1 > list2 Boolean list
matrix1 > matrix2 Boolean matrix

See "=" (equal) example.

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 Boolean expression
list1 list2 Boolean list
matrix1 matrix2 Boolean matrix

See "=" (equal) example.

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! expression
list1! list
matrix1! matrix

5!
{5,4,3}!

Returns the factorial of the argument.

[1,2;3,4]!

For a list or matrix, returns a list or matrix of


factorials of the elements.

120
{120 24 6}
1 2

[6 24]

The TI-89 computes a numeric value for only nonnegative whole-number values.

282

Appendix A: Functions and Instructions

& (append)

p key

string1 & string2 string

"Hello " & "Nick"

Returns a text string that is string2 appended to


string1.

"Hello Nick"

() (integrate) 2 < key


(expression1, var[, lower] [,upper])
(list1,var [,order]) list
(matrix1,var [,order]) matrix

expression

Returns the integral of expression1 with respect to


the variable var from lower to upper.

(x^2,x,a,b)

Returns an anti-derivative if lower and upper are


omitted. A symbolic constant of integration such
as C is omitted.

(x^2,x)

b a
3
3
x
3
a x
+c
3

However, lower is added as a constant of


integration if only upper is omitted.

(a x^2,x,c)

Equally valid anti-derivatives might differ by a


numeric constant. Such a constant might be
disguisedparticularly 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)

() returns itself for pieces of expression1 that it


cannot determine as an explicit finite
combination of its built-in functions and
operators.

ClrGraph:Graph tmp(x):Graph
1/(2 cos(x)):Graph (3)
(2tan ((3)(tan(x/2)))/3)

(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)

() 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)

1.493...

Note: See also nInt().

Appendix A: Functions and Instructions

283

() (square root) 2 ] key


(expression1) expression
(list1) list

(4)

({9,a,4})

Returns the square root of the argument.

{3 a 2}

For a list, returns the square roots of all the


elements in list1.

() (product)

MATH/Calculus menu

(expression1, var, low, high)

expression

Evaluates expression1 for each value of var from


low to high, and returns the product of the results.

(1/n,n,1,5)

1
120

(k^2,k,1,n)

(n!)

({1/n,n,2},n,1,5)

{120
(expression1, var, low, low 1)
(expression1, var, low, high)

1/( expression1,

var, high+1, low 1) if high < low 1

G() (sum)

120 32}

(k,k,4,3)

(1/k,k,4,1)

(1/k,k,4,1) (1/k,k,2,4)

1/4

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

G(1/n^2,n,1,)
G (expression1, var, low, low 1)
G (expression1, var, low, high)

G ( expression1,

var, high+1, low 1) if high < low 1

# (indirection)

p
6

G(k,k,4,3)

G(k,k,4,1)

G(k,k,4,1)+G(k,k,2,4)

CATALOG

Program segment:

# varNameString

Refers to the variable whose name is


varNameString. This lets you create and modify
variables from a program using strings.

:Request "Enter Your Name",str1


:NewFold #str1

:For i,1,5,1
: ClrGraph
: Graph i x
: StoPic #("pic" & string(i))
:EndFor

284

Appendix A: Functions and Instructions

(gradian)

MATH/Angle menu

expression1 G expression
list1 G list
matrix1 G matrix

This function gives you a way to use a gradian


angle while in the Degree or Radian modes.

In Degree, Gradian or Radian mode:


2
cos(50G) 2

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 expression
list1 list
matrix1 matrix

In Degree, Gradian or Radian angle mode:


2
2

cos((p/4) )

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 })

{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.

(degree)

rectangular
( 3+1)
2
1}
4

spherical

2 key

expression1 expression
list1 list
matrix1 matrix

In Degree, Gradian or Radian angle mode:


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.

2
2

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] vector (polar input)


[radius,q_angle,Z_coordinate] vector

(cylindrical input)
[radius,q_angle,f_angle]

[5,60,45]

In Radian mode and vector format set to:

vector

(spherical input)

Returns coordinates as a vector depending on the


Vector Format mode setting: rectangular,
cylindrical, or spherical.

Appendix A: Functions and Instructions

285

(magnitude angle)

complexValue (polar input)

Enters a complex value in (rq) polar form. The


angle is interpreted according to the current Angle
mode setting.

, ', "

In Radian angle mode and Rectangular complex


format mode:
5+3i (10p/4)
5 5 2+(3 5 2)i

2.071 4.071i

2 key (), 2 key ('), 2 key (")


dd mm ' ss.ss " expression
dd
mm
ss.ss

In Degree angle mode:


2513'17.5"

A positive or negative number


A non-negative number
A non-negative number

2530'

25.221...
51/2

Returns dd +(mm /60)+(ss.ss /3600).


This base-60 entry format lets you:
Enter an angle in degrees/minutes/seconds
without regard to the current angle mode.
Enter time as hours/minutes/seconds.

' (prime)

2 key

deSolve(y''=y^( 1/2) and y(0)=0 and


y'(0)=0,t,y)

variable '
variable ''

Enters a prime symbol in a differential equation. A


single prime symbol denotes a 1st-order
differential equation, two prime symbols denote a
2nd-order, etc.

_ (underscore)

2y 3/4
=t
3

key

3_m 4 _ft

expression_unit

Designates the units for an expression. All unit


names must begin with an underscore.

9.842_ft

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.
Assuming z is undefined:

variable_

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.
If variable has a value, the _ is ignored and variable
retains its original data type.

real(z)
real(z_)

z
real(z_)

imag(z)
imag(z_)

0
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.

286

Appendix A: Functions and Instructions

4 (convert)

2 key

expression_unit1 4 _unit2 expression_unit2

3_m 4 _ft

9.842_ft

10^(1.5)

31.622...

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^ (list1) list

Returns 10 raised to the power of the argument.

10^{0, 2,2,a}
{1

For a list, returns 10 raised to the power of the


elements in list1.
10^(squareMatrix1)

squareMatrix

Returns 10 raised to the power of squareMatrix1.


This is not the same as calculating 10 raised to
the power of each element. For information about
the calculation method, refer to cos().

1
100 10 a}
100

10^([1,5,3;4,2,1;6,L2,1])

1.143E7
9.956E6
7.652E6

8.171E6 6.675E6
7.115E6 5.813E6
5.469E6 4.468E6

squareMatrix1 must be diagonalizable. The result

always contains floating-point numbers.

CATALOG (^ -1)
expression1 x expression
list1 x list

Returns the reciprocal of the argument.


For a list, returns the reciprocals of the elements
in list1.
squareMatrix1 x

squareMatrix

Returns the inverse of squareMatrix1.

3.1^ 1

.322581

{a,4,.1,x 2}^ 1
1
1 1
{a
10.
}
4
x 2
[1,2;3,4]^ 1
[1,2;a,4]^ 1

squareMatrix1 must be a non-singular square

matrix.

Appendix A: Functions and Instructions

287

| (with)

key
x+1| x=3

expression | Boolean expression1 [and Boolean


expression2]...[and Boolean expressionN]

x+y| x=sin(y)

The with (|) symbol serves as a binary operator.


x+y| sin(y)=x
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.

4
sin(y) + y
x+y

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.
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.

Exclusions use the not equals (/= or )


relational operator to exclude a specific value
from consideration. They are used primarily to
exclude an exact solution when using cSolve(),
cZeros(), fMax(), fMin(), solve(), zeros(), etc.

! (store)

x^3 2x+7! f(x)


f(x)| x=(3)

Done
3 + 7

(sin(x))^2+2sin(x) 6| sin(x)=d
d +2d 6
solve(x^2 1=0,x)|x>0 and x<2
x=1
(x) (1/x)|x>0

(x) (1/x)

1
x x

solve(x^2 1=0,x)| x1

x = 1

key
expression ! var
list ! var
matrix ! var
expression ! fun_name(parameter1,...)
list ! fun_name(parameter1,...)
matrix ! fun_name(parameter1,...)

p
4

p/4! myvar

2cos(x)! Y1(x)
{1,2,3,4}! Lst5

Done
{1 2 3 4}
1 2 3

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

Program segment:

[text]

processes text as a comment line, which can be


used to annotate program instructions.
can be at the beginning or anywhere in the
line. Everything to the right of , to the end of
the line, is the comment.

288

: Get 10 points from the Graph


screen
:For i,1,10 This loops 10 times

Appendix A: Functions and Instructions

0b, 0h

j [B] keys
j [H] keys

0b binaryNumber
0h hexadecimalNumber

In Dec base mode:


0b10+0hF+10

27

In Bin base mode:


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).

0b10+0hF+10

0b11011

In Hex base mode:


0b10+0hF+10

0h1B

Results are displayed according to the Base mode.

Appendix A: Functions and Instructions

289

290

Appendix A: Functions and Instructions

KongGuidebook.book Page 291 Thursday, July 14, 2005 12:54 PM

B
Appendix B:
Service and Warranty Information
Texas Instruments Support and Service
For general information
Home Page:

education.ti.com

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

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

Appendix B: Service and Warranty Information

291

KongGuidebook.book Page 292 Thursday, July 14, 2005 12:54 PM

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 pur-

chaser for a period of one (1) year from the original purchase date.
Warranty Coverage. This TI electronic product is warranted against defective materials and construction. THIS WARRANTY IS VOID IF THE PRODUCT
HAS BEEN DAMAGED BY ACCIDENT OR UNREASONABLE USE, NEGLECT,
IMPROPER SERVICE, OR OTHER CAUSES NOT ARISING OUT OF DEFECTS
IN MATERIALS OR CONSTRUCTION.
Warranty Disclaimers. ANY IMPLIED WARRANTIES ARISING OUT OF THIS
SALE, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
LIMITED IN DURATION TO THE ABOVE ONE-YEAR PERIOD. TEXAS
INSTRUMENTS SHALL NOT BE LIABLE FOR LOSS OF USE OF THE PRODUCT OR OTHER INCIDENTAL OR CONSEQUENTIAL COSTS, EXPENSES,
OR DAMAGES INCURRED BY THE CONSUMER OR ANY OTHER USER.

Some states/provinces do not allow the exclusion or limitation of implied warranties or consequential damages, so the above limitations or exclusions
may not apply to you.
Legal Remedies. This warranty gives you specific legal rights, and you may

also have other rights that vary from state to state or province to province.
Warranty Performance. During the above one (1) year warranty period, your

defective product will be either repaired or replaced with a reconditioned


model of an equivalent quality (at TIs option) when the product is returned,
postage prepaid, to Texas Instruments Service Facility. The warranty of the
repaired or replacement unit will continue for the warranty of the original unit
or six (6) months, whichever is longer. Other than the postage requirement,
no charge will be made for such repair and/or replacement. TI strongly recommends that you insure the product for value prior to mailing.
Software. Software is licensed, not sold. TI and its licensors do not warrant
that the software will be free from errors or meet your specific requirements.
All software is provided AS IS.
Copyright. The software and any documentation supplied with this product
are protected by copyright.

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 original purchaser for a period of one (1) year from
the original purchase date.
Warranty Coverage. This Texas Instruments electronic product is
warranted against defective materials and construction. This warranty is void if the product has been damaged by accident or unreasonable use, neglect, improper service, or other causes not arising
out of defects in materials or construction.

292

Appendix B: Service and Warranty Information

KongGuidebook.book Page 293 Thursday, July 14, 2005 12:54 PM

Warranty Disclaimers. Any implied warranties arising out of


this sale, including but not limited to the implied warranties of
merchantability and fitness for a particular purpose, are limited
in duration to the above one-year period. Texas Instruments
shall not be liable for loss of use of the product or other incidental or consequential costs, expenses, or damages incurred
by the consumer or any other user.
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 consequential damages, so the above limitations or
exclusions may not apply to you.
Legal Remedies. This warranty gives you specific legal rights, and
you may also have other rights that vary from jurisdiction to jurisdiction.
Warranty Performance. During the above one (1) year warranty
period, your defective product will be either repaired or replaced with
a new or reconditioned model of an equivalent quality (at TIs option)
when the product is returned to the original point of purchase. The
repaired or replacement unit will continue for the warranty of the
original unit or six (6) months, whichever is longer. Other than your
cost to return the product, no charge will be made for such repair
and/or replacement. TI strongly recommends that you insure the
product for value if you mail it.
Software. Software is licensed, not sold. TI and its licensors do not
warrant that the software will be free from errors or meet your specific requirements. All software is provided AS IS.
Copyright. The software and any documentation supplied with this
product are protected by copyright.

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 Instruments retailer/distributor.

293

KongGuidebook.book Page 294 Thursday, July 14, 2005 12:54 PM

294

KongGuidebook.book Page 295 Thursday, July 14, 2005 12:54 PM

Index
Symbols
!( , factorial 49, 282
(!, store 288
(", second notation 286
(#, /=, not equal 281
(#, indirection 284
($( ), square root 284
(%, percent 280
(&, append 283
(', minute notation 286
(', prime 286
()( ), sum 284
(*( ), integrate 53, 283
(*, multiply 278
(+, add 276
(,- (function keys)
moving among toolbar menus 35
selecting categories 18, 20
selecting menus 32
uses 8
(-, degree notation 110, 285, 286
(-, negate 280
(, subtract 277
(,, angle 285
(.*, dot multiplication 280
(.+, dot addition 279
(., dot subtraction 279
(./, dot division 280
(.^, dot power 280
(/, divide 278
(<, less than 281
(=, equal 281
(>, greater than 282
(? (negation key) 8
(@list( ), list difference 213
(@tmpCnv( ), temperature-range
conversion 266
(^, power 279
(_, underscore 286
({, <=, less than or equal 282
(| (subtraction key) 8
(|, >=, greater than or equal 282
(|, comment 288
(|, with 53, 54, 288
(0 / (8 . (delete character) 10
Index

(1 (hand modifier key)


status 24

(2 (second modifier key)


description 7
status 24
(2 ; (MEMORY) 10
(2 ^ (exponent key) 8
(2 4 (measurement conversions)
10
(2 6 (recall) 10
(2 E (Catalog)
commands 14
description 13
exiting 15
key command 10
(2 F (Custom)
description 36
example 37
key command 9
(2 G (Character)
description 32
entering special characters 6
key command 10
selecting characters 6

(2 K

calculator Home screen 15


entering commands 14
exiting the split-screen mode 42
key command 10
turning off the calculator 3
(4, convert 287
(4Bin, display as binary 165
(4Cylind, display as cylindrical vector
179
(4DD, display as decimal angle 182
(4Dec, display as decimal integer 182
(4DMS, display as degree/minute/
second 188
(4Grad, convert to Gradian angle
measure 204
(4Hex, display as hexadecimal 205
(4Polar, display as polar vector 230
(4Rad, convert to Radian angle
measure 237

295

KongGuidebook.book Page 296 Thursday, July 14, 2005 12:54 PM

(4Rect, display as rectangular vector


239
(4Sphere, display as spherical vector
257
(7 (shift modifier key)
description 7
status 24
(8 (diamond modifier key)
description 7
status 24
(8 S (SAVE COPY AS)
example 35
(9 (store) key 10
A
( BCD (cursor keys)
entering commands 14
opening Apps 18
selecting entry/answer pairs 17
using the CHAR menu 6
(( ), product 284
(R, radian 285
(T, transpose 261
(x/, reciprocal 287

Numerics
0b, binary indicator 289
0h, hexadecimal indicator 289
10^( ), power of ten 287
3D (three-dimensional) mode 25
3D graphing
animation 66
CONTOUR LEVELS 68
HIDDEN SURFACE 68
WIRE AND CONTOUR 68
WIRE FRAME 68
4ln( ) 213
4logbase( ) 215

A
ABOUT screen 42
abs( ), absolute value 112, 162
absolute value, abs( ) 112
accent marks
CHAR menu 10
add, + 276
algebra operations 158
All category 20
and (Boolean), and 162
296

AndPic, and picture 163


angle mode 11, 24
status 24
angle( ), angle 163
angle, , 285
ans( ), last answer 164
APD (Automatic Power Down)
feature
during calculation or program 4
turning on after 4
append, & 283
APPLICATIONS menu (O) 32, 37
approx( ), approximate 164
Apps (calculator software
applications)
deleting 43
icon highlighted, last open 3
icons 2
names 18
opening 18, 37
preinstalled v
shortcuts 21
switching 41
Apps desktop
calculator Home screen and 15
categories 18, 21
clock 26
date and time 27
initial startup 2
mode 11, 25
parts of 3
split-screen status 24
turning off 25
turning off the calculator 3
arccosine, cos/( ) 172
archive variables, Archive 152
Archive, archive variables 152, 164
archiving variables 92
arcLen( ), arc length 164
arcsine, sin/( ) 253
arctangent, tan/( ), arctangent 263
assembly language 193
asymptotes, faux, detecting 60
augment( ), augment/concatenate
99, 165
augment/concatenate, augment( )
99
AUTO mode status 24
Index

KongGuidebook.book Page 297 Thursday, July 14, 2005 12:54 PM

Automatic Power Down (APD)


feature
during calculation or program 4
in OS download mode 45
turning on after 4
auto-paste 16
avgRC( ), average rate of change 165

B
backspace (0) 10
Base mode 11
batteries
precautions 45
prolonging life 4
replacing 1, 45, 46
binary
display, 4Bin 165
indicator, 0b 289
BldData, build data 166
Boolean
and, and 162
exclusive or, xor 270
not, not 224
build
data, BldData 166
table, Table 262
BUSY 25
Busy/Pause status 25

C
cables 42, 44, 123, 134, 136
calculator Home screen
2 K 10
changing entry/answer pairs 17
custom menu 36
entering commands 14
function keys 8
key command 10
toolbar menus 32
turning off the calculator 3
calculator software applications
(Apps) 3
icons 2
preinstalled v
Calculator-Based Laboratory system
connecting 44
Calculator-Based Ranger system
Index

connecting 44
calculus operations 158
Catalog (2 E)
commands 14
description 13
exiting 15
key command 10
categories
All 20
Apps desktop 21
customizing 21
English 20
example of editing 22
Graphing 20
Math 20
Organizr (organizer) 20
Science 20
selecting 20
selecting empty 21
SocialSt (social studies) 20
CBL 2 system
activity 108
connecting 44
programs 108
CBL2
get/return, Get 200
send list variable, Send 244
CBR
get/return, Get 200
send list variable, Send 244
CBR system
connecting 44
programs 108
ceiling( ), ceiling 166
ceiling, ceiling( ) 100
certificate 128, 132, 133, 134, 135,
136
cFactor( ), complex factor 117, 167
CHAR menu (2 G)
description 32
entering special characters 6
key command 10
char( ), character string 167
characters
deleting 10
Greek 6, 10, 32
international/accented 6, 10, 32
math 6, 10, 32
297

KongGuidebook.book Page 298 Thursday, July 14, 2005 12:54 PM

punctuation 32
special 6, 10, 32
uppercase 7
checkTmr( ), check timer 167
circle
graphing 57, 59
Circle, draw circle 168
Clock
dialog box 26
operation 26
turning off 30
turning on 31
ClockOff, turning clock off 168
ClockOn, turning clock on 168
ClrDraw, clear drawing 168
ClrErr, clear error 168
ClrGraph, clear graph 169
ClrHome, clear home 18, 169
ClrIO, clear
I/O 169
ClrIO, clear I/O 169
colDim( ), matrix column dimension
169
colNorm( ), matrix column norm 169
combinations, nCr( ) 221
comDenom( ), common
denominator 170
command scripts
activity 102
commands
Flash Apps 13
Key v, 6, 7
comment, | 288
complex
factor, cFactor( ) 117, 167
numbers 49, 50
solve, cSolve( ) 175
zeros, cZeros( ) 179
complex format mode 11
conj( ), complex conjugate 170
connecting
TI ViewScreen overhead panel 44
TI-Presenter video adapter 44
Constant Memory feature 10
contact information 291
contour-level graphing 68
contrast
adjusting 2, 46
298

initial startup 2
convert measurements 10
convert time, timeCnv( ) 265
convert, 4 287
copy variable, CopyVar 148
CopyVar, copy variable 148, 171
cos( ), cosine 171
cos/( ), arccosine 172
cosh( ), hyperbolic cosine 173
cosh/( ), hyperbolic arccosine 173
cot( ), cotangent 173
cot/( ), inverse cotangent 174
coth( ), hyperbolic cotangent 174
coth/( ), inverse hyperbolic
cotangent 174
crossP( ), cross product 174
csc( ), cosecant 174
csc/( ), inverse cosecant 175
csch( ), hyperbolic cosecant 175
csch/( ),inverse hyperbolic cosecant
175
cSolve( ), complex solve 175
CubicReg, cubic regression 177
cumSum( ), cumulative sum 178
Current folder status 24
Current mode 11
cursor
deleting characters 10
in the history area 17
location following APD 4
Selecting a command 14
Viewing entries 16
cursor keys (ABCD)
entering commands 14
opening Apps 18
selecting entry/answer pairs 17
using the CHAR menu 6
CustmOff, custom toolbar off 178
CustmOn, custom toolbar on 178
CUSTOM (2 F) menu 37
descripton 36
key command 9
custom toolbar See toolbar
Custom, define toolbar 178
customer support and service 291
cycle picture, CyclePic 179
Cycle, cycle 179
CyclePic, cycle picture 179
Index

KongGuidebook.book Page 299 Thursday, July 14, 2005 12:54 PM

cylindrical vector display, 4Cylind 179


cZeros( ), complex zeros 179

D
d( ), first derivative 52, 181
data (new), NewData 221
data filtering 105
data plots 77
Data/Matrix Editor
shift, shift( ) 250
data4mat( ) 181
date
reset 31
setting 26
dayOfWk( ), day of week 182
DE (differential equation) mode 25
decimal
angle display, 4DD 182
integer display, 4Dec 182
define toolbar, Toolbar 267
Define, define 95, 183
define, Define 95, 183
DEG (degree) mode 24
degree notation, - 110, 285, 286
degree/minute/second display, 4DMS
188
delete character (0 / (8 .) 10
deleting
folder, DelFold 183
variable, DelVar 184
variables of type 150
deleting variables 94
DelFold, delete folder 183
DelType 184
DelType command 150
DelVar, delete variable 184
denominator 170
derivatives 52
first derivative, d ( ) 181
first derivative, d( ) 52
numeric derivative, nDeriv( ) 221
deSolve( ), solution 184
det( ), matrix determinant 185
diag( ), matrix diagonal 186
dialog box
CLOCK 26
edit categories 21
Index

menu indicator 34
MODE 10
to open Apps 18
dialog box, define, Dialog 186
Dialog, define dialog box 186
Diamond modifier key (8)
description 7
status 24
dim( ), dimension 186
discontinuities
detecting 60
Disp, display I/O screen 84, 187
DispG, display graph 187
DispHome, display Home screen 187
display
graph, DispG 187
Home screen, DispHome 187
I/O screen, Disp 84, 187
table, DispTbl 187
display as
binary, 4Bin 165
cylindrical vector, 4Cylind 179
decimal angle, 4DD 182
decimal integer, 4Dec 182
degree/minute/second, 4DMS
188
hexadecimal, 4Hex 205
polar vector, 4Polar 230
rectangular vector, 4Rect 239
spherical vector, 4Sphere 257
display digits mode 11
DispTbl, display table 187
divide, / 278
dot
addition, .+ 279
division, ./ 280
multiplication, .* 280
power, .^ 280
subtraction, . 279
dotP( ), dot product 188
DrawFunc, draw function 188
drawings and drawing
circle, Circle 168
clearing, ClrDraw 168
contour, DrwCtour 190
function, DrawFunc 188
horizontal line, LineHorz 211
inverse, DrawInv 188
299

KongGuidebook.book Page 300 Thursday, July 14, 2005 12:54 PM

line, Line 211


parametric, DrawParm 189
polar, DrawPol 189
slope, DrawSlp 189
tangent line, LineTan 212
vertical line, LineVert 212
DrawInv, draw inverse 188
DrawParm, draw parametric 189
DrawPol, draw polar 189
DrawSlp, draw slope 189
DropDown, drop-down menu 189
DrwCtour, draw contour 190

E
E, exponent 8, 190

e^( ), e to a power 190


eigVc( ), eigenvector 191
eigVl( ), eigenvalue 191
Else, else 206
ElseIf, else if 191
end
custom, EndCustm 178
dialog, EndDlog 186
for, EndFor 198
function, EndFunc 199
if, EndIf 206
loop, EndLoop 216
program, EndPrgm 83, 231
toolbar, EndTBar 267
try, EndTry 267
while, EndWhile 270
EndCustm, end custom 178
EndDlog, end dialog 186
EndFor, end for 198
EndFunc, end function 199
EndIf, end if 206
EndLoop, end loop 216
EndPrgm, end program 83, 231
EndTBar, end toolbar 267
EndTry, end try 267
EndWhile, end while 270
English category 20
entry line
clearing the history area 18
cursor rests on 17
inserting commands 14
recalling 16

300

entry( ), entry 192


entry/answer pairs 17
status 25
equal, = 281
error conditions after APD 4
errors and troubleshooting
clear error, ClrErr 168
Memory error 155, 156
pass error, PassErr 229
transmission 128, 135
evaluate polynomial, polyEval( ) 230
EXACT mode status 24
exact( ), exact 192
exact/approx mode 11
example
changing mode settings 12
editing categories 22
restoring the default custom
menu 37
selecting menu options 33
turning off the clock 31
turning on/off the custom menu
36
using dialog boxes 35
using the CHAR menu 6
using the keyboard map 7
examples, previews, activities
3D graphing 66, 101
additional graphing topics 71
angle modes 54
baseball 110
CBL 2 program 108
complex factors 117
complex numbers 49
complex zeroes 111
constants and measurement
units 56
cos(x)=sin(x) activity 99
cubic polynomial 111
data filtering 105
data/matrix editor 75
decomposing a rational function
104
derivatives 52
detecting discontinuities 60
differential equations 69
expanding expressions 50
factorial 49
Index

KongGuidebook.book Page 301 Thursday, July 14, 2005 12:54 PM

finding roots 50
function graphing 57, 59
graphing functions 57
implicit derivatives 52
integrals 53
log to any base 53
memory management 90
number bases 88
numeric solver 86
parametric graphing 62, 110
path of a ball 62
polar rose 63
pole-corner problem 95
population 77
prime factors 49
programming 82, 84
Pythagorean theorem 95
quadratic formula 96
rational factors 117
real factors 117
reducing expressions 51
sampling 118
sequence graphing 65
solving inequalities 52
solving linear equations 51
split screen 74, 110
standard annuity 114
statistics 77
symbolic manipulation 54
tables 73
text operations 85
time value of money 115
trees and forest 65
tutorial script with the text
editor 102
variable management 90
vectors 53
examples,previews,activities
log to any base 53
exclusive or (Boolean), xor 270
exclusive or picture, XorPic 271
Exec, execute assembly language
193
execute assembly language, Exec
193
execute program, Prgm 83, 231
Exit, exit 193
exp4list( ), expression to list 193
Index

expand( ), expand 50, 97, 112, 193


expand, expand( ) 50, 97, 112
exponent key (2 ^) 8
exponent, E 8, 190
exponential Format mode 11
exponential regession, ExpReg 195
expr( ), string to expression 194
ExpReg, exponential regession 195
expressions 15
expanding 50
expression to list, exp(list( ) 193
reducing 51
string to expression, expr( ) 194

F
factor( ), factor 50, 98, 117, 195
factor, factor( ) 50, 98, 117
factorial, ! 49, 282
factoring
activity 117
FCC statement ii
Fill, matrix fill 196
Flash applications 139, 140, 142
deleting 128
FLASH APPLICATIONS (8 O)
accessing Apps not listed 38
description 32
key command 9
Flash, upgrading operating system
132, 133, 134
floor( ), floor 100, 196
floor, floor( ) 100
fMax( ), function maximum 197
fMin( ), function minimum 197
FnOff, function off 197
FnOn, function on 198
folders
delete, DelFold 183
get/return, getFold( ) 201
locking/unlocking 149
new, NewFold 222
pasting name 150
renaming 146, 149
setting, setFold( ) 246
transmitting 125, 126, 127
VARLINK 142, 143, 144, 145, 146,
147

301

KongGuidebook.book Page 302 Thursday, July 14, 2005 12:54 PM

For, for 198


for, For 198
format( ), format string 198
FORMATS dialog box 68, 69
fpart( ), function part 199
fractions 104, 232
Frobenius norm, norm( ) 224
full-screen mode
2 K 10
Apps desktop 24
changing from split-screen 42
displaying Apps in 41
FUNC (function) mode 25
Func, program function 199
function keys (,-)
moving among toolbar menus 35
selecting categories 18, 20
selecting menus 32
functions 13
maximum, fMax( ) 197
minimum, fMin( ) 197
off, FnOff 197
on, FnOn 198
part, fPart( ) 199
program function, Func 199
user-defined 183

G
Garbage collection message 152,
153, 154, 155
gcd( ), greatest common divisor 199
get time zone, GetTmZn( ) 203
Get, get/return CBL2/CBR value 200
get/return
calculator, GetCalc 130, 131, 200
CBL2/CBR value, Get 200
configuration, getConfg( ) 200
denominator, getDenom( ) 201
folder, getFold( ) 201
key, getKey( ) 201
mode, getMode( ) 202
number, getNum( ) 202
type, getType( ) 203
units, getUnits( ) 204
GetCalc, get/return calculator 130,
131, 200

302

getConfg( ), get/return
configuration 200
getDate( ), get date 200
getDenom( ), get/return
denominator 201
getDtFmt( ), get date format 201
getDtStr( ), get date string 201
getKey( ), get/return key 201
getMode( ), get/return mode 202
getNum( ), get/return number 202
getTime( ), get time 202
getTmFmt( ), get time format 202
getTmStr( ), get time string 202
getTmZn( ), get time zone 203
getType( ), get/return type 203
getUnits( ), get/return units 204
Goto, go to 204
GRAD (gradian) mode 24
GRAD(gradian) mode 54
Gradian angle mode 54
gradian,G 285
graph
mode 11, 25
number mode 25
graph mode status 25
graph number mode status 25
Graph, graph 205
graphing category 20
graphs
number of 40, 41
graphs and graphing
clearing, ClrGraph 169
coordinates 57
functions off, FnOff 197
functions on, FnOn 198
graph, Graph 205
Minimum 57
operations 158
recall graph database, RclGDB
238
setting, setGraph( ) 246
shading, Shade 250
store graph database, StoGDB
259
style, Style 260
trace, Trace 101, 108, 109, 112,
267
tracing 57
Index

KongGuidebook.book Page 303 Thursday, July 14, 2005 12:54 PM

Y= editor 57, 59
greater than or equal, |, >= 282
greater than, > 282
greatest common divisor, gcd( ) 199
Greek characters 6

H
Hand modifier key (1)
status 24
hexadecimal
display, 4Hex 205
indicator, 0h 289
hidden surface 68
highlighting
characters when editing 7
to view full name of App 2
History area
status 25
History indicator 17
Home icon 15
Home screen. See calculator home
screen
hyperbolic
arccosine cosh/( ) 173
arcsine, sinh/( ) 253
arctangent, tanh/( ) 264
cosecant, csch( ) 175
cosine, cosh( ) 173
cotangent, coth( ) 174
secant, sech( ) 244
sine, sinh( ) 253
tangent, tanh( ) 263

I
ID list 136, 137
ID number 132, 133, 134, 136, 137
identity matrix, identity( ) 206
identity( ), identity matrix 206
If, if 206
imag( ), imaginary part 206
ImpDif 207
implicit derivatives 52
indirection, # 284
inequalities 52
initial startup 2
input string, InputSt 131, 207
Input, input 207
Index

InputSt, input string 131, 207


insert mode (2 /) 10
inString( ), within string 208
instructions
calculator Home screen 15
Catalog 13
int( ), integer 208
intDiv( ), integer divide 208
integer part, iPart( ) 65, 208
integer, int( ) 208
integrate, *( ) 53, 283
international/accented characters 6
inverse cosecant, csc/( ) 175
inverse cotangent, cot/( ) 174
inverse hyperbolic
cosecant, csch/( ) 175
cotangent, coth/( ) 174
secant, sech/( ) 244
inverse, x/ 287
iPart( ), integer part 208
isArchiv() 208
isArchiv(), is archived 143
isClkOn( ), is clock on 208
isLocked 209
isLocked(), is locked 143
isPrime( ), prime test 209
isVar( ) 209
isVAR(), is variable 143
Item, menu item 209

K
key commands
keyboard map 7
special characters 6
keyboard
map 6
keys
function 8
modifier 7

L
language mode
changing mode setting 12
viewing 11
Lbl, label 209
lcm, least common multiple 210
least common multiple, lcm 210
303

KongGuidebook.book Page 304 Thursday, July 14, 2005 12:54 PM

left( ), left 210


left-right split screen
setting 38
setting initial Apps 40
status 23
less than or equal, #, 282
less than, < 281
limit( ), limit 210
Line, draw line 211
linear regression, LinReg 212
LineHorz, draw horizontal line 211
LineTan, draw tangent line 212
LineVert, draw vertical line 212
Link transmission table 138
linking and transmitting 244, 245
calculator to calculator 123, 124,
125, 126, 130, 131, 132
cancelling 128
errors 128, 135
Flash applications 125, 126, 129,
130
folders 125, 127, 128
get/return CBL2/CBR value, Get
200
program 130, 131
send chat, SendChat 130, 131
send list variable, Send 244
send to calculator, SendCalc 130,
131
variables 125, 126, 127
LinReg, linear regression 212
list difference, @list( ) 213
list to matrix, list4mat( ) 213
list4mat( ), list to matrix 213
lists
augment/concatenate,
augment( ) 165
cross product, crossP( ) 174
cumulative sum, cumSum( ) 178
difference, @list( ) 213
dot product, dotP( ) 188
expression to list, exp4list( ) 193
list to matrix, list4mat( ) 213
matrix to list, mat4list( ) 218
maximum, max( ) 218
mid-string, mid( ) 219
minimum, min( ) 220
new data, NewData 221
304

new, newList( ) 222


operations 158
product, product( ) 231
sort ascending, SortA 257
sort descending, SortD 257
summation, sum( ) 241, 260
ln( ), natural logarithm 213
LnReg, logarithmic regression 214
Local, local variable 214
Lock, lock variable 214
locked/archived variable status 25
log to any base 53
log( ), logarithm 215
logarithm, log( ) 215
logarithmic regression, LnReg 214
logarithms 213, 215
Logistic, logistic regression 216
Loop, loop 216
LU, matrix lower-upper
decomposition 217

M
mat4data( ) 217
mat4list( ), matrix to list 218
math category 20
MATH menu (2 I) 32
math operations 15, 159
matrices
augment/concatenate,
augment( ) 99, 165
column dimension, colDim( ) 169
column norm, colNorm( ) 169
cumulative sum, cumSum( ) 178
determinant, det( ) 185
diagonal, diag( ) 186
dimension, dim( ) 186
dot addition, .+ 279
dot division, ./ 280
dot multiplication, .( 280
dot power, .^ 280
dot subtraction, . 279
eigenvalue, eigVl( ) 191
eigenvector, eigVc( ) 191
filling, Fill 196
identity, identity( ) 206
list to matrix, list4mat( ) 213

Index

KongGuidebook.book Page 305 Thursday, July 14, 2005 12:54 PM

lower-upper decomposition, LU
217
matrix to list, mat4list( ) 218
maximum, max( ) 218
minimum, min( ) 220
new data, NewData 221
new, newMat( ) 222
operations 159
product, product( ) 231
QR factorization, QR 235
random, randMat( ) 99, 238
reduced row echelon form,
rref( ) 243
row addition, rowAdd( ) 242
row dimension, rowDim( ) 242
row echelon form, ref( ) 239
row multiplication and addition,
mRowAdd( ) 220
row norm, rowNorm( ) 242
row operation, mRow( ) 220
row swap, rowSwap( ) 243
submatrix, subMat( ) 260
summation, sum( ) 241, 260
transpose, T 261
matrix to list, mat4list( ) 218
max( ), maximum 218
mean( ), mean 218
measurement
conversions (2 4) 10
median( ), median 218
medium-medium line regression,
MedMed 219
MedMed, medium-medium line
regression 219
memory
archiving, Archive 152, 164
checking 139, 140
resetting 139, 140
unarchive, Unarchiv 152, 268
VARLINK screen 140, 142, 143,
144, 145, 146, 147, 152
MEMORY (2 ;) 10
Memory error 155
menu item, Item 209
Menus
APPLICATIONS (O) 32, 37
menus
canceling 35
Index

CHAR 6, 10, 32
CUSTOM (2 F) 9, 36, 37
FLASH APPLICATIONS (8 O)
9, 32, 38
options 7
selecting options 32
submenu options 33
messages
Garbage collection 152, 153, 154,
155
mid( ), mid-string 219
min( ), minimum 220
Minimum (graph math tool) 57
minute notation, ' 286
mod( ), modulo 220
modes
3D (three-dimensional) 25
Angle 11, 24
APPROX 24
Apps desktop 11
AUTO 24
Base 11
complex format 11
current 11
custom units 11
DE (differential equation) 25
DEG (degree) 24
display digits 11
EXACT 24
exact/approx 11
exponential format 11
fullscreen 10, 20, 24, 40, 41, 42
FUNC (function) 25
get/return, getMode( ) 202
GRAD (gradian) 24
graph 11
graph number 25
graph type 25
grayed out 11
insert (2 /) 10
language 11, 12
overwrite (2 /) 10
PAR (parametric) 25
POL (polar) 25
Pretty Print 11
RAD (radian) 24
SEQ (sequence) 25
setting, setMode( ) 247
305

KongGuidebook.book Page 306 Thursday, July 14, 2005 12:54 PM

settings 10
split screen 2, 11, 20, 23, 25, 38,
40, 41, 42
unit system 11
vector format 11
modifier keys (2 8 7 1) 7
status 24
MoveVar, move variable 220
mRow( ), matrix row operation 220
mRowAdd( ), matrix row
multiplication and addition 220
multiply, * 278

N
natural logarithm, ln( ) 213
nCr( ), combinations 221
nDeriv( ), numeric derivative 221
negate, M 280
negation key (5) 8
negative numbers 8
new
data, NewData 221
folder, NewFold 222
list, newList( ) 222
matrix, newMat( ) 222
picture, NewPic 222
plot, NewPlot 223
problem, NewProb 223
NewData, new data 221
NewFold, new folder 222
newList( ), new list 222
newMat( ), new matrix 222
NewPic, new picture 222
NewPlot, new plot 222
NewProb, new problem 223
nInt( ), numeric integral 223
norm( ), Frobenius norm 224
not (Boolean), not 224
not equal, #, /= 281
not, Boolean not 224
nPr( ), permutations 224
nSolve( ), numeric solution 225
numeric
derivative, nDeriv( ) 221
integral, nInt( ) 223
solution, nSolve( ) 225
numeric keypad 8

306

O
OneVar, one-variable statistic 225
operating system 134, 135
operating system (OS)
downloading 45
operating system, upgrading 132,
133, 134
or, Boolean or 226
ord( ), numeric character code 226
Organizr (organizer) category 20
OS 132, 133, 134
Output, output 226
overwrite mode (2 /) 10

P
P4Rx( ), rectangular x coordinate 227
P4Ry( ), rectangular y coordinate 227
PAR (parametric) mode 25
parallelepiped activity 101
part( ), part 227
PassErr, pass error 229
PAUSE 25
Pause, pause 229
percent, % 280
permutations, nPr( ) 224
pictures
and, AndPic 163
cycle, CyclePic 179
exclusive or, XorPic 271
new, NewPic 222
recall, RclPic 238
replace, RplcPic 243
storing, StoPic 259
pixel
change, PxlChg 233
circle, PxlCrcl 233
horizontal line, PxlHorz 233
line, PxlLine 234
off, PxlOff 234
on, PxlOn 234
test, pxlTest( ) 234
text, PxlText 234
vertical line, PxlVert 235
plots
data 77
new, NewPlot 223
off, PlotsOff 230
Index

KongGuidebook.book Page 307 Thursday, July 14, 2005 12:54 PM

on, PlotsOn 230


PlotsOff, plots off 230
PlotsOn, plots on 230
point
change, PtChg 232
off, PtOff 232
on, PtOn 233
test, ptTest( ) 233
text, PtText 233
POL (polar) mode 25
polar
coordinate, R4Pq( ) 237
coordinate, R4Pr( ) 237
vector display, 4Polar 230
polyEval( ), evaluate polynomial 230
polynomials
activity 111
evaluate, polyEval( ) 230
random, randPoly( ) 238
PopUp, popup menu 231
power of ten, 10^( ) 287
power regression, PowerReg 231
power, ^ 279
PowerReg, power regression 231
pretty print 57
Pretty Print mode 11
Prgm, execute program 83, 231
prime number test, isPrime( ) 209
prime numbers 50
prime, ' 286
problems (new), NewProb 223
product( ), product 231
product, ( ) 284
Program Editor 19
programs and programming 13
CBL 2 system 108
CBR system 108
clear error, ClrErr 168
clear graph, ClrGraph 169
clear home, ClrHome 169
clear I/O, ClrIO 169
clear table, ClrTable 169
comment, | 288
custom toolbar off, CustmOff
178
custom toolbar on, CustmOn 178
define dialog box Dialog 186
define toolbar, Custom 178
Index

define toolbar, Toolbar 267


define, Define 95, 183
display graph, DispG 187
display Home screen, DispHome
187
display I/O screen, Disp 84, 187
display table, DispTbl 187
drop-down menu, DropDown
189
else if, ElseIf 191
else, Else 206
end custom, EndCustm 178
end dialog, EndDlog 186
end for, EndFor 198
end function, EndFunc 199
end if, EndIf 206
end loop, EndLoop 216
end program, EndPrgm 83, 231
end toolbar, EndTBar 267
end try, EndTry 267
end while, EndWhile 270
execute assembly language, Exec
193
execute program, Prgm 83, 231
exit, Exit 193
for, For 198
format string, format( ) 198
function, Func 199
get/return configuration,
getConfg( ) 200
get/return folder, getFold( ) 201
get/return from calculator,
GetCalc 130, 131, 200
get/return key, getKey( ) 201
get/return mode, getMode( ) 202
get/return units, getUnits( ) 204
go to, Goto 204
if, If 206
input, Input 207
label, Lbl 209
local, Local 214
loop, Loop 216
menu item, Item 209
operations 160
output, Output 226
pass error, PassErr 229
pause, Pause 229
popup menu, PopUp 231
307

KongGuidebook.book Page 308 Thursday, July 14, 2005 12:54 PM

prompt, Prompt( ) 232


request, Request 240
return, Return 240
stop, Stop 259
text, Text 265
Then, Then 206
title, Title 265
try, Try 267
while, While 270
Prompt( ), prompt 232
proper fraction, propFrac 104
propFrac, proper fraction 104, 232
PtChg, point change 232
PtOff, point off 232
PtOn, point on 233
ptTest( ), point test 233
PtText, point text 233
PxlChg, pixel change 233
PxlCrcl, pixel circle 233
PxlHorz, pixel horizontal line 233
PxlLine, pixel line 234
PxlOff, pixel off 234
PxlOn, pixel on 234
pxlTest( ), pixel test 234
PxlText, pixel text 234
PxlVert, pixel vertical line 235

Q
QR factorization, QR 235
QR, QR factorization 235
quadratic regression, QuadReg 236
QuadReg, quadratic regression 236
quartic regression, QuartReg 236
QuartReg, quartic regression 236
Quit (2 K) 10

R
R, radian 285
R4P( ), polar coordinate 237
R4Pr( ), polar coordinate 237
RAD (radian) mode 24
radian, R 285
rand( ), random number 237
randMat( ), random matrix 99, 238
randNorm( ), random norm 238
random
matrix, randMat( ) 99, 238
308

norm, randNorm( ) 238


number seed, RandSeed 99, 238
number, rand( ) 237
polynomial, randPoly( ) 238
randPoly( ), random polynomial 238
RandSeed, random number seed 99,
238
rational functions activity 104
RclGDB, recall graph database 238
RclPic, recall picture 238
real( ), real 238
recall
graph database, RclGDB 238
picture, RclPic 238
Recall (2 6) 10
reciprocal, x/ 287
rectangular x coordinate, P4Rx( ) 227
rectangular y coordinate, P4Ry( ) 227
rectangular-vector display, 4Rect 239
reduced row echelon form, rref( ) 99
ref( ), row echelon form 239
regressions 212
cubic, CubicReg 177
exponential, ExpReg 195
linear regression, LinReg 212
logarithmic, LnReg 214
logistic, Logistic 216
medium-medium line, MedMed
219
power regression, PowerReg 231
quadratic formula activity 96
quadratic, QuadReg 236
quartic, QuartReg 236
sinusoidal, SinReg 254
remain( ), remainder 240
Rename, rename 240
replace picture, RplcPic 243
Request, request 240
results 15
return See get/return
Return, return 240
right( ), right 241
root 241
roots 50
rotate( ), rotate 241
round( ), round 242
row echelon form, ref( ) 239
rowAdd( ), matrix row addition 242
Index

KongGuidebook.book Page 309 Thursday, July 14, 2005 12:54 PM

rowDim( ), matrix row dimension


242
rowNorm( ), matrix row norm 242
rowSwap( ), matrix row swap 243
RplcPic, replace picture 243
rref( ), reduced row echelon form 99,
243

S
sampling activity 118
SAVE COPY AS (8 S)
example 35
scientific notation 8
scripts
activity 102
tutorial 102
scrolling 16, 17
sec( ), secant 243
sec/( ), inverse secant 244
secant, sec( ), 243
sech( ), hyperbolic secant 244
sech/( ),inverse hyperbolic secant
244
Second modifier key (2)
description 7
status 24
second notation, 286
selecting categories 20
send chat, SendChat 130, 131, 245
send list variable, Send 244
send to calculator, SendCalc 130,
131, 244
Send, send list variable 244
SendCalc, send to calculator 130,
131, 244
SendChat, send chat 130, 131, 245
SEQ (sequence) mode 25
seq( ), sequence 245
set
folder, setFold( ) 246
setDate( ), set date 245
setDtFmt( ), set date format 245
setFold( ), set folder 246
setGraph( ), set graph 246
setMode( ), set mode 247
setTable( ), set table 248
setTime( ), set time 248

Index

setTmFmt( ), set time format 248


setTmZn( ), set time zone 249
setUnits( ), set units 249
Shade, shade 250
Shift modifier key (7)
description 7
status 24
shift( ), shift 250
show statistical results, ShowStat 251
ShowStat, show statistical results 251
sign( ), sign 251
simult( ), simultaneous equations
252
sin( ), sine 252
sin/( ), arcsine 253
sinh( ), hyperbolic sine 253
sinh/( ), hyperbolic arcsine 253
SinReg, sinusoidal regression 254
sinusoidal regression, SinReg 254
SocialSt (social studies) category 20
solution, deSolve( ) 184
solve( ), solve 51, 54, 254
solve, solve( ) 51, 54
solving linear equations 51
SortA, sort ascending 257
SortD, sort descending 257
spherical vector display, (Sphere 257
split screen
switch, switch( ) 261
split-screen mode
active graph 25
exiting 42
Number of graphs 40
returning from within an App 20
selecting active App 41
setting 38
setting initial Apps 40
specifying Apps displayed 40
Split 1 App 40
Split 2 App 40
status 23
status and open Apps 2
viewing 11
square root, $( ) 284
standard annuity activity 114
standard deviation, stdDev( ) 258
start timer, startTmr( ) 257
startTmr( ), start timer 257
309

KongGuidebook.book Page 310 Thursday, July 14, 2005 12:54 PM

statistics
combinations, nCr( ) 221
factorial, ! 49, 282
mean, mean( ) 218
median, median( ) 218
new plot, NewPlot 223
operations 161
permutations, nPr( ) 224
plots off, PlotsOff 230
plots on, PlotsOn 230
random norm, randNorm( ) 238
random number seed, RandSeed
99, 238
random number, rand( ) 237
show results, ShowStat 251
standard deviation, stdDev( ) 258
two-variable results, TwoVar 268
variance, variance( ) 269
status
battery low 46
on Apps desktop 2
split-screen 23
status line
command parameters 15
history information 17
stdDev( ), standard deviation 258
stdDevPop 258
StoGDB, store graph database 259
Stop, stop 259
StoPic, store picture 259
Store (9) key 10
storing
graph database, StoGDB 259
picture, StoPic 259
symbol, ! 288
string( ), expression to string 259
strings
append, & 283
character string, char( ) 167
expression to string, string( ) 259
format, format( ) 198
indirection, # 284
inputting, InputSt 131
left, left( ) 210
mid-string, mid( ) 219
operations 161
right, right( ) 241
rotate, rotate( ) 241
310

shift, shift( ) 250


string to expression, expr( ) 194
within, InString 208
Style, style 260
subMat( ), submatrix 260
subtract, 277
subtraction key (|) 8
sum( ), summation 241, 260
sum, )( ) 284
support and service 291
switch( ), switch 261

T
T, transpose 261
Table, build table 262
tables
clearing, ClrTable 169
displaying, DispTbl 187
setting, setTable( ) 248
tan( ), tangent 262
tan/( ), arctangent 263
tangent, tan( ) 262
tanh( ), hyperbolic tangent 263
tanh/( ), hyperbolic arctangent 264
Taylor polynomial, taylor( ) 264
taylor( ), Taylor polynomial 264
tCollect( ), trigonometric collection
264
temperature conversion, tmpCnv( )
266
temperature-range conversion,
@tmpCnv( ) 266
tExpand( ), trigonometric expansion
265
Text, text 265
Then, Then 206
three-dimensional graphing
animation 66
CONTOUR LEVELS 68
HIDDEN SURFACE 68
WIRE AND CONTOUR 68
WIRE FRAME 68
TI Connectivity Cable 42, 123, 134,
136
TI ViewScreen overhead panel
connecting 44
TI Connect software 42, 134

Index

KongGuidebook.book Page 311 Thursday, July 14, 2005 12:54 PM

time
reset 31
setting 26
time value of money activity 115
timeCnv( ), convert time 265
TI-Presenter video adapter
connecting 44
Title, title 265
tmpCnv( ), temperature conversion
266
toolbar
define, Custom 178
off, CustmOff 178
on, CustmOn 178
Toolbar menus
calculator Home screen 32
moving among 35
replaced by custom menu 36
selecting math operations 8
Toolbar, toolbar 267
top-bottom split screen
setting 38
setting initial Apps 40
status 23
Trace, trace 101, 108, 109, 112, 267
trace, Trace 101, 108, 109, 112
tracing 57
transpose, T 261
trigonometric collection, tCollect( )
264
trigonometric expansion, tExpand( )
265
Try, try 267
turning clock off, ClockOff 168
turning clock on, ClockOn 168
turning off 3
after APD 4
following inactivity 4
turning on
initial startup 2
two-variable results, TwoVar 268
typing
file name 18
to scroll through Catalog 13

Index

U
Unarchiv, unarchive variables 152,
268
unarchive variables, Unarchiv 152,
268
underscore, _ 286
unit System mode 11
unit vector, unitV( ) 268
units
get/return, getUnits( ) 204
setting, setUnits( ) 249
unit-to-unit cable 45
connecting 44
unitV( ), unit vector 268
Unlock, unlock 268
upgrading operating system (OS)
133, 134
user-defined functions 183

V
variables 25
archiving and unarchiving 151,
152
archiving, Archive 152, 164
copy, CopyVar 148, 171
copying 148
delete, DelVar 184
deleting 128
DelType 150
in applications 150
local, Local 214
locking/unlocking 149
pasting name 150
recall 10
referring to App files 18
renaming 146
store 10
transmitting 123, 124, 127
unarchive, Unarchiv 152, 268
VARLINK 140, 142, 143, 144, 145,
146, 147, 152
variance( ), variance 269
vector format mode 11
vectors 53
cross product, crossP( ) 174
cylindrical vector display, 4Cylind
179
311

KongGuidebook.book Page 312 Thursday, July 14, 2005 12:54 PM

dot product, dotP( ) 188


unit, unitV( ) 268

W
when( ), when 269
While, while 270
Window Editor 38
wire-and-contour graphing 68
wire-frame graphing 68
with, | 53, 54, 288
within string, inString( ) 208

X
xor, Boolean exclusive or 270
XorPic, exclusive or picture 271

Y
Y= editor 57, 59

Z
zeroes
activity 111
zeroes, zeros( ) 96, 271
zeros( ), zeroes 96, 271
zoom

312

box, ZoomBox 272


data, ZoomData 273
decimal, ZoomDec 273
fit, ZoomFit 274
in, ZoomIn 274
integer, ZoomInt 274
out, ZoomOut 275
previous, ZoomPrev 275
recall, ZoomRcl 275
square, ZoomSqr 275
standard, ZoomStd 276
store, ZoomSto 276
trig, ZoomTrig 276
ZoomBox, zoom box 272
ZoomData, zoom data 273
ZoomDec, zoom decimal 273
ZoomFit, zoom fit 274
ZoomIn, zoom in 274
ZoomInt, zoom integer 274
ZoomOut, zoom out 275
ZoomPrev, zoom previous 275
ZoomRcl, zoom recall 275
ZoomSqr, zoom square 275
ZoomStd, zoom standard 276
ZoomSto, zoom store 276
ZoomTrig, zoom trig 276

Index

You might also like