标题:[程序纠错]截弦法解一元三次多项式,为什么输入之后按回车会不出结果!
取消只看楼主
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
结帖率:90.24%
已结贴  问题点数:15 回复次数:9 
[程序纠错]截弦法解一元三次多项式,为什么输入之后按回车会不出结果!
#include<stdio.h>
#include<math.h>
int main()
{
float root(float x1,float x2);
float xpoint(float x1,float x2);
float f(float x);
float y1,y2,x1,x2;
float x;
scanf("x1=%f,x2=%f",&x1,&x2);
y1=f(x1);
y2=f(x2);
if(y1*y2<0)
{
x=root(x1,x2);
printf("The root is %.2f",x);
}
else
{
printf("Please change the nums please!\n");
return 0;
}
}

float f(float x)
{
float y;
y=x*x*x-5*x*x+16*x-80;
return y;
}

float xpoint(float x1,float x2)
{
float f(float x);
float y1,y2;
float x;
x=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
return x;
}

float root(float x1,float x2)
{
    float f(float x);
    float xpoint(float x1,float x2);
    float y1,y2,y,x;
    y1=f(x1);
    y2=f(x2);
//    if(y1*y2<0)
//    {
    x=xpoint(x1,x2);
    while(abs(f(x)<=1e-6))
    {
    if(f(x)*f(x1)>0)
    x1=x;
    else
    x2=x;
    x=xpoint(x1,x2);
    }
    return x;
//    }
//    else
//    {
//    printf("Please choose num again !");  已将此步骤于main函数内实现O(∩_∩)O~
//    return 0;
//    }

}
搜索更多相关主题的帖子: include change please return 多项式 
2015-03-30 22:06
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
得分:0 
回复 2楼 wmf2014
弦截法是一种求方程根的基该方法,在计算机编程中常用。他的思路是这样的:任取两个数x1、x2,求得对应的函数值f(x1)、f(x2)。如果两函数值同号,则重新取数,直到这两个函数值异号为止。连接(x1,f(x1))与(x2,f(x2))这两点形成的直线与x轴相交于一点x,求得对应的f(x),判断其与f(x1)、f(x2)中的哪个值同号。如f(x)与f(x1)同号,则f(x)为新的f(x1)。将新的f(x1)与f(x2)连接,如此循环。体现的是极限的思想。

既然还有不甘心
就还没到放弃的时候~
2015-04-01 15:12
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
得分:0 
回复 4楼 孤独的守候
......

既然还有不甘心
就还没到放弃的时候~
2015-04-01 15:15
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
得分:0 
回复 3楼 执笔画江山
确实检查不出来~ 感觉和参考答案也没啥区别~ 就是输入不出来

既然还有不甘心
就还没到放弃的时候~
2015-04-01 15:15
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
得分:0 
回复 10楼 执笔画江山
x1=2,x2=6
这是书上给出的参考数据,输入进去依旧没有反应~

既然还有不甘心
就还没到放弃的时候~
2015-04-01 22:16
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
得分:0 
回复 28楼 jklqwe111
因为方程的根就是f(x)=0,所以f(x)<1e-6基本上就是方程的根了~ 也可以的吧

既然还有不甘心
就还没到放弃的时候~
2015-04-01 22:18
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
得分:0 
回复 8楼 TonyDeng
我是按照参考答案输入的亮点x1=2,x2=6,所以这两点之间肯定有一个根

既然还有不甘心
就还没到放弃的时候~
2015-04-01 22:19
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
得分:0 
回复 9楼 embed_xuel
我喜欢这样写~O(∩_∩)O~

既然还有不甘心
就还没到放弃的时候~
2015-04-01 22:19
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
得分:0 
  参考空间x1=2,x2=6

既然还有不甘心
就还没到放弃的时候~
2015-04-01 22:23
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
得分:0 
回复 34楼 embed_xuel
对了哟~ 就是这个错误!

既然还有不甘心
就还没到放弃的时候~
2015-04-02 18:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-443298-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022455 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved