Path: news.mathworks.com!newsfeed-00.mathworks.com!newsfeed2.dallas1.level3.net!news.level3.com!postnews.google.com!s9g2000yqm.googlegroups.com!not-for-mail From: <HIDDEN> Newsgroups: comp.soft-sys.matlab Subject: Re: Convergence of iterative procedure Date: Thu, 28 Apr 2011 03:08:55 -0700 (PDT) Organization: http://groups.google.com Lines: 51 Message-ID: <d01e02ec-e1d4-4059-948f-789ab4bca203@s9g2000yqm.googlegroups.com> References: <ipb71k$o99$1@fred.mathworks.com> NNTP-Posting-Host: 192.102.151.35 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1303985335 25544 127.0.0.1 (28 Apr 2011 10:08:55 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 28 Apr 2011 10:08:55 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: s9g2000yqm.googlegroups.com; posting-host=192.102.151.35; posting-account=X3eThQoAAACh5vOSip_rNRzKAq7k0jPW User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E),gzip(gfe) Xref: news.mathworks.com comp.soft-sys.matlab:724248 On 28 Apr., 10:04, "George Papazafeiropoulos" <gpapazafeiropou...@yahoo.gr> wrote: > Hello to everyone, > > I am dealing with an iterative procedure in which an initial estimate of a vector {c}0 is given, and at the end of the process an updated vector {c} is calculated. This is used as the initial estimate for the next loop and a more updated {c} is obtained, and this goes on until the difference of the updated {c} from the penult {c} is lower than a specified number, in which case the iterative procedure stops. > > However, in certain cases the above procedure does not converge; the estimates of {c} seem to "oscillate" around a value, and this oscillation does not always happen every two estimates, but I have observed that it could happen also every 3-6 estimates. Furthermore, the elements of {c} take extreme values in some cases, and in the next iteration they come back to acceptable values. What could I do to force these oscillations to stop and avoid the appearance of extreme values? > > I write here an indicative example of the m. file which I run: > > c=ones(2,1); > for i=1:Nt > uL=2*sum(c); > K=[uL^2,sqrt(uL);uL, 1/uL]; > D=[sin(uL);cos(uL)]; > d=c-K\D; > if d<ones(2,1)*0.0001 > break > end > c=K\D; > end > c > > I would appreciate any of your help. If anyone knows something about such procedures he is kindly requested to give me some hints or suggest some links for further information. > Thank you very much in advance. What makes you believe that a general iteration of the form K(x_i)*x_(i+1)=D(x_i) should always converge ? It's simply not the case. Use MATLAB's fsolve to solve the system of equations K(x)*x - D(x) = 0 Best wishes Torsten.