Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Help understanding "Missing operator, comma, or semicolon" error.

Asked by Mubarak on 1 Mar 2011

Hello I'm taking Numerical Methods course in my college. And am trying to write a program for a method called 'bisection method' and this is my program :

clear;
fx=inline('sin(0.01*x)+cos(0.75*x^2)');
xl=2;
xu=2.5;
n=5 % number of iteration
xr_old[];
for i=1:n
    xr=(xl+xu)/2;
    ea=abs((xr - xr_old)/xr)*100;
    xr_old=xr;
    % To display the results: Type the following command %
    if i==1
        dis('iteration   Xl   Xu   Xr   f(Xl)*f(Xu)   ea');
    end
    dis([i   xl   xu   xr   fx(xl)*fx(xu)   ea]);
    if fx(xl)*fx(xr) < 0
        xu=xr;
    else if fx(xl)*fx(xu) > 0
            xl=xr;
        else
            return;
        end
    end
end

When I want to run it, am keeping getting the following error:

>> bisection

??? Error: File: C:\MATLAB6p1\work\bisection.m Line: 6 Column: 7 Missing operator, comma, or semicolon.

So what is wrong with it?

0 Comments

Mubarak

Products

No products are associated with this question.

1 Answer

Answer by Andreas Goser on 1 Mar 2011

I get

??? Error: File: bisection.m Line: 6 Column: 7 Unbalanced or unexpected parenthesis or bracket.

Which explains better. Problaly you want to do

xr_old=[];

4 Comments

Walter Roberson on 1 Mar 2011

What is "dis" ? Did you mean "disp" ?

Mubarak on 2 Mar 2011

Yes.
I've corrected it.
But still it is display only 1 row.
I think we must type i=i+1; before the last end, Right?

Andreas Goser on 2 Mar 2011

Well with i=i+1, your whole for i=1:n loop would be pointless, right?

After the first run of the loop "fx(xl)*fx(xu)" is <0, so the "return" command fires. I do not know what you intend to do, but the codes executes correctly.

Let me share my concern that your project will be succesful with this sequential progress. I encourage you to take the warning and error messages serious and look at programming tools like the MATLAB debugger and M-Lint.

Andreas Goser

Contact us