用枫树

时间:2016-09-19 18:44:28

标签: arrays plot graph maple

我正在尝试在单个坐标系中绘制4个数据集。我可以自己绘制每一个。但是,当我尝试用相同的绘图函数绘制2个或更多时,我得到一个错误。我不能使用列表,因为我想将数组扩展到2 * 10000,而列表则不能。我正在使用Maple 18。 有人可以帮我解决这个问题吗?

这是我的代码:

enter image description here

这是一个绘制的数据集: enter image description here

这是我在尝试绘制多个集合时遇到的错误(注意我已经尝试使用{}而不是[]): enter image description here

1 个答案:

答案 0 :(得分:2)

您的问题是,使用pairzip不会产生布局对绘图有效的数组P[i]。 (也许你从那些旨在产生列表而不是数组的东西中榨取了一些代码。)

相反,您可以将P[i]构建为iterator-by-2矩阵(即2列矩阵)。

一种方式:

restart;

mu := 2.5:
iterator := 25:

fcn := proc(a)
  local F,i;
  F := Array(1..iterator);
  F[1] := a;
  for i from 2 by 1 to iterator do
    F[i] := mu*F[i-1]*(1-F[i-1]);
  end do;
  F;
end proc:

f[1]:=fcn(0.01):
f[2]:=fcn(0.1):
f[3]:=fcn(0.3):
f[4]:=fcn(0.5):

x := Array([seq(i,i=1..iterator)]):

for i from 1 to 4 do
  P[i] := <x,f[i]>^%T:
end do:

plot([P[1],P[2],P[3],P[4]]);

另一种(类似)方式:

restart;

mu := 2.5:
iterator := 25:

fcn := proc(a)
  local F,i;
  F := Vector(1..iterator);
  F[1] := a;
  for i from 2 by 1 to iterator do
    F[i] := mu*F[i-1]*(1-F[i-1]);
  end do;
  F;
end proc:

f[1]:=fcn(0.01):
f[2]:=fcn(0.1):
f[3]:=fcn(0.3):
f[4]:=fcn(0.5):

x := Vector([seq(i,i=1..iterator)]):

for i from 1 to 4 do
  P[i] := <x|f[i]>:
end do:

plot([P[1],P[2],P[3],P[4]]);

您也可以直接在plots:-listplot上使用f[i]命令,但您可能还可以为每种颜色指定不同的颜色,以便在使用{{1}时看起来不错将它们全部渲染出来。

我不考虑表现。有办法完成所有这些并获得更快的计算。我故意保留你的基本方法。