寻找正交的根

时间:2011-10-16 02:57:45

标签: wolfram-mathematica

我遇到root查找问题,并且很难让它在这个实例中运行。

我需要一些复杂的功能。

f[x_, lambda_, alpha_, beta_, mu_] = 
   Module[{gamma}, 
     gamma = Sqrt[alpha^2 - beta^2]; 
     (gamma^(2*lambda)/((2*alpha)^(lambda - 1/2)*Sqrt[Pi]*Gamma[lambda]))*
      Abs[x - mu]^(lambda - 1/2)*
      BesselK[lambda - 1/2, alpha Abs[x - mu]] E^(beta (x - mu))
   ];

我想找到根的函数被定义为这个函数的积分,所以我使用正交:

F[x_, lambda_, alpha_, beta_, mu_] := 
    NIntegrate[f[t, lambda, alpha, beta, mu], {t, 0, x}]; 

现在问题是,mathematica难以解决这个等式的根源,

Q[u_, lambda_, alpha_, beta_, mu_] := 
    x /. FindRoot[F[x, lambda, alpha, beta, mu] == u, {x, 1}]

有人知道为什么吗?积分在R中的所有点定义。这里是密度函数,F是其CDF。

感谢阅读。

1 个答案:

答案 0 :(得分:5)

尝试在:=的定义中使用=代替f,看看是否有帮助。

顺便说一句,当您使用此SetDelayed语法时,您不需要使用分号来抑制输出,因为它不会立即创建输出。

以下是一些示例输出,由belisarius和WReach提供:

enter image description here