Solving an algebraic loop / iterative loop in MATLAB

3 views (last 30 days)
Hello everyone!
I have the following problem: I have an iteration loop, that has to converge to a certain value of a vector x, where during the loop the iteration is calulated directly from with a nonlinear function f. At some point is fulfilled (the "distance" between both vectors is smaller than a predefined tolerance value) and the iterations can stop.
I found, that in Simulink this would be called an "algebraic loop" and that simulink can solve this (i also made use of that in the past). The thing now is, that i have this in a matlab code. For now, this is solved with a self-made variable gain controller and a feedback loop.
I was wondering, if there is some way to solve this with matlab onboard tools. In most cases i think that onboard tools are more reliable and faster than self-coded stuff is. I am looking for something like
x = iterate(@f,x0,opts);
that does this.
Any ideas?
Thanks a lot and best wishes so far
Thomas
  3 Comments
Thomas Ewald
Thomas Ewald on 23 Jun 2020
Edited: Thomas Ewald on 23 Jun 2020
Hello,
and thanks for the answer. The problem, as I see it, is that the vector x in the common optimization or search algorithms is varied by the algorithm itself. In my case, I want to vary the vector on my own, with the function I have. So I have basically two outputs ( and ) at the same time. Common algorithms in matlab only take one objective and work on x for themselves.
But the problem of iterating until something converged is not very uncommon, so I think there must be some sort of algorithm in MATLAB to deal with that problem.
Does anybody know how to solve this?
Best
Thomas
Thomas Ewald
Thomas Ewald on 23 Jun 2020
Hello,
I think I found a possible solution. By using the fminunc function, setting SpecifyObjectiveGradient to true and supplying a user defined function to calculate the gradient, I could solve problem.
Maybe this works and is better than the self-made solution.
Thanks a lot and best wishes
Thomas

Sign in to comment.

Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!