Matlab - Cómo sumar funciones y evaluar la suma en un punto usando inline

   
Vista:

Cómo sumar funciones y evaluar la suma en un punto usando inline

Publicado por Ale (8 intervenciones) el 02/11/2012 13:07:44
Hola mi problema es el siguiente:
Ingresar por teclado la función p(t) y la función q(t) a mi programa, para así obtener una función f, donde f(t,y,z)=p(t)*z+q(t)*y, pero el resultado que quiero tener es la función f evaluada en el punto (1,2,3)

El detalle (problema) es que no consigo ensamblar las funciones p y q que ingreso al programa para crear la función f(t,y,z) y así obtener mi resultado f(1,2,3).
Osea lo que quiero es mediante una combinación lineal de dos funciones de una variable crear otra función de tres variables y evaluar ésta en el punto (1,2,3).

Esto es lo que he estado haciendo :( Muchísimas gracias por su atención (:

function ensamble

%Por ejemplo para p(t)=(2*t)/(1+t^2) ; t!=0
%Y para q(t)=-2/(1+t^2)

f1=input('Ingrese la función p(t) que no se anule en ningún punto t : p(t)=','s');
p=inline(f1);

fprintf('\n');

f2=input('Ingrese la función q(t) que no se anule en ningún punto t : q(t)=','s');
q=inline(f2);

syms('z','y');
f=p*z+q*y;

if exist('t')==1 %Esto lo puse porque bueno para asegurar, creo

f=inline('p*z+q*y','t','y','z');

end

f(1,2,3)

También hice este otro intento pero nada:

function ensamble

%Por ejemplo para p(t)=(2*t)/(1+t^2) ; t!=0
%Y para q(t)=-2/(1+t^2)

f1=input('Ingrese la función p(t) que no se anule en ningún punto t : p(t)=','s');
p=inline(f1);

fprintf('\n');

f2=input('Ingrese la función q(t) que no se anule en ningún punto t : q(t)=','s');
q=inline(f2);

if exist('t')==1

f=inline('p*z+q*y','t','y','z');

end

f(1,2,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

Cómo sumar funciones y evaluar la suma en un punto usando inline

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 02/11/2012 20:50:15
1
2
3
4
5
6
7
8
9
>> syms t z y
>> p=(2*t)/(1+t^2);
>> q=-2/(1+t^2);
>> f1=p*z+q*y,
>> f1=p*z+q*y;
>> f=inline(f1);
>> f(1,2,3)
ans =
     1



Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacionMatlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.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

Cómo sumar funciones y evaluar la suma en un punto usando inline

Publicado por Ale (8 intervenciones) el 03/11/2012 00:17:50
He hecho una modifición guiándome de la ayuda que me dio, pero no llego a nada. Me equivoco claro al declararlo en el editor. Cuando lo ejecuto me sale que:
??? Undefined function or
variable "f".

Error in ==> ensamble at 22
f(1,2,3)

O sino me sale:

?? Undefined function or
method 'mtimes' for input
arguments of type 'inline'.

Error in ==> ensamble at 16
w=p*z+q*y;

Soy una desgracia declarando en el editor :(((

function ensamble

%Por ejemplo para p(t)=(2*t)/(1+t^2) ; t!=0
%Y para q(t)=-2/(1+t^2)

f1=input('Ingrese la función p(t) que no se anule en ningún punto t : p(t)=','s');
p=inline(f1);

fprintf('\n');

f2=input('Ingrese la función q(t) que no se anule en ningún punto t : q(t)=','s');
q=inline(f2);

if exist('t')==1

syms('y','z');
w=p*z+q*y;
f=inline(w);

end

fprintf('\n Resultado evaluando f(t,y,z)=p(t)*z+q(t)*y en (1,2,3) es: %9.16f\n', f(1,2,3));

Necesito ayuda otra vez :( Sorry
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

Cómo sumar funciones y evaluar la suma en un punto usando inline

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 03/11/2012 14:55:04
Sugerencia: Estudiar matlab basico y matlab intermedio(evaluacion de funciones), el syllabus de ambos niveles lo puedes encontrar en mi blog personal. Y busca los temas en la red, siguiendo ese secuencia del syllabus de ambos niveles y asi aprenderas.

Tu pregunta es el 2da clase de matlab intermedio, pero intuyo que no haz llevado cursos de matlab, y eso ocasiona la dificultad en el momento de hacer codigos.

1
2
3
4
5
6
7
8
9
10
11
12
>> syms t z y
>> p=input('ingrese p(t)=');
ingrese p(t)=(2*t)/(1+t^2)
>> q=input('ingrese q(t)=');
ingrese q(t)=-2/(1+t^2)
>> f1=p*z+q*y;
>> f=inline(f1);
>> f(1,2,3)
 
ans =
 
          1.00



Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacionMatlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.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

Cómo sumar funciones y evaluar la suma en un punto usando inline

Publicado por Ale (8 intervenciones) el 03/11/2012 17:47:57
Gracias, disculpe las molestias.
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