wxMaxima 中 Mathematica 的 ListLinePlot
Mathematica's ListLinePlot in wxMaxima
我有以下功能:
P[t_] := P[t] = P[t-1] +a*ED[t-1];
ED[t_] := ED[t] = DF[t] + DC[t];
DF[t_] := DF[t] = b (F - P[t]);
DC[t_] := DC[t] = c (P[t] - F);
以及以下参数:
a=1;
c=0.2;
b = 0.75;
F=100;
在 Mathematica 中,我使用函数“ListLinePlot”来绘制 P[t] 和 F:
ListLinePlot[{Table[P[t], {t, 0, 25}], Table[F, {t, 0, 25}]}, PlotStyle → {Black, Red},Frame → True, FrameLabel → {"time", "price"}, AspectRatio → 0.4, PlotRange → All]
我如何在 wxMaxima 中做到这一点?是否有与 ListLinePlot 类似的功能或替代方法?
这是我在wxMaxima中的尝试:
P[t] := P[t-1] + a * ED[t-1];
ED[t] := DF[t] + DC[t];
DF[t] := b*[F-P[t]];
DC[t] := c*[P[t]-F];
a=1;
c=0.2;
b=0.75;
F=100;
然后我尝试了:
draw2d(points(P[t], [t,0,25]))
绘制的函数应如下所示:
好的,我已经修改了您上面显示的代码。这对我有用。我在 macOS 上使用 Maxima 5.44。
P[t] := P[t-1] + a * ED[t-1];
ED[t] := DF[t] + DC[t];
DF[t] := b*(F-P[t]);
DC[t] := c*(P[t]-F);
a:1;
c:0.2;
b:0.75;
F:100;
P[0]: F + 1;
Pt_list: makelist (P[t], t, 0, 25);
load (draw);
set_draw_defaults (terminal = qt);
draw2d (points_joined = true, points(Pt_list));
注释。 (1) P
上的递归需要有一个基本情况。我放了P[0]: F + 1
。 (2) 赋值是 :
而不是 =
。请注意 x = y
是一个符号方程而不是赋值。 (3) 方括号[ ]
仅用于下标和列表。使用括号 ( )
对表达式进行分组。 (4) draw2d
的语法有点不同,我修正了它。 (我为 terminal
设置了默认值,因为 macOS 上的 Maxima 的内置值不正确;如果您正在使用 Linux 或 Windows,则可以忽略它。)
编辑:试试这个也画一条水平线。
draw2d (points_joined = true, points(Pt_list),
color = red, points([[0, F], [25, F]]),
yrange = [F - 1, P[0] + 1]);
我有以下功能:
P[t_] := P[t] = P[t-1] +a*ED[t-1];
ED[t_] := ED[t] = DF[t] + DC[t];
DF[t_] := DF[t] = b (F - P[t]);
DC[t_] := DC[t] = c (P[t] - F);
以及以下参数:
a=1;
c=0.2;
b = 0.75;
F=100;
在 Mathematica 中,我使用函数“ListLinePlot”来绘制 P[t] 和 F:
ListLinePlot[{Table[P[t], {t, 0, 25}], Table[F, {t, 0, 25}]}, PlotStyle → {Black, Red},Frame → True, FrameLabel → {"time", "price"}, AspectRatio → 0.4, PlotRange → All]
我如何在 wxMaxima 中做到这一点?是否有与 ListLinePlot 类似的功能或替代方法?
这是我在wxMaxima中的尝试:
P[t] := P[t-1] + a * ED[t-1];
ED[t] := DF[t] + DC[t];
DF[t] := b*[F-P[t]];
DC[t] := c*[P[t]-F];
a=1;
c=0.2;
b=0.75;
F=100;
然后我尝试了:
draw2d(points(P[t], [t,0,25]))
绘制的函数应如下所示:
好的,我已经修改了您上面显示的代码。这对我有用。我在 macOS 上使用 Maxima 5.44。
P[t] := P[t-1] + a * ED[t-1];
ED[t] := DF[t] + DC[t];
DF[t] := b*(F-P[t]);
DC[t] := c*(P[t]-F);
a:1;
c:0.2;
b:0.75;
F:100;
P[0]: F + 1;
Pt_list: makelist (P[t], t, 0, 25);
load (draw);
set_draw_defaults (terminal = qt);
draw2d (points_joined = true, points(Pt_list));
注释。 (1) P
上的递归需要有一个基本情况。我放了P[0]: F + 1
。 (2) 赋值是 :
而不是 =
。请注意 x = y
是一个符号方程而不是赋值。 (3) 方括号[ ]
仅用于下标和列表。使用括号 ( )
对表达式进行分组。 (4) draw2d
的语法有点不同,我修正了它。 (我为 terminal
设置了默认值,因为 macOS 上的 Maxima 的内置值不正确;如果您正在使用 Linux 或 Windows,则可以忽略它。)
编辑:试试这个也画一条水平线。
draw2d (points_joined = true, points(Pt_list),
color = red, points([[0, F], [25, F]]),
yrange = [F - 1, P[0] + 1]);