function - 如何在mathematica中定义通用函数?

标签 function wolfram-mathematica expression definition

如何在 Mathematica 中定义没有精确表达式的通用函数?例如,我不需要这个:

a[x_, y_]:= 2x + 3y,

我需要使用通用参数 a(x,y):

a[x_, y_]:= a[x, y].

当然,这条线效果不太好。

编辑1:

嗯,我在另一个未知函数中使用该参数(未知,因为它仅在包中定义),它基本上作为导数工作,即它是一阶和二阶导数的非常复杂的组合。

这一行

a[x_, y_]:= a[x, y],

实际上(有点)有效,因为参数作为函数“生存”在包中,除了在输出中我得到恼人的“Hold[a[x,y]]”而不是只是 a[x,y],我不能再将结果用作函数。

最佳答案

在不指定表达式的情况下“定义”函数的方法是定义它。只需使用它即可。

示例:

D[f[x] g[x],x]
(*
==> g[x] f'[x] + f[x] g'[x]
*)

如您所见,我没有定义 fg,但 Mathematica 使用它们进行计算没有问题。

请注意,您还可以使用这些函数进行定义。例如:

modify[a[x_,y_]]:=a[y,x+y]
modify[a[2,3]]
(*
==> a[3, 5]
*)

您甚至可以对它们定义算术运算。例如,您可以定义一个函数 exp 来用指数进行符号计算(注意小写,因为 Exp 已经是内置的指数函数),然后定义

exp/: exp[a_] exp[b_] := exp[a+b]
exp/: exp[a_]^n_Integer := exp[n a]

然后写

expression = 3 exp[x] exp[y+z]^3
(*
==> 3 exp[x + 3 (y + z)]
*)

关于function - 如何在mathematica中定义通用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12530179/

相关文章:

image-processing - 从图像中去除背景噪音

wolfram-mathematica - 可以对 Mathematica 中的 PointSize[]、Thickness[] 进行相对大小更改吗?

regex - .htaccess URL 重写跳过其他/

class - 是否存在一个表达式使得 <<表达式>> == <<表达式>> 始终为假?

c - 将大的多维数组传递给 C 中的函数

python - 覆盖内置函数

python - 根据输入返回不同的输出组合

wolfram-mathematica - 我们可以在 PowerPoint 或 Keynote 中显示一些 Dynamics/CDF 吗?

javascript - 值严格相等问题

c++ - 在 gtest 中将两个数组作为参数传递