Matlab:Chapra , ROOTS [ Bracketing Method] Help needed.

In summary, the conversation discusses a problem in implementing a code into MATLAB and finding a zero using bisection. The user is also seeking help in solving a problem in MATLAB involving a centered difference approximation to estimate the second derivative of a function. The conversation also includes instructions for submitting the solution to the problem.
  • #1
uaeXuae
54
0
Hello guys can anyone help me solve this in MATLAB please ?


http://aycu34.webshots.com/image/43953/2003131790943491216_rs.jpg
 
Physics news on Phys.org
  • #2
What are you having trouble with? Understanding the algorithm or implementing in Matlab?
 
  • #3
Thanks for your reply. I am having trouble implementing the code into MATLAB and getting correct answers. May you guide me through please ?
 
  • #4
If I had to find a zero of a simple function, say, x^2-3, using bisection, this is what I would write.

Code:
% bisection.m
function bisection
% find root of x^2 - 3 on some interval

xa = 0;         xb = 10;        % search interval

for it = 1:20           % loop
    xtest = xa + (xb-xa)/2;         % mid point of interval
    fa = f(xa);                     % left-interval function value
    fb = f(xb);                     % right-interval function value
    ftest = f(xtest);               % mid-point function value
    if sign(fa)*sign(ftest)<0       % if zero in left half
        xb = xtest;                 %   take left half of interval
    elseif sign(ftest)*sign(fb)<0   % if zero in right half
        xa = xtest;                 %   take right half of interval
    elseif ftest ==0                % if zero at mid-point
        break                       %   this is the zero
    else                            % 
        error('multiple roots or no root')  % may have no zero or multiple zeros
    end    
    xit(it) = xtest;                % store mid-points
end
figure;plot(xit)                    % plot mid-points, should converge to the root


function y = f(x)                   % function we're finding the root of
y = x^2-3;
 
  • #5
Thanx a lot.

2 questions:

Q1) How do i input the equation ? Wherever it says "y = x^2-3" i replace it with the equation in the problem ?

Q2) how do i get an error<0.00005
 
  • #6
uaeXuae said:
Q1) How do i input the equation ? Wherever it says "y = x^2-3" i replace it with the equation in the problem ?

Correct. Replace that with your equation. And you want to formulate the equation so you're finding a zero, so instead of finding x which solves f(x) = g(x), you want to find x which solves f(x) - g(x) = 0.

Q2) how do i get an error<0.00005

You want to change the condition for the loop to terminate. One possible way would be to define a quantity x_error = f(x_test), and when abs(x_error) < tolerance, then x_test is sufficiently close to the root. In that case you could do a 'while x_error < tolerance' loop.
 
  • #7
Help needed. ( Could you please help me to solve this problem in matlab? thanks

(1) Use a centered difference approximation O(h2) to estimate the second derivative of the function .

(a) Perform the evaluation at x = 2 using step sizes of h = 0.2 and 0.1. Compare your estimates with the true value of the second derivative. Interpret your results on the basis of the remainder term of the Taylor series expansion.

(b) Write a Matlab program that evaluates the second derivative of the function (using a centered difference approximation O(h2)) on the interval [-4 , 4] with a step sizes of h = 0.2 and 0.1. Plot the second derivative of the function obtained by the centered difference method along with a graph obtained from a theoretical calculation.

Submit the solution of part (a) as a hard copy. For part (b), submit a fully functional program to the blackboard, and submit a copy of the program and accompanying figures as a hardcopy.
 
  • #8
(1) Use a centered difference approximation O(h2) to estimate the second derivative of the function .

(a) Perform the evaluation at x = 2 using step sizes of h = 0.2 and 0.1. Compare your estimates with the true value of the second derivative. Interpret your results on the basis of the remainder term of the Taylor series expansion.

(b) Write a Matlab program that evaluates the second derivative of the function (using a centered difference approximation O(h2)) on the interval [-4 , 4] with a step sizes of h = 0.2 and 0.1. Plot the second derivative of the function obtained by the centered difference method along with a graph obtained from a theoretical calculation.

Submit the solution of part (a) as a hard copy. For part (b), submit a fully functional program to the blackboard, and submit a copy of the program and accompanying figures as a hardcopy.
 

1. How does the bracketing method work in Matlab?

The bracketing method in Matlab works by first selecting two initial guesses for the root of a given equation. These two values, a and b, must have opposite signs. The algorithm then calculates the midpoint between a and b, and checks if the midpoint is closer to the root than either a or b. If it is, then the new interval for the next iteration becomes [a, c], where c is the midpoint. If the midpoint is not closer to the root, then the new interval becomes [c, b]. This process is repeated until the desired accuracy is achieved.

2. What is the purpose of using the bracketing method in Matlab?

The bracketing method in Matlab is used to find the roots of a given equation. It is a numerical method that is used to approximate the locations of roots. The bracketing method is particularly useful when the root of an equation is known to exist within a certain interval, making it a more efficient method compared to other root-finding algorithms.

3. How accurate is the bracketing method in Matlab?

The accuracy of the bracketing method in Matlab depends on the initial guesses for the root and the number of iterations performed. The algorithm will continue to refine the interval until the desired accuracy is achieved. However, if the interval is too large or the initial guesses are too far from the actual root, the algorithm may not converge to the correct root or may take a longer time to do so.

4. Is the bracketing method in Matlab suitable for all types of equations?

No, the bracketing method in Matlab is not suitable for all types of equations. It can only be used for equations where the root is known to exist within a certain interval and the function changes sign at the root. If these conditions are not met, the bracketing method may not converge to the correct root or may not converge at all.

5. Can the bracketing method in Matlab handle multiple roots?

Yes, the bracketing method in Matlab can handle multiple roots. However, the algorithm may only converge to one of the roots depending on the initial guesses and the function itself. If the initial guesses are close to multiple roots, the algorithm may converge to the one with the largest magnitude. To find all roots of an equation, multiple initial guesses and iterations may be needed.

Similar threads

  • MATLAB, Maple, Mathematica, LaTeX
Replies
6
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
2
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
4
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
838
  • General Math
Replies
6
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
953
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
1K
Replies
0
Views
550
  • MATLAB, Maple, Mathematica, LaTeX
Replies
2
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
32
Views
2K
Back
Top