找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5012|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

c語言 二分法求非線性方程的根

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72519 發(fā)表于 2015-1-22 02:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

#include<stdio.h>

#include<math.h>
void main()
{
//二分法求非線性方程的根
//想出這些解法的人真是厲害,什么二分,迭代,...
//程序中存在循環(huán)和判斷
float a,b,c=(a+b)/2;//現(xiàn)在知道兩個端點,設(shè)定一個代數(shù)式c,簡化程序
float m,n,p;//端點的函數(shù)值
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;//跳出循環(huán)
   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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表