Problema para derivar función handle
Publicado por Ester de la Torre (6 intervenciones) el 27/10/2019 15:29:30
Estimados hace tiempo recibí del foro ayuda a la fora de ingresar una función mediante input y luego convertirla en handle.
Ahora mi problema surge cuando quiero generar un programa para aplicar el método de newton raphson y necesito calcular la derivada para ir aplicandola en la iteración
Ejemplo 1
Mensaje de Matlab:
Error using diff
Function 'diff' is not supported for class 'function_handle'.
Error in prueba (line 6)
der=diff(f)
Ejemplo 2
Método de Newton Raphson 1 variable
Ingrese la expresión de la función f entre apóstrofes,
f='x.^2-3'
a =
1
der =
2*x
Error using mupadmex
Error in MuPAD command: Index exceeds matrix dimensions.
Error in sym/subsref (line 687)
B = mupadmex('symobj::subsref',A.s,inds{:});
Error in prueba (line 12)
der(2)
>>
Gracias
Saludos Cordiales
Ahora mi problema surge cuando quiero generar un programa para aplicar el método de newton raphson y necesito calcular la derivada para ir aplicandola en la iteración
Ejemplo 1
1
2
3
4
5
6
7
8
9
function prueba
fprintf('Método de Newton Raphson 1 variable \n')
f=input('Ingrese la expresión de la función f entre apóstrofes, \n f=');
f=str2func(strcat('@(x) ',f));%conviertre el string en función handle
a=f(2)
der=diff(f)
der(2)
end
Mensaje de Matlab:
Error using diff
Function 'diff' is not supported for class 'function_handle'.
Error in prueba (line 6)
der=diff(f)
Ejemplo 2
1
2
3
4
5
6
7
8
9
10
function prueba
fprintf('Método de Newton Raphson 1 variable \n')
syms x
f=input('Ingrese la expresión de la función f entre apóstrofes, \n f=');
f=str2func(strcat('@(x) ',f));%conviertre el string en función handle
a=f(2)
der=diff(f,x)
der(2)
end
Método de Newton Raphson 1 variable
Ingrese la expresión de la función f entre apóstrofes,
f='x.^2-3'
a =
1
der =
2*x
Error using mupadmex
Error in MuPAD command: Index exceeds matrix dimensions.
Error in sym/subsref (line 687)
B = mupadmex('symobj::subsref',A.s,inds{:});
Error in prueba (line 12)
der(2)
>>
Gracias
Saludos Cordiales
Valora esta pregunta
0