为什么MAPLE不评估我的方程式内的积分和导数?

问题描述 投票:0回答:1

[我正在使用MAPLE 2019并尝试插入彼此相关的不同方程,以便通过插入,积分和微分计算来评估其中一个,直到得到紧凑的简短形式,其中仅出现独立变量。

Here my screenshot

如您所见,积分和导数不再计算。我的目标是根据所有独立变量或成本函数来评估R。

math equation maple calculus
1个回答
0
投票

您的Maple文档显示您对expressionsoperator(又称为procedures >>])之间的区别感到困惑。

该文档还会造成混乱,因为某些语句已无序执行。好像您已返回并重新执行了先前的语句。 (例如,看起来您在第二个之后重新执行了第一个,在第四个之后重新执行了第三个。)这将无济于事,特别是在对表达式和运算符有基本误解的情况下。

让我们快速回顾一下表达式和运算符。

表达式(例如exp(...))已经是一个函数调用,不能直接用作另一个函数调用。这是一个分配给名称R1的表达式:

R1 := exp(-lambda1*t);

您不能只是将R1 apply

功能上用于某些参数。这是用替换值代替t来计算该表达式的方法。您无法有效地执行以下操作,
R1(ts);

exp(-lambda1*t)(ts)

可以

对表达式所做的操作是用其符号之一(名称,例如t)的新值对其求值。您可以这样做,eval(R1, t=ts); exp(-lambda1 ts)
diff命令可用于表达式,例如,

f1 := diff(R1, t); f1 := -lambda1 exp(-lambda1 t)

您还可以以新的t值评估该新表达式(对于导数)。例如,

eval(f1, t=ts); -lambda1 exp(-lambda1 ts)

现在让我们讨论运算符。操作员是一种简单的过程,可以使用漂亮的箭头符号进行打印(可以输入)。

R1 := t -> exp(-lambda1*t); R1 := t -> exp(-lambda1 t)

可以将运算符应用于一个或多个参数,使用圆括号表示该函数调用。在此示例中,传递的参数ts代替了运算符的参数t

R1(ts); exp(-lambda1 ts)

D命令可以产生一个新的运算符,该运算符在执行时将计算导数。

f1 := D(R1); f1 := t -> -lambda1 exp(-lambda1 t) f1(ts); -lambda1 exp(-lambda1 ts)

现在让我们考虑几种解决您的示例的方法。有几个,我只展示几个。关键是要直截了当,无论是处理表达式还是运算符。

我将不在下面的输出中。但是,某些方法可以打印出精美的输出,您可能会发现这些输出对于从数学角度看正在发生的事情更为有用。

我建议您尝试并理解以下所有以1D(纯文本)Maple表示法编写的代码,然后再尝试使用(排版)2D输入来完成其中的任何代码,如屏幕截图所示。

以下全部用表达式完成。它使用活动命令diffevalint(它们立即评估)。

restart; R := R__1 + R__S*P__2; R__1 := exp(-lambda__1*t); f__1 := diff(R__1, t); R__2 := exp(-lambda__2*t); eval(f__1,t=t__s); eval(R__2,t=t-t__s); P__2 := int(eval(f__1,t=t__s)*eval(R__2,t=t-t__s),t__s=0..t); R;

以下还对表达式进行了处理。但是它使用了惰性命令DiffEvalInt,以便您可以在使用value命令之前查看输出中发生了什么。

restart; R := R__1 + R__S*P__2; R__1 := exp(-lambda__1*t); f__1 := Diff(R__1, t); R__2 := exp(-lambda__2*t); Eval(f__1,t=t__s); Eval(R__2,t=t-t__s); P__2 := int(Eval(f__1,t=t__s)*Eval(R__2,t=t-t__s),t__s=0..t); R; value(R);

以下内容全面使用运算符。

restart; R := t -> R__1(t) + R__S*P__2(t); R__1 := t -> exp(-lambda__1*t); f__1 := D(R__1); R__2 := t -> exp(-lambda__2*t); f__1(t__s); R__2(t-t__s); P__2 := t -> int(f__1(t__s)*R__2(t-t__s),t__s=0..t); R(t);

以下仅将运算符用于R__1f__R__2

restart; R := R__1(t) + R__S*P__2; R__1 := t -> exp(-lambda__1*t); f__1 := D(R__1); R__2 := t -> exp(-lambda__2*t); f__1(t__s); R__2(t-t__s); P__2 := int(f__1(t__s)*R__2(t-t__s),t__s=0..t); R;

还有其他几种可能的变体。您可能需要阅读《编程指南》(也许尤其是第3章和第6.9节)。
© www.soinside.com 2019 - 2024. All rights reserved.