what is wrong when using fzero
26 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
hi!
i would like to compute this:
function z=theta(m)
digits 250;
s=sym('s');
p=0;
q=0;
for i=0:m
p=p+(factorial(2*m-i)*factorial(m)*s^i)/factorial(2*m)*factorial(m-
i)*factorial(i);
q=q+(factorial(2*m-i)*factorial(m)*(-s)^i)/factorial(2*m)*factorial(m-
i)*factorial(i);
end;
r=p/q;
s=taylor(exp(-s)*r-1, s, 150); %taylor expansion
coeff=vpa(sym2poly(sym(s)),250); % c_i
x=sym('x');
sum1=0;
l=1;
for j=(2*m+1):(150+2*m)
sum1=sum1+abs(coeff(l))*x^j;
l=l+1;
end;
bound=vpa((-log(1-sum1))/x,250);
n=fzero(bound,3);
just the last part is important. i think there is something wrong with my use of fzero.. when i want to calculate this, i get this error:
>> theta(2)
??? Error using ==> fzero at 181
If FUN is a MATLAB object, it must have an feval method.
Error in ==> theta at 27
n=fzero(bound,3);
0 comentarios
Respuestas (2)
Walter Roberson
el 27 de Feb. de 2013
You cannot use fzero() on symbolic objects.
If you are going to use symbolic objects, use solve(), or use
feval(symengine, 'numeric::solve', bound, 3)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!