请教一下各位大佬啊,急急急!

luckyboy123321 2018-04-19 03:27:50
double n=0;
//double x, y;
double e=Math .Pow (10,-5);
Console.WriteLine("请输入区间a的值");
double a = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入区间b的值");
double b = Convert.ToDouble(Console.ReadLine());

while (Math.Abs(b - a) > e)
{
if (F(a) == 0)
Console.WriteLine("此方程的根为:{0}", a);
if (F(b) == 0)
Console.WriteLine("此方程的根为:{0}", b);
if (F(a) * F(b) > 0)
{
Console.WriteLine("此方程无解!!!");
Console.WriteLine("{0}", F(a));
Console.WriteLine("{0}", F(b));

}


if (F(a) * F(b) < 0)
{
n = (a + b) / 2;
Console.WriteLine("{0}", F(n));
if (F (n )==0)

Console.WriteLine("此方程的根为:{0}", n );
if (F(a) * F(n ) < 0)
b = n;
else
a = n;


}
}
Console.WriteLine("此方程的根为:{0}", n);
Console.ReadKey();
}
public static double F(double t)
{


return 16 * Math.Pow(Math.Pow((0.01 * 0.01 - t * t), 0.5), 3) + 176 * Math.Pow(Math.Pow((0.01 * 0.01 - t * t), 0.5), 2) - 16 * Math.Pow(Math.Pow((0.01 * 0.01 - t * t), 0.5), 2) * 92 - t * t + 24 * Math.Pow((0.01 * 0.01 - t * t), 0.5) * t + 16 * t * t * Math.Pow((0.01 * 0.01 - t * t), 0.5) - 16 * t * 6 * Math.Pow((0.01 * 0.01 - t * t), 0.5);


}
帮忙看一下我这个二分法求根的近似值算法有木有问题和我同学算的有出入,根的区间在(0-0.01)刚开始带入区间端点的时候都是负值,直接就无解了,
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
分割线
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void main()
{

float x ; // 0 <= x <= 0.01
float y ;

double a = 0 ,b = 0.001;


//用循环求解方程
while((b-a)>0.00001)
{
x = (a+b)/2;
y =16*pow(pow((0.01*0.01-x*x),0.5),3)+176*pow(pow((0.01*0.01-x*x),0.5),2)-16*pow(pow((0.01*0.01-x*x),0.5),2)*92-x*x+24*pow((0.01*0.01-x*x),0.5)*x+16*x*x*pow((0.01*0.01-x*x),0.5)-16*x*6*pow((0.01*0.01-x*x),0.5);
if(y<0)
{
a = x ;
b = b ;
}
else
{
a = a ;
b = x ;
}
}
cout << " 所求方程的解为: x = "<< x << endl;
这是我同学写的,她是用的C++,主要看下我两的逻辑有木有问题啊,她的可以求出值来,但我总感觉她的算法有问题啊,求指教啊
...全文
887 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-04-20
  • 打赏
  • 举报
回复
仅供参考:
//用C语言编程,求出sin(x)=(5/6)*x这个方程在区间(0,π/2)的近似解。
#include <math.h>
#include <stdio.h>
double x,e;
void main () {
    x=0.001;
    e=0.001;
    while (1) {
        while (1) {
            if (sin(x)>5.0/6.0*x) {
                x+=e;
            } else {
                break;
            }
        }
        e/=10.0;
        if (e<1e-15) break;
        while (1) {
            if (sin(x)<5.0/6.0*x) {
                x-=e;
            } else {
                break;
            }
        }
        e/=10.0;
        if (e<1e-15) break;
    }
    printf("%.14g\n",x);
}
//1.026738291371
luckyboy123321 2018-04-20
  • 打赏
  • 举报
回复

这有三副图片第一幅图片是用来推导最后需要的方程,第二幅图片就是F2(x),也就是用来求导f2导数用的,第三幅图片是我求出的最后的方程,也就是需要的方程,方程我和我同学算的一样应该没错,,这个是推导需要的图
xuzuning 2018-04-19
  • 打赏
  • 举报
回复
我又看了一下,你的 F(x) x=0~0.001区间都小于 0 你同学的代码只不过是因为 (b-a)>0.00001 不成立而结束,并不是真正的解 你能贴出 函数的原型吗?截图就可以
luckyboy123321 2018-04-19
  • 打赏
  • 举报
回复
大佬快看看啊
luckyboy123321 2018-04-19
  • 打赏
  • 举报
回复
我同学的结果是这么多,我的是无解啊,按理说区间端点的值都为负应该是无解的,
luckyboy123321 2018-04-19
  • 打赏
  • 举报
回复
我的程序一开始把A,b的值带入里面都是负值,相乘都不是小于0,我感觉她那个判断小于0然后赋值给a,前提不应该是F(a)小于0F(b)大于0么,难道我想错了
xuzuning 2018-04-19
  • 打赏
  • 举报
回复
你同学的结果是 0.0009921875 ? 真缺德结果应是多少? 你的代码会出负值,但不会结束循环
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧