得到方程的分支点

5 math wolfram-mathematica

如果我有一个大致的功能,f(z,a),z并且a都是真实的,并且功能f需要为所有真正的价值z除了在一些间隔(z1,z2),它变得复杂.我如何使用Mathematica 确定z1z2(将a使用Mathematica)(或者这可能)?有什么限制?

对于测试示例,请考虑该函数f[z_,a_]=Sqrt[(z-a)(z-2a)].对于真正的za,这需要对实际值除了在间隔(a,2a),它成为假想.如何在Mathematica中找到此间隔?

一般来说,我想知道如何在一般情况下以数学方式找到它.对于只有两个这样的变量的函数,可能很容易做出黎曼曲面的等高线图并观察分支切割.但是,如果它是一个多变量函数呢?人们可以采取一般方法吗?

Dan*_*lau 4

您所拥有的似乎是由“a”参数化的黎曼曲面。考虑将从参数化黎曼曲面的该分支产生的代数(或解析)关系 g(a,z)=0。在这种情况下,它只是 g^2 - (z - a)*(z - 2*a) == 0。更一般地,它可以使用 Groebnerbasis 获得,如下所示(不能保证在没有一定数量的用户的情况下这将始终有效)干涉)。

grelation = First[GroebnerBasis[g - Sqrt[(z - a)*(z - 2*a)], {x, a, g}]]
Run Code Online (Sandbox Code Playgroud)

输出[472]= 2 a^2 - g^2 - 3 az + z^2

作为参数“a”的函数,分支点的必要条件是“g”的零集不会在这些点的邻域中给出(单值)函数。这又意味着该关系关于 g 的偏导数消失(这来自多元微积分的隐函数定理)。因此,我们找到了 grlation 及其导数都消失的位置,并求解了作为“a”的函数的“z”。

Solve[Eliminate[{grelation == 0, D[grelation, g] == 0}, g], z]
Run Code Online (Sandbox Code Playgroud)

输出[481]= {{z -> a}, {z -> 2 a}}

Daniel Lichtblau 沃尔夫勒姆研究公司