[我正在使用MAPLE 2019并尝试插入彼此相关的不同方程,以便通过插入,积分和微分计算来评估其中一个,直到得到紧凑的简短形式,其中仅出现独立变量。
如您所见,积分和导数不再计算。我的目标是根据所有独立变量或成本函数来评估R。
您的Maple文档显示您对expressions和operator(又称为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输入来完成其中的任何代码,如屏幕截图所示。
以下全部用表达式完成。它使用活动命令diff
,eval
和int
(它们立即评估)。
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;
以下还对表达式进行了处理。但是它使用了惰性命令Diff
,Eval
和Int
,以便您可以在使用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__1
,f__
和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节)。