0

我试图在 Mathematica 中对两个图的交集的浓度(密度)进行建模,eggs[x,y,z,t]并且sperm[x,y,z,t]. 当人们试图将描述图形边界的方程实现(sperm[x,y,z,t] == eggs[x,y,z,t])为任一DensityPlot3D或说说明符时,就会出现问题RegionFunction -> Function[{x,y,z,t},func]ContourPlot3D但是,该方法DensityPlot3D适用于该任务,因为我正在尝试为解决方案设置动画并将图表的颜色作为浓度变量(精子和卵子方程的 4D 输出)。

这是我的ContourPlot3D过程代码:

In[1]:= sperm[x_,y_,z_,t_]= 1/Sqrt[4*Pi*t]*E^((-x^2-y^2-z^2)/(4*t));
eggs[x_,y_,z_,t_]=1/Sqrt[4*Pi*t]*E^((-(x+3)^2-(y+3)^2-(z+3)^2)/(4*t));
Animate[ContourPlot3D[sperm[x, y, z, t] == eggs[x, y, z, t], {x, -10, 10}, {y, -10, 10}, {z, -10, 10}], {t, 0, 10}]

输出通常会使系统崩溃,因此无法在此处上传。

这是我尝试将此方法应用于DensityPlot3D

In[2]:= Animate[DensityPlot3D[sperm[x, y, z, t] == eggs[x, y, z, t], {x, -10, 10}, {y, -10, 10}, {z, -10, 10}], {t, 0, 10}]

输出只是一个空白的 3D 图。

经过研究,我发现RegionFunction(and RegionPlot3D) 似乎只使用了不等式,并且 in 的第一个参数DensityPlot3D使用了一个不是方程形式的函数。我试图通过做类似的事情来绕过这个

f = Solve[sperm[x, y, z, t] == eggs[x, y, z, t], {x, y, z, t}, Reals]

并将该变量作为第一个参数输入,但这并没有帮助,因为结果仍然被认为是一个方程(一个复杂的方程)。

所以,我的问题是:我怎样才能将方程作为边界来实现DensityPlot3D

编辑:所以事实证明,第一个参数实际上可以包含方程式,因为我能够为s[x, y, t] == e[x, y, t].

这是代码:

In[1]:= s[x_, y_, t_] = 1/Sqrt[4*Pi*t]*E^((-(x + 0)^2 - (y + 0)^2)/(4*t));
e[x_, y_, t_] = 1/Sqrt[4*Pi*t]*E^((-(x + 3)^2 - (y + 3)^2)/(4*t)); 
Animate[DensityPlot[s[x, y, t] == e[x, y, t], {x, -10, 10}, {y, -10, 10}, ColorFunction -> "TemperatureMap"], {t, 0, 10}]

我不知道如何在此处保存动画,并且图片未在此处上传。

然而,问题很简单:为什么DensityPlot3D“4D”案例是空白图表?

4

0 回答 0