implementation of iterative function

How can we implement the iterative function F(x)= [((1-2*q)*(x-q))/(p-q)]+q we have to iterate it for some values of i and generate the values of xi where xi=F(xi-1). initially let.

 Accepted Answer

n=...;
p=...;
q=...;
x0=...;
f=@(x)(1-2*q)*(x-q)/(p-q)+q;
for ii=1:n
xnew=f(xold);
xold=xnew;
end
Best wishes
Torsten.

8 Comments

here xold=x0??? and we have to store all the values of xnew into a vector.
with the help of this getting inf value of x in each iteration.
ok, replace
x0=...;
by
xold=...;
And don't use p=q -:)
Best wishes
Torsten.
not using p=q still getting inf values. Im=imread(); [n m]=size(A); L=m*n; AVector = A(:); P=A; x0=0.27;p=0.4;q=0.1; xold=x0; f=@(x)(1-2*q)*(x-q)/(p-q)+q; for i=1:n; xnew=f(xold); xold=xnew; end for j = 1:numel(P) i = P(j); output(j) =xold end
Stephen23
Stephen23 on 19 Mar 2015
Edited: Stephen23 on 19 Mar 2015
@shivani: please learn to format your code correctly to make it readable: use the {} Code button that is above the textbox. The Preview pane is pretty handy too!
not taking p=q still getting inf values.
Im=imread();
[n m]=size(A);
L=m*n;
AVector = A(:);
P=A;
x0=0.27;p=0.4;q=0.1;
xold=x0;
f=@(x)(1-2*q)*(x-q)/(p-q)+q;
for i=1:n;
xnew=f(xold);
xold=xnew;
end
for xi = 1:numel(P);
i = P(xi);
output(xi) =xold;
end
Im=imread();
[n m]=size(A);
L=m*n;
x0=0.27;
p=0.4;
q=0.1;
xold=x0;
output=zeros(L);
output(1)=xold;
f=@(x)(1-2*q)*(x-q)/(p-q)+q;
for ii=1:L-1
xnew=f(xold);
xold=xnew;
output(ii+1)=xold;
end
Note that xold becomes bigger and bigger during the Iteration such that you may get xold=Infinity if L is large enough.
Best wishes
Torsten.
ok thanx..:)

Sign in to comment.

More Answers (0)

Asked:

on 19 Mar 2015

Commented:

on 19 Mar 2015

Community Treasure Hunt

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

Start Hunting!