MATLAB Answers

Daniel
0

can't use KummerU function

Asked by Daniel
on 5 Jun 2013
Latest activity Edited by Stephen Cobeldick on 15 Jan 2016
Hi, When I try to use builtin kummerU function, it gives me "Undefined function 'kummerU' for input arguments of type 'double'." Needed package is installed, and I don't understand why can't the function use real number instead of complex with zero imaginary part.
Help!
Daniel

  0 Comments

Sign in to comment.

1 Answer

Friedrich
Answer by Friedrich
on 5 Jun 2013
Edited by Stephen Cobeldick on 15 Jan 2016
 Accepted Answer

Hi,
kummerU is a Symbolic Math Toolbox function, so you can't simply call:
>> kummerU(1/3, 2.0, -50)
Undefined function 'kummerU' for input arguments of type 'double'.
You have to call:
>> evalin(symengine,'kummerU(1/3, 2.0, -50)')
ans =
0.13511493810668281560142994786047 - 0.23402593766229884316074691432347*i
Or use feval:
>> feval(symengine,'kummerU',1/3, '2.0', -50)
ans =
0.13511493810668281560142994786047 - 0.23402593766229884316074691432347*i
I used '2.0' in order to get a floating-point value otherwise you would get:
>> feval(symengine,'kummerU',1/3, 2.0, -50)
ans =
kummerU(1/3, 2, -50)
This is explained here:

  4 Comments

Show 1 older comment
Friedrich
on 5 Jun 2013
hypergeom can be called directly (because its available as m file). No need to do it like above.
Daniel
on 7 Jul 2013
I try to use hypergeom directly, but it returns the following error:
Error using mupadmex
Internal error with symbolic engine. Please quit and restart MATLAB.
Error in sym/hypergeom (line 1084)
hSym = mupadmex('symobj::map', args{1}.s, 'symobj::hypergeom',...
Error in hypergeom (line 35)
h = double(hypergeom(n,d,sym(z)));
Error in momentum (line 7)
x=hypergeom(p+nu+1,nu+1,alpha/2);
Error in Putprice (line 47)
Def=1-exp(-integral(bfunc,0,T))*(x^2/tau)^(1/(2*abs(beta)))*momentum(-1/(2*abs(beta)),delta,x^2/tau);
Error in LSQDiff (line 12)
Diff(:,i)= mktprice(:,i)-Putprice(S,K,T(i),x(1),x(2));
Error in C:\Program Files\MATLAB\MATLAB Production
Server\R2012b\toolbox\shared\optimlib\finDiffEvalAndChkErr.p>finDiffEvalAndChkErr
(line 26)
Error in C:\Program Files\MATLAB\MATLAB Production
Server\R2012b\toolbox\shared\optimlib\finitedifferences.p>finitedifferences (line
128)
Error in sfdnls (line 89)
[J,~,~,numEvals] = finitedifferences(x,fun,[],lb,ub,valx,[],[], ...
Error in snls (line 177)
[A,findiffevals] = sfdnls(xcurr,fvec,Jstr,group,[],funfcn{3},l,u,...
Error in lsqncommon (line 175)
[xC,FVAL,LAMBDA,JACOB,EXITFLAG,OUTPUT,msgData]=...
Error in lsqnonlin (line 232)
[xCurrent,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...
Please help me solve this problem!
Friedrich
on 9 Jul 2013
Hi,
it seems like you compiled your MATLAB code into a generic CTF? Is this correct? If so, Symbolic Math TB functions can't be compiled.

Sign in to comment.