Matlab - Ayuda por favor! Método Newton Raphson en Matlab

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 10 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda por favor! Método Newton Raphson en Matlab

Publicado por Dominga (2 intervenciones) el 19/09/2019 19:31:57
Hola, este es mi código en Matlab el cual encuentra las raices de una función por medio del método Newton Raphson, el código funciona y arroja la raíz de la función, el problema es que no reconoce le ciclo if, entra de largo y me muestra todos los mensajes, por favor ayuda porque no se que debo modificar.
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
clc, clear
fprintf('Newton Rahpson\n');
syms x
f=input('introduzca la función f(x): ','s');
f=inline(f);
d=input('introduzca la derivada de la función f(x): ','s');
%der=diff(f);
d=inline(d);
po=input ('introduzca la aproximación inicial: ');
TOL=input('introduzca la tolerancia: ');
No=input('introduzca el numero maximo de iteraciones: ');
%fprintf('la solucion aproximada es %f',p);
i=1;%inicializar porque se usa un while
while i<=No
   p=po-(f(po)/d(po));
   % p=po-mrdivide(f(po),d(po))
    errorab=(abs(p-po)/abs(p));
    if errorab<TOL
        fprintf('El procedimiento fue exitoso\n');
    end
    i=i+1;
    po=p;
    fprintf('El metodo fallo despues de %f iteraciones\n', No);
end
fprintf('Raiz %f en %f iteraciones',p,i);
Captura-de-pantalla-3
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda por favor! Método Newton Raphson en Matlab

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 19/09/2019 20:48:07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
clear
fprintf('Newton Rahpson\n');
syms x
f=input('introduzca la función f(x): ','s');
f=inline(f);
d=input('introduzca la derivada de la función f(x): ','s');
%der=diff(f);
d=inline(d);
po=input ('introduzca la aproximación inicial: ');
TOL=input('introduzca la tolerancia: ');
No=input('introduzca el número máximo de iteraciones: ');
i=1;%inicializar porque se usa un while
while i<=No
p=po-(f(po)/d(po));
errorab=(abs(p-po)/abs(p));
if errorab<TOL
fprintf('El procedimiento fue exitoso\n');
fprintf('Raíz %f en %d iteraciones\n',p,i)
return;
end
i=i+1;
po=p;
end
fprintf('El método falló después de %d iteraciones\n', No);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>> newton20
Newton Rahpson
introduzca la función f(x): exp(x)-2
introduzca la derivada de la función f(x): exp(x)
introduzca la aproximación inicial: 0
introduzca la tolerancia: 0.0001
introduzca el número máximo de iteraciones: 200
El procedimiento fue exitoso
Raiz 0.693147 en 5 iteraciones
 
 
 
>> newton20
Newton Rahpson
introduzca la función f(x): exp(x)-2
introduzca la derivada de la función f(x): exp(x)
introduzca la aproximación inicial: 0
introduzca la tolerancia: 0.0001
introduzca el número máximo de iteraciones: 3
El método falló después de 3 iteraciones


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab
Servicio de Asesoría Online en Matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 10 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda por favor! Método Newton Raphson en Matlab

Publicado por Dominga (2 intervenciones) el 19/09/2019 21:50:04
Muchas Gracias!!
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