找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5053|回复: 0
打印 上一主题 下一主题
收起左侧

c语言 二分法求非线性方程的根

[复制链接]
跳转到指定楼层
楼主
ID:72519 发表于 2015-1-22 02:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#include<stdio.h>

#include<math.h>
void main()
{
//二分法求非线性方程的根
//想出这些解法的人真是厉害,什么二分,迭代,...
//程序中存在循环和判断
float a,b,c=(a+b)/2;//现在知道两个端点,设定一个代数式c,简化程序
float m,n,p;//端点的函数值
printf("please input 端点值,用逗号隔开\n");
scanf("%f,%f",&a,&b);
   m=2*a*a*a-4*a*a+3*a-6;
   n=2*b*b*b-4*b*b+3*b-6;
   p=2*c*c*c-4*c*c+3*c-6;
   for(;fabs(c-a)>=0.000001;)//给定一个误差e-5
   {
   if((2*c*c*c-4*c*c+3*c-6)==0)break;//跳出循环
   else if(p*m<0)
   {b=c;
   c=(a+b)/2;
   }
   else
   {a=c;
   c=(a+b)/2;
   }
   m=2*a*a*a-4*a*a+3*a-6;//为什么我一挪过来就行了呢,可能是如果不挪过来,mnp值不变
   n=2*b*b*b-4*b*b+3*b-6;
   p=2*c*c*c-4*c*c+3*c-6;
   }
   printf("root=%6.2f\n",c);//用6.2f把尾巴截断

}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表