Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

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

  1. Jul 1, 2012 #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. Jul 1, 2012 #2

    jhae2.718

    User Avatar
    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. Jul 1, 2012 #3
    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 this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?



Similar Discussions: Need help with Matlab code for gauss siedel i get errors, need imediat help
  1. I need help please? (Replies: 2)

Loading...