Page 1
HP-15C Owner’s Handbook HP Part Number: 00015-90001 Edition 2.4, Sep 2011...
Page 2
In this regard, HP shall not be liable for technical or editorial errors or omissions contained in the manual.
Page 3
Direct and indirect storage in up to 67 registers. This handbook is written for you, regardless of your level of expertise. The beginning part covers all the basic functions of the HP-15C and how to use them. The second part covers programming and is broken down into three subsections –...
Contents The HP-15C: A Problem Solver ........A Quick Look at v ..........Manual Solutions ............Programmed Solutions ............. Part I: HP-15C Fundamentals ........ Section 1: Getting Started .......... Power On and Off ............Keyboard Operation ............Primary and Alternate Functions ........
Page 5
Contents The Automatic Memory Stack and Stack Manipulation ..Stack Manipulation Functions ........The LAST X Register and K ........Calculator Functions and the Stack ......... Order of Entry and the v Key ....... Nested Calculations ............. Arithmetic Calculations With Constants ......Storage Register Operations ..........
Page 6
Contents Resetting Continuous Memory ........Part II: HP-15C Programming ....... Section 6: Programming Basics ........The Mechanics ............... Creating a Program ............. Loading a Program ............Intermediate Program Stops ........... Running a Program ............How to Enter Data ............Program Memory ............
Page 7
Contents Flags ................Examples ............... Example: Branching and Looping ........Example: Flags ............Further Information ............GoTo ................Looping ..............Conditional Branching ..........Flags ................The System Flags: Flags 8 and 9 ........Section 9: Subroutines ..........The Mechanics ............... GoTo Subroutine and Return ..........
Page 8
Contents I and e ..................... Indirect Display Control Part III: HP-15C Advanced Functions ....Section 11: Calculating With Complex Numbers ..The Complex Stack and Complex Mode ......Creating the Complex Stack .......... Deactivating Complex Mode ......... Complex Numbers and the Stack ........
Page 9
Contents Copying a Matrix ............One-Matrix Operations ..........Scalar Operations ............Arithmetic Operations ..........Matrix Multiplication ........... Solving the Equation AX = B .......... Calculating the Residual ..........Using Matrices in LU Form ..........Calculations With Complex Matrices ....... Storing the Elements of a Complex Matrix ...... The Complex Transformations Between Z and Z .....
Page 10
Contents Appendix A: Error Conditions ........Appendix B: Stack Lift and the ....LAST X Register Digit Entry Termination ............ Stack Lift ................ Disabling Operations ........... Enabling Operations ............ Neutral Operations ............LAST X Register ............... Appendix C: Memory Allocation ........ The Memory Space ............
Page 11
Contents Appendix F: Batteries ..........Low-Power Indication ............Installing New Batteries ..........Verifying Proper Operation (Self-Tests) ....... Function Summary and Index ........Complex Functions ............Conversions ..............Digit Entry ..............Display Control .............. Hyperbolic Functions ............Index Register Control ............. Logarithmic and Exponential Functions ......
If you have not used an HP calculator before, you will notice that most keys have three labels. To use the primary function – the one printed in white on top of the key – just press that key. For those printed in gold...
The HP-15C: A Problem Solver The display format used in this handbook is • 4 (the decimal point is ―fixed‖ to show four decimal places) unless otherwise mentioned. If your calculator does not show four decimal places, you may want to press ´•...
The HP-15C: A Problem Solver The time an object takes to fall to the ground (ignoring air friction) is given by the formula t where t = time in seconds, h = height in meters, g = the acceleration due to gravity, 9.8 m/s...
Page 15
The HP-15C: A Problem Solver Keystrokes Display 000- |¥ Sets HP-15C to Program mode. (PRGM annunciator on.) ´ CLEAR M 000- Clears program memory. (This step is optional here.) 001-42,21,11 ´bA Label "A" defines the beginning of the program. 002-...
Page 16
The HP-15C: A Problem Solver With this program loaded, you can quickly calculate the time of descent of an object from different heights. Simply key in the height and press ´A. Find the time of descent for objects released from heights of 100 m, 2 m, 275 m, and 2,000 m.
Keyboard Operation Primary and Alternate Functions Most keys on your HP-15C perform one primary and two alternate, shifted functions. The primary function of any key is indicated by the character(s) on the face of the key. The alternate functions are indicated by the gold characters printed above the key and the blue characters printed on the lower face of the key.
Section 1: Getting Started Notice that when you press the ´ or | prefix key, an f or g annunciator appears 0.0000 and remains in the display until a function key is pressed to complete the sequence. Prefix Keys A prefix key is any key which must precede another key to complete the key sequence for a function.
0.00000025×10 can be keyed in as 2.5×10 The “CLEAR” Keys Clearing means to replace a number with zero. The clearing operations in the HP-15C are (the table is continued on the next page): Clearing Sequence Effect Clears display (X-register). −...
Clears any prefix from a partially entered key sequence. * Also temporarily displays the mantissa. Display Clearing: − The HP-15C has two types of display clearing operations: ` (clear X) and − (back arrow). In Run mode: ` clears the display to zero.
Section 1: Getting Started Calculations One-Number Functions A one-number function performs an operation using only the number in the display. To use any one-number function, press the function key after the number has been placed in the display. Keystrokes Display 1.6532 Two-Number Functions and A two-number function must have two numbers present in the calculator...
Page 23
Section 1: Getting Started Example: Calculate (9 + 17 4) ÷ 4. Keystrokes Display 9.0000 Digit entry terminated. 26.0000 17 + (9 + 17). 22.0000 (9 + 17 – 4). 5.5000 (9 + 17 – 4) ÷ 4. 4 ÷ Even more complicated problems are solved in the same manner-using automatic storage and retrieval of intermediate results.
(digit entry in section 1, stack manipulation in section 3, and display control in section 5). The numeric functions of the HP-15C are used in the same way whether executed from the keyboard or in a program. Some of the functions (such as a) are, in fact, primarily of interest for programming.
-1.2346 (release) digits in the mantissa. 1.2346 One-Number Functions One-number math functions in the HP-15C operate only upon the number in the display (X-register). General Functions Reciprocal. Pressing ∕ calculates the reciprocal of the number in the display. Factorial and Gamma. Pressing ´ ! calculates the factorial of the displayed value, where x is an integer 0≤x≤69.
Before executing a trigonometric function, be sure that the calculator is set to the desired trigonometric mode (Degrees, Radians, or Grads). Time and Angle Conversions Numbers representing time (hours) or angles (degrees) can be converted by the HP-15C between a decimal-fraction and a minutes-seconds format:...
Section 2: Numeric Functions Hours.Decimal Hours Hours.Minutes Seconds Decimal Seconds (H.h) (H.MMSSs) Degrees.Decimal Hours Degrees.Minutes Seconds Decimal Seconds (D.d) (D.MMSSs) Hours/Degrees-Minutes-Seconds Conversion. Pressing ´ h converts the number in the display from a decimal hours/degrees format to an hours/degree-minutes-seconds-decimal seconds format. For example, press ´...
Section 2: Numeric Functions Logarithmic Functions Natural Logarithm. Pressing |Z calculates the natural logarithm of the number in the display; that is, the logarithm to the base e. Natural Antilogarithm. Pressing ' calculates the natural antilogarithm of the number in the display; that is, raises e to the power of that number. Common Logarithm.
Section 2: Numeric Functions Two-Number Functions The HP-15C performs two-number math functions using two values entered sequentially into the display. If you are keying in both numbers, remember that they must be separated by v or any other function – like | ‘...
Polar and Rectangular Coordinate Conversions The : and ; functions are provided in the HP-15C for conversions between polar coordinates and rectangular coordinates. The angle θ is assumed to be in the mode, whether degrees (in a decimal format, not a minutes- seconds format), radians, or grads.
Page 31
Section 2: Numeric Functions Rectangular Conversion. Pressing ´; (rectangular) converts a set of polar coordinates (magnitude r angle θ) into rectangular coordinates (x, y). θ must be entered first then r. Upon executing ´;, x will be displayed first; press ® to display y. Keystrokes Display Set to Degrees mode (no annunciator).
The Automatic Memory Stack Registers T 0.0000 Z 0.0000 Y 0.0000 X 0.0000 Always displayed When the HP-15C is in Run mode (no PRGM annunciator displayed), the number that appears in the display is the number in the X-register.
Section 3: The Memory Stack, LAST X, and Data Storage Any number that is keyed in or results from the execution of a numeric function is placed into the display (X-register). This action will cause numbers already in the stack to lift, remain in the same register, or drop, depending upon both the immediately preceding and the current operation.
Page 34
Section 3: The Memory Stack, LAST X, and Data Storage shading indicates that the contents of that register will be written over when the next number is keyed in or recalled.) lost lost lost Keys: lost Keys: ) (roll down), ( (roll up), and ® (X exchange Y). ) and ( roll the contents of the stack registers up or down one register (one value moves between the X- and the T-register).
Section 3: The Memory Stack, LAST X, and Data Storage The LAST X Register and The LAST X register, a separate memory register, preserves the value that was last in the display before execution of a numeric operation. Pressing |K (LAST X) places a copy of the contents of the LAST X register into the display (X-register).
However, when you want to key in a number immediately following any function (including manipulations like )), you do not need to use v. Why? Executing most HP-15C functions has this additional effect: • The automatic memory stack is lift-enabled that is, the stack will lift automatically when the next number is keyed or recalled into the display.
Section 3: The Memory Stack, LAST X, and Data Storage lost Keys: Order of Entry and the An important aspect of two-number functions is the positioning of the numbers in the stack. To execute an arithmetic function, the numbers should be positioned in the stack in the same way that you would vertically position them on paper.
Section 3: The Memory Stack, LAST X, and Data Storage Nested Calculations The automatic stack lift and stack drop make it possible to do nested calculations without using parentheses or storing intermediate results. A nested calculation is solved simply as a series of one- and two-number operations.
Section 3: The Memory Stack, LAST X, and Data Storage Keys: Keys: Arithmetic Calculations With Constants There are three ways (without using a storage register) to manipulate the memory stack to perform repeated calculations with a constant: 1. Use the LAST X register. Load the stack with a constant and operate upon different numbers.
Page 40
Section 3: The Memory Stack, LAST X, and Data Storage Example: Two close stellar neighbors of Earth are Rigel Centaurus (4.3 light-years away) and Sirius (8.7 light-years away). Use the speed of light, c (3.0×10 meters/second, or 9.5×10 meters/year), to figure the distances to these stars in meters.
Page 41
Section 3: The Memory Stack, LAST X, and Data Storage Loading the Stack with a Constant. Because the number in the T-register is replicated when the stack drops, this number can be used as a constant in arithmetic operations. New constant generation.
Storage Register Operations When numbers are stored or recalled, they are copied between the display (X-register) and the data storage registers. At ―power-up‖ (initial turn-on or Continuous Memory reset) the HP-15C has 21 directly accessible storage registers: R through R...
Section 3: The Memory Stack, LAST X, and Data Storage The above are stack lift-enabling operations, so the number remaining in the X-register can be used for subsequent calculations. If you address a nonexistent register, the display will show Error 3 Example: Springtime is coming and you want to keep track of 24 crocuses planted in your garden.
Page 44
Section 3: The Memory Stack, LAST X, and Data Storage The number in the register is determined as follows: For storage arithmetic, new contents old contents number in of register of register display × Keys: Recall Arithmetic. Recall arithmetic allows you to perform arithmetic with the displayed value and a stored value without lifting the stack, that is, without losing any values from the Y-, Z, and T-registers.
Section 3: The Memory Stack, LAST X, and Data Storage Example: Keep a running count of your newly blooming crocuses for two more days. Keystrokes Display 8.0000 8 O 0 Places the total number of blooms as of day 2 in R 4.0000 4 O + 0 Day 3: adds four new blooms to those...
Page 46
Section 3: The Memory Stack, LAST X, and Data Storage Use arithmetic with constants to calculate the remaining balance of a $1000 loan after six payments of $100 each and an interest rate of 1% (0.01) per payment period. Procedure: Load the stack with (1 + i), where i = interest rate, and key in the initial loan balance.
Section 4 Statistics Functions A word about the statistics functions: their use is based on an understanding of memory stack operation (Section 3). You will find that order of entry is important for most statistics calculations. Probability Calculations The input for permutation and combination calculations is restricted to nonnegative integers.
(part of a uniformly distributed pseudo-random number sequence) in the range 0 ≤ r <1. At initial power-up (including reset of Continuous Memory), the HP-15C random number generator will use zero as a ―seed‖ to initiate a random number sequence. Any time you generate a random number, that number becomes the seed for the next random number.
(The ´ may be omitted.) Accumulating Statistics The HP-15C performs one- and two-variable statistical calculations. The data is first entered into the Y- and X-registers. Then the z function automatically calculates and stores statistics of the data in storage registers...
Page 50
Section 4: Statistics Functions In some cases involving x or y data values that differ by a relatively small amount, the calculator cannot compute s, r, linear regression, or ŷ, and will display . This will not happen, however, if you normalize the data by Error 2 keying in only the difference between each value and the mean or approximate mean of the values.
Page 51
Section 4: Statistics Functions NITROGEN APPLIED 0.00 20.00 40.00 60.00 80.00 (kg per hectare *), x GRAIN YIELD 4.63 4.78 6.61 7.21 7.78 (metric tons per hectare), y *A hectare equals 2.47 acres. Keystrokes Display ´ CLEAR ∑ 0.0000 Clears statistical storage registers (R through R the stack).
Section 4: Statistics Functions Correcting Accumulated Statistics If you discover that you have entered data incorrectly, the accumulated statistics can be easily corrected. Even if only one value of an (x, y) data pair is incorrect, you must delete and re-enter both values. Key the incorrect data pair into the Y- and X-register.
Section 4: Statistics Functions Mean The ’ function computes the arithmetic mean (average) of the x-and y- values using the formulas shown in appendix A and the statistics accumulated in the relevant registers. When you press |’ the contents of the stack lift (two registers if stack lift is enabled, one if not); the mean of x ( x) is copied into the X-register as the mean of y ( y) is copied simultaneously into the Y-register.
Section 4: Statistics Functions Example: Calculate the standard deviation about the mean calculated above. Keystrokes Display 31.62 Standard deviation about the mean nitrogen application, x. 1.24 ® Standard deviation about the mean grain yield, y. Linear Regression Linear regression is a statistical method for finding a straight line that best fits a set of two or more data pairs, thus providing a relationship between two or more data pairs, thus providing a relationship between two variables.
Section 4: Statistics Functions Example: Find the y-intercept and slope of the linear approximation of the data and compare to the plotted data on the graph below. Keystrokes Display 4.86 ´L y-intercept of the line. ® 0.04 Slope of the line. Linear Estimation and Correlation Coefficient When you press ´j the linear estimate, ŷ, is placed in the X-register and the correlation coefficient, r, is placed in the Y-register.
Page 56
Section 4: Statistics Functions Linear Estimation. With the statistics accumulated, an estimated value for y, denoted ŷ, can be calculated by keying in a proposed value for x and pressing ´j x ˆ An Estimated value for x (denoted ) can be calculated as follows: Press ´L.
Interpolation. Linear interpolation of tabular values, such as in thermodynamics and statistics tables, can be carried out very simply on the HP-15C by using the j function. This is because linear interpolation is linear estimation: two consecutive tabular values are assumed to form two points on a line, and the unknown intermediate value is assumed to fall on that same line.
Continuous Memory Display Control The HP-15C has three display formats – •, i, and ^ – that use a given number (0 through 9) to specify display format. The illustration below shows how the number 123,456 would be displayed specified to four places in each possible mode.
Section 5: The Display and Continuous Memory Scientific Notation Display i (scientific) format displays a number in scientific notation. The sequence ´i n specifies the number of decimal places to be shown. Up to six decimal places can be shown since the exponent display takes three spaces.
3141592654 Round-Off Error As mentioned earlier, the HP-15C holds every value to 10 digits internally. It also rounds the final result of every calculation to the 10th digit. Because the calculator can provide only a finite approximation for numbers such as ...
Section 5: The Display and Continuous Memory Digit Separators The HP-15C is set at power-up so that it separates integral and fractional portions of a number with a period (a decimal point), and separates groups of three digits in the integer portion with a comma. You can reverse this setting to conform to the numerical convention used in many countries.
User mode setting. Complex mode setting. When the HP-15C is turned on, it always ―wakes up‖ in Run mode. If the calculator is turned off, Continuous Memory will be preserved for a short period while the batteries are removed. Data and programs are preserved longer than other aspects of calculator status.
Section 5: The Display and Continuous Memory Resetting Continuous Memory If at any time you want to reset (entirely clear) the HP-15C Continuous Memory: 1. Turn the calculator off. 2. Press and hold the = key, then press and hold the - key.
HP-15C. The Mechanics Creating a Program Programming the HP-15C is an easy matter, based simply on recording the keystroke sequence used when calculating manually. (This is called ―keystroke programming‖.) To create a program out of a series of calculation steps requires two extra manipulations: deciding where and how to enter your data;...
Page 67
Section 6: Programming Basics Location in Program Memory. Program memory – and therefore the calculator's position in program memory – is demarcated by line numbers. Line 000 marks the beginning of program memory and cannot be used to store an instruction. The first line that contains an instruction is line 001. Program lines other than 000 do not exist until instructions are written for them.
Section 6: Programming Basics Keystrokes Display 002- 003- 004- Given h in the X-register, 005- lines 002 to 008 calculate 006- 007- ÷ 008- ¤ Program End. There are three possible endings for a program: | n (return) will end a program, return to line 000, and halt. ...
Section 6: Programming Basics Keystrokes Display |¥ Run mode; no PRGM annunciator displayed. (The display will depend on any previous result.) The position in program memory does not change when modes are switched. Should the calculator be shut off, it always ―wakes up‖ in Run mode.
Program Memory At power-up (Continuous Memory reset), the HP-15C offers 322 bytes of program memory and 21 storage registers. Most program steps (instructions) use one byte, but some use two. The distribution of memory capacity can be altered, as explained in appendix C.
Page 71
Section 6: Programming Basics The program to calculate this information uses these formulas and data: base area = r volume = base area × height = surface area = 2 base areas + side area = 2r + 2rh. Radius, r Height, h Base Area...
Page 72
Section 6: Programming Basics Keystrokes Display ´bA 001-42,21,11 Assigns this program the label ―A‖. 002- Stores the contents of X-register into R . r must be in the X- register before running the program. 003- 43 11 Squares the contents of the X- register (which will be r).
Page 73
Section 6: Programming Basics Keystrokes Display 019– SIDE AREA + BASE AREA = SURFACE AREA. 020–44,40, 3 O + 3 Keeps a sum of all SURFACE AREAS in R 021– 43 32 Ends the program and returns program memory to line 000. Now, let's run the program: Keystrokes Display...
For a complete list of two-byte instructions, refer to Appendix C. Instruction Coding Each key on the HP-15C keyboard – except for the digit keys 0 through 9 – is identified in Program mode by a two-digit ―keycode‖ that corresponds to the key's position on the keyboard.
, you have run up against limitations of the Error 10 HP-15C memory. If you learn how to reallocate memory, you can greatly increase your ability to store information in the HP-15C. The HP-15C memory consists of 67 registers (R...
Page 76
Section 6: Programming Basics Initial Memory Configuration Memory is reallocated by telling the calculator which data storage register shall be the highest data register; all other registers are left for programming and advanced functions. Keystrokes Display 60.0000 60 ´ m % and below allocated to data storage;...
Section 6: Programming Basics Keystrokes Display 1 ´ m % 1.0000 and R allocated for data storage; R to R available for programming and advanced functions. 19 ´ m% 19.0000 Original allocation: R ) and below for data storage; R , to for programming and advanced functions.
Section 6: Programming Basics corresponding label. If need be, the search will wrap around at the end of program memory and continue at line 000. When it encounters an appropriate label, the search stops and execution begins. If a label is encountered as part of a running program, it has no effect, that is, execution simply continues.
Section 6: Programming Basics For example, ´b´A becomes ´bA, ´m´% becomes ´m%, and O´# becomes O#. The removal of the ´ is not ambiguous because the ´-shifted function is the only logical one in these cases. The keycodes for such instructions do not include the extraneous ´...
Section 6: Programming Basics Example: Write a program for 5x + 2x as (((5x + 2)x)x)x, then evaluate for x = 7 Keystrokes Display | ¥ 000- Assumes position in memory is line 000. If it is not, clear program memory. 001-42,21,12 ´...
Section 6: Programming Basics Problems The village of Sonance has installed a 12-o'clock whistle in the firehouse steeple. The sound level at the firehouse door, 3.2 meters from the whistle, is 138 decibels. Write a program to find the sound level at various distances from the whistle.
Section 7: Program Editing The Back Step (‚) Instruction. To move one line backwards in program memory, press ‚ (back step) in Program or Run mode. This function is not programmable. ‚ will scroll (with the key held down) in Program mode.
Page 84
Section 7: Program Editing Let's start at the end of the program and work backwards. In this way, deletions will not change the line numbers of the preceding lines in the program. Keystrokes Display | ¥ 000- Program mode. (Assumes position is at line 000.) t “...
Section 7: Program Editing Keystrokes Display − 019- Line 020 deleted. | ‚ (hold) 016- The next line to edit is line 016 (l 4). − 015- Line 016 deleted. Line 016 changed to l 2. 016- t “ 011 011-44,40, 2 Moves to line 011 (O+ (or hold ‚)
Section 7: Program Editing you can check the program by executing it stepwise. This is done by pressing  in Run mode. Keystrokes Display | ¥ Run mode. ´ CLEAR Q Clear storage registers. Move to first line of program 8 O 1 8.0000 Store a can height.
Problems It is good programming technique to avoid using identical program labels. (This shouldn't be hard, since the HP-15C provides 25 different labels.) To ensure against duplication of labels, you can clear program memory first. 1. The following program is used by the manager of a savings and loan...
Page 88
Section 7: Program Editing Keystrokes Display ´ b . 1 001-42,21,.1 002-42, 7, 2 ´ •2 003- 004- 005- Interest. 006- 007- ® 008- 009- (1 + i) 010- PV (1 + i) 011- 43 32 Load the program and find the future value of $1,000 invested for 5 years;...
Page 89
Section 7: Program Editing Make any necessary modifications in the program to also find and display s, the length of the circular arc cut by θ (in radians), according to the equation s = r θ. Complete the following table: θ...
Branching in the HP-15C may be simple, or it may depend on a certain condition. By branching to a previous line, it is possible to execute part of a program more than once –...
Another way to alter the sequence of program execution is by a conditional test, a true/false test which compares the number in the X-register either to zero or to the number in the Y-register. The HP-15C provides 12 different tests, two explicit on the keyboard and 10 others accessible using | T n.
"Do if True" Rule: it proceeds sequentially if the flag is set, and skips one line if the flag is clear. The HP-15C has eight user flags, numbered 0 to 7, and two system flags, numbered 8 (Complex mode) and 9 (overflow condition). The system flags are discussed later in this section.
Section 8: Program Branching and Controls Examples Example: Branching and Looping A radiobiology lab wants to predict the diminishing radioactivity of a test amount of I, a radioisotope. Write a program to figure the radioactivity at 3-day intervals until a given limit is reached.
Section 8: Program Branching and Controls Example: Flags Calculations on debts or investments can be calculated in two ways: for payments made in advance (at the beginning of a given period) and for payments made in arrears (at the end of a given period). If you write a program to calculate the value (or ―present value‖) of a debt or investment with periodic interest and periodic payments, you can use a flag as a status indicator to tell the program whether to assume payments are made in...
Page 96
Section 8: Program Branching and Controls Keystrokes Display | ¥ 000- Program mode. ´ bB 001-42,21,12 Start at "B" if payments to be made at the beginning. | " 0 002-43, 5, 0 Flag 0 clear (false); indicates advance payments. 003- Go to main routine.
Section 8: Program Branching and Controls Now run the program to find the total amount needed in an account from which you want to take $250/month for 48 months. Enter the periodic interest rate as a decimal fraction, that is, 0.005 per month. First find the sum needed if payments will be made at the beginning of the month (payments in advance), then calculate the sum needed if payments will be made at the end of the month (in arrears).
Section 8: Program Branching and Controls Looping Looping is an application of branching which uses a t instruction to repeat a portion of the program. A loop can continue indefinitely, or may be conditional. A loop is frequently used to repeat a calculation with different variables.
Section 8: Program Branching and Controls In this way, a program can accommodate two different modes of input, such as degrees and radians, and make the correct calculation for the mode chosen. You set a flag if a conversion needs to be made, for instance, and clear it if no conversion is needed.
Page 100
Section 8: Program Branching and Controls Flag 9. An overflow condition (described on page 61) automatically sets flag 9. Flag 9 causes the display to blink or, if a program is running, waits until execution is complete and then starts blinking the display. Flag 9 may be cleared in three ways: ...
Section 9 Subroutines When the same set of instructions needs to be used at more than one point in a program, memory space can be conserved by storing those instructions as a single subroutine. The Mechanics Go To Subroutine and Return The G (go to subroutine) instruction is executed in the same way as the t branch, with one major difference: it establishes a pending return condition.
Section 9: Subroutines Subroutine Limits A subroutine can call up another subroutine, and that subroutine can call up yet another subroutine. This ―subroutine nesting‖—the execution of a subroutine within a subroutine—is limited to stack of subroutines seven levels deep (this does not count the main program level). The operation of nested subroutines is as shown below: Main Program Examples...
Page 103
Section 9: Subroutines MAIN PROGRAM |¥ ´ CLEAR M (Not programmable.) 000- 001- ´ b 9 Start main program. 002- | R Radians mode. 003- O 0 Stores x 004- ® Brings x into X; x into Y. 005- O - 0 ) in R Transfer to subroutine ―.3‖...
Page 104
Section 9: Subroutines Example: Nesting. The following subroutine, labeled ―.4‖, calculates the value of the expression as part of a larger calculation in a larger program. The subroutine calls upon another subroutine (a nested subroutine), labeled ―.5‖, to do the repetitive squaring. The program is executed after placing the variables t, z, y, and x into the T-, Z-, Y-, and X-registers.
Section 9: Subroutines Further Information The Subroutine Return The pending return condition means that the n instruction occurring subsequent to a G instruction causes a return to the line following the G rather than a return to line 000. This is what makes a subroutine useful and reuseable in different parts of a program: it will always return execution to where it branched from, even as that point changes.
Loop Control The Index register (R ) is a powerful tool in advanced programming of the HP-15C. In addition to storage and recall of data the Index register can use an index number to: Count and control loops.
Hence, V (not %) is used for indirect program branching, indirect display format control, and indirect flag control. Program Loop Control Program loop counting and control can be carried out in the HP-15C by any storage register: R through R through R , or the Index register (V).
Section 10: The Index Register and Loop Control Indirect Addressing t V or GV will % will address: If R contains: transfer to:* ´ b B " " Á " " " " — ⋮ ⋮ — 0 only. *For R Index Register Arithmetic Direct.
Section 10: The Index Register and Loop Control value is positive, t V and G V will To Labels. If the R transfer execution to the label which corresponds to the number in the Index register (see the above table). For instance, if the Index register contains 20.00500, then a tV instruction will transfer program execution to ´b A.
Page 110
Section 10: The Index Register and Loop Control For example, the number 0.05002 in a storage register represents: nnnnn x x x y y 0.0 5 0 0 2 Start count at zero. Count by twos. Count up to 50. I and e Operation.
Section 10: The Index Register and Loop Control True (nnnnn xxx) False (nnnnn > xxx) instruction ´sV loop Instruction exit loop For e: given nnnnn.xxxyy, decrement nnnnn to nnnnn - yy, compare it to xxx, and skip the next program line if the new value satisfies nnnnn ≤ xxx.
Section 10: The Index Register and Loop Control Keystrokes Display 2.6458 Indirectly recalls contents of R ´ X .2 2.6458 Check: same contents recalled by directly addressing R Exchanging the X-Register Keystrokes Display 12.3456 ´ X V Exchanges contents of R and X- register.
Page 113
Section 10: The Index Register and Loop Control Here is a revision of the original radioisotope decay program. This time, we will limit the program to three executions of the loop rather than setting a specific limit value. This example uses e with a loop control number in R 3.0 0 0 0 1.
Section 10: The Index Register and Loop Control Keystrokes Display -15.0000 15 “ O Branch line number. V ´ A 2.0000 Running program loop counter = 3. 84.0896 5.0000 Loop counter = 2. 64.8420 8.0000 Loop counter = 1. 50.0000 50.0000 Loop counter = 0;...
Section 10: The Index Register and Loop Control For the purpose of loop control, the integer portion (the counter value) of the stored control number can be up to five digits long (nnnnn.xxxyy). The counter value (nnnnn) is zero if not specified otherwise. xxx, in the decimal portion of the control number, must be specified as a three-digit number.
Page 117
Section 10: The Index Register and Loop Control An exception is in the case of f where the display format number in R may range from -6 to +9. (This is discussed in appendix E on page 247.) A number less than zero will not affect the display format, but will affect accuracy with this function.
As you will see, the beauty of calculating with the HP-15C in Complex mode is that once the complex numbers are keyed in, most operations are executed in the same manner as with real numbers.
Complex mode, the number appearing in the display is the number in the real X-register. Note: In Complex mode (signified by the C annunciator), the HP- 15C performs all trigonometric functions using radians. The trigonometric mode annunciator in the display (RAD, GRAD, or blank for Degrees) applies to two functions only: ;...
Page 122
Section 11: Calculating With Complex Numbers Example: Add 2 + 3i and 4 + 5i. (The operations are illustrated in the stack diagrams following the keystroke listing.) Keystrokes Display ´ • 4 2.0000 Keys real part of first number into (real) Y-register. Keys imaginary part of first number into (real) X-register.
Page 123
Section 11: Calculating With Complex Numbers ´ V Keys: The execution of ´ V causes the entire stack to drop, the T contents to duplicate, and the real X contents to move to the imaginary X-register. When the second complex number is entered, the stacks operate as shown below.
Section 11: Calculating With Complex Numbers Stack Lift in Complex Mode Stack lift operates on the imaginary stack as it does on the real stack (the real stack behaves identically in and out of Complex mode). The same functions that enable, disable, or are neutral to lifting of the real stack will enable, disable, or be neutral to lifting of the imaginary stack.
Section 11: Calculating With Complex Numbers of Complex mode. Instead, you can do either of the following: Multiply by -1. If you don't want to disturb the rest of the stack, press “ ´ } “ ´ }. To find the negative of only one part of a complex number in the X-register: ...
Page 126
Section 11: Calculating With Complex Numbers Clearing the Imaginary X-Register. To clear the number in the imaginary X-register, press ´ }, then press −. Press ´ } again to return the zero, or any new number keyed in, to the imaginary X-register. Example: Replace -1 -8i by -1 + 5i.
Page 127
Section 11: Calculating With Complex Numbers Entering Complex Numbers with −. The clearing functions − and ` can also be used with } as an alternative method of entering (and clearing) complex numbers. Using this method, you can enter a complex number using only the X-register, without affecting the rest of the stack.
Section 11: Calculating With Complex Numbers − Keys: Entering a Real Number You have already seen two ways of entering a complex number. There is a shorter way to enter a real number: simply key it (or recall it) into the display just as you would if the calculator were not in Complex mode.
Section 11: Calculating With Complex Numbers Entering a Pure Imaginary Number There is a shortcut for entering a pure imaginary number into the X-register when you are already in Complex mode: key in the (imaginary) number and press ´ } Example: Enter 0 + 10i (assuming the last function executed was not −...
Any functions not mentioned below or in the rest of this section (Calculating With Complex Numbers) ignore the imaginary stack. * You can use the HP-15C matrix function, described in section 12, to make storing and recalling complex numbers more convenient. By dimensioning a matrix to be n×2, n complex numbers can be stored as rows of the matrix.
X- and Y-registers. ® ) ( v K * Refer to the HP-15C Advanced Functions Handbook for definitions of complex trigonometric functions and further information about doing calculations in Complex mode.
Section 11: Calculating With Complex Numbers Conditional Tests For programming, the four conditional tests below will work in the complex sense: ~ and T 0 compare the complex number in the (real and imaginary) X-registers to 0 + 0i, while T 5 and T 6 compare the complex numbers in the (real and imaginary) X- and Y-registers.
Polar and Rectangular Coordinate Conversions In many applications, complex numbers are represented in polar form, sometimes using phasor notation. However, the HP-15C assumes that any complex numbers are in rectangular form. Therefore, any numbers in polar or phasor form must be converted to rectangular form before performing a function in Complex mode.
Page 134
Section 11: Calculating With Complex Numbers iθ r (cos θ + i sin θ) = re (polar) a + ib = θ (phasor) ; and : can be used to interconvert the rectangular and polar forms of a complex number. They operate in Complex mode as follows: ´...
Problems By working through the following problems, you will see that calculating with complex numbers on the HP-15C is as easy as calculating with real numbers. In fact, once your numbers are entered, most mathematical operations will use exactly the same keystrokes. Try it and see! ...
Page 136
Section 11: Calculating With Complex Numbers Keystrokes Display 0.0000 2 ´ } 2i. Display shows real part. -8.0000 8 “ v 6 ´ V -8.0000 -8 + 6i. 352.0000 (-8 + 6i) -1.872.0000 2 i (-8 + 6i) 4.0000 5 ¤ 2.2361 2 “...
Section 11: Calculating With Complex Numbers For Further Information The HP-15C Advanced Functions Handbook presents more detailed and technical aspects of using complex numbers in various functions with the HP-15C. Applications are included. The topics include: Accuracy considerations. Principal branches of multi-valued functions.
Section 12 Calculating With Matrices The HP-15C enables you to perform matrix calculations, giving you the capability to handle advanced problems with ease. The calculator can work with up to five matrices, which are named A through E since they are accessed using the corresponding A through E keys.
Page 139
Section 12: Calculating with Matrices Keystrokes Display | " 8 Deactivates Complex mode. 2.0000 2 v ´ m A Dimensions matrix A to be 2×2. ´ > 1 2.0000 Prepares for automatic entry of matrix elements in User mode. 2.0000 ´...
Section 12: Calculating with Matrices Keystrokes Display 1 Enters descriptor for B, the 2×1 l > B constant matrix. 2 Enters descriptor for A, the 2×2 l > A coefficient matrix, into the X- register, moving the descriptor for B into the Y-register. running ÷...
The matrix functions described in this section operate on real matrices only. (In Complex mode, the imaginary stack is ignored during matrix operation.) However, the HP-15C has four matrix functions that enable you to calculate using real representations of complex matrices, as described on pages 160-173.
Section 12: Calculating with Matrices Example: Dimension matrix A to be a 2×3 matrix. Keystrokes Display 2.0000 Keys number of rows into Y-register. Keys number of columns into X- register. 3.0000 ´mA Dimensions matrix A to be 2×3. Displaying Matrix Dimensions There are two ways you can display the dimensions of a matrix: ...
0 ´ m {A through E}.) Storing and Recalling Matrix Elements The HP-15C provides two ways of storing and recalling values of matrix elements. The first method allows you to progress through all of the elements in order. The second method allows you to access elements individually.
Page 144
Section 12: Calculating with Matrices To store or recall sequential elements of a matrix: Be sure the matrix is properly dimensioned. Press ´ >1. This stores 1 in both storage registers R , so that elements will be accessed starting at row 1, column 1. Activate User mode by pressing ´...
Section 12: Calculating with Matrices Keystrokes Display ´ > 1 Sets beginning row and column numbers in R and R to 1. (Display shows the previous result.) ´ U Activates User mode. 1 O A Row 1, column 1 of A. (Displayed momentarily while A key held down.) 1.0000...
Page 146
Section 12: Calculating with Matrices Using R and R . To access a particular matrix element, store its row number in R and its column number in R . These numbers won't change automatically (unless the calculator is in User mode). ...
Section 12: Calculating with Matrices Example: Recall the element in row 2, column 1 of matrix A from the previous example. Use the stack registers. Keystrokes Display 2 v 1 Enters row number into Y- register and column number into X-register.
The LU decomposition of a matrix A is another matrix in which is encoded a lower-triangular matrix, L, and an upper-triangular matrix, U, whose product LU equals matrix A (possibly with same rows interchanged). The HP-15C Advanced Functions Handbook discusses LU decomposition in detail. †...
Section 12: Calculating with Matrices While the key used for any matrix operation that stores a result in the result matrix is held down, the descriptor of the result matrix is displayed. If the key is released within about 3 seconds, the operation is performed, and the descriptor of the result matrix is placed in the X-register.
Page 150
If the specified matrix is a singular matrix (that is, one that doesn’t have an § inverse), then the HP-15C modifies the LU form by an amount that is usually small compared to round-off error. For ∕, the calculated inverse is the inverse of a matrix close to the original, singular matrix.
Section 12: Calculating with Matrices Example: Calculate the transpose of matrix B. Matrix B was set in preceding examples to Keystrokes Display l > B Displays descriptor of 2×3 matrix B. ´ > 4 Descriptor of 3×2 transpose.
Page 152
Section 12: Calculating with Matrices Elements of Result Matrix* Operation Matrix in Y-Register Scalar in Y-Register Scalar in X-Register Matrix in X-Register Adds scalar value to each matrix element. Multiplies each matrix element by scalar value. Subtracts scalar value Subtracts each matrix from each matrix element from scalar value.
Section 12: Calculating with Matrices Keystrokes Display Subtracts 1 from the elements of matrix B and stores those values in the same elements of B. The result (which you can view using lB in User mode) is ...
Section 12: Calculating with Matrices Keystrokes Display Calculates B - A and stores values in redimensioned result matrix C. The result is Matrix Multiplication With matrix description in both the X- and Y-registers, you can calculate three different matrix products.
Page 155
Section 12: Calculating with Matrices For ÷, the matrix specified in the X-register is replaced by its LU –1 decomposition. The ÷ function calculates X Y using a more direct method than does ∕ and *, giving the result faster and with improved accuracy.
* If A is a singular matrix (that is, one that doesn’t have an inverse), then the HP-15C modifies the LU form of A by an amount that is usually small compared to round-off error. The calculated solution corresponds...
Page 157
Section 12: Calculating with Matrices Week Total Weight (kg) $120.32 $112.96 $151.36 Total Value Silas knows that he received $0.24 per kilogram for his cabbage and $0.86 per kilogram for his broccoli. Use matrix operations to determine the weights of cabbage and broccoli he delivered each week. Solution: Each week's delivery represents two linear equations (one for weight and one for value) with two unknown variables (the weights of cabbage and broccoli).
Page 158
Section 12: Calculating with Matrices Keystrokes Display 274 OB 274.0000 Stores b 233.0000 233 OB Stores b 331 OB 331.0000 Stores b 120.3200 120.32 OB Stores b 112.96 OB 112.9600 Stores b 151.3600 151.36 OB Stores b 151.3600 ´< Á Designates matrix D as result matrix.
Cabbage (kg) Broccoli (kg) Calculating the Residual The HP-15C enables you to calculate the residual, that is, the matrix Residual = R–YX where R is the result matrix and X and Y are the matrices specified in the X- and Y-registers.
(that is, equations whose coefficients and variables are complex). However, the HP-15C stores and operates on only real matrices. The capability of doing calculations with complex matrices is completely independent of the capability of doing calculations with complex numbers described in the preceding section.
This section will describe how to do these calculations. (There are more examples of calculations with complex matrices in the HP-15C Advanced Functions Handbook.) Storing the Elements of a Complex Matrix Consider an m×n complex matrix Z = X + iY, where X and Y are real m×n matrices.
Page 162
, the transformations used for multiplying and inverting a complex matrix presume that the matrix is represented by a matrix of the form shown for Z . The HP-15C provides two transformations that convert the representation of a complex matrix between Z and Z...
Page 163
Section 12: Calculating with Matrices Example: Store the complex matrix in the form Z , since it is written in a form that shows Z . Then transform into the form Z You can do this by storing the elements of Z in matrix A and then using the p function, where...
Section 12: Calculating with Matrices Matrix A now represents the complex matrix Z in Z form: Real P art Imaginary P art The Complex Transformations Between Z and Z An additional transformation must be done when you want to calculate the product of two complex matrices, and still another when you want to...
Section 12: Calculating with Matrices Inverting a Complex Matrix You can calculate the inverse of a complex matrix by using the fact that To calculate inverse, Z , of a complex matrix Z: 1. Store the elements of Z in memory, in the form either of Z or of Z 2.
Section 12: Calculating with Matrices Keystrokes Display ´ < Designates B as the result matrix. ∕ Calculates ( ) ) and places the result in matrix B. ´> 3 Transforms ( ) into The representation of Z in partitioned form is contained in matrix B. ...
Page 167
Section 12: Calculating with Matrices 8. Press * to calculate X = (YX) . The values of these matrix elements are placed in the result matrix, and the descriptor of the result matrix is placed in the X-register. , press |c 9.
Section 12: Calculating with Matrices Writing down the elements of C, 0000 8500 0000 0000 0000 8000 ...
Page 169
Section 12: Calculating with Matrices 4. Recall the descriptor of the matrix representing A into the display. , press ´ 5. If the elements of A were entered in the form of A p to transform A into A 6. Press ´> 2 to transform A into Ã.
Page 170
Section 12: Calculating with Matrices In partitioned form, where the zero elements correspond to real and imaginary parts with zero value.
Page 171
Note that since X and B are not restricted to be vectors (that is, single- column matrices), X and B could have required more memory. The HP-15C contains sufficient memory to solve, using the method described above, the complex matrix equation AX = B with X and B having up to six columns if A is 2×2, or up to two columns if A is 3×3.
Page 172
Section 12: Calculating with Matrices 1. Store the elements of A in memory, in the form either of A or of 2. Recall the descriptor of the matrix representing A into the display. , press ´ p 3. If the elements of A were entered in the form A to transform A into A 4.
Section 12: Calculating with Matrices A problem using this procedure is given in the HP-15C Advanced Functions Handbook under Solving a Large System of Complex Equations. Miscellaneous Operations Involving Matrices Using a Matrix Element With Register Operations If a letter key specifying a matrix is pressed after any of the following...
Section 12: Calculating with Matrices Pressing ´mV dimensions the matrix specified in R according to the dimensions in the X- and Y-registers. Pressing lmV recalls to the X- and Y-registers the dimensions of the matrix specified in R ...
Page 175
Section 12: Calculating with Matrices Several matrix functions operate on the matrix specified in the X-register only and store the result in the same matrix. For these operations the contents of the stack (including the LAST X register) are not moved – although the display changes to show the new dimensions if necessary.
Section 12: Calculating with Matrices Using Matrix Operations in a Program If the calculator is in User mode during program entry when you enter a O or l{A through E, %} instruction to store or recall a matrix element, a u replaces the dash usually displayed after the line number.
Section 12: Calculating with Matrices The > 7 (row norm) and > 8 (Frobenius norm) functions also operate as conditional branching instructions in a program. If the X-register contains a matrix descriptor, these functions calculate the norm in the usual manner, and program execution continues with the next program line.
Page 178
Section 12: Calculating with Matrices Keystroke(s) Results result matrix. ´> 6 Calculates residual in result matrix. ´> 7 Calculates row norm of matrix specified in X- register. ´> 8 Calculates Frobenius or Euclidean norm of matrix specified in X-register. ´> 9 Calculates determinant of matrix specified in X- register, Place LU in result matrix.
Stores in result matrix. For Further Information The HP-15C Advanced Functions Handbook presents more detailed and technical aspects of the matrix functions in the HP-15C, including applications. The topics include: least-squares calculations, solving nonlinear equations, ill-conditioned and singular matrices, accuracy...
– a = 0, and f(x) = g(x) is equivalent to f(x) – g(x) = 0. † The _ function does not use the imaginary stack. Refer to the HP-15C Advanced Functions Handbook for information about complex roots.
Page 181
Section 13: Finding the Roots of an Equation The basic rules for using _ are: In Program mode, key in a subroutine that evaluates the function f(x) that is to be equated to zero. This subroutine must begin with a label instruction (´b label) and end up with a result for f(x) in the X-register.
Page 182
0.0000 Initial estimates. You can now find the desired root by pressing ´_ 0. When you do this, the calculator will not display the answer right away. The HP-15C uses † an iterative algorithm to estimate the root. The algorithm analyzes your function by sampling it many times, perhaps a dozen times or more.
Page 183
Section 13: Finding the Roots of an Equation Keystrokes Display ´_ 0 5.0000 The desired root. After the routine finds and displays the root, you can ensure that the displayed number is indeed a root of f(x) = 0 by checking the stack. You have seen that the display (X-register) contains the desired root.
Page 184
Section 13: Finding the Roots of an Equation You have now found the two roots of f(x) = 0. Note that this quadratic equation could have been solved algebraically – and you would have obtained the same roots that you found using _. The convenience and power of the _ key become more apparent when you solve an equation for a root that cannot be determined algebraically.
Page 185
Section 13: Finding the Roots of an Equation Keystrokes Display “ 005– – t / 20. 006– – t / 20 007– – e “ 008– – t / 20 009– 1 – e 010– 011– 012– 013– – t / 20 014–...
Section 13: Finding the Roots of an Equation Fahr's ridget falls to the ground 9.2843 seconds after he hurls it—a remarkable toss. When No Root Is Found You have seen how the _ key estimates and displays a root of an equation of the form f(x) = 0.
Page 187
0.0000 Clear error display. As you can see, the HP-15C stopped seeking a root of f(x) = 0 when it decided that none existed – at least not in the general range of x to which it display does not indicate that an ―illegal‖...
Section 13: Finding the Roots of an Equation The final case points out a potential deficiency in the subroutine rather than a limitation of the root-finding routine. Improper operations may sometimes be avoided by specifying initial estimates that focus the search in a region where such an outcome will not occur.
Page 189
Section 13: Finding the Roots of an Equation If you have some knowledge of the behavior of the function f(x) as it varies with different values of x, you are in a position to specify initial estimates in the general vicinity of a zero of the function. You can also avoid the more troublesome ranges of x such as those producing a relatively constant function value or a minimum of the function's magnitude.
Page 190
Section 13: Finding the Roots of an Equation Keystrokes Display 003– 004– (x – 6) x. 005– 005– 007– ((x – 6) x + 8) x. 008– 009– 4 ((x – 6) x + 8) x. 010– 011– 012– 013– 014–...
Page 191
Section 13: Finding the Roots of an Equation By making the height 1.5 decimeters, a 5.0×1.0×1.5-decimeter box is specified. If you ignore the upper limit on the height and use initial estimates of 3 and 4 decimeters (still less than the width), you will obtain a height of 4.2026 decimeters –...
Section 13: Finding the Roots of an Equation Many functions exhibit special behavior when their arguments approach zero. You can check your function to determine values of x for which any argument within your function becomes zero, and then specify estimates at or near those values.
Section 13: Finding the Roots of an Equation Restriction on the Use of _ The one restriction regarding the use of _ is that _ cannot be used recursively. That is, you cannot use _ in a subroutine that is called during the execution of _.
(´b label) and end up with a value for f(x) in the X- register. Provided that f(x) is nonnegative throughout the interval of integration. † The f function does not use the imaginary stack. Refer to the HP-15C Advanced Functions Handbook for information about using f in Complex mode.
Page 195
Section 14: Numerical Integration In Run mode: 2. Key the lower limit of integration (a) into the X-register, then press v to lift it into the Y-register. 3. Key the upper limit of integration (b) in to the X-register. 4. Press ´ f followed by the label of your subroutine. Example: Certain problems in physics and engineering require calculating Bessel functions.
Page 196
Now you are ready to press ´f 0 to calculate the integral. When you do so, you'll find that – just as with _ – the calculator will not display the result right away, as it does with other operations. The HP-15C calculates integrals using a sophisticated iterative algorithm. Briefly, this algorithm evaluates f(x), the function to be integrated, at many values of x between the limits of integration.
Page 197
Section 14: Numerical Integration Before calling the subroutine you provide to evaluate f(x), the f algorithm – just like the _ algorithm – places the value of x in the X-, Y-, Z-, and T-registers. Because every stack register contains the x-value, your subroutine can calculate with this number without having to recall it from a storage register.
Page 198
Section 14: Numerical Integration Keystrokes Display 002– θ Calculate sin 003– θ Since a value of will be placed into the Y-register by the f algorithm before it executes this subroutine, the - operation at this point will calculate – sin θ...
Page 199
Section 14: Numerical Integration Find Si(2). Key in the following subroutine to evaluate the function f(x) = (sin x) / x. Keystrokes Display 000– |¥ Program mode. 001–42,21, .2 Begin subroutine with a b ´ b .2 instruction. 002– Calculate sin x. ®...
You'll recall that the HP-15C provides three types of display formatting: •, i, and ^. Which display format should be used is largely a...
Page 201
No algorithm for numerical integration can compute the exact difference between its approximation and the actual integral. But the algorithm in the HP-15C estimates an ―upper bound‖ on this difference, which is the uncertainty of the approximation. For example, if the integral Si (2) is 1.6054 ± 0.0001, the approximation to the integral is 1.6054 and its uncertainty is 0.0001.
Page 202
Section 14: Numerical Integration If the uncertainty of an approximation is larger than what you choose to tolerate, you can decrease it by specifying a greater number of digits in the display format and repeating the approximation. Whenever you want to repeat an approximation, you don't need to key the limits of integration back into the X- and Y-registers.
Section 14: Numerical Integration In the preceding example, the uncertainty indicated that the approximation might be correct to only four decimal places. If we temporarily display all 10 digits of the approximation, however, and compare it to the actual value of the integral (actually, an approximation known to be accurate to a sufficient number of decimal places), we find that the approximation is actually more accurate than its uncertainty indicates.
Section 14: Numerical Integration Memory Requirements f requires 23 registers to operate. (Appendix C explains how they are automatically allocated from memory.) If 23 unoccupied registers are not available, f will not run and will be displayed. Error 10 A routine that combines f and _ also requires 23 registers of space.
Error message, press any one key. This also restores the display prior to the Error display. The HP-15C has the following error messages. (The description of Error 2 includes a list of statistical formulas used.) Error 0: Improper Mathematics Operation Illegal argument to math routine: ÷, where x = 0.
Page 206
Appendix A: Error Conditions x or y is noninteger; x < 0 or y < 0; x > y; x or y ≥ 10 Error 1: Improper Matrix Operation Applying an operation other than a matrix operation to a matrix, that is, attempting a nonmatrix operation while a matrix is in the relevant register (whether the X- or Y-register or a storage register).
Page 207
Appendix A: Error Conditions Error 3: Improper Register Number or Matrix Element Storage register named is nonexistent or matrix element indicated is nonexistent. Error 4: Improper Line Number or Label Call Line number called for is currently unoccupied or nonexistent (>448); or you have attempted to load a program line without available space;...
Page 208
Appendix A: Error Conditions + or -, where the dimensions are incompatible. *, where: the dimensions are incompatible; or the result is one of the arguments. ∕, where the matrix is not square. scalar/matrix ÷, where the matrix is not square. ÷, where: ...
Stack Lift and the LAST X Register The HP-15C calculator has been designed to operate in a natural manner. As you have seen working through this handbook, most calculations do not require you to think about the operation of the automatic memory stack.
Appendix B: Stack Lift and the LAST X Register Disabling Operations Stack Lift. There are four stack-disabling operations on the calculator. These operations disable the stack lift, so that a number keyed in after one of these disabling operations writes over the current number in the displayed X-register and the stack does not lift.
Similarly, if you have previously enabled the stack lift by executing, say ¤, then execute a • instruction followed by a digit entry sequence, the stack will lift. The following operations are neutral on the HP-15C: • ¦ t “ nnn CLEAR u ¥...
Appendix B: Stack Lift and the LAST X Register LAST X Register The following operations save x in the LAST X register: ∆ ÷ À ‘ & ∕ > 5 through 9 † ¤ Except when used as a matrix function. †...
Storage registers, program lines, and advanced function execution all draw on a common memory space in the HP-15C. The availability of memory for a specific purpose depends on the current allocation of memory, as well as on the total memory capacity of the calculator.
Page 214
Appendix C: Memory Allocation Total allocatable memory: 64 registers, numbered R through R [(dd – 1) + uu + pp + (matrix elements) + (imaginary stack) + (_ and f)] = 64. For memory allocation and indirect addressing, data registers R through R are referred to as R through R...
= the number of bytes left before uu is decremented (to supply seven more bytes of program memory) and pp is incremented. The initial status of the HP-15C at power-up is: The movable boundary between the data storage and common pools is...
Appendix C: Memory Allocation 1. Place dd, the number of the highest data storage register you want allocated, into the display. 1dd65. The number of registers in the uncommitted pool (and therefore potentially available programming) will be (65 – dd). 2.
Program instructions use one or two bytes of memory. Most program lines use one byte; those using two bytes are listed on page 218. The maximum programming capacity of the HP-15C is 448 program bytes (64 convertible registers at seven bytes per register). At power-up, memory can hold up to 322 program bytes (46 allocated registers at seven bytes per register).
Appendix C: Memory Allocation Your very first program instruction will commit R (all seven bytes) from an uncommitted register to a program register. Your eighth program instruction commits R , and so on, until the boundary of the common pool is encountered.
Page 219
Appendix C: Memory Allocation For _ and f, allocation and deallocation of the required register space takes place automatically. Memory is thereby allocated only for the duration of these operations. Space for the imaginary stack is allocated whenever ´ V, ´ }, or | F 8 is pressed.
Appendix D A Detailed Look at Section 13, Finding the Roots of an Equation, includes the basic information needed for the effective use of the _ algorithm. This appendix presents more advanced, supplemental considerations regarding How _ Works You will be able to use _ most effectively by having a basic understanding of how the algorithm works.
Page 221
Appendix D: A Detailed Look at _ As discussed in section 13, page 186, the occurrence of other situations in the iteration process indicates the apparent absence of a function zero. The reason is that there is no way to logically predict a new estimate that is likely to have a function value closer to zero.
Appendix D: A Detailed Look at _ The function's graph is either convex everywhere or concave everywhere. The only local minima and maxima of the function's graph occur singly between adjacent zeros of the function. In addition, it is assumed that the _ algorithm will not be interrupted by an improper operation.
Page 223
Appendix D: A Detailed Look at _ If a calculation has a result whose magnitude is smaller than 1.000000000×10 , the result is set equal to zero. This effect is referred to as ―underflow.‖ If the subroutine that calculates your function encounters underflow for a range of x and if this affects the value of the function, then a root in this range may be expected to have some inaccuracy.
Page 224
Appendix D: A Detailed Look at _ the root 1.0000 is found for initial estimates of 1 and 2. By recognizing situations in which round-off error may influence the operation of _, you can evaluate the results accordingly and perhaps rewrite the function to reduce the effects of round-off.
Page 225
Appendix D: A Detailed Look at _ In order to find the first time at which the height is 107 meters, use initial estimates of 0 and 1 second and execute _ using B. Keystrokes Display | ¥ Run mode. 0.0000 Initial estimates.
Appendix D: A Detailed Look at _ Execute _ again: Keystrokes Display | ¥ Run mode. 0.0000 Initial estimates. ´ v B 4.0681 The desired root. 4.0681 A previous estimate of the root. 0.0000 Value of modified f(t) at root. After 4.0681 seconds, the ridget is at a height of 107 ±...
Page 227
Appendix D: A Detailed Look at _ Special consideration is required for a different type of situation in which _ finds a root with a nonzero function value. If your function's graph has a discontinuity that crosses the x-axis, _ specifies as a root an x-value adjacent to the discontinuity.
Page 228
Appendix D: A Detailed Look at _ Solution: The equation for the shear stress for x between 0 and 10 is more efficiently programmed after rewriting it using Horner's method: Q = (3x–45)x + 350 for 0 < x < 10. Keystrokes Display 000–...
Page 229
Appendix D: A Detailed Look at _ Keystrokes Display | ¥ Run mode. 7.0000 Initial estimates. 10.0000 ´_ 2 Possible root. 1,000.0000 Stress not zero. The large stress value at the root points out that the _ routine has found a discontinuity. This is a place on the beam where the stress quickly changes from negative to positive.
Page 230
Appendix D: A Detailed Look at _ If the algorithm terminates its search near a local minimum of the function's magnitude, clear the display and observe the Error 8 numbers in the X-, Y-, and Z-registers by rolling down the stack. If the value of the function saved in the Z-register is relatively close to zero, it is possible that a root of your equation has been found –...
Page 231
Appendix D: A Detailed Look at _ is displayed as a result of a search that Error 8 is concentrated in a local ―flat‖ region of the function, the estimates in the X- and Y-registers will be relatively close together or extremely small.
Page 232
Appendix D: A Detailed Look at _ Keystrokes Display 017– ÷ 018– 019– 020– 021– 022– 43 32 Use _ with the following single initial estimates: 10, 1, and 10 Keystrokes Display |¥...
Appendix D: A Detailed Look at _ Keystrokes Display Error 8 ´ _.0 1.0000 –20 − Best x-value. 1.1250 –20 Previous value. 2.0000 Function value. | (| ( 1.0000 –20 Restore the stack. Error 8 ´ _ .0 − 1.1250 –20 Another x-value.
Page 234
Appendix D: A Detailed Look at _ add a few program lines at the end of your function subroutine. These lines should subtract the known root (to 10 significant digits) from the x-value and divide this difference into the function value. In many cases the root will be a simple one, and the new function will direct _ away from the known root.
Page 235
Appendix D: A Detailed Look at _ Keystrokes Display 008– 009– 010– 011– 012– 013– 014– 015– 016– 017– 018– 019– 020– 021– 022– 023– 024– 025– 026– 027– 43 32 In Run mode, key in two large, negative initial estimates (such as -10 and -20) and use _ to find the most negative root.
Page 236
Appendix D: A Detailed Look at _ Return to Program mode and add instructions to your subroutine to eliminate the root just found. Keystrokes Display 000- |¥ Program mode. | ‚ | 026– Line before n. ‚ 027– ® Brings x into X-register. 028–...
Page 237
Appendix D: A Detailed Look at _ Again, use the same initial estimates to find the next root. Keystrokes Display |¥ 0.0000 Run mode. 10 “ v –10.0000 Same initial estimates. –20 20 “ ´ _ 2 8.4999 Third root. 8.4999 Stores root for deflation.
Appendix D: A Detailed Look at _ Using the same initial estimates each time, you have found four roots for this equation involving a fourth-degree polynomial. However, the last two roots are quite close to each other and actually root (with multiplicity of 2).
The example on page 224 uses this method.) For Advanced Information In the HP-15C Advanced Functions Handbook, additional, advanced techniques and applications for using _ are presented. These topics include: Using _ with polynomials.
Appendix E A Detailed Look at Section 14, Numerical Integration, presented the basic information you need to use f This appendix discusses more intricate aspects of f that are of interest if you use f often. How f Works The f algorithm calculates the integral of a function f(x) by computing a weighted average of the function's values at many values of x (known as sample points) within the interval of integration.
Appendix E: A Detailed Look at The uncertainty of the final approximation is a number derived from the display format, which specifies the uncertainty for the function. At the end of each iteration, the algorithm compares the approximation calculated during that iteration with the approximations calculated during two previous iterations.
Page 242
Appendix E: A Detailed Look at Calculate the integral in the expression for J (1), cos( First, switch to Program mode and key in a subroutine that evaluates the function f(θ) = cos (4θ – sin θ). Keystrokes Display 000-...
Page 243
Appendix E: A Detailed Look at The uncertainty indicates that the displayed digits of the approximation might not include any digits that could be considered accurate. Actually, this approximation is more accurate than its uncertainty indicates. Keystrokes Display ® 7.79 Return approximation display.
Page 244
Appendix E: A Detailed Look at All 10 digits of the approximations in i 2 and i 3 are identical: the accuracy of the approximation in i 3 is no better than the accuracy in i 2 despite the fact that the uncertainty in i 3 is less than the uncertainty in i 2.
Appendix E: A Detailed Look at This approximation took about twice as long as the approximation in i 3 or i 2. In this case, the algorithm had to evaluate the function at about twice as many sample points as before in order to achieve an approximation of acceptable accuracy.
Page 246
Appendix E: A Detailed Look at δ where δ (x) is the uncertainty associated with f(x) that is caused by the approximation to the actual physical situation. ( ˆ δ Since , the function you want to integrate is ( ˆ...
Page 247
Appendix E: A Detailed Look at format to i n or ^ n, where n is an integer, implies that the uncertainty in the function’s values is δ( n In this formula, n is the number of digits specified in the display format and m(x) is the exponent of the function's value at x that would appear if the value were displayed in i display format.
Page 248
Appendix E: A Detailed Look at Δ δ( [0.5 δ This integral is calculated using the samples of (x) in roughly the same ways that the approximation to the integral of the function is calculated ( ˆ...
Appendix E: A Detailed Look at Conditions That Could Cause Incorrect Results Although the f algorithm in the HP-15C is one of the best available, in certain situations it – like nearly all algorithms for numerical integration – might give you an incorrect answer. The possibility of this occurring is extremely remote.
Page 250
Appendix E: A Detailed Look at With this number of sample points, the algorithm will calculate the same approximation for the integral of any of the functions shown. The actual integrals of the functions shown with solid lines are about the same, so the approximation will be fairly accurate if f(x) is one of these functions.
Page 251
Appendix E: A Detailed Look at Since you’re evaluating this integral numerically, you might think (naively in this case, as you'll see) that you should represent the upper limit of – which is virtually the largest number you can key into integration by 10 the calculator.
Page 252
Appendix E: A Detailed Look at The graph is a spike very close to the origin. (Actually, to illustrate f(x) the width of the spike has been considerably exaggerated. Shown in actual scale over the interval of integration, the spike would be indistinguishable from the vertical axis of the graph.) Because no sample point happened to discover the spike, the algorithm assumed that f(x) was identically equal to zero throughout the interval of integration.
Page 253
Appendix E: A Detailed Look at Note that the rapidity of variation in the function (or its low-order derivatives) must be determined with respect to the width of the interval of integration. With a given number of sample points, a function f(x) that has three fluctuations can be better characterized by its samples when these variations are spread out over most of the interval of integration than if they are confined to only a small fraction of the interval.
Appendix E: A Detailed Look at In many cases you will be familiar enough with the function you want to integrate that you’ll know whether the function has any quick wiggles relative to the interval of integration. If you're not familiar with the function, and you have reason to suspect that it may cause problems, you can quickly plot a few points by evaluating the function using the subroutine you wrote for that purpose.
Page 255
Appendix E: A Detailed Look at Keystrokes Display 0.000 Keys lower limit into Y-register. ‛ 3 Keys upper limit into X-register. ´ f 1 1.000 Approximation to integral. ® 1.824 Uncertainty of approximation. This is the correct answer, but it took almost 60 seconds. To understand why, compare the graph of the function over the interval of integration, which looks about identical to that shown on page 252, to the graph of the function between x = 0 and x = 10.
Page 256
These methods enable you to change the function or the limits of integration so that the integrand is better behaved over the interval(s) of integration. (These techniques are described in the HP-15C Advanced Functions Handbook.)
You can obtain the current approximation, but not its uncertainty. Pressing ¦ while the HP-15C is calculating an integral halts the calculation, just as it halts the execution of a running program. When you...
¦. This refills the stack with the current x-value and restarts the calculator. For Advanced Information The HP-15C Advanced Functions Handbook explores more esoteric aspects of f and its applications. These topics include: Accuracy of the function to be integrated.
Batteries Batteries The HP-15C is shipped with two 3 Volt CR2032 Lithium batteries. Battery life depends on how the calculator is used. If the calculator is being used to perform operations other than running programs, it uses much less power.
Page 260
Appendix F: Batteries To install new batteries, use the following procedure: 1. With the calculator turned off, slide the battery cover off. 2. Remove the old battery. 3. Insert a new CR2032 lithium battery, making sure that the positive sign (+) is facing outward. 4.
Press = to exit the test system. This will also turn the calculator off. If the calculator detects an error at any point, it will display an error message. If you still experience difficulty, write or telephone Hewlett-Packard at an address or phone number listed on the web at: www.hp.com/support.
Function Summary and Index = Turns the h Converts the contents of the calculator's display on imaginary X-register decimal hours (or and off (page 18). It is while the key is held degrees) to hours, also used in resetting (page 124). minutes, seconds (or Continuous Memory degrees, minutes,...
Function Summary and Index ‛ Enter exponent; Hyperbolic % Indirect next digits keyed in are operations. Used to Functions exponents of 10 address another storage (page 19). register through R purposes of storage, 0 through 9 digit recall, storage, P] Compute arithmetic, and program keys (page 22).
Function Summary and Index f Integrate. number in display (X- } Stores or recalls register) (enter y, then Computes the definite matrix elements using x). Causes the stack to integral of f(x), with the the row and column drop (page 29). expression f(x) defined numbers in the Y- and by the user in a labeled...
Function Summary and Index matrices or of one complex transform. "partitioned form" (Z matrix and a scalar. to Z (page164). (page 162). Stores in result matrix > 4 Transpose X ~ T 0 T 5 (page 152-155). T 6 Conditional to X (page 150).
Function Summary and Index register) by truncating the blue function different items taken x fractional portion (page printed below that key at a time, and causes the 24). (page 18). stack to drop (page 47). (For matrix use, refer to &...
Function Summary and Index ` Clears contents Storage and correlation of display (X-register) coefficient. Computes estimated value of y (ŷ) to zero (page 21). O Store. Stores a for a given value of x copy of a number into − In Run mode: by least squares method the storage register and places result in X-...
Function Summary and Index Trigonometry R Sets Radians [, \, ] mode for trigonometric Compute sine, cosine, functions—indicated by or tangent, respectively, D Sets decimal RAD annunciator (page of number in display Degrees mode for 26). (X-register) (page 26). trigonometric functions—indicated by g Sets Grads mode , , {, /...
Programming Summary and Index ¥ Program/Run below to denote the a label designator (listed above) or V to mode. Sets the start of a program calculator to Program routine (page 67). transfer the position of the calculator to the mode (PRGM ABCÁE 0 annunciator on) or Run designated label.
Page 270
Programming Summary and Index following the G calculator to return to one line in program (page 101). line 000 and halt memory before execution (if running) resuming execution (page 91). ~ and ‚ Back step. (page 68). If in a T 0, 5, and 6 are subroutine, merely Moves calculator back...
Subject Index Page numbers in bold type indicate primary references; page numbers in regular type indicate secondary references. A ___________________________________________ Abbreviated key sequences, 78 Absolute value (a ), 24 Allocating memory, 42, 213-219 Altering program lines, 83 Annunciators, complex, 121 list of, 60 PRGM, 32, 66 trigonometric, 26...
Page 272
Subject Index in matrices, 177 “, 19 Clearing blinking in display, 100 complex numbers, 125-127 display, 21 memory, 63 operations, 20-21 overflow condition, 45, 61 prefix keys, 19 statistics registers, 49 Coefficient matrix, 156 Combinations function (c), 47 Common pool, 213 Complex arithmetic example, 132 Complex conjugate, forming, 125 Complex matrix,...
Page 273
Subject Index Continuous Memory, duration of, 62 resetting (clearing), 63 what it retains, 43, 48, 58, 61, 62 Conventions, handbook, 18 Conversions, degrees and radians, 27 polar and rectangular coordinates, 30-31 time and angle, 26-27 Correcting accumulated statistics data, 52 Correlation coefficient, find the (j), 55-56 \,{, 26 Counters in program loops, 98, 112-114...
Page 274
Subject Index s 109-111, 112, 116 E ___________________________________________ ‛, 19 Electrical circuit example, 169-171 Enabling stack lift, 36 ^, 59 Engineering notation, 59 v, 12, 33-34, 36 effect on digit entry, 22, 29 effect on stack movement, 37, 41 Entering data for statistical analysis, 49 Error conditions, 205-208 display, 61...
Page 275
Subject Index G ___________________________________________ |, 18 Gamma function (!), 25 g, 26 G, 101 t, 90, 97, 98 t “, 82 H ___________________________________________ Horner's Method, 79, 181 Hyperbolic functions, 28 I ____________________________________________ Imaginary stack, clearing the, 124 creation of, 121-123, 133 display of, 124 stack lift of, 124 Index register...
Page 276
Subject Index uncertainty in, 202-203, 240-244, 245-249 Interchanging functions (See User mode) Interference, radio and television, 271 Intermediate results, 22, 38 Interpolation, using j, 57 I, 109-111, 116 Iterations using I and s, 111 K ___________________________________________ Keycodes, 74-75 Keying in chain calculations, 22 exponents, 19-20 one-number functions, 22...
Page 277
Subject Index dimensioning, 140, 142, 142, 174 dimensions, displaying, 142, 147 equation, complex, 168 memory, 140, 171 name (See Matrix descriptors) partitioned, 161, 164 Matrix elements, accessing individually, 145-147 displaying, 144 storing and recalling, 143-144, 147, 149, 176 Matrix functions, using R , 173-174 using registers, 173...
Page 278
Subject Index Multiple roots, 234 N ___________________________________________ Negative numbers, 19 in Complex mode, 124-125 Nested calculations, 38 Neutral operations, 211 Nonprogrammable functions, 80 Normalizing statistics data, 50 null display, 144, 149 Numerical integration, 194-204 O ___________________________________________ and off, 18 to reset Continuous Memory, 63 to set decimal point display, 61 Overflow condition, 45, 61, 100 P____________________________________________...
Page 279
Subject Index position, changing, 82, 86 running, 68-69 starting, 69 stops, 68, 78 Program execution, 69 after G, 101 after t, 97 after overflow, 100 after test, 92 from or through labels, 78-79 Program lines (instructions), 67, 74 deleting, 83, 86 inserting, 83, 86 Program memory, 67, 70, 75, 217-219 automatic real location, 217-218...
Page 280
Subject Index Rice yield example, 50-56 Ridget hurling example, 184-186, 224-226 Roll down, 34 Roll up, 34 Roots, eliminating, 233, 234, 237 Roots, meaningless, 188, 191 Rounding (&), 24 Rounding in the display, 59 Round-off errors, 52, 60, with _, 223, 237 Row norm, 150, 177 Run/Stop (¦), 68, 91 running display, 69, 147, 182...
Page 281
Subject Index using as a conditional test, 192 using functions with discontinuities, 227 using functions with poles, 227 using functions with several roots, 233-238 with no root, 186-188, 192, 229 Square root (¤), 25 Squaring (x), 25 Stack contents, with f, 197, 202 drop, 33, 38 lift, 33, 36, 38, 44, 209-211 manipulation functions, 33-34, in Complex mode, 131...
Page 282
Subject Index Storage arithmetic, 43 Storage registers, 42 allocation, 42, 215-217 arithmetic, 43 clearing, 43 statistics, 42, 49 Subroutine levels, 102, 105 limits, 102, 105 nesting example, 103 returns, 101, 105 using with _, 180-181, 192 System flags, 92, 99 T ____________________________________________ T-register, 32, 33 in matrix functions, 174-176...
Page 283
Subject Index X ___________________________________________ X exchange (X), 42 X exchange Y (®), 34 X-register, 32, 35, 37, 42, 60, 209-210 imaginary, 210, 211 in matrix functions, 141, 156, 175-176 with f, 202 with _, 181, 183, 102, 226 Y ___________________________________________ y-intercept, finding, 54 Y-register, 32, 37 in matrix functions, 141,156, 175-176...
Page 284
Product Regulatory & Environment Information Federal Communications Commission Notice 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.
For questions regarding this FCC declaration, write to Hewlett-Packard Company P. O. Box 692000, Mail Stop 510101 Houston, TX 77269-2000 or call HP at 281-514-3333 To identify your product, refer to the part, series, or model number located on the product. Canadian Notice This Class B digital apparatus meets all requirements of the Canadian Interference-Causing Equipment Regulations.
Compliance with these directives implies conformity to applicable harmonized European standards (European Norms) that are listed in the EU Declaration of Conformity issued by HP for this product or product family and available (in English only) either within the product documentation or at the following web site: www.hp.eu/certificates...
Japanese Notice Korean Notice Disposal of Waste Equipment by Users in Private Household in the European Union This symbol on the product or on its packaging indicates that this product must not be disposed of with your other household waste. Instead, it is your responsibility to dispose of your waste equipment by handing it over to a designated collection point for the recycling of waste electrical and electronic...
Page 288
Chemical Substances HP is committed to providing our customers with information about the chemical substances in our products as needed to comply with legal requirements such as REACH (Regulation EC No 1907/2006 of the European Parliament and the Council). A chemical information report for this product can be found at: www.hp.com/go/reach.