gpt4 book ai didi

c - 迭代修改 C 中的函数

转载 作者:行者123 更新时间:2023-11-30 17:27:08 27 4
gpt4 key购买 nike

我正在尝试用 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;

但现在我不知道如何迭代修改函数,每次除以我用求解算法找到的根。

感谢您的帮助!

最佳答案

您可以将其作为带有起始案例的递归函数中的参数传递。如果您尝试迭代解决问题,这样的事情可能会起作用。

double my_j0(double x, double my_root){
if(//some base case){
//final calculation
return calculation
}
if(my_root == some_initialization){
//do initial calculation work
my_root = calculated_root;
}
else{
//do calculations using your root
my_root = calculated_root;
}
return my_j0(x, my_root)

关于c - 迭代修改 C 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26498142/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com