Jacobi method in Scilab, what is wrong with my implementation -


hy,

i have below jacobi method implementation in scilab, receaive errors,

   function [x]= jacobi(a,b) [n m] = size (a); // determinam marimea matricei 

//we check if matrix quadratic

if n<>m     error('matricea ar trebui sa fie patratica');     abort; end 

we initialize zeros matrix

  x = zeros(n,1) // matrice cu zerouri x = [0, 0 ... 0]  // initializarea variabilelor itmax=1000.; //numar maxim de iteratii eps=0.0000000000000001 // toleranta maxima  nrit=0; ready=0; while (ready==0)     i=1:n         s=0         j=1:n             if i<>j                 s=a(i,j)+x(j);             end         end         y(i)=(1/a(i,i))*(b(i)-s);     end  abso = norm(x(1),y(1));  i=2:n      if abso<norm(x(i),y(i))          abso=norm(x(i),y(i));      end  end  nrit=nrit+1;  if((nrit==itmax)|(abso<eps))       ready=1;  end  x=y; end i=1:n     disp(y(i),'rezidurile medii'); end x 

what wrong it!

sincerly,

i don't know errors , noticed there issues in implementation well, can use following code works fine:

jacobi alghoritm

function [x]= jacobi(a,b) [n m] = size (a); // determinam marimea matricei if n<>m     error('matricea ar trebui sa fie patratica'); end  // initializarea variabilelor x = zeros(n,1) // matrice cu zerouri x = [0, 0 ... 0] itmax=1000.; //numar maxim de iteratii eps=0.0000000000000001 // toleranta maxima nrit=0; ready=0;  while (ready==0)     i=1:n         s=0         j=1:n             if i<>j                 s=s+a(i,j)*x(j);             end         end         y(i)=(1/a(i,i))*(b(i)-s);     end     abso = abs(x(1)-y(1));     i=2:n         if abso<abs(x(i)-y(i))             abso=abs(x(i)-y(i));         end     end     nrit=nrit+1;     if((nrit==itmax)|(abso<eps))          ready=1;     end     x=y; end 

let's saved in file @ ~/jacobi.sci

usage (in scilab)

-->exec('~/jacobi.sci', -1) -->jacobi([3,-1,-1;-1,3,1;2,1,4],[1,3,7])  ans  =      1.       1.       1.   

Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -