E-mail Webmaster

_____________
Navigation

Home
________________
Recent Additions

Frank's Letters

________________
English Section

Math Tutorials

TI Graphing Calculators
Mobile Phones & Pads


TI Program Descriptions

TI Programs
TI Programming Keystrokes

Python Programs

Brief User Guides

TI-82 User Manual
TI-83+ User Guide

TI-89 User Guide

Statistics

TI-82 Statistics
TI-83 Plus Statistics
TI-84 Statistics
TI-89 Statistics

Other Topics
TI-83Plus Finite Math
TI-83 Plus Finance Math
TI-83 Plus Busines & Economics
TI-83 Plus Lin Prog
TI-83 Plus Geometry
TI-84 Conics APP
TI89 Calc Dif Eq
TI-89 Finance
Arithmetic of  Lists
TI-89t Busines & Economics

TI FAQs

For Beginners
More Detailed Page 1
More Detailed Page 2
TI-89 FAQs

Links to  Guidebooks by TI
TI-82
TI-83 Plus

Casio Graphing    Calculator

Casio Program Descriptions

Casio Programs
CFX-9850 & CFX-9750

Brief  Guides

CFX-9850 & CFX-9750
User Manual

Statistics Guide

Casio Programming Keystrokes
________________
Brief Guides Other Calculators
HP 43S Calculator

Scientific Calculators
FAQs for Scientific Calculators

===============

Sección Española

FAQs en Español
FAQs Basicos
Mas Dificil Pagina 1
Mas Dificil Pagina 2

Guías en Espaňol
TI-82 Espanol
TI-82 Estidisticas
TI-83 Plus Espanol
TI-83 Plus Estidisticas
TI-83 Plus Guía Financiera
TI-89 Titanium Guía
TI-89 Estidisticas
TI-89 Guía Financiera

 

Casio Calculadoras

Breve Guía Español
Cfx-9850 & Cfx-9750

Casio FAQs en Espanol

Calculadoras Científicos

FAQs en Espanol
________________
Links
Programs at Other Sites

Links to Tutorials

  

  SIMPLEX METHOD WITH NEGATIVE SLACK VARIABLES FOR TI-83Plus & TI-82

About this program:   This program is for those who are familiar with the simplex method that uses negative slack variables when doing problems with mixed constraints or minimization.  You must enter the first tableau in matrix [A] with the proper slack variables and with the proper signs for the indicator row (objective function.)  The program then manipulates rows to give a first feasible solution and displays the solution in decimal form.  The solution may be displayed in fractional form, if appropriate, by pressing ENTER.  When you are finished with the answer, press ENTER because the program is STILL RUNNING in PAUSE Mode to permit scrolling the matrix.

Running the Program:
  Unlike several of my other programs, the student does not participate in this program other than to enter the matrix in position A and to formulate the first tableau with appropriate  slack variables.  I'll give you examples on this after the coding section. 

Memory used and entry time:  This program uses uses about 372 bits of memory.   I estimate that it will take about 15 minutes for an inexperienced programmer to enter this program by hand.

DISCLAIMER:  This program is free, and, therefore, I make no claims about it's efficacy, efficiency, or proper operation.  This is a new program as of 8/15/03.  If you find a problem with this program, or can suggest  improvements, please e-mail me at knosummath@aol.com  .

Use of this Program:   You may use this program freely for your own personal use and for the use of other students, but use for publication or any means of profit in not allowed without my permission.


Coding

Keystrokes

Comments

SMPLXNEG

 

Program designation

"FKizer090910"

  Version

Lbl 0

   
dim([A])→L1    
L1(1)→R    
L1(2)→C    
[A]→[B]    

[B]T →[C]

   
Menu("SELECT", "STD MAX",1, "MIXED MAX", 2, "STD MIN",3)    

Lbl 2 :Lbl 3:Lbl 0

   

For (K, R, C-1)

   

Matr→List([B],K, L1)

   

0→M:0→L1(R)

   

If min(L1) = sum (L1)  and min(L1) = -1

   

Then

   

min(L1)-->M: End

   
If M = -1    
Then    

For( N,1, R-1)

   

If Min=L1(N)

   

Then: N→I:End

   
End    

[B]T →[C]

   

Matr→List([C],I, L1)

   

0→L1(C)

   

max(L1)→H

   

For (D,1, C-1)

   

If H=L1(D)

   
Then:D→J:End    
End    
*row ((1/([B](I,J), I, J)→[B]    

For (E,1, R)

   

If E≠I and [B](E,J)≠0

   
Then: *Row+((-[B](E, J), [B], I,E)→[B]    

End:End:End:End

   

 

   

Lbl 1

   
Repeat P =0    
0→P: 0→K    
[B]T →[C]    
For (K,1,C-1)    
If [B](R,K)<0    
Then: 2→P:End    
End    
If P=2    
Then: Matr→List([C], R,L1)    
0→L1 (C): min (L1)→M    
For (K,1,C-1)    
If M = L1(K)    
Then: K→J: End    
End    
Matr→List([B], J,L1)    
0→L1(R)    
For (K,1,R-1)    
If L1(K) > 0    
Then: L1(K)/[B](K,C)→L1(K): End    
If L1(K) < 0    
Then: 0→L1(K): End    
End    
max( L1)→M    
If M>0    
Then: For (K,1, R-1)    
If M = L1(K)    
Then: K→I: End:End    
Else: 0→P: End: End    
If P≠0    
Then: *row(1/[B](I,J), [B], I)→[B]    
For (K,1,R)    
If  K≠I and [B](K,J)≠ 0    
Then: *row+(-[B](K,J), [B],I,K)→[B]    
End:End:End:End    
Pause [B]    
Pause [B]►Frac    
Stop    
     

Now for using it:  Let's do this a maximization problem:
Maximize P = 2x1 +4x2 +3x3
With these constraints:
x1 +3x2 + x3 6
2x1 +2x2 +x3 5
3x1 =x2 +4x3 7

Using slack variables, the first tableau will be this:
| 1   3     1  1  0  0  6|
|2    2     1  0  1  0  5 |
|3    1    4   0  0 1  7 |
|-2  -4  -3   0  0  0 0

Plug that into matrix A; go to your program and execute it.  When the Menu appears, enter 1.   After a few seconds your answer will be displayed.


Standard Minimization problem: (Be sure you know what standard minimization means.)
Minimize w= 3y1 +2y2
With these constraints:
y1 + 3y2 ≥6
2y1 + y2 ≥3

We can look at this problem like this:
Maximize:  z = -w= -3y1 - 2y2
Subject to:y1 + 3y2 ≥6
                   2y1 + y2 ≥3

So, our first tableau is this:
| 1   3    -1   0  |6
| 2   1     0  -1  |3
|3    2     0   0  |0

Enter that into matrix A; execute the program and enter 3 when the Menu appears. The display will be  this:
|  0    1  - 0.4   0.2    1.8 |
|  1   0    0.2  -0.6     0.6 |
|  0   0    0.2   1.4     -5.4|

Notice that -5.4 is the negative of the minimum, 5.4, and that y1 = 0.6 and y2 = 1.8.

Mixed ≤ and ≥ problem:
Maximize:    Z= 120x1 + 40x2 + 60x3
Subject To: 
x1 +x2 + x3 ≤ 100
400x1+160x2+280x3≤20000
x1 +x2 +x3 ≥60

Then our first tableau will be this:
| 1      1      1    1  0  0  |100
|400 160  280  0  1  0  |20000
|1        1    1     0  0 -1 | 60
|-120  -40  -60   0  0  0| 0

Enter that into matrix A; execute the program and enter 2 from the Menu.  The display will be  this:
| 0      0      0    1       0           1           40
| 1      0     0.5  0   4.1E-3    0.6666     43.3333
| 0      1     0.5  0    -4E-3     -1.666      16.666
| 0      0     20   0     0.333    13.333     5866.6

                     


Last Revised: 8/23/03