Updating endogenous variables during fsolve iterations
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Marco Barbiero
am 9 Sep. 2015
Kommentiert: CHAITANYA JITENDRA SHAH
am 29 Dez. 2022
Is it possible to update solution-dependent parameters passed as constants in the objective function handle?
For a square system of nonlinear equations, where
- fun(x,a,b,c) is the objective function;
- x is the problem variable, which needs to be guessed by the solver;
- a = ƒ(x), is one of the objective function input variables, x-dependent;
The code for solving the problem, if a wasn't x-dependent, would be:
x = fsolve(@(x) fun(x,a,b,c),x0,options);
But this fixes the value for a at the moment of the creation of the anonymous function handle, while it should be computed inside fun to be updated in each solver iteration.
Is it possible to get a as an output from fun and pass it to fun itself in the next fsolve iteration?
0 Kommentare
Akzeptierte Antwort
John D'Errico
am 9 Sep. 2015
Even if you COULD do so, you would not want to do so!
You would then be using the prior value for x to determine a, so your function would be out of step. The current value of x and a would be inconsistent.
If a depends on x, then compute it inside the function, AS A FUNCTION OF x. Why try to pass it in?
4 Kommentare
Samuel Nabarrette
am 26 Okt. 2022
I know it’s been a while since you answered, but maybe you’ll see this.
So as long as the values dependent on the initial guess of fsolve are computed inside the function fed to fsolve, they will update properly as fsolve iterates?
CHAITANYA JITENDRA SHAH
am 29 Dez. 2022
@Samuel Nabarrette Did you find the answer to the question you have posted?
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Systems of Nonlinear Equations finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!