MATLAB: What does the following code do

#numerical_methods

myFunction =@(x)x^2-6;
x_lower=0;
x_upper=5;
x_mid=(x_lower+x_upper)/2;
while abs(myFunction(x_mid))>0.01
if (myFunction(x_mid)*myFunction(x_upper))<0
x_lower =x_mid;
else
x_upper = x_mid;
x_mid=(x_lower+x_upper)/2;
end
x_mid=(x_lower+x_upper)/2;
end
fprintf('the root is %g; x_mid)

Best Answer

Here myFunction evaluates the value based on x
myFunction=@(x)x^2-6;
Say
myFunction(2), here x=2 passes to function arguments, so the result will
ans =
-2
Then
Assigned
x_lower=0;
x_upper=5;
x_mid=(x_lower+x_upper)/2;
While loop continue till Absolute(myFunction(x_mid)) is greater than 0.01
{
Then replace the value of x_mid, x_lower, x_upper based on if condition
If true
x_lower change to x_mid
otherwise
x_upper=x_mid;
x_mid=(x_lower+x_upper)/2;
end if
Re-evaluate x_mid again based on present x_lower and x_upper value
Then print the x_mid value
Note: Text the code with some example, change the my function expression and see the results
Hope it helps!