fsolve within fsolve -> update initial guess
古いコメントを表示
Hello,
I am using fsolve within fsolve. That is, for each iteration of the outer fsolve loop, matlab solves the inner fsolve problem.
Is there a possibility to use the previous guess for the inner fsolve problem. I tried the following
function F = solvep(p,x0,par)
% some calculations
x = fsolve(@(x) solvex(x,par2),x0);
x0 = x;
% some more calculations
F = p*x - 1;
end
But for some reason, matlab does not update x0. That is, x0 is always set to x0 as given in the first line. I hope to speed up the procedure a bit by using the previous guess because most of the time, the changes in p that matlab considers are quite minor.
Thanks!
1 件のコメント
Matt J
2022 年 5 月 15 日
In your code, the sub-problem and its solution x does not appear to depend on p. Therefore, you should probably just pre-compute it.
採用された回答
その他の回答 (1 件)
Walter Roberson
2022 年 5 月 15 日
0 投票
Have solvep() return x0 as well, and update the appropriate variable in the calling function.
Or you could back-calculate what x would have to be in order to produce the given F.
Both possibilities imply using a real function for the outer layer instead of an anonymous function. Values bound into an anonymous function cannot be changed by using techniques such as assignin()
カテゴリ
ヘルプ センター および File Exchange で Nonlinear Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!