The TI-Nspire Collection

This page is now a history lesson on the TI-Nspire! Some of the files near the bottom of the page date from 2007. Some of these files are obsolete: the feature is now included in the operating system - things like polar graphing, slope fields, selecting a subset of collected data (available in the DataQuest app), etc. but they're still here to demonstrate some valuable mathematical ideas or programming algorithms.

Distance to the Horizon

(31 Mar 2017) Here's a little exploration of the distance from a plane flying at some altitude to the horizon. Inspired by an article found in Hemispheres magazine found on United Airlines flights in March of 2017.

The article is included as an image in the file. There are two geomettry constructions that behave differently. In one (shown at the right) you can move plane to change its altitude in feet (along a tangent to the circle representing the earth) and observe the distance to the horizon in nautical miles. In the other you have control of the altitude of the plane using a slider (for greater control) and then observe the distance to the horizon.

The interesting thing about the magazine article is the author's use of different units (feet, meters, and nautical miles - thus requiring some conversion formulas in the constructions) and the real heart of the discussion is the application of the Pythagorean Theorem. See if you can re-create the construction.


Polar Shade

(10 Feb 2017) By request, I wrote a document that can 'shade' the interior of a polar curve (using a scatter plot). The slider m controls the density of the shading and the function in r1(theta) is editable.

The program contains a lot of trig mathematics: converting from number-of-segments to radians, converting from polar to Cartesian coordinates, and storing into lists to create a 'disconnected' scatter plot.

The program runs in a math box on a Notes app to dynamically refresh the 'shading' when the sliders change or when the function is edited.


(01.01.2017) This document contains a brain experiment. Give it a try and send your comments.



(09/2016) Inspired by an email from Saltire Software, this document demonstrates how to 'morph' from one function to another using a slider. You can morph in Parametric, Function, or Polar mode. You can even morph between Function and Polar using Parametric! Feel free to edit the functions f1 and f2.


Lights Out!

(08/2016) ...another Lua app.

The classic switching game. Click a light to switch it and its four neighbors. The object is to get all the lights off. All games are solvable! Can you do it in 10 moves or less?



(07/2016) My latest Lua brain exercise: The 15 puzzle. Works well on computer, handheld and iPad. On the handheld and computer press [tab] to scramble and use the arrow keys to move the tiles. On the iPad tap the 'Scramble' button and then tap the tile you wish to move.

Object: get the numbers back in order from top-left to bottom-right with the blank in the lower right.


(03/2016) A long time coming, I finally got around to developing this Lua app. No instructions; no menu; includes a 'high score' variable so be sure to save the document when done so it remembers the high score.

String Art the TI-Nspire way!

(12/2015) Watching a class in Eagle Pass, Texas nspired me to create a TI-Nspire document to generate 'string art'. The instructions are on page 1 of the file. The trick is to use a connected scatter plot with 'void' elements in the lists to create the line segments.

With special patterns, the next logical step is to write a program to create the lists and, perhaps, sliders to control the data!



(09/2014) The science of making cocktails! This document investigates mixture problems from a 'mature' point of view. If you have two alcoholic beverages of different proofs, such as wine and scotch, in what proportions should you mix them to get a desired strength cocktail of a desired size?

(9/29): Happy coincidence... on a recent flight I found an article in the airline's magazine on just this topic! Scroll down on the page 'Tipplin' It Easy' for the short article!

This document makes liberal use of CAS and interactive graphing to investigate this mixture problem.

Something you won't find on TI's activities sites.

The Frog Puzzle

April 2014

This little Lua project was a group effort (see the file for credits). Requires OSv3.6.

The object of the 'game' is to get all the frogs on the left to hop to the right and all the frogs on the right to the left. The frogs can hop to an empty pad or hop over one frog. Click or tap on a frog to make it move. If a frog doesn't move it's because it can't. See the menus for setting options.

The object of the 'puzzle' is to determine the number of moves required if the game contains n frogs. What's the pattern?

There are two versions in the file. Version 1 plays with the same number of frogs on each side and version 2 allows for a different number of frogs on each side. The file plays well in the computer, handheld and iPad.


Super Simple Timer!

November 2013

So simple you can use it with your eyes closed! And that was the intent: to test your mental timing skills by closing your eyes, start the timer, count off a number of seconds and stop the timer. Check your mental count with the timer's result. How close were you?

Only one 'action' controls the entire app and there's no menu, either. Press [enter] or mouse click or, on the iPad, just tap the app to start, stop, and reset the timer. Any combination of actions also works well.

This file does play well in the Document Player and the iPad, too.



Hog! - A Lua Application

September 2013

Based on the same input/output interface as Bagels (below), Hog is a 1-player game played with simulated dice. On a turn you can toss as many dice as you like. The total of the dice is your 'points' for that turn which is added to your 'score'. The goal is to reach a score of 100 in as few turns as possible. What's the best strategy? The game keeps track of your scores and there's a page displaying a histogram of your scores. It also keeps track of your best score. The menu allows you to clear the best score and the list of scores.

This file does not play well in theiPad due to the intensive keyboard input.


Bagels - A LUA Application

September 2013

Here's the world-famous number-guessing game (a la Mastermind). It only took an evening of coding (Lua) to produce this and I am very happy with the result. I've written this program in every language I've ever had the pleasure to have known. But it does not play in the online Document Player and probably doesn't work well on the iPad either, due to the keypad entry.

Instructions are on page 1 of the file.

There are now three versions of the game in the file...

The second one uses a scrolling textbox for the clues rather than the blue graphics that you see on the right. It will be easier to expand this version to allow for more than three digits in the game. Coming (soon?)!!

Version III (in the same file) lets you play with 3, 4, or 5 digit numbers! Note the progression of the code in the three apps.

Polynomial Regression

August, 2013

This document requires CAS.

I've long wondered what the regression algorithm behind QuadReg, CubicReg, and QuarticReg is. It took me this long to look it up and I was pleasantly surprised to actually 'understand' it (to a point). The result is this pair of programs and a demonstration of their usage embedded in this document.

The program polyreg(xlist, ylist, degree) performs a polynomial regression of the desired degree on the dataset (xlist,ylist). The polynomial expression is then stored in the variable regeq so that it can be used as the definition of a function to graph or analyze. The program makes heavy use of matrices and lists and needs CAS to build the function in terms of x. The source code is exposed in one of the pages of the document.

As an added bonus, there's also a program called polyfit(xlist, ylist) which is nearly identical to polyreg( ) but only determines the (n-1) degree polynomial for a dataset of n elements. Polyreg( ) does it when p=numpts-1. and you can see how the polynomial regression 'grows' to eventually match the polynomial fit function. Both programs are used on the demo page which is illustrated on the right. There's no error handling, but when the algorithm fails to produce a result you'll see 'Singular Matrix' as it's output and the graph is not updated. This happens when the power you seek is too large (p>numpts-1).

"Reaction Time" game

(05 Apr 2013) This file contains a 'reaction time' game for two players written in Lua. At the heart of the game it displays some random black dots. The player's task is to react when she first sees red dots. The number of red dots displayed before reacting (pressing enter, clicking or tapping on the iPad) represents the 'reaction time'. Each player gets a set of rounds to play. At the end of the game the players compare their one-var data on page 3 containing a spreadsheet with the data, a box-n-whisker plot and a computation of the mean scores of each player. Other analyses are then possible using the two lists created by the game.

Menu options in the game include a 'reset' which clears the data and starts the game over and an option for setting the number of rounds per player.

I purposely left out the core instruction about the black-to-red dot change so that kids can figure it out on their own.

This file works well 'anywhere': computer, handheld (CX due to color), iPad, and the online Document Player.

Special thanks to Andy Kemp who created a reaction time game and thus Nspired me to take on the project and, not coincidentally, provided a lot of code to the effort and BIG THANKS to Steve Arnold's tutorials.

Comments and suggestions welcome, especially for the non-color handhelds (different shape?).



page 1.1

page 1.2

page 1.3

Integral between curves

(posted 1/1/2012) This demo uses a stat plot to shade the region between two curves to indicate the computed integral. If f1(x) is greater than f2(x) on (a,b) then you could consider this an indication of the 'area' between the two curves. You can change the functions, the viewing window and drag the points a and b (or edit the coordinates) to define the interval.

The driving force is a program running in a Math Box to create the scatterplot for shading purposes (a collection of line segments). Thanks to Marc Garneau for the disconnected scatterplot trick.

Version 2 includes color shading: when f1(x)>=f2(x) the shading is green and otherwise is purple.

Neither version works well on the handhelds because the scatter plot is regenerated each time a or b changes so it is too slow. See version 3...

Version 3 (05/23/2012) uses a Lua app to build the scatter plot. This versions performs a little better (but not great) on the handhelds. This file requires version 3.2. In this version the Lua app monitors a few variables on the graph page and updates the scatterplot when needed. You can even transform (translate or stretch) the functions!

Version 4 (03/2013) containing very efficient code by Dennis Donovan that makes it pretty slick even on a handheld!


version 1

version 2

version 3


A Lua application that lets you explore the Mandelbrot set. Don't try this on the handheld. I'm sure it's too slow. Best used in handheld view in the computer software, but computer view gives better resolution.

The Lua source code and other documentation is included in the tns file.

This was written before the Script Editor was available.

Superellipses and the Squircle

(09/15/2011) I learnt a new word today:


not a squircle

A cone sliced by a plane

(05/2011) A simple interactive file that uses the new 3D graphing capabilities of TI-Nspire. You have control (sliders) for the angle of the plane (with the x-axis) and the z-intercept of the plane.

Take a look at the equation of the plane to see how to convert 'angle' into 'slope'. When a slider controls slope, small values lose detail and large values move slowly. When you drive the angle, everything works smoothly.



Greater control of your polar and parametric graphing

Polar and Parametric Control

Looking for a way to control the rate at which polar and parametric graphs appear? These two files let you expose the graphs using a slider. The polar slider even goes from a negative value to a positive value. The polar graph is defined as r1(theta) but the graph is produced by a parametric relation. (02/2011)These files do not play well on a handheld because of the effort it takes to produce the graph when you use the slider. I'll be working on another method.



Sierpinski with Slider

08/2010 - An updated version of the Sierpinski Triangle program found further down this page. This version is interactive. Clicking the uparrow or downarrow on the slider on the Graph page increases and decreases the number of points plotted. Uses a program running on a Notes page.


A 'Select' Program

In version 3.0 this feature is built into the Vernier DataQuest application.

By request of the science folks, I have written a 'select' program for the TI-NSpire. You graph a scatter plot of your data then place and move two points on the screen to choose a range of data to extract. Run the select program and it will create two lists, temp1 and temp2, which contain only the desired data.
More detailed instructions are included in the file, including the procedure for making this a Library program so that you can use it in your own documents.
This file works on both the TI-NSpire and the TI-NSpire CAS.

Plot Differential Equations

Version 3.0 has this feature built in: see Graphs/Graph Type/Differential Equation

This file is included with OS v1.6 (Dec, 2008) in the Examples folder. The CAS OS has the "CAS" version, but the files are identical.

The document is used to produce slopefields for differential equations and is a little easier to use than the Slopefields document that you will find further down on this page.

I have produced a demonstration video that explains the use of this document. Be sure your audio is turned on so you can hear the explanations.

CAS Around the World

My TI-Nspire CAS file used at the 'From Our Classroom to Yours' Conference, January 31, 2009 at the William Penn Charter School, Philadelphia, PA.


Soggies: The Breakfast of Nerds!

Here's a treatment of "The Cereal Box Problem". This classic probablility problem is based on the 'prizes in the box' issue: if there are N prizes in the collection, what is the Expected Number of boxes of cereal you need to buy in order to collect all of the prizes?

The TI-Nspire CAS document utilizes a program, soggies(a, b, t), that performs a simulated sampling of boxes (the number of prizes in the set ranges from a to b) until all the prizes have been collected and stores the number of prizes and the average number of boxes needed into lists that are used to create a scatter plot of the data.

I also include a brief analytic explanation of E(N), the expected value for N prizes and a function that graphs the expected value function over the scatter plot. Despite the appearance of the image on the right, this is not a linear function!

I am very happy to have had help from Lee Kucera, Marc Garneau, especially George Reese's web pages, and Jesse "Jay" Wilkins' great article on the derivation of E(N).

When I taught CS, I used this problem as a great graphics programming project, but did not know the general function until now (Dec, 2008). A big THANK YOU to the WWW!

This document is a revision of my TI-84 program "DERPT" (short for 'derivative at a point') and is a demonstration of computing and plotting the slope of a curve at selected points in order to determine the pattern of the derivative function.
Use this activity when making the transition from calculating the slope of a curve at a point to determining the derivative function using the definition of the derivative as the limit of a slope expression. It is one of those 'aha' moments for some students.

This activity is based on the 'Derivatives for Algebra 1' T^3 lesson which is a bit to busy with all those points moving around.

Programming in TI-Nspire

This document explores programming in the 'TI-Basic' language built into the TI-Nspire. First introduced in 2008, the Program Editor allows you to write programs right in the handheld. The TNS file covers an overview, basic programming concepts, and some stuff beyond the bascis such as lists and graphics. Also, see the Tower of Hanoi program later on this page.


Slopefields and Initial Conditions programs

Version 3.0 has slopefields built into the OS.

This document contains programs that generate a slopefield for a differential equation (by creating a stat plot) and then allows you to select (graphically/geometrically) an initial-condition point to create another stat plot of a particular solution. The Notes page also explains how to use the desolve( )command on a Calculator page to solve the differential equation and how to make that function's graph go through and be controlled by the initial contition point graphically. Very powerful interactive graphics here! The Slopefield program was originally written by Doug Roberts. The tweaks to slopefield( ), the IC( ) program, and the desolve( ) technique are my work. There are other ways of generating slopefileds. If you are interested in them, email me.

Click the image on the right to see the Flash movie.

click me!

Implicit function grapher
This document has an implicit function graphing program in it. The graph produced is actually a stat plot. Instructions are contained in the Notes page in the document. The example shown here is demonstrated on the Calculator page.

Note that there is also a very efficient method for graphing implicit relations using the zeros( ) function in the CAS unit, but the numeric unit does not have that function.

    AP Calculus demo file
    Three sample problems that I demonstrated at the AP Calculus Consultants Conference in Dallas, 11/16-18/2007.

    1. The number of daylight hours on June 21 as a function of latitude
    2. A limit question from the AP Calculus listserv 10/2007
    3. AP Calculus 2003AB6c

Hanna's Banana

A graph that I discovered while playing around one day. Generates strange pictures as you move a point around on the graph page. How does it work? Read and learn!

Mesopotamian Tablet - Isosceles Trapezoid Problem
I found this problem at the NCTM Regional Conference in Richmond, VA. Credit is found in the file. The problem is to find a transversal that divides a particular isosceles trapezoid into two equal areas. There's also an interesting extension that's not discussed in the file. Can you figure out what I'm thinking?

Sierpinski Demo
    This demonstration generates the Sierpinski Gasket using the 'chaos game' method via a program, sierpinskichaos(n), where n is the number of points to plot. Developed with relevance to the 11/23/2007 episode of Numb3rs. There's not much documentation in the file yet, so here's what to do:
     On the Calculator page (1.1) run sierpinskichaos(4000). You can change the 4000 to any whole number less than 4095: it is the number of dots to generate. Then look at page 1.2: the graph. Note: you cannot use a value larger than 4094 because that is the size limit of a list.
     How it works: the program generates two lists, L1 and L2, that contain the coordinates of the points to plot. So the graph screen has a stat plot set up to graph L2 vs. L1.
     Simple, eh? Well, it's the same technique that we used in the Slopefield file above.

Distance to a Parabola
This zip file contains TWO versions of the activity: a student copy and a teacher copy. The problems investigate the length of a segment drawn from a point to the parabola y=x2. Several problems are included in both files. The investigation of the residuals plot is also addressed and the CAS derivation of the mathematical model is included in the teacher file.

Largest Triangle - Paper Folding

This paper-folding problem was originally presented by Arne Engebretsen. This document, originally built by Dr. Stephen Arnold of Kiama, NSW, Australia, contains a very slick geometry construction simulating the folding of the upper left corner of a piece of paper down to the bottom edge. I tweaked the shading a bit, changed the dimensions of the paper, and limited the movement of point H. The problem is to find the fold - determined by the location of point H - that makes the area of the triangle formed in the lower left corner a maximum.

Steve has additional TI-Nspire resources at


Paper Fold - Shortest Fold

Here's another problem related to paper folding: if you fold a corner of the paper to the opposite side, determine the shortest fold length. This problem can be tackled analytically in several different ways. How many different ways can you arrive at the soution? Can you see why the height of the paper is not an issue?

In the file on the right (page 2), you can drag point Drag to change the length of the fold (L) and the distance from the lower left corner of the paper to the point Drag (w). The document contains pages of notes, this construction, a spreadsheet for data capture, a graph for the scatter plot, and CAS. Note that a regression algorithm is not appropriate for this problem.

Finally, can you generalize the result for any width of the paper?



Alice in Wonderland
Yes, the novel by Lewis Carroll. Just to inform those English teachers out there who wonder why their students are using TI-Nspire to take an exam in their class. Each chapter is on a separate Notes page and the file is only 60.4kb. I also have "The Rime of the Ancient Mariner" by Samuel Taylor Coleridge.

Function + Polar Trace

TI-Nspire allows for graphing of parametric, Cartesian and polar graphs on the same axes. What happens when we trace a point in both Cartesian and polar coordinate systems? In this graph/constuction, as you drag point D on the graph of y=sin(3t), the point on the polar rose, r(ø) = sin(3ø), also moves so that you can see or explain the relationship between the two coordinate systems. The coordinates of D and the converted radian-degree angle measure is on the screen, but not 'r'. The clever mathematical conversions are hidden, but easily exposed.
      Do you know that you can graph polar functions in parametric mode? Just define r(ø) = <the polar function> on a Calc page then set up these parametric functions:

x(t) = r(t)*cos(t)
y(t) = r(t)*sin(t)

     This, and the entire construction process are explained and demonstrated in this document.
     This file does work in all versions of TI-Nspire. If you are using version 1.3 released Jan 2008 just replace the parametric (polar) graph with a 'real' Polar graph. The point P is not really 'on' the graph anyway.


The Tower of Hanoi Program

     Well... if you've never heard of the Tower of Hanoi then you can look it up online. This program demonstrates the power of recursive programming. When you run the program you will notice a delay in the display of the output of the program until the program has completed. I guess that's a feature, not a bug. Posted 22JAN2008.
      Arguments to the program hanoi are:

hanoi(numberOfDisks, fromPeg, toPeg, auxPeg)

     It takes 2^N-1 moves to move a tower of N disks. I've tried it in the Computer Software with 10 disks resulting in 1023 moves. How many disks does it take to get a 'Recursion too deep' error?
      I have another version that displays the move number, but it requires an external, global variable. If you can't get it to work by yourself I can send you a copy.

Sequences and Series

TI-Nspire DOES have a sequence graphing mode! See Graph Type in the Graphs application.

While the TI-Nspire does not contain a 'sequence' graphing mode, it does have the ability to generate sequences (yep, even recursive sequences) and series (sequence of partial sums) using the Lists and Spreadsheet app and then you can graph the resulting scatter plots. This document explains the seqn function and how to create a sequence of partial sums. It also includes an interesting problem: the limit of the sum of the reciprocals of the Fibonacci numbers.

Rabbits and Foxes

A study of the predator-prey mathematical model using the Spreadsheet and Scatter Plot tools. The document allows the user to drag point Init in this picture to change the initial populations of Foxes and Rabbits (but you have to recalculate the spreadsheet manually) and allows you to edit the growth factors on the SS page.

The next version of this document will have sliders on the graph page to control those growth factors. See version 2 below...

Rabbits and Foxes 2 (posted 2FEB08) has all the variables controlled by sliders in the graph screen. It also has a modified function for the Rabbits which incorporates a logistic growth rather than an exponential one.

This model is very sensitive to the variables BR, DF, and AA.

I've concluded through examing some Java applets online that there are just not enough data points available in the TI-Nspire (2500) to see the end behavior of the system. This version only graphs 500 data points. You can produce more data by copying and pasting the last line of the data set in the spreadsheet (in row 500) down to row 2500.

Loans Calculator

This file uses a spreadsheet to calculate the monthly payment on an amortized loan, displays the amortization table (in the spreadsheet) and then displays a graph of the principal payments and the interest payments. Useful to illustrate the TVM principal and the advantage of shorter term loans.


Lissajous curves and Harmonograms

     What are they, you ask? Well peek inside this file and see. The image to the right is a simple Lissajous curve, the result of a 2-axis pendulum under resistance-free movement.
     An important feature in this file is the use of Marc Garneau's method of graphing parametric relations using lists that do a better job than the parametric graphing mode. It gives you better control of the T-Step value as well as Tmin and Tmax if you like.

"The Zeckendorf Decomposition"

Isn't that a cool title? I learned about this while watching a DVD lecture from "The Great Courses" called "The Joy of Thinking" on Fibonacci numbers.
The conjecture is this: Every Natural number can be uniquely expressed as the sum of a set of (non-consecutive) Fibonacci numbers. I get the 'non-consecutive' part, but the rest is a mystery to me. Anyway...
Write a program that displays the Zeckendorf Representation of a Natural number (considering the limitations of the machine you are using). The image to the right is the output of my program which easily handles 'very large' numbers (the 1000th Fibonacci number is over 200 digits). If you'd like a copy, though, you'll have to email me. Try it yourself first.

And, speaking of "The Great Courses" -- there's a course called "How the Earth Works" by Prof. Michael E. Wysession of Wash. U, St. Louis, a former student of mine!

The "y=3x and point (1,1)" Problem
... for lack of a better title...

A vertex of a triangle is at the origin and one side is on the x-axis. Another side lies along the line y = 3x. The third side passes through the point (1,1). What is the slope of the third side if the area of the triangle is to be a minimum? There's another restriction, but you'll figure it out.

This is a neat optimization problem that lends itself well to Data Capture and a CAS solution. Note that the built-in regressions do not apply to this problem. Lots of great algebraic manipulation going on here.

Gene Olmstead offers two other optimization problems: What line makes the minimum perimeter of the triangle and what line makes the shortest third side, the side through (1,1). Gene says that all three of these have geometric proofs.

The file does not contain a complete solution. If you need one, email me.

last updated

© Copyright 2008 John Hanna. All Rights Reserved.