Sunday, January 4, 2015

fx-5800p: Bisection Method

fx-5800p: Bisection Method

The program BISECT finds a root for f(X) given an initial open interval of (A, B). I have the tolerance set to 10^-9. To prevent calculations from going "forever", I set the maximum number of iterations to 150. You can adjust these factors in the program as desired.

The first point to be tested is (A+B)/2. If this is a root, the program stops and it will return this root as a result.

The program BISECT calls on a subroutine program FX. The function f(X) is stored in FX.

While programming, use the Prog to call subroutines. The syntax is:


Prog "name of subroutine in quotes"


Press [SHIFT] [FILE].

Remember for the fx-5800p, all variables (A-Z, and Z[#]s) are global, meaning they will carry over from programs and subroutines.

Anything following the double slash (//) is a comment.

Program FX
insert function of X here → Y
//store result in Y

// A Return command is implied.

Program BISECT
1 → I // I = iteration count
"A"? → A
"B"? → B
A → X
Prog "FX"
Y → C
B → X
Prog "FX"
Y → D
While Abs(A-B) > 10^(-9) // tolerance setting
(A + B) ÷ 2 → X
Prog "FX"
If Y = 0
Then
Break
IfEnd
If Y*C > 0
Then
X → A
Y → C
Else
X → B
Y → D
IfEnd
I + 1 → I
If I > 150 // iteration limit
"ITER. EXCEEDED" ◢
Stop
IfEnd
WhileEnd // finish the loop
"ITERATIONS:" ◢ // optional
I ◢ // optional
"ROOT=" ◢ // result
X


Example:

f(X) = X^(3)-2X+1, for the intervals (-2,0), (0,2), and (0,1).

Program FX would look like this:

Program FX
X^3 - 2*X + 1 → Y


Run BISECT.

For (-2,0), results are:
ITERATIONS: 32
ROOT = -1.618033989

For (0,2), results are:
ITERATIONS: 1
ROOT = 1

For (0,1), results are:
ITERATIONS: 31
ROOT = 0.6180339893



This blog is property of Edward Shore. 2015

2 comments:

  1. Dear Edward , I tried to type like you ,but it doesn't work for me ,I don't know why (0,2) interval work fine but another didn't work ,my calculator said SYNTAX ERROR and I trying to check what I miss but nothing I left my code as you did, please advise thanks anyway

    ReplyDelete
    Replies
    1. Zheng,

      Do you know what interval caused the Syntax Error?

      Delete

Next Week... and Plans for October 2017

I'm so excited, can't want for next week's HHC 2017 calculator conference in Nashville!  It is my annual calculator conference ...