From Learn @ Cemetech
Jump to navigationJump to search


Command Summary

Calculates the least-squares best fit logistic curve through a set of points.

Command Syntax

Logistic [x-list, y-list, [frequency], [equation]

Menu Location


  1. STAT to access the statistics menu
  2. LEFT to access the CALC submenu
  3. ALPHA B to select Logistic, or use arrows

Calculator Compatibility


Token Size

1 byte

Logistic tries to fit a logistic curve (y=c/(1+a*e-b*x)) through a set of points. To use it, you must first store the points to two lists: one of the x-coordinates and one of the y-coordinates, ordered so that the ith element of one list matches up with the ith element of the other list. L₁ and L₂ are the default lists used, and the List Editor (STAT > Edit...) is a useful window for entering the points.

The explanation for the odd format of a logistic curve is that it is the solution to a differential equation that models population growth with a limiting factor: a population that grows according to a logistic curve will start out growing exponentially, but will slow down before reaching a carrying capacity and approach this critical value without reaching it. The logistic curve also has applications, for example, in physics.

In its simplest form, Logistic takes no arguments, and fits a logistic curve through the points in L₁ and L₂:


On the home screen, or as the last line of a program, this will display the equation of the curve: you'll be shown the format, y=c/(1+a//e^(-bx)), and the values of a, b and c. It will also be stored in the RegEQ variable, but you won't be able to use this variable in a program - accessing it just pastes the equation wherever your cursor was. Finally, the statistical variables a, b, and c will be set as well. There are no correlation statistics available for Logistic even if Diagnostic Mode is turned on (see DiagnosticOn and DiagnosticOff).

You do not have to do the regression on L₁ and L₂, in which case you will have to enter the names of the lists after the command. For example:

:Logistic ∟FAT,∟CALS

You can attach frequencies to points, for when a point occurs more than once, by supplying an additional argument - the frequency list. This list does not have to contain integer frequencies. If you add a frequency list, you must supply the names of the x-list and y-list as well, even when they're L₁ and L₂.

Finally, you can enter an equation variable (such as Y₁) after the command, so that the curve's equation is stored to this variable automatically. This does not require you to supply the names of the lists, but if you do, the equation variable must come last. You can use polar, parametric, or sequential variables as well, but since the equation will be in terms of X anyway, this doesn't make much sense.

An example of Logistic with all the optional arguments:

:Logistic ∟FAT,∟CALS,∟FREQ,Y₁

Warning: if your data is not even slightly logistic in nature, then the calculator may return an error such as ERR:OVERFLOW. This happens when the calculator tries to calculate a carrying capacity, c//, for the data, but since the rate of change in data doesn't seem to be slowing down, it assumes that the carrying capacity is still very far off, and tries large values for it. These values may get so large as to cause an overflow.

The Levenberg-Marquardt nonlinear least-squares algorithm is used by Logistic.

Error Conditions

  • ERR:ARGUMENT is thrown by using only one list.
  • ERR:DIM MISMATCH is thrown if the dimensions of two lists do not match.
  • ERR:DOMAIN is thrown if Logistic is left without using lists or enough instructions.
  • ERR:DATA TYPE is thrown if lists are not used, or a list contains a number like "4i".

Related Commands