Sie sind auf Seite 1von 7

clear all

clc
disp ('6x1-3x2+x3=11');
disp ('x1-7x2+x3=10');
disp ('2x1+x2-8x3=-15');
k=input('digite el numero de iteraciones ');
tol= 1*10^-3 ;
x1= (11+3*0+0)/6 ;
x2= (10-0-0)/-7 ;
x3= (-15-2*0-0)/-8 ;
for i= 1:1:k
y1= (11+3*x2-x3)/6;
y2= (10-x1-x3)/-7;
y3= (-15-2*x1-x2)/-8;
er1= abs(y1-x1) ;
er2= abs(y2-x2);
er3=abs(y3-x3);
x1=y1;
x2=y2;
x3=y3;
end
if er1<= tol && er2<=tol && er3<=tol
disp ('el valor de x1, x2, x3');
disp(x1);
disp(x2);
disp(x3);
disp ('los valores de los errores son er1 , er2, er3');
disp(er1);
disp(er2);
disp(er3);
else
disp('digite otro valor de iteracin ');
end

%seidel
clear all
clc
disp ('6x1-3x2+x3=11');
disp ('x1-7x2+x3=10');
disp ('2x1+x2-8x3=-15');
k=input('digite el numero de iteraciones ');
y=input('estimacion para x2');
z=input('estimacion para x3');

tol = 1*10^-3 ;

x1= (11+3*y-z)/6;
y1=(10-x1-z)/-7;
z1=(-15-2*x1-y1)/-8;
er1=100;
er2=100;
er3=100;
i=1;
while (er1>tol && er2> tol && er3>tol)
x=x1;
y=y1;
z=z1;
x1= (11+3*y-z)/6;
y1=(10-x1-z)/-7;
z1=(-15-2*x1-y1)/-8;
er1=abs(x1-x);
er2=abs(y1-y);
er3=abs(z1-z);
i=i+1;
end
disp ('el valor de x1, x2, x3');
disp(x1);
disp(y1);
disp(z1);
disp ('los valores de los errores son er1 , er2, er3');
disp(er1);
disp(er2);
disp(er3);
disp('las iteraciones fueron ')
disp(i);

% jacobi1
clear all
close all
clc
X=input('Digite la matriz: ')
[fil col ]= size(X);
new=size(X);
for i= 1: fil
temp=abs(X(i,1));
x(i)=1;
for j= 2:col-1
if temp < abs(X(i,j))
temp=abs( X(i,j));
x(i)=j;
end
end
end
i=1;
[fi co]=size(x);
flag=0;
while i<=co-1
j=i+1;
while j<=co
if x(i)==x(j)
flag=1;
j=co+1;
i=co;
end
j=j+1;
end
i=i+1;
end
if flag==0
Y=zeros(new);
fila=1;
i=1;
while i<=co
if x(i)==fila
for j=1:col
Y(fila,j)=X(i,j);
end
fila=fila+1;
i=0;
end
i=i+1;
end
Y
tol=input('Digite la tolerancia: ')
for i=1:fil
fprintf('Digite el valor de la variable x%d \n', i)
x(i)=input('');
end
er1=100;
er2=100;
er3=100;
i=1;

while abs(er1)>=tol && abs(er2)>=tol && abs(er3)>=tol


fprintf('Iteracin %d \n', i)
temp(1)=(Y(1,4)-(Y(1,3)*x(3))-(Y(1,2)*x(2)))/Y(1,1);
temp(2)=(Y(2,4)-(Y(2,3)*x(3))-(Y(2,1)*x(1)))/Y(2,2);
temp(3)=(Y(3,4)-(Y(3,1)*x(1))-(Y(3,2)*x(2)))/Y(3,3);
er1=abs(temp(1)-x(1));
er2=abs(temp(2)-x(2));
er3=abs(temp(3)-x(3));
x(1)=temp(1);
x(2)=temp(2);
x(3)=temp(3);
fprintf('x1: %d \n', x(1))
fprintf('x2: %d \n', x(2))
fprintf('x3: %d \n', x(3))
fprintf('Error x1: %d \n', er1)
fprintf('Error x2: %d \n', er2)
fprintf('Error x3: %d \n\n', er3)
i=i+1;
end
fprintf('Iteracin %d \n', i)
temp(1)=(Y(1,4)-(Y(1,3)*x(3))-(Y(1,2)*x(2)))/Y(1,1);
temp(2)=(Y(2,4)-(Y(2,3)*x(3))-(Y(2,1)*x(1)))/Y(2,2);
temp(3)=(Y(3,4)-(Y(3,1)*x(1))-(Y(3,2)*x(2)))/Y(3,3);
er1=abs(temp(1)-x(1));
er2=abs(temp(2)-x(2));
er3=abs(temp(3)-x(3));
x(1)=temp(1);
x(2)=temp(2);
x(3)=temp(3);
fprintf('x1: %d \n', x(1))
fprintf('x2: %d \n', x(2))
fprintf('x3: %d \n', x(3))
fprintf('Error x1: %d \n', er1)
fprintf('Error x2: %d \n', er2)
fprintf('Error x3: %d \n\n', er3)
else
disp('Matriz Mal Condicionada')
end

%seidel
clear all
close all
clc
X=input('Digite la matriz: ')
[fil col ]= size(X);
new=size(X);
for i= 1: fil
temp=abs(X(i,1));
x(i)=1;
for j= 2:col-1
if temp < abs(X(i,j))
temp=abs( X(i,j));
x(i)=j;
end

end
end
i=1;
[fi co]=size(x);
flag=0;
while i<=co-1
j=i+1;
while j<=co
if x(i)==x(j)
flag=1;
j=co+1;
i=co;
end
j=j+1;
end
i=i+1;
end
if flag==0
Y=zeros(new);
fila=1;
i=1;
while i<=co
if x(i)==fila
for j=1:col
Y(fila,j)=X(i,j);
end
fila=fila+1;
i=0;
end
i=i+1;
end
Y
tol=input('Digite la tolerancia: ')
for i=1:fil
fprintf('Digite el valor de la variable x%d \n', i)
x(i)=input('');
end
er1=100;
er2=100;
er3=100;
i=1;
while abs(er1)>=tol && abs(er2)>=tol && abs(er3)>=tol
fprintf('Iteracin %d \n', i)
temp(1)=x(1);
temp(2)=x(2);
temp(3)=x(3);
x(1)=(Y(1,4)-(Y(1,3)*x(3))-(Y(1,2)*x(2)))/Y(1,1);
x(2)=(Y(2,4)-(Y(2,3)*x(3))-(Y(2,1)*x(1)))/Y(2,2);
x(3)=(Y(3,4)-(Y(3,1)*x(1))-(Y(3,2)*x(2)))/Y(3,3);
er1=abs(temp(1)-x(1));
er2=abs(temp(2)-x(2));
er3=abs(temp(3)-x(3));
fprintf('x1: %d \n', x(1))
fprintf('x2: %d \n', x(2))
fprintf('x3: %d \n', x(3))
fprintf('Error x1: %d \n', er1)
fprintf('Error x2: %d \n', er2)

fprintf('Error x3: %d \n\n', er3)


i=i+1;
end
fprintf('Iteracin %d \n', i)
temp(1)=x(1);
temp(2)=x(2);
temp(3)=x(3);
x(1)=(Y(1,4)-(Y(1,3)*x(3))-(Y(1,2)*x(2)))/Y(1,1);
x(2)=(Y(2,4)-(Y(2,3)*x(3))-(Y(2,1)*x(1)))/Y(2,2);
x(3)=(Y(3,4)-(Y(3,1)*x(1))-(Y(3,2)*x(2)))/Y(3,3);
er1=abs(temp(1)-x(1));
er2=abs(temp(2)-x(2));
er3=abs(temp(3)-x(3));
fprintf('x1: %d \n', x(1))
fprintf('x2: %d \n', x(2))
fprintf('x3: %d \n', x(3))
fprintf('Error x1: %d \n', er1)
fprintf('Error x2: %d \n', er2)
fprintf('Error x3: %d \n\n', er3)
else
disp('Matriz Mal Condicionada')
end

%gauss
clear all
clc
A= [ 3 -1 2 12; 1 2 3 11; 2 2 -1 2]
[fil col]=size(A);
flag=0;
for i=1:fil
if A(i,1)==1
flag=1;
if i~=1
for k=1:col
temp=A(1,k);
A(1,k)=A(i,k);
A(i,k)=temp;
end
end
end
end
if flag==0
temp=1/A(1,1);
A(1,:)=A(1,:)*temp;
end
A
pivot=A(2,1);
A(2,:)=A(2,:)-(pivot*A(1,:));
A
pivot=A(3,1);
A(3,:)=A(3,:)-(pivot*A(1,:));
A
pivot=A(3,2)/A(2,2);

A(3,:)=A(3,:)-(pivot*A(2,:));
A
x3=A(3,4)/A(3,3)
x2=(A(2,4)-(A(2,3)*x3))/A(2,2)
x1=(A(1,4)-(A(1,3)*x3)-(A(1,2)*x2))

Das könnte Ihnen auch gefallen