K=K+1; fprintf ('%2d', K)
for i=1:3
suma=0;
for j=1:3
if i ~= j
suma=suma+A(i,j)*X(j);
end
end
X(i)=(b(i)-suma)/A(i,i); fprintf ('%10.4f',X(i))
end
Norma=norm(XO-X); fprintf('%10.4fn',Norma)
X0=X;
if K>10
break
end
end
E)
function gauss4
clear; A=[5 1 2 -1; 1 7 0 3; 2 0 5 1; -1 3 1 8]; b=[1 2 3 4]
XO=zeros(1,4); X=XO; K=0; Norma=1;
fprintf (' K X(1) X(2) X(3) X(4) Norman')
while Norma>0.0001
K=K+1; fprintf ('%2d', K)
for i=1:4
suma=0;
for j=1:4
if i ~= j
suma=suma+A(i,j)*X(j);
end
end
X(i)=(b(i)-suma)/A(i,i); fprintf ('%10.4f',X(i))
end
Norma=norm(XO-X); fprintf('%10.4fn',Norma)
X0=X;
if K>13
break
end
end
F)
function gauss5
clear; A=[10 0 0 -1 0; 0 5 0 2 0; 0 0 2 0 0; -1 0 0 8 3; 0 2 0 3 5]; b=[0.2 0.4 1.0 0.6 0.8]
XO=zeros(1,5); X=XO; K=0; Norma=1;
fprintf (' K X(1) X(2) X(3) X(4) X(5) Norman')
while Norma>0.0001
K=K+1; fprintf ('%2d', K)
for i=1:5
suma=0;
for j=1:5
if i ~= j
suma=suma+A(i,j)*X(j);
end
end
X(i)=(b(i)-suma)/A(i,i); fprintf ('%10.4f',X(i))
end
Norma=norm(XO-X); fprintf('%10.4fn',Norma)
X0=X;
if K>9
break
end
end
Programa que resuelve un Sistema de Ecuaciones únicamente por el Método de Jacobi
function jacobii=jacobii
x1=0, x2=0, x3=0, x4=0;
for i=1:184
x1=(-3-x2-x3-x4)/2;
x2=(15-x1-8*x3-4*x4)/9;
x3=(10+x1-3*x2-2*x4)/5;
x4=2-x2;
disp([x1,x2,x3,x4])
end
Programa que resuelve un Sistema de Ecuaciones únicamente por el Método de Newton-Rapson
format long
xi=1; xd= 2; Eps= 0.001 ;
fi=xiˆ3+2*xiˆ2+10*xi-20;
fd=xdˆ3+2*xdˆ2+10*xd-20;
fm=1;
while abs (fm) > Eps
xm=xd-fd* (xd-xi) / (fd-fi) ;
fm=xmˆ3+2*xmˆ2+10*xm-20;
disp ( [xi, xd, xm, abs (fm) ] )
if fd*fm > 0 xd=xm; fd=fm;
else xi=xm; fi=fm;
end
end
Programa que resuelve un sistema de ecuaciones ya sea, por el método de Jacobi o si el usuario lo desea, resuelto por el método de Gauss-Seidel
disp('1.-MÉTODO DE JACOBI');
disp('2.-MÉTODO DE GAUSS');
disp('3.-SALIR');
n=input('SELECCIONE UNA OPCION: ');
if n==1
num=input('INTODUCE EL NUMERO DE ECUACIONES: ');
A=input('INTRODUCE LA MATRIZ DE COEFICIENTES: ');
b=input('INTRODUCE LA MATRIZ DE COEFICIENTES INDEPENDIENTES: ');
z=input('INTRODUZCA EL NUMERO DE ITERACIONES: ');
X0=zeros(1,num);
for f=1:z
for i=1:num
suma=0;
for j=1:num
if i~=j
suma=suma+A(i,j)*X0(j);
end
end
X(i)=(b(i)-suma)/A(i,i);
fprintf('%10.4f',X(i));
end
fprintf('n');
X0=X;
end
elseif n==2
num=input('INTRODUCE EL NUMERO DE ECUACIONES: ');
A=input('INTRODUCE LA MATRIZ DE COEFICIENTES: ');
b=input('INTRIODUCE LA MATRIZ DE COEFICIENTES INDEPENDIENTES: ');
z=input('INTRODUZCA EL NUMERO DE ITERACIONES: ');
X0=zeros(1,num);
X=X0;
for f=1:z
for i=1:num
suma=0;
for j=1:num
if i~=j
suma=suma+A(i,j)*X(j);
end
end
X(i)=(b(i)-suma)/A(i,i);
fprintf('%10.4f', X(i));
end
X0=X;
fprintf('n');
end
elseif n==3
return;
else
disp('ERROR');
end
Programa que resuelve la raíz de un sistema de ecuaciones
function raices
format long
a= input ('Introduce un valor de la variable a:n');
b= input ('Introduce el valor de la variable b:n');
c= input ('Introduce el valor de la variabel c:n');
disp ('Las raices de la ecuacion son:n');
x1= (-b+(sqrt(b^2-(4*a*c))))/(2*a)
x2= (-b-(sqrt(b^2-(4*a*c))))/(2*a)
end
Programa que resuelve una ecuación en especifico por el método de Jacobi
function ejemp1
format long
x0=1;
for I=1:4
f=x0^3+2*x0^2+10*x0-20;
df=3*x0^2+4*x0+10;
x=x0-f/df;
disp([x])
x0=x;
end
end
ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
function ejemp2
format long
x0=2;
for I=1:4
f=x0^3-5*x0+1;
df=3*x0^2-5;
x=x0-f/df;
disp([x0])
x0=x;
end
end
function ejemp3
format long
x0=1;
for I=1:4
f=exp(x0)+x0^3+2*x0^2+10*x0-20;
df=exp(x0)+3*x0^2+4*x0+10;
x=x0-f/df;
disp([x])
x0=x;
end
end
ºººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº
function ejemp4
format long
x0=1;
for I=1:10
f=x0^3-12*x0^2+36*x0-32;
df=3*x0^2-24*x0+36;
x=x0-f/df;
disp([x])
x0=x;
end
end
Autor:
Baltazar Juárez García
Catedrático: Epimenio Tejero Jiménez
Ing. En sistemas computacionales.
Balancán, Tabasco.
Página anterior | Volver al principio del trabajo | Página siguiente |