# Gauss-Seidel Method (Matlab)

by roam
Tags: gaussseidel, matlab, method
 P: 895 I need to solve the following problem using Matlab This is my code so far: clear all clc clf function x=GaussSeidel(A,b,y,N) n = length(y); for k = 1:N for i=1:n s=b(i); for j =1:i-1 s=s-A(i,j)*y(j); end for j = i+1:n s=s-A(i,j)*y(j); end x(i)=s/A(i,i); x(i)=x(k); end y = x' end But I keep getting the following error: Error: File: Untitled.m Line: 4 Column: 1 Function definitions are not permitted in this context. Why am I getting this error? What do I need to do? And my inputs would be: A=[-5 0 2 0 -1 ; 0 9 0 3 0 ; 2 0 5 0 2 ; 0 -2 0 4 0 ; -1 0 7 0 7] b = [8;4;-8;-4;0] x0=[8;4;-8;-4;0] For N, how do I know many iterates N are necessary for this problem? Any help with the code is greatly appreciated.
 PF Gold P: 1,153 You're defining a function in a script file. In MATLAB, functions are defined in a separate file with the same name as the function. Create a file GaussSeidel.m with the following: functionx=GaussSeidel(A,b,y,N) n = length(y); for k = 1:N for i=1:n s=b(i); for j =1:i-1 s=s-A(i,j)*y(j); end for j = i+1:n s=s-A(i,j)*y(j); end x(i)=s/A(i,i); x(i)=x(k); end y = x' end and a script file that calls the function.