Professional Documents
Culture Documents
Function: % Ako Su Razlicite Duzine Dopuniti Nulama
Function: % Ako Su Razlicite Duzine Dopuniti Nulama
vezba2 - gauss
function x = gauss(A,b)
n=length(A);
for k=1:n
[A,b]=swrow(A,b,k);
for i=k+1:n
m = A(i,k)/A(k,k);
for j=k:n
A(i,j)=A(i,j)-m*A(k,j);
end
b(i)=b(i)-m*b(k);
end
end
x=zeros(1,n);
for i=n:-1:1
s=0;
for k=i+1:n
s=s+A(i,k)*x(k);
end
x(i)=(b(i)-s)/A(i,i);
end
function [A,b] = swrow(A,b,k) % red sa max elementom postavi na prvi u ostatku matrices
l=maxelem(A,k);
n=length(A);
for j=k:n
temp=A(k,j);
A(k,j)=A(l,j);
A(l,j)=temp;
end
temp=b(k);
b(k)=b(l);
b(l)=temp;
function l = maxelem(A,k) % odredjuje max element u koloni k
n=length(X);
l=k;
for i=k:n
if(abs(A(i,k))>A(l,k))
l=i;
end
end
i 1
b ( aij x
j 1
novo
j
aii
aij x staro
)
j
j i 1
for it=1:itMax
for i=1:n
s=0;
for j=1:i-1
s=s+A(i,j)*x0(j);
end
for j=i+1:n
s=s+A(i,j)*x0(j);
end
x(i)=(b(i)-s)/A(i,i);
end
e=0;
for i=1:n
e=e+(x(i)-x0(i))^2;
end
if(e<err)
return;
end
x0=x;
end
i 1
xinovo
bi ( aij x
j 1
staro
j
aij x staro
)
j
j i 1
aii
end
function[flag] = sdd(A)
%flag = 1 sve je u redu
%flag = 0 doslo je do greske
[n,m]=size(A);
flag=1;
s=zeros(1,m);
for i=1:n
for j=1:m
if j~=i
s(i)=s(i)+A(i,j);
end
if A(i,i)<s(i)
flag=0;
return;
end
end
end
vezba4 polovljenje, secica, tangenta
function x = polovljenje(a,b,err,itMax,func)
n=length(a);
x=zeros(1,n);
for i=1:n
for it=1:itMax
ya=feval(func,a(i));
yb=feval(func,b(i));
xm=(a(i)+b(i))/2;
ym=feval(func,xm);
if(abs(ym)<err||(abs(b(i)-a(i))<err))
x(i)=xm;
break;
end
if(ya*ym<0)
b(i)=xm;
else
a(i)=xm;
end
end
end
aii aij
j 1
j i
function x = secica(a,b,err,itMax,func)
n=length(a);
x=zeros(1,n);
for i=1:n
for it=1:itMax
ya=feval(func,a(i));
yb=feval(func,b(i));
xa=(yb-ya)/(b(i)-a(i));
xb=ya-xa*a(i);
xm=-xb/xa;
ym=feval(func, xm);
if(abs(ym)<err||(abs(a(i)-b(i))<err))
x(i)=xm;
break;
end
if(ya*ym<0)
b(i)=xm;
else
a(i)=xm;
end
end
end
function x=tangenta(a,b,err,itMax,func,funcprime)
n=length(a);
x=zeros(1,n);
for i=1:n
for it=1:itMax
ya=feval(func,a(i));
yb=feval(func,b(i));
ya_izvod=feval(funcprime,a(i));
xm=a(i)-(ya/ya_izvod);
ym=feval(func,xm);
if((abs(ym)<err || abs(a(i)-b(i))<err))
x(i)=xm;
break;
end
if(ya*ym<0)
b(i)=xm;
else
a(i)=xm;
end
end
end
function gp=izvod(g) % g,gp - koeficijenti polinoma
n=length(g);
gp=zeros(1,n-1);
if n>1
for i=1:n-1
gp(i)=g(i)*(n-i);
end;
end;
% funcprime = polyval(gp,x)
P( x) ( yi
i 1
j 1, j i
(x x j )
( xi x j )
if(j~=i)
p=p*(x(i)-x(j));
q=conv(q,[1 -x(j)]);
end
end
g=g+y(i)*q/p;
end
function y = LIy(xp,yp,x)
n=length(x);
y=zeros(1,n);
for i=1:n
p=yp(i);
for j=1:n
if i~=j
p=p.*(x-xp(j))/(xp(i)-xp(j));
end
end
y=y+p;
end
1
x
x
1
2
...
...
X
...
...
1 x
m1
1
xm
x2
1
x2
2
...
...
...
...
...
...
x2
...
m1
2
xm
...
xn
m1
n
xm
( mn1 )
xn
1
xn
2
X T X a X T Y