0% found this document useful (0 votes)
15 views306 pages

Voyage200Guidebook Part1 en

The document is a user guide for the Voyage™ 200 graphing calculator by Texas Instruments, detailing its features, functionalities, and operational instructions. It covers initial setup, key functions, connectivity, memory management, and includes various activities and examples for users. Additionally, it provides important safety information and warranty disclaimers related to the product.

Uploaded by

catrinagraca
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views306 pages

Voyage200Guidebook Part1 en

The document is a user guide for the Voyage™ 200 graphing calculator by Texas Instruments, detailing its features, functionalities, and operational instructions. It covers initial setup, key functions, connectivity, memory management, and includes various activities and examples for users. Additionally, it provides important safety information and warranty disclaimers related to the product.

Uploaded by

catrinagraca
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 306

Voyage™ 200

Graphing Calculator

© 2004 Texas Instruments Incorporated


Windows and Macintosh are trademarks of their respective owners.
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
Table of Contents
Introduction ......................................................................v
The Voyage™ 200 graphing calculator......................................... v
How to use this guidebook............................................................ v

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


Initial start-up ................................................................................. 1
Voyage™ 200 keys.......................................................................... 5
Mode settings .............................................................................. 11
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 ................................................................................. 31
Using split screens ........................................................................ 38
Managing Apps and operating system (OS) versions................. 42
Connecting your Voyage™ 200 to other devices ....................... 44
Batteries ........................................................................................ 44

2 Previews ...........................................................................47
Performing Computations ........................................................... 47
Symbolic Manipulation ................................................................ 50
Constants and Measurement Units ............................................. 52
Basic Function Graphing I ........................................................... 53
Basic Function Graphing II .......................................................... 55
Parametric Graphing .................................................................... 57
Polar Graphing ............................................................................ 58
Sequence Graphing ..................................................................... 60
3D Graphing ................................................................................ 61
Differential Equation Graphing .................................................. 64
Additional Graphing Topics ......................................................... 66
Tables ............................................................................................ 68
Split Screens .................................................................................. 69
Data/Matrix Editor........................................................................ 70
Statistics and Data Plots .............................................................. 71
Programming ............................................................................... 78
Text Operations ........................................................................... 80
Numeric Solver ............................................................................. 82
Number Bases ............................................................................... 83
Memory and Variable Management .......................................... 85

iii
3 Activities.......................................................................... 89
Analyzing the Pole-Corner Problem ............................................ 89
Deriving the Quadratic Formula .................................................. 90
Exploring a Matrix ........................................................................ 92
Exploring cos(x) = sin(x)................................................................ 93
Finding Minimum Surface Area of a Parallelepiped .................. 94
Running a Tutorial Script Using the Text Editor.......................... 95
Decomposing a Rational Function............................................... 97
Studying Statistics: Filtering Data by Categories ........................ 99
CBL 2™ Program for the Voyage™ 200 .................................... 102
Studying the Flight of a Hit Baseball......................................... 103
Visualizing Complex Zeros of a Cubic Polynomial .................... 105
Solving a Standard Annuity Problem ........................................ 107
Computing the Time-Value-of-Money ...................................... 108
Finding Rational, Real, and Complex Factors............................ 110
Simulation of Sampling without Replacement......................... 110
Using Vectors to Determine Velocity......................................... 111

4 Connectivity .................................................................. 115


Connecting Two Units ................................................................ 115
Transmitting Variables, Flash Applications, and Folders .......... 116
Transmitting Variables under Program Control........................ 121
Upgrading the Operating System (OS)...................................... 123
Collecting and Transmitting ID Lists .......................................... 126
Compatibility among the TI-89 Titanium, Voyage™ 200,
TI-89, and TI-92 Plus .............................................................. 128

5 Memory and Variable Management ............................ 131


Checking and Resetting Memory............................................... 131
Displaying the VAR-LINK Screen ................................................ 132
Manipulating Variables and Folders with VAR-LINK ................ 134
Pasting a Variable Name to an Application .............................. 141
Archiving and Unarchiving a Variable....................................... 142
If a Garbage Collection Message Is Displayed........................... 143
Memory Error When Accessing an Archived Variable .............. 146

A Appendix A: Functions and Instructions ..................... 149


Quick-Find Locator...................................................................... 150
Alphabetical Listing of Operations............................................ 154

B Appendix B: General Information................................ 279


Texas Instruments Support and Service ..................................... 279
Texas Instruments (TI) Warranty Information ........................... 280

Index.............................................................................. 283

iv
Introduction

The Voyage™ 200 graphing calculator


This guidebook provides information about a powerful, advanced
graphing calculator available from Texas Instruments: the Voyage™ 200
graphing calculator.
Your Voyage™ 200 graphing calculator 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 Voyage™ 200 (2.7 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 Voyage™ 200 graphical user interface (GUI) and configurable Apps
desktop make it easy to organize Apps into categories that you create.
Extend the reach of your Voyage™ 200 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 Voyage™ 200 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 Voyage™ 200 display so an entire class can
view it.

How to use this guidebook


We’ve 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:
Press 2 ¿. (Press and release the 2 key, then press the ¿
key, which is the second function of the « key.)

Introduction v
• 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 Voyage™ 200.

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 calculator’s memory and in the data archive, a
protected area of memory separate from RAM (random access memory).

Technical Reference – 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.

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 Voyage™ 200. This same information is also
available online as a free download at:
education.ti.com/guides

vi Introduction
1
Getting Started

Initial start-up
Installing the AAA Batteries
The Voyage™ 200 uses four AAA alkaline batteries and a back-up lithium
battery (CR1616 or CR1620). The backup batteries are 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.

Turning on your Voyage™ 200 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

Getting Started 1
Adjusting the contrast
• To lighten the display, press and hold 8 and tap |. V AR -LIN K

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


CHAR

The Apps desktop


The Apps desktop is the starting point for operating your Voyage™ 200.
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.

Ê Ë

Ì
Ð

Í
Î

Voyage™ 200 Apps desktop

Ê View full name of highlighted App.


Ë Press ¸ to open highlighted App.
Ì View time and date.
Í Scroll down to view additional Apps.
Î Check status line information.

2 Getting Started
Ï Select category of Apps.
Ð Edit categories.
To return to the Apps desktop at any time, press O. The last category
selected appears with the last open App highlighted.

Removing and replacing the cover (Voyage™ 200)


To remove the cover:
1. Hold the unit with one hand.
2. Grasp the cover by the lip with the other hand.
3. Lift the cover by the lip.
To replace the cover, position it over the calculator with the lip in front
and snap in place.

Lip

Stowing the cover


To stow the cover, position it upside-down beneath the calculator with
the lip in front and snap in place.

Lip

Getting Started 3
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 Voyage™ 200.

Press: Description
2 ® (press 2 Settings and memory contents are retained
and then press ®) by the Constant Memory™ feature.
• You cannot, however, use 2 ® if an
error message is displayed.
• When you turn the Voyage™ 200 on
again, it displays either the Home screen
or the Apps desktop (regardless of the
last application you used).
¥ ® (press ¥ Similar to 2 ® except:
and then press ®) • You can use ¥ ® if an error message is
displayed.
• When you turn the Voyage™ 200 on
again, it will be exactly as you left it.

Note: ® is the second function of the ´ key.


The calculator’s Automatic Power Down™ (APD™) feature prolongs
battery life by turning the calculator off automatically following several
minutes of inactivity. When you turn on the calculator after APD:
• The display, cursor, and any error conditions are exactly the same as
before APD.
• All settings and memory contents are retained.
Note: APD does not function when a calculation or program is in
progress, unless a pause is specified in the calculation or program.

4 Getting Started
Voyage™ 200 keys
Ê Ë

Î
Ì
Í

Voyage™ 200 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.
Í QWERTY keyboard is similar to a computer keyboard.
Î Modifier keys (2, 8, 7, 1) add features by increasing the number
of key commands.

QWERTY keyboard
If you’re familiar with typing on a computer, you’re on your way to using
the Voyage™ 200 QWERTY keyboard, with these differences:
• To type a single uppercase alphabetic character, press 7 and the
letter key.
• To turn on uppercase lock, press 2 ¢. To turn off uppercase
lock, press 2 ¢ again.

Getting Started 5
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
Symbol displayed at cursor
select 9:→ location.
and press ¸

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

6 Getting Started
To type most characters, press 2 and the corresponding key. Press N
to close the map.
Example: Use the keyboard map to find the quotation symbol (")
shortcut and enter the symbol in the Program Editor.

Press Result
8”

2L

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 Accesses Apps, menu options, and other
(Second) operations. Second functions are printed
above their corresponding keys in the same
color as the 2 key.
8 Accesses Apps, menu options, and other
(Diamond) operations. Diamond functions are printed
above their corresponding keys in the same
color as the 8 key.
¤ Types an uppercase character for the next
(Shift) letter key you press. Also used with A and B
to highlight characters when editing.

Getting Started 7
Keys Description
1 Lets you use the cursor keys to manipulate
(Hand) geometric objects. Also used when drawing
on a graph.

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 math-
related operations.
• Within Apps, open toolbar menus to select App options.

Cursor keys
Pressing A, B, C, or D moves the cursor in the corresponding direction.
Depending on the App, and depending on whether the 2 orr8
modifier key is used, the cursor keys move the cursor in a variety of ways.
• C or D moves the cursor up or down one line at a time.
• 2 A or 2 B moves the cursor to the beginning or end of a line.
• 2 C or 2 D moves the cursor up or down one page at a time.
• 8 C or 8 D moves the cursor to the top or bottom of a page.
• C and A, C and B, D and A, or D and B moves the cursor
diagonally. (Press each pair of indicated cursor keys simultaneously.)

Numeric keypad
The numeric keypad lets you enter positive and negative numbers.
To enter a negative number, press ? before typing the number.

8 Getting Started
Note: Don’t 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 2 ^ The exponent symbol (í) follows the numbers you
entered.
3. Type the exponent as an integer with up to three digits. (As the
following example shows, you can use a negative exponent.)
Example: On the calculator Home screen, enter 0.00685 using scientific
notation.

Press Result
6¶85

2^

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

Getting Started 9
Key Command Description
These keys let you edit entered
8 X (cut) information by performing a cut,
copy, or paste operation.
8 C (copy)
8 V (paste)
8S Displays the SAVE COPY AS
dialog box, prompting you to
select a folder and type a
variable name to which data
entered on the screen is saved.
8N Creates new file.
8O Opens an existing file you
specify.
8F Displays the FORMATS or GRAPH
FORMATS dialog box, where you
enter format information for the
active App.
O Displays the Apps desktop.
8O With the Apps desktop off,
displays the FLASH
APPLICATIONS menu.
2a Switches between the last two
chosen Apps.
2¾ Turns the custom menu on and
off.
24 Converts measurement units.
Designates a measurement unit.
25
0 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.
2¯ Displays the MEMORY screen.

10 Getting Started
Key Command Description
Displays a list of commands.
2E
2£ 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 Voyage™ 200 displays and interprets
information. All numbers, including elements of matrices and lists, are
displayed according to the current mode settings. When the Voyage™
200 is turned off, the Constant Memory™ feature retains all of the mode
settings you have selected.
To view the Voyage™ 200 mode settings:
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.

Getting Started 11
Viewing mode settings
Press Result
3

ã„

Changing mode settings


Example: Change the Language mode setting to Spanish (Español).

Press Result
3

12 Getting Started
Press Result
Scroll down to the Language
field.
D

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

¸
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 Voyage™ 200 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 Voyage™ 200; the User-Defined ( †) menu option is grayed out if
you have not created a function or program.

Getting Started 13
Note: Typing a letter takes you to the first command in the list starting
with the same letter.

Press Result
2E
(displays Built-in commands)


(displays Flash Apps
commands, if any)


(displays User-Defined
commands, if any)

Select commands from the Catalog and insert them onto the calculator
Home screen entry line or paste them to other Apps, such as the
Y= Editor, Text Editor, or CellSheet Apps.
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.

14 Getting Started
Pressing 2 D advances the Catalog list one page at a time.

Press Result
2EC

2D

Then press D until the pointer


is at the comDenom( function.
¸

The status line displays any required and optional parameters for the
selected command. Optional parameters appear in square brackets.
Note: Pressing ƒ also displays 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 8 ".

Getting Started 15
You can also display the calculator Home screen from the Apps desktop
by highlighting the Home icon and pressing ¸.

Ê Ë

Ï
Ì
Î

Ê 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 last 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
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 From the entry line, press C to highlight the
scrolled off the screen last answer.
Continue using C to move the cursor from
answer to entry through the history area.
Go to the oldest or If the cursor is in the history area, press 8 C
newest entry/answer or 8 D.
pair
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
is displayed at the end to go to the beginning or end.
of the line)
Return cursor to the Press N, or press D until the cursor is back
entry line 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 ________ Maximum number of


8/30 _______
currently saved pairs that can be saved

If the cursor is in the history area:

Pair number of the _______


8/30 _______ Total number of pairs
highlighted currently saved
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
– 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 Voyage™ 200 organizes Apps by category on the Apps desktop. To
select a category, press a function key ( „ through Š). 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 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 Voyage™ 200 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
Example: Create a new program using the Program Editor.

Press Result
Use cursor keys to highlight

DD
program1

¸¸

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.

Getting Started 19
You can also return to the Apps desktop by pressing 2 K in full-
screen mode. In split-screen mode, press 2 K twice.
To return to the last open App from the Apps desktop, press 2 a.

Selecting an Apps category


On the Voyage™ 200, the Apps category names appear along the left
side of the Apps desktop. To select an Apps category, press the
corresponding function key (displayed above the category name 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.
ˆ Graphing Customizable category. Graphing is the
default.
‰ Science Customizable category. Science is the default.
Š Organizr Customizable category. Organizr (organizer)
is the default.

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

20 Getting Started
Press ¸ or N to clear the message and return to the Apps desktop.

Customizing the Apps categories


The Voyage™ 200 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 Š 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 ¸.
Example: Replace the Social Studies category with the Business category
and add the CellSheet and Finance App shortcuts.

Press Result
ƒ

Getting Started 21
Press Result
2
– or –

¤Business

D
©
B

D
©
B

22 Getting Started
Press Result

Open Apps and split-screen status


Your Voyage™ 200 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
Voyage™ 200 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

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.

Getting Started 23
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 Voyage™ 200.

Ê Ë Ì Í Î Ï Ð Ñ Ò Ó

Indicator Meaning
Ê Current folder Name of the selected folder (MAIN is the
default folder.)
Ë Modifier key Selected modifier key (2, 8, 7), if any.

Ì Hand key The 1 modifier key has been selected.

Í Angle mode Selected units in which angle values are


displayed and interpreted (RAD, DEG)
Î Exact/Approx Mode in which answers are calculated and
mode displayed (AUTO, EXACT, APPROX)

24 Getting Started
Indicator Meaning
Ï Graph number Active of two independent graphs in split-
screen 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/30–Number 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, BUSY–Calculation or graph is in progress
Locked/Archived PAUSE–You paused a graph or program
variable
Œ–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
3

Getting Started 25
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
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
Example: Set the time and date to 19/10/02 (October 19, 2002) at
1:30 p.m.

Press Result
Use cursor keys to highlight Time and date

D1D

30D

BD

28 Getting Started
Press Result
¸D

BD

¸D

2002

DB

Getting Started 29
Press Result
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.
Example: Turn off the clock.

Press Result
Use cursor keys to highlight Clock on

30 Getting Started
Press Result
¸
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.

Using menus
To select most Voyage™ 200 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 Voyage™ 200 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.

Getting Started 31
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.
O 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
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 „.

– or –

Selecting submenu options


A small arrow symbol (ú) to the right of a menu option indicates that
selecting the option will open a submenu.

Getting Started 33
$ points to additional
options.

Example: Select ord( from the MATH menu on the calculator Home
screen.

Press Result
2I

C
– or –
CCB

B
– or –

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
Example: Open the SAVE COPY AS dialog box from the Window
Editor.

Press Result
O
Use the cursor keys to
highlight

and press ¸

2 Press B to display a Type the name of


list of folders. the variable.
– or –
D¸N

Press ¸ twice to save and then


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.

Getting Started 35
Moving among toolbar menus
To move among the toolbar menus without selecting a menu option:
• Press the function key (ƒ through Š) of a toolbar menu.
• Press a function key, then press B or A to move from one toolbar
menu to the next. Press B from the last menu to move to the first
menu, and vice versa.
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 Voyage™ 200 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 Result
2F Default custom menu

36 Getting Started
Press Result
2F Normal toolbar menu

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¸

Getting Started 37
Press Result
¸

Opening Apps with the Apps desktop turned off


If you turn off the Apps desktop, use the APPLICATIONS menu to open
Apps. To open the APPLICATIONS menu with the Apps desktop off, press
O.
Note: If you press O with the Apps desktop turned on, the Apps
desktop will appear instead of the APPLICATIONS menu.
Example: With the Apps desktop turned off, open the Window Editor
from the APPLICATIONS menu.

Press Result
O

3
– or –
DD¸

To access Apps not listed on the APPLICATIONS menu, select 1:FlashApps.

Using split screens


The Voyage™ 200 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.

38 Getting Started
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.
Example: Set split-screen mode to TOP-BOTTOM.

Press Result
3

BD

Getting Started 39
Press Result
¸

Setting the initial Apps for split screen


After you select either TOP-BOTTOM or LEFT-RIGHT split-screen mode,
additional mode settings become available.

Full-screen mode Split-screen mode

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.
Split Screen Ratio Lets you change the ratio of the split-screen
views.

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 39.)
2. Press D or C to highlight the App and press ¸.
3. Repeat steps 1 and 2 for the Split 2 App mode setting.

40 Getting Started
Example: Display the Y= Editor in the top screen and the Graph App in
the bottom screen.

Press Result
DB

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 Voyage™
200 exits split-screen mode and displays the App in full-screen mode.

Getting Started 41
Selecting the active App
In split-screen mode, only one App can be active at a time.
• To switch between active Apps, press 2 a.
• To open a third App, press O and select the App. This App
replaces the active split-screen App.

Exiting split-screen mode


Exit split-screen mode in any of the following ways:
• Press 2 K to close the active App and display the full-screen
view of the other open App.
• If the Apps desktop is turned off, pressing 2 K replaces the
active split-screen App with the calculator Home screen. Pressing
2 K again turns off the split-screen mode and displays the
calculator Home screen in full-screen mode.
• Select Split Screen on Page 2 of the MODE dialog box, set split-screen
mode to FULL, and press ¸.
• Press 2 K twice to display the Apps desktop
More information is available about using split screens. (See the
electronic Split Screens chapter.)

Managing Apps and operating system (OS)


versions
Using the Voyage™ 200 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 Voyage™ 200.
• A compatible graphing calculator.
Adding Apps to your Voyage™ 200 is like loading software on a
computer. All you need is TI Connect software and the the
USB Silver Edition cable that came with your Voyage™ 200.
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 Voyage™ 200, please read the license
agreement on the CD-ROM or TI Web site.

42 Getting Started
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
Voyage™ 200. You will find this information on the ABOUT screen.
To display the ABOUT screen, press ƒ 3:About from the Apps desktop.
The ABOUT screen displays the following information about your
Voyage™ 200:

Î Ë

Í
Ì

Ê 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 Voyage™ 200 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 ‰ 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.

Getting Started 43
Note: Only Flash Apps can be deleted.

Connecting your Voyage™ 200 to other devices


The Voyage™ 200 includes a standard I/O port. Ports are used to link two
compatible graphing calculators or connect to a computer or peripheral
device.
In addition, any Voyage™ 200 calculator includes an accessory port. This
port is used to output visual data so that a classroom can view the
calculator’s display on a video device or overhead screen.

To connect your calculator to a computer – Connect your Voyage™


200 using the I/O port and the included USB Silver Edition cable.

To connect your calculator to another calculator – Use the an I/O


unit-to-unit cable to connect the Voyage™ 200 to a compatible graphing
calculator or peripheral device, such as a TI-89 or TI-92 Plus graphing
calculator or the CBL 2™ and CBR™ systems.

To show your calculator’s display to the classroom – Use the


accessory port to connect the TI-Presenter™ video adapter to the
Voyage™ 200. 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.

I/O port Accessory port


Voyage™ 200 ports

Batteries
The Voyage™ 200 use four AAA alkaline batteries and a back-up lithium
battery (CR1616 or CR1620). The backup battery is already installed, and
the AAA batteries are provided with your product.

44 Getting Started
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 Voyage™ 200 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.

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 Voyage™ 200 using an I/O 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:

Getting Started 45
• Do not leave batteries within the reach of children.
• Do not mix new and used batteries. Do not mix brands (or types
within brands) of batteries.
• Do not mix rechargeable and non-rechargeable batteries.
• Install batteries according to polarity (+ and –) diagrams.
• Do not place non-rechargeable batteries in a battery recharger.
• Properly dispose of used batteries immediately.
• Do not incinerate or dismantle batteries.

46 Getting Started
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 Voyage™ 200. The history area in each screen was cleared
by pressing ƒ and selecting 8:Clear Home, before performing each
example, to illustrate only the results of the example’s keystrokes.

Showing Computations
Steps and keystrokes Display
Compute sin(p/4) and display the result in
symbolic and numeric format. To clear the
history area of previous calculations, press ƒ
and select 8:Clear Home.

H W2Te4d¸8‘

Finding the Factorial of Numbers


Steps and keystrokes Display
Compute the factorial of several numbers to see
how the Voyage™ 200 handles very large
integers. To get the factorial operator (!), press
2 I, select 7:Probability, and then select
1:!.

H 5 2 Å ¸ 20 2 Å ¸ 30 2 Å
¸

Previews 47
Expanding Complex Numbers
Steps and keystrokes Display
Compute (3+5i) 3
to see how the Voyage™ 200
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.

Expanding Expressions
Steps and keystrokes Display
3.
Expand the expression (xN5) You can enter
“expand” on the entry line by typing EXPAND
on the keyboard, or by pressing „ and selecting
3:expand(.

Press „ 3 c X | 5 d Z 3 d ¸
(Optional) Enter other expressions on your own.

Reducing Expressions
Steps and keystrokes Display
Reduce the expression (x 2N2xN5)/(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

48 Previews
Factoring Polynomials
Steps and keystrokes Display
Factor the polynomial (x 2N5)
with respect to x.
You can enter “factor” on the entry line by
typing FACTOR on the keyboard or by pressing
„ and selecting 2:factor(.
Press „ 2 X Z 2 | 5 b X d ¸

Solving Equations
Steps and keystrokes Display
2
Solve the equation x N2xN6=2 with respect to x.
You can enter “solve(” on the entry line by
selecting “solve(” from the Catalog menu, by
typing SOLVE( on the keyboard, or by pressing
„ and selecting 1:solve(.
The status line area shows the required syntax
for the marked item in the Catalog menu.
Press „ 1 X Z 2 | 2 X | 6 Á 2 b X d ¸

Solving Equations with a Domain Constraint


Steps and keystrokes Display
2N2xN6=2
Solve the equation x with respect to x
where x is greater than zero. The “with” (I)
operator provides domain constraint.

H „ 1 X Z 2 | 2 X | 6 Á 2 b X d2 Í X
2Ã0¸

Previews 49
Finding the Derivative of Functions
Steps and keystrokes Display
3/(x+y)2
Find the derivative of (xNy) with respect
to x.
This example illustrates using the calculus
differentiation function and how the function is
displayed in “pretty print” in the history area.
Press 2 = c X | Y d Z 3 e c X « Y d Z
2bXd¸

Finding the Integral of Functions


Steps and keystrokes Display
Find the integral of x…sin(x) with respect to x.
This example illustrates using the calculus
integration function.

H 2<XpWXdbXd¸

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 Display


1. Display the Home screen and clear the entry
line. Solve the equation 2x N 3y = 4 for x.
„ 1 selects solve( from the Algebra menu.
You can also type solve( directly from the
keyboard or select it from the Catalog.

H 8"MM„12X|
3YÁ4bXd¸
2. Begin to solve the equation Lx + 7y = L12 for
y, but do not press ¸ yet.
Press „ 1 ? X « 7 Y Á ? 12 b Y d

50 Previews
Steps and keystrokes Display
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.

H 2Í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.
H ¸2Í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 51
Constants and Measurement Units
Using the equation f = m…a, 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 Display


1. Display the MODE dialog box, Page 3. For
Unit System mode, select SI for the metric
system of measurements.
Results are displayed according to these
default units.
Press 3 … B 1 ¸
2. Create an acceleration unit for
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.

H 8ÀDBM¸e8ÀD
D D D B S ¸ Z 2 9 2 5 MS2
¸
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.

H 5 2 5 KG p 20 2 5 MS2 ¸

52 Previews
Steps and keystrokes Display
4. Using the same m, calculate the force for an
acceleration due to gravity (the constant
_g).
For _g, you can use the pre-defined
constant available from the UNITS dialog
box or you can type _g.

H 5 2 5 KG p 8 À B G ¸
¸
5. Convert to kilograms of force (_kgf).
2 4 displays the 4 conversion operator.

H B 2 4 2 5 KGF ¸

Basic Function Graphing I


The example in this section demonstrates some of the graphing
capabilities of the Voyage™ 200 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 Voyage™ 200 by graphing the
function y=(|x2N3|N10)/2.

Steps and keystrokes Display


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

H c2EA¸XZ2|3d
|10de2¸

Previews 53
Steps and keystrokes Display
3. Display the graph of the function.
Select 6:ZoomStd by pressing 6 or by
moving the cursor to 6:ZoomStd and
pressing ¸.
Press „ 6
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

54 Previews
Steps and keystrokes Display
9. Transfer the result to the Home screen, and
then display the Home screen.

H 8H8"

Basic Function Graphing II


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

Steps and keystrokes Display


1. Display the MODE dialog box. For Graph
mode, select FUNCTION.
Press 3 B 1 ¸

2. Display the Home screen. Then store the


5!r
radius, 5, in variable r.

H 8"59R¸
3. Display and clear the Y= Editor. Then
define y1(x) = ( r 2 – x 2 ) , the top half of a
circle.
In function graphing, you must define
separate functions for the top and bottom
halves of a circle.

H 8#,8¸¸2]RZ2
|XZ2d¸

Previews 55
Steps and keystrokes Display

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 ¸
5. Select the ZoomStd viewing window,
which automatically graphs the functions.
In the standard viewing window, both the
x and y axes range from L10 to 10.
However, this range is spread over a longer Notice slight gap
distance along the x axis than the y axis. between top and
Therefore, the circle appears as an ellipse. 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.

56 Previews
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 Display


1. Display the MODE dialog box. For Graph
mode, select PARAMETRIC.
Press 3 B 2 ¸

2. Display and clear the Y= Editor. Then


xt1(t)=15t…cos(60¡)
define the horizontal component
xt1(t) = v 0t cos q.
Enter values for v 0 and q.
H 8 # , 8 ¸ ¸ 15T p X
60 2 “ d ¸
Type T p X, not T X.
Enter a ¡ symbol by typing either 2 “ or
2 I 2 1. This ensures a number is
interpreted as degrees, regardless of the
angle mode.
3. Define the vertical component
yt1(t) = v 0t sin q N (g/2)t 2.
Enter values for v 0, q, and g.

H ¸ 15T p 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

Previews 57
Steps and keystrokes Display
5. Graph the parametric equations to model
the path of the ball.
Press 8 %

6. Select Trace. Then move the cursor along


the path to find the:
• y value at maximum height.
• t value where the ball hits the ground.
Press … B or A as necessary

Polar Graphing
The graph of the polar equation r1(q) = A sin B q forms the shape of a
rose. Graph the rose for A=8 and B=2.5. Then explore the appearance of
the rose for other values of A and B.

Steps and keystrokes Display


1. Display the MODE dialog box. For Graph
mode, select POLAR. For Angle mode,
select RADIAN.
Press 3 B 3 D D D B 1 ¸

2. Display and clear the Y= Editor. Then define


the polar equation r1(q) = A sin Bq.
Enter 8 and 2.5 for A and B, respectively.
H 8 # , 8 ¸ ¸ 8 W 2.5 Ï

58 Previews
Steps and keystrokes Display
3. Select the ZoomStd viewing window, which
graphs the equation.
• The graph shows only five rose petals.
– In the standard viewing window,
the Window variable qmax = 2p.
The remaining petals have q values
greater than 2p.
• The rose does not appear symmetrical.
– Both the x an y axes range from L10
to 10. However, this range is spread
over a longer distance along the x
axis than the y axis.
Press „ 6
4. Display the Window Editor, and change
qmax to 4p.
4p will be evaluated to a number when you
leave the Window Editor.
Press 8 $ D 4 2 T
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.

Previews 59
Sequence Graphing
A small forest contains 4000 trees. Each year, 20% of the trees will be
harvested (with 80% remaining) and 1000 new trees will be planted.
Using a sequence, calculate the number of trees in the forest at the end of
each year. Does it stabilize at a certain number?

Initially After 1 Year After 2 Years After 3 Years ...


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

Steps and keystrokes Display


1. Display the MODE dialog box. For Graph
mode, select SEQUENCE.
Press 3 B 4 ¸

2. Display and clear the Y= Editor. Then define


the sequence as
u1(n) = iPart(.8…u1(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.

H 8 # , 8 ¸ ¸ 2 I 14.8
U1 c 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

60 Previews
Steps and keystrokes Display
5. Set the x and y Window variables to
appropriate values for this example.
Press 0 D 50 D 10 D 0 D 6000 D 1000
6. Display the Graph screen.
Press 8 %

7. Select Trace. Move the cursor to trace year


by year. How many years (nc) does it take
the number of trees (yc) to stabilize?
Trace begins at nc=0.
nc is the number of years.
xc = nc since n is plotted on the x axis.
By default, sequences use
yc = u1(n), the number of trees at the Square display style.
year n.
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 Display


1. Display the MODE dialog box. For Graph
mode, select 3D.
Press 3 B 5 ¸

2. Display and clear the Y= Editor. Then define


the 3D equation 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 ¸

Previews 61
Steps and keystrokes Display
3. Change the graph format to display and
label the axes. Also set Style = WIRE
FRAME.
You can animate any graph format style,
but WIRE FRAME is fastest.

H 8FDB2DB2DB1¸
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

62 Previews
Steps and keystrokes Display
7. View the graph along the x axis, the y axis,
and then the z axis.
Press X
This graph has the same shape along the
y axis and x axis.
Press Y
Press Z

8. Return to the initial orientation.


Press 0 (zero)
9. Display the graph in different graph format
styles.
H F (press F to switch from each style to
the next) HIDDEN SURFACE

CONTOUR LEVELS
(may require extra time to
calculate contours)

WIRE AND CONTOUR

WIRE FRAME

Note: You can also display the graph as an implicit plot by using the
GRAPH FORMATS dialog box (Voyage™ 200: 8 F). If you pressVoyage™
200: F to switch between styles, the implicit plot is not displayed.

Previews 63
Differential Equation Graphing
Graph the solution to the logistic 1st-order differential equation
y' = .001y…(100Ny). Start by drawing only the slope field. Then enter initial
conditions in the Y= Editor and interactively from the Graph screen.

Steps and keystrokes Display


1. Display the MODE dialog box. For Graph
mode, select DIFF EQUATIONS.
Press 3 B 6 ¸

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.

H 8FDDB2DDB2DB1DB1
¸

64 Previews
Steps and keystrokes Display
4. Display the Window Editor, and set the
Window variables as shown to the right.
Press 8 $ 0 D 10 D .1 D 0 D ? 10 D
110 D 10 D ? 10 D 120 D 10 D 0 D .001
D 20

5. Display the Graph screen.


Because you did not specify an initial
condition, only the slope field is drawn (as
specified by Fields=SLPFLD in the GRAPH
FORMATS dialog box).
Press 8 %
6. Return to the Y= Editor and enter an initial
condition:
yi1=10
Press 8 # ¸ 10 ¸
7. Return to the Graph screen.
Initial conditions entered in the Y= Editor
always occur at t 0. The graph begins at the
initial condition and plots to the right. Then
it plots to the left. The initial condition is
marked with a circle.
Press 8 %

8. Return to the Y= Editor and change yi1 to


enter two initial conditions as a list:
yi1={10,20}
Press 8 # C ¸ 2 [ 10 b 20 2 \
¸
9. Return to the Graph screen.
Press 8 %

Previews 65
Steps and keystrokes Display
10. To select an initial condition interactively,
press:
H Š
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
H Š
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.

H Š 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 Display


1. Display the MODE dialog box. For Graph
mode, select FUNCTION. For Angle mode,
select RADIAN.
Press 3 B 1 D D D B 1 ¸

2. Display the Home screen. Use the Graph Graph when(x<0,Lx,


command and the when function to specify 5…cos(x))
the piecewise defined function.
† 2 selects Graph from the Other toolbar
menu and automatically adds a space.

H 8 " † 2 WHEN c X 2 Â
0b?Xb5pXXdd

66 Previews
Steps and keystrokes Display
3. Execute the Graph command, which
automatically displays the Graph screen.
The graph uses the current Window
variables, which are assumed to be their
standard values („ 6) for this example.
Press ¸
4. Draw a horizontal line across the top of the
cosine curve.
The calculator remains in “line” mode until
you select a different operation or press
N.

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

H , 2 B 2 D D PIC1 ¸ ¸
6. Clear the drawn horizontal line.
You can also press † to regraph.

H ˆ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) ¸

Previews 67
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 Display


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

68 Previews
Steps and keystrokes Display
6. Zoom in on the sign change between x = L2
and x = L1 by changing the table parameters
to:
tblStart = L2
@tbl = .1
Press „ ? 2 D .1 ¸ ¸

Split Screens
Split the screen to show the Y= Editor and the Graph screen. Then
explore the behavior of a polynomial as its coefficients change.

Steps and keystrokes Display


1. Display the MODE dialog box.
For Graph, select FUNCTION.
For Split Screen, select LEFT-RIGHT.
For Split 1 App, select Y= Editor.
For Split 2 App, select Graph.
Press 3 B 1 „ B 3 D B 2 D B 4 ¸
2. Clear the Y= Editor and turn off any stat
data plots. Then 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. Then 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 ¸

Previews 69
Steps and keystrokes Display
5. Switch to the Graph screen, which regraphs
the edited function.
The thick border is around the Graph
screen.
Press 2 a
6. Switch to the Y= Editor. Then open the
Window Editor in its place.
Press 2 a 8 $

7. Open the Home screen. Then exit to a


full-sized Home screen.
Press 2 K twice.

Data/Matrix Editor
Use the Data/Matrix Editor to create a one-column list variable. Then
add a second column of information. Notice that the list variable (which
can have only one column) is automatically converted into a data
variable (which can have multiple columns).

Steps and keystrokes Display


1. Use O to display the Data/Matrix Editor.
Create a new list variable named TEMP.
Press 3 B3 D D TEMP ¸ ¸

2. Enter a column of numbers. Then move the


cursor up one cell (just to see that a
highlighted cell’s value is shown on the
entry line).
LIST is shown in the upper-left corner to
indicate a list variable.
You can use D instead of ¸ to enter
information in a cell.
Press 1 ¸ 2 ¸ 3 ¸ 4 ¸ 5 ¸
6¸C

70 Previews
Steps and keystrokes Display
3. Move to column 2, and define its column
header so that it is twice the value of
column 1.
DATA is shown in the upper-left corner to
indicate that the list variable was converted
to a data variable. Œ means the cell is in a
defined column.

H B†2pC1¸
4. Move to the column 2 header cell to show
its definition in the entry line.
When the cursor is on the header cell, you
do not need to press † to define it. Simply
begin typing the expression.
Press 2 C C
5. Clear the contents of the variable.
Simply clearing the data does not convert
the data variable back into a list variable.
Press , 8 ¸

Note: If you don’t need to save the current variable, use it as a


scratchpad. The next time you need a variable for temporary data, clear
the current variable and re-use it. This lets you enter temporary data
without creating a new variable each time, which uses up memory.

Statistics and Data Plots


Based on a sample of seven cities, enter data that relates population to
the number of buildings with more than 12 stories. Using Median-
Median and linear regression calculations, find and plot equations to fit
the data. For each regression equation, predict how many buildings of
more than 12 stories you would expect in a city of 300,000 people.

Steps and keystrokes Display


1. Display the MODE dialog box. For Graph
mode, select FUNCTION.
Press 3 B 1 ¸

Previews 71
Steps and keystrokes Display
2. Use•O 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) Bldgs > 12 stories
150 4
500 31
800 42
250 9
500 20
750 55
950 73
Press 150 ¸ 500 ¸ 800 ¸ 250
¸ 500 ¸ 750 ¸ 950 ¸
4. Move the cursor to row 1 in column 2 (r1c2).
Then enter the corresponding number of
buildings.
8 C moves the cursor to the top of the
page. After typing data for a cell, you can
press ¸ or D to enter the data and
move the cursor down one cell. Pressing C
enters the data and moves the cursor up
one cell.

H B 2 C 4 ¸ 31 ¸ 42 ¸ 9
¸ 20 ¸ 55 ¸ 73 ¸

72 Previews
Steps and keystrokes Display
5. Move the cursor to row 1 in column 1 (r1c1).
Sort the data in ascending order of
population.
This sorts column 1 and then adjusts all
other columns so that they retain the same
order as column 1. This is critical for
maintaining the relationships between
columns of data.
To sort column 1, the cursor can be
anywhere in column 1. This example has
you press
H 2C
so that you can see the first four rows.

H A2Cˆ4
6. Display the Calculate dialog box. Set
Calculation Type = MedMed
x = C1
y = C2
Store RegEQ to = y1(x)

H ‡ B 7 D C1 D 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 ¸
8. Close the STAT VARS screen. The
Data/Matrix Editor displays.
Press ¸
9. Display the Calculate dialog box. Set:
Calculation Type = LinReg
x = C1
y = C2
Store RegEQ to = y2(x)
Press ‡ B 5 D D D B D ¸

Previews 73
Steps and keystrokes Display
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.

H , B 1 D B 1 D C1 D C2
14. Save the plot definition and return to the
Plot Setup screen.
Notice the shorthand notation for Plot 1’s
definition.
Press ¸ twice

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

H 8#ˆ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 2a

Previews 75
Steps and keystrokes Display
19. Enter a title for column 3. Define column 3’s
header as the values predicted by the
MedMed line.
To enter a title, the cursor must highlight
the title cell at the very top of the column.
† lets you define a header from anywhere
in a column. When the cursor is on a header
cell, pressing † is not required.

H B B C C MED ¸ † Y1 c C1 d
¸
20. Enter a title for column 4. Define column 4’s
header as the residuals (difference between
observed and predicted values) for
MedMed.

H B C RESID ¸ † C2 | C3 ¸
21. Enter a title for column 5. Define column 5’s
header as the values predicted by the
LinReg line.

H B C LIN ¸ † Y2 c C1 d ¸
22. Enter a title for column 6. Define column 6’s
header as the residuals for LinReg.

H B C RESID ¸ † C2 | C5 ¸

23. Display the Plot Setup screen and deselect


Plot 1.
Press „ †

76 Previews
Steps and keystrokes Display
24. Highlight Plot 2 and define it as:
Plot Type = Scatter
Mark = Box
x = C1
y = C4 (MedMed residuals)

H D , D D C1 D C4 ¸ ¸
25. Highlight Plot 3 and define it as:
Plot Type = Scatter
Mark = Plus
x = C1
y = C6 (LinReg residuals)

H D , D B 3 D C1 D C6 ¸ ¸
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.

H 8"

Previews 77
Steps and keystrokes Display
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 Display


1. Use to display the Program Editor. Create a
new program.
Press 3

2. Type PROG1 (with no spaces) as the name


of the new program variable.

H D D PROG 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

78 Previews
Steps and keystrokes Display
4. Type the following program lines.
Request "Enter an integer",n
Displays a dialog box that prompts
“Enter an integer”, waits for the user to
enter a value, and stores it (as a string)
to variable n.
expr(n)!n
Converts the string to a numeric
expression.
0!temp
Creates a variable named temp and
initializes it to 0.
For i,1,n,1
Starts a For loop based on variable i.
First time through the loop, i = 1. At
end of loop, i is incremented by 1. Loop
continues until i > n.
temp+i!temp
Adds current value of i to temp.
EndFor
Marks the end of the For loop.
Disp temp
Displays the final value of temp.
Type the program lines as shown. Press
¸ at the end of each line.
5. Go to the Home screen. Enter the program prog1()
name, followed by a set of parentheses.
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.

H 8 " PROG1 c d ¸

Previews 79
Steps and keystrokes Display
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 Output from
other programs
similar to the Home screen, it is for program
may still be on
input and output only. You cannot perform the screen.
calculations on the Program I/O screen.
Result of integer 5
Press ¸ twice
8. Leave the Program I/O screen and return to
the Home screen.
You can also press N, 2 K, or
H 8"
to return to the Home screen.
Press ‡

Text Operations
Start a new Text Editor session. Then practice using the Text Editor by
typing whatever text you want. As you type, practice moving the text
cursor and correcting any typos you may enter.

Steps and keystrokes Display


1. Start a new session of the Text Editor.
Press 3

80 Previews
Steps and keystrokes Display
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.
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.

H type anything you want


4. Leave the Text Editor and display the Home
screen.
Your text session was stored automatically
as you typed. Therefore, you do not need to
save the session manually before exiting the
Text Editor.

H 8"
5. Return to the current session on the Text
Editor. Notice that the displayed session is
exactly the same as you left it.
Press 2a

Previews 81
Numeric Solver
Consider the equation a=(m2Nm1)/(m2+m1)…g, where the known values
are m2=10 and g=9.8. If you assume that a=1/3 g, find the value of m1.

Steps and keystrokes Display


1. Use to display the Numeric Solver.

2. Enter the equation.


When you press ¸ or D, the screen lists
the variables used in the equation.

H A Á c M2 | M1 d e c M2 « M1
dpG¸
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.

H D 10 D D 9.8 C C C G e 3
4. Move the cursor to the unknown variable
m1.
Optionally, you can enter an initial guess for
m1. Even if you enter a value for all
variables, the Numeric Solver solves for the
g/3 is evaluated when you
variable marked by the cursor. move the cursor off the
line.
Press D D
5. Solve for the unknown variable.
To check the solution’s accuracy, the left and
right sides of the equation are evaluated
separately. The difference is shown as
left-rt. If the solution is precise, left-rt=0.
0 marks the calculated
Press „ values.

82 Previews
Steps and keystrokes Display
6. Graph the solution using a ZoomStd
viewing window.
The graph is displayed in a split screen. You
can explore the graph by tracing, zooming,
etc.
The variable marked by the cursor
(unknown variable m1) is on the x axis, and
left-rt is on the y axis.
Press … 3
7. Return to the Numeric Solver and exit the
split screen.
You can press ¸ or D to redisplay the
list of variables.
Press 2 a … 2

Number Bases
Calculate 10 binary (base 2) + F hexadecimal (base 16) + 10 decimal (base
10). Then, use the 4 operator to convert an integer from one base to
another. Finally, see how changing the Base mode affects the displayed
results.

Steps and keystrokes Display


1. Display the MODE dialog box, Page 2. For
Base mode, select DEC as the default
number base.
Integer results are displayed according to
the Base mode. Fractional and floating-
point results are always displayed in decimal
form.
Press 3 „ (use D to move to Base
mode) B 1 ¸

Previews 83
Steps and keystrokes Display
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.

H 0 B 10 « 0 HF « 10 ¸
3. Add 1 to the result and convert it to binary.
2 4 displays the 4 conversion operator.

H « 1 2 4 BIN ¸
4. Add 1 to the result and convert it to
hexadecimal.

H « 1 2 4 HEX ¸
5. Add 1 to the result and leave it in the
default decimal base.
Results use the 0b or 0h prefix to identify
the base.
Press « 1 ¸
6. Change the Base mode to HEX.
When Base = HEX or BIN, the magnitude of
a result is restricted to certain size
limitations.
Press 3 „ (use D to move to Base
mode) B 2 ¸
7. Calculate 0b10+0hF+10.

H 0 B 10 « 0 HF « 10 ¸

84 Previews
Steps and keystrokes Display
8. Change the Base mode to BIN.
Press 3 „ (use D to move to Base
mode) B 3 ¸
9. Re-enter 0b10+0hF+10.
Press ¸

Memory and Variable Management


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

Steps and keystrokes Display


1. From the Home screen, assign variables with
the following variable types.
Expression: 5 !x1
Function: x2+4 !f(x)
List: {5,10} !l1
Matrix: [30,25] !m1

H 8 " M 5 9 X1 ¸ X
Z2 « 4 9 F c X d ¸ 2 [ 5
b 10 2 \ 9 L1 ¸ 2 g 30 b
25 2 h 9 M1 ¸
2. Suppose you start to perform an operation 5…
using a function variable but can’t
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 °

Previews 85
Steps and keystrokes Display
4. Change the screen’s view to show only
function variables.
Although this may not seem particularly
useful in an example with four variables,
consider how useful it could be if there
were many variables of all different types.
Press „ D D B 5 ¸

5. Highlight the f function variable, and view


its contents.
Notice that the function was assigned using
f(x) but is listed as f on the screen.

H Dˆ
6. Close the Contents window.
Press N
7. With the f variable still highlighted, close 5…f(
VAR-LINK and paste the variable name to
the entry line. Notice that “(” is pasted.
Press ¸
8. Complete the operation. 5…f(2)
Press 2 d ¸

86 Previews
Archiving a variable
Steps and keystrokes Display
1. Redisplay VAR-LINK, and highlight the
variable you want to archive.
The previous change in view is no longer in
effect. The screen lists all defined variables.
Press 2 ° (use D to highlight x1)
2. Use the , Manage toolbar menu to
archive the variable.
û indicates the variable is archived.
Press , 8

3. Return to the Home screen and use the


archived variable in a calculation.

H 8 " 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
7. Return to the Home screen and store a
different value to the unarchived variable.

H 8"¸

Previews 87
Deleting variables
Steps and keystrokes Display
1. Display VAR-LINK, and use the ‡ All
toolbar menu to select all variables.
A Ÿ mark indicates items that are selected.
Notice that this also selected the MAIN
folder.
Note: Instead of using ‡ (if you don’t
want to delete all your variables), you can
select individual variables. Highlight each
variable to delete and press †.
Press ‡ 1
2. Use , to delete.
Note: You can press 0 (instead of , 1) to
delete the marked variables.
Press , 1
3. Confirm the deletion.
Press ¸

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

88 Previews
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
5

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 89
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
x = --------------------------------------
2a
Detailed information about using the functions in this example can be
found in Symbolic Manipulation.

90 Activities
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.
H ˆ
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.


H 2±| C
Note: This example uses the result of the
last answer to perform computations on the
Voyage™ 200. 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.

7. Factor the result using the factor( )


function.

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

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.

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

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


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

Activities 93
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:
H 2[K].

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)=2†x†y + 2v/x+2v/y

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

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.

Activities 95
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.
2. Type the following lines into the Text Editor.

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


: assume that f is differentiable on [a,b]
C : define f(x)=x^3N2x^2+xN7
C : 1!a:3.22!b
C : d(f(x),x)!df(x)
C : zeros(df(x),x)
C : f(ans(1))
C : f({a,b})
: The largest number from the previous two commands is the
maximum value of the function. The smallest number is the
minimum value.

3. Press … and select 1:Script view to show


the Text Editor and the Home screen on a
split-screen. Move the cursor to the first line
in the Text Editor.

96 Activities
4. Press † repeatedly to execute each line in
the script one at a time.
Note: Press † and select 2:Clear split to go
back to a full-sized Text Editor screen.

5. To see the results of the script on a full-sized


screen, go to the Home screen.
Note: Press 2 K twice to display the
Home screen.

Decomposing a Rational Function


This activity examines what happens when a rational function is
decomposed into a quotient and remainder. Detailed information about
the steps used in this example can be found in Basic Function Graphing
and Symbolic Manipulation.

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.

Activities 97
3. Copy the last answer to the entry line.
–or–
Enter: 16/(xN2)+x^2N8†xN17
Note: Move the cursor into the history area
to highlight the last answer. Press ¸ to
copy it to the entry line.
4. Edit the last answer in the entry line. Store
the remainder to y1(x) and the quotient to
y2(x) as shown.
Enter: 16/(xN2)!y1(x): x^2N8ùxN17!y2(x)
5. In the Y= Editor, select the thick graphing
style for y2(x).

6. Add the original function f(x) to y3(x) and


select the square graphing style.

7. In the Window Editor, set the window


variables to:
x= [L10,15,10]
y= [L100,100,10]

8. Draw the graph.


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

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

Filtering Data by Categories


Each student is placed into one of eight categories depending on the
student’s sex and academic year (freshman, sophomore, junior, or senior).
The data (weight in pounds) and respective categories are entered in the
Data/Matrix Editor.

Table 1: Category vs. Description


Category (C2) Academic Year and Sex
1 Freshman boys
2 Freshman girls
3 Sophomore boys
4 Sophomore girls
5 Junior boys
6 Junior girls
7 Senior boys
8 Senior girls

Activities 99
Table 2: C1 (weight of each student in pounds) vs. C2 (category)
C1 C2 C1 C2 C1 C2 C1 C2
110 1 115 3 130 5 145 7
125 1 135 3 145 5 160 7
105 1 110 3 140 5 165 7
120 1 130 3 145 5 170 7
140 1 150 3 165 5 190 7
85 2 90 4 100 6 110 8
80 2 95 4 105 6 115 8
90 2 85 4 115 6 125 8
80 2 100 4 110 6 120 8
95 2 95 4 120 6 125 8

Perform the following steps to compare the weight of high school


students to their year in school.

1. Start the Data/Matrix Editor, and create a


new Data variable named students.

2. Enter the data and categories from Table 2


into columns c1 and c2, respectively.

3. Open the „ Plot Setup toolbar menu.


Note: Set up several box plots to compare
different subsets of the entire data set.

4. Define the plot and filter parameters for


Plot 1 as shown in this screen.

100 Activities
5. Copy Plot 1 to Plot 2.

6. Repeat step 5 and copy Plot 1 to Plot 3,


Plot 4, and Plot 5.

7. Press ƒ, and modify the Include


Categories item for Plot 2 through Plot 5
to the following:
Plot 2: {1,2}
(freshman boys, girls)
Plot 3: {7,8}
(senior boys, girls)
Plot 4: {1,3,5,7}
(all boys)
Plot 5: {2,4,6,8}
(all girls)

8. In the Y= Editor, deselect any functions


that may be selected from a previous
activity.
Note: Only Plot 1 through Plot 5 should be
selected.

9. Display the plots by pressing „ and


selecting 9:Zoomdata.

Activities 101
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 Voyage™ 200


This activity provides a program that can be used when the Voyage™ 200
is connected to a Calculator-Based Laboratory™ (CBL 2™) unit. This
program works with the “Newton’s Law of Cooling” experiment, and is
similar to the “Coffee To Go” experiment in the CBL System Experiment
Workbook. You can use your computer keyboard to type lengthy text
and then use TI 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 Voyage™ 200 for function
graphing.
:PlotsOff Turn off any previous plots.
:FnOff Turn off any previous functions.
:ClrDraw Clear any items previously drawn on
graph screens.
:ClrGraph Clear any previous graphs.
:ClrIO Clear the Voyage™ 200 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.

102 Activities
Program Instruction Description
: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.
: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.

Activities 103
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)=95†t†cos(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)=L16†t^2+95†t†sin(32¡)

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.

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

Visualizing Complex Roots


Perform the following steps to expand the cubic polynomial
(xN1)(xNi)(x+i), find the absolute value of the function, graph the
modulus surface, and use the Trace tool to explore the modulus surface.

1. On the Home screen, use the expand( )


function to expand the cubic expression
(xN1)(xNi)(x+i) and see the first polynomial.

2. Copy and paste the last answer to the entry


line and store it in the function f(x).
Note: Move the cursor into the history area
to highlight the last answer and press ¸,
to copy it to the entry line.

Activities 105
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]

6. In the Y=Editor, press:


H 8F
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.

106 Activities
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 7–9. 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.

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.

Activities 107
3. Enter the equation to solve for i using the
with operator.
solve(s=p†(1+i)^n,i) | s=2000 and p=1000
and n=6
Result: The interest rate is 12.246%.
Note:
• To enter the “with” ( | ) operator:
H 2 [K]
• Press 8 ¸ to obtain a floating-
point result.

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

108 Activities
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/1200temp6)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 Voyage™ 200.

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.

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

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

110 Activities
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) :For j,1,colordim,1


:Func :cumSum(templist)!urncum
:Local templist,drawlist,colordim, :If pick  urncum[j] Then
numballs,i,pick,urncum,j :drawlist[j]+1!drawlist[j]
:If drawnum>sum(urnlist) :templist[j]N1!templist[j]
:Return “too few balls” :Exit
:dim(urnlist)!colordim :EndIf
:urnlist!templist :EndFor
:newlist(colordim)!drawlist :EndFor
:For i,1,drawnum,1 :Return drawlist
:sum(templist)!numballs :EndFunc
:rand(numballs)!pick
(continued in next column)

Sampling without Replacement


Suppose an urn contains n1 balls of a color, n2 balls of a second color, n3
balls of a third color, etc. Simulate drawing balls without replacing them.

1. Enter a random seed using the RandSeed


command.

2. Assuming the urn contains 10 red balls and


25 white balls, simulate picking 5 balls at
random from the urn without replacement.
Enter drawball({10,25},5).
Result: 2 red balls and 3 white balls.

Using Vectors to Determine Velocity


A small fishing boat leaves from the south bank of the Allegheny River
and heads at a 80° angle with an engine speed of 20 knots. However, the
eastward force of the current carries the boat along so it actually travels
at a 60° angle with the shore.
How fast is the current, and how fast does the boat actually travel?

Activities 111
1. Set the modes for Page 1 as shown in this
screen. (Show angles in degrees instead of
radians 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. 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.
3. Define function p2r.
Enter: Define p2r(x)=[x[1,1]*cos(x[1,2]),
x[1,1]*sin(x[1,2])]

112 Activities
When converted to rectangular form, the sum
of vectors i and c equals the resultant vector r.
4. 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.
5. 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

6. Solve eq2 for b to calculate the actual


speed of the boat.
solve(eq2,b)
7. 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 113
114 Activities
4
Connectivity

Connecting Two Units


The Voyage™ 200 graphing calculator comes with a cable that lets you
connect two units. Once connected, you can transmit information
between two units. An I/O unit-to-unit cable is included with the
Voyage™ 200; use the calculator’s I/O port with this cable.

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.

I/O unit-to-unit cable


I/O Port
I/O Port
voyage 200 voyage 200

Two Voyage™ 200 calculators linked together

Connectivity 115
I/O unit-to-unit
I/O Port cable

I/O Port

A TI-89 Titanium and a Voyage™ 200 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. You can
transfer an App from a Voyage™ 200 to another Voyage™ 200, or from a
Voyage™ 200 to a TI-92 Plus.

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.

116 Connectivity
• 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.

4. On the receiving unit, press 2 ° to


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

5. On both the receiving and the sending unit,


press … Link to display the menu options.

Connectivity 117
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.
Unlocked Flash If the receiving unit has the correct certification,
application the Flash application is transmitted. It remains
unlocked on the receiving unit.
Locked Flash If the receiving unit has the correct certification,
application the Flash application is transmitted. It remains
locked on the receiving unit.

118 Connectivity
If you select: What happens:
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 unit’s
link port.
– or –
• A receiving unit is not attached to the other
end of the cable.
– or –
• The receiving unit is not set up to receive.
Press N or ¸ to cancel the transmission.
Note: The sending unit may not always display this
message. Instead, it may remain BUSY until you
cancel the transmission.

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

120 Connectivity
– 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 USB Silver Edition cable to
install the application or certificate on your Voyage™ 200 graphing
calculator.
For Flash App installation instructions, see education.ti.com/guides.

Transmitting Variables under Program Control


You can use a program containing GetCalc and SendCalc to transmit a
variable from one device to another.
SendCalc sends a variable to the link port, where a linked device can
receive the variable. The linked device must be on the Home screen or
must execute GetCalc from a program.

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

122 Connectivity
• The two devices are linked with the connecting cable.
• The Chat program is loaded on both devices.
– Use each device’s Program Editor to enter the program.
– or –
– Enter the program on one device and then use VAR-LINK to
transmit the program variable to the other device.
To run the program on both devices:
1. On the Home screen of each device, enter chat( ).
2. When each device displays its initial prompt, respond as shown
below.

On the: Type:
Device that will send the first 1 and press ¸.
message.
Device that will receive the first 0 and press ¸.
message.

3. 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 Voyage™ 200 using your computer. You
can also transfer the OS from one unit to another identical model (for
example, from a TI-89 Titanium to a TI-89 Titanium or from a Voyage™
200 to a Voyage™ 200).
Installing OS software resets all device memory to the original factory
settings. This means that all user-defined variables (in both RAM and the
user data archive), functions, programs, lists, and folders (except the
Main folder) will be deleted. It is possible that Flash applications could
also be deleted. You should use TI Connect software to back up your data
to your computer before installing a new OS on your calculator.
See the important information concerning batteries before performing
an OS upgrade.

Connectivity 123
Important Operating System Download Information
New batteries should be installed before beginning an OS download.
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 –
• 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 or Flash application from the Texas
Instruments Web site to a computer, and use a USB Silver Edition cable to
install the OS or application on your Voyage™ 200.
For complete information, refer to the instructions on the web.

124 Connectivity
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:
• The sending unit returns to the VAR-LINK screen.
• The receiving unit returns to either the Apps desktop or the Home
screen. You may need to use 8 | (lighten) or 8 « (darken) to
adjust the contrast.

Do Not Attempt to Cancel an Operating System Transfer


After the transfer starts, the receiving unit’s existing OS is effectively
deleted. If you interrupt the transfer before it is complete, the receiving
unit will not operate properly. You will then need to reinstall the OS
upgrade.

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

126 Connectivity
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 Display the Home screen. Press:
(Receiving unit) H 8"
2. Sending unit a. Press 2 ° to display the VAR-LINK
screen.
b. Press … Link and select 6:Send ID List.

The sending unit adds a copy of its unique ID


number to the collection unit’s ID list. The
sending unit always retains its own ID
number, which cannot be deleted from the
device.
3. Additional units Repeat steps 1 and 2 until all the IDs are
collected onto one device.
Depending on available memory in the
collection device, it is possible to collect over
4,000 IDs.

Notes:

Connectivity 127
• 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.
Most functions of the TI-89 Titanium are compatible with the TI-89,
Voyage™ 200, and TI-92 Plus. The TI-89 Titanium and the TI-89 are
similar, except that the TI-89 Titanium has more memory (more room for
Apps and user archive) and the TI-89 Titanium has a USB port. The
Voyage™ 200 is the same as the TI-92 Plus except it has more memory,
and thus more room for applications (Apps).
All data is compatible among the TI-89 Titanium, TI-89, Voyage™ 200,
and TI-92 Plus, but some programs written for one may not run or may
not run the same on the other because of differences in the device’s
screen sizes and keyboards and the USB port on the TI-89 Titanium.
Other incompatibilites can occur because of different version the
operating system. To download the latest version of the operating
system, visit the Texas Instruments Web site at
education.ti.com/downloadticonnect.

128 Connectivity
Link Transmission Table
To & TI-89 Voyage™
From ( Titanium TI-89 200 TI-92 Plus

TI-89 OS Apps Variables Variables


Titanium Apps Variables
Variables
TI-89 Apps OS Variables Variables
Variables Apps
Variables
Voyage™ Variables Variables OS Apps
200 Apps Variables
Variables
TI-92 Plus Variables Variables Apps OS
Variables Apps
Variables

Connectivity 129
130 Connectivity
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 Voyage™ 200 as well as


any assembly-language programs you have loaded.
History: Size of history pairs saved in the Home screen’s history area.
FlashApp: Size of Flash applications.
RAM free: Free space in RAM.
Flash ROM free: Free space in Flash ROM.
Note: To display the size of individual variables and determine if they are
in the user data archive, use the VAR-LINK screen.
To close the screen, press ¸. To reset the memory, use the following
procedure.

Memory and Variable Management 131


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 Voyage™ 200 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.

132 Memory and Variable Management


Ë

Î Í

Ê Folder names (alphabetically listed)


Ë Shows installed Flash applications
Ì Size in bytes
Í Data type
Î Variable names (alphabetically listed)

This... Indicates this...

4 Collapsed folder view (to right of folder name).

6 Expanded folder view (to right of folder name).

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


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.
N Return to the current application without pasting the
highlighted 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.

134 Memory and Variable Management


1. On VAR-LINK, move the cursor to highlight the variable.

2. Press:
H ˆ
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 Move the cursor to highlight the item, then press
folder †.
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 Press B to expand the folder, then press ‡ All
variables 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.

Memory and Variable Management 135


The Voyage™ 200 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 user-


defined variables (including user-defined functions). For example, you
can create separate folders for different Voyage™ 200 applications
(Math, Text Editor, etc.) or classes. You can store a user-defined variable
in any existing folder.
The user-defined variables in one folder are independent of the variables
in any other folder. Therefore, folders can store separate sets of variables
with the same names but different values.

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

ALG102
User-defined
Name of current folder b=5, c=100
f(x)=sin(x)+cos(x)

DAVE
User-defined
a=3, b=1, c=2
f(x)=x²+6

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

You cannot create a folder within another folder.

136 Memory and Variable Management


The system variables in the MAIN folder are always directly accessible,
regardless of the current folder.
Note: User-defined variables are stored in the “current folder” unless
you specify otherwise.

Creating a Folder from the VAR-LINK Screen


1. Press 2 °.

2. Press ƒ Manage and select


5:Create Folder.

3. Type a unique folder name up to eight characters, and press ¸


twice.
After you create a new folder from VAR-LINK, that folder is not
automatically set as the current folder.

Creating a Folder from the Home Screen


Enter the NewFold command on the Home screen.
NewFold folderName
Folder name to create. This new folder is set
automatically as the current folder.

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.

Memory and Variable Management 137


4. Select the applicable folder. Either:
• Highlight the folder name and press ¸.
– or –
• Press the corresponding number or letter for that folder.
5. Press ¸ to save your changes and close the dialog box.

Renaming Variables or Folders


Remember, if you use † to select a folder, the variables in that folder are
selected automatically. As necessary, use † to deselect individual
variables.
1. On VAR-LINK, select the variables and/or folders.
2. Press ƒ Manage and select 3:Rename.

3. Type a unique name, and press ¸ twice.


If you selected multiple items, you are
prompted to enter a new name for each
one.

Using Variables in Different Folders


You can access a user-defined variable or function that is not in the
current folder. Specify the complete pathname instead of only the
variable name.
A pathname has the form:
folderName \ variableName
– or –
folderName \ functionName
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

138 Memory and Variable Management


To see a list of existing folders and variables, press 2 °. On the
VAR-LINK screen, you can highlight a variable and press ¸ to paste
that variable name to the open application's entry line. If you paste a
variable name that is not in the current folder, the pathname
(folderName\variableName) is pasted.

Listing Only a Specified Folder and/or Variable Type, or


Flash application
If you have a lot of variables, folders, or Flash applications, it may be
difficult to locate a particular variable. By changing VAR-LINK’s view, you
can specify the information you want to see.
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.

Memory and Variable Management 139


2. Press ƒ Manage and select 2:Copy or 4:Move.

3. Select the destination folder.

4. Press ¸. The copied or moved variables retain their original


names.
Note: To copy a variable to a different name in the same folder, use
9 (such as a1!a2) or the CopyVar command from the Home
screen.

Locking or Unlocking Variables Folders, or Flash


Applications
When a variable is locked, you cannot delete, rename, or store to it.
However, you can copy, move, or display its contents. When a folder is
locked, you can manipulate the variables in the folder (assuming the
variables are not locked), but you cannot delete the folder. When a Flash
application is locked, you cannot delete it.
1. On VAR-LINK, select the variables, folders, or Flash application.
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.)

140 Memory and Variable Management


3. Press ƒ 1:Delete or 0.

4. Press ¸ to confirm the deletion of the


folder and all its variables.

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 an empty folder, enter the DelFold command on the
calculator Home screen.
DelFold folder1 [, folder2] [, folder3] ...
Note: You cannot delete the MAIN folder.

Pasting a Variable Name to an Application


Suppose you are typing an expression on the Home screen and can’t
remember which variable to use. You can display the VAR-LINK screen,
select a variable from the list, and paste that variable name directly onto
the Home screen’s entry line.

Which Applications Can You Use?


From the following applications, you can paste a variable name to the
current cursor location.
• 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.

Memory and Variable Management 141


Procedure
Starting from an application listed above:

1. Position the cursor where you want to insert sin(|


the variable name.
2. Press 2 °.
3. Highlight the applicable variable.
Note: You can also highlight and paste
folder names.
4. Press ¸ to paste the variable name. sin(a1|
Note: This pastes the variable’s name, not
its contents. Use 2 £, instead of
2 °, to recall a variable’s contents.
5. Finish typing the expression. sin(a1)|

If you paste a variable name that is not in the current folder, the
variable’s pathname is pasted.

sin(class\a2
Assuming that CLASS is not the current folder, this is pasted
if you highlight the a2 variable in CLASS.

Archiving and Unarchiving a Variable


To archive or unarchive one or more variables interactively, use the
VAR-LINK screen. You can also perform these operations from the Home
screen or a program.

Why Would You Want to Archive a Variable?


The user data archive lets you:
• Store data, programs, or any other variables to a safe location where
they cannot be edited or deleted inadvertently.
• Create additional free RAM by archiving variables. For example:
– You can archive variables that you need to access but do not
need to edit or change, or variables that you are not using
currently but need to retain for future use.
Note: You cannot archive variables with reserved names or
system variables.

142 Memory and Variable Management


– If you acquire additional programs for your Voyage™ 200,
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.

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 Voyage™ 200 will
attempt to rearrange the archived variables to make additional room.

Memory and Variable Management 143


Responding to the Garbage Collection Message
When you see the message to the right:
• To continue archiving, press ¸.
– or –
• To cancel, press N.

After garbage collection, depending on how much additional space is


freed, the variable may or may not be archived. If not, you can unarchive
some variables and try again.

Why not Perform 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.

144 Memory and Variable Management


variable A Sector 1

variable B Empty
block

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

Sector 1
variable A

After you unarchive


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

variable D

Sector 3

Unarchived variables are “marked for deletion,” meaning they will be


deleted during the next garbage collection.

If the MEMORY Screen Shows Enough Free Space


Even if the MEMORY screen shows enough free space to archive a
variable, you may still get a Garbage Collection message.

Memory and Variable Management 145


The Voyage™ 200 has 2.7 MB of user-available Flash ROM memory. All
2.7 MB can be used for Flash Apps, but only approximately 1 MB of it can
be used for user data archive.

The Garbage Collection Process


The garbage collection process:
• Deletes unarchived variables from the user data archive.
• Rearranges the remaining variables into consecutive blocks.

variable A Sector 1

variable 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.
• 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 don’t have to unarchive variables unnecessarily, the Voyage™
200 performs a “behind-the scenes” copy. For example, if you run a
program that is in the user data archive, the Voyage™ 200:

146 Memory and Variable Management


1. Copies the program to RAM.
2. Runs the program.
3. Deletes the copy from RAM when the program is finished.
The error message is displayed if there is not enough free RAM for the
temporary copy.
Note: Except for programs and functions, referring to an archived
variable does not copy it. If variable ab is archived, it is not copied if you
perform 6ùab.

Correcting the Error


To free up enough RAM to access the variable:
1. Use the VAR-LINK screen (2 °) to determine the size of the
archived variable that you want to access.
2. Use the MEMORY screen (2 ;) to check the RAM free size.
3. Free up the needed amount of memory by:
• Deleting unnecessary variables from RAM.
• Archiving large variables or programs (moving them from RAM
to the user data archive).
Note: Typically, the RAM free size must be larger than the archived
variable.

Memory and Variable Management 147


148 Memory and Variable Management
A
Appendix A:
Functions and Instructions
Quick-Find Locator ......................................................................................... 150
Alphabetical Listing of Operations ................................................................. 154

This section describes the syntax and action of each TI-89 Titanium/ Voyage™ 200 function and instruction
that is included in the operating system (OS). See modules relating to calculator software applications (Apps)
for functions and instructions specific to those Apps.

Name of the function or instruction.

Key or menu for entering the name.


You can also type the name.
Example

Circle CATALOG
Circle x, y, r [, drawMode] In a ZoomSqr viewing window:
Draws a circle with its center at window ZoomSqr:Circle 1,2,3 ¸
coordinates (x, y) and with a radius of r.
x, y, and r must be real values.
If drawMode = 1, draws the circle (default).
If drawMode = 0, turns off the circle.
If drawMode = -1, inverts pixels along the circle.
Note: Regraphing erases all drawn items.

Explanation of the function or


Arguments are shown in italics. instruction.
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 149


Quick-Find Locator

This section lists the TI-89 Titanium / Voyage™ 200 functions


and instructions in functional groups along with the page
numbers where they are described.

Algebra | ("with") 277 cFactor() 158 comDenom() 161


cSolve() 166 cZeros 170 expand() 184
factor() 186 getDenom() 192 getNum() 193
nSolve() 214 propFrac() 221 randPoly() 227
solve() 243 tCollect() 253 tExpand() 253
zeros() 260

Calculus ‰() (integrate) 272 Π() (product) 273 G() (sum) 273
arcLen() 156 avgRC() 157 d() 172
deSolve() 174 fMax() 188 fMin() 188
limit() 200 nDeriv() 210 nInt() 212
' (prime) 275 seq() 234 taylor() 252

Graphics AndPic 155 BldData 158 Circle 159


ClrDraw 160 ClrGraph 160 CyclePic 170
DrawFunc 179 DrawInv 179 DrawParm 179
DrawPol 179 DrawSlp 180 DrwCtour 180
FnOff 188 FnOn 188 Graph 195
Line 201 LineHorz 201 LineTan 201
LineVert 202 NewPic 211 PtChg 221
PtOff 221 PtOn 222 ptTest() 222
PtText 222 PxlChg 222 PxlCrcl 222
PxlHorz 222 PxlLine 223 PxlOff 223
PxlOn 223 pxlTest() 223 PxlText 223
PxlVert 224 RclGDB 227 RclPic 227
RplcPic 231 Shade 238 StoGDB 247
StoPic 248 Style 248 Trace 256
XorPic 259 ZoomBox 261 ZoomData 262
ZoomDec 262 ZoomFit 263 ZoomIn 263
ZoomInt 263 ZoomOut 264 ZoomPrev 264
ZoomRcl 264 ZoomSqr 264 ZoomStd 265
ZoomSto 265 ZoomTrig 265

Lists + (add) 265 ì (subtract) 266 ù (multiply) 266


à (divide) 267 ë (negate) 269 ^ (power) 268
augment() 156 crossP() 165 cumSum() 168
dim() 177 dotP() 178 exp4list() 184
left() 200 @list() 202 list4mat() 202
mat4list() 207 max() 207 mid() 208
min() 209 newList() 211 polyEval() 219
product() 220 right() 229 rotate() 230
shift() 239 SortA 246 SortD 246
sum() 249

150 Appendix A: Functions and Instructions


Math + (add) 265 ì (subtract) 266 ù (multiply) 266
à (divide) 267 ë (negate) 269 % (percent) 269
! (factorial) 271 ‡() (sqr. root) 273 ^ (power) 268
¡ (degree) 274 o (angle) 274 ¡, ', " 275
_ (underscore) 275 4 (convert) 276 10^() 276
0b, 0h 278 4Bin 157 4Cylind 170
4DD 172 4Dec 173 4DMS 178
4Hex 196 4Polar 219 4Rect 228
4Sphere 246 abs() 154 and 154
angle() 155 approx() 156 ceiling() 158
conj() 162 cos 163 cosê() 163
cosh() 164 coshê() 164 cot() 164
cotê() 165 coth() 165 cothê() 165
csc() 165 cscê() 166 csch() 166
coshê() 166 E 181 e^() 181
exact() 183 floor() 187 fPart() 190
gcd() 190 imag() 197 int() 198
intDiv() 198 iPart() 199 isPrime() 199
lcm() 200 ln() 203 log() 204
max() 207 min() 209 mod() 209
nCr() 210 nPr() 213 P4Rx() 216
P4Ry() 216 r (radian) 274 R4Pq() 226
R4Pr() 226 real() 227 remain() 228
rotate() 230 round() 230 sec() 232
secê() 232 sech() 232 sechê() 233
shift() 239 sign() 240 sin() 241
sinê() 241 sinh() 242 sinhê() 242
tan() 251 tanê() 251 tanh() 251
tanhê() 252 tmpCnv() 254 @tmpCnv() 255
xê 276

Matrices + (add) 265 ì (subtract) 266 ù (multiply) 266


à (divide) 267 ë (negate) 269 .+ (dot add) 268
.. (dot subt.) 268 . (dot mult.) 269 . / (dot divide) 269
.^ (dot power) 269 ^ (power) 268 augment() 156
colDim() 161 colNorm() 161 crossP() 165
cumSum() 168 det() 176 diag() 176
dim() 177 dotP() 178 eigVc() 181
eigVl() 182 Fill 187 identity() 196
list4mat() 202 LU 206 mat4list() 207
max() 207 mean() 207 median() 207
min() 209 mRow() 209 mRowAdd() 209
newMat() 211 norm() 213 product() 220
QR 224 randMat() 226 ref() 228
rowAdd() 231 rowDim() 231 rowNorm() 231
rowSwap() 231 rref() 232 simult() 240
stdDev() 247 subMat() 249 sum() 249
T 250 unitV() 257 variance() 257
xê 276

Appendix A: Functions and Instructions 151


Programming = 270 ≠ 270 < 270
≤ 271 > 271 ≥ 271
# (indirection) 273 ! (store) 277 ¦ (comment) 278
and 154 ans() 156 Archive 156
checkTmr() 159 ClockOff 160 ClockOn 160
ClrErr 160 ClrGraph 160 ClrHome 161
ClrIO 161 ClrTable 161 CopyVar 162
CustmOff 169 CustmOn 169 Custom 169
Cycle 169 dayOfWk() 172 Define 173
DelFold 174 DelVar 174 Dialog 177
Disp 177 DispG 178 DispHome 178
DispTbl 178 DropDown 180 Else 182
ElseIf 182 EndCustm 182 EndDlog 182
EndFor 182 EndFunc 182 EndIf 182
EndLoop 182 EndPrgm 182 EndTBar 182
EndTry 182 EndWhile 182 entry() 183
Exec 183 Exit 184 For 189
format() 189 Func 190 Get 190
GetCalc 191 getConfg() 191 getDate() 192
getDtFmt() 192 getDtStr() 192 getFold() 192
getKey() 193 getMode() 193 getTime() 193
getTmFmt() 193 getTmStr() 194 getTmZn() 194
getType() 194 getUnits() 195 Goto 195
If 196 Input 197 InputStr 198
isClkOn() 199 Item 199 Lbl 199
left() 200 Local 204 Lock 204
Loop 205 MoveVar 209 NewFold 211
NewProb 212 not 213 or 215
Output 215 part() 216 PassErr 218
Pause 218 PopUp 220 Prgm 220
Prompt 221 Rename 229 Request 229
Return 229 right() 229 Send 233
SendCalc 233 SendChat 233 setDate() 234
setDtFmt() 234 setFold() 234 setGraph() 234
setMode() 235 setTable() 236 setTime() 236
setTmFmt() 237 setTmZn() 237 startTmr() 246
setUnits() 237 Stop 247 Style 248
switch() 249 Table 250 Text 253
Then 253 timeCnv() 253 Title 254
Toolbar 255 Try 256 Unarchiv 257
Unlock 257 when() 258 While 258
xor 259

152 Appendix A: Functions and Instructions


Statistics ! (factorial) 271 BldData 158 CubicReg 168
cumSum() 168 ExpReg 186 LinReg 202
LnReg 203 Logistic 205 mean() 207
median() 207 MedMed 208 nCr() 210
NewData 210 NewPlot 212 nPr() 213
OneVar 214 PlotsOff 219 PlotsOn 219
PowerReg 220 QuadReg 225 QuartReg 225
rand() 226 randNorm() 226 RandSeed 227
ShowStat 240 SinReg 243 SortA 246
SortD 246 stdDev() 247 TwoVar 256
variance() 257

Strings & (append) 272 # (indirection) 273 char() 159


dim() 177 expr() 185 format() 189
inString() 198 left() 200 mid() 208
ord() 215 right() 229 rotate() 230
shift() 239 string() 248

Appendix A: Functions and Instructions 153


Alphabetical Listing of Operations

Operations whose names are not alphabetic (such as +, !, and >) are listed at the
end of this appendix, starting on page 265. Unless otherwise specified, all examples
in this section were performed in the default reset mode, and all variables are
assumed to be undefined. Additionally, due to formatting restraints, approximate
results are truncated at three decimal places (3.14159265359 is shown as 3.141...).

abs() MATH/Number menu


abs(expression1) ⇒ expression p p
abs(list1) ⇒ list
abs({p/2,ë p/3}) ¸ { }
2 3
abs(matrix1) ⇒ matrix
abs(2ì3i) ¸ 13
Returns the absolute value of the argument.
abs(z) ¸ |z|
If the argument is a complex number, returns the
number’s modulus. abs(x+yi) ¸ x 2+ y 2
Note: All undefined variables are treated as real
variables.

and MATH/Test and MATH/Base menus


Boolean expression1 and expression2 ⇒ Boolean x‚3 and x‚4 ¸ x‚4
expression
Boolean list1 and list2 ⇒ Boolean list {x‚3,xc0} and {x‚4,xcë2} ¸
Boolean matrix1 and matrix2 ⇒ Boolean {x ‚ 4 x c ë2}
matrix
Returns true or false or a simplified form of the
original entry.
integer1 and integer2 ⇒ integer In Hex base mode:
Compares two real integers bit-by-bit using an 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
is 1 if both bits are 1; otherwise, the result is 0. In Bin base mode:
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. In Dec base mode:
For a binary or hexadecimal entry, you must use
the 0b or 0h prefix, respectively. Without a prefix, 37 and 0b100 ¸ 4
integers are treated as decimal (base 10).
If you enter a decimal integer that is too large for Note: A binary entry can have up to 32 digits
a signed, 32-bit binary form, a symmetric modulo (not counting the 0b prefix). A hexadecimal
operation is used to bring the value into the entry can have up to 8 digits.
appropriate range.

154 Appendix A: Functions and Instructions


AndPic CATALOG
AndPic picVar[, row, column] In function graphing mode and Y= Editor:
Displays the Graph screen and logically “ANDS” y1(x) = cos(x) C
the picture stored in picVar and the current graph @ 2 ˆ Style = 3:Square
screen at pixel coordinates (row, column). H ˆ Style = 3:Square

picVar must be a picture type. „ Zoom = 7:ZoomTrig


ƒ = 2:Save Copy As...
Default coordinates are (0,0), which is the upper Type = Picture, Variable =
left corner of the screen. PIC1

y2(x) = sin(x)
@ 2 ˆ Style = 3:Square
H ˆ Style = 3:Square
y1 = no checkmark (F4 to
deselect)
„ Zoom = 7:ZoomTrig

@ "
H ¥"

AndPic PIC1 ¸ Done

angle() MATH/Complex menu


angle(expression1) ⇒ expression In Degree angle mode:
Returns the angle of expression1, interpreting angle(0+2i) ¸ 90
expression1 as a complex number.
In Radian angle mode:
Note: All undefined variables are treated as real p
variables. angle(1+i) ¸
4
angle(z) ¸
angle(x+ iy) ¸

angle(list1) ⇒ list In Radian angle mode:


angle(matrix1) ⇒ matrix
angle({1+2i,3+0i,0ì4i}) ¸
Returns a list or matrix of angles of the elements
in list1 or matrix1, interpreting each element as a
complex number that represents a two-
dimensional rectangular coordinate point.

Appendix A: Functions and Instructions 155


ans() 2 ± key
ans() ⇒ value To use ans() to generate the Fibonacci
ans(integer) ⇒ value sequence on the Home screen, press:
Returns a previous answer from the Home screen 1¸ 1
history area. 1¸ 1
integer, if included, specifies which previous 2±«2±A02¸ 2
answer to recall. Valid range for integer is from 1 ¸ 3
to 99 and cannot be an expression. Default is 1, ¸ 5
the most recent answer.

approx() MATH/Algebra menu


approx(expression) ⇒ value approx(p) ¸ 3.141...
Returns the evaluation of expression as a decimal
value, when possible, regardless of the current
Exact/Approx mode.

This is equivalent to entering expression and


pressing ¥ ¸ on the Home screen.
approx(list1) ⇒ list approx({sin(p),cos(p)}) ¸
approx(matrix1) ⇒ matrix {0. ë1.}
Returns a list or matrix where each element has approx([‡(2),‡(3)]) ¸
been evaluated to a decimal value, when
[1.414... 1.732...]
possible.

Archive CATALOG
Archive var1 [, var2] [, var3] … 10!arctest ¸ 10
Archive arctest ¸ Done
Moves the specified variables from RAM to the
user data archive memory. 5ùarctest ¸ 50
15!arctest ¸
You can access an archived variable the same as
you would a variable in RAM. However, you
cannot delete, rename, or store to an archived
variable because it is locked automatically.
To unarchive variables, use Unarchiv.
N
Unarchiv arctest ¸ Done
15!arctest ¸ 15

arcLen() MATH/Calculus menu


arcLen(expression1,var,start,end) ⇒ expression arcLen(cos(x),x,0,p) ¸3.820...
Returns the arc length of expression1 from start to arcLen(f(x),x,a,b) ¸
end with respect to variable var.
b
Regardless of the graphing mode, arc length is ⌠ ( d (f(x)))ñ+1 dx
calculated as an integral assuming a function
mode definition.
⌡ dx
a

arcLen(list1,var,start,end) ⇒ list arcLen({sin(x),cos(x)},x,0,p)


{3.820... 3.820...}
Returns a list of the arc lengths of each element
of list1 from start to end with respect to var.

augment() MATH/Matrix menu


augment(list1, list2) ⇒ list augment({1,ë3,2},{5,4}) ¸
{1 ë3 2 5 4}
Returns a new list that is list2 appended to the
end of list1.

156 Appendix A: Functions and Instructions


augment(matrix1, matrix2) ⇒ matrix 1 2
augment(matrix1; matrix2) ⇒ matrix [1,2;3,4]!M1 ¸ [3 4]
Returns a new matrix that is matrix2 appended to 5
[5;6]!M2 ¸ [6]
matrix1. When the “,” character is used, the
matrices must have equal row dimensions, and 1 2 5
matrix2 is appended to matrix1 as new columns. augment(M1,M2) ¸ [3 4 6]
When the “;” character is used, the matrices [5,6]!M2 ¸ [5 6]
must have equal column dimensions, and matrix2
is appended to matrix1 as new rows. Does not  1 2
alter matrix1 or matrix2. augment(M1;M2) ¸  3 4
 5 6
avgRC() CATALOG
avgRC(expression1, var [, h]) ⇒ expression avgRC(f(x),x,h) ¸
f(x+h) - f(x)
Returns the forward-difference quotient (average
rate of change). h

expression1 can be a user-defined function name avgRC(sin(x),x,h)|x=2 ¸


(see Func). sin(h+2) - sin(2)
h
h is the step value. If h is omitted, it defaults to
0.001. avgRC(x^2ìx+2,x) ¸
Note that the similar function nDeriv() uses the 2.ø(x - .4995)
central-difference quotient.
avgRC(x^2ìx+2,x,.1) ¸
2.ø(x - .45)

avgRC(x^2ìx+2,x,3) ¸ 2ø(x+1)

4Bin MATH/Base menu


integer1 4Bin ⇒ integer 256 4Bin ¸ 0b100000000
Converts integer1 to a binary number. Binary or 0h1F 4Bin ¸ 0b11111
hexadecimal numbers always have a 0b or 0h
prefix, respectively.
Zero, not the letter O, followed by b or h.
0b binaryNumber
0h hexadecimalNumber
A binary number can have up to
32 digits. A hexadecimal number
can have up to 8.
Without a prefix, integer1 is treated as decimal
(base 10). The result is displayed in binary,
regardless of the Base mode.
If you enter a decimal integer that is too large for
a signed, 32-bit binary form, a symmetric modulo
operation is used to bring the value into the
appropriate range.

Appendix A: Functions and Instructions 157


BldData CATALOG
BldData [dataVar] In function graphing mode and Radian angle
mode:
Creates data variable dataVar based on the
information used to plot the current graph. 8ùsin(x)!y1(x) ¸ Done
BldData is valid in all graphing modes. 2ùsin(x)!y2(x) ¸ Done
If dataVar is omitted, the data is stored in the ZoomStd ¸
system variable sysData.
Note: The first time you start the Data/Matrix
Editor after using BldData, dataVar or sysData
(depending on the argument you used with
BldData) is set as the current data variable.

The incremental values used for any independent @ "


variables (x in the example to the right) are H ¥ "
calculated according to the Window variable
values. BldData ¸ Done
For information about the increments used to O 6 ¸
evaluate a graph, refer to the module that
describes that graphing mode.

3D graphing mode has two independent Note: The following sample data is from a 3D
variables. In the sample data to the right, notice graph.
that x remains constant as y increments through
its range of values.
Then, x increments to its next value and y again
increments through its range. This pattern
continues until x has incremented through its
range.

ceiling() MATH/Number menu


ceiling(expression1) ⇒ integer ceiling(0.456) ¸ 1.
Returns the nearest integer that is ‚ the
argument.
The argument can be a real or a complex number.
Note: See also floor().
ceiling(list1) ⇒ list ceiling({ë3.1,1,2.5}) ¸
ceiling(matrix1) ⇒ matrix {ë3. 1 3.}
Returns a list or matrix of the ceiling of each ceiling([0,ë3.2i;1.3,4]) ¸
element.
0 ë3.øi
[2. 4 ]

cFactor() MATH/Algebra/Complex menu


cFactor(expression1[, var]) ⇒ expression cFactor(a^3ùx^2+aùx^2+a^3+a)
cFactor(list1[,var]) ⇒ list ¸
cFactor(matrix1[,var]) ⇒ matrix aø(a + ëi)ø(a + i)ø(x + ëi)ø(x + i)
cFactor(expression1) returns expression1 factored
cFactor(x^2+4/9) ¸
with respect to all of its variables over a common
denominator. (3øx + ë2øi)ø(3øx + 2ø i)
9
expression1 is factored as much as possible toward
linear rational factors even if this introduces new cFactor(x^2+3) ¸ xñ + 3
non-real numbers. This alternative is appropriate
if you want factorization with respect to more cFactor(x^2+a) ¸ xñ + a
than one variable.

158 Appendix A: Functions and Instructions


cFactor(expression1,var) returns expression1 cFactor(a^3ùx^2+aùx^2+a^3+a,x)
factored with respect to variable var. ¸
expression1 is factored as much as possible toward aø(añ + 1)ø(x + ë i)ø(x + i)
factors that are linear in var, with perhaps non- cFactor(x^2+3,x) ¸
real constants, even if it introduces irrational
constants or subexpressions that are irrational in (x + ‡3ø i)ø(x + ë‡3ø i)
other variables.
cFactor(x^2+a,x) ¸
The factors and their terms are sorted with var as (x + ‡aøëi)ø(x + ‡aø i)
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, cFactor(x^5+4x^4+5x^3ì6xì3)
including var also permits approximation with ¸
floating-point coefficients where irrational x 5 + 4øx 4 + 5øx 3 ì6øxì3
coefficients cannot be explicitly expressed
concisely in terms of the built-in functions. Even cFactor(ans(1),x) ¸
when there is only one variable, including var (x ì.965)ø(x +.612)ø(x + 2.13)ø
might yield more complete factorization. (x + 1.11 ì 1.07øi)ø
Note: See also factor(). (x + 1.11 + 1.07øi)

char() MATH/String menu


char(integer) ⇒ character char(38) ¸ "&"
Returns a character string containing the char(65) ¸ "A"
character numbered integer from the
TI-89 Titanium/Voyage™ 200 character set. See
Appendix B for a complete listing of character
codes. The valid range for integer is 0–255.

checkTmr() CATALOG
checkTmr(starttime) ⇒ integer startTmr() ¸ 148083315
Returns an integer representing the number of checkTmr(148083315) 34
seconds that have elapsed since a timer was
started. starttime is an integer returned from the startTmr()!Timer1
startTmr() function. ©
You can also use a list or matrix of starttime startTmr()!Timer2
integers. Valid starttime integers must fall ©
between 0 and the current time of the clock. You checkTmr(Timer1)!Timer1Value
can run multiple timers simultaneously. ©
Note: See also startTmr() and timeCnv(). checkTmr(Timer2)!Timer2Value

Circle CATALOG
Circle x, y, r [, drawMode] In a ZoomSqr viewing window:
Draws a circle with its center at window ZoomSqr:Circle 1,2,3 ¸
coordinates (x, y) and with a radius of r.
x, y, and r must be real values.
If drawMode = 1, draws the circle (default).
If drawMode = 0, turns off the circle.
If drawMode = -1, inverts pixels along the circle.
Note: Regraphing erases all drawn items. See
also PxlCrcl.

Appendix A: Functions and Instructions 159


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ˆ
H ˆ
and selecting 1:ClrDraw.

ClrErr CATALOG
ClrErr Program listing:
Clears the error status. It sets errornum to zero :clearerr()
and clears the internal error context variables. :Prgm
The Else clause of the Try...EndTry in the :PlotsOff:FnOff:ZoomStd
program should use ClrErr or PassErr. If the :For i,0,238
error is to be processed or ignored, use ClrErr. If :@xù i+xmin! xcord
what to do with the error is not known, use : Try
PassErr to send it to the next error handler. If : PtOn xcord,ln(xcord)
there are no more pending Try...EndTry error : Else
handlers, the error dialog box will be displayed as
: If errornum=800 or
normal.
errornum=260 Then
Note: See also PassErr and Try. : ClrErr ¦ clear the error
: Else
: PassErr ¦ pass on any other
error
: EndIf
: EndTry
:EndFor
:EndPrgm

ClrGraph CATALOG
ClrGraph

Clears any functions or expressions that were


graphed with the Graph command or were
created with the Table command. (See Graph or
Table.)

Any previously selected Y= functions will be


graphed the next time that the graph is displayed.

160 Appendix A: Functions and Instructions


ClrHome CATALOG
ClrHome

Clears all items stored in the entry() and ans()


Home screen history area. Does not clear the
current entry line.
While viewing the Home screen, you can clear the
history area by pressing ƒ and selecting 8:Clear
Home.

For functions such as solve() that return arbitrary


constants or integers (@1, @2, etc.), ClrHome
resets the suffix to 1.

ClrIO CATALOG
ClrIO

Clears the Program I/O screen.

ClrTable CATALOG
ClrTable

Clears all table values. Applies only to the ASK


setting on the Table Setup dialog box.
While viewing the Table screen in Ask mode, you
can clear the values by pressing ƒ and selecting
8:Clear Table.

colDim() MATH/Matrix/Dimensions menu


colDim(matrix) ⇒ expression colDim([0,1,2;3,4,5]) ¸ 3
Returns the number of columns contained in
matrix.
Note: See also rowDim().

colNorm() MATH/Matrix/Norms menu


colNorm(matrix) ⇒ expression [1,ë 2,3;4,5,ë 6]! mat ¸
1 ë2 3
Returns the maximum of the sums of the absolute [4 5 ë 6]
values of the elements in the columns in matrix.
colNorm(mat) ¸ 9
Note: Undefined matrix elements are not
allowed. See also rowNorm().

comDenom() MATH/Algebra menu


comDenom(expression1[,var]) ⇒ expression comDenom((y^2+y)/(x+1)^2+y^2+y)
comDenom(list1[,var]) ⇒ list ¸
comDenom(matrix1[,var]) ⇒ matrix

comDenom(expression1) returns a reduced ratio of


a fully expanded numerator over a fully expanded
denominator.

Appendix A: Functions and Instructions 161


comDenom(expression1,var) returns a reduced comDenom((y^2+y)/(x+1)
ratio of numerator and denominator expanded with ^2+y^2+y,x) ¸
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 comDenom((y^2+y)/(x+1)
operations on the result faster and less likely to ^2+y^2+y,y) ¸
exhaust memory.

If var does not occur in expression1, comDenom(exprn,abc)!comden


comDenom(expression1,var) returns a reduced (exprn) ¸ Done
ratio of an unexpanded numerator over an comden((y^2+y)/(x+1)^2+y^2+y)
unexpanded denominator. Such results usually save ¸
even more time, memory, and screen space. Such
partially factored results also make subsequent
operations on the result much faster and much less
likely to exhaust memory.

Even when there is no denominator, the comden comden(1234x^2ù (y^3ì y)+2468x


function is often a fast way to achieve partial ù (y^2ì 1)) ¸
factorization if factor() is too slow or if it exhausts 1234ø xø (xø y + 2)ø (yñ ì 1)
memory.
Hint: Enter this comden() function definition and
routinely try it as an alternative to comDenom()
and factor().

conj() MATH/Complex menu


conj(expression1) ⇒ expression conj(1+2i) ¸ 1 ì 2ø i
conj(list1) ⇒ list
conj(matrix1) ⇒ matrix conj([2,1ì 3i;ë i,ë 7]) ¸
Returns the complex conjugate of the argument.
2 1+3ø i
Note: All undefined variables are treated as real i ë7 
variables. conj(z) z

conj(x+iy) x + ë iø y

CopyVar CATALOG
CopyVar var1, var2 x+y! a ¸ x+y
10! x ¸ 10
Copies the contents of variable var1 to var2. If var2
does not exist, CopyVar creates it. CopyVar a,b ¸ Done
a! c ¸ y + 10
Note: CopyVar is similar to the store instruction DelVar x ¸ Done
(! ) when you are copying an expression, list, b¸ x+y
matrix, or character string except that no c¸ y + 10
simplification takes place when using CopyVar.
You must use CopyVar with non-algebraic
variable types such as Pic and GDB variables.

162 Appendix A: Functions and Instructions


cos() @ 2 X key H X key
cos(expression1) ⇒ expression In Degree angle mode:
cos(list1) ⇒ list
‡2
cos(expression1) returns the cosine of the
cos((p/4)ô ) ¸
2
argument as an expression.
‡2
cos(list1) returns a list of the cosines of all cos(45) ¸
elements in list1. 2

Note: The argument is interpreted as either a cos({0,60,90}) ¸ {1 1/2 0}


degree or radian angle, according to the current
angle mode setting. You can use ó or ô to In Radian angle mode:
override the angle mode temporarily. ‡2
cos(p/4) ¸
2

‡2
cos(45¡) ¸
2

cos(squareMatrix1) ⇒ squareMatrix In Radian angle mode:


Returns the matrix cosine of squareMatrix1. This is cos([1,5,3;4,2,1;6,ë 2,1]) ¸
not the same as calculating the cosine of each
element. .212… .205… .121… 
When a scalar function f(A) operates on .160… .259… .037… 
squareMatrix1 (A), the result is calculated by the .248… ë.090… .218… 
algorithm:
1. Compute the eigenvalues (l i) and
eigenvectors (Vi) of A.
squareMatrix1 must be diagonalizable. Also, it
cannot have symbolic variables that have not
been assigned a value.
2. Form the matrices:

l1 0 … 0 
B = 0 0 … 0  and X = [V1,V2, … ,Vn]
0 l2 … 0
 
0 0 … ln 
3. Then A = X B Xê and f(A) = X f(B) Xê. For
example, cos(A) = X cos(B) Xê where:

cos(λ1) 0 K 0 
 
 0 cos(λ 2) K 0 
cos (B) =
 0 0 K 0 
 
 0 0 K cos(λn )

All computations are performed using floating-


point arithmetic.

cosê () @ ¥ R key H 2 R key


cosê (expression1) ⇒ expression In Degree angle mode:
cosê (list1) ⇒ list
cosê (1) ¸ 0
cosê (expression1) returns the angle whose cosine
is expression1 as an expression. In Radian angle mode:
cosê (list1) returns a list of the inverse cosines of cosê ({0,.2,.5}) ¸
each element of list1. p
{2 1.369... 1.047...}
Note: The result is returned as either a degree or
radian angle, according to the current angle
mode setting.

Appendix A: Functions and Instructions 163


cosê(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular
complex format mode:
Returns the matrix inverse cosine of squareMatrix1.
This is not the same as calculating the inverse cosê([1,5,3;4,2,1;6,ë 2,1])
cosine of each element. For information about the ¸
calculation method, refer to cos().
squareMatrix1 must be diagonalizable. The result 1.734…+.064…øi ë 1.490…+2.105…øi …

always contains floating-point numbers. ë.725…+1.515…øi .623…+.778…øi … 
ë 2.083…+2.632…øi 1.790…ì 1.271…øi …
cosh() MATH/Hyperbolic menu
cosh(expression1) ⇒ expression cosh(1.2) ¸ 1.810...
cosh(list1) ⇒ list
cosh({0,1.2}) ¸ {1 1.810...}
cosh (expression1) returns the hyperbolic cosine
of the argument as an expression.
cosh (list1) returns a list of the hyperbolic cosines
of each element of list1.
cosh(squareMatrix1) ⇒ squareMatrix In Radian angle mode:
Returns the matrix hyperbolic cosine of cosh([1,5,3;4,2,1;6,ë 2,1])
squareMatrix1. This is not the same as calculating ¸
the hyperbolic cosine of each element. For
information about the calculation method, refer
to cos(). 421.255 253.909 216.905
327.635 255.301 202.958
squareMatrix1 must be diagonalizable. The result 226.297 216.623 167.628
always contains floating-point numbers.

coshê () MATH/Hyperbolic menu


coshê (expression1) ⇒ expression coshê (1) ¸ 0
coshê (list1) ⇒ list
coshê ({1,2.1,3}) ¸
coshê (expression1) returns the inverse hyperbolic {0 1.372... coshê (3)}
cosine of the argument as an expression.
coshê (list1) returns a list of the inverse
hyperbolic cosines of each element of list1.
coshê(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular
complex format mode:
Returns the matrix inverse hyperbolic cosine of
squareMatrix1. This is not the same as calculating coshê([1,5,3;4,2,1;6,ë 2,1])
the inverse hyperbolic cosine of each element. For ¸
information about the calculation method, refer
to cos(). 2.525…+1.734…øi ë.009…ì 1.490…øi …

.486…ì.725…øi 1.662…+.623…øi … 
squareMatrix1 must be diagonalizable. The result ë.322…ì 2.083…øi 1.267…+1.790…øi … 
always contains floating-point numbers.

cot() MATH/Trig menu


cot(expression1) ⇒ expression In Degree angle mode:
cot(list1) ⇒ list
cot(45) ¸ 1
Returns the cotangent of expression1 or returns a
list of the cotangents of all elements in list1. In Radian angle mode:
Note: The argument is interpreted as either a cot({1,2.1,3}) ¸
degree or radian angle, according to the current 1 1
L.584…
angle mode. tan(1) tan(3)

164 Appendix A: Functions and Instructions


cot L1() MATH/Trig menu
cotL1(expression1) ⇒ expression In Degree angle mode:
cot L1(list1) ⇒ list
cotL1(1) ¸ 45
Returns the angle whose cotangent is
expression1 or returns a list containing the In Radian angle mode:
inverse cotangents of each element of list1.
p
Note: The result is returned as either a degree or cot L1(1) ¸ 4
radian angle, according to the current angle
mode.

coth() MATH/Hyperbolic menu


coth(expression1) ⇒ expression coth(1.2) ¸ 1.199…
cot(list1) ⇒ list
coth({1,3.2}) ¸
Returns the hyperbolic cotangent of expression1 1
or returns a list of the hyperbolic cotangents of all 1.003…
tanh(1)
elements of list1.

cothL1() MATH/Hyperbolic menu


cothL1(expression1) ⇒ expression cothL1(3.5) ¸ .293…
cothL1(list1) ⇒ list
cothL1({L2,2.1,6}) ¸
Returns the inverse hyperbolic cotangent of
expression1 or returns a list containing the Lln(3) .518… ln(7/5)
inverse hyperbolic cotangents of each element of 2 2
list1.

crossP() MATH/Matrix/Vector ops menu


crossP(list1, list2) ⇒ list crossP({a1,b1},{a2,b2}) ¸
{0 0 a1ø b2ì a2ø b1}
Returns the cross product of list1 and list2 as a
list. crossP({0.1,2.2,ë 5},{1,ë.5,0})
¸
list1 and list2 must have equal dimension, and the {ë 2.5 ë 5. ë 2.25}
dimension must be either 2 or 3.
crossP(vector1, vector2) ⇒ vector crossP([1,2,3],[4,5,6]) ¸
[ë 3 6 ë 3]
Returns a row or column vector (depending on
the arguments) that is the cross product of vector1 crossP([1,2],[3,4]) ¸
and vector2. [0 0 ë 2]
Both vector1 and vector2 must be row vectors, or
both must be column vectors. Both vectors must
have equal dimension, and the dimension must
be either 2 or 3.

csc() MATH/Trig menu


csc(expression1) ⇒ expression In Degree angle mode:
csc(list1) ⇒ list
1
Returns the cosecant of expression1 or returns a csc(p/4) ¸ p
list containing the cosecants of all elements in sin(4)
list1.
In Radian angle mode:

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

Appendix A: Functions and Instructions 165


cscL1() MATH/Trig menu
csc -1(expression1) ⇒ expression In Degree angle mode:
csc -1(list1) ⇒ list
cscL1(1) ¸ 90
Returns the angle whose cosecant is
expression1or returns a list containing the inverse In Radian angle mode:
cosecants of each element of list1.
cscL1({1,4,6}) ¸
Note: The result is returned as either a degree or
radian angle, according to the current angle p sin L1(1/4) sinL1(1/6)
mode. 2

csch() MATH/Hyperbolic menu


csch(expression1) ⇒ expression 1
csch(list1) ⇒ list csch(3) ¸ sinh(3)
Returns the hyperbolic cosecant of expression1 or csch({1,2.1,4}) ¸
returns a list of the hyperbolic cosecants of all
elements of list1. 1 1
.248…
sinh(1) sinh(4)

cschL1() MATH/Hyperbolic menu


cschL1(expression1) ⇒ expression csch L1(1) ¸ sinh-1(1)
cschL1(list1) ⇒ list
L1
csch ({1,2.1,3}) ¸
Returns the inverse hyperbolic cosecant of
expression1 or returns a list containing the sinhL1(1) .459… sinhL1(1/3)
inverse hyperbolic cosecants of each element of
list1.

cSolve() MATH/Algebra/Complex menu


cSolve(equation, var) ⇒ Boolean expression cSolve(x^3=ë 1,x) ¸
solve(x^3=ë 1,x) ¸
Returns candidate complex solutions of an
equation for var. The goal is to produce
candidates for all real and non-real solutions.
Even if equation is real, cSolve() allows non-real
results in real mode.
Although the TI-89 Titanium/Voyage™ 200
processes all undefined variables that do not end
with an underscore (_) as if they were real,
cSolve() can solve polynomial equations for
complex solutions.
cSolve() temporarily sets the domain to complex cSolve(x^(1/3)=ë 1,x) ¸ false
during the solution even if the current domain is
real. In the complex domain, fractional powers solve(x^(1/3)=ë 1,x) ¸ x = ë1
having odd denominators use the principal rather
than the real branch. Consequently, solutions
from solve() to equations involving such
fractional powers are not necessarily a subset of
those from cSolve().
cSolve() starts with exact symbolic methods. Display Digits mode in Fix 2:
Except in EXACT mode, cSolve() also uses
iterative approximate complex polynomial exact(cSolve(x^5+4x^4+5x
factoring, if necessary. ^3ì6xì3=0,x)) ¸
cSolve(ans(1),x) ¸
Note: See also cZeros(), solve(), and zeros().
Note: If equation is non-polynomial with
functions such as abs(), angle(), conj(), real(),
or imag(), you should place an underscore _
@ ¥q
H 2 q ) at the end of var. By default, a
variable is treated as a real value.

166 Appendix A: Functions and Instructions


If you use var_ , the variable is treated as z is treated as real:
complex.
cSolve(conj(z)=1+ i,z) ¸
You should also use var_ for any other variables
in equation that might have unreal values. z=1+ i
Otherwise, you may receive unexpected results. 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 Note: The following examples use an
do NOT specify any initial guesses, cSolve() uses underscore _
the lexical Gröbner/Buchberger elimination @ ¥q
method to attempt to determine all complex H 2 q so that the variables will be
solutions. treated as complex.
Complex solutions can include both real and non- cSolve(u_ù v_ì u_=v_ and
real solutions, as in the example to the right. v_^2=ë u_,{u_,v_}) ¸
3 3
u_=1/2 + øi and v_=1/2 ì øi
2 2
3 3
or u_=1/2 ì øi and v_=1/2 + øi
2 2
or u_=0 and v_=0
Simultaneous polynomial equations can have cSolve(u_ù v_ì u_=c_ù v_ and
extra variables that have no values, but represent v_^2=ë u_,{u_,v_}) ¸
given numeric values that could be substituted
later. ë( 1ì4øc_+1)2
u_= and v_= 1ì4øc_+1
4 2
or
ë( 1ì4øc_ì1)2 ë( 1ì4øc_ì1)
u_= and v_=
4 2
or u_=0 and v_=0
You can also include solution variables that do cSolve(u_ù v_ì u_=v_ and
not appear in the equations. These solutions v_^2=ë u_,{u_,v_,w_}) ¸
show how families of solutions might contain
arbitrary constants of the form @k, where k is an u_=1/2 +
3
øi and v_=1/2 ì
3
øi
integer suffix from 1 through 255. The suffix 2 2
resets to 1 when you use ClrHome or ƒ and w_=@1
8:Clear Home. or
For polynomial systems, computation time or 3 3
u_=1/2 ì øi and v_=1/2 +
øi
memory exhaustion may depend strongly on the 2 2
order in which you list solution variables. If your and w_=@1
initial choice exhausts memory or your patience, or u_=0 and v_=0 and w_=@1
try rearranging the variables in the equations
and/or varOrGuess list.

Appendix A: Functions and Instructions 167


If you do not include any guesses and if any cSolve(u_+v_=e^(w_) and u_ì v_=
equation is non-polynomial in any variable but all i, {u_,v_}) ¸
equations are linear in all solution variables,
cSolve() uses Gaussian elimination to attempt to e w_ e w_ì i
u_= +1/2øi and v_=
determine all solutions. 2 2
If a system is neither polynomial in all of its cSolve(e^(z_)=w_ and w_=z_^2,
variables nor linear in its solution variables, {w_,z_}) ¸
cSolve() determines at most one solution using w_=.494… and z_=ë.703…
an approximate iterative method. To do so, the
number of solution variables must equal the
number of equations, and all other variables in
the equations must simplify to numbers.
A non-real guess is often necessary to determine cSolve(e^(z_)=w_ and w_=z_^2,
a non-real solution. For convergence, a guess {w_,z_=1+ i}) ¸
might have to be rather close to a solution. w_=.149… + 4.891…øi and
z_=1.588… + 1.540…øi

CubicReg MATH/Statistics/Regressions menu


CubicReg list1, list2[, [list3] [, list4, list5]] In function graphing mode.
Calculates the cubic polynomial regression and {0,1,2,3}! L1 ¸ {0 1 2 3}
updates all the statistics variables. {0,2,3,4}! L2 ¸ {0 2 3 4}
All the lists must have equal dimensions except CubicReg L1,L2 ¸ Done
for list5. ShowStat ¸

list1 represents xlist.


list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.
Note: list1 through list4 must be a variable name
or c1–c99 (columns in the last data variable ¸
shown in the Data/Matrix Editor). list5 does not regeq(x)"y1(x) ¸ Done
have to be a variable name and cannot be c1–c99 NewPlot 1,1,L1,L2 ¸ Done
.
¥%

cumSum() MATH/List menu


cumSum(list1) ⇒ list cumSum({1,2,3,4}) ¸
{1 3 6 10}
Returns a list of the cumulative sums of the
elements in list1, starting at element 1.

cumSum(matrix1) matrix
1 2 
Returns a matrix of the cumulative sums of the [1,2;3,4;5,6]! m1 ¸ 3 4 
elements in matrix1. Each element is the 5 6 
cumulative sum of the column from top to 1 2 
bottom. cumSum(m1) ¸ 4 6 
9 12

168 Appendix A: Functions and Instructions


CustmOff CATALOG
CustmOff See Custom program listing example.
Removes a custom toolbar.
CustmOn and CustmOff enable a program to
control a custom toolbar. Manually, you can press
2 ¾ to toggle a custom toolbar on and
off. Also, a custom toolbar is removed
automatically when you change applications.

CustmOn CATALOG
CustmOn See Custom program listing example.
Activates a custom toolbar that has already been
set up in a Custom...EndCustm block.
CustmOn and CustmOff enable a program to
control a custom toolbar. Manually, you can press
2 ¾ to toggle a custom toolbar on and
off.

Custom 2 ¾ key
Custom Program listing:
block
EndCustm :Test()
:Prgm
Sets up a toolbar that is activated when you press :Custom
2 ¾. It is very similar to the ToolBar
instruction except that Title and Item statements :Title "Lists"
cannot have labels. :Item "List1"
:Item "Scores"
block can be either a single statement or a series :Item "L3"
of statements separated with the “:” character. :Title "Fractions"
Note: 2 ¾ acts as a toggle. The first :Item "f(x)"
instance invokes the menu, and the second :Item "h(x)"
instance removes the menu. The menu is :Title "Graph"
removed also when you change applications. :EndCustm
:EndPrgm

Cycle CATALOG
Cycle Program listing:
Transfers program control immediately to the :¦ Sum the integers from 1 to
next iteration of the current loop (For, While, or 100 skipping 50.
Loop).
:0! temp
Cycle is not allowed outside the three looping :For i,1,100,1
structures (For, While, or Loop). :If i=50
:Cycle
:temp+i! temp
:EndFor
:Disp temp
Contents of temp after execution: 5000

Appendix A: Functions and Instructions 169


CyclePic CATALOG
CyclePic picNameString, n [, [wait] , [cycles], 1. Save three pics named pic1, pic2, and
[direction]] pic3.

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

direction is 1 for circular or ë 1 for forward and


backwards. Default = 1.

4Cylind MATH/Matrix/Vector ops menu


vector 4Cylind [2,2,3] 4Cylind ¸
p
Displays the row or column vector in cylindrical [2ø ‡2 o4 3]
form [r∠q, z].
vector must have exactly three elements. It can be
either a row or a column.

cZeros() MATH/Algebra/Complex menu


cZeros(expression, var) ⇒ list Display Digits mode in Fix 3:
Returns a list of candidate real and non-real cZeros(x^5+4x^4+5x^3ì 6xì 3,x)
values of var that make expression=0. cZeros() ¸
does this by computing {ë 2.125 ë.612 .965
exp8list(cSolve(expression=0,var),var). ë 1.114 ì 1.073ø i
Otherwise, cZeros() is similar to zeros(). ë 1.114 + 1.073ø i}
Note: See also cSolve(), solve(), and zeros().
Note: If expression is non-polynomial with z is treated as real:
functions such as abs(), angle(), conj(), real(), cZeros(conj(z)ì 1ì i,z) ¸
or imag(), you should place an underscore _
{1+i}
( @ ¥ q, H 2 q ) at the end of var. By
default, a variable is treated as a real value. If z_ is treated as complex:
you use var_ , the variable is treated as complex. cZeros(conj(z_)ì 1ì i,z_) ¸
You should also use var_ for any other variables {1ì i}
in expression that might have unreal values.
Otherwise, you may receive unexpected results.
cZeros({expression1, expression2 [, … ] },
{varOrGuess1,varOrGuess2 [, … ] }) ⇒ matrix
Returns candidate positions where the
expressions are zero simultaneously. Each
varOrGuess specifies an unknown whose value you
seek.
Optionally, you can specify an initial guess for a
variable. Each varOrGuess must have the form:
variable
– or –
variable = real or non-real number
For example, x is valid and so is x=3+i.
If all of the expressions are polynomials and you Note: The following examples use an
do NOT specify any initial guesses, cZeros() uses underscore _ ( @ ¥ q, H 2 q) so
the lexical Gröbner/Buchberger elimination that the variables will be treated as complex.
method to attempt to determine all complex
zeros.

170 Appendix A: Functions and Instructions


Complex zeros can include both real and non-real cZeros({u_ù v_ì u_ì v_,v_^2+u_},
zeros, as in the example to the right. {u_,v_}) ¸
Each row of the resulting matrix represents an
1/2 
3 3
ì øi 1/2 + øi
 
alternate zero, with the components ordered the 2 2
same as the varOrGuess list. To extract a row,
1/2 2 
3 3
index the matrix by [row]. + øi 1/2 ì øi
0 
2
0
Extract row 2:
ans(1)[2] ¸
1/2 +
3
øi 1/2 ì
3
øi
 2 2 
Simultaneous polynomials can have extra cZeros({u_ùv_ìu_ì(c_ùv_),
variables that have no values, but represent given v_^2+u_},{u_,v_}) ¸
numeric values that could be substituted later.
ë ( 
2
1ì 4øc_+1) 1ì 4øc_+1
ë ( 4 2

 
1ì 4øc_ì 1)
2 ë ( 1ì 4øc_ì 1)

0 
4 2
0
You can also include unknown variables that do cZeros({u_ù v_ì u_ì v_,v_^2+u_},
not appear in the expressions. These zeros show {u_,v_,w_}) ¸
how families of zeros might contain arbitrary

1/2 
constants of the form @k, where k is an integer 3 3
ì øi 1/2 + øi @1
suffix from 1 through 255. The suffix resets to 1
when you use ClrHome or ƒ 8:Clear Home.  2 2

1/2 
3 3
+ øi 1/2 ì øi @1
0 @1
For polynomial systems, computation time or 2 2
memory exhaustion may depend strongly on the 0
order in which you list unknowns. If your initial
choice exhausts memory or your patience, try
rearranging the variables in the expressions
and/or varOrGuess list.
If you do not include any guesses and if any cZeros({u_+v_ì e^(w_),u_ì v_ì i},
expression is non-polynomial in any variable but {u_,v_}) ¸
all expressions are linear in all unknowns,
e +1/2øi e ì i 
w_ w_
cZeros() uses Gaussian elimination to attempt to
determine all zeros. 2 2 

If a system is neither polynomial in all of its cZeros({e^(z_)ì w_,w_ì z_^2},


variables nor linear in its unknowns, cZeros() {w_,z_}) ¸
determines at most one zero using an
approximate iterative method. To do so, the [.494… ë.703…]
number of unknowns must equal the number of
expressions, and all other variables in the
expressions must simplify to numbers.
A non-real guess is often necessary to determine cZeros({e^(z_)ì w_,w_ì z_^2},
a non-real zero. For convergence, a guess might {w_,z_=1+ i}) ¸
have to be rather close to a zero.
[.149…+4.89…øi 1.588…+1.540…øi]

Appendix A: Functions and Instructions 171


d() 2 = key or MATH/Calculus menu
d (expression1, var [,order]) ⇒ expression d(3x^3ì x+7,x) ¸ 9xñ ì 1
d (list1,var [,order]) ⇒ list
d (matrix1,var [,order]) ⇒ matrix d(3x^3ì x+7,x,2) ¸ 18ø x
Returns the first derivative of expression1 with d(f(x)ù g(x),x) ¸
respect to variable var. expression1 can be a list or
a matrix. d d
(f(x))ø g(x) + (g(x))ø f(x)
dx dx
order, if included, must be an integer. If the order
is less than zero, the result will be an anti- d(sin(f(x)),x) ¸
derivative.
d
cos(f(x)) (f(x))
d() does not follow the normal evaluation dx
mechanism of fully simplifying its arguments and
then applying the function definition to these fully d(x^3,x)|x=5 ¸ 75
simplified arguments. Instead, d() performs the
following steps: d(d(x^2ù y^3,x),y) ¸ 6ø yñ ø x

1. Simplify the second argument only to the xò


extent that it does not lead to a non- d(x^2,x,ë 1) ¸
3
variable.
d({x^2,x^3,x^4},x) ¸
2. Simplify the first argument only to the extent
{2ø x 3ø xñ 4ø xò }
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.

dayOfWk() CATALOG
dayOfWk(year,month,day) ⇒ integer dayOfWk(1948,9,6) 2
Returns an integer from 1 to 7, with each integer Integer values:
representing a day of the week. Use dayOfWk()
to determine on which day of the week a 1 = Sunday
particular date would occur. 2 = Monday
Note: May not give accurate results for years 3 = Tuesday
prior to 1583 (pre-Gregorian calendar).
4 = Wednesday
Enter the year as a four-digit integer. The month 5 = Thursday
and day can be either one- or two-digit integers.
6 = Friday
7 = Saturday

4DD MATH/Angle menu


number 4DD ⇒ value In Degree angle mode:
list1 4DD ⇒ list
matrix1 4DD ⇒ matrix 1.5ó 4DD ¸ 1.5ó

Returns the decimal equivalent of the argument. 45ó 22'14.3" 4DD ¸ 45.370...ó
The argument is a number, list, or matrix that is
interpreted by the Mode setting in radians or {45ó 22'14.3",60ó 0'0"} 4DD ¸
degrees. {45.370... 60}¡
Note: 4DD can also accept input in radians. In Radian angle mode:
1.5 4DD ¸ 85.9ó

172 Appendix A: Functions and Instructions


4Dec MATH/Base menu
integer1 4Dec ⇒ integer 0b10011 4Dec ¸ 19
Converts integer1 to a decimal (base 10) number. 0h1F 4Dec ¸ 31
A binary or hexadecimal entry must always have
a 0b or 0h prefix, respectively.
Zero, not the letter O, followed by b or h.
0b binaryNumber
0h hexadecimalNumber
A binary number can have up to
32 digits. A hexadecimal number
can have up to 8.
Without a prefix, integer1 is treated as decimal.
The result is displayed in decimal, regardless of
the Base mode.

Define CATALOG
Define funcName(arg1Name, arg2Name, ...) = Define g(x,y)=2xì 3y ¸ Done
expression g(1,2) ¸ ë4
Creates funcName as a user-defined function. You 1! a:2! b:g(a,b) ¸ ë4
then can use funcName(), just as you use built-in Define h(x)=when(x<2,2x-3,
functions. The function evaluates expression using
the supplied arguments and returns the result. ë 2x+3) ¸ Done

funcName cannot be the name of a system


variable or built-in function. h(ë 3) ¸ ë9
h(4) ¸ ë5
The argument names are placeholders; you
should not use those same names as arguments
when you use the function. Define eigenvl(a)=
Note: This form of Define is equivalent to cZeros(det(identity(dim(a)
executing the expression: [1])-xù a),x) ¸ Done
expression!funcName(arg1Name,arg2Name). eigenvl([ë 1,2;4,3]) ¸
This command also can be used to define simple 3 - 1 ë (2ø 3 + 1)
variables; for example, Define a=3. {2ø 11 11
}
Define funcName(arg1Name, arg2Name, ...) = Func Define g(x,y)=Func:If x>y Then
block :Return x:Else:Return y:EndIf
EndFunc :EndFunc ¸ Done
Is identical to the previous form of Define, g(3,ë 7) ¸ 3
except that in this form, the user-defined function
funcName() can execute a block of multiple
statements.
block can be either a single statement or a series
of statements separated with the “:” character.
block also can include expressions and
instructions (such as If, Then, Else, and For).
This allows the function funcName() to use the
Return instruction to return a specific result.

Note: It is usually easier to author and edit this


form of Function in the program editor rather
than on the entry line.

Appendix A: Functions and Instructions 173


Define progName(arg1Name, arg2Name, ...) = Prgm Define listinpt()=prgm:Local
block n,i,str1,num:InputStr "Enter
EndPrgm name of list",str1:Input
"No. of elements",n:For
Creates progName as a program or subprogram, i,1,n,1:Input "element
but cannot return a result using Return. Can "&string(i),num:
execute a block of multiple statements. num! #str1[i]:EndFor:EndPrgm
block can be either a single statement or a series ¸
of statements separated with the “:” character. Done
block also can include expressions and listinpt() ¸Enter name of list
instructions (such as If, Then, Else, and For)
without restrictions.
Note: It is usually easier to author and edit a
program block in the Program Editor rather than
on the entry line.

DelFold CATALOG
DelFold folderName1[, folderName2] [, folderName3] ... NewFold games ¸ Done
Deletes user-defined folders with the names (creates the folder games)
folderName1, folderName2, etc. An error message is DelFold games ¸ Done
displayed if the folders contain any variables.
(deletes the folder games)
Note: You cannot delete the main folder.

DelVar CATALOG
DelVar var1[, var2] [, var3] ... 2! a ¸ 2
(a+2)^2 ¸ 16
Deletes the specified variables from memory.
DelVar a ¸ Done
(a+2)^2 ¸ (a + 2)ñ

deSolve() MATH/Calculus menu


deSolve(1stOr2ndOrderOde, independentVar, Note: To type a prime symbol ( ' ), press
dependentVar) ⇒ a general solution 2 È.
Returns an equation that explicitly or implicitly deSolve(y''+2y'+y=x^2,x,y) ¸
specifies a general solution to the 1st- or 2nd- y=(@1øx+@2)øe ë x+xñ ì 4øx+6
order ordinary differential equation (ODE). In the
ODE: right(ans(1))! temp ¸
(@1øx+@2)øe ë x+xñ ì 4øx+6
• Use a prime symbol ( ' , press 2 È) to
denote the 1st derivative of the dependent d(temp,x,2)+2ùd(temp,x)+tempìx^2
variable with respect to the independent ¸ 0
variable.
DelVar temp ¸ Done
• Use two prime symbols to denote the
corresponding second derivative.
The ' symbol is used for derivatives within
deSolve() only. In other cases, use d( ) .

The general solution of a 1st-order equation


contains an arbitrary constant of the form @k,
where k is an integer suffix from 1 through 255.
The suffix resets to 1 when you use ClrHome or
ƒ 8: Clear Home. The solution of a 2nd-order
equation contains two such constants.

174 Appendix A: Functions and Instructions


Apply solve() to an implicit solution if you want deSolve(y'=(cos(y))^2ù x,x,y)
to try to convert it to one or more equivalent ¸
explicit solutions. xñ
tan(y)= +@3
2
When comparing your results with textbook or solve(ans(1),y) ¸
manual solutions, be aware that different
methods introduce arbitrary constants at different xñ +2ø@3
points in the calculation, which may produce
different general solutions.
y=tanê ( 2 )+@n1øp
Note: To type an @ symbol, press:
@ ¥§
H 2R

ans(1)|@3=cì 1 and @n1=0 ¸


xñ +2ø(cì 1)
y=tanê ( 2 )
deSolve(1stOrderOde and initialCondition, sin(y)=(yù e ^(x)+cos(y))y'! ode
independentVar, dependentVar) ¸
⇒ a particular solution sin(y)=(e xøy+cos(y))øy'
Returns a particular solution that satisfies deSolve(ode and
1stOrderOde and initialCondition. This is usually y(0)=0,x,y)! soln ¸
easier than determining a general solution,
substituting initial values, solving for the arbitrary ë(2øsin(y)+yñ)
=ë(exì1)øeëxøsin(y)
constant, and then substituting that value into 2
the general solution.
soln|x=0 and y=0 ¸ true
initialCondition is an equation of the form:
d(right(eq)ì left(eq),x)/
dependentVar (initialIndependentValue) = (d(left(eq)ì right(eq),y))
initialDependentValue
! impdif(eq,x,y) ¸
The initialIndependentValue and Done
initialDependentValue can be variables such as x0
and y0 that have no stored values. Implicit ode|y'=impdif(soln,x,y) ¸
differentiation can help verify implicit solutions. true

DelVar ode,soln ¸ Done

deSolve(2ndOrderOde and initialCondition1 and deSolve(y''=y^(ë 1/2) and


initialCondition2, independentVar, y(0)=0 and y'(0)=0,t,y) ¸
dependentVar) ⇒ a particular solution 2øy 3/4
=t
Returns a particular solution that satisfies 3
2ndOrderOde and has a specified value of the
dependent variable and its first derivative at one solve(ans(1),y) ¸
point.
22/3ø(3øt)4/3
y= and t‚0
4
For initialCondition1, use the form:
dependentVar (initialIndependentValue) =
initialDependentValue
For initialCondition2, use the form:
dependentVar' (initialIndependentValue) =
initial1stDerivativeValue

Appendix A: Functions and Instructions 175


deSolve(2ndOrderOde and boundaryCondition1 and deSolve(w''ì 2w'/x+(9+2/x^2)w=
boundaryCondition2, independentVar, xù e ^(x) and w(p/6)=0 and
dependentVar) ⇒ a particular solution w(p/3)=0,x,w) ¸
Returns a particular solution that satisfies p

2ndOrderOde and has specified values at two e 3øxøcos(3øx)


different points. w=
10
p
e 6øxøsin(3øx) x⋅e x
ì +
10 10

det() MATH/Matrix menu


det(squareMatrix[, tol]) ⇒ expression det([a,b;c,d]) ¸ aø d ì bø c
Returns the determinant of squareMatrix. det([1,2;3,4]) ¸ ë2
Optionally, any matrix element is treated as zero det(identity(3) ì xù [1,ë 2,3;
if its absolute value is less than tol. This tolerance ë 2,4,1;ë 6,ë 2,7]) ¸
is used only if the matrix has floating-point
entries and does not contain any symbolic ë (98ø xò ì 55ø xñ + 12ø x ì 1)
variables that have not been assigned a value.
Otherwise, tol is ignored.
1.E20 1
• If you use ¥ ¸ or set the mode to [0
Exact/Approx=APPROXIMATE, computations
[1E20,1;0,1]!mat1 1]
are done using floating-point arithmetic. det(mat1) ¸ 0
det(mat1,.1) ¸ 1.E20
• If tol is omitted or not used, the default
tolerance is calculated as:
5Eë 14 ù max(dim(squareMatrix))
ù rowNorm(squareMatrix)

diag() MATH/Matrix menu


diag(list) ⇒ matrix
diag(rowMatrix) ⇒ matrix
2 0 0
diag({2,4,6}) ¸ 0 4 0
diag(columnMatrix) ⇒ matrix 0 0 6
Returns a matrix with the values in the argument
list or matrix in its main diagonal.

diag(squareMatrix) rowMatrix
 4 6 8
Returns a row matrix containing the elements [4,6,8;1,2,3;5,7,9] ¸ 1 2 3
from the main diagonal of squareMatrix.  5 7 9
squareMatrix must be square. diag(ans(1)) ¸ [4 2 9]

176 Appendix A: Functions and Instructions


Dialog CATALOG
Dialog Program listing:
block
EndDlog :Dlogtest()
:Prgm
Generates a dialog box when the program is :Dialog
executed. :Title "This is a dialog box"
block can be either a single statement or a series :Request "Your name",Str1
of statements separated with the “:” character. :Dropdown "Month you were born",
Valid block options in the … I/O, 1:Dialog menu seq(string(i),i,1,12),Var1
item in the Program Editor are 1:Text, 2:Request, :EndDlog
4:DropDown, and 7:Title.
:EndPrgm
The variables in a dialog box can be given values
that will be displayed as the default (or initial)
value. If ¸ is pressed, the variables are
updated from the dialog box and variable ok is
set to 1. If N is pressed, its variables are not
updated, and system variable ok is set to zero.

dim() MATH/Matrix/Dimensions menu


dim(list) ⇒ integer dim({0,1,2}) ¸ 3
Returns the dimension of list.
dim(matrix) ⇒ list dim([1,ë 1,2;ë 2,3,5]) ¸ {2 3}
Returns the dimensions of matrix as a two-
element list {rows, columns}.
dim(string) ⇒ integer dim("Hello") ¸ 5
Returns the number of characters contained in dim("Hello"&" there") ¸ 11
character string string.

Disp CATALOG
Disp [exprOrString1] [, exprOrString2] ... Disp "Hello" ¸ Hello
Displays the current contents of the Program I/O Disp cos(2.3) ¸ ë.666…
screen. If one or more exprOrString is specified,
each expression or character string is displayed {1,2,3,4}! L1 ¸
on a separate line of the Program I/O screen. Disp L1 ¸ {1 2 3 4}
An expression can include conversion operations Disp 180_min 4 _hr ¸ 3.ø_hr
such as 4DD and 4Rect. You can also use the 4
operator to perform unit and number base
conversions. Note: To type an underscore ( _ ), press:
@ ¥q
If Pretty Print = ON, expressions are displayed in H 2q
pretty print. To type 4, press 2 p.
From the Program I/O screen, you can press ‡ to
display the Home screen, or a program can use
DispHome.

Appendix A: Functions and Instructions 177


DispG CATALOG
DispG In function graphing mode:
Displays the current contents of the Graph screen. Program segment:
©
:5ù cos(x)! y1(x)
:ë 10! xmin
:10! xmax
:ë 5! ymin
:5! ymax
:DispG
©

DispHome CATALOG
DispHome Program segment:
Displays the current contents of the Home screen. ©
:Disp "The result is: ",xx
:Pause "Press Enter to quit"
:DispHome
:EndPrgm

DispTbl CATALOG
DispTbl 5ù cos(x)! y1(x) ¸
DispTbl ¸
Displays the current contents of the Table screen.
Note: The cursor pad is active for scrolling. Press
N or ¸ to resume execution if in a
program.

4DMS MATH/Angle menu


expression 4DMS In Degree angle mode:
list 4DMS
matrix 4DMS 45.371 4DMS ¸ 45ó 22'15.6"

Interprets the argument as an angle and displays {45.371,60} 4DMS ¸


the equivalent DMS (DDDDDD¡MM¢SS.ss£) number. {45ó 22'15.6" 60ó }
See ¡, ', " on page 275 for DMS (degree, minutes,
seconds) format.
Note: 4DMS will convert from radians to degrees
when used in radian mode. If the input is
followed by a degree symbol ( ¡ ), no conversion
will occur. You can use 4DMS only at the end of
an entry line.

dotP() MATH/Matrix/Vector ops menu


dotP(list1, list2) ⇒ expression dotP({a,b,c},{d,e,f}) ¸
aø d + bø e + cø f
Returns the “dot” product of two lists.
dotP({1,2},{5,6}) ¸ 17

178 Appendix A: Functions and Instructions


dotP(vector1, vector2) ⇒ expression dotP([a,b,c],[d,e,f]) ¸
aø d + bø e + cø f
Returns the “dot” product of two vectors.
Both must be row vectors, or both must be dotP([1,2,3],[4,5,6]) ¸ 32
column vectors.

DrawFunc CATALOG
DrawFunc expression In function graphing mode and ZoomStd
window:
Draws expression as a function, using x as the
independent variable. DrawFunc 1.25xù cos(x) ¸
Note: Regraphing erases all drawn items.

DrawInv CATALOG
DrawInv expression In function graphing mode and ZoomStd
window:
Draws the inverse of expression by plotting x
values on the y axis and y values on the x axis. DrawInv 1.25xù cos(x) ¸
x is the independent variable.

Note: Regraphing erases all drawn items.

DrawParm CATALOG
DrawParm expression1, expression2 In function graphing mode and ZoomStd
[, tmin] [, tmax] [, tstep] window:
Draws the parametric equations expression1 and DrawParm
expression2, using t as the independent variable. tù cos(t),tù sin(t),0,10,.1 ¸
Defaults for tmin, tmax, and tstep are the current
settings for the Window variables tmin, tmax,
and tstep. Specifying values does not alter the
window settings. If the current graphing mode is
not parametric, these three arguments are
required.
Note: Regraphing erases all drawn items.

DrawPol CATALOG
DrawPol expression[, qmin] [, qmax] [, qstep] In function graphing mode and ZoomStd
window:
Draws the polar graph of expression, using q as
the independent variable. DrawPol 5ù cos(3ù q),0,3.5,.1
¸
Defaults for qmin, qmax, and qstep are the current
settings for the Window variables qmin, qmax,
and qstep. Specifying values does not alter the
window settings. If the current graphing mode is
not polar, these three arguments are required.
Note: Regraphing erases all drawn items.

Appendix A: Functions and Instructions 179


DrawSlp CATALOG
DrawSlp x1, y1, slope In function graphing mode and ZoomStd
window:
Displays the graph and draws a line using the
formula yì y1=slopeø (xì x1). DrawSlp 2,3,ë 2 ¸
Note: Regraphing erases all drawn items.

DropDown CATALOG
DropDown titleString, {item1String, item2String, ...}, See Dialog program listing example.
varName
Displays a drop-down menu with the name
titleString and containing the items 1: item1String,
2: item2String, and so forth. DropDown must be
within a Dialog...EndDlog block.
If varName already exists and has a value within
the range of items, the referenced item is
displayed as the default selection. Otherwise, the
menu’s first item is the default selection.
When you select an item from the menu, the
corresponding number of the item is stored in the
variable varName. (If necessary, DropDown
creates varName.)

DrwCtour CATALOG
DrwCtour expression In 3D graphing mode:
DrwCtour list
(1/5)x^2+(1/5)y^2ì 10!z1(x,y)
Draws contours on the current 3D graph at the z ¸
values specified by expression or list. The 3D Done
graphing mode must already be set. DrwCtour L10!xmin:10!xmax ¸ 10
automatically sets the graph format style to L10!ymin:10!ymax ¸ 10
CONTOUR LEVELS. L10!zmin:10!zmax ¸ 10
0!ncontour ¸ 0
By default, the graph automatically contains the DrwCtour {L9,L4.5,L3,0,4.5,9}
number of equally spaced contours specified by ¸
the ncontour Window variable. DrwCtour
draws contours in addition to the defaults.
To turn off the default contours, set ncontour to
zero, either by using the Window screen or by
storing 0 to the ncontour system variable.

• Use the cursor to change the viewing


angle. Press 0 (zero) to return to the
original view.
To toggle between different graph format
styles, press:
@ Í
H F
• Press X, Y, or Z to look down the
corresponding axis.

180 Appendix A: Functions and Instructions


í @ ^ key H 2 ^ key
mantissaEexponent 2.3í 4 ¸ 23000.
Enters a number in scientific notation. The 2.3í 9+4.1í 15 ¸ 4.1í 15
number is interpreted as mantissa × 10 exponent.
Hint: If you want to enter a power of 10 without
causing a decimal value result, use 10^integer. 3ù 10^4 ¸ 30000

e^() @ ¥ s key H 2 s key


e^(expression1) ⇒ expression e^(1) ¸ e
Returns e raised to the expression1 power. e^(1.) ¸ 2.718...
Note: On the TI-89 Titanium, pressing ¥ s to e^(3)^2 ¸ e9
display e^( is different from pressing j [E ] .
On the Voyage 200, pressing 2s to display
e^ is different from accessing the character e
from the QWERTY keyboard.
You can enter a complex number in re i q polar
form. However, use this form in Radian angle
mode only; it causes a Domain error in Degree
angle mode.
e^(list1) ⇒ list e^({1,1.,0,.5}) ¸
Returns e raised to the power of each element in {e 2.718... 1 1.648...}
list1.
e^(squareMatrix1) ⇒ squareMatrix e^([1,5,3;4,2,1;6,ë 2,1]) ¸
Returns the matrix exponential of squareMatrix1.
This is not the same as calculating e raised to the 782.209 559.617 456.509
power of each element. For information about the 680.546 488.795 396.521
calculation method, refer to cos().
524.929 371.222 307.879

squareMatrix1 must be diagonalizable. The result


always contains floating-point numbers.

eigVc() MATH/Matrix menu


eigVc(squareMatrix) ⇒ matrix In Rectangular complex format mode:
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
in the result corresponds to an eigenvalue. Note  ë 1 2 5
 3 ë 6 9
that an eigenvector is not unique; it may be
scaled by any constant factor. The eigenvectors
 2 ë 5 7
are normalized, meaning that if V = [x 1, x 2, … , eigVc(m1) ¸
x n], then:
.484…
ë.800… .767… .767…

x1 2 + x2 2 + … + xn 2 = 1  .573…+.052…øi .573…ì.052…øi
.352… .262…+.096…øi .262…ì.096…øi
squareMatrix is first balanced with similarity
transformations until the row and column norms
are as close to the same value as possible. The
squareMatrix is then reduced to upper Hessenberg
form and the eigenvectors are computed via a
Schur factorization.

Appendix A: Functions and Instructions 181


eigVl() MATH/Matrix menu
eigVl(squareMatrix) ⇒ list In Rectangular complex format mode:
Returns a list of the eigenvalues of a real or [L1,2,5;3,L6,9;2,L5,7]! m1 ¸
complex squareMatrix.
 ë 1 2 5
squareMatrix is first balanced with similarity  3 ë 6 9
transformations until the row and column norms  2 ë 5 7
are as close to the same value as possible. The
squareMatrix is then reduced to upper Hessenberg eigVl(m1) ¸
form and the eigenvalues are computed from the {ë4.409… 2.204…+.763… øi
upper Hessenberg matrix. 2.204…ì.763…øi}

Else See If, page 196.

ElseIf CATALOG See also If, page 196.


If Boolean expression1 Then Program segment:
block1
ElseIf Boolean expression2 Then ©
block2 :If choice=1 Then
© : Goto option1
ElseIf Boolean expressionN Then : ElseIf choice=2 Then
blockN : Goto option2
EndIf : ElseIf choice=3 Then
©
: Goto option3
ElseIf can be used as a program instruction for : ElseIf choice=4 Then
program branching. : Disp "Exiting Program"
: Return
:EndIf
©

EndCustm See Custom, page 169.

EndDlog See Dialog, page 177.

EndFor See For, page 189.

EndFunc See Func, page 190.

EndIf See If, page 196.

EndLoop See Loop, page 205.

EndPrgm See Prgm, page 220.

EndTBar See ToolBar, page 255.

EndTry See Try, page 256.

EndWhile See While, page 258.

182 Appendix A: Functions and Instructions


entry() CATALOG
entry() ⇒ expression On the Home screen:
entry(integer) ⇒ expression
1
Returns a previous entry-line entry from the 1+1/x ¸ x+1
Home screen history area.
1
integer, if included, specifies which entry 1+1/entry(1) ¸ 2ì
expression in the history area. The default is 1, x+1
the most recently evaluated entry. Valid range is
from 1 to 99 and cannot be an expression. 1
¸ 2ø (2ø x+1)
+ 3/2
Note: If the last entry is still highlighted on the
Home screen, pressing ¸ is equivalent to 1
executing entry(1). ¸ 5 / 3 ì 3ø (3ø x+2)

1
entry(4) ¸ x+1

exact() MATH/Number menu


exact( expression1 [, tol]) ⇒ expression exact(.25) ¸ 1/4
exact( list1 [, tol]) ⇒ list
exact( matrix1 [, tol]) ⇒ matrix 333333
exact(.333333) ¸
1000000
Uses Exact mode arithmetic regardless of the
Exact/Approx mode setting to return, when exact(.33333,.001) 1/3
possible, the rational-number equivalent of the
argument.
exact(3.5x+y) ¸ 7ø x + y
tol specifies the tolerance for the conversion; the 2
default is 0 (zero). exact({.2,.33,4.125}) ¸
33
{1à5 33à8}
100

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.

Appendix A: Functions and Instructions 183


Exit CATALOG
Exit Program listing:
Exits the current For, While, or Loop block. :0! temp
Exit is not allowed outside the three looping :For i,1,100,1
structures (For, While, or Loop). : temp+i! temp
: If temp>20
: Exit
:EndFor
:Disp temp
Contents of temp after execution: 21

exp4list() CATALOG
exp4list(expression,var) ⇒ list solve(x^2ì xì 2=0,x) ¸ x=2 or
x=ë 1
Examines expression for equations that are
separated by the word “or,” and returns a list exp4list(solve(x^2ì xì 2=0,x),x)
containing the right-hand sides of the equations ¸
of the form var=expression. This gives you an easy {ë 1 2}
way to extract some solution values embedded in
the results of the solve(), cSolve(), fMin(), and
fMax() functions.

Note: exp4list() is not necessary with the zeros


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

expand() MATH/Algebra menu


expand(expression1 [, var]) ⇒ expression expand((x+y+1)^2) ¸
expand(list1 [,var]) ⇒ list xñ + 2ø xø y + 2ø x + yñ + 2ø y + 1
expand(matrix1 [,var]) ⇒ matrix
expand((x^2ì x+y^2ì y)/(x^2ù y^2
expand(expression1) returns expression1
ì x^2ù yì xù y^2+xù y)) ¸
expanded with respect to all its variables. The
expansion is polynomial expansion for
polynomials and partial fraction expansion for
rational expressions.
The goal of expand() is to transform expression1
into a sum and/or difference of simple terms. In
contrast, the goal of factor() is to transform
expression1 into a product and/or quotient of
simple factors.
expand(expression1,var) returns expression expand((x+y+1)^2,y) ¸
expanded with respect to var. Similar powers of yñ + 2ø yø (x + 1) + (x + 1)ñ
var are collected. The terms and their factors are
sorted with var as the main variable. There might expand((x+y+1)^2,x) ¸
be some incidental factoring or expansion of the xñ + 2ø xø (y + 1) + (y + 1)ñ
collected coefficients. Compared to omitting var,
this often saves time, memory, and screen space, expand((x^2ì x+y^2ì y)/(x^2ù y^2
while making the expression more ì x^2ù yì xù y^2+xù y),y) ¸
comprehensible.

expand(ans(1),x) ¸

184 Appendix A: Functions and Instructions


Even when there is only one variable, using var expand((x^3+x^2ì 2)/(x^2ì 2))
might make the denominator factorization used ¸
for partial fraction expansion more complete. 2ø x
Hint: For rational expressions, propFrac() is a xñ ì 2 + x+1
faster but less extreme alternative to expand().
expand(ans(1),x) ¸
Note: See also comDenom() for an expanded 1 1
numerator over an expanded denominator. xì ‡2 + x+‡2 + x+1

expand(expression1,[var]) also distributes ln(2xù y)+‡(2xù y) ¸


logarithms and fractional powers regardless of ln(2ø xø y) + ‡(2ø xø y)
var. For increased distribution of logarithms and
fractional powers, inequality constraints might be expand(ans(1)) ¸
necessary to guarantee that some factors are ln(xø y) + ‡2ø ‡(xø y) + ln(2)
nonnegative.
expand(ans(1))|y>=0 ¸
expand(expression1, [var]) also distributes
ln(x) + ‡2ø ‡xø ‡y + ln(y) + ln(2)
absolute values, sign(), and exponentials,
regardless of var. sign(xù y)+abs(xù y)+ e ^(2x+y)
¸
Note: See also tExpand() for trigonometric e 2ø x+y + sign(xø y) + |xø y|
angle-sum and multiple-angle expansion.
expand(ans(1)) ¸
sign(x)øsign(y) + |x|ø|y|+ (ex)2øey

expr() MATH/String menu


expr(string) ⇒ expression expr("1+2+x^2+x") ¸ xñ + x + 3
Returns the character string contained in string as expr("expand((1+x)^2)") ¸
an expression and immediately executes it. xñ + 2ø x + 1
"Define cube(x)=x^3"! funcstr
¸
"Define cube(x)=x^3"
expr(funcstr) ¸ Done

cube(2) ¸ 8

Appendix A: Functions and Instructions 185


ExpReg MATH/Statistics/Regressions menu
ExpReg list1, list2 [, [list3] [, list4, list5]] In function graphing mode:
Calculates the exponential regression and {1,2,3,4,5,6,7,8}! L1 ¸
updates all the system statistics variables. {1 2 ...}
All the lists must have equal dimensions except {1,2,2,2,3,4,5,7}! L2 ¸
for list5. {1 2 ...}
ExpReg L1,L2 ¸ Done
list1 represents xlist.
ShowStat ¸
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.
Note: list1 through list4 must be a variable name
or c1–c99 (columns in the last data variable
shown in the Data/Matrix Editor). list5 does not
have to be a variable name and cannot be c1–c99 ¸
. Regeq(x)"y1(x) ¸ Done
NewPlot 1,1,L1,L2 ¸ Done
¥%

factor() MATH/Algebra menu


factor(expression1[, var]) ⇒ expression factor(a^3ù x^2ì aù x^2ì a^3+a)
factor(list1[,var]) ⇒ list
factor(matrix1[,var]) ⇒ matrix ¸

factor(expression1) returns expression1 factored aø(a ì1)ø(a + 1)ø(x ì1)ø(x + 1)


with respect to all of its variables over a common factor(x^2+1) ¸ xñ + 1
denominator.
expression1 is factored as much as possible toward factor(x^2ì 4) ¸(x ì 2)ø (x + 2)
linear rational factors without introducing new factor(x^2ì 3) ¸ xñ ì 3
non-real subexpressions. This alternative is
appropriate if you want factorization with respect factor(x^2ì a) ¸ xñ ì a
to more than one variable.
factor(expression1,var) returns expression1 factor(a^3ù x^2ì aù x^2ì a^3+a,x)
factored with respect to variable var. ¸
expression1 is factored as much as possible toward aø (añ ì 1)ø (x ì 1)ø (x + 1)
real factors that are linear in var, even if it
introduces irrational constants or subexpressions factor(x^2ì 3,x) ¸
that are irrational in other variables. (x + ‡3)ø (x ì ‡3)
The factors and their terms are sorted with var as factor(x^2ì a,x) ¸
the main variable. Similar powers of var are
collected in each factor. Include var if (x + ‡a)ø (x ì ‡a)
factorization is needed with respect to only that
variable and you are willing to accept irrational
expressions in any other variables to increase
factorization with respect to var. There might be
some incidental factoring with respect to other
variables.

186 Appendix A: Functions and Instructions


For the AUTO setting of the Exact/Approx mode, factor(x^5+4x^4+5x^3ì 6xì 3)
including var permits approximation with floating-
point coefficients where irrational coefficients ¸
cannot be explicitly expressed concisely in terms x 5 + 4ø x4 + 5ø x3ì 6ø x ì 3
of the built-in functions. Even when there is only
one variable, including var might yield more factor(ans(1),x) ¸
complete factorization. (xì.964…)ø (x +.611…)ø
Note: See also comDenom() for a fast way to (x + 2.125…)ø (xñ + 2.227…ø
achieve partial factoring when factor() is not x + 2.392…)
fast enough or if it exhausts memory.
Note: See also cFactor() for factoring all the
way to complex coefficients in pursuit of linear
factors.
factor(rationalNumber) returns the rational factor(152417172689) ¸
number factored into primes. For composite 123457ø1234577
numbers, the computing time grows
exponentially with the number of digits in the isPrime(152417172689) ¸false
second-largest factor. For example, factoring a
30-digit integer could take more than a day, and
factoring a 100-digit number could take more
than a century.
Note: To stop (break) a computation, press ´.
If you merely want to determine if a number is
prime, use isPrime() instead. It is much faster,
particularly if rationalNumber is not prime and if
the second-largest factor has more than five
digits.

Fill MATH/Matrix menu


Fill expression, matrixVar ⇒ matrix 2 1
[1,2;3,4]! amatrx ¸ [3
4]
Replaces each element in variable matrixVar with
expression. Fill 1.01,amatrx ¸ Done
1.01 1.01
matrixVar must already exist. amatrx ¸ [1.01 1.01]

Fill expression, listVar ⇒ list {1,2,3,4,5}! alist ¸


{1 2 3 4 5}
Replaces each element in variable listVar with
expression. Fill 1.01,alist ¸ Done
alist ¸
listVar must already exist. {1.01 1.01 1.01 1.01 1.01}

floor() MATH/Number menu


floor(expression) ⇒ integer floor(ë 2.14) ¸ ë 3.
Returns the greatest integer that is c the
argument. This function is identical to int().
The argument can be a real or a complex number.
floor(list1) ⇒ list floor({3/2,0,ë 5.3}) ¸
floor(matrix1) ⇒ matrix
{1 0 ë 6.}
Returns a list or matrix of the floor of each
element. floor([1.2,3.4;2.5,4.8]) ¸
1. 3.
Note: See also ceiling() and int(). [2. 4.]

Appendix A: Functions and Instructions 187


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 a+b
or locate its least upper bound. x =
2

fMax(.5x^3ì xì 2,x) ¸ x = ˆ
Use the “|” operator to restrict the solution fMax(.5x^3ì xì 2,x)|xc1 ¸
interval and/or specify the sign of other undefined
variables. x = ë.816...
For the APPROX setting of the Exact/Approx fMax(aù x^2,x) ¸
mode, fMax() iteratively searches for one x = ˆ or x = ë ˆ or x = 0 or a = 0
approximate local maximum. This is often faster,
particularly if you use the “|” operator to fMax(aù x^2,x)|a<0 ¸ x=0
constrain the search to a relatively small interval
that contains exactly one local maximum.
Note: See also fMin() and max().

fMin() MATH/Calculus menu


fMin(expression, var) ⇒ Boolean expression fMin(1ì (xì a)^2ì (xì b)^2,x)
¸
Returns a Boolean expression specifying x = ˆ or x = ë ˆ
candidate values of var that minimize expression or
locate its greatest lower bound. fMin(.5x^3ì xì 2,x)|x‚1 ¸ x = 1
Use the “|” operator to restrict the solution fMin(aù x^2,x) ¸
interval and/or specify the sign of other undefined
x = ˆ or x = ë ˆ or x = 0 or a = 0
variables.
For the APPROX setting of the Exact/Approx fMin(aù x^2,x)|a>0 and x>1 ¸
mode, fMin() iteratively searches for one x = 1.
approximate local minimum. This is often faster,
particularly if you use the “|” operator to fMin(aù x^2,x)|a>0 ¸ x=0
constrain the search to a relatively small interval
that contains exactly one local minimum.
Note: See also fMax() and min().

FnOff CATALOG
FnOff

Deselects all Y= functions for the current


graphing mode.
In split-screen, two-graph mode, FnOff only
applies to the active graph.
FnOff [1] [, 2] ... [,99] In function graphing mode:
FnOff 1,3 ¸ deselects y1(x) and
Deselects the specified Y= functions for the y3(x).
current graphing mode.
In parametric graphing mode:
FnOff 1,3 ¸ deselects xt1(t), yt1(t),
xt3(t), and yt3(t).

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.

188 Appendix A: Functions and Instructions


FnOn [1] [, 2] ... [,99]

Selects the specified Y= functions for the current


graphing mode.
Note: In 3D graphing mode, only one function at
a time can be selected. FnOn 2 selects z2(x,y) and
deselects any previously selected function. In the
other graph modes, previously selected functions
are not affected.

For CATALOG
For var, low, high [, step] Program segment:
block
EndFor ©
:0! tempsum : 1! step
Executes the statements in block iteratively for :For i,1,100,step
each value of var, from low to high, in increments : tempsum+i! tempsum
of step.
:EndFor
var must not be a system variable. :Disp tempsum
©
step can be positive or negative. The default value
is 1. Contents of tempsum after
block can be either a single statement or a series
execution: 5050
of statements separated with the “:” character. Contents of tempsum when step
is changed to 2: 2500

format() MATH/String menu


format(expression[, formatString]) ⇒ string format(1.234567,"f3") ¸
"1.235"
Returns expression as a character string based on
the format template. format(1.234567,"s2") ¸
expression must simplify to a number. formatString "1.23í 0"
is a string and must be in the form: “F[n]”,
“S[n]”, “E[n]”, “G[n][c]”, where [ ] indicate format(1.234567,"e3") ¸
optional portions. "1.235í 0"

F[n]: Fixed format. n is the number of digits to format(1.234567,"g3") ¸


display after the decimal point. "1.235"
S[n]: Scientific format. n is the number of digits to format(1234.567,"g3") ¸
display after the decimal point. "1,234.567"
E[n]: Engineering format. n is the number of format(1.234567,"g3,r:") ¸
digits after the first significant digit. The exponent "1:235"
is adjusted to a multiple of three, and the decimal
point is moved to the right by zero, one, or two
digits.
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.

Appendix A: Functions and Instructions 189


fPart() MATH/Number menu
fPart(expression1) ⇒ expression fPart(ë 1.234) ¸ ë.234
fPart(list1) ⇒ list
fPart(matrix1) ⇒ matrix fPart({1, ë 2.3, 7.003}) ¸
{0 ë.3 .003}
Returns the fractional part of the argument.
For a list or matrix, returns the fractional parts of
the elements.
The argument can be a real or a complex number.

Func CATALOG
Func In function graphing mode, define a piecewise
block function:
EndFunc
Define g(x)=Func:If x<0 Then
Required as the first statement in a multi- :Return 3ù cos(x):Else:Return
statement function definition. 3ì x:EndIf:EndFunc ¸ Done
block can be either a single statement or a series
Graph g(x) ¸
of statements separated with the “:” character.
Note: when() also can be used to define and
graph piecewise-defined functions.

gcd() MATH/Number menu


gcd(number1, number2) ⇒ expression gcd(18,33) ¸ 3
Returns the greatest common divisor of the two
arguments. The gcd of two fractions is the gcd
of their numerators divided by the lcm of their
denominators.
In Auto or Approximate mode, the gcd of
fractional floating-point numbers is 1.0.
gcd(list1, list2) ⇒ list gcd({12,14,16},{9,7,5}) ¸
{3 7 1}
Returns the greatest common divisors of the
corresponding elements in list1 and list2.
gcd(matrix1, matrix2) ⇒ matrix gcd([2,4;6,8],[4,8;12,16])
¸
Returns the greatest common divisors of the 2 4
corresponding elements in matrix1 and matrix2. [6 8]

Get CATALOG
Get var Program segment:
Retrieves a CBL 2é/CBL™ (Calculator-Based ©
Laboratoryé) or CBRé (Calculator-Based :Send {3,1,ë 1,0}
Rangeré) value from the link port and stores it in :For i,1,99
variable var. : Get data[i]
: PtOn i,data[i]
:EndFor
©

190 Appendix A: Functions and Instructions


GetCalc CATALOG
GetCalc var Program segment:
Retrieves a value from the link port and stores it ©
in variable var. This is for unit-to-unit linking. :Disp "Press Enter when ready"
Note: To get a variable to the link port from :Pause
another unit, use 2 ° on the other unit :GetCalc L1
to select and send a variable, or do a SendCalc :Disp "List L1 received"
on the other unit. ©
@ GetCalc var[,port]
Retrieves a value from the link port and stores it
in variable var on the receiving TI-89 Titanium.
If the port is not specified, or port = 0 is specified,
the TI-89 Titanium waits for data from either
port.
If port = 1, the TI-89 Titanium waits for data from
the USB port.
If port = 2, the TI-89 Titanium waits for data from
the I/O port.

getConfg() CATALOG
getConfg() ⇒ ListPairs @:
Returns a list of calculator attributes. The getConfg() ¸
attribute name is listed first, followed by its {"Product Name" "Advanced
value. Mathematics Software"
"Version" "2.00, 09/25/1999"
"Product ID" "03-1-4-68"
"ID #" "01012 34567 ABCD"
"Cert. Rev. #" 0
"Screen Width" 160
"Screen Height" 100
"Window Width" 160
"Window Height" 67
"RAM Size" 262132
"Free RAM" 197178
"Archive Size" 655360
"Free Archive" 655340}
H
getConfg() ¸
{"Product Name" "Advanced
Mathematics Software"
"Version" "2.00, 09/25/1999"
"Product ID" "01-1-4-80"
"ID #" "01012 34567 ABCD"
"Cert. Rev. #" 0
"Screen Width" 240
"Screen Height" 120
"Window Width" 240
"Window Height" 91
"RAM Size" 262144
"Free RAM" 192988
"Archive Size" 720896
"Free Archive" 720874}
Note: Your screen may display different attribute
values. The Cert. Rev. # attribute appears only if
you have purchased and installed additional
software into the calculator.

Appendix A: Functions and Instructions 191


getDate() CATALOG
getDate() ⇒ list getDate() ¸ {2002 2 22}

Returns a list giving the date according to the


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

getDenom() MATH/Algebra/Extract menu


getDenom(expression1) ⇒ expression getDenom((x+2)/(yì 3)) ¸ y ì 3
Transforms expression1 into one having a reduced getDenom(2/7) ¸ 7
common denominator, and then returns its
denominator. getDenom(1/x+(y^2+y)/y^2) ¸
xø y

getDtFmt() CATALOG
getDtFmt() ⇒ integer Integer values:
Returns an integer representing the date format 1 = MM/DD/YY
that is currently set on the device.
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 1 = MM/DD/YY
date format. For example, a returned string of
28/09/02 represents the 28th day of September, 2 = DD/MM/YY
2002 (when the date format is set to
DD/MM/YY). 3 = MM.DD.YY

If you enter the optional integer that corresponds 4 = DD.MM.YY


to a date format, the string returns the current
date in the specified format. 5 = YY.MM.DD

6 = MM-DD-YY

7 = DD-MM-YY

8 = YY-MM-DD

getFold() CATALOG
getFold() ⇒ nameString getFold() ¸ "main"
Returns the name of the current folder as a string. getFold()! oldfoldr ¸ "main"

oldfoldr ¸ "main"

192 Appendix A: Functions and Instructions


getKey() CATALOG
getKey() ⇒ integer Program listing:
Returns the key code of the key pressed. Returns :Disp
0 if no key is pressed. :Loop
The prefix keys (shift ¤, second function 2, : getKey()! key
option ¥, alpha j, and drag ‚) are not : while key=0
recognized by themselves; however, they modify : getKey()! key
the keycodes of the key that follows them. For : EndWhile
example: ¥ Ù ƒ Ù ƒ 2 Ù. : Disp key
For a listing of key codes, see Appendix B. : If key = ord("a")
: Stop
:EndLoop

getMode() CATALOG
getMode(modeNameString) ⇒ string getMode("angle") ¸ "RADIAN"
getMode("ALL") ⇒ ListStringPairs
getMode("graph") ¸ "FUNCTION"
If the argument is a specific mode name, returns
a string containing the current setting for that getMode("all") ¸
mode. {"Graph" "FUNCTION"
If the argument is "ALL", returns a list of string "Display Digits" "FLOAT 6"
pairs containing the settings of all the modes. If "Angle" "RADIAN"
you want to restore the mode settings later, you "Exponential Format" "NORMAL"
must store the getMode("ALL") result in a "Complex Format" "REAL"
variable, and then use setMode() to restore the "Vector Format" "RECTANGULAR"
modes. "Pretty Print" "ON"
For a listing of mode names and possible settings, "Split Screen" "FULL"
see setMode(). "Split 1 App" "Home"
"Split 2 App" "Graph"
Note: To set or return information about the "Number of Graphs" "1"
Unit System mode, use setUnits() or getUnits()
"Graph 2" "FUNCTION"
instead of setMode() or getMode().
"Split Screen Ratio" "1,1"
"Exact/Approx" "AUTO"
"Base" "DEC"}
Note: Your screen may display different
mode settings.

getNum() MATH/Algebra/Extract menu


getNum(expression1) ⇒ expression getNum((x+2)/(yì 3)) ¸ x+2
Transforms expression1 into one having a reduced getNum(2/7) ¸ 2
common denominator, and then returns its
numerator. getNum(1/x+1/y) ¸ x+y

getTime() CATALOG
getTime() ⇒ list

Returns a list giving the time according to the


current value of the clock. The list is in
{hour,minute,second} format. The time is returned
in the 24 hour format.

getTmFmt() CATALOG
getTmFmt() ⇒ integer Integer values:
Returns an integer representing the clock time 12 = 12 hour clock
format that is currently set on the device.
24 = 24 hour clock

Appendix A: Functions and Instructions 193


getTmStr() CATALOG
getTmStr([integer]) ⇒ string Optional integer values:
Returns a string of the current clock time in the 12 = 12 hour clock
current time format.
24 = 24 hour clock
If you enter the optional integer that corresponds
to a clock time format, the string returns the
current time in the specified format.

getTmZn() CATALOG
getTmZn() ⇒ integer If Greenwich Mean Time is 14:07:07, it is:
Returns an integer representing the time zone 8:07:07 a.m. in Denver, Colorado (Mountain
that is currently set on the device. Daylight Time)
The returned integer represents the number of (–360 minutes from GMT)
minutes the time zone is offset from Greenwich
Mean Time (GMT), as established in Greenwich, 16:07:07 p.m. in Brussels, Belgium (Central
England. For example, if the time zone is offset European Standard Time)
from GMT by two hours, the device would return (+120 minutes from GMT)
120 (minutes).
Integers for time zones west of GMT are
negative.
Integers for time zones east of GMT are positive.

getType() CATALOG
getType(var) ⇒ string {1,2,3}! temp ¸ {1 2 3}
getType(temp) ¸ "LIST"
Returns a string indicating the data type of
variable var. 2+3i! temp ¸ 2 + 3i
If var has not been defined, returns the string getType(temp) ¸ "EXPR"
"NONE".
DelVar temp ¸ Done
getType(temp) ¸ "NONE"

Data Type Variable Contents


"ASM" Assembly-language program
"DATA" Data type
"EXPR" Expression (includes complex/arbitrary/undefined, ˆ, ë ˆ, TRUE, FALSE, pi,
e)
"FUNC" Function
"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

194 Appendix A: Functions and Instructions


getUnits() CATALOG
getUnits() ⇒ list getUnits() ¸
{"SI" "Area" "NONE"
Returns a list of strings that contain the current
default units for all categories except constants, "Capacitance" "_F"
temperature, amount of substance, luminous "Charge" "_coul"
intensity, and acceleration. list has the form: … }

{"system" "cat1" "unit1" "cat2" "unit2" …} Note: Your screen may display different
default units.
The first string gives the system (SI, ENG/US, or
CUSTOM). Subsequent pairs of strings give a
category (such as Length) and its default unit
(such as _m for meters).
To set the default units, use setUnits().

Goto CATALOG
Goto labelName Program segment:
Transfers program control to the label labelName. ©
:0! temp
labelName must be defined in the same program
using a Lbl instruction. :1! i
:Lbl TOP
: temp+i! temp
: If i<10 Then
: i+1! i
: Goto TOP
: EndIf
:Disp temp
©

Graph CATALOG
Graph expression1[, expression2] [, var1] [, var2] In function graphing mode and ZoomStd
window:
The Smart Graph feature graphs the requested
expressions/ functions using the current graphing Graph 1.25aù cos(a),a ¸
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 In parametric graphing mode and ZoomStd
are ignored. window:
If you omit an optional var argument, Graph uses Graph
the independent variable of the current graphing time,2cos(time)/time,time ¸
mode.
Note: Not all optional arguments are valid in all
modes because you can never have all four
arguments at the same time.

Appendix A: Functions and Instructions 195


Some valid variations of this instruction are: In 3D graphing mode:
Function graphing Graph expr, x Graph (v^2 ì w^2)/4,v,w ¸
Parametric graphing Graph xExpr, yExpr, t

Polar graphing Graph expr, q

Sequence graphing Not allowed.


3D graphing Graph expr, x, y

Diff Equations graphing Not allowed.


Note: Use ClrGraph to clear these functions, or
go to the Y= Editor to re-enable the system Y=
functions.

4Hex MATH/Base menu


integer1 4Hex ⇒ integer 256 4Hex ¸ 0h100
Converts integer1 to a hexadecimal number. 0b111100001111 4Hex ¸ 0hF0F
Binary or hexadecimal numbers always have a 0b
or 0h prefix, respectively.
Zero, not the letter O, followed by b or h.
0b binaryNumber
0h hexadecimalNumber
A binary number can have up to
32 digits. A hexadecimal number
can have up to 8.
Without a prefix, integer1 is treated as decimal
(base 10). The result is displayed in hexadecimal,
regardless of the Base mode.
If you enter a decimal integer that is too large for
a signed, 32-bit binary form, a symmetric modulo
operation is used to bring the value into the
appropriate range.

identity() MATH/Matrix menu


identity(expression) ⇒ matrix identity(4) ¸
Returns the identity matrix with a dimension of 1 0 0 0
expression. 0 1 0 0
0 0 1 0
expression must evaluate to a positive integer. 0 0 0 1

If CATALOG
If Boolean expression If Boolean expression Then Program segment:
statement block
EndIf ©
:If x<0
If Boolean expression evaluates to true, executes :Disp "x is negative"
the single statement statement or the block of ©
statements block before continuing execution. —or—
If Boolean expression evaluates to false, continues ©
execution without executing the statement or :If x<0 Then
block of statements.
: Disp "x is negative"
block can be either a single statement or a : abs(x)! x
sequence of statements separated with the “:” :EndIf
character. ©

196 Appendix A: Functions and Instructions


If Boolean expression Then Program segment:
block1
Else ©
block2 :If x<0 Then
EndIf : Disp "x is negative"
: Else
If Boolean expression evaluates to true, executes
: Disp "x is positive or
block1 and then skips block2.
zero"
If Boolean expression evaluates to false, skips :EndIf
block1 but executes block2. ©
block1 and block2 can be a single statement.
If Boolean expression1 Then Program segment:
block1
ElseIf Boolean expression2 Then ©
block2 :If choice=1 Then
© : Goto option1
ElseIf Boolean expressionN Then : ElseIf choice=2 Then
blockN : Goto option2
EndIf : ElseIf choice=3 Then
Allows for program branching. If Boolean : Goto option3
expression1 evaluates to true, executes block1. If : ElseIf choice=4 Then
Boolean expression1 evaluates to false, evaluates : Disp "Exiting Program"
Boolean expression2, etc. : Return
:EndIf
©

imag() MATH/Complex menu


imag(expression1) ⇒ expression imag(1+2i) ¸ 2
imag(expression1) returns the imaginary part of imag(z) ¸ 0
the argument.
imag(x+iy) ¸ y
Note: All undefined variables are treated as real
variables. See also real().
imag(list1) ⇒ list imag({ë 3,4ë i,i}) ¸ {0 ë 1 1}
Returns a list of the imaginary parts of the
elements.
imag(matrix1) ⇒ matrix 0 0
imag([a,b;ic,id]) ¸ [c d]
Returns a matrix of the imaginary parts of the
elements.

Indirection See #(), page 273.

Input CATALOG
Input Program segment:
Pauses the program, displays the current Graph ©
screen, and lets you update variables xc and yc :¦ Get 10 points from the Graph
(also rc and qc for polar coordinate mode) by Screen
positioning the graph cursor. :For i,1,10
When you press ¸, the program resumes. : Input
: xc! XLIST[i]
: yc! YLIST[i]
:EndFor
©

Appendix A: Functions and Instructions 197


Input [promptString,] var Program segment:
Input [promptString], var pauses the program, ©
displays promptString on the Program I/O screen, :For i,1,9,1
waits for you to enter an expression, and stores : "Enter x" & string(i)! str1
the expression in variable var. : Input str1,#(right(str1,2))
If you omit promptString, “?” is displayed as a :EndFor
prompt. ©

InputStr CATALOG
InputStr [promptString,] var Program segment:
Pauses the program, displays promptString on the ©
Program I/O screen, waits for you to enter a :InputStr "Enter Your Name",str1
response, and stores your response as a string in ©
variable var.
If you omit promptString, “?” is displayed as a
prompt.
Note: The difference between Input and
InputStr is that InputStr always stores the
result as a string so that “ ” are not required.

inString() MATH/String menu


inString(srcString, subString[, start]) ⇒ integer inString("Hello there","the")
¸ 7
Returns the character position in string srcString at
which the first occurrence of string subString "ABCEFG"! s1:If inString(s1,
begins. "D")=0:Disp "D not found."
¸
start, if included, specifies the character position
D not found.
within srcString where the search begins. Default
= 1 (the first character of srcString).
If srcString does not contain subString or start is >
the length of srcString, returns zero.

int() CATALOG
int(expression) ⇒ integer int(ë 2.5) ¸ ë 3.
int(list1) ⇒ list
int(matrix1) ⇒ matrix int([-1.234,0,0.37]) ¸
[-2. 0 0.]
Returns the greatest integer that is less than or
equal to the argument. This function is identical
to floor().
The argument can be a real or a complex number.
For a list or matrix, returns the greatest integer of
each of the elements.

intDiv() CATALOG
intDiv(number1, number2) ⇒ integer intDiv(ë 7,2) ¸ ë3
intDiv(list1, list2) ⇒ list
intDiv(matrix1, matrix2) ⇒ matrix intDiv(4,5) ¸ 0
Returns the signed integer part of argument 1 intDiv({12,ë 14,ë 16},{5,4,ë 3})
divided by argument 2. ¸
{2 ë 3 5}
For lists and matrices returns the signed integer
part of argument 1 divided by argument 2 for
each element pair.

integrate See ‰(), page 272.

198 Appendix A: Functions and Instructions


iPart() MATH/Number menu
iPart(number) ⇒ integer iPart(ë 1.234) ¸ ë 1.
iPart(list1) ⇒ list
iPart(matrix1) ⇒ matrix iPart({3/2,ë 2.3,7.003}) ¸
{1 ë 2. 7.}
Returns the integer part of the argument.
For lists and matrices, returns the integer part of
each element.
The argument can be a real or a complex number.

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.

isPrime() MATH/Test menu


isPrime(number) ⇒ Boolean constant expression IsPrime(5) ¸ true
IsPrime(6) ¸ false
Returns true or false to indicate if number is a
whole number ‚ 2 that is evenly divisible only by
itself and 1. Function to find the next prime after a
If number exceeds about 306 digits and has no specified number:
factors c 1021, isPrime(number) displays an error Define nextPrim(n)=Func:Loop:
message. n+1! n:if isPrime(n):return n:
If you merely want to determine if number is EndLoop:EndFunc ¸ Done
prime, use isPrime() instead of factor(). It is
much faster, particularly if number is not prime nextPrim(7) ¸ 11
and has a second-largest factor that exceeds
about five digits.

Item CATALOG
Item itemNameString See Custom example.
Item itemNameString, label

Valid only within a Custom...EndCustm or


ToolBar...EndTBar block. Sets up a drop-down
menu element to let you paste text to the cursor
position (Custom) or branch to a label
(ToolBar).
Note: Branching to a label is not allowed within
a Custom block.

Lbl CATALOG
Lbl labelName Program segment:
Defines a label with the name labelName in the ©
program. :Lbl lbl1
You can use a Goto labelName instruction to :InputStr "Enter password",
transfer program control to the instruction str1
immediately following the label. :If str1ƒpassword
: Goto lbl1
labelName must meet the same naming :Disp "Welcome to ..."
requirements as a variable name. ©

Appendix A: Functions and Instructions 199


lcm() MATH/Number menu
lcm(number1, number2) ⇒ expression lcm(6,9) ¸ 18
lcm(list1, list2) ⇒ list
lcm(matrix1, matrix2) ⇒ matrix lcm({1/3,ë 14,16},{2/15,7,5})
¸
Returns the least common multiple of the two {2/3 14 80}
arguments. The lcm of two fractions is the lcm
of their numerators divided by the gcd of their
denominators. The lcm of fractional floating-
point numbers is their product.
For two lists or matrices, returns the least
common multiples of the corresponding elements.

left() MATH/String menu


left(sourceString[, num]) ⇒ string left("Hello",2) ¸ "He"
Returns the leftmost num characters contained in
character string sourceString.
If you omit num, returns all of sourceString.
left(list1[, num]) ⇒ list left({1,3,ë 2,4},3) ¸
{1 3 ë 2}
Returns the leftmost num elements contained in
list1.
If you omit num, returns all of list1.
left(comparison) ⇒ expression left(x<3) ¸ x
Returns the left-hand side of an equation or
inequality.

limit() MATH/Calculus menu


limit(expression1, var, point[, direction]) ⇒ limit(2x+3,x,5) ¸ 13
expression
limit(list1, var, point[, direction]) ⇒ list limit(1/x,x,0,1) ¸ ˆ
limit(matrix1, var, point[, direction]) ⇒ matrix
limit(sin(x)/x,x,0) ¸ 1
Returns the limit requested.
limit((sin(x+h)-sin(x))/h,h,0)
direction: negative=from left, positive=from right, ¸
otherwise=both. (If omitted, direction defaults to cos(x)
both.)
limit((1+1/n)^n,n,ˆ) ¸ e
Limits at positive ˆ and at negative ˆ are always
converted to one-sided limits from the finite side.
Depending on the circumstances, limit() returns
itself or undef when it cannot determine a unique
limit. This does not necessarily mean that a
unique limit does not exist. undef means that the
result is either an unknown number with finite or
infinite magnitude, or it is the entire set of such
numbers.

200 Appendix A: Functions and Instructions


limit() uses methods such as L’Hopital’s rule, so limit(a^x,x,ˆ) ¸ undef
there are unique limits that it cannot determine. If
expression1 contains undefined variables other limit(a^x,x,ˆ)|a>1 ¸ ˆ
than var, you might have to constrain them to
obtain a more concise result. limit(a^x,x,ˆ)|a>0 and a<1
¸ 0
Limits can be very sensitive to rounding error.
When possible, avoid the APPROX setting of the
Exact/Approx mode and approximate numbers
when computing limits. Otherwise, limits that
should be zero or have infinite magnitude
probably will not, and limits that should have
finite non-zero magnitude might not.

Line CATALOG
Line xStart, yStart, xEnd, yEnd[, drawMode] In the ZoomStd window, draw a line and then
erase it.
Displays the Graph screen and draws, erases, or
inverts a line segment between the window Line 0,0,6,9 ¸
coordinates (xStart, yStart) and (xEnd, yEnd),
including both endpoints.
If drawMode = 1, draws the line (default).
If drawMode = 0, turns off the line.
If drawMode = ë 1, turns a line that is on to off or
off to on (inverts pixels along the line).
@ "
Note: Regraphing erases all drawn items. See
also PxlLine. H ¥"

Line 0,0,6,9,0 ¸

LineHorz CATALOG
LineHorz y [, drawMode] In a ZoomStd window:
Displays the Graph screen and draws, erases, or LineHorz 2.5 ¸
inverts a horizontal line at window position y.
If drawMode = 1, draws the line (default).
If drawMode = 0, turns off the line.
If drawMode = ë 1, turns a line that is on to off or
off to on (inverts pixels along the line).
Note: Regraphing erases all drawn items. See
also PxlHorz.

LineTan CATALOG
LineTan expression1, expression2 In function graphing mode and a ZoomTrig
window:
Displays the Graph screen and draws a line
tangent to expression1 at the point specified. Graph cos(x)
expression1 is an expression or the name of a @ "
function, where x is assumed to be the H ¥"
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.

Appendix A: Functions and Instructions 201


LineVert CATALOG
LineVert x [, drawMode] In a ZoomStd window:
Displays the Graph screen and draws, erases, or LineVert ë 2.5 ¸
inverts a vertical line at window position x.
If drawMode = 1, draws the line (default).
If drawMode = 0, turns off the line.
If drawMode = ë 1, turns a line that is on to off or
off to on (inverts pixels along the line).
Note: Regraphing erases all drawn items. See
also PxlVert.

LinReg MATH/Statistics/Regressions menu


LinReg list1, list2[, [list3] [, list4, list5]] In function graphing mode:
Calculates the linear regression and updates all {0,1,2,3,4,5,6}! L1 ¸
the system statistics variables. {0 1 2 ...}
All the lists must have equal dimensions except {0,2,3,4,3,4,6}! L2 ¸
for list5. {0 2 3 ...}
LinReg L1,L2 ¸ Done
list1 represents xlist.
ShowStat ¸
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Note: list1 through list4 must be a variable name ¸


or c1–c99 (columns in the last data variable Regeq(x)"y1(x) ¸ Done
shown in the Data/Matrix Editor). list5 does not NewPlot 1,1,L1,L2 ¸ Done
have to be a variable name and cannot be c1–
c99. ¥%

@list() MATH/List menu


list ( list1 ) ⇒ list @list({20,30,45,70}) ¸
{10,15,25}
Returns a list containing the differences between
consecutive elements in list1. Each element of list1
is subtracted from the next element of list1. The
resulting list is always one element shorter than
the original list1.

list4mat() MATH/List menu


list4mat( list [, elementsPerRow]) ⇒ matrix list4mat({1,2,3}) ¸ [1 2 3]
Returns a matrix filled row-by-row with the list4mat({1,2,3,4,5},2) ¸
elements from list.
 1 2
elementsPerRow, if included, specifies the number  3 4
of elements per row. Default is the number of  5 0
elements in list (one row).
If list does not fill the resulting matrix, zeros are
added.

202 Appendix A: Functions and Instructions


ln() @ 2 x key H x key
ln(expression1) ⇒ expression ln(2.0) ¸ .693...
ln(list1) ⇒ list
If complex format mode is REAL:
Returns the natural logarithm of the argument.
ln({ë 3,1.2,5}) ¸
For a list, returns the natural logarithms of the Error: Non-real result
elements.
If complex format mode is RECTANGULAR:
ln({ë 3,1.2,5}) ¸
{ln(3) + pø i .182... ln(5)}

ln(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular


complex format mode:
Returns the matrix natural logarithm of
squareMatrix1. This is not the same as calculating ln([1,5,3;4,2,1;6,ë 2,1]) ¸
the natural logarithm of each element. For
information about the calculation method, refer 1.831…+1.734…øi .009…ì 1.490…øi …

to cos() on. .448…ì.725…øi 1.064…+.623øi … 
ë.266…ì 2.083…øi 1.124…+1.790…øi … 
squareMatrix1 must be diagonalizable. The result
always contains floating-point numbers.

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 {1,2,2,3,3,3,4,4}! L2 ¸
for list5. {1 2 2 ...}
LnReg L1,L2 ¸ Done
list1 represents xlist.
ShowStat ¸
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.
Note: list1 through list4 must be a variable name
or c1–c99 (columns in the last data variable
shown in the Data/Matrix Editor). list5 does not
have to be a variable name and cannot be c1– ¸
c99. Regeq(x)"y1(x) ¸ Done
NewPlot 1,1,L1,L2 ¸ Done
¥%

Appendix A: Functions and Instructions 203


Local CATALOG
Local var1[, var2] [, var3] ... Program listing:
Declares the specified vars as local variables. :prgmname()
Those variables exist only during evaluation of a :Prgm
program or function and are deleted when the :Local x,y
program or function finishes execution.
:Input "Enter x",x
Note: Local variables save memory because they :Input "Enter y",y
only exist temporarily. Also, they do not disturb :Disp xù y
any existing global variable values. Local :EndPrgm
variables must be used for For loops and for
temporarily saving values in a multi-line function Note: x and y do not exist after the program
since modifications on global variables are not executes.
allowed in a function.

Lock CATALOG
Lock var1[, var2] ... {1,2,3,4}! L1 ¸ {1,2,3,4}
Locks the specified variables. This prevents you Lock L1 ¸ Done
from accidentally deleting or changing the
variable without first using the unlock instruction DelVar L1 ¸
on that variable. Error: Variable is locked or protected
In the example to the right, the variable L1 is
locked and cannot be deleted or modified.
Note: The variables can be unlocked using the
Unlock command.

log() CATALOG
log(expression1) ⇒ expression log(2.0) ¸ .301...
log(list1) ⇒ list
If complex format mode is REAL:
Returns the base-10 logarithm of the argument.
log({ë 3,1.2,5}) ¸
For a list, returns the base-10 logs of the Error: Non-real result
elements.
If complex format mode is RECTANGULAR:
log({ë 3,1.2,5}) ¸
ln(3) p ln(5)
{ln(10) + ln(10) øi .079... ln(10)}
log(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular
complex format mode:
Returns the matrix base-10 logarithm of
squareMatrix1. This is not the same as calculating log([1,5,3;4,2,1;6,ë 2,1]) ¸
the base-10 logarithm of each element. For
information about the calculation method, refer
to cos(). .795…+.753…øi .003…ì.647…øi … 
squareMatrix1 must be diagonalizable. The result .194…ì.315…øi .462…+.270øi … 
always contains floating-point numbers. ë.115…ì.904…øi .488…+.777…øi … 

204 Appendix A: Functions and Instructions


Logistic MATH/Statistics/Regressions menu
Logistic list1, list2 [ , [iterations] , [list3] [, list4, list5] ] In function graphing mode:
Calculates the logistic regression and updates all {1,2,3,4,5,6}! L1 ¸ {1 2 3 …}
the system statistics variables.
{1,1.3,2.5,3.5,4.5,4.8}! L2
All the lists must have equal dimensions except
¸
for list5.
{1 1.3 2.5 …}
list1 represents xlist.
Logistic L1,L2 ¸ Done
list2 represents ylist.
list3 represents frequency. ShowStat ¸
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 regeq(x)! y1(x) ¸ Done
or c1–c99 (columns in the last data variable NewPlot 1,1,L1,L2 ¸ Done
shown in the Data/Matrix Editor). list5 does not ¥%
have to be a variable name and cannot be c1–c99 „9
.

Loop CATALOG
Loop Program segment:
block
EndLoop ©
:1! i
Repeatedly executes the statements in block. Note :Loop
that the loop will be executed endlessly, unless a : Rand(6)! die1
Goto or Exit instruction is executed within block. : Rand(6)! die2

block is a sequence of statements separated with : If die1=6 and die2=6


the “:” character. : Goto End
: i+1! i
:EndLoop
:Lbl End
:Disp "The number of rolls is", i
©

Appendix A: Functions and Instructions 205


LU MATH/Matrix menu
LU matrix, lMatName, uMatName, pMatName[, tol] [6,12,18;5,14,31;3,8,18]!m1
¸
Calculates the Doolittle LU (lower-upper)
decomposition of a real or complex matrix. The
6 12 18
lower triangular matrix is stored in lMatName, the 5 14 31
upper triangular matrix in uMatName, and the 3 8 18
permutation matrix (which describes the row
swaps done during the calculation) in pMatName. LU m1,lower,upper,perm ¸Done
lMatName ù uMatName = pMatName ù matrix
1 0 0
Optionally, any matrix element is treated as zero lower ¸ 5/6 1 0
if its absolute value is less than tol. This tolerance 1/2 1/2 1
is used only if the matrix has floating-point
entries and does not contain any symbolic 6 12 18
variables that have not been assigned a value. upper ¸ 0 4 16
Otherwise, tol is ignored. 0 0 1 
• If you use ¥ ¸ or set the mode to
1 0 0
Exact/Approx=APPROXIMATE, computations perm ¸ 0 1 0
are done using floating-point arithmetic. 0 0 1
• If tol is omitted or not used, the default
tolerance is calculated as:
5Eë 14 ù max(dim(matrix)) m n
ù rowNorm(matrix) [m,n;o,p]!m1 ¸ o p
The LU factorization algorithm uses partial LU m1,lower,upper,perm ¸Done
pivoting with row interchanges.
1 0
lower ¸ m 1
o 
o p 
upper ¸ 0 n ì o 
møp
 
0 1
perm ¸ 1 0

206 Appendix A: Functions and Instructions


mat4list() MATH/List menu
mat4list(matrix) ⇒ list mat4list([1,2,3]) ¸ {1 2 3}
Returns a list filled with the elements in matrix. [1,2,3;4,5,6]! M1 ¸
The elements are copied from matrix row by row. 1 2 3
[4 5 6]
mat4list(M1) ¸ {1 2 3 4 5 6}

max() MATH/List menu


max(expression1, expression2) ⇒ expression max(2.3,1.4) ¸ 2.3
max(list1, list2) ⇒ list
max(matrix1, matrix2) ⇒ matrix max({1,2},{ë 4,3}) ¸ {1 3}

Returns the maximum of the two arguments. If


the arguments are two lists or matrices, returns a
list or matrix containing the maximum value of
each pair of corresponding elements.
max(list) ⇒ expression max({0,1,ë 7,1.3,.5}) ¸ 1.3
Returns the maximum element in list.
max(matrix1) ⇒ matrix max([1,ë 3,7;ë 4,0,.3]) ¸
[1 0 7]
Returns a row vector containing the maximum
element of each column in matrix1.
Note: See also fMax() and min().

mean() MATH/Statistics menu


mean(list[, freqlist]) ⇒ expression mean({.2,0,1,ë.3,.4}) ¸ .26
Returns the mean of the elements in list.
Each freqlist element counts the number of mean({1,2,3},{3,2,1}) ¸ 5/3
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 mean([.2,0;L1,3;.4,L.5]) ¸
columns in matrix1. [L.133... .833...]
Each freqmatrix element counts the number of mean([1/5,0;L1,3;2/5,L1/2])
consecutive occurrences of the corresponding ¸
element in matrix1. [ë 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 median([.2,0;1,ë.3;.4,ë.5])
¸
Returns a row vector containing the medians of [.4 ë.3]
the columns in matrix1.
Note: All entries in the list or matrix must
simplify to numbers.

Appendix A: Functions and Instructions 207


MedMed MATH/Statistics/Regressions menu
MedMed list1, list2[, [list3] [, list4, list5]] In function graphing mode:
Calculates the median-median line and updates {0,1,2,3,4,5,6}! L1 ¸ {0 1 2 ...}
all the system statistics variables. {0,2,3,4,3,4,6}! L2 ¸ {0 2 3 ...}
All the lists must have equal dimensions except MedMed L1,L2 ¸ Done
for list5. ShowStat ¸
list1 represents xlist.
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.
Note: list1 through list4 must be a variable name
¸
or c1–c99 (columns in the last data variable
shown in the Data/Matrix Editor). list5 does not Regeq(x)! y1(x) ¸ Done
have to be a variable name and cannot be c1– NewPlot 1,1,L1,L2 ¸ Done
c99. ¥%

mid() MATH/String menu


mid(sourceString, start[, count]) ⇒ string mid("Hello there",2) ¸
"ello there"
Returns count characters from character string
sourceString, beginning with character number mid("Hello there",7,3) ¸
start. "the"
If count is omitted or is greater than the
mid("Hello there",1,5) ¸
dimension of sourceString, returns all characters
from sourceString, beginning with character
number start. "Hello"

count must be ‚ 0. If count = 0, returns an empty mid("Hello there",1,0) ¸


string. ""

mid(sourceList, start [, count]) ⇒ list mid({9,8,7,6},3) ¸ {7 6}


Returns count elements from sourceList, beginning mid({9,8,7,6},2,2) ¸ {8 7}
with element number start.
mid({9,8,7,6},1,2) ¸ {9 8}
If count is omitted or is greater than the
dimension of sourceList, returns all elements from mid({9,8,7,6},1,0) ¸ {}
sourceList, beginning with element number start.
count must be ‚ 0. If count = 0, returns an empty
list.
mid(sourceStringList, start[, count]) ⇒ list mid({"A","B","C","D"},2,2)
¸
Returns count strings from the list of strings {"B" "C"}
sourceStringList, beginning with element number
start.

208 Appendix A: Functions and Instructions


min() MATH/List menu
min(expression1, expression2) ⇒ expression min(2.3,1.4) ¸ 1.4
min(list1, list2) ⇒ list
min(matrix1, matrix2) ⇒ matrix min({1,2},{ë 4,3}) ¸ {ë 4 2}

Returns the minimum of the two arguments. If


the arguments are two lists or matrices, returns a
list or matrix containing the minimum value of
each pair of corresponding elements.
min(list) ⇒ expression min({0,1,ë 7,1.3,.5}) ¸ ë7
Returns the minimum element of list.
min(matrix1) ⇒ matrix min([1,ë 3,7;ë 4,0,.3]) ¸
[ë 4 ë 3 .3]
Returns a row vector containing the minimum
element of each column in matrix1.
Note: See also fMin() and max().

mod() MATH/Number menu


mod(expression1, expression2) ⇒ expression mod(7,0) ¸ 7
mod(list1, list2) ⇒ list
mod(matrix1, matrix2) ⇒ matrix mod(7,3) ¸ 1

Returns the first argument modulo the second mod(ë 7,3) ¸ 2


argument as defined by the identities:
mod(7,ë 3) ¸ ë2
mod(x,0) r x
mod(x,y) r xì y floor(x/y) mod(ë 7,ë 3) ¸ ë1
When the second argument is non-zero, the result mod({12,ë 14,16},{9,7,ë 5}) ¸
is periodic in that argument. The result is either {3 0 ë 4}
zero or has the same sign as the second
argument.
If the arguments are two lists or two matrices,
returns a list or matrix containing the modulo of
each pair of corresponding elements.
Note: See also remain().

MoveVar CATALOG
MoveVar var, oldFolder, newFolder {1,2,3,4}! L1 ¸ {1 2 3 4}
MoveVar L1,Main,Games ¸ Done
Moves variable var from oldFolder to newFolder. If
newFolder does not exist, MoveVar creates it.

mRow() MATH/Matrix/Row ops menu


mRow(expression, matrix1, index) ⇒ matrix mRow(ë 1/3,[1,2;3,4],2) ¸
1 2
Returns a copy of matrix1 with each element in [ë 1 ë 4/3]
row index of matrix1 multiplied by expression.

mRowAdd() MATH/Matrix/Row ops menu


mRowAdd(expression, matrix1, index1, index2) mRowAdd(ë 3,[1,2;3,4],1,2) ¸
⇒ matrix 1 2
[0 L2]
Returns a copy of matrix1 with each element in
row index2 of matrix1 replaced with: mRowAdd(n,[a,b;c,d],1,2) ¸
expression × row index1 + row index2 a b
[aø n+c bø n+d]

Appendix A: Functions and Instructions 209


nCr() MATH/Probability menu
nCr(expression1, expression2) ⇒ expression zø (zì 2)ø (zì 1)
nCr(z,3)
For integer expression1 and expression2 with 6
expression1 ‚ expression2 ‚ 0, nCr() is the number ans(1)|z=5 10
of combinations of expression1 things taken
expression2 at a time. (This is also known as a z!
binomial coefficient.) Both arguments can be nCr(z,c) c!(zì c)!
integers or symbolic expressions.
nCr(expression, 0) ⇒ 1 1
ans(1)/nPr(z,c)
c!
nCr(expression, negInteger) ⇒ 0

nCr(expression, posInteger) ⇒
expressionø (expressionì 1)... (expressionì posInteger+1)/
posInteger!
nCr(expression, nonInteger) ⇒ expression!/
((expressionì nonInteger)!ø nonInteger!)

nCr(list1, list2) ⇒ list nCr({5,4,3},{2,4,2}) ¸


{10 1 3}
Returns a list of combinations based on the
corresponding element pairs in the two lists. The
arguments must be the same size list.
nCr(matrix1, matrix2) ⇒ matrix nCr([6,5;4,3],[2,2;2,2]) ¸
15 10
Returns a matrix of combinations based on the [6
corresponding element pairs in the two matrices. 3 ]
The arguments must be the same size matrix.

nDeriv() MATH/Calculus menu


nDeriv(expression1, var[, h]) ⇒ expression nDeriv(cos(x),x,h) ¸
nDeriv(expression1, var, list) ⇒ list ë (cos(xì h)ì cos(x+h))
nDeriv(list, var[, h]) ⇒ list
2ø h
nDeriv(matrix, var[, h]) ⇒ matrix
limit(nDeriv(cos(x),x,h),h,0)
Returns the numerical derivative as an
¸
expression. Uses the central difference quotient
ë sin(x)
formula.
h is the step value. If h is omitted, it defaults to nDeriv(x^3,x,0.01) ¸
0.001. 3.ø (xñ +.000033)

When using list or matrix, the operation gets nDeriv(cos(x),x)|x=p/2 ¸


mapped across the values in the list or across the ë 1.
matrix elements.
nDeriv(x^2,x,{.01,.1}) ¸
Note: See also avgRC() and d(). {2.øx 2.øx}

NewData CATALOG
NewData dataVar, list1[, list2] [, list3]... NewData mydata,{1,2,3},{4,5,6}
¸
Creates data variable dataVar, where the columns Done
are the lists in order.
(Go to the Data/Matrix Editor and open the
Must have at least one list. var mydata to display the data variable
list1, list2, ..., listn can be lists as shown, below.)
expressions that resolve to lists, or list variable
names.
NewData makes the new variable current in
the Data/Matrix Editor.

210 Appendix A: Functions and Instructions


NewData dataVar, matrix

Creates data variable dataVar based on matrix.


NewData sysData, matrix

Loads the contents of matrix into the system data


variable sysData.

NewFold CATALOG
NewFold folderName NewFold games ¸ Done
Creates a user-defined folder with the name
folderName, and then sets the current folder to
that folder. After you execute this instruction, you
are in the new folder.

newList() CATALOG
newList(numElements) ⇒ list newList(4) ¸ {0 0 0 0}
Returns a list with a dimension of numElements.
Each element is zero.

newMat() CATALOG also Math/Matrix menu


newMat(numRows, numColumns) ⇒ matrix 0 0 0
newMat(2,3) ¸ [0 0 0]
Returns a matrix of zeros with the dimension
numRows by numColumns.

NewPic CATALOG
NewPic matrix, picVar [, maxRow][, maxCol] NewPic [1,1;2,2;3,3;4,4;5,5;
5,1;4,2;2,4;1,5],xpic ¸ Done
Creates a pic variable picVar based on matrix.
matrix must be an n×2 matrix in which each row RclPic xpic ¸
represents a pixel. Pixel coordinates start at 0,0.
If picVar already exists, NewPic replaces it.
The default for picVar is the minimum area
required for the matrix values. The optional
arguments, maxRow and maxCol, determine the
maximum boundary limits for picVar.

Appendix A: Functions and Instructions 211


NewPlot CATALOG
NewPlot n, type, xList [,[yList], [frqList], [catList], FnOff ¸ Done
[includeCatList], [mark] [, bucketSize]] PlotsOff ¸ Done
Creates a new plot definition for plot number n. {1,2,3,4}! L1 ¸ {1 2 3 4}
{2,3,4,5}! L2 ¸ {2 3 4 5}
type specifies the type of the graph plot. NewPlot 1,1,L1,L2,,,,4 ¸ Done
1 = scatter plot
2 = xyline plot Press ¥ % to display:
3 = box plot
4 = histogram
5 = modified box plot
mark specifies the display type of the mark.
1 = è (box)
2 = × (cross)
3 = + (plus )
4 = é (square)
5 = ø (dot)
bucketSize is the width of each histogram
“bucket” (type = 4), and will vary based on the
window variables xmin and xmax. bucketSize
must be >0. Default = 1.
Note: n can be 1–9. Lists must be variable names
or c1–c99 (columns in the last data variable
shown in the Data/Matrix Editor), except for
includeCatList, which does not have to be a
variable name and cannot be c1–c99.

NewProb CATALOG
NewProb NewProb ¸ Done
Performs a variety of operations that let you
begin a new problem from a cleared state
without resetting the memory.
• Clears all single-character variable names
(Clear a–z) in the current folder, unless the
variables are locked or archived.
• Turns off all functions and stat plots (FnOff
and PlotsOff) in the current graphing mode.
• Perfoms ClrDraw, ClrErr, ClrGraph,
ClrHome, ClrIO, and ClrTable.

nInt() MATH/Calculus menu


nInt(expression1, var, lower, upper) ⇒ expression nInt(e^(ë x^2),x,ë 1,1) ¸
If the integrand expression1 contains no variable 1.493...
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 nInt(cos(x),x,ë p,p+1í ë 12) ¸
algorithm terminates when it seems likely that ë 1.041...í ë 12
the goal has been achieved, or when it seems
unlikely that additional samples will yield a ‰(cos(x),x,ë p,p+10^(ë 12)) ¸
worthwhile improvement. 1
ë sin( )
A warning is displayed (“Questionable 1000000000000
accuracy”) when it seems that the goal has not
been achieved. ans(1)¥ ¸ ë 1.í ë 12

212 Appendix A: Functions and Instructions


Nest nInt() to do multiple numeric integration. nInt(nInt(e^(ë xù y)/‡(x^2ì y^2),
Integration limits can depend on integration y,ë x,x),x,0,1) ¸ 3.304...
variables outside them.
Note: See also ‰().

norm() MATH/Matrix/Norms menu


norm(matrix) ⇒ expression norm([a,b;c,d]) ¸
Returns the Frobenius norm. añ +bñ +cñ +dñ

norm([1,2;3,4]) ¸ 30

not MATH/Test menu


not Boolean expression1 ⇒ Boolean expression not 2>=3 ¸ true
Returns true, false, or a simplified Boolean not x<2 ¸ x‚2
expression1.
not not innocent ¸ innocent

not integer1 ⇒ integer In Hex base mode:


Returns the one’s complement of a real integer. not 0h7AC36 ¸ 0hFFF853C9
Internally, integer1 is converted to a signed, 32-bit
Important: Zero, not the letter O.
binary number. The value of each bit is flipped (0
becomes 1, and vice versa) for the one’s
complement. Results are displayed according to In Bin base mode:
the Base mode.
0b100101 4 dec ¸ 37
You can enter the integer in any number base.
For a binary or hexadecimal entry, you must use not 0b100101 ¸
the 0b or 0h prefix, respectively. Without a prefix, 0b11111111111111111111111111011010
the integer is treated as decimal (base 10).
ans(1) 4 dec ¸ ë 38
If you enter a decimal integer that is too large for
a signed, 32-bit binary form, a symmetric modulo Note: A binary entry can have up to 32 digits
operation is used to bring the value into the (not counting the 0b prefix). A hexadecimal
appropriate range. entry can have up to 8 digits.
Note: To type the 4 conversion operator,
press 2 p. You can also select base
conversions from the MATH/Base menu.

nPr() MATH/Probability menu


nPr(expression1, expression2) ⇒ expression nPr(z,3) ¸ zø (zì 2)ø (zì 1)
For integer expression1 and expression2 with ans(1)|z=5 ¸ 60
expression1 ‚ expression2 ‚ 0, nPr() is the number
of permutations of expression1 things taken 1
expression2 at a time. Both arguments can be nPr(z,ë 3) ¸(z+1)ø (z+2)ø (z+3)
integers or symbolic expressions.
z!
nPr(expression, 0) ⇒ 1 nPr(z,c) ¸ (zì c)!
nPr(expression, negInteger) ⇒
1/((expression+1)ø (expression+2)... ans(1)ù nPr(zì c,ë c) ¸ 1
(expressionì negInteger))

nPr(expression, posInteger) ⇒
expressionø (expressionì 1)... (expressionì posInteger+1)
nPr(expression, nonInteger) ⇒ expression!/
(expressionì nonInteger)!

Appendix A: Functions and Instructions 213


nPr(list1, list2) ⇒ list nPr({5,4,3},{2,4,2}) ¸
{20 24 6}
Returns a list of permutations based on the
corresponding element pairs in the two lists. The
arguments must be the same size list.
nPr(matrix1, matrix2) ⇒ matrix nPr([6,5;4,3],[2,2;2,2]) ¸
30 20
Returns a matrix of permutations based on the [12
corresponding element pairs in the two matrices. 6]
The arguments must be the same size matrix.

nSolve() MATH/Algebra menu


nSolve(equation, varOrGuess) ⇒ number or error_string nSolve(x^2+5xì 25=9,x) ¸
3.844...
Iteratively searches for one approximate real
numeric solution to equation for its one variable. nSolve(x^2=4,x=ë 1) ¸ ë 2.
Specify varOrGuess as:
nSolve(x^2=4,x=1) ¸ 2.
variable
– or – Note: If there are multiple solutions, you can
variable = real number 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 nSolve(x^2+5xì 25=9,x)|x<0 ¸
zeros(), particularly if the “|” operator is used to ë 8.844...
constrain the search to a small interval containing
exactly one simple solution. nSolve(((1+r)^24ì 1)/r=26,r)|r>
nSolve() attempts to determine either one point 0 and r<.25 ¸ .0068...
where the residual is zero or two relatively close nSolve(x^2=ë 1,x) ¸
points where the residual has opposite signs and
the magnitude of the residual is not excessive. If "no solution found"
it cannot achieve this using a modest number of
sample points, it returns the string “no solution
found.”

If you use nSolve() in a program, you can use


getType() to check for a numeric result before
using it in an algebraic expression.
Note: See also cSolve(), cZeros(), solve(), and
zeros().

OneVar MATH/Statistics menu


OneVar list1 [[, list2] [, list3] [, list4]] {0,2,3,4,3,4,6}! L1 ¸
OneVar L1 ¸ Done
Calculates 1-variable statistics and updates all the
system statistics variables. ShowStat ¸

All the lists must have equal dimensions except


for list4.
list1 represents xlist.
list2 represents frequency.
list3 represents category codes.
list4 represents category include list.
Note: list1 through list3 must be a variable name
or c1–c99 (columns in the last data variable
shown in the Data/Matrix Editor). list4 does not
have to be a variable name and cannot be c1–
c99.

214 Appendix A: Functions and Instructions


or MATH/Test menu
Boolean expression1 or Boolean expression2 ⇒ Boolean x‚3 or x‚4 ¸ x‚3
expression
Program segment:
Returns true or false or a simplified form of the
original entry. ©
If x<0 or x‚5
Returns true if either or both expressions simplify Goto END
to true. Returns false only if both expressions ©
evaluate to false. If choice=1 or choice=2
Note: See xor. Disp "Wrong choice"
©
integer1 or integer2 ⇒ integer In Hex base mode:
Compares two real integers bit-by-bit using an or 0h7AC36 or 0h3D5F ¸ 0h7BD7F
operation. Internally, both integers are converted
Important: Zero, not the letter O.
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 In Bin base mode:
0. The returned value represents the bit results,
and is displayed according to the Base mode. 0b100101 or 0b100 ¸ 0b100101

You can enter the integers in any number base. Note: A binary entry can have up to 32 digits
For a binary or hexadecimal entry, you must use (not counting the 0b prefix). A hexadecimal
the 0b or 0h prefix, respectively. Without a prefix, entry can have up to 8 digits.
integers are treated as decimal (base 10).
If you enter a decimal integer that is too large for
a signed, 32-bit binary form, a symmetric modulo
operation is used to bring the value into the
appropriate range.
Note: See xor.

ord() MATH/String menu


ord(string) ⇒ integer ord("hello") ¸ 104
ord(list1) ⇒ list
char(104) ¸ "h"
Returns the numeric code of the first character in
character string string, or a list of the first ord(char(24)) ¸ 24
characters of each list element.
ord({"alpha","beta"}) ¸
See Appendix B for a complete listing of character {97 98}
codes.

Output CATALOG
Output row, column, exprOrString Program segment:
Displays exprOrString (an expression or character ©
string) on the Program I/O screen at the text :RandSeed 1147
coordinates (row, column). :ClrIO
:For i,1,90,10
An expression can include conversion operations
such as 4DD and 4Rect. You can also use the 4 : Output i, rand(100),"Hello"
operator to perform unit and number base :EndFor
conversions. ©

If Pretty Print = ON, exprOrString is “pretty Result after execution:


printed.”
From the Program I/O screen, you can press ‡ to
display the Home screen, or a program can use
DispHome.

Appendix A: Functions and Instructions 215


P4Rx() MATH/Angle menu
P4Rx(rExpression, qExpression) ⇒ expression In Radian angle mode:
P4Rx(rList, qList) ⇒ list
P4Rx(rMatrix, qMatrix) ⇒ matrix P4Rx(r,q) ¸ cos(q)ø r
Returns the equivalent x-coordinate of the P4Rx(4,60¡) ¸ 2
(r, q) pair.
P4Rx({ë 3,10,1.3},{p/3,ë p/4,0})
Note: The q argument is interpreted as either a ¸
degree or radian angle, according to the current
angle mode. If the argument is an expression, you {ë 3/2 5ø ‡2 1.3 }
can use ó or ô to override the angle mode setting
temporarily.

P4Ry() MATH/Angle menu


P4Ry(rExpression, qExpression) ⇒ expression In Radian angle mode:
P4Ry(rList, qList) ⇒ list
P4Ry(rMatrix, qMatrix) ⇒ matrix P4Ry(r,q) ¸ sin(q)ø r
Returns the equivalent y-coordinate of the P4Ry(4,60¡) ¸ 2ø ‡3
(r, q) pair.
P4Ry({ë 3,10,1.3},{p/3,ë p/4,0})
Note: The q argument is interpreted as either a ¸
degree or radian angle, according to the current
angle mode. If the argument is an expression, you
can use ó or ô to override the angle mode setting
{ë 3ø2 ‡3 ë 5ø ‡2 0. }
temporarily.

part() CATALOG
part(expression1[ ,nonNegativeInteger])

This advanced programming function lets you


identify and extract all of the sub-expressions in
the simplified result of expression1.
For example, if expression1 simplifies to
cos(pù x+3):
• The cos() function has one argument:
(pù x+3).
• The sum of (pù x+3) has two operands: pù x
and 3.
• The number 3 has no arguments or operands.
• The product pù x has two operands: p and x.
• The variable x and the symbolic constant p
have no arguments or operands.
If x has a numeric value and you press ¥ ¸,
the numeric value of pù x is calculated, the result
is added to 3, and then the cosine is calculated.
cos() is the top-level operator because it is
applied last.
part(expression1) ⇒ number part(cos(pù x+3)) ¸ 1
Simplifies expression1 and returns the number of Note: cos(pù x+3) has one argument.
top-level arguments or operands. This returns 0 if
expression1 is a number, variable, or symbolic
constant such as p, e, i, or ˆ.
part(expression1, 0) ⇒ string part(cos(pù x+3),0) ¸ "cos"
Simplifies expression1 and returns a string that
contains the top-level function name or operator.
This returns string(expression1) if expression1 is a
number, variable, or symbolic constant such as p,
e, i, or ˆ.

216 Appendix A: Functions and Instructions


part(expression1, n) ⇒ expression part(cos(pù x+3),1) ¸ 3+pøx
Simplifies expression1 and returns the n th argument Note: Simplification changed the order of the
or operand, where n is > 0 and c the number of argument.
top-level arguments or operands returned by
part(expression1). Otherwise, an error is returned.

By combining the variations of part(), you can part(cos(pù x+3)) ¸ 1


extract all of the sub-expressions in the simplified part(cos(pù x+3),0) ¸ "cos"
result of expression1. As shown in the example to part(cos(pù x+3),1)! temp ¸
the right, you can store an argument or operand 3+pøx
and then use part() to extract further sub-
expressions. temp ¸ pøx+3
part(temp,0) ¸ "+"
Note: When using part(), do not rely on any part(temp) ¸ 2
particular order in sums and products. part(temp,2) ¸ 3
part(temp,1)! temp ¸ pøx
part(temp,0) ¸ "ù "
part(temp) ¸ 2
part(temp,1) ¸ p
part(temp,2) ¸ x
Expressions such as (x+y+z) and (xì yì z) are part(x+y+z) ¸ 2
represented internally as (x+y)+z and (xì y)ì z. part(x+y+z,2) ¸ z
This affects the values returned for the first and part(x+y+z,1) ¸ y+x
second argument. There are technical reasons
why part(x+y+z,1) returns y+x instead of x+y.
Similarly, xù yù z is represented internally as part(xù yù z) ¸ 2
(xù y)ù z. Again, there are technical reasons why part(xù yù z,2) ¸ z
the first argument is returned as yøx instead of part(xù yù z,1) ¸ yøx
xøy.
When you extract sub-expressions from a matrix, part([a,b,c;x,y,z],0) ¸ "{"
remember that matrices are stored as lists of lists,
as illustrated in the example to the right. 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

Appendix A: Functions and Instructions 217


The example Program Editor function to the right :d(y,x)
uses getType() and part() to partially :Func
implement symbolic differentiation. Studying and :Local f
completing this function can help teach you how :If getType(y)="VAR"
to differentiate manually. You could even include
functions that the cannot differentiate, such as : Return when(y=x,1,0,0)
Bessel functions. :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

PassErr CATALOG
PassErr See ClrErr program listing example.
Passes an error to the next level.
If “errornum” is zero, PassErr does not do
anything.
The Else clause in the program should use ClrErr
or PassErr. If the error is to be processed or
ignored, use ClrErr. If what to do with the error
is not known, use PassErr to send it to the next
error handler. (See also ClrErr.)

Pause CATALOG
Pause [expression] Program segment:
Suspends program execution. If you include ©
expression, displays expression on the Program I/O :ClrIO
screen. :DelVar temp
:1"temp[1]
expression can include conversion operations such
as 4DD and 4Rect. You can also use the 4 :1"temp[2]
operator to perform unit and number base :Disp temp[2]
conversions. :¦ Guess the Pattern
:For i,3,20
If the result of expression is too big to fit on a
: temp[iì2]+temp[iì1]"temp[i]
single screen, you can use the cursor pad to scroll
the display. : Disp temp[i]
: Disp temp,"Can you guess
Program execution resumes when you the
press ¸. next","number?"
: Pause
:EndFor
©

218 Appendix A: Functions and Instructions


PlotsOff CATALOG
PlotsOff [1] [, 2] [, 3] ... [, 9] PlotsOff 1,2,5 ¸ Done
Turns off the specified plots for graphing. When PlotsOff ¸ Done
in 2-graph mode, only affects the active graph.
If no parameters, then turns off all plots.

PlotsOn CATALOG
PlotsOn [1] [, 2] [, 3] ... [, 9] PlotsOn 2,4,5 ¸ Done
Turns on the specified plots for graphing. When in PlotsOn ¸ Done
2-graph mode, only affects the active graph.
If you do not include any arguments, turns on all
plots.

4Polar MATH/Matrix/Vector ops menu


vector 4Polar [1,3.] 4Polar ¸
[x,y] 4Polar ¸
Displays vector in polar form [r oq]. The vector
must be of dimension 2 and can be a row or a
column.
Note: 4Polar is a display-format instruction, not
a conversion function. You can use it only at the
end of an entry line, and it does not update ans.
Note: See also 4Rect.
complexValue 4Polar In Radian angle mode:
p
i ( ì tanê(3/4))
Displays complexVector in polar form. 3+4i 4Polar ¸ eø 2 ø5
• Degree angle mode returns (roq). iøp
(4op/3)4Polar ¸ e 3 ø4
• Radian angle mode returns re iq.
complexValue can have any complex form.
However, an re iq entry causes an error in Degree In Degree angle mode:
angle mode. 3+4i 4Polar ¸(5o90ì tanê(3/4))
Note: You must use the parentheses for an (roq)
polar entry.

polyEval() MATH/List menu


polyEval(list1, expression1) ⇒ expression polyEval({a,b,c},x) ¸
polyEval(list1, list2) ⇒ expression aø xñ +bø x+c
Interprets the first argument as the coefficient of polyEval({1,2,3,4},2) ¸ 26
a descending-degree polynomial, and returns the
polynomial evaluated for the value of the second polyEval({1,2,3,4},{2,ë 7})
argument. ¸ {26 ë 262}

Appendix A: Functions and Instructions 219


PopUp CATALOG
PopUp itemList, var PopUp
{"1990","1991","1992"},var1
Displays a pop-up menu containing the character ¸
strings from itemList, waits for you to select an
item, and stores the number of your selection in
var.
The elements of itemList must be character
strings: {item1String, item2String,
item3String, ...}
If var already exists and has a valid item number,
that item is displayed as the default choice.
itemList must contain at least one choice.

PowerReg MATH/Statistics/Regressions menu


PowerReg list1, list2[, [list3] [, list4, list5]] In function graphing mode:
Calculates the power regression and updates all {1,2,3,4,5,6,7}! L1 ¸
the system statistics variables. {1 2 3 ...}
All the lists must have equal dimensions except {1,2,3,4,3,4,6}! L2 ¸
for list5. {1 2 3 ...}
PowerReg L1,L2 ¸ Done
list1 represents xlist.
ShowStat ¸
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.
Note: list1 through list4 must be a variable name
or c1–c99 (columns in the last data variable
shown in the Data/Matrix Editor). list5 does not
have to be a variable name and cannot be c1– ¸
c99. Regeq(x)"y1(x) ¸ Done
NewPlot 1,1,L1,L2 ¸ Done
¥%

Prgm CATALOG
Prgm Program segment:
©
EndPrgm :prgmname()
:Prgm
Required instruction that identifies the beginning :
of a program. Last line of program must be
EndPrgm. :EndPrgm

Product (PI) See Π( ), page 273.

product() MATH/List menu


product(list[, start[, end]]) ⇒ expression product({1,2,3,4}) ¸ 24
Returns the product of the elements contained in product({2,x,y}) ¸ 2ø xø y
list. Start and end are optional. They specify a
range of elements. product({4,5,8,9},2,3) ¸ 40

220 Appendix A: Functions and Instructions


product(matrix1[, start[, end]]) ⇒ matrix product([1,2,3;4,5,6;7,8,9])
¸ [28 80 162]
Returns a row vector containing the products of
the elements in the columns of matrix1. Start and product([1,2,3;4,5,6;7,8,9],
end are optional. They specify a range of rows. 1,2) ¸ [4,10,18]

Prompt CATALOG
Prompt var1[, var2] [, var3] ... Program segment:
Displays a prompt on the Program I/O screen for ©
each variable in the argument list, using the Prompt A,B,C
prompt var1?. Stores the entered expression in ©
the corresponding variable. EndPrgm
Prompt must have at least one argument.

propFrac() MATH/Algebra menu


propFrac(expression1[, var]) ⇒ expression propFrac(4/3) ¸ 1 + 1/3
propFrac(rational_number) returns rational_number propFrac(ë 4/3) ¸ ë 1ì 1/3
as the sum of an integer and a fraction having
the same sign and a greater denominator
magnitude than numerator magnitude.
propFrac(rational_expression,var) returns the sum propFrac((x^2+x+1)/(x+1)+
of proper ratios and a polynomial with respect to (y^2+y+1)/(y+1),x) ¸
var. The degree of var in the denominator exceeds
the degree of var in the numerator in each proper
ratio. Similar powers of var are collected. The
terms and their factors are sorted with var as the
main variable.
If var is omitted, a proper fraction expansion is
done with respect to the most main variable. The propFrac(ans(1))
coefficients of the polynomial part are then made
proper with respect to their most main variable
first and so on.
For rational expressions, propFrac() is a faster
but less extreme alternative to expand().

PtChg CATALOG
PtChg x, y Note: PtChg through PtText show
PtChg xList, yList continuing similar examples.
Displays the Graph screen and reverses the screen PtChg 2,4 ¸
pixel nearest to window coordinates
(x, y).

PtOff CATALOG
PtOff x, y PtOff 2,4 ¸
PtOff xList, yList

Displays the Graph screen and turns off the


screen pixel nearest to window coordinates
(x, y).

Appendix A: Functions and Instructions 221


PtOn CATALOG
PtOn x, y PtOn 3,5 ¸
PtOn xList, yList

Displays the Graph screen and turns on the screen


pixel nearest to window coordinates
(x, y).

ptTest() CATALOG
ptTest (x, y) ⇒ Boolean constant expression ptTest(3,5) ¸ true
ptTest (xList, yList) ⇒ Boolean constant expression

Returns true or false. Returns true only if the


screen pixel nearest to window coordinates (x, y)
is on.

PtText CATALOG
PtText string, x, y PtText "sample",3,5 ¸
Displays the Graph screen and places the
character string string on the screen at the pixel
nearest the specified (x, y) window coordinates.
string is positioned with the upper-left corner of
its first character at the coordinates.

PxlChg CATALOG
PxlChg row, col PxlChg 2,4 ¸
PxlChg rowList, colList

Displays the Graph screen and reverses the pixel


at pixel coordinates (row, col).
Note: Regraphing erases all drawn items.

PxlCrcl CATALOG
PxlCrcl row, col, r [, drawMode] @ PxlCrcl 40,80,30,1 ¸
Displays the Graph screen and draws a H PxlCrcl 50,125,40,1 ¸
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.

222 Appendix A: Functions and Instructions


PxlLine CATALOG
PxlLine rowStart, colStart, rowEnd, colEnd [, drawMode] @ PxlLine 50,15,20,90,1 ¸
Displays the Graph screen and draws a line H PxlLine 80,20,30,150,1
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.

PxlOff CATALOG
PxlOff row, col PxlHorz 25,1 ¸
PxlOff rowList, colList PxlOff 25,50 ¸
Displays the Graph screen and turns off the pixel
at pixel coordinates (row, col).
Note: Regraphing erases all drawn items.

25,50

PxlOn CATALOG
PxlOn row, col PxlOn 25,50 ¸
PxlOn rowList, colList

Displays the Graph screen and turns on the pixel


at pixel coordinates (row, col).
Note: Regraphing erases all drawn items.

pxlTest() CATALOG
pxlTest (row, col) ⇒ Boolean expression PxlOn 25,50 ¸
pxlTest (rowList, colList) ⇒ Boolean expression
@ "
Returns true if the pixel at pixel coordinates (row, H ¥"
col) is on. Returns false if the pixel is off.
PxlTest(25,50) ¸ true
Note: Regraphing erases all drawn items. PxlOff 25,50 ¸
@ "
H ¥"
PxlTest(25,50) ¸ false
PxlText CATALOG
PxlText string, row, col @ PxlText "sample
Displays the Graph screen and places character text",20,10 ¸
string string on the screen, starting at pixel H PxlText "sample
coordinates (row, col). text",20,50 ¸
string is positioned with the upper-left corner of
its first character at the coordinates.
Note: Regraphing erases all drawn items.

Appendix A: Functions and Instructions 223


PxlVert CATALOG
PxlVert col [, drawMode] PxlVert 50,1 ¸
Draws a vertical line down the screen at pixel
position col.
If drawMode = 1, draws the line (default).
If drawMode = 0, turns off the line.
If drawMode = -1, turns a line that is on to off or
off to on (inverts pixels along the line).
Note: Regraphing erases all drawn items. See
also LineVert.

QR MATH/Matrix menu
QR matrix, qMatName, rMatName[ , tol] The floating-point number (9.) in m1 causes
results to be calculated in floating-point form.
Calculates the Householder QR factorization of a
real or complex matrix. The resulting Q and R [1,2,3;4,5,6;7,8,9.]!m1 ¸
matrices are stored to the specified MatNames. 1 2 3 
The Q matrix is unitary. The R matrix is upper 4 5 6 
triangular. 7 8 9.
Optionally, any matrix element is treated as zero QR m1,qm,rm ¸ Done
if its absolute value is less than tol. This tolerance
is used only if the matrix has floating-point
.123… .904… .408… 
entries and does not contain any symbolic qm ¸ .492… .301… ë.816…
variables that have not been assigned a value.
Otherwise, tol is ignored.
.861… ë.301… .408… 

• If you use ¥ ¸ or set the mode to 8.124… 9.601… 11.078…



Exact/Approx=APPROXIMATE, computations rm ¸ 0. .904… 1.809… 
are done using floating-point arithmetic. 0. 0. 0. 
• If tol is omitted or not used, the default
tolerance is calculated as:
m n
5Eë 14 ù max(dim(matrix)) [m,n;o,p]!m1 ¸ o p
ù rowNorm(matrix)

The QR factorization is computed numerically QR m1,qm,rm ¸ Done


using Householder transformations. The symbolic
solution is computed using Gram-Schmidt. The qm ¸

 
columns in qMatName are the orthonormal basis m ë sign(møpì nøo)øo
vectors that span the space defined by matrix.
 
m2 + o2 m2 + o 2
o møsign(møpì nøo)
 m2 + o 2 m2 + o 2 
 m +o 
møn+oøp
2 2

0 
m2 + o 2
rm ¸ |møpì nøo|

 m2 + o 2 

224 Appendix A: Functions and Instructions


QuadReg MATH/Statistics/Regressions menu
QuadReg list1, list2[, [list3] [, list4, list5]] In function graphing mode:
Calculates the quadratic polynomial regression {0,1,2,3,4,5,6,7}! L1 ¸
and updates the system statistics variables. {1 2 3 ...}
All the lists must have equal dimensions except {4,3,1,1,2,2,3,3}! L2 ¸
for list5. {4 3 1 ...}
QuadReg L1,L2 ¸ Done
list1 represents xlist.
ShowStat ¸
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.

Note: list1 through list4 must be a variable name ¸


or c1–c99. (columns in the last data variable Regeq(x)"y1(x) ¸ Done
shown in the Data/Matrix Editor). list5 does not NewPlot 1,1,L1,L2 ¸ Done
have to be a variable name and cannot be c1–c99
. ¥%

QuartReg MATH/Statistics/Regressions menu


QuartReg list1, list2[, [list3] [, list4, list5]] In function graphing mode:
Calculates the quartic polynomial regression and {ë 2,ë 1,0,1,2,3,4,5,6}! L1 ¸
updates the system statistics variables. {ë 2 ë 1 0 ...}
All the lists must have equal dimensions except {4,3,1,2,4,2,1,4,6}! L2 ¸
for list5. {4 3 1 ...}
QuartReg L1,L2 ¸ Done
list1 represents xlist. ShowStat ¸
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.
Note: list1 through list4 must be a variable name
or c1–c99 (columns in the last data variable
shown in the Data/Matrix Editor). list5 does not
have to be a variable name and cannot be c1– ¸
c99. Regeq(x)"y1(x) ¸ Done
NewPlot 1,1,L1,L2 ¸ Done
¥%

Appendix A: Functions and Instructions 225


R4Pq() MATH/Angle menu
R4Pq (xExpression, yExpression) ⇒ expression In Degree angle mode:
R4Pq (xList, yList) ⇒ list
R4Pq (xMatrix, yMatrix) ⇒ matrix R8Pq(x,y) ¸

Returns the equivalent q-coordinate of the


(x,y) pair arguments.
Note: The result is returned as either a degree or In Radian angle mode:
radian angle, according to the current angle
mode. R4Pq(3,2) ¸
R4Pq([3,-4,2],[0,pà4,1.5]) ¸

R4Pr() MATH/Angle menu


R4Pr (xExpression, yExpression) ⇒ expression In Radian angle mode:
R4Pr (xList, yList) ⇒ list
R4Pr (xMatrix, yMatrix) ⇒ matrix R4Pr(3,2) ¸
R4Pr(x,y) ¸
Returns the equivalent r-coordinate of the R4Pr([3,-4,2],[0,pà4,1.5]) ¸
(x,y) pair arguments.

rand() MATH/Probability menu


rand([n]) ⇒ expression RandSeed 1147 ¸ Done
n is an integer ƒ zero. (Sets the random-number seed.)
With no parameter, returns the next random
number between 0 and 1 in the sequence. When
rand() ¸ .158...
an argument is positive, returns a random integer
in the interval [1, n]. rand(6) ¸ 5
When an argument is negative, returns a random rand(ë 100) ¸ ë 49
integer in the interval [ë n,ë 1].

randMat() MATH/Probability menu


randMat(numRows, numColumns) ⇒ matrix RandSeed 1147 ¸ Done
Returns a matrix of integers between -9 and 9 of  8 ë3 6
the specified dimension. randMat(3,3) ¸ ë 2 3 ë 6
 0 4 ë6
Both arguments must simplify to integers.
Note: The values in this matrix will change
each time you press ¸.

randNorm() MATH/Probability menu


randNorm(mean, sd) ⇒ expression RandSeed 1147 ¸ Done
randNorm(0,1) ¸ .492...
Returns a decimal number from the specific
normal distribution. It could be any real number randNorm(3,4.5) ¸ ì3.543...
but will be heavily concentrated in the interval
[mean-3ù sd, mean+3ù sd].

226 Appendix A: Functions and Instructions


randPoly() MATH/Probability menu
randPoly(var, order) ⇒ expression RandSeed 1147 ¸ Done
Returns a polynomial in var of the specified order. randPoly(x,5) ¸
The coefficients are random integers in the range ë 2ø x5+3ø x4ì 6ø x3+4ø xì 6
ë 9 through 9. The leading coefficient will not be
zero.
order must be 0–99.

RandSeed MATH/Probability menu


RandSeed number RandSeed 1147 ¸ Done
rand() ¸ .158...
If number = 0, sets the seeds to the factory
defaults for the random-number generator. If
number ƒ 0, it is used to generate two seeds,
which are stored in system variables seed1
and seed2.

RclGDB CATALOG
RclGDB GDBvar RclGDB GDBvar ¸ Done
Restores all the settings stored in the Graph
database variable GDBvar.
For a listing of the settings, see StoGDB.
Note: It is necessary to have something saved in
GDBvar before you can restore it.

RclPic CATALOG
RclPic picVar [, row, column]

Displays the Graph screen and adds the picture


stored in picVar at the upper left-hand corner pixel
coordinates (row, column) using OR logic.
picVar must be a picture data type.
Default coordinates are (0, 0).

real() MATH/Complex menu


real( expression1) ⇒ expression real(2+3i) ¸ 2
Returns the real part of the argument. real(z) ¸ z
Note: All undefined variables are treated as real real(x+iy) ¸ x
variables. See also imag().
real( list1) ⇒ list real({a+iù b,3,i}) ¸ {a 3 0}
Returns the real parts of all elements.
real( matrix1) ⇒ matrix a 3
real([a+iù b,3;c,i]) ¸ [c 0]
Returns the real parts of all elements.

Appendix A: Functions and Instructions 227


4Rect MATH/Matrix/Vector ops menu
vector 4Rect [3,opà4,opà6]4Rect ¸
3ø ‡2 3ø ‡2 3ø ‡3
Displays vector in rectangular form [x, y, z]. The [ 4 ]
vector must be of dimension 2 or 3 and can be a 4 2
row or a column.
[a,ob,oc] ¸[aø cos(b)ø sin(c)
Note: 4Rect is a display-format instruction, not a aø sin(b)ø sin(c) aø cos(c)]
conversion function. You can use it only at the
end of an entry line, and it does not update ans.
Note: See also 4Polar.
complexValue 4Rect In Radian angle mode:
p
Displays complexValue in rectangular form a+bi. 4e^(p/3)4Rect ¸ 4øe 3
The complexValue can have any complex form.
However, an re iq entry causes an error in Degree (4op/3)4Rect ¸ 2+2ø 3øi
angle mode.
Note: You must use parentheses for an (roq) In Degree angle mode:
polar entry.
(4o60)4Rect ¸ 2+2ø 3øi

Note: To type 4Rect from the keyboard, press


2 p for the 4 operator. To type o, press
2 ’.

ref() MATH/Matrix menu


ref( matrix1[, tol]) ⇒ matrix ref([ë 2,ë 2,0,ë 6;1,ë 1,9,ë 9;ë 5,
2,4,ë 4]) ¸
Returns the row echelon form of matrix1.
1 ë 2/5 ë 4/5 4/5 
Optionally, any matrix element is treated as zero 0 1 4/7 11/7 
if its absolute value is less than tol. This tolerance 0 0 1 ë 62/71
is used only if the matrix has floating-point
entries and does not contain any symbolic
variables that have not been assigned a value.
Otherwise, tol is ignored. a b c
[a,b,c;e,f,g]!m1 ¸ e f g
• If you use ¥ ¸ or set the mode to
Exact/Approx=APPROXIMATE, computations
are done using floating-point arithmetic. 1 f g 
ref(m1) ¸
 e e 
• If tol is omitted or not used, the default 0 1
aøgì cøe
tolerance is calculated as:  aøfì bøe
5Eë 14 ù max(dim(matrix1))
ù rowNorm(matrix1)

Note: See also rref().

remain() MATH/Number menu


remain( expression1, expression2) ⇒ expression remain(7,0) ¸ 7
remain( list1, list2) ⇒ list
remain( matrix1, matrix2) ⇒ matrix remain(7,3) ¸ 1

Returns the remainder of the first argument with remain(ë 7,3) ¸ ë1


respect to the second argument as defined by the
identities: remain(7,ë 3) ¸ 1

remain(x,0) r x remain(ë 7,ë 3) ¸ ë1


remain(x,y) r xì yùiPart(x/y)
remain({12,ë 14,16},{9,7,ë 5})
¸
{3 0 1}

228 Appendix A: Functions and Instructions


As a consequence, note that remain(ì x,y) r remain([9,ë 7;6,4],[4,3;4,ë 3])
ì remain(x,y). The result is either zero or it has ¸
the same sign as the first argument.
1 ë1
Note: See also mod(). [2 1 ]

Rename CATALOG
Rename oldVarName, newVarName {1,2,3,4}! L1 ¸ {1,2,3,4}
Rename L1, list1 ¸ Done
Renames the variable oldVarName as newVarName.
list1 ¸ {1,2,3,4}

Request CATALOG
Request promptString, var Request "Enter Your Name",str1
¸
If Request is inside a Dialog...EndDlog
construct, it creates an input box for the user to
type in data. If it is a stand-alone instruction, it
creates a dialog box for this input. In either case,
if var contains a string, it is displayed and
highlighted in the input box as a default choice.
promptString must be { 20 characters.
This instruction can be stand-alone or part of a
dialog construct.

Return CATALOG
Return [expression] Define factoral(nn)=Func
:local answer,count:1! answer
Returns expression as the result of the function. :For count,1,nn
Use within a Func...EndFunc block, or :answerù count! answer:EndFor
Prgm...EndPrgm block. :Return answer:EndFunc ¸Done
Note: Use Return without an argument to exit a factoral(3) ¸ 6
program.
Note: Enter the text as one long line on the
Home screen (without line breaks).

right() MATH/List menu


right(list1[, num]) ⇒ list right({1,3,ë 2,4},3) ¸
{3 ë 2 4}
Returns the rightmost num elements contained in
list1.
If you omit num, returns all of list1.
right(sourceString[, num]) ⇒ string right("Hello",2) ¸ "lo"
Returns the rightmost num characters contained
in character string sourceString.
If you omit num, returns all of sourceString.
right(comparison) ⇒ expression right(x<3) ¸ 3
Returns the right side of an equation or
inequality.

Appendix A: Functions and Instructions 229


rotate() MATH/Base menu
rotate(integer1[,#ofRotations]) ⇒ integer In Bin base mode:
Rotates the bits in a binary integer. You can enter rotate(0b1111010110000110101)
integer1 in any number base; it is converted ¸
automatically to a signed, 32-bit binary form. If 0b10000000000000111101011000011010
the magnitude of integer1 is too large for this
form, a symmetric modulo operation brings it rotate(256,1) ¸ 0b1000000000
within the range.
If #of Rotations is positive, the rotation is to the In Hex base mode:
left. If #of Rotations is negative, the rotation is to
the right. The default is ë 1 (rotate right one bit). rotate(0h78E) ¸ 0h3C7

For example, in a right rotation: rotate(0h78E,ë 2) ¸0h800001E3

rotate(0h78E,2) ¸ 0h1E38

Each bit rotates right. Important: To enter a binary or hexadecimal


number, always use the 0b or 0h prefix (zero,
0b00000000000001111010110000110101
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 rotate({1,2,3,4}) ¸
Rotations elements. Does not alter list1. {4 1 2 3}
If #of Rotations is positive, the rotation is to the rotate({1,2,3,4},ë 2) ¸
left. If #of Rotations is negative, the rotation is to {3 4 1 2}
the right. The default is ë 1 (rotate right one
element). rotate({1,2,3,4},1) ¸
{2 3 4 1}

rotate(string1[,#ofRotations]) ⇒ string rotate("abcd") ¸ "dabc"


Returns a copy of string1 rotated right or left by rotate("abcd",ë 2) ¸ "cdab"
#of Rotations characters. Does not alter string1.
rotate("abcd",1) ¸ "bcda"
If #of Rotations is positive, the rotation is to the
left. If #of Rotations is negative, the rotation is to
the right. The default is ë 1 (rotate right one
character).

round() MATH/Number menu


round( expression1[, digits]) ⇒ expression round(1.234567,3) ¸ 1.235
Returns the argument rounded to the specified
number of digits after the decimal point.
digits must be an integer in the range 0–12. If
digits is not included, returns the argument
rounded to 12 significant digits.
Note: Display digits mode may affect how this is
displayed.
round( list1[, digits]) ⇒ list round({p,‡(2),ln(2)},4) ¸
{3.1416 1.4142 .6931}
Returns a list of the elements rounded to the
specified number of digits.

230 Appendix A: Functions and Instructions


round( matrix1[, digits]) ⇒ matrix round([ln(5),ln(3);p,e^(1)],1)
¸
Returns a matrix of the elements rounded to the
specified number of digits. 1.6 1.1
[3.1 2.7]

rowAdd() MATH/Matrix/Row ops menu


rowAdd( matrix1, rIndex1, rIndex2) ⇒ matrix rowAdd([3,4;ë 3,ë 2],1,2) ¸
Returns a copy of matrix1 with row rIndex2  3 4
replaced by the sum of rows rIndex1 and rIndex2.  0 2
rowAdd([a,b;c,d],1,2) ¸
a b
[a+c b+d]

rowDim() MATH/Matrix/Dimensions menu



rowDim( matrix) expression
 1 2
Returns the number of rows in matrix. [1,2;3,4;5,6]! M1 ¸  3 4
 5 6
Note: See also colDim(). rowdim(M1) ¸ 3

rowNorm() MATH/Matrix/Norms menu


rowNorm( matrix) ⇒ expression rowNorm([-5,6,-7;3,4,9;9,-9,-7])
¸ 25
Returns the maximum of the sums of the absolute
values of the elements in the rows in matrix.
Note: All matrix elements must simplify to
numbers. See also colNorm().

rowSwap() MATH/Matrix/Row ops menu


rowSwap( matrix1, rIndex1, rIndex2) ⇒ matrix [1,2;3,4;5,6]! Mat ¸
Returns matrix1 with rows rIndex1 and rIndex2  1 2
exchanged.  3 4
 5 6
rowSwap(Mat,1,3) ¸
 5 6
 3 4
 1 2
RplcPic CATALOG
RplcPic picVar[, row][, column]

Clears the Graph screen and places picture picVar


at pixel coordinates (row, column). If you do not
want to clear the screen, use RclPic.
picVar must be a picture data type variable. row
and column, if included, specify the pixel
coordinates of the upper left corner of the picture.
Default coordinates are (0, 0).
Note: For less than full-screen pictures, only the
area affected by the new picture is cleared.

Appendix A: Functions and Instructions 231


rref() MATH/Matrix menu
rref(matrix1[, tol]) ⇒ matrix rref([ë 2,ë 2,0,ë 6;1,ë 1,9,ë 9;
ë 5,2,4,ë 4]) ¸
Returns the reduced row echelon form of matrix1.
1 0 0 66/71 
0 1 0
147 
 71 
0 0 1 ë 62/71
Optionally, any matrix element is treated as zero rref([a,b,x;c,d,y]) ¸
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 1 0
dø x-bø y 
variables that have not been assigned a value.  aø d-bø c 
Otherwise, tol is ignored. 0 1
ë (cø x-aø y)
 aø d-bø c 
• If you use ¥ ¸ or set the mode to
Exact/Approx=APPROXIMATE, computations
are done using floating-point arithmetic.
• If tol is omitted or not used, the default
tolerance is calculated as:
5Eë 14 ù max(dim(matrix1))
ù rowNorm(matrix1)
Note: See also ref().

sec() MATH/Trig menu


sec(expression1) ⇒ expression In Degree angle mode:
sec(list1) ⇒ list
sec(45) ¸ (2)
Returns the secant of expression1 or returns a list
containing the secants of all elements in list1. sec({1,2.3,4}) ¸
Note: The argument is interpreted as either a 1 1.000… 1
degree or radian angle, according to the current cos(1) cos(4)
angle mode.

sec L1() MATH/Trig menu


sec L1(expression1) ⇒ expression In Degree angle mode:
sec L1(list1) ⇒ list
secL1(1) ¸ 0
Returns the angle whose secant is expression1 or
returns a list containing the inverse secants of In Radian angle mode:
each element of list1.
secL1({1,2,5}) ¸
Note: The result is interpreted as either a degree
or radian angle, according to the current angle p
0 3 cos L1(1/5)
mode.

sech() MATH/Hyperbolic menu


sech(expression1) ⇒ expression 1
sech(list1) ⇒ list sech(3) ¸ cosh(3)
Returns the hyperbolic secant of expression1 or sech({1,2.3,4}) ¸
returns a list containing the hyperbolic secants of 1 1
the list1 elements. .198…
cosh(1) cosh(4)

232 Appendix A: Functions and Instructions


sechL1() MATH/Hyperbolic menu
sech L1(expression1) ⇒ expression In Radian angle and
sech L1 (list1) ⇒ list Rectangular complex mode:
Returns the inverse hyperbolic secant of sechL1(1) ¸ 0
expression1 or returns a list containing the
inverse hyperbolic secants of each element of sechL1({1,L2,2.1}) ¸
list1.
0 (2 ¦ p) ¦ i 1.074… ¦ i
3

Send CATALOG
Send list Program segment:
CBL 2é/CBLé (Calculator-Based Laboratoryé) or ©
CBRé (Calculator-Based Rangeré) instruction. :Send {1,0}
Sends list to the link port. :Send {1,2,1}
©

SendCalc CATALOG
SendCalc var Program segment:
Sends variable var to the link port, where another ©
unit linked to that port can receive the variable :a+b! x
value. The receiving unit must be on the Home :SendCalc x
screen or must execute GetCalc from a program. ©
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.
@ SendCalc var[,port]
Sends contents of var from a TI-89 Titanium to
another TI-89 Titanium.
If the port is not specified, or port = 0 is specified,
the TI-89 Titanium sends data using the USB port
if connected, if not, it will send using the I/O port.
If port = 1, the TI-89 Titanium sends data using
the USB port only.
If port = 2, the TI-89 Titanium sends data using
the I/O port only.

SendChat CATALOG
SendChat var Program segment:
A general alternative to SendCalc, this is useful ©
if the receiving unit is a TI-92 (or for a generic :a+b! x
"chat" program that allows either a TI-92, :SendChat x
Voyage™ 200, or TI-92 Plus to be used). Refer to ©
SendCalc for more information.

SendChat sends a variable only if that variable is


compatible with the TI-92, which is typically true
in "chat" programs. However, SendChat will
not send an archived variable, a TI-89 graph data
base, etc.

Appendix A: Functions and Instructions 233


seq() MATH/List menu
seq(expression, var, low, high[, step]) ⇒ list seq(n^2,n,1,6) ¸
{1 4 9 16 25 36}
Increments var from low through high by an
increment of step, evaluates expression, and seq(1/n,n,1,10,2) ¸
returns the results as a list. The original contents {1 1/3 1/5 1/7 1/9}
of var are still there after seq() is completed.
sum(seq(1àn^2,n,1,10,1)) ¸
var cannot be a system variable.
196...
The default value for step = 1.
127...

or press ¥ ¸ to get: 1.549...

setDate() CATALOG
setDate(year,month,day) ⇒ listold setDate(2001,10,31) ¸
{2001 11 1}
Sets the clock to the date given in the argument
and returns a list. (Note: The year must fall in
the range 1997 - 2132.) The returned list is in
{yearold,monthold,dayold} format. The returned
date is the previous clock value.
Enter the year as a four-digit integer. The month
and day can be either one- or two-digit integers.

setDtFmt() CATALOG
setDtFmt(integer) ⇒ integerold Integer values:
1 = MM/DD/YY 5 = YY.MM.DD
Sets the date format for the desktop according to 2 = DD/MM/YY 6 = MM-DD-YY
the argument and returns the previous date 3 = MM.DD.YY 7 = DD-MM-YY
format value.
4 = DD.MM.YY 8 = YY-MM-DD
setFold() CATALOG
setFold( newfolderName) ⇒ oldfolderString newFold chris ¸ Done
Returns the name of the current folder as a string setFold(main) ¸ "chris"
and sets newfolderName as the current folder.
setFold(chris)! oldfoldr ¸
The folder newfolderName must exist. "main"

1! a ¸ 1

setFold(#oldfoldr) ¸ "chris"

a¸ a

chris\a ¸ 1

setGraph() CATALOG
setGraph(modeNameString, settingString) ⇒ string setGraph("Graph Order","Seq")
¸ "SEQ"
Sets the Graph mode modeNameString to
settingString, and returns the previous setting of setGraph("Coordinates","Off")
the mode. Storing the previous setting lets you ¸ "RECT"
restore it later.
Note: Capitalization and blank spaces are
modeNameString is a character string that specifies optional when entering mode names.
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.

234 Appendix A: Functions and Instructions


Mode Name Settings
"Coordinates" "Rect", "Polar", "Off"
"Graph Order" "Seq", "Simul" 1
"Grid" "Off", "On" 2
"Axes" "Off", "On" (not 3D graph mode)
"Off", "Axes", "Box" (3D graph mode)
"Leading Cursor" "Off", "On" 2
"Labels" "Off", "On"
"Style" "Wire Frame", "Hidden Surface", "Contour Levels", "Wire and Contour",
"Implicit Plot" 3
"Seq Axes" "Time", "Web", "U1-vs-U2" 4
"DE Axes" "Time", "t-vs-y' ", "y-vs-y' ", "y1-vs-y2", "y1-vs-y2' ", "y1'-vs-y2' " 5
Tip: To type a prime symbol ( ' ), press 2 È.
"Solution Method" "RK", "Euler" 5
"Fields" "SlpFld", "DirFld", "FldOff" 5
1
Not available in Sequence, 3D, or Diff Equations graph mode.
2
Not available in 3D graph mode.
3
Applies only to 3D graph mode.
4
Applies only to Sequence graph mode.
5
Applies only to Diff Equations graph mode.

setMode() CATALOG
setMode(modeNameString, settingString) ⇒ string setMode("Angle","Degree")
setMode(list) ⇒ stringList ¸ "RADIAN"
Sets mode modeNameString to the new setting ‡2
settingString, and returns the current setting of sin(45) ¸
2
that mode.
setMode("Angle","Radian")
modeNameString is a character string that specifies ¸ "DEGREE"
which mode you want to set. It must be one of
the mode names from the table below. ‡2
sin(pà4) ¸
settingString is a character string that specifies the 2
new setting for the mode. It must be one of the setMode("Display Digits",
settings listed below for the specific mode you "Fix 2") ¸ "FLOAT"
are setting.
p ¥¸ 3.14
list contains pairs of keyword strings and will set
them all at once. This is recommended for setMode ("Display Digits",
multiple-mode changes. The example shown may "Float") ¸ "FIX 2"
not work if each of the pairs is entered with a
separate setMode() in the order shown. p ¥¸ 3.141...
Use setMode(var) to restore settings saved with setMode ({"Split Screen",
getMode("ALL")! var. "Left-Right","Split 1 App",
"Graph","Split 2
Note: To set or return information about the
App","Table"})
Unit System mode, use setUnits() or getUnits()
¸
instead of setMode() or getMode().
{"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.

Appendix A: Functions and Instructions 235


Mode Name Settings
"Graph" "Function", "Parametric", "Polar", "Sequence", "3D", "Diff Equations"
"Display Digits" "Fix 0", "Fix 1", ..., "Fix 12", "Float", "Float 1", ..., "Float 12"
"Angle" "Radian", "Degree"
"Exponential Format" "Normal", "Scientific", "Engineering"
"Complex Format" "Real", "Rectangular", "Polar"
"Vector Format" "Rectangular", "Cylindrical", "Spherical"
"Pretty Print" "Off", "On"
"Split Screen" "Full", "Top-Bottom", "Left-Right"
"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 setTable("Graph <ì >
Table","ON")
Sets the table parameter modeNameString to ¸ "OFF"
settingString, and returns the previous setting of
the parameter. Storing the previous setting lets setTable("Independent","AUTO")
you restore it later. ¸ "ASK"
modeNameString is a character string that specifies ¥&
which parameter you want to set. It must be one
of the parameters from the table below.
settingString is a character string that specifies the
new setting for the parameter. It must be one of
the settings listed below for the specific
parameter you are setting.
Note: Capitalization and blank spaces are
optional when entering parameters.

Parameter Name Settings


"Graph <-> Table" "Off", "On"
"Independent" "Auto", "Ask"

setTime() CATALOG
setTime(hour,minute,second) ⇒ listold setTime(11,32,50)
{10 44 49}
Sets the clock to the time given in the argument
and returns a list. The list is in
{hourold,minuteold,secondold} format. The returned
time is the previous clock value.
Enter the hour in the 24 hour format, in which 13 =
1 p.m.

236 Appendix A: Functions and Instructions


setTmFmt() CATALOG
setTmFmt(integer) ⇒ integerold Integer values:
Sets the time format for the desktop according to 12 = 12 hour clock
the argument and returns the previous time
format value. 24 = 24 hour clock

setTmZn() CATALOG
setTmZn(integer) ⇒ integerold If Greenwich Mean Time is 14:07:07, it is:
Sets the time zone according to the argument and 7:07:07 a.m. in Denver, Colorado (Mountain
returns the previous time zone value. Standard Time)
The time zone is defined by an integer that gives (–420 minutes from GMT)
the minutes offset from Greenwich Mean Time
(GMT), as established in Greenwich, England. For 15:07:07 p.m. in Brussels, Belgium (Central
example, if the time zone is offset from GMT by European Standard Time)
two hours, the device would return 120 (+60 minutes from GMT)
(minutes).
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. @ ¥q
• To specify the built-in SI (metric) or ENG/US H 2q
system, list1 uses the form: You can also select units from a menu by
{"SI"} or {"ENG/US"} pressing:

• To specify a custom set of default units, list1 @ 29


uses the form: H ¥À

{"CUSTOM", "cat1", "unit1" [ , "cat2", "unit2", …]} setUnits({"SI"}) ¸


{"SI" "Area" "NONE"
where each cat and unit pair specifies a
"Capacitance" "_F" ...}
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 237


Shade CATALOG
Shade expr1, expr2, [xlow], [xhigh], [pattern], [patRes] In the ZoomTrig viewing window:
Displays the Graph screen, graphs expr1 and Shade cos(x),sin(x) ¸
expr2, and shades areas in which expr1 is less than
expr2. (expr1 and expr2 must be expressions that
use x as the independent variable.)
xlow and xhigh, if included, specify left and right
boundaries for the shading. Valid inputs are
between xmin and xmax. Defaults are xmin and
xmax.
@ "
pattern specifies one of four shading patterns: H ¥"
1 = vertical (default)
2 = horizontal ClrDraw ¸ Done
3 = negative-slope 45¡ Shade cos(x),sin(x),0,5 ¸
4 = positive-slope 45¡
patRes specifies the resolution of the shading
patterns:
1= solid shading
2= 1 pixel spacing (default)
3= 2 pixels spacing
© @ "
10= 9 pixels spacing H ¥"
Note: Interactive shading is available on the ClrDraw ¸ Done
Graph screen through the Shade instruction.
Shade cos(x),sin(x),0,5,2 ¸
Automatic shading of a specific function is
available through the Style instruction. Shade is
not valid in 3D graphing mode.

@ "
H ¥"

ClrDraw ¸ Done
Shade cos(x),sin(x),0,5,2,1
¸

238 Appendix A: Functions and Instructions


shift() CATALOG
shift(integer1[,#ofShifts]) ⇒ integer In Bin base mode:
Shifts the bits in a binary integer. You can enter shift(0b1111010110000110101)
integer1 in any number base; it is converted ¸
automatically to a signed, 32-bit binary form. If 0b111101011000011010
the magnitude of integer1 is too large for this
form, a symmetric modulo operation brings it shift(256,1) ¸
within the range. 0b1000000000
If #ofShifts is positive, the shift is to the left. If In Hex base mode:
#ofShifts is negative, the shift is to the right. The
default is ë 1 (shift right one bit). shift(0h78E) ¸ 0h3C7

In a right shift, the rightmost bit is dropped and 0 shift(0h78E,ë 2) ¸ 0h1E3


or 1 is inserted to match the leftmost bit. In a left
shift, the leftmost bit is dropped and 0 is inserted shift(0h78E,2) ¸ 0h1E38
as the rightmost bit.
For example, in a right shift: Important: To enter a binary or hexadecimal
number, always use the 0b or 0h prefix (zero,
not the letter O).
Each bit shifts right.
0b00000000000001111010110000110101

Inserts 0 if leftmost bit is 0, Dropped


or 1 if leftmost bit is 1.
produces:
0b00000000000000111101011000011010
The result is displayed according to the Base
mode. Leading zeros are not shown.
shift(list1 [,#ofShifts]) ⇒ list In Dec base mode:
Returns a copy of list1 shifted right or left by shift({1,2,3,4}) ¸
#ofShifts elements. Does not alter list1. {undef 1 2 3}
If #ofShifts is positive, the shift is to the left. If shift({1,2,3,4},ë 2) ¸
#ofShifts is negative, the shift is to the right. The {undef undef 1 2}
default is ë 1 (shift right one element).
Elements introduced at the beginning or end of shift({1,2,3,4},1) ¸
list by the shift are set to the symbol “undef”. {2 3 4 undef}

shift(string1 [,#ofShifts]) ⇒ string shift("abcd") ¸ " abc"


Returns a copy of string1 shifted right or left by shift("abcd",ë 2) ¸ " ab"
#ofShifts characters. Does not alter string1.
shift("abcd",1) ¸ "bcd "
If #ofShifts is positive, the shift is to the left. If
#ofShifts is negative, the shift is to the right. The
default is ë 1 (shift right one character).
Characters introduced at the beginning or end of
string by the shift are set to a space.

Appendix A: Functions and Instructions 239


ShowStat CATALOG
ShowStat {1,2,3,4,5}! L1 ¸ {1 2 3 4 5}
{0,2,6,10,25}! L2 ¸
Displays a dialog box containing the last
computed statistics results if they are still valid. {0 2 6 10 25}
Statistics results are cleared automatically if the TwoVar L1,L2 ¸
data to compute them has changed. ShowStat ¸

Use this instruction after a statistics calculation,


such as LinReg.

sign() MATH/Number menu


sign(expression1) ⇒ expression sign(ë 3.2) ¸ ë 1.
sign(list1) ⇒ list
sign(matrix1) ⇒ matrix sign({2,3,4,ë 5}) ¸
{1 1 1 ë 1}
For real and complex expression1, returns
expression1/abs(expression1) when expression1ƒ 0. sign(1+abs(x)) ¸ 1
Returns 1 if expression1 is positive.
Returns ë 1 if expression1 is negative.
sign(0) returns „1 if the complex format mode is If complex format mode is REAL:
REAL; otherwise, it returns itself.
sign(0) represents the unit circle in the complex
sign([ë 3,0,3]) ¸ [ë 1 „1 1]
domain.
For a list or matrix, returns the signs of all the
elements.

simult() MATH/Matrix menu


simult(coeffMatrix, constVector[, tol]) ⇒ matrix Solve for x and y: x + 2y = 1
3x + 4y = ë 1
Returns a column vector that contains the
solutions to a system of linear equations. simult([1,2;3,4],[1;ë 1]) ¸
ë3
coeffMatrix must be a square matrix that contains [2]
the coefficients of the equations.
constVector must have the same number of rows The solution is x=ë 3 and y=2.
(same dimension) as coeffMatrix and contain the
constants. Solve: ax + by = 1
Optionally, any matrix element is treated as zero cx + dy = 2
if its absolute value is less than tol. This tolerance a b
is used only if the matrix has floating-point [a,b;c,d]! matx1 ¸ [c d]
entries and does not contain any symbolic
variables that have not been assigned a value. simult(matx1,[1;2]) ¸
Otherwise, tol is ignored. ë (2ø bì d) 
• If you use ¥ ¸ or set the mode to  aø dì bø c 
Exact/Approx=APPROXIMATE, computations  2ø aì c 
are done using floating-point arithmetic.  aø dì bø c 
• If tol is omitted or not used, the default
tolerance is calculated as:
5Eë 14 ù max(dim(coeffMatrix))
ù rowNorm(coeffMatrix)

240 Appendix A: Functions and Instructions


simult(coeffMatrix, constMatrix[, tol]) ⇒ matrix Solve: x + 2y = 1 x + 2y = 2
3x + 4y = ë 1 3x + 4y = ë 3
Solves multiple systems of linear equations,
where each system has the same equation simult([1,2;3,4],[1,2;ë 1,ë 3])
coefficients but different constants. ¸
Each column in constMatrix must contain the ë3 ë7
constants for a system of equations. Each column [2 9/2]
in the resulting matrix contains the solution for
the corresponding system. For the first system, x=ë 3 and y=2. For the
second system, x=ë 7 and y=9/2.

sin() @ 2 W key H W key


sin(expression1) ⇒ expression In Degree angle mode:
sin(list1) ⇒ list
‡2
sin(expression1) returns the sine of the argument sin((p/4)ô ) ¸ 2
as an expression.
‡2
sin(list1) returns a list of the sines of all elements sin(45) ¸
in list1. 2

Note: The argument is interpreted as either a ‡3


degree or radian angle, according to the current sin({0,60,90}) ¸ {0 2 1}
angle mode. You can use ó or ô to override the
angle mode setting temporarily. In Radian angle mode:
‡2
sin(p/4) ¸ 2

‡2
sin(45¡) ¸ 2
sin(squareMatrix1) ⇒ squareMatrix In Radian angle mode:
Returns the matrix sine of squareMatrix1. This is sin([1,5,3;4,2,1;6,ë 2,1]) ¸
not the same as calculating the sine of each
element. For information about the calculation .942… ë.045… ë.031… 
method, refer to cos(). ë.045… .949… ë.020… 
squareMatrix1 must be diagonalizable. The result
ë.048… ë.005… .961… 
always contains floating-point numbers.

sinê () @ ¥ Q key H 2 Q key


sinê (expression1) ⇒ expression In Degree angle mode:
sinê (list1) ⇒ list
sinê (1) ¸ 90
sinê (expression1) returns the angle whose sine is
expression1 as an expression. In Radian angle mode:
sinê (list1) returns a list of the inverse sines of sinê ({0,.2,.5}) ¸
each element of list1. {0 .201... .523...}

Note: The result is returned as either a degree or


radian angle, according to the current angle
mode setting.
sinê(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular
complex format mode:
Returns the matrix inverse sine of squareMatrix1.
This is not the same as calculating the inverse sinê([1,5,3;4,2,1;6,ë 2,1])
sine of each element. For information about the
calculation method, refer to cos(). ¸

squareMatrix1 must be diagonalizable. The result ë.164…ì.064…øi 1.490…ì 2.105…øi …



always contains floating-point numbers. .725…ì 1.515…øi .947…ì.778…øi … 
2.083…ì 2.632…øi ë 1.790…+1.271…øi … 

Appendix A: Functions and Instructions 241


sinh() MATH/Hyperbolic menu
sinh(expression1) ⇒ expression sinh(1.2) ¸ 1.509...
sinh(list1) ⇒ list
sinh({0,1.2,3.}) ¸
sinh (expression1) returns the hyperbolic sine of
{0 1.509... 10.017...}
the argument as an expression.
sinh (list) returns a list of the hyperbolic sines of
each element of list1.
sinh(squareMatrix1) ⇒ squareMatrix In Radian angle mode:
Returns the matrix hyperbolic sine of sinh([1,5,3;4,2,1;6,ë 2,1])
squareMatrix1. This is not the same as calculating ¸
the hyperbolic sine of each element. For
information about the calculation method, refer
to cos(). 360.954 305.708 239.604
352.912 233.495 193.564
squareMatrix1 must be diagonalizable. The result 298.632 154.599 140.251
always contains floating-point numbers.

sinhê () MATH/Hyperbolic menu


sinhê (expression1) ⇒ expression sinhê (0) ¸ 0
sinhê (list1) ⇒ list
sinhê ({0,2.1,3}) ¸
sinhê (expression1) returns the inverse hyperbolic {0 1.487... sinhê (3)}
sine of the argument as an expression.
sinhê (list1) returns a list of the inverse
hyperbolic sines of each element of list1.
sinhê(squareMatrix1) ⇒ squareMatrix In Radian angle mode:
Returns the matrix inverse hyperbolic sine of sinhê([1,5,3;4,2,1;6,ë 2,1])
squareMatrix1. This is not the same as calculating ¸
the inverse hyperbolic sine of each element. For
information about the calculation method, refer .041… 2.155… 1.158… 
to cos(). 1.463… .926… .112… 
2.750… ë 1.528… .572… 
squareMatrix1 must be diagonalizable. The result
always contains floating-point numbers.

242 Appendix A: Functions and Instructions


SinReg MATH/Statistics/Regressions menu
SinReg list1, list2 [ , [iterations] , [ period] [, list3, list4] ] In function graphing mode:
Calculates the sinusoidal regression and updates seq(x,x,1,361,30)! L1 ¸
all the system statistics variables. {1 31 61 …}
All the lists must have equal dimensions except {5.5,8,11,13.5,16.5,19,19.5,17
for list4. ,
14.5,12.5,8.5,6.5,5.5}! L2 ¸
list1 represents xlist. {5.5 8 11 …}
list2 represents ylist. SinReg L1,L2 ¸ Done
list3 represents category codes.
list4 represents category include list. ShowStat ¸

iterations specifies the maximum number of times


(1 through 16) a solution will be attempted. If
omitted, 8 is used. Typically, larger values result
in better accuracy but longer execution times, and
vice versa.
period specifies an estimated period. If omitted,
the difference between values in list1 should be ¸
equal and in sequential order. If you specify regeq(x)! y1(x) ¸ Done
period, the differences between x values can be NewPlot 1,1,L1,L2 ¸ Done
unequal. ¥%
Note: list1 through list3 must be a variable name „9
or c1–c99 (columns in the last data variable
shown in the Data/Matrix Editor). list4 does not
have to be a variable name and cannot be c1–
c99.
The output of SinReg is always in radians,
regardless of the angle mode setting.

solve() MATH/Algebra menu


solve(equation, var) ⇒ Boolean expression solve(aù x^2+bù x+c=0,x) ¸
solve(inequality, var) ⇒ Boolean expression
bñ -4ø aø c-b
Returns candidate real solutions of an equation or x=
an inequality for var. The goal is to return candidates 2ø a
for all solutions. However, there might be equations
or inequalities for which the number of solutions is ë ( bñ -4ø aø c+b)
or x = 2ø a
infinite.
Solution candidates might not be real finite ans(1)| a=1 and b=1 and c=1
solutions for some combinations of values for ¸
undefined variables. Error: Non-real result
For the AUTO setting of the Exact/Approx mode, solve((xì a)e ^(x)=ë xù (xì a),x)
the goal is to produce exact solutions when they are ¸
concise, and supplemented by iterative searches x = a or x =ë.567...
with approximate arithmetic when exact solutions
are impractical.
Due to default cancellation of the greatest common (x+1)(xì 1)/(xì 1)+xì 3 ¸
divisor from the numerator and denominator of 2ø xì 2
ratios, solutions might be solutions only in the limit solve(entry(1)=0,x) ¸ x=1
from one or both sides. entry(2)|ans(1) ¸ undef
limit(entry(3),x,1) ¸ 0
For inequalities of types ‚, c, <, or >, explicit solve(5xì 2 ‚ 2x,x) ¸ x ‚ 2/3
solutions are unlikely unless the inequality is linear
and contains only var.
For the EXACT setting of the Exact/Approx mode, exact(solve((xì a)e ^(x)=ë xù
portions that cannot be solved are returned as an (xì a),x)) ¸
implicit equation or inequality. e x + x = 0 or x = a

Appendix A: Functions and Instructions 243


Use the “|” operator to restrict the solution interval In Radian angle mode:
and/or other variables that occur in the equation or
inequality. When you find a solution in one interval, solve(tan(x)=1/x,x)|x>0 and
you can use the inequality operators to exclude that x<1 ¸ x =.860...
interval from subsequent searches.
false is returned when no real solutions are found. solve(x=x+1,x) ¸ false
true is returned if solve() can determine that any
finite real value of var satisfies the equation or solve(x=x,x) ¸ true
inequality.
Since solve() always returns a Boolean result, you 2xì 1c1 and solve(x^2ƒ9,x) ¸
can use “and,” “or,” and “not” to combine results x c 1 and x ƒ ë 3
from solve() with each other or with other Boolean
expressions.
Solutions might contain a unique new undefined In Radian angle mode:
variable of the form @nj with j being an integer in
the interval 1–255. Such variables designate an solve(sin(x)=0,x) ¸ x = @n1ø p
arbitrary integer.
In real mode, fractional powers having odd solve(x^(1/3)=ë 1,x) ¸ x = ë1
denominators denote only the real branch.
Otherwise, multiple branched expressions such as solve(‡(x)=ë 2,x) ¸ false
fractional powers, logarithms, and inverse
trigonometric functions denote only the principal solve(ë ‡(x)=ë 2,x) ¸ x=4
branch. Consequently, solve() produces only
solutions corresponding to that one real or principal
branch.
Note: See also cSolve(), cZeros(), nSolve(), and
zeros().

solve(equation1 and equation2 [and … ], {varOrGuess1, solve(y=x^2ì 2 and


varOrGuess2 [, … ]}) ⇒ Boolean expression x+2y=ë 1,{x,y}) ¸
Returns candidate real solutions to the x=1 and y=ë 1
simultaneous algebraic equations, where each or x=ë 3/2 and y=1/4
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.

244 Appendix A: Functions and Instructions


If all of the equations are polynomials and if you
do NOT specify any initial guesses, solve() uses
the lexical Gröbner/Buchberger elimination
method to attempt to determine all real
solutions.
For example, suppose you have a circle of radius r
at the origin and another circle of radius r
centered where the first circle crosses the positive
x-axis. Use solve() to find the intersections.
As illustrated by r in the example to the right, solve(x^2+y^2=r^2 and
simultaneous polynomial equations can have (xì r)^2+y^2=r^2,{x,y}) ¸
extra variables that have no values, but represent r 3ør
given numeric values that could be substituted x= and y=
later. 2 2
r ë 3ør
or x= and y=
2 2
You can also (or instead) include solution solve(x^2+y^2=r^2 and
variables that do not appear in the equations. For (xì r)^2+y^2=r^2,{x,y,z}) ¸
example, you can include z as a solution variable r 3ør
to extend the previous example to two parallel x= and y= and z=@1
intersecting cylinders of radius r. 2 2
r ë 3ør
The cylinder solutions illustrate how families of or x= and y= and z=@1
2 2
solutions might contain arbitrary constants of the
form @k, where k is an integer suffix from 1
through 255. The suffix resets to 1 when you use
ClrHome or ƒ 8:Clear Home.

For polynomial systems, computation time or


memory exhaustion may depend strongly on the
order in which you list solution variables. If your
initial choice exhausts memory or your patience,
try rearranging the variables in the equations
and/or varOrGuess list.
If you do not include any guesses and if any solve(x+e^(z)ù y=1 and
equation is non-polynomial in any variable but all xì y=sin(z),{x,y}) ¸
equations are linear in the solution variables,
solve() uses Gaussian elimination to attempt to ezøsin(z)+1 ë (sin(z)ì 1)
x= and y=
determine all real solutions. e z +1 e z +1
If a system is neither polynomial in all of its solve(e^(z)ù y=1 and
variables nor linear in its solution variables, ë y=sin(z),{y,z}) ¸
solve() determines at most one solution using an y=.041… and z=3.183…
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.

Appendix A: Functions and Instructions 245


Each solution variable starts at its guessed value solve(e^(z)ù y=1 and
if there is one; otherwise, it starts at 0.0. ë y=sin(z),{y,z=2p}) ¸
Use guesses to seek additional solutions one by y=.001… and z=6.281…
one. For convergence, a guess may have to be
rather close to a solution.

SortA MATH/List menu


SortA listName1[, listName2] [, listName3] ... {2,1,4,3}! list1 ¸ {2,1,4,3}
SortA vectorName1[, vectorName2] [, vectorName3] ... SortA list1 ¸ Done
Sorts the elements of the first argument in list1 ¸ {1 2 3 4}
ascending order. {4,3,2,1}! list2 ¸ {4 3 2 1}
If you include additional arguments, sorts the SortA list2,list1 ¸ Done
elements of each so that their new positions
match the new positions of the elements in the list2 ¸ {1 2 3 4}
first argument. list1 ¸ {4 3 2 1}

All arguments must be names of lists or vectors.


All arguments must have equal dimensions.

SortD MATH/List menu


SortD listName1[, listName2] [, listName3] ... {2,1,4,3}! list1 ¸ {2 1 4 3}
SortD vectorName1[,vectorName 2] [,vectorName 3] ... {1,2,3,4}! list2 ¸ {1 2 3 4}
Identical to SortA, except SortD sorts the SortD list1,list2 ¸ Done
elements in descending order. list1 ¸ {4 3 2 1}
list2 ¸ {3 4 1 2}

4Sphere MATH/Matrix/Vector ops menu


vector 4Sphere [1,2,3]4Sphere
¥ ¸ [3.741... o1.107... o.640...]
Displays the row or column vector in spherical
form [r oq of]. [2,opà4,3]4Sphere
¥ ¸ [3.605... o.785... o.588...]
vector must be of dimension 3 and can be either a
row or a column vector. p 3ø ‡13
¸ [‡13 o ocosê ( )]
4 13
Note: 4Sphere is a display-format instruction,
not a conversion function. You can use it only at Z

the end of an entry line. φ


(ρ,θ,φ)

startTmr() CATALOG
startTmr() ⇒ integer startTmr() ¸ 148083315
Returns the current value of the clock in its checkTmr(148083315) 34
integer representation, giving the starttime for a
timer. You can enter the starttime as an argument
in checkTmr() to determine how many seconds
have elapsed. startTmr()!Timer1
©
You can run multiple timers simultaneously. startTmr()!Timer2
Note: See also checkTmr() and timeCnv(). ©
checkTmr(Timer1)!Timer1Value
©
checkTmr(Timer2)!Timer2Value

246 Appendix A: Functions and Instructions


stdDev() MATH/Statistics menu
stdDev(list[, freqlist]) ⇒ expression stdDev({a,b,c}) ¸
stdDev({1,2,5,ë 6,3,ë 2}) ¸
Returns the standard deviation of the elements in
list.
Each freqlist element counts the number of
consecutive occurrences of the corresponding
element in list.
Note: list must have at least two elements.
stdDev({1.3,2.5,L6.4},{3,2,5})
¸ 4.33345
stdDev(matrix1[, freqmatrix]) ⇒ matrix stdDev([1,2,5;-3,0,1;.5,.7,3])
¸
Returns a row vector of the standard deviations [2.179... 1.014... 2]
of the columns in matrix1.
stdDev([L1.2,5.3;2.5,7.3;6,L4],
Each freqmatrix element counts the number of [4,2;3,3;1,7]) ¸
consecutive occurrences of the corresponding [2.7005,5.44695]
element in matrix1.
Note: matrix1 must have at least two rows.

StoGDB CATALOG
StoGDB GDBvar

Creates a Graph database (GDB) variable that


contains the current:
* Graphing mode
* Y= functions
* Window variables
* Graph format settings
1- or 2-Graph setting (split screen and ratio
settings if 2-Graph mode)
Angle mode
Real/complex mode
* Initial conditions if Sequence or
Diff Equations mode
* Table flags
* tblStart, @tbl, tblInput
You can use RclGDB GDBvar to restore the graph
environment.
*Note: These items are saved for both graphs in
2-Graph mode.

Stop CATALOG
Stop Program segment:
Used as a program instruction to stop program ©
execution. For i,1,10,1
If i=5
Stop
EndFor
©

Appendix A: Functions and Instructions 247


StoPic CATALOG
StoPic picVar [, pxlRow, pxlCol] [, width, height]

Displays the graph screen and copies a


rectangular area of the display to the variable
picVar.
pxlRow and pxlCol, if included, specify the upper-
left corner of the area to copy (defaults are 0, 0).
width and height, if included, specify the
dimensions, in pixels, of the area. Defaults are
the width and height, in pixels, of the current
graph screen.

Store See ! (store), page 277.

string() MATH/String menu


string(expression) ⇒ string string(1.2345) ¸ "1.2345"
Simplifies expression and returns the result as a string(1+2) ¸ "3"
character string.
string(cos(x)+‡(3)) ¸
"cos(x) + ‡(3)"

Style CATALOG
Style equanum, stylePropertyString Style 1,"thick" ¸ Done
Sets the system graphing function equanum in the Style 10,"path" ¸ Done
current graph mode to use the graphing property
stylePropertyString. Note: In function graphing mode, these
examples set the style of y1(x) to "Thick" and
equanum must be an integer from 1–99 and the y10(x) to "Path".
function must already exist.
stylePropertyString must be one of: "Line", "Dot",
"Square", "Thick", "Animate", "Path",
"Above", or "Below".
Note that in parametric graphing, only the xt half
of the pair contains the style information.
Valid style names vs. graphing mode:
Function: all styles
Parametric/Polar: line, dot, square, thick,
animate, path
Sequence: line, dot, square, thick
3D: none
Diff Equations: line, dot, square, thick,
animate, path
Note: Capitalization and blank spaces are
optional when entering stylePropertyString names.

248 Appendix A: Functions and Instructions


subMat() CATALOG
subMat(matrix1[, startRow] [, startCol] [, endRow] [1,2,3;4,5,6;7,8,9]! m1 ¸
[, endCol]) ⇒ matrix
1 2 3
Returns the specified submatrix of matrix1. 4 5 6
7 8 9
Defaults: startRow=1, startCol=1, endRow=last subMat(m1,2,1,3,2) ¸
row, endCol=last column. 4 5
[7 8]
subMat(m1,2,2) ¸
5 6
[8 9]

Sum (Sigma) See G(), page 273.

sum() MATH/List menu


sum(list[, start[, end]]) ⇒ expression sum({1,2,3,4,5}) ¸ 15
Returns the sum of the elements in list. sum({a,2a,3a}) ¸ 6ø a
Start and end are optional. They specify a range of sum(seq(n,n,1,10)) ¸ 55
elements.
sum({1,3,5,7,9},3) ¸ 21

sum(matrix1[, start[, end]]) ⇒ matrix sum([1,2,3;4,5,6]) ¸[5 7 9]


Returns a row vector containing the sums of the sum([1,2,3;4,5,6;7,8,9]) ¸
elements in the columns in matrix1. [12 15 18]
Start and end are optional. They specify a range of sum([1,2,3;4,5,6;7,8,9],2,3)
rows.
¸
[11,13,15]

switch() CATALOG
switch([integer1]) ⇒ integer
Returns the number of the active window. Also
can set the active window.
Note: Window 1 is left or top; Window 2 is right
or bottom.
If integer1 = 0, returns the active window number.
switch() ¸
If integer1 = 1, activates window 1 and returns
the previously active window number.
If integer1 = 2, activates window 2 and returns
the previously active window number.
If integer1 is omitted, switches windows and
returns the previously active window number.
integer1 is ignored if the
TI-89 Titanium/Voyage™ 200 is not displaying a
split screen.

Appendix A: Functions and Instructions 249


T (transpose) MATH/Matrix menu
matrix1î ⇒ matrix [1,2,3;4,5,6;7,8,9]! mat1 ¸
Returns the complex conjugate transpose of  1 2 3
matrix1.  4 5 6
 7 8 9
mat1î ¸
 1 4 7
 2 5 8
 3 6 9
a b
[a,b;c,d]! mat2 ¸ [c d]

a c
mat2î ¸ [b d]

[1+i,2+i;3+i,4+i]! mat3 ¸
1+i 2+i
[3+i 4+i]

1ì i 3ì i
mat3î ¸ [2ì i 4ì i]

Table CATALOG
Table expression1[, expression2] [, var1] In function graphing mode.
Builds a table of the specified expressions or Table 1.25xù cos(x) ¸
functions.
The expressions in the table can also be graphed.
Expressions entered using the Table or Graph
commands are assigned increasing function
numbers starting with 1. The expressions can be
modified or individually deleted using the edit
functions available when the table is displayed by Table cos(time),time ¸
pressing † Header. The currently selected
functions in the Y= Editor are temporarily
ignored.
To clear the functions created by Table or
Graph, execute the ClrGraph command or
display the Y= Editor.
If the var parameter is omitted, the current graph-
mode independent variable is assumed. Some
valid variations of this instruction are:
Function graphing: Table expr, x
Parametric graphing: Table xExpr, yExpr, t
Polar graphing: Table expr, q

Note: The Table command is not valid for 3D,


sequence, or diff equations graphing. As an
alternative, you may want to use BldData.

250 Appendix A: Functions and Instructions


tan() @ 2 Y key H Y key
tan(expression1) ⇒ expression In Degree angle mode:
tan(list1) ⇒ list
tan((p/4)ô ) ¸ 1
tan(expression1) returns the tangent of the
argument as an expression. tan(45) ¸ 1
tan(list1) returns a list of the tangents of all tan({0,60,90}) ¸
elements in list1. {0 ‡3 undef}
Note: The argument is interpreted as either a
In Radian angle mode:
degree or radian angle, according to the current
angle mode. You can use ó or ô to override the tan(p/4) ¸ 1
angle mode temporarily.
tan(45¡) ¸ 1

tan({p,p/3,-p,p/4}) ¸
{0 ‡3 0 1}

tan(squareMatrix1) ⇒ squareMatrix In Radian angle mode:


Returns the matrix tangent of squareMatrix1. This tan([1,5,3;4,2,1;6,ë 2,1]) ¸
is not the same as calculating the tangent of each
element. For information about the calculation ë 28.291… 26.088… 11.114… 
method, refer to cos(). 12.117… ë 7.835… ë 5.481… 
squareMatrix1 must be diagonalizable. The result
36.818… ë 32.806… ë 10.459… 
always contains floating-point numbers.

tanê () @ ¥ S key H 2 S key


tanê (expression1) ⇒ expression In Degree angle mode:
tanê (list1) ⇒ list
tanê (1) ¸ 45
tanê (expression1) returns the angle whose
tangent is expression1 as an expression. In Radian angle mode:
tanê (list1) returns a list of the inverse tangents tanê ({0,.2,.5}) ¸
of each element of list1. {0 .197... .463...}
Note: The result is returned as either a degree or
radian angle, according to the current angle
mode setting.
tanê(squareMatrix1) ⇒ squareMatrix In Radian angle mode:
Returns the matrix inverse tangent of tanê([1,5,3;4,2,1;6,ë 2,1])
squareMatrix1. This is not the same as calculating ¸
the inverse tangent of each element. For
information about the calculation method, refer
to cos(). ë.083… 1.266… .622… 
.748… .630… ë.070… 
squareMatrix1 must be diagonalizable. The result 1.686… ë 1.182… .455… 
always contains floating-point numbers.

tanh() MATH/Hyperbolic menu


tanh(expression1) ⇒ expression tanh(1.2) ¸ .833...
tanh(list1) ⇒ list
tanh({0,1}) ¸ {0 tanh(1)}
tanh(expression1) returns the hyperbolic tangent
of the argument as an expression.
tanh(list) returns a list of the hyperbolic tangents
of each element of list1.

Appendix A: Functions and Instructions 251


tanh(squareMatrix1) ⇒ squareMatrix In Radian angle mode:
Returns the matrix hyperbolic tangent of tanh([1,5,3;4,2,1;6,ë 2,1])
squareMatrix1. This is not the same as calculating ¸
the hyperbolic tangent of each element. For
information about the calculation method, refer
to cos(). ë.097… .933… .425… 
.488… .538… ë.129… 
squareMatrix1 must be diagonalizable. The result 1.282… ë 1.034… .428… 
always contains floating-point numbers.

tanhê () MATH/Hyperbolic menu


tanhê (expression1) ⇒ expression In rectangular complex format mode:
tanhê (list1) ⇒ list
tanhê (0) ¸ 0
tanhê (expression1) returns the inverse hyperbolic
tangent of the argument as an expression. tanhê ({1,2.1,3}) ¸
ln(2) p
tanhê (list1) returns a list of the inverse {ˆ .518... ì 1.570...ø i 2 ì 2ø i}
hyperbolic tangents of each element of list1.
tanhê(squareMatrix1) ⇒ squareMatrix In Radian angle mode and Rectangular
complex format mode:
Returns the matrix inverse hyperbolic tangent of
squareMatrix1. This is not the same as calculating tanhê([1,5,3;4,2,1;6,ë 2,1])
the inverse hyperbolic tangent of each element. ¸
For information about the calculation method,
refer to cos(). ë.099…+.164…øi .267…ì 1.490…øi …

ë.087…ì.725…øi .479…ì.947…øi … 
squareMatrix1 must be diagonalizable. The result .511…ì 2.083…øi ë.878…+1.790…øi … 
always contains floating-point numbers.

taylor() MATH/Calculus menu


taylor(expression1, var, order[, point]) ⇒ expression taylor(e^(‡(x)),x,2) ¸
Returns the requested Taylor polynomial. The taylor(e^(t),t,4)|t=‡(x) ¸
polynomial includes non-zero terms of integer
degrees from zero through order in (var minus
point). taylor() returns itself if there is no
truncated power series of this order, or if it would
require negative or fractional exponents. Use
substitution and/or temporary multiplication by a
power of taylor(1/(xù (xì 1)),x,3) ¸
(var minus point) to determine more general
power series.
point defaults to zero and is the expansion point.

expand(taylor(x/(xù(xì1)),
x,4)/x,x) ¸

252 Appendix A: Functions and Instructions


tCollect() MATH\Algebra\Trig menu
tCollect(expression1) ⇒ expression tCollect((cos(a))^2) ¸
cos(2ø a) + 1
Returns an expression in which products and
integer powers of sines and cosines are converted 2
to a linear combination of sines and cosines of
multiple angles, angle sums, and angle tCollect(sin(a)cos(b)) ¸
differences. The transformation converts sin(aì b)+sin(a+b)
trigonometric polynomials into a linear 2
combination of their harmonics.
Sometimes tCollect() will accomplish your goals
when the default trigonometric simplification
does not. tCollect() tends to reverse
transformations done by tExpand(). Sometimes
applying tExpand() to a result from tCollect(),
or vice versa, in two separate steps simplifies an
expression.

tExpand() MATH\Algebra\Trig menu


tExpand(expression1) ⇒ expression tExpand(sin(3f)) ¸
4ø sin(f)ø (cos(f))ñ ì sin(f)
Returns an expression in which sines and cosines
of integer-multiple angles, angle sums, and angle tExpand(cos(aì b)) ¸
differences are expanded. Because of the identity cos(a)ø cos(b)+sin(a)ø sin(b)
(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.
Sometimes tExpand() will accomplish your goals
when the default trigonometric simplification
does not. tExpand() tends to reverse
transformations done by tCollect(). Sometimes
applying tCollect() to a result from tExpand(),
or vice versa, in two separate steps simplifies an
expression.
Note: Degree-mode scaling by p/180 interferes
with the ability of tExpand() to recognize
expandable forms. For best results, tExpand()
should be used in Radian mode.

Text CATALOG
Text promptString Text "Have a nice day." ¸
Done
Displays the character string promptString dialog
box.
If used as part of a Dialog...EndDlog block,
promptString is displayed inside that dialog box. If
used as a standalone instruction, Text creates a
dialog box to display the string.

Then See If, page 196.

timeCnv() CATALOG
timeCnv(seconds) ⇒ list timeCnv(152442117)
{1764 9 1 57}
Converts seconds to units of time that can be
more easily understood for evaluation. The list is
in {days,hours,minutes,seconds} format.
Note: See also checkTmr() and startTmr().

Appendix A: Functions and Instructions 253


Title CATALOG
Title titleString, [Lbl] Program segment:
Creates the title of a pull-down menu or dialog ©
box when used inside a Toolbar or Custom :Dialog
construct, or a Dialog...EndDlog block. :Title "This is a dialog
Note: Lbl is only valid in the Toolbar construct. box"
When present, it allows the menu choice to :Request "Your name",Str1
branch to a specified label inside the program. :Dropdown "Month you were
born",
seq(string(i),i,1,12),Var1
:EndDlog
©

tmpCnv() CATALOG
tmpCnv(expression1_¡tempUnit1, _¡tempUnit2) tmpCnv(100_¡c,_¡f) ¸ 212.ø_¡F
⇒ expression _¡tempUnit2
tmpCnv(32_¡f,_¡c) ¸ 0.ø_¡C
Converts a temperature value specified by
expression1 from one unit to another. Valid tmpCnv(0_¡c,_¡k) ¸ 273.15ø_¡K
temperature units are:
tmpCnv(0_¡f,_¡r) ¸ 459.67ø_¡R
_¡C Celsius
_¡F Fahrenheit
_¡K Kelvin Note: To select temperature units from a
_¡R Rankine menu, press:
For ¡, press 2 “. @ 29
@ For _ , press ¥ q.
H ¥À
H For _ , press 2 q.
For example, 100_¡C converts to 212_¡F:

0 100
_¡C

_¡F
32 212

To convert a temperature range, use @tmpCnv()


instead.

254 Appendix A: Functions and Instructions


@tmpCnv() CATALOG
@tmpCnv(expression1_¡tempUnit1, _¡tempUnit2) To get @, you can press ¥ c ¤ [D]
⇒ expression _¡tempUnit2 (or 2 ¿ 1 5).
Converts a temperature range (the difference @tmpCnv(100_¡c,_¡f) ¸
between two temperature values) specified by 180.ø_¡F
expression1 from one unit to another. Valid
temperature units are: @tmpCnv(180_¡f,_¡c) ¸
100.ø_¡C
_¡C Celsius
_¡F Fahrenheit @tmpCnv(100_¡c,_¡k) ¸
_¡K Kelvin 100.ø_¡K
_¡R Rankine
For ¡, press 2 “. @tmpCnv(100_¡f,_¡r) ¸
@ For _ , press ¥ q. 100.ø_¡R
H For _ , press 2 q.
@tmpCnv(1_¡c,_¡f) ¸
1_¡C and 1_¡K have the same magnitude, as do 1.8ø_¡F
1_¡F and 1_¡R. However, 1_¡C is 9/5 as large as
1_¡F. Note: To select temperature units from a
menu, press:
@ 29
H ¥À

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().
Toolbar CATALOG
Toolbar Program segment:
block
EndTBar ©
:Toolbar
Creates a toolbar menu. : Title "Examples"
block can be either a single statement or a : Item "Trig", t
sequence of statements separated with the “:” : Item "Calc", c
character. The statements can be either Title or : Item "Stop", Pexit
Item. :EndTbar
©
Items must have labels. A Title must also have a
label if it does not have an item. Note: When run in a program, this segment
creates a menu with three choices that branch
to three places in the program.

Appendix A: Functions and Instructions 255


Trace CATALOG
Trace

Draws a Smart Graph and places the trace cursor


on the first defined Y= function at the previously
defined cursor position, or at the reset position if
regraphing was necessary.
Allows operation of the cursor and most keys
when editing coordinate values. Several keys,
such as the function keys, O, and 3, are
not activated during trace.
Note: Press ¸ to resume operation.

Try CATALOG
Try Program segment:
block1
Else ©
block2 :Try
EndTry : NewFold(temp)
: Else
Executes block1 unless an error occurs. Program
: ¦Already exists
execution transfers to block2 if an error occurs in
block1. Variable errornum contains the error : ClrErr
number to allow the program to perform error :EndTry
recovery. ©

block1 and block2 can be either a single statement Note: See ClrErr and PassErr.
or a series of statements separated with the “:”
character.

TwoVar MATH/Statistics menu


TwoVar list1, list2[, [list3] [, list4, list5]] {0,1,2,3,4,5,6}! L1 ¸
{0 1 2 ...}
Calculates the TwoVar statistics and updates all
the system statistics variables. {0,2,3,4,3,4,6}! L2 ¸
{0 2 3 ...}
All the lists must have equal dimensions except TwoVar L1,L2 ¸ Done
for list5. ShowStat ¸
list1 represents xlist.
list2 represents ylist.
list3 represents frequency.
list4 represents category codes.
list5 represents category include list.
Note: list1 through list4 must be a variable name
or c1–c99 (columns in the last data variable
shown in the Data/Matrix Editor). list5 does not
have to be a variable name and cannot be c1–c99
.

256 Appendix A: Functions and Instructions


Unarchiv CATALOG
Unarchiv var1 [, var2] [, var3] … 10!arctest ¸ 10
Archive arctest ¸ Done
Moves the specified variables from the user data
archive memory to RAM. 5ù arctest ¸ 50
15!arctest ¸
You can access an archived variable the same as
you would a variable in RAM. However, you
cannot delete, rename, or store to an archived
variable because it is locked automatically.
To archive variables, use Archive.
N
Unarchiv arctest ¸ Done
15!arctest ¸ 15

unitV() MATH/Matrix/Vector ops menu


unitV(vector1) ⇒ vector unitV([a,b,c]) ¸
a b c
Returns either a row- or column-unit vector, [ ]
depending on the form of vector1. añ +bñ +cñ añ +bñ +cñ añ +bñ +cñ

vector1 must be either a single-row matrix or a unitV([1,2,1]) ¸


single-column matrix. ‡6 ‡6 ‡6
[6 3 6]

 14 
‡14

unitV([1;2;3]) ¸
‡14 
3ø7 ‡14
 14 
Unlock CATALOG
Unlock var1[, var2][, var3]...

Unlocks the specified variables.


Note: The variables can be locked using the
Lock command.

variance() MATH/Statistics menu


variance(list[, freqlist]) ⇒ expression variance({a,b,c}) ¸
añ -aø (b+c)+bñ -bø c+cñ
Returns the variance of list.
3
Each freqlist element counts the number of
consecutive occurrences of the corresponding variance({1,2,5,ë 6,3,ë 2}) ¸
element in list. 31/2
Note: list must contain at least two elements. variance({1,3,5},{4,6,2}) ¸
68/33
variance(matrix1[, freqmatrix]) ⇒ matrix variance([1,2,5;ë 3,0,1;
.5,.7,3]) ¸ [4.75 1.03 4]
Returns a row vector containing the variance of
each column in matrix1. variance([L1.1,2.2;3.4,5.1;
L2.3,4.3],[6,3;2,4;5,1]) ¸
Each freqmatrix element counts the number of [3.91731,2.08411]
consecutive occurrences of the corresponding
element in matrix1.
Note: matrix1 must contain at least two rows.

Appendix A: Functions and Instructions 257


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 when(x<0,x+3)|x=5 ¸
an expression defined only in the region where when(x<0,3+x)
condition is true.
Use an undef falseResult to define an expression ClrGraph ¸
that graphs only on an interval. Graph when(x‚ë p and
x<0,x+3,undef) ¸

Omit only the unknownResult to define a two-piece Graph when(x<0,x+3,5ì x^2) ¸


expression.

Nest when() to define expressions that have @ "


more than two pieces. H ¥"

ClrGraph ¸ Done
Graph when(x<0,when(x<ë p,
4ù sin(x),2x+3),5ì x^2) ¸

when() is helpful for defining recursive functions. when(n>0,nù factoral(nì 1),1)


! factoral(n) ¸ Done
factoral(3) ¸ 6
3! ¸ 6

While CATALOG
While condition Program segment:
block
EndWhile ©
:1! i
Executes the statements in block as long as :0! temp
condition is true. :While i<=20
block can be either a single statement or a : temp+1/i! temp
sequence of statements separated with the “:” : i+1! i
character. :EndWhile
:Disp "sum of reciprocals up
to 20",temp
©

“With” See |, page 277.

258 Appendix A: Functions and Instructions


xor MATH/Test menu
Boolean expression1 xor Boolean expression2 ⇒ Boolean true xor true ¸ false
expression
(5>3) xor (3>5) ¸ true
Returns true if Boolean expression1 is true and
Boolean expression2 is false, or vice versa.
Returns false if Boolean expression1 and Boolean
expression2 are both true or both false. Returns a
simplified Boolean expression if either of the
original Boolean expressions cannot be resolved
to true or false.
Note: See or.
integer1 xor integer2 ⇒ integer In Hex base mode:
Compares two real integers bit-by-bit using 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
is 1 if either bit (but not both) is 1; the result is 0 In Bin base mode:
if both bits are 0 or both bits are 1. The returned
value represents the bit results, and is displayed 0b100101 xor 0b100 ¸0b100001
according to the Base mode. Note: A binary entry can have up to 32 digits
You can enter the integers in any number base. (not counting the 0b prefix). A hexadecimal
For a binary or hexadecimal entry, you must use entry can have up to 8 digits.
the 0b or 0h prefix, respectively. Without a prefix,
integers are treated as decimal (base 10).
If you enter a decimal integer that is too large for
a signed, 32-bit binary form, a symmetric modulo
operation is used to bring the value into the
appropriate range.
Note: See or.

XorPic CATALOG
XorPic picVar[, row] [, column]

Displays the picture stored in picVar on the current


Graph screen.
Uses xor logic for each pixel. Only those pixel
positions that are exclusive to either the screen or
the picture are turned on. This instruction turns
off pixels that are turned on in both images.
picVar must contain a pic data type.
row and column, if included, specify the pixel
coordinates for the upper left corner of the
picture. Defaults are (0, 0).

Appendix A: Functions and Instructions 259


zeros() MATH/Algebra menu
zeros(expression, var) ⇒ list zeros(aù x^2+bù x+c,x) ¸
Returns a list of candidate real values of var that
make expression=0. zeros() does this by {ë( bñ-4øaøc-+b)
2øa
bñ-4øaøc-b
2øa }
computing exp8list(solve(expression=0,var),var).
aù x^2+bù x+c|x=ans(1)[2] ¸ 0
For some purposes, the result form for zeros() is exact(zeros(aù (e^(x)+x)
more convenient than that of solve(). However, (sign (x)ì 1),x)) ¸ {}
the result form of zeros() cannot express implicit
solutions, solutions that require inequalities, or exact(solve(aù (e^(x)+x)
solutions that do not involve var. (sign (x)ì 1)=0,x)) ¸
e x + x = 0 or x>0 or a = 0
Note: See also cSolve(), cZeros(), and solve().
zeros({expression1, expression2}, {varOrGuess1,
varOrGuess2 [, … ]}) ⇒ matrix
Returns candidate real zeros of the simultaneous
algebraic expressions, where each varOrGuess
specifies an unknown whose value you seek.
Optionally, you can specify an initial guess for a
variable. Each varOrGuess must have the form:
variable
– or –
variable = real or non-real number
For example, x is valid and so is x=3.
If all of the expressions are polynomials and if
you do NOT specify any initial guesses, zeros()
uses the lexical Gröbner/Buchberger elimination
method to attempt to determine all real zeros.
For example, suppose you have a circle of radius r
at the origin and another circle of radius r
centered where the first circle crosses the positive
x-axis. Use zeros() to find the intersections.
As illustrated by r in the example to the right, zeros({x^2+y^2ì r^2,
simultaneous polynomial expressions can have (xì r)^2+y^2ì r^2},{x,y}) ¸
extra variables that have no values, but represent

2 
given numeric values that could be substituted r 3ør
later.
r 
2
ë 3ør
2 
Each row of the resulting matrix represents an
alternate zero, with the components ordered the 2
same as the varOrGuess list. To extract a row,
index the matrix by [row]. Extract row 2:

ans(1)[2] ¸ r ë 3ør

2 2 

260 Appendix A: Functions and Instructions


You can also (or instead) include unknowns that zeros({x^2+y^2ì r^2,
do not appear in the expressions. For example, (xì r)^2+y^2ì r^2},{x,y,z})
you can include z as an unknown to extend the ¸
previous example to two parallel intersecting

2 
cylinders of radius r. The cylinder zeros illustrate r 3ør
how families of zeros might contain arbitrary @1
r 
2
constants in the form @k, where k is an integer ë 3ør
suffix from 1 through 255. The suffix resets to 1
when you use ClrHome or ƒ 8:Clear Home. 2 2
@1

For polynomial systems, computation time or


memory exhaustion may depend strongly on the
order in which you list unknowns. If your initial
choice exhausts memory or your patience, try
rearranging the variables in the expressions
and/or varOrGuess list.
If you do not include any guesses and if any zeros({x+e^(z)ù yì 1,xì yì sin(z)
expression is non-polynomial in any variable but },{x,y}) ¸
all expressions are linear in the unknowns,
e øsin(z)+1 ë (sin(z)ì 1)
z
zeros() uses Gaussian elimination to attempt to
determine all real zeros.  e z +1 e z +1 
If a system is neither polynomial in all of its zeros({e^(z)ùyì1,ëyìsin(z)},
variables nor linear in its unknowns, zeros() {y,z}) ¸
determines at most one zero using an
approximate iterative method. To do so, the [.041… 3.183…]
number of unknowns must equal the number of
expressions, and all other variables in the
expressions must simplify to numbers.
Each unknown starts at its guessed value if there
is one; otherwise, it starts at 0.0.
Use guesses to seek additional zeros one by one. zeros({e^(z)ù yì 1,ë yì sin(z)},
For convergence, a guess may have to be rather {y,z=2p}) ¸
close to a zero.
[.001… 6.281…]

ZoomBox CATALOG
ZoomBox In function graphing mode:
Displays the Graph screen, lets you draw a box 1.25xù cos(x)! y1(x) ¸ Done
that defines a new viewing window, and updates ZoomStd:ZoomBox ¸
1st corner
the window. 2nd corner

The display after defining ZoomBox by


pressing ¸ the second time.

Appendix A: Functions and Instructions 261


ZoomData CATALOG
ZoomData In function graphing mode:
Adjusts the window settings based on the {1,2,3,4}! L1 ¸ {1 2 3 4}
currently defined plots (and data) so that all {2,3,4,5}! L2 ¸ {2 3 4 5}
statistical data points will be sampled, and newPlot 1,1,L1,L2 ¸ Done
displays the Graph screen. ZoomStd ¸
Note: Does not adjust ymin and ymax for
histograms.

@ "
H ¥"
ZoomData ¸

ZoomDec CATALOG
ZoomDec In function graphing mode:
Adjusts the viewing window so that @x and 1.25xù cos(x)! y1(x) ¸ Done
@y = 0.1 and displays the Graph screen with the ZoomStd ¸
origin centered on the screen.

@ "
H ¥"
ZoomDec ¸

262 Appendix A: Functions and Instructions


ZoomFit CATALOG
ZoomFit In function graphing mode:
Displays the Graph screen, and calculates the 1.25xù cos(x)! y1(x) ¸ Done
necessary window dimensions for the dependent ZoomStd ¸
variables to view all the picture for the current
independent variable settings.

@ "
H ¥"
ZoomFit ¸

ZoomIn CATALOG
ZoomIn In function graphing mode:
Displays the Graph screen, lets you set a center 1.25xù cos(x)! y1(x) ¸ Done
point for a zoom in, and updates the viewing ZoomStd:ZoomIn ¸
window.
The magnitude of the zoom is dependent on the
Zoom factors xFact and yFact. In 3D Graph mode,
the magnitude is dependent on xFact, yFact, and
zFact.

ZoomInt CATALOG
ZoomInt In function graphing mode:
Displays the Graph screen, lets you set a center 1.25xù cos(x)! y1(x) ¸ Done
point for the zoom, and adjusts the window ZoomStd:ZoomInt ¸
settings so that each pixel is an integer in all
directions.

Appendix A: Functions and Instructions 263


ZoomOut CATALOG
ZoomOut In function graphing mode:
Displays the Graph screen, lets you set a center 1.25xù cos(x)! y1(x) ¸ Done
point for a zoom out, and updates the viewing ZoomStd:ZoomOut ¸
window.
The magnitude of the zoom is dependent on the
Zoom factors xFact and yFact. In 3D Graph mode,
the magnitude is dependent on xFact, yFact, and
zFact.

ZoomPrev CATALOG
ZoomPrev

Displays the Graph screen, and updates the


viewing window with the settings in use before
the last zoom.

ZoomRcl CATALOG
ZoomRcl

Displays the Graph screen, and updates the


viewing window using the settings stored with
the ZoomSto instruction.

ZoomSqr CATALOG
ZoomSqr In function graphing mode:
Displays the Graph screen, adjusts the x or y 1.25xù cos(x)! y1(x) ¸ Done
window settings so that each pixel represents an ZoomStd ¸
equal width and height in the coordinate system,
and updates the viewing window.
In 3D Graph mode, ZoomSqr lengthens the
shortest two axes to be the same as the longest
axis.

"
ZoomSqr ¸

264 Appendix A: Functions and Instructions


ZoomStd CATALOG
ZoomStd In function graphing mode:
Sets the window variables to the following 1.25xù cos(x)! y1(x) ¸ Done
standard values, and then updates the viewing ZoomStd ¸
window.
Function graphing:
x: [ë 10, 10, 1], y: [ë 10, 10, 1] and xres=2

Parametric graphing:
t: [0, 2p, p/24], x: [ë 10, 10, 1], y:[ë 10, 10, 1]

Polar graphing:
q: [0, 2p, p/24], x: [ë 10, 10, 1], y: [ë 10, 10, 1]

Sequence graphing:
nmin=1, nmax=10, plotStrt=1, plotStep=1,
x: [ë 10, 10, 1], y: [ë 10, 10, 1]

3D graphing:
eyeq°=20, eyef°=70, eyeψ°=0
x: [ë 10, 10, 14], y: [ë 10, 10, 14],
z: [ë 10, 10], ncontour=5

Differential equations graphing:


t: [0, 10, .1, 0], x: [ë 1, 10, 1], y: [ë 10, 10, 1],
ncurves=0, Estep=1, diftol=.001, fldres=14,
dtime=0

ZoomSto CATALOG
ZoomSto

Stores the current Window settings in the Zoom


memory. You can use ZoomRcl to restore the
settings.

ZoomTrig CATALOG
ZoomTrig In function graphing mode:
Displays the Graph screen, sets @x to p/24, and 1.25xù cos(x)! y1(x) ¸ Done
xscl to p/2, centers the origin, sets the y settings ZoomStd ¸
to [ë 4, 4, .5], and updates the viewing window.

@ "
H ¥"

ZoomTrig ¸

+ (add) « key
expression1 + expression2 ⇒ expression 56 ¸ 56
ans(1)+4 ¸ 60
Returns the sum of expression1 and expression2.
ans(1)+4 ¸ 64
ans(1)+4 ¸ 68
ans(1)+4 ¸ 72

Appendix A: Functions and Instructions 265


list1 + list2 ⇒ list {22,p,p/2}! L1 ¸ {22 p p/2}
matrix1 + matrix2 ⇒ matrix {10,5,p/2}! L2 ¸ {10 5 p/2}
Returns a list (or matrix) containing the sums of L1+L2 ¸ {32 p+5 p}
corresponding elements in list1 and list2 (or ans(1)+{p,ë 5,ë p} ¸
matrix1 and matrix2).
{p+32 p 0}
Dimensions of the arguments must be equal.
[a,b;c,d]+[1,0;0,1] ¸
a+1 b
[ c d+1]

expression + list1 ⇒ list 15+{10,15,20} ¸ {25 30 35}


list1 + expression ⇒ list
{10,15,20}+15 ¸ {25 30 35}
Returns a list containing the sums of expression
and each element in list1.
expression + matrix1 ⇒ matrix 20+[1,2;3,4] ¸
matrix1 + expression ⇒ matrix
21 2
Returns a matrix with expression added to each [3 24]
element on the diagonal of matrix1. matrix1 must
be square.
Note: Use .+ (dot plus) to add an expression to
each element.

ì (subtract) | key
expression1 - expression2 ⇒ expression 6ì 2 ¸ 4
Returns expression1 minus expression2. 5ø p
pì pà6 ¸
6

list1 - list2 ⇒ list {22,p,pà2}ì {10,5,pà2} ¸


matrix1 - matrix2 ⇒ matrix {12 pì 5 0}
Subtracts each element in list2 (or matrix2) from [3,4]ì [1,2] ¸ [2 2]
the corresponding element in list1 (or matrix1),
and returns the results.
Dimensions of the arguments must be equal.
expression - list1 ⇒ list 15ì {10,15,20} ¸ {5 0 -5}
list1 - expression ⇒ list
{10,15,20}ì 15 ¸ {-5 0 5}
Subtracts each list1 element from expression or
subtracts expression from each list1 element, and
returns a list of the results.
expression - matrix1 ⇒ matrix 20ì [1,2;3,4] ¸
matrix1 - expression ⇒ matrix 19 ë2
[ë 3 16]
expression ì matrix1 returns a matrix of expression
times the identity matrix minus matrix1. matrix1
must be square.
matrix1 ì expression returns a matrix of expression
times the identity matrix subtracted from matrix1.
matrix1 must be square.
Note: Use .. (dot minus) to subtract an
expression from each element.

ù (multiply) p key
expression1 ù expression2 ⇒ expression 2ù 3.45 ¸ 6.9
Returns the product of expression1 and expression2. xù yù x ¸ x2ø y

266 Appendix A: Functions and Instructions


list1ù list2 ⇒ list {1.0,2,3}ù {4,5,6} ¸{4. 10 18}
Returns a list containing the products of the b
corresponding elements in list1 and list2. {2àa,3à2}ù {añ,bà3} ¸{2ø a 2}
Dimensions of the lists must be equal.

matrix1 ù matrix2 ⇒ matrix [1,2,3;4,5,6]ù [a,d;b,e;c,f]


¸
Returns the matrix product of matrix1 and matrix2.
The number of rows in matrix1 must equal the
number of columns in matrix2.

expression ù list1 ⇒ list pù {4,5,6} ¸ {4ø p 5ø p 6ø p}


list1 ù expression ⇒ list
Returns a list containing the products of
expression and each element in list1.
expression ù matrix1 ⇒ matrix .01 .02
matrix1 ù expression ⇒ matrix [1,2;3,4]ù.01 ¸ [.03 .04]
Returns a matrix containing the products of
expression and each element in matrix1. l 0 0
lù identity(3) ¸ 0 l 0
Note: Use .ù (dot multiply) to multiply an 0 0 l
expression by each element.

à (divide) e key
expression1 à expression2 ⇒ expression 2/3.45 ¸ .57971
Returns the quotient of expression1 divided by x^3/x ¸ x2
expression2.
list1 à list2 ⇒ list {1.0,2,3}/{4,5,6} ¸
{.25 2/5 1/2}
Returns a list containing the quotients of list1
divided by list2.
Dimensions of the lists must be equal.
expression à list1 ⇒ list a/{3,a,‡(a)} ¸
list1 à expression ⇒ list a 
 1 ‡a
Returns a list containing the quotients of 3 
expression divided by list1 or list1 divided by
expression. {a,b,c}/(aù bù c) ¸

1 1 1
{bø c aø c aø b}

matrix1 à expression ⇒ matrix [a,b,c]/(aù bù c) ¸


Returns a matrix containing the quotients of 1 1 1
matrix1àexpression. [bø c aø c aø b]
Note: Use . / (dot divide) to divide an expression
by each element.

Appendix A: Functions and Instructions 267


^ (power) Z key
expression1 ^ expression2 ⇒ expression 4^2 ¸ 16
list1 ^ list2 ⇒ list
{a,2,c}^{1,b,3} ¸ {a 2 b cò }
Returns the first argument raised to the power of
the second argument.
For a list, returns the elements in list1 raised to
the power of the corresponding elements in list2.
In the real domain, fractional powers that have
reduced exponents with odd denominators use
the real branch versus the principal branch for
complex mode.
expression ^ list1 ⇒ list 1
p^{a,2,ë 3} ¸ {p a pñ pò }
Returns expression raised to the power of the
elements in list1.
list1 ^ expression ⇒ list {1,2,3,4}^ë 2 ¸
Returns the elements in list1 raised to the power {1 1/4 1/9 1/16 }
of expression.
squareMatrix1 ^ integer ⇒ matrix [1,2;3,4]^2 ¸
[1,2;3,4]^ë 1 ¸
Returns squareMatrix1 raised to the integer power.
[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 [a,2;b,3].+[c,4;5,d] ¸
expression .+ matrix1 ⇒ matrix x.+[c,4;5,d] ¸
matrix1 .+ matrix2 returns a matrix that is the sum
of each pair of corresponding elements in matrix1
and matrix2.
expression .+ matrix1 returns a matrix that is the
sum of expression and each element in matrix1.

.. (dot subt.) ¶ | keys


matrix1 .ì matrix2 ⇒ matrix [a,2;b,3].ì [c,4;d,5] ¸
expression .ì matrix1 ⇒ matrix x.ì [c,4;d,5] ¸
matrix1 .ì matrix2 returns a matrix that is the
difference between each pair of corresponding
elements in matrix1 and matrix2.
expression .ì matrix1 returns a matrix that is the
difference of expression and each element in
matrix1.

268 Appendix A: Functions and Instructions


.ù (dot mult.) ¶ p keys
matrix1 .ù matrix2 ⇒ matrix [a,2;b,3].ù [c,4;5,d] ¸
expression .ù matrix1 ⇒ matrix
x.ù [a,b;c,d] ¸
matrix1 . ù matrix2 returns a matrix that is the
product of each pair of corresponding elements in
matrix1 and matrix2.
expression . ù matrix1 returns a matrix containing
the products of expression and each element in
matrix1.

. / (dot divide) ¶ e keys


matrix1 . / matrix2 ⇒ matrix [a,2;b,3]./[c,4;5,d] ¸
expression . / matrix1 ⇒ matrix x./[c,4;5,d] ¸
matrix1 . / matrix2 returns a matrix that is the
quotient of each pair of corresponding elements
in matrix1 and matrix2.
expression . / matrix1 returns a matrix that is the
quotient of expression and each element in matrix1.

.^ (dot power) ¶ Z keys


matrix1 .^ matrix2 ⇒ matrix [a,2;b,3].^[c,4;5,d] ¸
expression . ^ matrix1 ⇒ matrix
x.^[c,4;5,d] ¸
matrix1 .^ matrix2 returns a matrix where each
element in matrix2 is the exponent for the
corresponding element in matrix1.
expression . ^ matrix1 returns a matrix where each
element in matrix1 is the exponent for expression.

ë (negate) · key and MATH/Base menu


ëexpression1 ⇒ expression ë 2.43 ¸ ë 2.43
ë list1 ⇒ list
ë matrix1 ⇒ matrix ë {ë 1,0.4,1.2í 19} ¸
{1 ë.4 ë 1.2í 19}
Returns the negation of the argument.
ë aù ë b ¸ aø b
For a list or matrix, returns all the elements
negated.
If expression1 is a binary or hexadecimal integer, In Bin base mode:
the negation gives the two’s complement. 0b100101 4dec ¸ 37
Important: Zero, not the letter O.

ë 0b100101 ¸
0b11111111111111111111111111011011

ans(1) 4dec ¸ ë 37
Note: To type 4, press 2 p.

% (percent) CHAR/Punctuation menu


expression1 % ⇒ expression 13% ¥ ¸ .13
list1 % ⇒ list
matrix1 % ⇒ matrix {1, 10, 100}% ¥ ¸
{.01 .1 1.}
argument
Returns .
100
For a list or matrix, returns a list or matrix with
each element divided by 100.

Appendix A: Functions and Instructions 269


= (equal) Á key
expression1 = expression2 ⇒ Boolean expression Example function listing using math test
list1 = list2 ⇒ Boolean list symbols: =, ƒ, <, c, >, ‚
matrix1 = matrix2 ⇒ Boolean matrix
:g(x)
Returns true if expression1 is determined to be
:Func
equal to expression2.
:If xcë 5 Then
Returns false if expression1 is determined to not be : Return 5
equal to expression2. : ElseIf x>ë 5 and x<0 Then
Anything else returns a simplified form of the : Return ë x
equation. : ElseIf x‚0 and xƒ10 Then
: Return x
For lists and matrices, returns comparisons : ElseIf x=10 Then
element by element. : Return 3
:EndIf
:EndFunc

Graph g(x) ¸

≠ ¥ Á key
expression1 ≠ expression2 ⇒ Boolean expression See "=" (equal) example.
list1 ≠ list2 ⇒ Boolean list
matrix1 ≠ matrix2 ⇒ Boolean matrix
Returns true if expression1 is determined to be not
equal to expression2.
Returns false if expression1 is determined to be
equal to expression2.
Anything else returns a simplified form of the
equation.
For lists and matrices, returns comparisons
element by element.

< 2 Â key
expression1 < expression2 ⇒ Boolean expression See "=" (equal) example.
list1 < list2 ⇒ Boolean list
matrix1 < matrix2 ⇒ Boolean matrix
Returns true if expression1 is determined to be
less than expression2.
Returns false if expression1 is determined to be
greater than or equal to expression2.
Anything else returns a simplified form of the
equation.
For lists and matrices, returns comparisons
element by element.

270 Appendix A: Functions and Instructions


≤ ¹ µ key
expression1 ≤ expression2 ⇒ Boolean expression See "=" (equal) example.
list1 ≤ list2 ⇒ Boolean list
matrix1 ≤ matrix2 ⇒ Boolean matrix
Returns true if expression1 is determined to be
less than or equal to expression2.
Returns false if expression1 is determined to be
greater than expression2.
Anything else returns a simplified form of the
equation.
For lists and matrices, returns comparisons
element by element.

> 2 Ã key
expression1 > expression2 ⇒ Boolean expression See "=" (equal) example.
list1 > list2 ⇒ Boolean list
matrix1 > matrix2 ⇒ Boolean matrix
Returns true if expression1 is determined to be
greater than expression2.
Returns false if expression1 is determined to be
less than or equal to expression2.
Anything else returns a simplified form of the
equation.
For lists and matrices, returns comparisons
element by element.

≥ ¹ ¶ key
expression1 ≥ expression2 ⇒ Boolean expression See "=" (equal) example.
list1 ≥ list2 ⇒ Boolean list
matrix1 ≥ matrix2 ⇒ Boolean matrix
Returns true if expression1 is determined to be
greater than 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 H 2 W key


expression1! ⇒ expression 5! ¸ 120
list1! ⇒ list
matrix1! ⇒ matrix {5,4,3}! ¸ {120 24 6}
Returns the factorial of the argument. 1 2
[1,2;3,4]! ¸ [6 24]
For a list or matrix, returns a list or matrix of
factorials of the elements.
The TI-89 computes a numeric value for only non-
negative whole-number values.

Appendix A: Functions and Instructions 271


& (append) @ ¥ p key H 2 H key
string1 & string2 ⇒ string "Hello " & "Nick" ¸
"Hello Nick"
Returns a text string that is string2 appended to
string1.

‰() (integrate) 2 < key


‰(expression1, var[, lower] [,upper]) ⇒ expression
‰(list1,var [,order]) ⇒ list
‰(matrix1,var [,order]) ⇒ matrix

Returns the integral of expression1 with respect to bò aò


the variable var from lower to upper. ‰(x^2,x,a,b) ¸ -
3 3
Returns an anti-derivative if lower and upper are xò
omitted. A symbolic constant of integration such ‰(x^2,x) ¸
3
as C is omitted.
aø xò
However, lower is added as a constant of ‰(aù x^2,x,c) ¸ +c
integration if only upper is omitted. 3

Equally valid anti-derivatives might differ by a ‰(1/(2ì cos(x)),x)! tmp(x) ¸


numeric constant. Such a constant might be ClrGraph:Graph tmp(x):Graph
disguised—particularly when an anti-derivative 1/(2ì cos(x)):Graph ‡(3)
contains logarithms or inverse trigonometric (2tanê (‡(3)(tan(x/2)))/3)
functions. Moreover, piecewise constant ¸
expressions are sometimes added to make an
anti-derivative valid over a larger interval than
the usual formula.

‰() returns itself for pieces of expression1 that it ‰(bù e^(ë x^2)+a/(x^2+a^2),x)
cannot determine as an explicit finite ¸
combination of its built-in functions and
operators.
When lower and upper are both present, an
attempt is made to locate any discontinuities or
discontinuous derivatives in the interval lower <
var < upper and to subdivide the interval at those
places.
For the AUTO setting of the Exact/Approx mode,
numerical integration is used where applicable
when an anti-derivative or a limit cannot be
determined.
For the APPROX setting, numerical integration is ‰(e^(ë x^2),x,ë 1,1)¥ ¸ 1.493...
tried first, if applicable. Anti-derivatives are
sought only where such numerical integration is
inapplicable or fails.
‰() can be nested to do multiple integrals. ‰(‰(ln(x+y),y,0,x),x,0,a) ¸
Integration limits can depend on integration
variables outside them.
Note: See also nInt().

272 Appendix A: Functions and Instructions


‡() (square root) 2 ] key
‡ (expression1) ⇒ expression ‡(4) ¸ 2
‡ (list1) ⇒ list
‡({9,a,4}) ¸ {3 ‡a 2}
Returns the square root of the argument.
For a list, returns the square roots of all the
elements in list1.

Π() (product) MATH/Calculus menu


Π(expression1, var, low, high) ⇒ expression 1
Π(1/n,n,1,5) ¸
Evaluates expression1 for each value of var from 120
low to high, and returns the product of the results.
Π(k^2,k,1,n) ¸ (n!)ñ

Π({1/n,n,2},n,1,5) ¸
1
{120 120 32}
Π(expression1, var, low, lowì 1) ⇒ 1 Π(k,k,4,3) ¸ 1
Π(expression1, var, low, high) ⇒ 1/Π( expression1, Π(1/k,k,4,1) ¸ 6
var, high+1, lowì 1) if high < lowì 1
Π(1/k,k,4,1)ù Π(1/k,k,2,4) ¸
1/4

G() (sum) MATH/Calculus menu


G (expression1, var, low, high) ⇒ expression 137
G(1/n,n,1,5) ¸
Evaluates expression1 for each value of var from 60
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,ˆ) ¸
6
G (expression1, var, low, lowì 1) ⇒ 0 G(k,k,4,3) ¸ 0
G (expression1, var, low, high) ⇒ ë G ( expression1, G(k,k,4,1) ¸ ë5
var, high+1, lowì 1) if high < lowì 1
G(k,k,4,1)+G(k,k,2,4) ¸ 4

# (indirection) CATALOG
# varNameString Program segment:
Refers to the variable whose name is ©
varNameString. This lets you create and modify :Request "Enter Your
variables from a program using strings. Name",str1
:NewFold #str1
©
©
:For i,1,5,1
: ClrGraph
: Graph iù x
: StoPic #("pic" & string(i))
:EndFor
©

Appendix A: Functions and Instructions 273


ô (radian) MATH/Angle menu
expression1ô ⇒ expression In Degree or Radian angle mode:
list1ô ⇒ list
matrix1ô ⇒ matrix ‡2
cos((p/4)ô ) ¸ 2
In Degree angle mode, multiplies expression1 by
180/p. In Radian angle mode, returns expression1 cos({0ô,(p/12)ô,ë pô }) ¸
unchanged.
This function gives you a way to use a radian ( 3+1)ø 2
{1 ë 1}
angle while in Degree mode. (In Degree angle 4
mode, sin(), cos(), tan(), and polar-to-
rectangular conversions expect the angle
argument to be in degrees.)
Hint: Use ô if you want to force radians in a
function or program definition regardless of the
mode that prevails when the function or program
is used.

¡ (degree) 2 “ key
expression ¡ ⇒ value In Radian angle mode:
list1 ¡ ⇒ list ‡2
matrix1 ¡ ⇒ matrix cos(45¡) ¸ 2
In Radian angle mode, multiplies expression by
p/180. In Degree angle mode, returns expression cos({0,p/4,90¡,30.12¡}) ¥ ¸
unchanged. {1 .707... 0 .864...}

This function gives you a way to use a degree


angle while in Radian mode. (In Radian angle
mode, sin(), cos(), tan(), and polar-to-
rectangular conversions expect the angle
argument to be in radians.)

o (angle) 2 ’ key
[radius,oq_angle] ⇒ vector (polar input) [5,o60¡,o45¡] ¸
[radius,oq_angle,Z_coordinate] ⇒ vector
(cylindrical input)
In Radian mode and vector format set to:
[radius,oq_angle,of_angle] ⇒ vector
(spherical input)
rectangular
Returns coordinates as a vector depending on the
Vector Format mode setting: rectangular,
cylindrical, or spherical. cylindrical

spherical

(magnitude o angle) ⇒ complexValue (polar input) In Radian angle mode and Rectangular
complex format mode:
Enters a complex value in (roq) polar form. The
angle is interpreted according to the current Angle 5+3iì (10op/4) ¸
mode setting.
5ì 5ø 2+(3ì 5ø 2)øi
¥¸ ë 2.071…ì 4.071…øi

274 Appendix A: Functions and Instructions


¡, ', " 2 “ key (¡), 2 È key ('), 2 É key (")
dd ¡ mm ' ss.ss " ⇒ expression In Degree angle mode:
dd A positive or negative number 25°13'17.5" ¸ 25.221...
mm A non-negative number
ss.ss A non-negative number 25°30' ¸ 51/2
Returns dd +(mm /60)+(ss.ss /3600).
This base-60 entry format lets you:
• Enter an angle in degrees/minutes/seconds
without regard to the current angle mode.
• Enter time as hours/minutes/seconds.

' (prime) 2 È key


variable ' deSolve(y''=y^(ë 1/2) and
variable '' y(0)=0 and y'(0)=0,t,y) ¸
Enters a prime symbol in a differential equation. 2øy 3/4
A single prime symbol denotes a 1st-order =t
differential equation, two prime symbols denote a 3
2nd-order, etc.

_ (underscore) @ ¥ q key H 2 q key


expression_unit 3_m 4 _ft ¸ 9.842…ø_ft
Designates the units for an expression. All unit Note: To type 4, press 2 p.
names must begin with an underscore.
You can use pre-defined units or create your
own units. For a list of pre-defined units, refer
to the module about constants and
measurement units. You can press:
@ 29
H ¥À
to select units from a menu, or you can type
the unit names directly.
variable_ Assuming z is undefined:
When variable has no value, it is treated as real(z) ¸ z
though it represents a complex number. By real(z_) ¸ real(z_)
default, without the _ , the variable is treated
as real. imag(z) ¸ 0
imag(z_) ¸ imag(z_)
If variable has a value, the _ is ignored and
variable retains its original data type.
Note: You can store a complex number to a
variable without using _ . However, for best
results in calculations such as cSolve() and
cZeros(), the _ is recommended.

Appendix A: Functions and Instructions 275


4 (convert) 2 p key
expression_unit1 4 _unit2 ⇒ expression_unit2 3_m 4 _ft ¸ 9.842…ø_ft
Converts an expression from one unit to another.
The units must be in the same category.
The _ underscore character designates the units.
For a list of valid pre-defined units, refer to the
module about constants and measurement units.
You can press:
@ 29
H ¥ À to select units from a menu, or
you can type the unit names directly.
To get the _ underscore when typing units
directly, press:
@ ¥q
H 2q

Note: The 4 conversion operator does not handle


temperature units. Use tmpCnv() and
@tmpCnv() instead.

10^() CATALOG
10^ (expression1) ⇒ expression 10^(1.5) ¸ 31.622...
10^ (list1) ⇒ list
10^{0,ë 2,2,a} ¸
Returns 10 raised to the power of the argument. 1
{1 100 10 a}
For a list, returns 10 raised to the power of the 100
elements in list1.
10^(squareMatrix1) ⇒ squareMatrix 10^([1,5,3;4,2,1;6,L2,1]) ¸
Returns 10 raised to the power of squareMatrix1.
1.143…E7 8.171…E6 6.675…E6

This is not the same as calculating 10 raised to 9.956…E6 7.115…E6 5.813…E6
the power of each element. For information about 7.652…E6 5.469…E6 4.468…E6
the calculation method, refer to cos().
squareMatrix1 must be diagonalizable. The result
always contains floating-point numbers.

xê CATALOG (^ -1)
expression1 xê ⇒ expression 3.1^ë 1 ¸ .322581
list1 xê ⇒ list
{a,4,ë.1,xì 2}^ë 1 ¸
Returns the reciprocal of the argument. 1 1 1
{a ë 10. }
For a list, returns the reciprocals of the elements 4 xì 2
in list1.
squareMatrix1 xê ⇒ squareMatrix [1,2;3,4]^ë 1 ¸
[1,2;a,4]^ë 1 ¸
Returns the inverse of squareMatrix1.
squareMatrix1 must be a non-singular square
matrix.

276 Appendix A: Functions and Instructions


| (“with”) @ Í key H 2 Í key
expression | Boolean expression1 [and Boolean x+1| x=3 ¸ 4
expression2]...[and Boolean expressionN]
x+y| x=sin(y) ¸ sin(y) + y
The “with” (|) symbol serves as a binary operator.
The operand to the left of | is an expression. The x+y| sin(y)=x ¸ x+y
operand to the right of | specifies one or more
relations that are intended to affect the
simplification of the expression. Multiple relations
after | must be joined by a logical “and”.
The “with” operator provides three basic types of
functionality: substitutions, interval constraints,
and exclusions.
Substitutions are in the form of an equality, such x^3ì 2x+7! f(x) ¸ Done
as x=3 or y=sin(x). To be most effective, the left
side should be a simple variable. expression | f(x)| x=‡(3) ¸ ‡3 + 7
variable = value will substitute value for every
occurrence of variable in expression. (sin(x))^2+2sin(x)ì 6| sin(x)=d
¸
dñ +2dì 6
Interval constraints take the form of one or more solve(x^2ì 1=0,x)|x>0 and x<2
inequalities joined by logical “and” operators. ¸
Interval constraints also permit simplification that x=1
otherwise might be invalid or not computable.
‡(x)ù ‡(1/x)|x>0 ¸ 1

1
‡(x)ù ‡(1/x) ¸ x ø x

Exclusions use the “not equals” (/= or ƒ) solve(x^2ì 1=0,x)| xƒ1 ¸x = ë 1


relational operator to exclude a specific value
from consideration. They are used primarily to
exclude an exact solution when using cSolve(),
cZeros(), fMax(), fMin(), solve(), zeros(), etc.

! (store) § key
expression ! var p
list ! var p/4! myvar ¸ 4
matrix ! var
expression ! fun_name(parameter1,...) 2cos(x)! Y1(x) ¸ Done
list ! fun_name(parameter1,...)
matrix ! fun_name(parameter1,...) {1,2,3,4}! Lst5 ¸ {1 2 3 4}

If variable var does not exist, creates var and 1 2 3


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 "Hello"! str1 ¸ "Hello"


protected, replaces its contents with expression,
list, or matrix.
Hint: If you plan to do symbolic computations
using undefined variables, avoid storing anything
into commonly used, one-letter variables such as
a, b, c, x, y, z, etc.

Appendix A: Functions and Instructions 277


¦ (comment) Program Editor/Control menu or
@ ¥ d key
H 2 X key
¦ [text] Program segment:
¦ processes text as a comment line, which can be ©
used to annotate program instructions. :¦ Get 10 points from the Graph
¦ can be at the beginning or anywhere in the
line. Everything to the right of ¦, to the end of screen
the line, is the comment. :For i,1,10 ¦ This loops 10
times
©

0b, 0h @ µ j [B] keys H µ B keys


@ µ j [H] keys H µ H keys
0b binaryNumber In Dec base mode:
0h hexadecimalNumber
0b10+0hF+10 ¸ 27

In Bin base mode:


0b10+0hF+10 ¸ 0b11011
Denotes a binary or hexadecimal number,
respectively. To enter a binary or hex number,
you must enter the 0b or 0h prefix regardless In Hex base mode:
of the Base mode. Without a prefix, a number
is treated as decimal (base 10). 0b10+0hF+10 ¸ 0h1B
Results are displayed according to the Base
mode.

278 Appendix A: Functions and Instructions


B
Appendix B:
General Information

Texas Instruments Support and Service


For general information
Home Page: education.ti.com
KnowledgeBase
and e-mail education.ti.com/support
inquires:
Phone: (800) TI-CARES; (800) 842-2737
For U.S., Canada, Mexico, Puerto Rico, and
Virgin Islands only
International education.ti.com/international
information:

For technical support


KnowledgeBase
and support by education.ti.com/support
e-mail:
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.

Appendix B: General Information 279


Texas Instruments (TI) Warranty Information
Customers in the U.S. and Canada Only

One-Year Limited Warranty for Commercial Electronic Product

This Texas Instruments (“TI”) electronic product warranty extends only to the
original purchaser and user of the product.
Warranty Duration. This TI electronic product is warranted to the original pur-
chaser for a period of one (1) year from the original purchase date.
Warranty Coverage. This TI electronic product is warranted against defec-
tive 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 PROD-
UCT 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 war-
ranties or consequential damages, so the above limitations or exclusions
may not apply to you.
Legal Remedies. This warranty gives you specific legal rights, and you may
also have other rights that vary from state to state or province to province.
Warranty Performance. During the above one (1) year warranty period, your
defective product will be either repaired or replaced with a reconditioned
model of an equivalent quality (at TI’s option) when the product is returned,
postage prepaid, to Texas Instruments Service Facility. The warranty of the
repaired or replacement unit will continue for the warranty of the original unit
or six (6) months, whichever is longer. Other than the postage requirement,
no charge will be made for such repair and/or replacement. TI strongly rec-
ommends 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.

280 Appendix B: General Information


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 war-
ranty is void if the product has been damaged by accident or unrea-
sonable 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 inci-
dental 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 facil-
ities 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 jurisdic-
tion.
Warranty Performance. During the above one (1) year warranty
period, your defective product will be either repaired or replaced with
a new or reconditioned model of an equivalent quality (at TI’s option)
when the product is returned to the original point of purchase. The
repaired or replacement unit will continue for the warranty of the
original unit or six (6) months, whichever is longer. Other than your
cost to return the product, no charge will be made for such repair
and/or replacement. TI strongly recommends that you insure the
product for value if you mail it.
Software. Software is licensed, not sold. TI and its licensors do not
warrant that the software will be free from errors or meet your spe-
cific requirements. All software is provided “AS IS.”
Copyright. The software and any documentation supplied with this
product are protected by copyright.

Appendix B: General Information 281


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.

282
Index
Symbols (1 (hand modifier key)
description 8
(!, factorial 47, 271
status 24
(!, store 277
(2 (second modifier key)
(", second notation 275
description 7
(#, /=, not equal 270
status 24
(#, indirection 273
(2 ; (MEMORY) 10
($( ), square root 273
(2 ^ (exponent key) 9
(%, percent 269
(2 4 (measurement conversions)
(&, append 272
10
(', minute notation 275
(2 6 (recall) 11
(', prime 275
(2 E (Catalog)
()( ), sum 273
commands 14
(*( ), integrate 50, 272
description 13
(*, multiply 266
exiting 15
(+, add 265
key command 11
(,–- (function keys)
moving among toolbar menus 36
(2 F (Custom)
description 36
selecting categories 18, 20
example 37
selecting menus 31
key command 10
uses 8
(2 G (Character)
(-, degree notation 104, 274, 275
description 32
(-, negate 269
entering special characters 6
(–, subtract 266
key command 11
(,, angle 274
selecting characters 6
(.*, dot multiplication 269
(2 K
(.+, dot addition 268
calculator Home screen 15
(.–, dot subtraction 268
entering commands 14
(./, dot division 269
exiting the split-screen mode 42
(.^, dot power 269
key command 11
(/, divide 267
turning off the calculator 4
(<, less than 270
(4, convert 276
(=, equal 270
(4Bin, display as binary 157
(>, greater than 271
(4Cylind, display as cylindrical vector
(? (negation key) 9
170
(@list( ), list difference 202
(4DD, display as decimal angle 172
(@tmpCnv( ), temperature-range
conversion 255
(4Dec, display as decimal integer 173
(4DMS, display as degree/minute/
(^, power 268
second 178
(_, underscore 275
(4Hex, display as hexadecimal 196
({, <=, less than or equal 271
(| (subtraction key) 9 (4Polar, display as polar vector 219
(4Rect, display as rectangular vector
(|, >=, greater than or equal 271
228
(|, comment 278
(4Sphere, display as spherical vector
(|, with 50, 277
246
(0 / (8 . (delete character) 10

Index 283
(7 (shift modifier key) add, + 265
description 7 algebra operations 150
status 24 All category 20
(8 (diamond modifier key) and (Boolean), and 154
description 7 AndPic, and picture 155
status 24 angle mode 11
(8 F (FORMATS/GRAPH FORMATS) status 24
10 angle( ), angle 155
(8 N (new file) 10 angle, , 274
(8 O (open file) 10 ans( ), last answer 156
(8 S (SAVE COPY AS) APD (Automatic Power Down)
description 10 feature
dialog box 10 during calculation or program 4
example 35 turning on after 4
(9 (store) key 11 append, & 272
A ( BCD (cursor keys) APPLICATIONS menu (O) 32, 38
additional functions 8 approx( ), approximate 156
entering commands 14 Apps (calculator software
function 8 applications)
opening Apps 18 deleting 43
selecting entry/answer pairs 17 icon highlighted, last open 3
used with the hand key 8 icons 2
using the CHAR menu 6 names 18
(Π( ), product 273 opening 18, 38
(R, radian 274 preinstalled v
(T, transpose 250 shortcuts 21
(x/, reciprocal 276 switching 41
Apps desktop
Numerics calculator Home screen and 16
categories 18, 20
0b, binary indicator 278
clock 26
0h, hexadecimal indicator 278
date and time 27
10^( ), power of ten 276
initial startup 1, 2
3D (three-dimensional) mode 25
mode 11, 25
3D graphing
parts of 3
animation 61
split-screen status 23
CONTOUR LEVELS 63
turning off 25
HIDDEN SURFACE 63
turning off the calculator 4
WIRE AND CONTOUR 63
arccosine, cos/( ) 163
WIRE FRAME 63
archive variables, Archive 143
Archive, archive variables 143, 156
A archiving variables 87
ABOUT screen 43 arcLen( ), arc length 156
abs( ), absolute value 106, 154 arcsine, sin/( ) 241
absolute value, abs( ) 106 arctangent, tan/( ), arctangent 251
accent marks assembly language 183
CHAR menu 11 augment( ), augment/concatenate
accessory port 44 92, 156

284 Index
augment/concatenate, augment( ) Calculator-Based Laboratory system
92 connecting 44
AUTO mode status 24 Calculator-Based Ranger system
Automatic Power Down (APD) connecting 44
feature calculus operations 150
during calculation or program 4 Catalog (2 E)
in OS download mode 45 commands 14
turning on after 4 description 13
auto-paste 16 exiting 15
avgRC( ), average rate of change 157 key command 11
categories
B All 20
Apps desktop 20
backspace (0) 10
customizing 21
Base mode 11
English 20
batteries
example of editing 21
precautions 46
Graphing 20
prolonging life 4
Math 20
replacing 45
Organizr (organizer) 20
binary
Science 20
display, 4Bin 157
selecting 20
indicator, 0b 278
selecting empty 20
BldData, build data 158
SocialSt (social studies) 20
Boolean
CBL
and, and 154
get/return, Get 190
exclusive or, xor 259
send list variable, Send 233
not, not 213
CBL 2 system
build
activity 102
data, BldData 158
connecting 44
table, Table 250
programs 102
BUSY 25
CBR
Busy/Pause status 25
get/return, Get 190
send list variable, Send 233
C CBR system
cables v, 42, 44, 115, 124, 127 connecting 44
calculator Home screen programs 102
2 K 11 ceiling( ), ceiling 158
changing entry/answer pairs 17 ceiling, ceiling( ) 94
custom menu 36 certificate 119, 123, 124, 125, 126,
entering commands 14 127
function keys 8 cFactor( ), complex factor 110, 158
key command 11 CHAR menu (2 G)
toolbar menus 31 description 32
turning off the calculator 4 entering special characters 6
calculator software applications key command 11
(Apps) 3 char( ), character string 159
icons 2 characters
preinstalled v deleting 10

Index 285
Greek 6, 11, 32 Voyage 200 44
international/accented 6, 11, 32 Constant Memory feature 11
math 6, 11, 32 contact information 279
punctuation 32 contour-level graphing 63
special 6, 11, 32 contrast
uppercase 5, 7 adjusting 1, 45
checkTmr( ), check timer 159 initial startup 1
circle convert measurements 10
graphing 53, 55 convert time, timeCnv( ) 253
Circle, draw circle 159 convert, 4 276
Clock copy variable, CopyVar 139
dialog box 26 CopyVar, copy variable 139, 162
operation 26 cos( ), cosine 163
turning off 30 cos/( ), arccosine 163
turning on 31 cosh( ), hyperbolic cosine 164
ClockOff, turning clock off 160 cosh/( ), hyperbolic arccosine 164
ClockOn, turning clock on 160 cot( ), cotangent 164
ClrDraw, clear drawing 160 cot/( ), inverse cotangent 165
ClrErr, clear error 160 coth( ), hyperbolic cotangent 165
ClrGraph, clear graph 160 coth/( ), inverse hyperbolic
ClrHome, clear home 18, 161 cotangent 165
ClrIO, clear cover
I/O 161 removing 3
ClrIO, clear I/O 161 replacing 3
colDim( ), matrix column dimension stowing 3
161 crossP( ), cross product 165
colNorm( ), matrix column norm 161 csc( ), cosecant 165
combinations, nCr( ) 210 csc/( ), inverse cosecant 166
comDenom( ), common csch( ), hyperbolic cosecant 166
denominator 161 csch/( ),inverse hyperbolic cosecant
command scripts 166
activity 96 cSolve( ), complex solve 166
commands CubicReg, cubic regression 168
Flash Apps 13 cumSum( ), cumulative sum 168
Key v, 6, 7 Current folder status 24
comment, | 278 Current mode 11
complex cursor
factor, cFactor( ) 110, 158 deleting characters 10
numbers 47, 48 functionality 8
solve, cSolve( ) 166 in the history area 17
zeros, cZeros( ) 170 location following APD 4
complex format mode 11 moving 8
conj( ), complex conjugate 162 Selecting a command 14
connecting Viewing entries 16
computer 44 cursor keys (ABCD)
devices 44 additional functions 8
TI ViewScreen overhead panel 44 entering commands 14
TI-Presenter video adapter 44 function 8

286 Index
opening Apps 18 denominator 161
selecting entry/answer pairs 17 derivatives 50
used with the hand key 8 first derivative, d ( ) 172
using the CHAR menu 6 first derivative, d( ) 50
CustmOff, custom toolbar off 169 numeric derivative, nDeriv( ) 210
CustmOn, custom toolbar on 169 deSolve( ), solution 174
CUSTOM (2 F) menu 37 det( ), matrix determinant 176
descripton 36 diag( ), matrix diagonal 176
key command 10 dialog box
custom toolbar See toolbar (8 S (SAVE COPY AS) 10
Custom, define toolbar 169 CLOCK 26
customer support and service 279 edit categories 21
cycle picture, CyclePic 170 FORMATS/GRAPH FORMATS (8
Cycle, cycle 169 F) 10
CyclePic, cycle picture 170 menu indicator 34
cylindrical vector display, 4Cylind 170 MODE 11
cZeros( ), complex zeros 170 to open Apps 18
dialog box, define, Dialog 177
D Dialog, define dialog box 177
Diamond modifier key (8)
d( ), first derivative 50, 172
description 7
data (new), NewData 210
status 24
data filtering 99
dim( ), dimension 177
data plots 71
Disp, display I/O screen 80, 177
Data/Matrix Editor
DispG, display graph 178
shift, shift( ) 239
DispHome, display Home screen 178
date
display
reset 31
graph, DispG 178
setting 26
Home screen, DispHome 178
dayOfWk( ), day of week 172
I/O screen, Disp 80, 177
DE (differential equation) mode 25
table, DispTbl 178
decimal
display as
angle display, 4DD 172
binary, 4Bin 157
integer display, 4Dec 173
cylindrical vector, 4Cylind 170
define toolbar, Toolbar 255
decimal angle, 4DD 172
Define, define 89, 173
decimal integer, 4Dec 173
define, Define 89, 173
degree/minute/second, 4DMS
DEG (degree) mode 24
178
degree notation, - 104, 274, 275
hexadecimal, 4Hex 196
degree/minute/second display, 4DMS
polar vector, 4Polar 219
178
rectangular vector, 4Rect 228
delete character (0 / (8 .) 10
spherical vector, 4Sphere 246
deleting
display digits mode 11
folder, DelFold 174
DispTbl, display table 178
variable, DelVar 174
divide, / 267
deleting variables 88
dot
DelFold, delete folder 174
addition, .+ 268
DelVar, delete variable 174
division, ./ 269

Index 287
multiplication, .* 269 EndIf, end if 196
power, .^ 269 EndLoop, end loop 205
subtraction, .– 268 EndPrgm, end program 78, 220
dotP( ), dot product 178 EndTBar, end toolbar 255
DrawFunc, draw function 179 EndTry, end try 256
drawings and drawing EndWhile, end while 258
circle, Circle 159 English category 20
clearing, ClrDraw 160 entry line
contour, DrwCtour 180 clearing the history area 18
function, DrawFunc 179 cursor rests on 17
horizontal line, LineHorz 201 inserting commands 14
inverse, DrawInv 179 recalling 16
line, Line 201 entry( ), entry 183
parametric, DrawParm 179 entry/answer pairs 17
polar, DrawPol 179 status 25
slope, DrawSlp 180 equal, = 270
tangent line, LineTan 201 error conditions after APD 4
vertical line, LineVert 202 errors and troubleshooting
DrawInv, draw inverse 179 clear error, ClrErr 160
DrawParm, draw parametric 179 Memory error 146, 147
DrawPol, draw polar 179 pass error, PassErr 218
DrawSlp, draw slope 180 transmission 119, 126
DropDown, drop-down menu 180 evaluate polynomial, polyEval( ) 219
DrwCtour, draw contour 180 EXACT mode status 24
exact( ), exact 183
E exact/approx mode 11
example
E, exponent 9, 181
changing mode settings 12
e^( ), e to a power 181
editing categories 21
eigVc( ), eigenvector 181
restoring the default custom
eigVl( ), eigenvalue 182
menu 37
Else, else 196
selecting menu options 33
ElseIf, else if 182
turning off the clock 30
end
turning on/off the custom menu
custom, EndCustm 169
36
dialog, EndDlog 177
using dialog boxes 35
for, EndFor 189
using the CHAR menu 6
function, EndFunc 190
using the keyboard map 7
if, EndIf 196
examples, previews, activities
loop, EndLoop 205
3D graphing 61, 94
program, EndPrgm 78, 220
additional graphing topics 66
toolbar, EndTBar 255
baseball 103
try, EndTry 256
CBL 2 program 102
while, EndWhile 258
complex factors 110
EndCustm, end custom 169
complex numbers 47
EndDlog, end dialog 177
complex zeroes 105
EndFor, end for 189
constants and measurement
EndFunc, end function 190
units 52

288 Index
cos(x)=sin(x) activity 93 execute program, Prgm 78, 220
cubic polynomial 105 Exit, exit 184
data filtering 99 exp4list( ), expression to list 184
data/matrix editor 70 expand( ), expand 48, 91, 105, 184
decomposing a rational function expand, expand( ) 48, 91, 105
97 exponent key (2 ^) 9
derivatives 50 exponent, E 9, 181
differential equations 64 exponential Format mode 11
expanding expressions 48 exponential regession, ExpReg 186
factorial 47 expr( ), string to expression 185
function graphing 53, 55 ExpReg, exponential regession 186
graphing functions 53 expressions 15
integrals 50 expanding 48
memory management 85 expression to list, exp(list( ) 184
number bases 83 reducing 48
numeric solver 82 string to expression, expr( ) 185
parametric graphing 57, 104
path of a ball 57 F
polar rose 58
factor( ), factor 48, 91, 110, 186
pole-corner problem 89
factor, factor( ) 48, 91, 110
population 71
factorial, ! 47, 271
prime factors 47
factoring
programming 78, 80
activity 110
Pythagorean theorem 89
FCC statement ii
quadratic formula 90
File, new (8 N) 10
rational factors 110
File, open (8 O) 10
real factors 110
Fill, matrix fill 187
reducing expressions 48
Flash applications 131, 132, 134
sampling 110
deleting 119
sequence graphing 60
FLASH APPLICATIONS (8 O)
solving linear equations 49
accessing Apps not listed 38
split screen 69, 104
description 32
standard annuity 107
key command 10
statistics 71
Flash read-only memory v
symbolic manipulation 50
Flash, upgrading operating system
tables 68
123, 124
text operations 80
floor( ), floor 94, 187
time value of money 108
floor, floor( ) 94
trees and forest 60
fMax( ), function maximum 188
tutorial script with the text
fMin( ), function minimum 188
editor 95
FnOff, function off 188
variable management 85
FnOn, function on 188
exclusive or (Boolean), xor 259
folders
exclusive or picture, XorPic 259
delete, DelFold 174
Exec, execute assembly language
get/return, getFold( ) 192
183
locking/unlocking 140
execute assembly language, Exec
new, NewFold 211
183

Index 289
pasting name 141, 142 key, getKey( ) 193
renaming 138, 140 mode, getMode( ) 193
setting, setFold( ) 234 number, getNum( ) 193
transmitting 116, 117, 118 type, getType( ) 194
VARLINK 134, 135, 137, 138, 139 units, getUnits( ) 195
For, for 189 GetCalc, get/return calculator 121,
for, For 189 122, 191
format( ), format string 189 getConfg( ), get/return
FORMATS (8 F) configuration 191
dialog box 10 getDate( ), get date 192
key command 10 getDenom( ), get/return
FORMATS dialog box 63, 64 denominator 192
fpart( ), function part 190 getDtFmt( ), get date format 192
fractions 97, 221 getDtStr( ), get date string 192
Frobenius norm, norm( ) 213 getKey( ), get/return key 193
full-screen mode getMode( ), get/return mode 193
2 K 11 getNum( ), get/return number 193
Apps desktop 23 getTime( ), get time 193
changing from split-screen 42 getTmFmt( ), get time format 193
displaying Apps in 41 getTmStr( ), get time string 194
FUNC (function) mode 25 getTmZn( ), get time zone 194
Func, program function 190 getType( ), get/return type 194
function keys (,–-) getUnits( ), get/return units 195
moving among toolbar menus 36 Goto, go to 195
selecting categories 18, 20 graph
selecting menus 31 mode 11, 25
functions 13 number mode 25
maximum, fMax( ) 188 GRAPH FORMATS (8 F) 10
minimum, fMin( ) 188 dialog box 10
off, FnOff 188 graph mode status 25
on, FnOn 188 graph number mode status 25
part, fPart( ) 190 Graph, graph 195
program function, Func 190 graphing category 20
user-defined 173 graphs
drawing on 8
G number of 40, 41
graphs and graphing
Garbage collection message 143,
clearing, ClrGraph 160
144, 145, 146
coordinates 53
gcd( ), greatest common divisor 190
functions off, FnOff 188
get time zone, GetTmZn( ) 194
functions on, FnOn 188
Get, get/return CBL/CBR value 190
graph, Graph 195
get/return
Minimum 53
calculator, GetCalc 121, 122, 191
operations 150
CBL/CBR value, Get 190
recall graph database, RclGDB
configuration, getConfg( ) 191
227
denominator, getDenom( ) 192
setting, setGraph( ) 234
folder, getFold( ) 192
shading, Shade 238

290 Index
store graph database, StoGDB indirection, # 273
247 initial startup 1
style, Style 248 input string, InputSt 122, 198
trace, Trace 95, 102, 103, 105, 256 Input, input 197
tracing 53 InputSt, input string 122, 198
Y= editor 53, 55 insert mode (2 /) 10
greater than or equal, |, >= 271 inString( ), within string 198
greater than, > 271 instructions
greatest common divisor, gcd( ) 190 calculator Home screen 15
Greek characters 6 Catalog 13
int( ), integer 198
H intDiv( ), integer divide 198
integer part, iPart( ) 60, 199
Hand modifier key (1)
integer, int( ) 198
description 8
integrate, *( ) 50, 272
status 24
international/accented characters 6
hexadecimal
inverse cosecant, csc/( ) 166
display, 4Hex 196
inverse cotangent, cot/( ) 165
indicator, 0h 278
inverse hyperbolic
hidden surface 63
cosecant, csch/( ) 166
highlighting
cotangent, coth/( ) 165
characters when editing 7
secant, sech/( ) 233
to view full name of App 2
inverse, x/ 276
History area
iPart( ), integer part 199
status 25
isClkOn( ), is clock on 199
History indicator 17
isPrime( ), prime test 199
Home icon 16
Item, menu item 199
Home screen. See calculator home
screen
hyperbolic K
arccosine cosh/( ) 164 key commands
arcsine, sinh/( ) 242 keyboard map 7
arctangent, tanh/( ) 252 special characters 6
cosecant, csch( ) 166 keyboard
cosine, cosh( ) 164 map 6
cotangent, coth( ) 165 QWERTY 5
secant, sech( ) 232 keys
sine, sinh( ) 242 cursor 8
tangent, tanh( ) 251 function 8
modifier 7
I
I/O port 44 L
ID list 126, 127, 128 language mode
ID number 123, 124, 126, 127, 128 changing mode setting 12
identity matrix, identity( ) 196 viewing 11
identity( ), identity matrix 196 Lbl, label 199
If, if 196 lcm, least common multiple 200
imag( ), imaginary part 197 least common multiple, lcm 200

Index 291
left( ), left 200 new, newList( ) 211
left-right split screen operations 150
setting 39 product, product( ) 220
setting initial Apps 40 sort ascending, SortA 246
status 23 sort descending, SortD 246
less than or equal, #, 271 summation, sum( ) 230, 249
less than, < 270 ln( ), natural logarithm 203
limit( ), limit 200 LnReg, logarithmic regression 203
Line, draw line 201 Local, local variable 204
linear regression, LinReg 202 Lock, lock variable 204
LineHorz, draw horizontal line 201 locked/archived variable status 25
LineTan, draw tangent line 201 log( ), logarithm 204
LineVert, draw vertical line 202 logarithm, log( ) 204
Link transmission table 129 logarithmic regression, LnReg 203
linking and transmitting 233 logarithms 203, 204
calculator to calculator 115, 116, Logistic, logistic regression 205
117, 121, 122, 123 Loop, loop 205
cancelling 119 LU, matrix lower-upper
errors 119, 125, 126 decomposition 206
Flash applications 116, 117, 120,
121 M
folders 116, 118, 119
mat4list( ), matrix to list 207
get/return CBL/CBR value, Get
math category 20
190
MATH menu (2 I) 32
program 121, 122
math operations 15, 151
send chat, SendChat 121, 122
matrices
send list variable, Send 233
augment/concatenate,
send to calculator, SendCalc 121,
augment( ) 92, 156
122
column dimension, colDim( ) 161
variables 116, 117, 118
column norm, colNorm( ) 161
LinReg, linear regression 202
cumulative sum, cumSum( ) 168
list difference, @list( ) 202
determinant, det( ) 176
list to matrix, list4mat( ) 202
diagonal, diag( ) 176
list4mat( ), list to matrix 202
dimension, dim( ) 177
lists
dot addition, .+ 268
augment/concatenate,
dot division, ./ 269
augment( ) 156
dot multiplication, .( 269
cross product, crossP( ) 165
dot power, .^ 269
cumulative sum, cumSum( ) 168
dot subtraction, .– 268
difference, @list( ) 202
eigenvalue, eigVl( ) 182
dot product, dotP( ) 178
eigenvector, eigVc( ) 181
expression to list, exp4list( ) 184
filling, Fill 187
list to matrix, list4mat( ) 202
identity, identity( ) 196
matrix to list, mat4list( ) 207
list to matrix, list4mat( ) 202
maximum, max( ) 207
lower-upper decomposition, LU
mid-string, mid( ) 208
206
minimum, min( ) 209
matrix to list, mat4list( ) 207
new data, NewData 210

292 Index
maximum, max( ) 207 FLASH APPLICATIONS (8 O)
minimum, min( ) 209 10, 32, 38
new data, NewData 210 options 7
new, newMat( ) 211 selecting options 32
operations 151 submenu options 33
product, product( ) 220 messages
QR factorization, QR 224 Garbage collection 143, 144, 145,
random, randMat( ) 92, 226 146
reduced row echelon form, mid( ), mid-string 208
rref( ) 232 min( ), minimum 209
row addition, rowAdd( ) 231 Minimum (graph math tool) 53
row dimension, rowDim( ) 231 minute notation, ' 275
row echelon form, ref( ) 228 mod( ), modulo 209
row multiplication and addition, modes
mRowAdd( ) 209 3D (three-dimensional) 25
row norm, rowNorm( ) 231 Angle 11, 24
row operation, mRow( ) 209 APPROX 24
row swap, rowSwap( ) 231 Apps desktop 11
submatrix, subMat( ) 249 AUTO 24
summation, sum( ) 230, 249 Base 11
transpose, T 250 complex format 11
matrix to list, mat4list( ) 207 current 11
max( ), maximum 207 custom units 11
mean( ), mean 207 DE (differential equation) 25
measurement DEG (degree) 24
conversions (2 4) 10 display digits 11
median( ), median 207 EXACT 24
medium-medium line regression, exact/approx 11
MedMed 208 exponential format 11
MedMed, medium-medium line fullscreen 11, 20, 23, 40, 41, 42
regression 208 FUNC (function) 25
memory get/return, getMode( ) 193
archiving, Archive 143, 156 graph 11
checking 131, 132 graph number 25
resetting 131, 132 graph type 25
unarchive, Unarchiv 143, 257 grayed out 11
VARLINK screen 132, 134, 135, insert (2 /) 10
137, 138, 139, 143 language 11, 12
MEMORY (2 ;) 10 overwrite (2 /) 10
Memory error 146 PAR (parametric) 25
menu item, Item 199 POL (polar) 25
Menus Pretty Print 11
APPLICATIONS (O) 32, 38 RAD (radian) 24
menus SEQ (sequence) 25
canceling 35 setting, setMode( ) 235
CHAR 6, 11, 32 settings 11
CUSTOM (2 F) 10, 36, 37 split screen 2, 11, 20, 23, 25, 38,
40, 42

Index 293
unit system 11 O
vector format 11
OneVar, one-variable statistic 214
modifier keys (2 8 7 1) 7
Open file (8 O) 10
status 24
operating system 125, 126
MoveVar, move variable 209
operating system (OS)
mRow( ), matrix row operation 209
downloading 45
mRowAdd( ), matrix row
operating system, upgrading 123,
multiplication and addition 209
124
multiply, * 266
or, Boolean or 215
ord( ), numeric character code 215
N Organizr (organizer) category 20
natural logarithm, ln( ) 203 OS 123, 124
nCr( ), combinations 210 Output, output 215
nDeriv( ), numeric derivative 210 overwrite mode (2 /) 10
negate, M 269
negation key (5) 9 P
negative numbers 8
P4Rx( ), rectangular x coordinate 216
new
P4Ry( ), rectangular y coordinate 216
data, NewData 210
PAR (parametric) mode 25
folder, NewFold 211
parallelepiped activity 94
list, newList( ) 211
part( ), part 216
matrix, newMat( ) 211
PassErr, pass error 218
picture, NewPic 211
PAUSE 25
plot, NewPlot 212
Pause, pause 218
problem, NewProb 212
percent, % 269
New file (8 N) 10
permutations, nPr( ) 213
NewData, new data 210
pictures
NewFold, new folder 211
and, AndPic 155
newList( ), new list 211
cycle, CyclePic 170
newMat( ), new matrix 211
exclusive or, XorPic 259
NewPic, new picture 211
new, NewPic 211
NewPlot, new plot 211
recall, RclPic 227
NewProb, new problem 212
replace, RplcPic 231
nInt( ), numeric integral 212
storing, StoPic 248
norm( ), Frobenius norm 213
pixel
not (Boolean), not 213
change, PxlChg 222
not equal, #, /= 270
circle, PxlCrcl 222
not, Boolean not 213
horizontal line, PxlHorz 222
nPr( ), permutations 213
line, PxlLine 223
nSolve( ), numeric solution 214
off, PxlOff 223
numeric
on, PxlOn 223
derivative, nDeriv( ) 210
test, pxlTest( ) 223
integral, nInt( ) 212
text, PxlText 223
solution, nSolve( ) 214
vertical line, PxlVert 224
numeric keypad 8
plots
data 71
new, NewPlot 212

294 Index
off, PlotsOff 219 custom toolbar on, CustmOn 169
on, PlotsOn 219 define dialog box Dialog 177
PlotsOff, plots off 219 define toolbar, Custom 169
PlotsOn, plots on 219 define toolbar, Toolbar 255
point define, Define 89, 173
change, PtChg 221 display graph, DispG 178
off, PtOff 221 display Home screen, DispHome
on, PtOn 222 178
test, ptTest( ) 222 display I/O screen, Disp 80, 177
text, PtText 222 display table, DispTbl 178
POL (polar) mode 25 drop-down menu, DropDown
polar 180
coordinate, R4Pq( ) 226 else if, ElseIf 182
coordinate, R4Pr( ) 226 else, Else 196
vector display, 4Polar 219 end custom, EndCustm 169
polyEval( ), evaluate polynomial 219 end dialog, EndDlog 177
polynomials end for, EndFor 189
activity 105 end function, EndFunc 190
evaluate, polyEval( ) 219 end if, EndIf 196
random, randPoly( ) 227 end loop, EndLoop 205
PopUp, popup menu 220 end program, EndPrgm 78, 220
port end toolbar, EndTBar 255
accessory 44 end try, EndTry 256
power of ten, 10^( ) 276 end while, EndWhile 258
power regression, PowerReg 220 execute assembly language, Exec
power, ^ 268 183
PowerReg, power regression 220 execute program, Prgm 78, 220
pretty print 53 exit, Exit 184
Pretty Print mode 11 for, For 189
Prgm, execute program 78, 220 format string, format( ) 189
prime number test, isPrime( ) 199 function, Func 190
prime numbers 48 get/return configuration,
prime, ' 275 getConfg( ) 191
problems (new), NewProb 212 get/return folder, getFold( ) 192
product( ), product 220 get/return from calculator,
product, Π( ) 273 GetCalc 121, 122, 191
Program Editor 19 get/return key, getKey( ) 193
programs and programming 13 get/return mode, getMode( ) 193
CBL 2 system 102 get/return units, getUnits( ) 195
CBR system 102 go to, Goto 195
clear error, ClrErr 160 if, If 196
clear graph, ClrGraph 160 input, Input 197
clear home, ClrHome 161 label, Lbl 199
clear I/O, ClrIO 161 local, Local 204
clear table, ClrTable 161 loop, Loop 205
comment, | 278 menu item, Item 199
custom toolbar off, CustmOff operations 152
169 output, Output 215

Index 295
pass error, PassErr 218 randMat( ), random matrix 92, 226
pause, Pause 218 randNorm( ), random norm 226
popup menu, PopUp 220 random
prompt, Prompt( ) 221 matrix, randMat( ) 92, 226
request, Request 229 norm, randNorm( ) 226
return, Return 229 number seed, RandSeed 92, 227
stop, Stop 247 number, rand( ) 226
text, Text 253 polynomial, randPoly( ) 227
Then, Then 196 randPoly( ), random polynomial 227
title, Title 254 RandSeed, random number seed 92,
try, Try 256 227
while, While 258 rational functions activity 97
Prompt( ), prompt 221 RclGDB, recall graph database 227
proper fraction, propFrac 97 RclPic, recall picture 227
propFrac, proper fraction 97, 221 real( ), real 227
PtChg, point change 221 recall
PtOff, point off 221 graph database, RclGDB 227
PtOn, point on 222 picture, RclPic 227
ptTest( ), point test 222 Recall (2 6) 11
PtText, point text 222 reciprocal, x/ 276
PxlChg, pixel change 222 rectangular x coordinate, P4Rx( ) 216
PxlCrcl, pixel circle 222 rectangular y coordinate, P4Ry( ) 216
PxlHorz, pixel horizontal line 222 rectangular-vector display, 4Rect 228
PxlLine, pixel line 223 reduced row echelon form, rref( ) 93
PxlOff, pixel off 223 ref( ), row echelon form 228
PxlOn, pixel on 223 regressions 202
pxlTest( ), pixel test 223 cubic, CubicReg 168
PxlText, pixel text 223 exponential, ExpReg 186
PxlVert, pixel vertical line 224 linear regression, LinReg 202
logarithmic, LnReg 203
Q logistic, Logistic 205
medium-medium line, MedMed
QR factorization, QR 224
208
QR, QR factorization 224
power regression, PowerReg 220
quadratic regression, QuadReg 225
quadratic formula activity 90
QuadReg, quadratic regression 225
quadratic, QuadReg 225
quartic regression, QuartReg 225
quartic, QuartReg 225
QuartReg, quartic regression 225
sinusoidal, SinReg 243
Quit (2 K) 11
remain( ), remainder 228
QWERTY Keyboard 5
Rename, rename 229
replace picture, RplcPic 231
R Request, request 229
R, radian 274 results 15
R4Pθ( ), polar coordinate 226 return See get/return
R4Pr( ), polar coordinate 226 Return, return 229
RAD (radian) mode 24 right( ), right 229
radian, R 274 rotate( ), rotate 230
rand( ), random number 226 round( ), round 230

296 Index
row echelon form, ref( ) 228 setGraph( ), set graph 234
rowAdd( ), matrix row addition 231 setMode( ), set mode 235
rowDim( ), matrix row dimension setTable( ), set table 236
231 setTime( ), set time 236
rowNorm( ), matrix row norm 231 setTmFmt( ), set time format 237
rowSwap( ), matrix row swap 231 setTmZn( ), set time zone 237
RplcPic, replace picture 231 setUnits( ), set units 237
rref( ), reduced row echelon form 93, Shade, shade 238
232 Shift modifier key (7)
description 7
S status 24
shift( ), shift 239
sampling activity 110
show statistical results, ShowStat 240
SAVE COPY AS (8 S)
ShowStat, show statistical results 240
description 10
sign( ), sign 240
dialog box 10
simult( ), simultaneous equations
example 35
240
scientific notation 9
sin( ), sine 241
scripts
sin/( ), arcsine 241
activity 96
sinh( ), hyperbolic sine 242
tutorial 96
sinh/( ), hyperbolic arcsine 242
scrolling 16, 17
SinReg, sinusoidal regression 243
sec( ), secant 232
sinusoidal regression, SinReg 243
sec/( ), inverse secant 232
SocialSt (social studies) category 20
secant, sec( ), 232
solution, deSolve( ) 174
sech( ), hyperbolic secant 232
solve( ), solve 49, 50, 243
sech/( ),inverse hyperbolic secant
solve, solve( ) 49, 50
233
solving linear equations 49
Second modifier key (2)
SortA, sort ascending 246
description 7
SortD, sort descending 246
status 24
spherical vector display, (Sphere 246
second notation, 275
split screen
selecting categories 20
switch, switch( ) 249
send chat, SendChat 121, 122, 233
split-screen mode
send list variable, Send 233
active graph 25
send to calculator, SendCalc 121,
exiting 42
122, 233
Number of graphs 40
Send, send list variable 233
Ratio 40
SendCalc, send to calculator 121,
returning from within an App 20
122, 233
selecting active App 42
SendChat, send chat 121, 122, 233
setting 38
SEQ (sequence) mode 25
setting initial Apps 40
seq( ), sequence 234
specifying Apps displayed 40
set
Split 1 App 40
folder, setFold( ) 234
Split 2 App 40
setDate( ), set date 234
status 23
setDtFmt( ), set date format 234
status and open Apps 2
setFold( ), set folder 234
viewing 11

Index 297
square root, $( ) 273 mid-string, mid( ) 208
standard annuity activity 107 operations 153
standard deviation, stdDev( ) 247 right, right( ) 229
start timer, startTmr( ) 246 rotate, rotate( ) 230
startTmr( ), start timer 246 shift, shift( ) 239
statistics string to expression, expr( ) 185
combinations, nCr( ) 210 within, InString 198
factorial, ! 47, 271 Style, style 248
mean, mean( ) 207 subMat( ), submatrix 249
median, median( ) 207 subtract, – 266
new plot, NewPlot 212 subtraction key (|) 9
operations 153 sum( ), summation 230, 249
permutations, nPr( ) 213 sum, )( ) 273
plots off, PlotsOff 219 support and service 279
plots on, PlotsOn 219 switch( ), switch 249
random norm, randNorm( ) 226
random number seed, RandSeed T
92, 227
T, transpose 250
random number, rand( ) 226
Table, build table 250
show results, ShowStat 240
tables
standard deviation, stdDev( ) 247
clearing, ClrTable 161
two-variable results, TwoVar 256
displaying, DispTbl 178
variance, variance( ) 257
setting, setTable( ) 236
status
tan( ), tangent 251
battery low 45
tan/( ), arctangent 251
on Apps desktop 2
tangent, tan( ) 251
split-screen 23
tanh( ), hyperbolic tangent 251
status line
tanh/( ), hyperbolic arctangent 252
command parameters 15
Taylor polynomial, taylor( ) 252
history information 17
taylor( ), Taylor polynomial 252
stdDev( ), standard deviation 247
tCollect( ), trigonometric collection
StoGDB, store graph database 247
253
Stop, stop 247
temperature conversion, tmpCnv( )
StoPic, store picture 248
254
Store (9) key 11
temperature-range conversion,
storing
@tmpCnv( ) 255
graph database, StoGDB 247
tExpand( ), trigonometric expansion
picture, StoPic 248
253
symbol, ! 277
Text, text 253
string( ), expression to string 248
Then, Then 196
strings
three-dimensional graphing
append, & 272
animation 61
character string, char( ) 159
CONTOUR LEVELS 63
expression to string, string( ) 248
HIDDEN SURFACE 63
format, format( ) 189
WIRE AND CONTOUR 63
indirection, # 273
WIRE FRAME 63
inputting, InputSt 122
left, left( ) 200

298 Index
TI Connectivity Cable 42, 115, 124, typing
127 file name 18
installing Apps v to scroll through Catalog 14
TI ViewScreen overhead panel uppercase characters 5
connecting 44
TI Connect software v, 42, 124 U
time
Unarchiv, unarchive variables 143,
reset 31
257
setting 26
unarchive variables, Unarchiv 143,
time value of money activity 108
257
timeCnv( ), convert time 253
underscore, _ 275
TI-Presenter video adapter
unit System mode 11
connecting 44
unit vector, unitV( ) 257
Title, title 254
units
tmpCnv( ), temperature conversion
get/return, getUnits( ) 195
254
setting, setUnits( ) 237
toolbar
unit-to-unit cable 45
define, Custom 169
connecting 44
off, CustmOff 169
unitV( ), unit vector 257
on, CustmOn 169
Unlock, unlock 257
Toolbar menus
upgrading operating system (OS)
calculator Home screen 31
124
moving among 36
uppercase characters 5
replaced by custom menu 36
user-defined functions 173
selecting math operations 8
Toolbar, toolbar 255
top-bottom split screen V
setting 39 variables 25
setting initial Apps 40 archiving and unarchiving 142,
status 23 143
Trace, trace 95, 102, 103, 105, 256 archiving, Archive 143, 156
trace, Trace 95, 102, 103, 105 copy, CopyVar 139, 162
tracing 53 copying 139
transpose, T 250 delete, DelVar 174
trigonometric collection, tCollect( ) deleting 119
253 in applications 141, 142
trigonometric expansion, tExpand( ) local, Local 204
253 locking/unlocking 140
Try, try 256 pasting name 141, 142
turning clock off, ClockOff 160 recall 11
turning clock on, ClockOn 160 referring to App files 18
turning off 4 renaming 138
after APD 4 store 11
following inactivity 4 transmitting 115, 116, 118
turning on unarchive, Unarchiv 143, 257
initial startup 1 VARLINK 132, 134, 135, 137, 138,
two-variable results, TwoVar 256 139, 143
variance( ), variance 257

Index 299
vector format mode 11 zeroes, zeros( ) 90, 260
vectors zeros( ), zeroes 90, 260
cross product, crossP( ) 165 zoom
cylindrical vector display, 4Cylind box, ZoomBox 261
170 data, ZoomData 262
dot product, dotP( ) 178 decimal, ZoomDec 262
unit, unitV( ) 257 fit, ZoomFit 263
in, ZoomIn 263
W integer, ZoomInt 263
out, ZoomOut 264
when( ), when 258
previous, ZoomPrev 264
While, while 258
recall, ZoomRcl 264
Window Editor 38
square, ZoomSqr 264
wire-and-contour graphing 63
standard, ZoomStd 265
wire-frame graphing 63
store, ZoomSto 265
with, | 50, 277
trig, ZoomTrig 265
within string, inString( ) 198
ZoomBox, zoom box 261
ZoomData, zoom data 262
X ZoomDec, zoom decimal 262
xor, Boolean exclusive or 259 ZoomFit, zoom fit 263
XorPic, exclusive or picture 259 ZoomIn, zoom in 263
ZoomInt, zoom integer 263
Y ZoomOut, zoom out 264
ZoomPrev, zoom previous 264
Y= editor 53, 55
ZoomRcl, zoom recall 264
ZoomSqr, zoom square 264
Z ZoomStd, zoom standard 265
zeroes ZoomSto, zoom store 265
activity 105 ZoomTrig, zoom trig 265

300 Index

You might also like