- //Stefan Domański
- function [singular, x] = gaussian(A,b)
- M = A;
- w = b;
- osob = 0;
- perm = 1;
- for i=2:length(b)
- perm(i)=i;
- end
- for i=1:length(b)
- max=0;
- xm=0;
- ym=0;
- for x=i:length(b)
- for y=i:length(b)
- if abs(M(x, y))>max then
- max = abs(M(x, y))
- xm = x
- ym = y
- end
- end
- end
- if max<1E-1 then
- osob = 1;
- end
- for j=1:length(b)
- temp = M(j, ym);
- M(j, ym) = M(j, i);
- M(j, i) = temp;
- end
- temp = w(xm);
- w(xm)= w(i);
- w(i) = temp;
- temp = perm(xm);
- perm(xm)= perm(i);
- perm(i) = temp;
- for j=1:length(b)
- temp = M(xm, j);
- M(xm, j) = M(i, j);
- M(i, j) = temp;
- end
- for j= i+1:length(b)
- ratio = M(j,i)/M(i,i);
- for k=i:length(b)
- M(j,k) = M(j, k) - ratio*M(i, k);
- end
- w(j) = w(j) - ratio*w(i);
- end
- end
- for i=1:length(b)
- j = length(b)-i+1;
- r = 0;
- for k=j+1:length(b)
- r = r + M(j, k)*w(k);
- end
- w(j)=w(j)/M(j, j);
- end
- for i=1:length(b)
- temp = perm(i);
- while temp <> i
- temp1 = w(i);
- w(i)=w(perm(i));
- w(perm(i))=temp1;
- temp1 = perm(i);
- perm(i)=perm(temp);
- perm(temp)=temp1;
- temp=perm(i);
- end
- end
- singular = osob;
- x = w;
- endfunction

By: sdsd | Date: Jan 6 2012 20:43 | Format: None | Expires: never | Size: 1.74 KB | Hits: 765
Latest pastes
1 hours ago
3 hours ago
9 hours ago
12 hours ago
18 hours ago