Maxima-无法使用plot2d绘制我的方程式,因为“在绘制范围内的任何地方,表达式的计算结果均为非数值”

时间:2019-01-14 09:13:29

标签: plot maxima

对于Maxima,我想通过求解特定参数的方程式来根据时间绘制参数值。我是Maxima的新手,已经开始进行计算了。 我使用下面的方程式m来求解L:

m= m_I - (m_I-m_R)/(1+%e^(-s_R*(t-L)))
solve(%,L);

这给了我

L=(t*s_R-log(m_I/(m-m_R)-m/(m-m_R)))/s_R

作为输出。如果我现在为除L和t

以外的所有参数赋值
ev(%,m=0.5,m_I=1,m_R=0.1,s_R=0.01);
plot2d(%,[t,0,10]);

我收到错误消息

  

“ plot2d:表达式在任何位置都计算为非数值   绘图范围。 plot2d:没有要绘制的内容。”

我知道这是非常基本的,但是我仍然不知道自己在做什么错。我还尝试使用函数m(t):= ...代替表达式m = ...,结果相同。

1 个答案:

答案 0 :(得分:1)

请注意,solve返回了一个包含一个元素的列表,该元素是一个方程式。为了绘制结果,您需要隔离方程式的右侧,因为这是plot2d所理解的(否则,它不知道如何处理solve的输出)。

我的建议是首先获取solve结果的一部分,然后进行绘制。像这样:

solve (...);
my_equation : %[1];
my_equation_rhs : rhs(%);
plot2d (my_equation_rhs, [t, 0, 10]);

plot2d的不足之处在于它不知道如何处理solve的结果;对此感到抱歉。