Matlab - Problema al derivar una función en programación

   
Vista:

Problema al derivar una función en programación

Publicado por Oier (3 intervenciones) el 27/02/2012 13:15:02
Estoy haciendo el algoritmo de Newton Raphson en matlab y al llegar a la parte de la derivada no me la realiza. Me da este error y no sé resolverlo.

??? Error using ==> diff
Function 'diff' is not supported for class 'inline'.

Error in ==> newton at 8
dx=diff(f);

El código es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
clear
clc
disp ('NEWTON-RAPHSON');
xo=input('Introduza el valor inicial:');
n=input('Introduzca el número de iteraciones:');
fun=input('Introduzca la función f(x)=','s');
f=inline(fun);
dx=diff(f);
salida=ones(n,3);
for i=1:n
    x1=x0-(f(x0)/dx(x0))
    vsal=[xo;x1];
    error=abs((x1-xo)/x1);
    xo=x1;
    salida(i,1)=i;
    salida(i,2)=x1;
    salida(i,3)=error;
end
disp('Iterac.	Raiz        Error');
disp(num2str(salida));


Gracias de antemano
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
información
Otras secciones de LWP con contenido de Matlab
- Código fuente de Matlab
- Cursos de Matlab
- Temas de Matlab
- Chat de Matlab
información
Códigos de Matlab
- DÍAS DE LA SEMANA
- Fuerzas de Coulomb
- TRIÁNGULO
Imágen de perfil de JOSE JEREMIAS CABALLERO

Problema al derivar una función en programación

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 27/02/2012 13:38:54
Hola Oier


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

clear all

clc
disp ('NEWTON-RAPHSON');
fprintf('\nPROBAR CON LA FUNCION f(x)=exp(-x)-x\n')
fprintf('xo=1, n=10\n\n')
xo=input('Introduza el valor inicial xo:');
n=input('Introduzca el número de iteraciones n:');
fun=input('Introduzca la función f(x)=','s');
f=inline(fun);
dxf=diff(sym(fun));
dx=inline(dxf);
salida=ones(n,3);
for i=1:n
    x1=xo-(f(xo)/dx(xo));
    vsal=[xo;x1];
    error=abs((x1-xo)/x1);
    xo=x1;
    salida(i,1)=i;
    salida(i,2)=x1;
    salida(i,3)=error;
end
disp('Iterac.	 Raiz        Error');
disp(num2str(salida));


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
EJECUCION
>> newtonraphson3
NEWTON-RAPHSON
 
PROBAR CON LA FUNCION f(x)=exp(-x)-x
xo=1, n=10
 
Introduza el valor inicial xo:1
Introduzca el número de iteraciones n:10
Introduzca la función f(x)=exp(-x)-x
Iterac.	 Raiz        Error
 1     0.537883     0.859141
 2     0.566987    0.0513312
 3     0.567143  0.000275582
 4     0.567143 7.79461e-009
 5     0.567143 1.95757e-016
 6     0.567143 1.95757e-016
 7     0.567143 1.95757e-016
 8     0.567143 1.95757e-016
 9     0.567143 1.95757e-016
10     0.567143 1.95757e-016



Saludos.
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
"Detalladar sus preguntas, para recibir respuestas acertadas"
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