fzero function is returning initial value rather than finding zero.
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
J_stat
el 4 de Jun. de 2019
Comentada: Star Strider
el 4 de Jun. de 2019
I wrote following code but it is not returning zero. fzero returns initial values. Is there anything I did wrong?
alp=0.05; x=3; n=25;
syms k a;
ftest=@(a) 1-alp/2-.5*nchoosek(n,x)*a^x*(1-a)^(n-x) - symsum(nchoosek(n,k)*a^k*(1-a)^(n-k+1), k, 0, x-1);
fzero(ftest,0.02)
ans =
0.0200
0 comentarios
Respuesta aceptada
Star Strider
el 4 de Jun. de 2019
It seems that fzero is having problems with the symbolic part of your function. If you first create it as a separate anonymnous function (using the matlabFunction function):
alp=0.05; x=3; n=25;
syms k a;
nck = matlabFunction(symsum(nchoosek(n,k)*a^k*(1-a)^(n-k+1), k, 0, x-1));
ftest=@(a) 1-alp/2-.5*nchoosek(n,x)*a^x*(1-a)^(n-x) - nck(a);
ZV = fzero(ftest,0.5)
the result is:
ZV =
0.018920195502436
Note that the initial estimate and the result are different, so it is not returning the initial estimate as the optimised result.
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Calculus en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!