【发布时间】:2014-10-21 23:34:17
【问题描述】:
我正在尝试在 C 中创建一个数字根查找器,以查找贝塞尔函数的零点。数学函数 F(x) 可以通过将函数除以 (x-x0) 来缩小,其中 x0 是已知的根。结果函数 G(x) = F(x)/(x-x0) 具有 F(x) 除了 x0 以外的所有根。这很有用,因为它可以防止求解器两次找到相同的根。
当我使用求解器找到根时,它会写入数组Roots[]。
贝塞尔函数在math.h 中定义为double j0(double x)。
我想迭代修改double j0(double x),这样我就可以拥有:
double my_j0(double x) = j0(x)/(x-Roots[n]);
然后我可以在我的求解器中调用这个新的、压缩的函数。
上面的语法没有意义,但我不知道如何表示它。
我尝试使用函数指针并定义
double (*my_j0)(double);
my_j0 = &j0;
但现在我不知道如何迭代地修改函数,每次除以我用我的求解算法找到的根。
感谢您的帮助!
【问题讨论】:
-
函数
F(x)/(x - x0)在x0有一个可移除的奇点。您真正想要解决的是该函数在奇点上的解析延拓。 -
本质上我想我想问的是这个:stackoverflow.com/questions/1839965/… 我认为结果是我想要做的事情在 C 语言中实际上是不可能/非常困难的。
标签: c numerical-methods