隐式函数的根,包括修正贝塞尔函数的积分 - 与 fzero 不兼容的符号变量
Roots of implicit function including integral of modified Bessel function - symbolic variables not compatible with fzero
我正在尝试求解 r 的方程 f,如下所示:
syms rho
C0 = 0.5;
a_bar = sqrt(-log((1-C0)/(1+C0)));
l = 0.77;
f = @(r) exp(-r^2)*int(rho*exp(-rho^2)*besseli(0,2*r*rho),rho,0,a_bar)-(l-1)*int(rho*exp(-rho^2),rho,0,a_bar);
r1 = fzero(f,1);
然而,第一个积分(包含 besseli)的符号输出在 fzero 中给出了错误。问题似乎是 besseli 包含 rho(当我删除这个 rho 实例时,我没有收到任何错误)。
我尝试过使用 subs 和 eval,并将整个问题作为符号来解决,但老实说,这确实是反复试验。我确定我缺少一些简单的东西 - 任何帮助都会很棒!
干杯,
艾伦
正如 David 在对我的问题的评论中所建议的那样,在函数中包含 double
可以解决这个问题;即:
f = @(r) double(exp(-r^2)*int(rho*exp(-rho^2)*besseli(0,2*r*rho),rho,0,a_bar)-(l-1)*int(rho*exp(-rho^2),rho,0,a_bar));
r1 = fzero(f,1);
这是因为它将符号表达式(涉及 rho 和 r)转换为数值对象。我的方程式没有任何根,但这是我事先工作的问题。
再次感谢 David 和 Mad Physicist 在这方面的帮助。
我正在尝试求解 r 的方程 f,如下所示:
syms rho
C0 = 0.5;
a_bar = sqrt(-log((1-C0)/(1+C0)));
l = 0.77;
f = @(r) exp(-r^2)*int(rho*exp(-rho^2)*besseli(0,2*r*rho),rho,0,a_bar)-(l-1)*int(rho*exp(-rho^2),rho,0,a_bar);
r1 = fzero(f,1);
然而,第一个积分(包含 besseli)的符号输出在 fzero 中给出了错误。问题似乎是 besseli 包含 rho(当我删除这个 rho 实例时,我没有收到任何错误)。
我尝试过使用 subs 和 eval,并将整个问题作为符号来解决,但老实说,这确实是反复试验。我确定我缺少一些简单的东西 - 任何帮助都会很棒!
干杯,
艾伦
正如 David 在对我的问题的评论中所建议的那样,在函数中包含 double
可以解决这个问题;即:
f = @(r) double(exp(-r^2)*int(rho*exp(-rho^2)*besseli(0,2*r*rho),rho,0,a_bar)-(l-1)*int(rho*exp(-rho^2),rho,0,a_bar));
r1 = fzero(f,1);
这是因为它将符号表达式(涉及 rho 和 r)转换为数值对象。我的方程式没有任何根,但这是我事先工作的问题。
再次感谢 David 和 Mad Physicist 在这方面的帮助。