hi everybody,i ve given a task to write a script calculating a root using bisection method in java script ,i've tried to write it on my own but i dont have a clue how to do that .i suppose to use the fuction x^7-32=0.i would appreciate any help!
This is the generic function you might use:
The arguments y and exponent are given, your case y=32, exponent=7;
Next step is to find 2 numbers (which should form an interval), let's say a and b, so that bisectionRoot(a,y,exponent) is positive, and bisectionRoot(b,y,exponent) is negative
At this point, you will have:
Now you should send the midst of a and b, let's name it c, calculated as c=(a+b)/2 to the function:
You have now 3 possibilities:
1. limit_c==0; // lucky, this is the root (that means c);
2. limit_b and limit_c have opposite signs (+/- or -/+) // the root lies between b and c;
3. limit_b and limit_c have the same sign (+/+ or -/-) // the root lies between a and c;
If 2., c becomes the new a If 3., c becomes the new b. Repeat the steps.
Because the result is anyway an approximation, you may either set a certain number of steps from the beginning or, better, set a minimal size of the interval (between a and b) where your root is situated (the floated point above everything is 0 in the value of limit_c).
Hope it helps.
Note: I hope I did not inverse the cases. It's a long time since I studied algebra.
Last edited by Kor; 04-25-2012 at 03:26 AM.
Question for everybody:
By the way, the bisection method is not hard to understand and to use, but it rises another problem: how to find quickly the initial interval a-b (the first values a and b) for which the function returns a positive value for first a and a negative value for first b?
If I understand
x = 32^1/7
alert( Math.pow(Math.pow(32,1/7),7) );
alert(Math.pow(32, 1/2)); // 5.656854249492381
alert(Math.sqrt(32)); // 5.656854249492381
Last edited by Ayşe; 04-26-2012 at 01:02 AM.
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)