How is f(x) evaluated for each iteration using fsolve?

8 ビュー (過去 30 日間)
TS
TS 2019 年 1 月 14 日
コメント済み: Torsten 2019 年 1 月 15 日
I'm using fsolve for an unconstrained non-linear function. And I notice that fval is much different than f(x) for the last iteration. How exactly is f(x) calculated?
  13 件のコメント
TS
TS 2019 年 1 月 14 日
So it's the squared error? I got confused because it says f(x) even though it's the sum of squared function values.
Thanks so much!
Stephen23
Stephen23 2019 年 1 月 14 日
編集済み: Stephen23 2019 年 1 月 14 日
"I got confused because it says f(x) even though it's the sum of squared function values."
I agree that the inconsistent labeling is confusing at best, and at worst incorrect. You should make a bug report (and include a link to this thread).

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

採用された回答

Martijn
Martijn 2019 年 1 月 15 日
The values shown under f(x) in the iteration table are indeed not literally the function values at that given iteration, you are seeing the square of the norm of the function value vector here; as documented, see:
The reason for this is that "fsolve" can actually solve whole systems of equations where f(x) would then be a whole vector of values. Displaying this whole vector in the table is not really feasible, there is not enough space for that. Hence, instead, a measure is shown which basically summarizes the whole f(x) vector in a single measure which also actually is representative for how good the current solution is.
We could look into whether we can perhaps change the header to ||f(x)||^2 in future releases to better illustrate this.
  1 件のコメント
Torsten
Torsten 2019 年 1 月 15 日
Or use norm(f) instead of norm(f)^2.

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

その他の回答 (1 件)

RANJEET YADAV
RANJEET YADAV 2019 年 1 月 14 日
f(x)=fsolve(@(x) funname(x),x=1);

カテゴリ

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