Mathematica 在 wxMaxima 中的 ListLinePlot

问题描述

我有以下功能

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,25}],Table[F,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,25]))

绘制的函数应如下所示:

enter image description here

解决方法

好的,我已经修改了你上面显示的代码。这对我有用。我正在 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,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]);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...