Need help with Matlab code for gauss siedel i get errors, need imediat help

  1. Please I need HELP IMEDIATLY

    This is the error message that i get

    ??? Error using ==> gauss_sied
    Too many input arguments.

    Error in ==> HW_14 at 23
    [x_wo, cnt, x_w,cntt] = gauss_sied(xo, A, b, es, lam);



    clc
    clear


    C = [-8 1 -2 -20
    2 -6 -1 -38
    -3 -1 7 -34];

    A = C(:,1:end-1);
    b = C(:,end);


    nr = length(b);

    xo = ones(1,nr); % initial guess

    lam = 1.2;
    n = 4;
    es = .5*10^(2-n);

    [x_wo, cnt, x_w,cntt] = gauss_sied(xo, A, b, es, lam);

    fprintf(' Solution to [A]{x} = {b}\n')
    fprintf('*******************************************\n')
    fprintf(' Without Relaxation With Relaxation\n')
    fprintf(' ******************** ***************\n')
    for i = 1:length(b)
    fprintf(' x(i) = %.f x(i) = %.f\n',i,x_wo,i,x_w)
    end
    fprintf(' ******************** ***************\n')
    fprintf(' %i iterations %i iterations\n',cnt,cntt)
    fprintf('*******************************************\n')


    Function program
    function [x_wo, cnt,x_w cntt] = gauss_sied(xo, A, b, lam)
    %Without Relaxation
    nr = length(b);
    ea = 1;
    cnt = 0;


    while ea > es
    for i = 1 : nr
    sm = 0;
    for j = 1:nr
    if i ~= j
    sm = sm + A(i,j) * xo(j);
    end
    end
    x_wo(i) = (b(i) - sm) / A(i,i);
    end

    ea = 100 * abs((x_wo-xo)./x_wo);

    xo = x_wo;

    cnt = cnt+1;
    end

    %With Relaxation

    nr = length(b);
    ea = 1;
    cntt = 0;

    while ea > es
    for i = 1 : nr
    sm = 0;
    for j = 1:nr
    if i ~= j
    sm = sm + A(i,j) * xo(j);
    end
    end
    x_w(i) = (b(i) - sm) / A(i,i);
    end

    ea = 100 * abs((x_w-xo)./x_w);
    x_w = (lam*x_w) + (1 - lam)*xo;

    xo = x_w;

    cntt = cntt+1;
    end
     
    Last edited: Jul 1, 2012
  2. jcsd
  3. jhae2.718

    jhae2.718 1,160
    Gold Member

    You're supplying 5 inputs to a function that is defined to have 4 inputs.

    Code (Text):

    function [x_wo, cnt,x_w cntt] = gauss_sied(xo, A, b, lam)
     
    called as:
    Code (Text):

    [x_wo, cnt, x_w,cntt] = gauss_sied(xo, A, b, [COLOR="Red"]es[/COLOR], lam);
     
     
  4. Now in my code I get another error

    Error in ==> gauss_sied at 8
    xo = x_wo;

    Error in ==> HW_14 at 23
    [x_wo, cnt, x_w,cntt] = gauss_sied(xo, es, lam, A, b);
     
Know someone interested in this topic? Share a link to this question via email, Google+, Twitter, or Facebook

Have something to add?