//15.
#include<stdio.h>
#include<math.h>
int main(void)
{
float x2 = 10, x1 = -10, x;
float f1, f2, f3;
for (;;)
{
x = (x1 + x2) / 2;
f1 = 2 * x1*x1*x1 - 4 * x1*x1 + 3 * x1 - 6;
f2 = 2 * x2*x2*x2 - 4 * x2 *x2 + 3 * x2 - 6;
f3 = 2 * x*x*x - 4 * x*x + 3 * x - 6;
if ((f1*f3) <= 0)
{
x2 = x;
x = (x1 + x) / 2;
#include<stdio.h>
#include<math.h>
int main(void)
{
float x2 = 10, x1 = -10, x;
float f1, f2, f3;
for (;;)
{
x = (x1 + x2) / 2;
f1 = 2 * x1*x1*x1 - 4 * x1*x1 + 3 * x1 - 6;
f2 = 2 * x2*x2*x2 - 4 * x2 *x2 + 3 * x2 - 6;
f3 = 2 * x*x*x - 4 * x*x + 3 * x - 6;
if ((f1*f3) <= 0)
{
x2 = x;
x = (x1 + x) / 2;
}
if ((f2*f3) <= 0)
{
x1 = x;
x = (x2 + x) / 2;
}
if (fabs(x2 - x1) < pow(10, -5)) break;
}
printf("X=%.4f", x);
return 0;
}
if ((f2*f3) <= 0)
{
x1 = x;
x = (x2 + x) / 2;
}
if (fabs(x2 - x1) < pow(10, -5)) break;
}
printf("X=%.4f", x);
return 0;
}
本文展示了一段使用C语言实现的一维搜索算法代码。该算法通过不断缩小搜索区间来寻找方程2*x^3-4*x^2+3*x-6=0的一个根。程序采用迭代方式逐步逼近目标值,直到满足精度要求。

被折叠的 条评论
为什么被折叠?



