gpt4 book ai didi

c - 求五次多项式一次根的代码

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

我正在尝试编写一段代码,要求用户提供 5 次多项式的 5 个系数,并且还要求提供一个范围(两个值),程序将检查其中是否有解或不(要求我只找到一个),并且解必须是整数,而系数可以是 float 。

我正在考虑编写一个代码,运行该范围内的每个整数,并将其替换为我定义的多项式的描述,并检查它是否等于零,但我陷入了决定如何使循环。

另一件事,如果用户输入的区间中有多个根,那么我们必须打印根的最小值(但我也不知道如何做到这一点)。

我将向您展示我到目前为止所写的内容,并且我们将不胜感激任何形式的帮助:

#include <stdio.h>
#define zero 0.00001

int main()
{
double a, b, c , d , e , f , y , beginning_of_range, end_of_range;

int x;

printf("please enter the coefficients of the polynomial:\n");

scanf("%lf%lf%lf%lf%lf", &a, &b, &c, &d, &e);

printf("please enter two values to indicate the beginning and end of range:\n");

scanf("%lf%lf", &beginning_of_range, &end_of_range);

while (beginning_of_range > end_of_range)
{
printf("ERROR: the range you have entered isn't valid, please try again:");

scanf("%lf%lf", &beginning_of_range, &end_of_range);
}

while (beginning_of_range < end_of_range)
{
x = beginning_of_range;

y = a + b*x + c*x*x + d*x*x*x + e*x*x*x*x + f*x*x*x*x*x;

if (y == zero)
{
printf("the root is:%d", x);

}
else
{
x = x+1;
}

break;

}

return 0;
}

最佳答案

您所写的任务非常可疑,以至于可能存在误解或沟通错误。

随机给定的具有浮点系数的多项式将具有概率接近于零的整数根,这实际上是不可能的。

即使使用整数系数,也需要仔细地对系数进行逆向工程才能获得整数根。只要将一个系数改一,大多数情况下所有的根都是无理根。

您可以在框架中找到具有符号变化的区间,以便区间内至少有一个可以使用二分法、regula falsi、Illinois、割线或 Mullers 方法之一找到的根。所有这些都不含衍生品。

在不识别所有根(包括复杂根)的情况下,很难保证找到所有真正的根。因此,只能近似地找到给定区间内的最小实根。可能存在一个整数区间,内部有两个实根,因此在边界处符号相同。在这种情况下,您必须分析整数点处所有导数的符号才能做出更可靠的猜测,请参阅笛卡尔规则和布丹-傅里叶定理。

关于c - 求五次多项式一次根的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29398979/

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