Matlab - Ayuda método newton sistema ec. no lineales

   
Vista:

Ayuda método newton sistema ec. no lineales

Publicado por Javier (2 intervenciones) el 02/03/2012 16:39:46
Hola a todos. Estoy intentando utilizar l método de Newton para hallar los valores de dos variables, para resolver dos ecuaciones no lineales y no hay manera. Las ecuaciones son,(se ven desde estas direcciones):

http://www.alciro.org/cgi/tex.cgi?0=\frac{2}{G}-\sum_{v}^{n}\frac{1}{\sqrt[]{(\varepsilon%20{v}-\lambda%20)^{2}+^{\delta%20^{2}}}}



http://www.alciro.org/cgi/tex.cgi?0=N-\sum_{v}^{n}1-\frac{(\varepsilon%20{v}-\delta%20)}{\sqrt[]{(\varepsilon%20{v}-\lambda%20)^{2}+^{\delta%20^{2}}}}


donde G, N y los eps(v) los conozco. Las incognitas son lambda y delta, que las llamo x(1) y x(2) en Matlab respectivamente. Yo hago lo siguiente:

---------------------------------------------------------------------------------------
clear
clc

eps=[-0.83055E+01;-0.70276E+01];
n=length(eps);

f(1)= 0;
f(2)= 0;
J(1,1) = 0;
J(1,2) = 0;
J(2,1) = 0;
J(2,2) = 0;
counter = 1;
error = 10;
h=0.01;
k=0.01;
x = input('Introduce el vector ');
while error > 1e-6 && counter < 10

for i=1:n
f(1)=f(1)+((-(1/sqrt((eps(i)-x(2))^2+x(1)^2)))+(2/(0.157*n)));
f(2)=f(2)+((-n+((eps(i)-x(2))/sqrt((eps(i)-x(2))^2+x(1)^2)))+(8/n));

J(1,1) = J(1,1)+(((-(1/sqrt((eps(i)-x(2))^2+(x(1)+h)^2)))+(2/(0.157*n))-(-(1/sqrt((eps(i)-x(2))^2+x(1)^2)))+(2/(0.157*n)))/h);
J(1,2) = J(1,2)+(((-(1/sqrt((eps(i)-(x(2)+k))^2+x(1)^2)))+(2/(0.157*n))-(-(1/sqrt((eps(i)-x(2))^2+x(1)^2)))+(2/(0.157*n)))/k);
J(2,1) = J(2,1)+(((-n+((eps(i)-x(2))/sqrt((eps(i)-x(2))^2+(x(1)+h)^2)))+(8/n)-(-n+((eps(i)-x(2))/sqrt((eps(i)-x(2))^2+x(1)^2)))+...
(8/n))/h);
J(2,2) = J(2,1)+(((-n+((eps(i)-(x(2)+k))/sqrt((eps(i)-(x(2)+k))^2+x(1)^2)))+(8/n)-(-n+((eps(i)-x(2))/sqrt((eps(i)-x(2))^2+x(1)^2)))+...
(8/n))/k);

end


xn = x - J\f';

error = max(abs(xn(1)-x(1)),abs(xn(2)-x(2)));

counter = counter + 1;

x = xn;

end
xn
------------------------------------------------------------------------


Pero no logro que converja es decir, que las f(1) y f(2) sean cero. Falla el sumatorio pero no se como Hacerlo. Quería saber si alguien me puede echar un cable porque me tiene desesperado.
Un saludo y gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO

Ayuda método newton sistema ec. no lineales

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 02/03/2012 18:50:18
HOla Javir.
La solución es:
>>%EJECUCION
>>newton_no_lineal
1
2
3
4
5
6
7
n= 1   x1=           1    x2=           2   f1(x1,x2)=   2.000448107819e-001   f2(x1,x2)=   3.810627955491e+000
n= 2   x1=    -12.4748    x2=     4.82103   f1(x1,x2)=   1.073721073816e-002   f2(x1,x2)=  -9.749599196498e-001
n= 3   x1=    -7.39594    x2=     3.87019   f1(x1,x2)=  -7.316802610403e-003   f2(x1,x2)=   1.151873621073e-001
n= 4   x1=    -8.64807    x2=     4.48702   f1(x1,x2)=   9.117680410634e-003   f2(x1,x2)=   1.319231491770e-002
n= 5   x1=    -8.43307    x2=     4.28578   f1(x1,x2)=  -2.498017685386e-004   f2(x1,x2)=  -2.148470916681e-003
n= 6   x1=    -8.42937    x2=     4.28915   f1(x1,x2)=  -7.606445563690e-008   f2(x1,x2)=   4.006320919459e-008
n= 7   x1=    -8.42937    x2=     4.28916   f1(x1,x2)=   1.568190022283e-015   f2(x1,x2)=  -2.051692149507e-013


sI diseas te comunicas via messenger opcion audio para explicarte, porque en tu pregunta

tienes varios errores, como en las funciones donde vas a evaluar, en la parte de la sumataria, ademas me parece q no tienes claro, cuales son tus datos de entrada, y le bucle de donde a donde va ir, y tu criterio de pare tambien.


Saludos.
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
jjcc94@hotmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda método newton sistema ec. no lineales

Publicado por Javier (2 intervenciones) el 02/03/2012 20:20:16
Muchas gracias. Te he escrito un correo electronico a la dirección que figura en tu mensaje.
Saludos!!!! :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar