maple - 如何直接将 MAPLE 过程的返回用作函数

标签 maple

这可能是非常基本的,但我似乎无法弄清楚:我试图直接将过程的输出用作函数。该过程是预制的,即 MAPLE 中的 dsolve 选项。具体来说,我想说的是

dsolve({diff(y(t), t) = y(t)*t, y(1) = 1}, y(t), series, t = 1, order = 7)

结果是

y(t) = t+1-1+(t-1)^2+(2/3)*(t-1)^3+(5/12)*(t-1)^4+(13/60)*(t-1)^5+(19/180)*(t-1)^6+O((t-1)^7)

这很棒,但我不能直接将其用作函数,即,当我输入 y(3) 时,我得到 y(3)。我确信这是因为该过程返回的是语句而不是函数。我想解决这个问题最基本的方法是复制并粘贴表达式并说 y:=t-> 无论如何,但这很不优雅。我该如何解决这个问题? 谢谢

最佳答案

是的,您将返回一个形式为 y(t)=<some series> 的方程来自您的dsolve打电话。

dsol := dsolve({diff(y(t), t) = y(t)*t, y(1) = 1}, y(t), series, t = 1, order = 5);

                                      2   2        3   5         4    /       5\
  dsol := y(t) = 1 + (t - 1) + (t - 1)  + - (t - 1)  + -- (t - 1)  + O\(t - 1) /
                                          3            12    

您还可以将其右侧的级数结构转换为多项式(即去掉大 O 项)。

convert( dsol, polynom );

                             2   2        3   5         4
           y(t) = t + (t - 1)  + - (t - 1)  + -- (t - 1) 
                                 3            12      

您还可以计算所需的表达式,y(t) ,在该等式中。 (或者您可以只使用 rhs 命令。对于多变量情况下的方程组,eval 方法更加稳健和直接。)

eval( y(t), convert( dsol, polynom ) );

                          2   2        3   5         4
               t + (t - 1)  + - (t - 1)  + -- (t - 1) 
                              3            12         

最后,您还可以从此表达式生成一个运算符。

Y := unapply( eval( y(t), convert( dsol, polynom ) ), t );

                               2   2        3   5         4
          Y := t -> t + (t - 1)  + - (t - 1)  + -- (t - 1) 
                                   3            12         

该运算符是一个过程,可以应用于您想要的任何点。

 Y(3);
                                 19

按照我上面的方式,分配给 Y 的语句恰好包含所有单独的步骤。这是您需要执行的唯一语句,以获取我分配给 Y 的运算符。如果您愿意,可以单独执行每个步骤并将每个中间结果分配给某个名称。这仅取决于您是否希望将它们用于任何其他目的。

restart:
dsol := dsolve({diff(y(t), t) = y(t)*t, y(1) = 1}, y(t), series, t = 1, order = 5):
peq := convert( dsol, polynom ):
p := eval( y(t), peq ):
Y := unapply( p, t ):
Y(3);

                                 19

关于maple - 如何直接将 MAPLE 过程的返回用作函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28816700/

相关文章:

maple - 加入散点图的点并创建一条线

maple - 使用分段 MAPLE 2018 时,如何在列表元素之间插入 'and' (代替逗号)

regex - 查找字符串中最短的重复模式

maple - 检查索引变量是否在某处分配了值

java openmaple 与 eclipse 的连接

python - Maple 中的 EllipticE 与 matematica 和 python 相比

c# - 在与统计/模拟软件交互时,C# 和 Java 中哪一个更容易、更快速?

matlab - 将矩阵因式分解为初等矩阵

maple - 如何在 Maple 中更改矩阵中的元素?

python - 通过 Python 获取 MAPLE 的输出