Hello,
I wanted to ask what does fsolve do after no solution has been found and it stops interating? Is the output the last iteration or does it output the initial conditions?
Also, is there a way when no solution has been found to tell it to output nothing, or for example an array of zeros?
Kind regards.

 Akzeptierte Antwort

Matt J
Matt J am 18 Jul. 2023
Bearbeitet: Matt J am 18 Jul. 2023

0 Stimmen

Is the output the last iteration or does it output the initial conditions?
It is the last iteration, as you can easily test, .e.g.,
fsolve( @(x) x^2+1,10 )
No solution found. fsolve stopped because the problem appears regular as measured by the gradient, but the vector of function values is not near zero as measured by the value of the function tolerance.
ans = 5.5834e-09
Essentially, if no solution exists, fsolve can be thought of as a least squares solver.
Also, is there a way when no solution has been found to tell it to output nothing
No, but there is no reason why your code can't do its own post-assessment of the result after fsolve completes.

Weitere Antworten (1)

Chunru
Chunru am 18 Jul. 2023

1 Stimme

doc fsolve for more details.
[x, fval, exitflag, output] = fsolve() % check out exitflag and output

Produkte

Version

R2022b

Gefragt:

am 18 Jul. 2023

Kommentiert:

am 18 Jul. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by