La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Matlab/1334630-Mejor-metodo-de-resolver-sistema-no-lineal.html

Mejor método de resolver sistema no lineal

Mejor método de resolver sistema no lineal

Publicado por Lorenzo (1 intervención) el 29/05/2012 19:35:39
Hola, tengo un sistema no lineal de ecuaciones, para ello hago lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
syms x y z t
 
%Punto inicial para iterar
X01=1 ; X02=1; X03=1; X04=1;
 
X=[x y z t];
%Ahora tengo que poner el sistema
f(1)=;
f(2)=;
f(3)=;
f(4)=;
b=[0 0 0 0];
TOLERANCIA=0.0000000000001;
X0=[X01; X02; X03; X04]; % Es el punto inicial que se escoge para iterar;
Jf=jacobian(f,X);
t=1;
j=1;
        while (t>=TOLERANCIA) && (j<100)
            A=double(subs(Jf,X,X0));
            B=b'-subs(f,X,X0)'+A*X0;
            S=A\B;
            X0=S;
            t=norma(b-subs(f,X,X0));
            j=j+1;
        end


En donde norma.m:

1
2
3
%X tiene que estar en columna
function J=norma(X)
J=sqrt(X*transpose(X));


Me gustaría saber, si existe un método mejor para resolver ecuaciones no lineales, por ejemplo, si hay alguno en el que no tenga que poner un punto inicial para iterar.

Un saludo y muchas gracias.