SISTEMA DE ECUACIONES NO

LINEALES
ITERACIONES DE PUNTO FIJO
Xn+1= F(xn,yn)
yn+1= G(xn+1,yn)
semilla (x0,y0)
Criterios de convergencia:
1. f y g continuas en los reales
2. f(x,y) y g(x,y) pertenecen a los reales
3.
δf
δg
|+|
| <1
δx
δx
δf
δg
|
|+|
| <1
δy
δy
|

PROGRAMA EN MATLAB
clear all;
clc;
fg=input('ingrese el sistema a resolver: ');
xy0=input('ingrese la semilla [x0;y0]: ');
tol=input('ingrese el error permitido: ');
h=0.00000001;
format long;
fprintf('\n k
Xaprox
Yaprox\n');
fprintf(' 0 %17.13f
%17.13f\n',xy0(1),xy0(2));
for i=1:50
f_g=feval(fg,xy0(1),xy0(2));
f=f_g(1);
f_g=feval(fg,f(1),xy0(2));
g=f_g(2);
fprintf('%2.0f %17.13f
%17.13f\n',i,f,g);
e1=abs(xy0(1)-f);
e2=abs(xy0(2)-g);
if e2>e1
error=e2;
else
error=e1;
end
if error < tol
break
else
xy0=[f; g];

end
end
EJEMPLO:
Halle las raíces de:
x 2 + y2 = 4
ex + y = 1
METODO GRAFICO:
>> ezplot('x^2 + y^2 = 4');
>> grid on;
>> hold on;
>> ezplot('exp(x) + y = 1');
exp(x) + y = 1 = 0
6

4

y

2

0

-2

-4

-6
-6

-4

FUNCION EN MATLAB:
del problema:
x = − 4 − y2
y = 1− ex
la función será:
function c=ejesuc(x,y)
x=-sqrt(4-y*y);
y=1-exp(x);
c=[x;y];

-2

0
x

2

4

6

INSTRUCCIONES EN MATLAB:
>> APROXSUCESIST
ingrese el sistema a resolver: 'ejesuc'
ingrese la semilla [x0;y0]: [0.8;1]
ingrese el error permitido: 0.001
k
0
1
2
3
4

Xaprox
Yaprox
0.8000000000000
1.0000000000000
-1.7320508075689
0.8230787936822
-1.8227839420487
0.8384246920726
-1.8157764277914
0.8372884744175
-1.8163006388282
0.8373737472426

METODO DE NEWTON RAPHSON
PROGRAMA EN MATLAB
clear all;
clc;
fg=input('ingrese el sistema a resolver: ');
xy0=input('ingrese la semilla [x0;y0]: ');
tol=input('ingrese el error permitido: ');
h=0.00000001;
format long;
fprintf('\n k Xaprox
Yaprox\n');
fprintf(' 0 %17.13f %17.13f\n',xy0(1),xy0(2));
for i=1:50
f_g=feval(fg,xy0(1),xy0(2));
f=f_g(1);
g=f_g(2);
fxgx=(feval(fg,xy0(1)+h,xy0(2))-f_g)/h;
fygy=(feval(fg,xy0(1),xy0(2)+h)-f_g)/h;
fx=fxgx(1);
gx=fxgx(2);
fy=fygy(1);
gy=fygy(2);
xy=inv([fx fy;gx gy])*[-f;-g]+xy0;
fprintf('%2.0f %17.13f %17.13f\n',i,xy(1),xy(2));
e1=abs(xy0(1)-xy(1));
e2=abs(xy0(2)-xy(2));
if e2>e1
error=e2;
else
error=e1;
end
if error < tol
break
else
xy0=xy;

end
end
EJEMPLO:
Para un sistema binario, se tiene el siguiente sistema de ecuaciones:
γ1e γ 2 − 1 = 0
γ12 + 2γ 22 = 2
METODO GRAFICO:
>> ezplot('x*exp(y)-1');
>> grid on;
>> hold on;
>> ezplot('x^2 + 2*y^2-2');
x2 + 2 y 2-2 = 0
6

4

y

2

0

-2

-4

-6
-6

-4

FUNCION EN MATLAB:
function c=binario(x,y)
f=x*exp(y)-1;
g=x*x+2*y*y-2;
c=[f;g];

-2

0
x

2

4

6

INSTRUCCIONES EN MATLAB:
>> NEWTONRAPHSONs
ingrese el sistema a resolver: 'binario'
ingrese la semilla [x0 y0]: [1;1.5]
ingrese el error permitido: 0.0001
k
0
1
2
3
4
5

Xaprox
1.0000000000000
0.7096952439721
0.3782592303931
0.3816827298441
0.3817960501124
0.3817961081898

Yaprox
1.5000000000000
1.0134349151308
0.9918916324467
0.9633179451661
0.9628686807300
0.9628685610641

>> NEWTONRAPHSONs % otra raiz
ingrese el sistema a resolver: 'binario'
ingrese la semilla [x0 y0]: [1.5;-0.5]
ingrese el error permitido: 0.0001
k
0
1
2
3
4
>>

Xaprox
1.5000000000000
1.3726834674255
1.3495141007519
1.3492683006806
1.3492682266965

Yaprox
-0.5000000000000
-0.3159747965827
-0.2998883603702
-0.2995624522750
-0.2995623911869

Sign up to vote on this title
UsefulNot useful