matlab 迭代问题
1)建立迭代模型函数文件
function [xk1,yk1]=iterative(xk,yk)
xk1=1+yk-1.4*xk^2;
yk1=0.3*xk;
end
2)利用循环语句,求xk,yk值
当x0=0.1,y0=0.2,k=100时的xk,yk值
k=0;xk=0.1;yk=0.2
k=1;xk=1.186;yk=0.03
k=2;xk=-0.93923;yk=0.3558
k=3;xk=0.12077;yk=-0.28177
k=4;xk=0.69781;yk=0.036232
k=5;xk=0.35452;yk=0.20934
........
k=97;xk=0.45573;yk=0.1404
k=98;xk=0.84964;yk=0.13672
k=99;xk=0.12608;yk=0.25489
k=100;xk=1.2326;yk=0.037823
3)在2)基础求得
用scatter(xk,yk,'*')绘出,当x0=0,y0=0,k=30000时的xk与yk关系图形
2016-06-25
这个问题的背景是关于混沌现象的一个称为Hénon映射的离散时间动态系统模型
其中经典Hénon映射取a = 1.4,b = 0.3,也就是题目中给的数据。
(1)按照要求,编写函数:
function [x, y] = henon(x0, y0, N)
x = [0; zeros(N,1)*NaN];
y = x;
for i = 1 : N
x(i+1) = 1 + y(i) - 1.4*x(i)^2;
y(i+1) = 0.3 * x(i);
end
输入参数分别为初值x0、y0以及迭代次数,输出为迭代结果。
(2)调用函数
x0 = 0.1; y0 = 0.2;
[x, y] = henon(x0, y0, 100);
disp([x(end) y(end)])
结果为 xk = -1.2493, yk = 0.3805。
(3)调用函数
x0 = 0; y0 = 0;
[x, y] = henon(x0, y0, 30000);
plot(x, y, '.')
xlabel x, ylabel y