Función a trozos con singularidades en los extremos
Publicado por jesmarva (6 intervenciones) el 16/07/2015 18:17:49
Hola,
No soy un gran experto en Matlab y me estoy encontrando con algún problema al definir y utilizar una 'función a trozos' que utiliza una función que tiene singularidades en los extremos.
Entre 0 y 1, y(x) = x.^(1/2)*(1-x).^(3/4).*SN(x) donde SN(x) = ellipj( log(x./(1-x)) , (1/2)^(1/2) ). Cuando la función SN(x) no está definida, y(x) debe valer 0. Nótese que en 0 y 1, SN(x) recibe el valor NaN, aunque funcJac(0) = funcJac(1) = 0.
Siguiendo algún consejo para definir una función a trozos que había visto en este foro, había escrito el siguiente programa:
function [y] = funcJac(x)
if x<=0
y = 0;
elseif x>=1
y = 0;
else
SN = @(x) ellipj( log(x./(1-x)) , (1/2)^(1/2) );
y = x.^(1/2)*(1-x).^(3/4).*SN(x);
end
Pero cuando llamo desde otra función a esta función recibo el siguiente error:
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Estoy tratando de aplicar una fft a algunos valores de otra función para la que utilizo esta funcJac(x). He tratado de factorizar los resultados de funcJac, pero supongo que no lo estoy haciendo bien.
Gracias
No soy un gran experto en Matlab y me estoy encontrando con algún problema al definir y utilizar una 'función a trozos' que utiliza una función que tiene singularidades en los extremos.
Entre 0 y 1, y(x) = x.^(1/2)*(1-x).^(3/4).*SN(x) donde SN(x) = ellipj( log(x./(1-x)) , (1/2)^(1/2) ). Cuando la función SN(x) no está definida, y(x) debe valer 0. Nótese que en 0 y 1, SN(x) recibe el valor NaN, aunque funcJac(0) = funcJac(1) = 0.
Siguiendo algún consejo para definir una función a trozos que había visto en este foro, había escrito el siguiente programa:
function [y] = funcJac(x)
if x<=0
y = 0;
elseif x>=1
y = 0;
else
SN = @(x) ellipj( log(x./(1-x)) , (1/2)^(1/2) );
y = x.^(1/2)*(1-x).^(3/4).*SN(x);
end
Pero cuando llamo desde otra función a esta función recibo el siguiente error:
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Estoy tratando de aplicar una fft a algunos valores de otra función para la que utilizo esta funcJac(x). He tratado de factorizar los resultados de funcJac, pero supongo que no lo estoy haciendo bien.
Gracias
Valora esta pregunta


0