Matlab - Resta de funciones definidas inline??

   
Vista:

Resta de funciones definidas inline??

Publicado por Daniel (4 intervenciones) el 16/01/2014 17:40:59
Hola a todos.
Me gustaría saber cómo puedo programar una función en Matlab (llamada diferencia.m) que realice una resta entre 2 funciones definidas inline como argumentos de entrada. Por ejemplo, que si hiciesemos:

>>f=inline('x^2'); g=inline('x+1');
>>h=diferencia(f,g) ---> nos debería devolver otra función h tal que h(x)=x^2-x-1 luego podríamos evaluarla en el punto que quisieramos.

A priori parece algo sencillo pero he intentado por varias formas y no doy con nada bueno. Por ejemplo probé haciendo:

function df=resta(fun1,fun2,x)
%
%Evalúa la diferencia entre dos funciones arbitrarias 'fun1' y 'fun2' en el
%punto x
fun1=inline(fun1,'x'); fun2=inline(fun2,'x'); %definir funciones inline
dif=inline(fun1-fun2,'x');
df=feval(dif,x);

Pero da error en la linea en que defino la variable dif.
Algún consejo?
Muchas 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

Resta de funciones definidas inline??

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 16/01/2014 22:26:28
1
2
3
4
5
6
7
8
9
10
11
12
13
function df=resta_funciones1(fun1,fun2,x0)
if nargin<1
    syms x
    fun1=x^2
    fun2=x+1
    x0=5
end
 %
 %Evalúa la diferencia entre dos funciones arbitrarias 'fun1' y 'fun2' en el
 %punto x
 rf=fun1-fun2
 f=inline(rf,'x');  %definir funciones inline
 df=feval(f,x0);



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
26
27
28
29
30
31
32
33
34
35
36
>> df=resta_funciones1
 
fun1 =
 
x^2
 
 
fun2 =
 
x + 1
 
 
x0 =
 
     5
 
 
rf =
 
x^2 - x - 1
 
 
df =
 
    19
 
>> syms x; df=resta_funciones1(x^2,x+1,5)
 
rf =
 
x^2 - x - 1
 
 
df =
 
    19

Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com


http://matlabcaballero.blogspot.com


http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

Resta de funciones definidas inline??

Publicado por Daniel (4 intervenciones) el 16/01/2014 22:34:30
Gracias por responder!!! Pero el caso es que en el curso aun no hemos llegado al cálculo simbólico así que se supone que debería realizar el programa sin emplear "syms". El enunciado del problema es:

Programa una función df=resta(fun1, fun2, x) que evalúe la diferencia entre dos funciones arbitrarias fun1 y fun2 en el punto x. Usa tu función para dibujar la diferencia entre las funciones y1=x2, y2=sin(x) en el intervalo [0, 2].

Yo lo he intentado definiendo funciones inline pero al operar entre ellas me da error :S
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Resta de funciones definidas inline??

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 16/01/2014 22:51:52
1
2
3
4
5
6
7
8
9
function df=resta_funciones1(fun1,fun2,x0)
if nargin<1
    fun1='x^2';
    fun2='x+1';
    x0=5;
end
 rf1=inline(fun1);
 rf2=inline(fun2)
 df=rf1(x0)-rf2(x0);


1
2
3
4
5
6
>> df=resta_funciones1
 
df =
 
    19


1
2
3
4
5
>> df=resta_funciones1('x^2','x+1',5)
 
df =
 
    19
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

Resta de funciones definidas inline??

Publicado por Daniel (4 intervenciones) el 16/01/2014 23:09:39
Muchas gracias por su ayuda!!

Lastima que yo aun con mis conocimientos no pueda ayudar a otros demasiado en esto, pero es de agradecer que haya gente tan generosa que se preste a ello ;)

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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Resta de funciones definidas inline??

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3440 intervenciones) el 16/01/2014 23:13:30
Derrepente puedas ayudar en otros foros, como por ejemplo en Yahoo respuestas, donde las preguntas de matemática son básicas en cierta manera,, no necesariamente tiene que ser en matlab. Solo se necesita tu disposición de querer ayudar y compartir lo que sabes con los demás.
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

Resta de funciones definidas inline??

Publicado por Daniel (4 intervenciones) el 16/01/2014 23:27:48
Si, de hecho en yahoo respuestas suelo aportar ayuda a menudo ;)
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