比方说,我想将椭圆积分声明为
K(k):=elliptic_kc (k^2);
k:=
问题是,maxima总是用elliptic_kc(x^2)代替K(x),用k的定义代替k。我想要防止这种情况,同时仍然允许对K(),k进行数值计算,并用这些符号简化表达式。
..。一个函数,可以声明为用于禁用替换的“名词”。但这也禁用了它的评估。
发布于 2020-08-15 03:11:19
嗯,我使用了各种策略。有时,一种方法比另一种方法效果更好。
(1)将单引号'放在函数名上,以指定特定的函数调用。稍后,ev(expr, nouns)会对所有名词进行动词验证,因此会调用这些函数。例如,foo: 'integrate(sin(x), x);产生一个名词表达式。然后使用ev(foo, nouns); (在控制台输入时可以缩写为foo, nouns; )来实际计算它。
(2)不要定义函数,只是让它们成为未定义的符号。然后,当您想要计算它们时,请替换一个lambda表达式。例如,先是foo: f(2);,然后是subst(f = lambda([x], x + 1), foo);。
(3)不要赋值,让它们是未定义的,然后再替换它们。例如,先是foo: a + b;,然后是subst([a = 123, b = y*z], foo);。
https://stackoverflow.com/questions/63387775
复制相似问题