Definición de una función matemática en Matlab
Publicado por Aitor (49 intervenciones) el 06/04/2017 15:39:28
Hola a todos,
Estoy teniendo algunas dudas sobre cómo definir un problema matemático en Matlab, que podréis encontrar en la imagen que os adjunto:

Por ejemplo, he tenido problemas a la hora de implementar las funciones auxiliares J y Phi. He definido dos variables auxiliares u y f mediante 'syms', sin embargo, esto da problemas con la función definida a trozos (no creo que sea prudente definir un array de valores para la variable independiente u sin saber de antemano cuáles podría tomar), ya que u no es en este caso un valor numérico. Es decir:
Me da como fallo:
A su vez, tratando de implementar la función J:
El fallo es:
Sobre los parámetros que es necesario incluir en la función:
- El superíndice (l) hace alusión al número de la iteración que corresponda (se puede elegir al azar).
- El subíndice i hace alusión al elemento i de los vectores x e y, que tienen la misma longitud (supongamos que se puede elegir al azar).
- dc, dv y gamma son números naturales
- sigma_n es un número real
¿Alguien puede darme algún consejo, aunque sea alguna pista para saber cómo avanzar al menos con las funciones definidas a trozos?
¡Muchas gracias de antemano y como siempre respondo dudas en caso de que las tengáis!
Estoy teniendo algunas dudas sobre cómo definir un problema matemático en Matlab, que podréis encontrar en la imagen que os adjunto:

Por ejemplo, he tenido problemas a la hora de implementar las funciones auxiliares J y Phi. He definido dos variables auxiliares u y f mediante 'syms', sin embargo, esto da problemas con la función definida a trozos (no creo que sea prudente definir un array de valores para la variable independiente u sin saber de antemano cuáles podría tomar), ya que u no es en este caso un valor numérico. Es decir:
1
2
3
4
5
6
% Phi function
if u > 0
phi = 1 - 1/sqrt(4*pi*u)*int(exp(-((f-u)^2)/(4*u)) * log(1 + exp(-f),2),f);
else
phi = 1;
end
Me da como fallo:
1
2
3
4
Conversion to logical from sym is not possible.
Error in Simulation (line 88)
if u > 0
A su vez, tratando de implementar la función J:
1
J = 1 - 1/sqrt(4*pi*u)*int(exp(-((f-u)^2)/(4*u)) * log(1 + exp(-f),2),f);
El fallo es:
1
2
3
4
5
Error using sym/log
Too many input arguments.
Error in Simulation (line 85)
J = 1 - 1/sqrt(4*pi*u)*int(exp(-((f-u)^2)/(4*u)) * log(1 + exp(-f),2),f);
Sobre los parámetros que es necesario incluir en la función:
- El superíndice (l) hace alusión al número de la iteración que corresponda (se puede elegir al azar).
- El subíndice i hace alusión al elemento i de los vectores x e y, que tienen la misma longitud (supongamos que se puede elegir al azar).
- dc, dv y gamma son números naturales
- sigma_n es un número real
¿Alguien puede darme algún consejo, aunque sea alguna pista para saber cómo avanzar al menos con las funciones definidas a trozos?
¡Muchas gracias de antemano y como siempre respondo dudas en caso de que las tengáis!
Valora esta pregunta


0