fzero function is returning initial value rather than finding zero.
3 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Star Strider
2019 年 6 月 4 日
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.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Calculus についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!