首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义一个变量,该变量在计算表达式时进行计算,但不会将其定义替换为表达式

定义一个变量,该变量在计算表达式时进行计算,但不会将其定义替换为表达式
EN

Stack Overflow用户
提问于 2020-08-13 11:35:33
回答 1查看 40关注 0票数 2

比方说,我想将椭圆积分声明为

K(k):=elliptic_kc (k^2);

k:=

问题是,maxima总是用elliptic_kc(x^2)代替K(x),用k的定义代替k。我想要防止这种情况,同时仍然允许对K(),k进行数值计算,并用这些符号简化表达式。

..。一个函数,可以声明为用于禁用替换的“名词”。但这也禁用了它的评估。

EN

回答 1

Stack Overflow用户

发布于 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);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63387775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档