写mathematica代码画出二维映射的一次迭代相图
时间: 2023-09-03 22:09:32 浏览: 93
简单的二维画图命令Plot-符号计算系统Mathematica教程
假设我们有一个一次映射 $f(x,y)=(ax+by+c,dx+ey+f)$,其中 $a,b,c,d,e,f$ 为实数常数。我们可以写出如下的 Mathematica 代码来画出它的一次迭代相图:
```
a = 1.3; b = -0.5; c = -0.2;
d = 0.8; e = 0.3; f = 0.1;
pts = Flatten[Table[{i, j}, {i, -2, 2, 0.05}, {j, -2, 2, 0.05}], 1];
iter1 = Map[{a #[[1]] + b #[[2]] + c, d #[[1]] + e #[[2]] + f} &, pts];
ListPlot[Thread[{pts, iter1}], AspectRatio -> Automatic, PlotStyle -> PointSize[Tiny]]
```
在这段代码中,我们先定义了一次映射的系数 $a,b,c,d,e,f$。然后我们使用 `Flatten` 和 `Table` 生成了平面上的一些点,并将它们存储在变量 `pts` 中。接着,我们使用 `Map` 将这些点进行一次迭代,并将其存储在变量 `iter1` 中。最后,我们使用 `ListPlot` 将原始点和迭代后的点连接起来,从而得到一次迭代相图。
你可以根据需要修改代码中的一次映射系数,以及点的密度和绘图样式。
阅读全文