fsolve returns non-integer exitflag

6 ビュー (過去 30 日間)
Corrado
Corrado 2014 年 3 月 7 日
コメント済み: Corrado 2014 年 3 月 7 日
Hi everyone,
I am experiencing a strange problem. For as far as I know an exitflag should always be an integer (identifying the reason the algorithm terminated). However when solving my problem with fsolve, the exitflag turns out to be a non-integer: 1.329410886565489.
fsolve did not find a solution, but that is perfectly possible. The exitflag being a non-integer value on the other hand seems really strange to me.
What could be the problem?
Kind regards, Corrado Sirianni
  5 件のコメント
Matt J
Matt J 2014 年 3 月 7 日
編集済み: Matt J 2014 年 3 月 7 日
Can you at least show your call to FSOLVE, and maybe a bit of the surrounding code like the set-up of the initial x0 and the selection of options using OPTIMSET or OPTIMOPTIONS?
Corrado
Corrado 2014 年 3 月 7 日
for iso_GAMMA = 2
dlmwrite('Prho_coordinates_iso_gamma.dat',[iso_GAMMA iso_GAMMA],'delimiter',' ','newline','pc','-append')
for teta = -1:0.01:1
[r,exitflag] = fsolve(@fun_iso_gamma,0.01)
if r > 0.0585
continue
end
if r < 0
continue
end
. . . . . . etc. etc.

サインインしてコメントする。

採用された回答

Alan Weiss
Alan Weiss 2014 年 3 月 7 日
I guess that you are interpreting the output of fsolve incorrectly. As stated in the function reference page, the outputs of fsolve are, in this order:
[x,fval,exitflag,output,jacobian] = fsolve(...)
exitflag is always the third output. I would bet that the third output that you obtain from solve is an integer, whatever name you give it.
Alan Weiss
MATLAB mathematical toolbox documentation
  1 件のコメント
Corrado
Corrado 2014 年 3 月 7 日
You are totally right! I forgot the order is also of importance! Thank you very much Alan!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSolver Outputs and Iterative Display についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by