%这里是解释帐篷地图http://en.wikipedia.org/wiki/Tent_map
的链接 %hi am new to mat lab and i want know is the code is right for tent map
%the given equation is ![TENT MAP][1]
u = 1.99;
N = 100;
x(1)=0.5;
for ii=1:N
if x(ii) < 0.5 %and condition
x(ii+1)=u*x(ii); %is it right
else
if x(ii) >= 0.5 %and this condition
x(ii+1)=u*(1-x(ii)); %is it right
end
end
end
[1]: http://i.stack.imgur.com/Qz6wh.png
答案 0 :(得分:0)
虽然您的公式在技术上是正确的,但如果要绘制此函数,则无法获得预期的图形。原因是你沿着x轴以1为步长(在for循环中),并且你提供的链接中整个帐篷地图函数的宽度是1.因此,你的函数中只有前两个点是有用。您可以通过为x方向设置不同的步长来解决此问题:
u = 1.99;
N = 100;
x = linspace(0,1,N); % create a vector of x-positions
for ii=1:N
if x(ii) < 0.5
y(ii)=u*x(ii);
elseif x(ii) >= 0.5
y(ii)=u*(1-x(ii));
end
end
plot(x,y)
但是你可以使用这个更短的代码使它更简单:(这是维基百科文章开头提到的非递归公式):
N = 100;
x = linspace(0,1,N);
u = 2;
y = u*min(x,(1-x));
plot(x,y)