积分变换 EntityStore
积分变换是一种数学运算,它以形式为 的积分方法,将函数
映射到另一函数
,其中
称为核. 积分变换在信号处理、医学成像和概率论等众多研究领域占有中非常重要的地位. 这里展示了包含重要变换属性的实体库的构建过程.
通过在 EntityStore 数据结构中记录积分变换的重要属性,可以手动编码创建实体库.
In[1]:=

EntityStore[<|
"Types" -> <|
"IntegralTransform" -> <|
"Entities" -> <|
"ExponentialFourierTransform" -> <|
"Label" -> "exponential Fourier transform",
"StandardName" -> "ExponentialFourierTransform",
"StandardNotation" -> Hold[f[t]],
"Definition" -> Inactive[FourierTransform][f[t], t, z] \!\(\*
TagBox["==",
"InactiveToken",
BaseStyle->"Inactive",
SyntaxForm->"=="]\)
Inactive[Integrate][
E^(I t z) f[t], {t, -\[Infinity], \[Infinity]}]/Sqrt[
2 \[Pi]],
"GeneralProperties" -> <|
"Linearity" -> {Inactive[FourierTransform][
a f[t] + b g[t], t, z] \!\(\*
TagBox["==",
"InactiveToken",
BaseStyle->"Inactive",
SyntaxForm->"=="]\)
a Inactive[FourierTransform][f[t], t, z] +
b Inactive[FourierTransform][g[t], t, z],
Inactive[FourierTransform][f[t], t, z] \!\(\*
TagBox["==",
"InactiveToken",
BaseStyle->"Inactive",
SyntaxForm->"=="]\)
Inactive[FourierTransform][f[-t] UnitStep[t], t, -z] +
Inactive[FourierTransform][f[t] UnitStep[t], t, z]},
"Reflection" -> {Inactive[FourierTransform][f[-t], t,
z] \!\(\*
TagBox["==",
"InactiveToken",
BaseStyle->"Inactive",
SyntaxForm->"=="]\) Inactive[FourierTransform][f[t], t, -z]},
"Dilation" -> {ConditionalExpression[
Inactive[FourierTransform][f[a t], t, z] \!\(\*
TagBox["==",
"InactiveToken",
BaseStyle->"Inactive",
SyntaxForm->"=="]\) Inactive[FourierTransform][f[t], t, z/a]/Abs[a],
a \!\(\*
TagBox["\[Element]",
"InactiveToken",
BaseStyle->"Inactive",
SyntaxForm->"\[Element]"]\) Reals && a \!\(\*
TagBox["!=",
"InactiveToken",
BaseStyle->"Inactive",
SyntaxForm->"!="]\) 0]},
"Shifting or translation" -> {ConditionalExpression[
Inactive[FourierTransform][f[-a + t], t, z] \!\(\*
TagBox["==",
"InactiveToken",
BaseStyle->"Inactive",
SyntaxForm->"=="]\) E^(I a z) Inactive[FourierTransform][f[t], t, z],
a \!\(\*
TagBox["\[Element]",
"InactiveToken",
BaseStyle->"Inactive",
SyntaxForm->"\[Element]"]\) Reals]}|>|>|>|>|>|>]
Out[1]=

更复杂的版本可以从以下 CloudObject 中提取.
In[2]:=

itstore =
CloudGet[CloudObject[
"https://www.wolframcloud.com/objects/c21b356b-607a-406c-af91-\
5088f435fe99"]]
Out[2]=

注册该部分数据库.
In[3]:=

PrependTo[$EntityStores, itstore];
查看数据库中的实体.
In[4]:=

EntityValue["IntegralTransform", "Entities"]
Out[4]=

添加新的变换.
In[5]:=

Entity["IntegralTransform", "HilbertTransform"]["Label"] =
"Hilbert transform";
Entity["IntegralTransform", "HilbertTransform"]["Definition"] =
Inactive[HilbertTransform][f[t], t, x] \!\(\*
TagBox["==",
"InactiveToken",
BaseStyle->"Inactive",
SyntaxForm->"=="]\)
1/\[Pi] Inactive[Integrate][f[t]/(
t - x), {t, -\[Infinity], \[Infinity]}, PrincipalValue -> True,
Assumptions -> x \!\(\*
TagBox["\[Element]",
"InactiveToken",
BaseStyle->"Inactive",
SyntaxForm->"\[Element]"]\) Reals];
对积分变换返回当前可用的属性.
In[6]:=

EntityValue["IntegralTransform", "Properties"]
Out[6]=

提取指数傅里叶和梅林变换的定义.
In[7]:=

EntityValue[
Entity["IntegralTransform", "LaplaceTransform"], "Definition"]
Out[7]=

In[8]:=

EntityValue[
Entity["IntegralTransform", "MellinTransform"], "Definition"]
Out[8]=

与对应的内置函数返回的表达式比较.
In[9]:=

Activate[EntityValue[Entity["IntegralTransform", "LaplaceTransform"],
"Definition"][[2]] /. f :> Function[t, ArcTan[t]]]
Out[9]=

In[10]:=

LaplaceTransform[ArcTan[t], t, z]
Out[10]=

显示 Z-变换的卷积属性.
In[11]:=

Entity["IntegralTransform", "ZTransform"][
"GeneralProperties"]["Convolution"]
Out[11]=

与当前存储的傅里叶和梅林变换属性对比.
显示完整的 Wolfram 语言输入
Out[14]//TraditionalForm=
